@theseam/ui-common 0.4.29 → 0.4.30

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 (616) hide show
  1. package/breadcrumbs/breadcrumbs/breadcrumbs.component.scss +1 -1
  2. package/datatable/datatable/datatable.component.d.ts +61 -9
  3. package/datatable/datatable-column-filter-menu/datatable-column-filter-menu.component.d.ts +25 -0
  4. package/datatable/datatable-column-filter-search-date/datatable-column-filter-search-date.component.d.ts +18 -0
  5. package/datatable/datatable-column-filter-search-numeric/datatable-column-filter-search-numeric.component.d.ts +16 -0
  6. package/datatable/datatable-column-filter-search-text/datatable-column-filter-search-text.component.d.ts +15 -0
  7. package/datatable/datatable-menu-bar/datatable-menu-bar.component.d.ts +2 -2
  8. package/datatable/datatable.module.d.ts +29 -20
  9. package/datatable/directives/datatable-column-filter-tpl.directive.d.ts +8 -0
  10. package/datatable/directives/datatable-column-filter.directive.d.ts +10 -0
  11. package/datatable/models/action-item-column-position.d.ts +13 -0
  12. package/datatable/models/columns-data-filter.d.ts +57 -0
  13. package/datatable/models/columns-data-filters/models.d.ts +65 -0
  14. package/datatable/models/columns-data-filters/search-date.columns-data-filter.d.ts +23 -0
  15. package/datatable/models/columns-data-filters/search-numeric.columns-data-filter.d.ts +22 -0
  16. package/datatable/models/columns-data-filters/search-text.columns-data-filter.d.ts +21 -0
  17. package/datatable/models/columns-data-filters/utils.d.ts +15 -0
  18. package/datatable/models/datatable-config.d.ts +97 -0
  19. package/datatable/models/table-column.d.ts +22 -1
  20. package/datatable/public-api.d.ts +14 -0
  21. package/datatable/services/columns-filters.service.d.ts +29 -0
  22. package/datatable/services/columns-manager.service.d.ts +7 -0
  23. package/datatable/utils/create-action-menu-column.d.ts +1 -1
  24. package/esm2020/asset-reader/asset-reader-helper.service.mjs +4 -4
  25. package/esm2020/asset-reader/asset-reader.module.mjs +5 -5
  26. package/esm2020/asset-reader/encrypted-asset-link.directive.mjs +4 -4
  27. package/esm2020/breadcrumbs/breadcrumbs/breadcrumbs.component.mjs +5 -5
  28. package/esm2020/breadcrumbs/breadcrumbs.module.mjs +5 -5
  29. package/esm2020/breadcrumbs/breadcrumbs.service.mjs +4 -4
  30. package/esm2020/buttons/badge-button/badge-button.component.mjs +7 -7
  31. package/esm2020/buttons/button/button.component.mjs +10 -10
  32. package/esm2020/buttons/buttons.module.mjs +5 -5
  33. package/esm2020/buttons/progress-circle-button/progress-circle-button.component.mjs +4 -4
  34. package/esm2020/buttons/toggle-button/toggle-button.component.mjs +4 -4
  35. package/esm2020/card/card-action/card-action.component.mjs +4 -4
  36. package/esm2020/card/card-body/card-body.component.mjs +4 -4
  37. package/esm2020/card/card-footer/card-footer.component.mjs +4 -4
  38. package/esm2020/card/card-header/card-header.component.mjs +4 -4
  39. package/esm2020/card/card.component.mjs +4 -4
  40. package/esm2020/card/card.module.mjs +5 -5
  41. package/esm2020/carousel/carousel-slide.directive.mjs +4 -4
  42. package/esm2020/carousel/carousel.component.mjs +4 -4
  43. package/esm2020/carousel/carousel.module.mjs +5 -5
  44. package/esm2020/checkbox/checkbox.component.mjs +4 -4
  45. package/esm2020/checkbox/checkbox.module.mjs +5 -5
  46. package/esm2020/confirm-dialog/confirm-click.directive.mjs +4 -4
  47. package/esm2020/confirm-dialog/confirm-dialog.component.mjs +4 -4
  48. package/esm2020/confirm-dialog/confirm-dialog.module.mjs +5 -5
  49. package/esm2020/confirm-dialog/confirm-dialog.service.mjs +4 -4
  50. package/esm2020/data-exporter/data-exporter.module.mjs +5 -5
  51. package/esm2020/data-exporter/exporters/csv-exporter.mjs +4 -4
  52. package/esm2020/data-exporter/exporters/xlsx-exporter.mjs +4 -4
  53. package/esm2020/data-filters/data-filters.module.mjs +5 -5
  54. package/esm2020/data-filters/filters/data-filter-search/data-filter-search.component.mjs +4 -4
  55. package/esm2020/data-filters/filters/data-filter-text/data-filter-text.component.mjs +4 -4
  56. package/esm2020/data-filters/filters/data-filter-toggle-buttons/data-filter-toggle-buttons.component.mjs +4 -4
  57. package/esm2020/datatable/datatable/datatable.component.mjs +241 -32
  58. package/esm2020/datatable/datatable-action-menu/datatable-action-menu.component.mjs +5 -5
  59. package/esm2020/datatable/datatable-action-menu-item/datatable-action-menu-item.component.mjs +4 -4
  60. package/esm2020/datatable/datatable-column/datatable-column.component.mjs +4 -4
  61. package/esm2020/datatable/datatable-column-filter-menu/datatable-column-filter-menu.component.mjs +55 -0
  62. package/esm2020/datatable/datatable-column-filter-search-date/datatable-column-filter-search-date.component.mjs +54 -0
  63. package/esm2020/datatable/datatable-column-filter-search-numeric/datatable-column-filter-search-numeric.component.mjs +48 -0
  64. package/esm2020/datatable/datatable-column-filter-search-text/datatable-column-filter-search-text.component.mjs +44 -0
  65. package/esm2020/datatable/datatable-column-preferences/datatable-column-preferences.component.mjs +4 -4
  66. package/esm2020/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.mjs +4 -4
  67. package/esm2020/datatable/datatable-export-button/datatable-export-button.component.mjs +4 -4
  68. package/esm2020/datatable/datatable-footer/datatable-footer-tpl.directive.mjs +4 -4
  69. package/esm2020/datatable/datatable-footer/datatable-footer.directive.mjs +4 -4
  70. package/esm2020/datatable/datatable-menu-bar/datatable-menu-bar.component.mjs +4 -4
  71. package/esm2020/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.mjs +4 -4
  72. package/esm2020/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.mjs +4 -4
  73. package/esm2020/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.mjs +4 -4
  74. package/esm2020/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.mjs +4 -4
  75. package/esm2020/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.mjs +4 -4
  76. package/esm2020/datatable/datatable-row-detail/datatable-row-detail-tpl.directive.mjs +4 -4
  77. package/esm2020/datatable/datatable-row-detail/datatable-row-detail.directive.mjs +4 -4
  78. package/esm2020/datatable/datatable.module.mjs +53 -11
  79. package/esm2020/datatable/directives/datatable-action-menu-item.directive.mjs +4 -4
  80. package/esm2020/datatable/directives/datatable-action-menu-toggle.directive.mjs +4 -4
  81. package/esm2020/datatable/directives/datatable-cell-tpl.directive.mjs +4 -4
  82. package/esm2020/datatable/directives/datatable-column-filter-tpl.directive.mjs +16 -0
  83. package/esm2020/datatable/directives/datatable-column-filter.directive.mjs +26 -0
  84. package/esm2020/datatable/directives/datatable-filter.directive.mjs +4 -4
  85. package/esm2020/datatable/directives/datatable-row-action-item.directive.mjs +4 -4
  86. package/esm2020/datatable/models/action-item-column-position.mjs +5 -0
  87. package/esm2020/datatable/models/columns-data-filter.mjs +10 -0
  88. package/esm2020/datatable/models/columns-data-filters/models.mjs +74 -0
  89. package/esm2020/datatable/models/columns-data-filters/search-date.columns-data-filter.mjs +113 -0
  90. package/esm2020/datatable/models/columns-data-filters/search-numeric.columns-data-filter.mjs +104 -0
  91. package/esm2020/datatable/models/columns-data-filters/search-text.columns-data-filter.mjs +86 -0
  92. package/esm2020/datatable/models/columns-data-filters/utils.mjs +28 -0
  93. package/esm2020/datatable/models/datatable-config.mjs +3 -0
  94. package/esm2020/datatable/models/table-column.mjs +1 -1
  95. package/esm2020/datatable/public-api.mjs +15 -1
  96. package/esm2020/datatable/services/columns-alterations-manager.service.mjs +4 -4
  97. package/esm2020/datatable/services/columns-filters.service.mjs +109 -0
  98. package/esm2020/datatable/services/columns-manager.service.mjs +30 -5
  99. package/esm2020/datatable/services/datatable-column-changes.service.mjs +4 -4
  100. package/esm2020/datatable/services/datatable-preferences.service.mjs +4 -4
  101. package/esm2020/datatable/services/datatable-scrollbar-helper.service.mjs +4 -4
  102. package/esm2020/datatable/utils/create-action-menu-column.mjs +4 -3
  103. package/esm2020/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.mjs +4 -4
  104. package/esm2020/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.mjs +4 -4
  105. package/esm2020/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.mjs +4 -4
  106. package/esm2020/datatable-dynamic/datatable-dynamic.component.mjs +5 -5
  107. package/esm2020/datatable-dynamic/datatable-dynamic.module.mjs +5 -5
  108. package/esm2020/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.mjs +4 -4
  109. package/esm2020/datatable-dynamic/dynamic-datatable-def.service.mjs +4 -4
  110. package/esm2020/datatable-dynamic/dynamic-datatable-row-actions.service.mjs +4 -4
  111. package/esm2020/dynamic/action/api/dynamic-action-api.service.mjs +4 -4
  112. package/esm2020/dynamic/action/dynamic-action-helper.service.mjs +4 -4
  113. package/esm2020/dynamic/action/link/dynamic-action-link.service.mjs +4 -4
  114. package/esm2020/dynamic/action/modal/dynamic-action-modal.service.mjs +4 -4
  115. package/esm2020/dynamic/dynamic-value-helper.service.mjs +4 -4
  116. package/esm2020/dynamic/evaluators/exporters-data-evaluator/exporters-data-evaluator.mjs +4 -4
  117. package/esm2020/dynamic/evaluators/jexl-evaluator/jexl-evaluator.mjs +4 -4
  118. package/esm2020/dynamic-component-loader/dynamic-component-loader.module.mjs +5 -5
  119. package/esm2020/dynamic-component-loader/dynamic-component-loader.service.mjs +4 -4
  120. package/esm2020/footer-bar/footer-bar/footer-bar.component.mjs +4 -4
  121. package/esm2020/footer-bar/footer-bar.module.mjs +5 -5
  122. package/esm2020/form-field/form-field-error.directive.mjs +4 -4
  123. package/esm2020/form-field/form-field-help-text.directive.mjs +4 -4
  124. package/esm2020/form-field/form-field-label-tpl.directive.mjs +4 -4
  125. package/esm2020/form-field/form-field-required-indicator.component.mjs +4 -4
  126. package/esm2020/form-field/form-field.component.mjs +4 -4
  127. package/esm2020/form-field/form-field.module.mjs +5 -5
  128. package/esm2020/form-field/input.directive.mjs +4 -4
  129. package/esm2020/form-field-error/form-field-error/form-field-error.component.mjs +4 -4
  130. package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item-tpl.directive.mjs +4 -4
  131. package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item.directive.mjs +4 -4
  132. package/esm2020/form-field-error/form-field-error-list/form-field-error-list.component.mjs +4 -4
  133. package/esm2020/form-field-error/form-field-error.module.mjs +5 -5
  134. package/esm2020/framework/base-layout/base-layout.component.mjs +16 -6
  135. package/esm2020/framework/base-layout/base-layout.module.mjs +10 -5
  136. package/esm2020/framework/base-layout/directives/base-layout-content-footer.directive.mjs +4 -4
  137. package/esm2020/framework/base-layout/directives/base-layout-content-header.directive.mjs +4 -4
  138. package/esm2020/framework/base-layout/directives/base-layout-content.directive.mjs +4 -4
  139. package/esm2020/framework/base-layout/directives/base-layout-nav-toggle.directive.mjs +22 -6
  140. package/esm2020/framework/base-layout/directives/base-layout-side-bar-footer.directive.mjs +4 -4
  141. package/esm2020/framework/base-layout/directives/base-layout-side-bar-header.directive.mjs +16 -0
  142. package/esm2020/framework/base-layout/directives/base-layout-side-bar.directive.mjs +4 -4
  143. package/esm2020/framework/base-layout/directives/base-layout-top-bar.directive.mjs +4 -4
  144. package/esm2020/framework/base-layout/index.mjs +2 -1
  145. package/esm2020/framework/dashboard/dashboard-widget-container/dashboard-widget-container.component.mjs +4 -4
  146. package/esm2020/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.mjs +4 -4
  147. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widget-portal-outlet.directive.mjs +4 -4
  148. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences.service.mjs +4 -4
  149. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.component.mjs +4 -4
  150. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.service.mjs +4 -4
  151. package/esm2020/framework/dashboard/dashboard.component.mjs +4 -4
  152. package/esm2020/framework/dashboard/dashboard.module.mjs +5 -5
  153. package/esm2020/framework/dynamic-router/dynamic-router.module.mjs +5 -5
  154. package/esm2020/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.mjs +4 -4
  155. package/esm2020/framework/dynamic-router/resolvers/hierarchy-level.resolver.mjs +4 -4
  156. package/esm2020/framework/nav/horizontal-nav/horizontal-nav.component.mjs +55 -0
  157. package/esm2020/framework/nav/index.mjs +6 -0
  158. package/esm2020/framework/nav/nav-item/nav-item.component.mjs +227 -0
  159. package/esm2020/framework/nav/nav-utils.mjs +107 -0
  160. package/esm2020/framework/nav/nav.models.mjs +2 -0
  161. package/esm2020/framework/nav/nav.module.mjs +67 -0
  162. package/esm2020/framework/nav/nav.service.mjs +204 -0
  163. package/esm2020/framework/public-api.mjs +2 -1
  164. package/esm2020/framework/schema-form/schema-form-framework.component.mjs +4 -4
  165. package/esm2020/framework/schema-form/schema-form-framework.mjs +4 -4
  166. package/esm2020/framework/schema-form/schema-form.module.mjs +5 -5
  167. package/esm2020/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.mjs +4 -4
  168. package/esm2020/framework/schema-form-controls/schema-form-divider/schema-form-divider.component.mjs +4 -4
  169. package/esm2020/framework/schema-form-controls/schema-form-input/schema-form-input.component.mjs +4 -4
  170. package/esm2020/framework/schema-form-controls/schema-form-number/schema-form-number.component.mjs +4 -4
  171. package/esm2020/framework/schema-form-controls/schema-form-select/schema-form-select.component.mjs +4 -4
  172. package/esm2020/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.mjs +4 -4
  173. package/esm2020/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.mjs +4 -4
  174. package/esm2020/framework/schema-form-controls/schema-form-tel/schema-form-tel.component.mjs +4 -4
  175. package/esm2020/framework/schema-form-controls/schema-form-tiled-select/schema-form-tiled-select.component.mjs +4 -4
  176. package/esm2020/framework/side-nav/side-nav-item/side-nav-item.component.mjs +29 -68
  177. package/esm2020/framework/side-nav/side-nav-toggle/side-nav-toggle.component.mjs +14 -7
  178. package/esm2020/framework/side-nav/side-nav.component.mjs +117 -39
  179. package/esm2020/framework/side-nav/side-nav.models.mjs +1 -1
  180. package/esm2020/framework/side-nav/side-nav.module.mjs +11 -41
  181. package/esm2020/framework/side-nav/side-nav.service.mjs +4 -4
  182. package/esm2020/framework/top-bar/index.mjs +3 -1
  183. package/esm2020/framework/top-bar/top-bar-compact-menu-btn-detail.directive.mjs +16 -0
  184. package/esm2020/framework/top-bar/top-bar-item.directive.mjs +12 -6
  185. package/esm2020/framework/top-bar/top-bar-menu-btn-detail.directive.mjs +4 -4
  186. package/esm2020/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.mjs +8 -6
  187. package/esm2020/framework/top-bar/top-bar-menu.directive.mjs +4 -4
  188. package/esm2020/framework/top-bar/top-bar-nav-toggle-btn-detail.directive.mjs +16 -0
  189. package/esm2020/framework/top-bar/top-bar-title/top-bar-title.component.mjs +4 -4
  190. package/esm2020/framework/top-bar/top-bar.component.mjs +57 -13
  191. package/esm2020/framework/top-bar/top-bar.module.mjs +19 -9
  192. package/esm2020/google-maps/google-maps/google-maps.component.mjs +4 -4
  193. package/esm2020/google-maps/google-maps-api-loader/lazy-google-maps-api-loader.mjs +4 -4
  194. package/esm2020/google-maps/google-maps-api-loader/noop-google-maps-api-loader.mjs +4 -4
  195. package/esm2020/google-maps/google-maps-controls.service.mjs +4 -4
  196. package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.mjs +5 -5
  197. package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.directive.mjs +4 -4
  198. package/esm2020/google-maps/google-maps-recenter-button-control/google-maps-recenter-button-control.component.mjs +4 -4
  199. package/esm2020/google-maps/google-maps-upload-button-control/google-maps-upload-button-control.component.mjs +4 -4
  200. package/esm2020/google-maps/google-maps.module.mjs +5 -5
  201. package/esm2020/google-maps/google-maps.service.mjs +4 -4
  202. package/esm2020/google-maps/map-control.component.mjs +4 -4
  203. package/esm2020/google-maps/map-file-drop/map-file-drop.component.mjs +4 -4
  204. package/esm2020/google-maps/map-value-manager.service.mjs +4 -4
  205. package/esm2020/graphql/datatable/datatable-graphql.service.mjs +4 -4
  206. package/esm2020/graphql/datatable/index.mjs +4 -1
  207. package/esm2020/graphql/datatable/map-filter-states.mjs +1 -1
  208. package/esm2020/graphql/datatable/map-search-date-columns-data-filter-state-to-gql.mjs +139 -0
  209. package/esm2020/graphql/datatable/map-search-numeric-columns-data-filter-state-to-gql.mjs +75 -0
  210. package/esm2020/graphql/datatable/map-search-text-columns-data-filter-state-to-gql.mjs +44 -0
  211. package/esm2020/icon/icon/icon.component.mjs +4 -4
  212. package/esm2020/icon/icon-btn/icon-btn.component.mjs +4 -4
  213. package/esm2020/icon/icon-notification/icon-notification.component.mjs +4 -4
  214. package/esm2020/icon/icon.module.mjs +5 -5
  215. package/esm2020/layout/layout.module.mjs +5 -5
  216. package/esm2020/layout/layout.service.mjs +15 -5
  217. package/esm2020/loading/loading/loading.component.mjs +4 -4
  218. package/esm2020/loading/loading-overlay.service.mjs +4 -4
  219. package/esm2020/loading/loading.module.mjs +5 -5
  220. package/esm2020/menu/menu-divider.component.mjs +4 -4
  221. package/esm2020/menu/menu-footer/menu-footer.component.mjs +4 -4
  222. package/esm2020/menu/menu-footer-action/menu-footer-action.component.mjs +4 -4
  223. package/esm2020/menu/menu-header/menu-header.component.mjs +4 -4
  224. package/esm2020/menu/menu-item.component.mjs +4 -4
  225. package/esm2020/menu/menu-toggle.directive.mjs +9 -4
  226. package/esm2020/menu/menu.component.mjs +4 -4
  227. package/esm2020/menu/menu.module.mjs +5 -5
  228. package/esm2020/modal/directives/modal-close.directive.mjs +4 -4
  229. package/esm2020/modal/directives/modal-footer-tpl.directive.mjs +4 -4
  230. package/esm2020/modal/directives/modal-header-icon-tpl.directive.mjs +4 -4
  231. package/esm2020/modal/directives/modal-header-title-tpl.directive.mjs +4 -4
  232. package/esm2020/modal/directives/modal-title.directive.mjs +4 -4
  233. package/esm2020/modal/directives/modal.directive.mjs +4 -4
  234. package/esm2020/modal/modal/modal.component.mjs +4 -4
  235. package/esm2020/modal/modal-body/modal-body.component.mjs +4 -4
  236. package/esm2020/modal/modal-container/modal-container.component.mjs +4 -4
  237. package/esm2020/modal/modal-footer/modal-footer.component.mjs +4 -4
  238. package/esm2020/modal/modal-header/modal-header.component.mjs +4 -4
  239. package/esm2020/modal/modal.module.mjs +5 -5
  240. package/esm2020/modal/modal.service.mjs +4 -4
  241. package/esm2020/modal/route-modal/route-modal.component.mjs +4 -4
  242. package/esm2020/navigation-reload/navigation-reload.service.mjs +4 -4
  243. package/esm2020/popover/popover/popover.component.mjs +9 -5
  244. package/esm2020/popover/popover.directive.mjs +8 -4
  245. package/esm2020/popover/popover.module.mjs +5 -5
  246. package/esm2020/progress/progress-circle/progress-circle.component.mjs +4 -4
  247. package/esm2020/progress/progress.module.mjs +5 -5
  248. package/esm2020/rich-text/rich-text/rich-text.component.mjs +4 -4
  249. package/esm2020/rich-text/rich-text.module.mjs +5 -5
  250. package/esm2020/scrollbar/overlay-scrollbar.directive.mjs +4 -4
  251. package/esm2020/scrollbar/overlay-scrollbars.service.mjs +4 -4
  252. package/esm2020/scrollbar/scrollbar.module.mjs +5 -5
  253. package/esm2020/services/asset-loader.service.mjs +4 -4
  254. package/esm2020/services/font-loader.service.mjs +4 -4
  255. package/esm2020/services/preferences/preferences-manager.service.mjs +4 -4
  256. package/esm2020/services/router-helpers.service.mjs +4 -4
  257. package/esm2020/shared/components/password-input-reveal/password-input-reveal.component.mjs +4 -4
  258. package/esm2020/shared/directives/auto-focus.directive.mjs +4 -4
  259. package/esm2020/shared/directives/click-outside.directive.mjs +4 -4
  260. package/esm2020/shared/directives/disable-control.directive.mjs +4 -4
  261. package/esm2020/shared/directives/elem-resized.directive.mjs +4 -4
  262. package/esm2020/shared/directives/hover-class-toggle.directive.mjs +4 -4
  263. package/esm2020/shared/directives/hover-class.directive.mjs +4 -4
  264. package/esm2020/shared/directives/ng-select-extra.directive.mjs +4 -4
  265. package/esm2020/shared/directives/ngx-quill-extra.directive.mjs +4 -4
  266. package/esm2020/shared/pipes/mask-chars.pipe.mjs +4 -4
  267. package/esm2020/shared/pipes/truncate.pipe.mjs +4 -4
  268. package/esm2020/shared/shared.module.mjs +5 -5
  269. package/esm2020/storage/local-storage.service.mjs +4 -4
  270. package/esm2020/story-helpers/initial-route.service.mjs +4 -4
  271. package/esm2020/story-helpers/story-empty-with-route.component.mjs +4 -4
  272. package/esm2020/story-helpers/story-empty.component.mjs +4 -4
  273. package/esm2020/story-helpers/story-helper-components.module.mjs +5 -5
  274. package/esm2020/story-helpers/story-initial-route.mjs +5 -5
  275. package/esm2020/story-helpers/story-modal-container.component.mjs +4 -4
  276. package/esm2020/story-helpers/story-preferences-accessor.service.mjs +4 -4
  277. package/esm2020/story-helpers/story-toastr.service.mjs +4 -4
  278. package/esm2020/tabbed/directives/tabbed-tab-content.directive.mjs +4 -4
  279. package/esm2020/tabbed/directives/tabbed-tab.directive.mjs +4 -4
  280. package/esm2020/tabbed/tabbed-content/tabbed-content.component.mjs +4 -4
  281. package/esm2020/tabbed/tabbed-item/tabbed-item.component.mjs +4 -4
  282. package/esm2020/tabbed/tabbed.component.mjs +4 -4
  283. package/esm2020/tabbed/tabbed.module.mjs +5 -5
  284. package/esm2020/tabbed/tabbed.service.mjs +4 -4
  285. package/esm2020/table/public-api.mjs +4 -1
  286. package/esm2020/table/table/table.component.mjs +92 -7
  287. package/esm2020/table/table-cell-tpl.directive.mjs +17 -0
  288. package/esm2020/table/table-column-header-tpl.directive.mjs +17 -0
  289. package/esm2020/table/table-column.component.mjs +68 -0
  290. package/esm2020/table/table.module.mjs +25 -9
  291. package/esm2020/table-cell-type/services/table-cell-types-helpers.service.mjs +4 -4
  292. package/esm2020/table-cell-type/table-cell-type-selector.component.mjs +4 -4
  293. package/esm2020/table-cell-type/table-cell-type.module.mjs +5 -5
  294. package/esm2020/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.mjs +4 -4
  295. package/esm2020/table-cell-types/table-cell-type-date/table-cell-type-date.component.mjs +4 -4
  296. package/esm2020/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.mjs +4 -4
  297. package/esm2020/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.mjs +4 -4
  298. package/esm2020/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.mjs +4 -4
  299. package/esm2020/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.mjs +4 -4
  300. package/esm2020/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.mjs +4 -4
  301. package/esm2020/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.mjs +4 -4
  302. package/esm2020/table-cell-types/table-cell-type-string/table-cell-type-string.component.mjs +7 -5
  303. package/esm2020/table-cell-types/table-cell-types.module.mjs +5 -5
  304. package/esm2020/tel-input/phone-number.pipe.mjs +4 -4
  305. package/esm2020/tel-input/tel-input/tel-input.component.mjs +4 -4
  306. package/esm2020/tel-input/tel-input.directive.mjs +4 -4
  307. package/esm2020/tel-input/tel-input.module.mjs +5 -5
  308. package/esm2020/tiled-select/components/tiled-select/tiled-select.component.mjs +4 -4
  309. package/esm2020/tiled-select/components/tiled-select-tile/tiled-select-tile.component.mjs +4 -4
  310. package/esm2020/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.mjs +4 -4
  311. package/esm2020/tiled-select/directives/tiled-select-tile-icon-tpl.directive.mjs +4 -4
  312. package/esm2020/tiled-select/directives/tiled-select-tile-label-tpl.directive.mjs +4 -4
  313. package/esm2020/tiled-select/directives/tiled-select-tile-overlay.directive.mjs +4 -4
  314. package/esm2020/tiled-select/tiled-select.module.mjs +5 -5
  315. package/esm2020/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.mjs +4 -4
  316. package/esm2020/toggle-edit/toggle-edit-display-tpl.directive.mjs +4 -4
  317. package/esm2020/toggle-edit/toggle-edit-keyboard-listener.service.mjs +4 -4
  318. package/esm2020/toggle-edit/toggle-edit.component.mjs +4 -4
  319. package/esm2020/toggle-edit/toggle-edit.module.mjs +5 -5
  320. package/esm2020/toggle-group/toggle-group-option.directive.mjs +4 -4
  321. package/esm2020/toggle-group/toggle-group.directive.mjs +4 -4
  322. package/esm2020/toggle-group/toggle-group.module.mjs +5 -5
  323. package/esm2020/unsaved-changes-dialog/unsaved-changes-can-deactivate.mjs +4 -4
  324. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.component.mjs +4 -4
  325. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.guard.mjs +4 -4
  326. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.module.mjs +5 -5
  327. package/esm2020/utils/geo-json/coerce-feature-collection.mjs +1 -1
  328. package/esm2020/utils/geo-json/is-feature-collection.validator.mjs +1 -1
  329. package/esm2020/utils/geo-json/is-only-geometry-types.mjs +1 -1
  330. package/esm2020/utils/geo-json/merge-polygons.mjs +1 -1
  331. package/esm2020/utils/geo-json/no-inner-rings.validator.mjs +1 -1
  332. package/esm2020/utils/geo-json/split-multi-polygons.mjs +1 -1
  333. package/esm2020/vertical-list-filter/vertical-list-filter.component.mjs +4 -4
  334. package/esm2020/viewers/html-template-viewer/html-template-viewer.component.mjs +4 -4
  335. package/esm2020/viewers/html-template-viewer/html-template-viewer.module.mjs +5 -5
  336. package/esm2020/viewers/pdf-viewer/pdf-page/pdf-page.component.mjs +4 -4
  337. package/esm2020/viewers/pdf-viewer/pdf-renderer.service.mjs +4 -4
  338. package/esm2020/viewers/pdf-viewer/pdf-viewer.component.mjs +4 -4
  339. package/esm2020/viewers/pdf-viewer/pdf-viewer.module.mjs +5 -5
  340. package/esm2020/widget/directives/widget-drag-handle.directive.mjs +4 -4
  341. package/esm2020/widget/directives/widget-icon-tpl.directive.mjs +4 -4
  342. package/esm2020/widget/directives/widget-title-tpl.directive.mjs +4 -4
  343. package/esm2020/widget/preferences/widget-preferences.service.mjs +4 -4
  344. package/esm2020/widget/widget/widget.component.mjs +4 -4
  345. package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.component.mjs +4 -4
  346. package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.module.mjs +5 -5
  347. package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.component.mjs +4 -4
  348. package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.module.mjs +5 -5
  349. package/esm2020/widget/widget-content-components/widget-description/widget-description.component.mjs +4 -4
  350. package/esm2020/widget/widget-content-components/widget-description/widget-description.module.mjs +5 -5
  351. package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.component.mjs +4 -4
  352. package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.module.mjs +5 -5
  353. package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.component.mjs +4 -4
  354. package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.module.mjs +5 -5
  355. package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.component.mjs +4 -4
  356. package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.module.mjs +5 -5
  357. package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.component.mjs +4 -4
  358. package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.module.mjs +5 -5
  359. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item-icon-tpl.directive.mjs +4 -4
  360. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item.component.mjs +16 -16
  361. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.component.mjs +4 -4
  362. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.module.mjs +5 -5
  363. package/esm2020/widget/widget-content-components/widget-table/widget-table.component.mjs +4 -4
  364. package/esm2020/widget/widget-content-components/widget-table/widget-table.module.mjs +5 -5
  365. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer/widget-tile-footer.component.mjs +4 -4
  366. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.mjs +4 -4
  367. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.mjs +4 -4
  368. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-secondary-icon.directive.mjs +4 -4
  369. package/esm2020/widget/widget-content-components/widget-tile/widget-tile.component.mjs +7 -7
  370. package/esm2020/widget/widget-content-components/widget-tile/widget-tile.module.mjs +5 -5
  371. package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.component.mjs +4 -4
  372. package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.module.mjs +5 -5
  373. package/esm2020/widget/widget-footer/widget-footer.component.mjs +4 -4
  374. package/esm2020/widget/widget-registry.service.mjs +4 -4
  375. package/esm2020/widget/widget.module.mjs +5 -5
  376. package/fesm2015/theseam-ui-common-asset-reader.mjs +10 -10
  377. package/fesm2015/theseam-ui-common-asset-reader.mjs.map +1 -1
  378. package/fesm2015/theseam-ui-common-breadcrumbs.mjs +11 -11
  379. package/fesm2015/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  380. package/fesm2015/theseam-ui-common-buttons.mjs +25 -25
  381. package/fesm2015/theseam-ui-common-buttons.mjs.map +1 -1
  382. package/fesm2015/theseam-ui-common-card.mjs +19 -19
  383. package/fesm2015/theseam-ui-common-card.mjs.map +1 -1
  384. package/fesm2015/theseam-ui-common-carousel.mjs +10 -10
  385. package/fesm2015/theseam-ui-common-carousel.mjs.map +1 -1
  386. package/fesm2015/theseam-ui-common-checkbox.mjs +7 -7
  387. package/fesm2015/theseam-ui-common-checkbox.mjs.map +1 -1
  388. package/fesm2015/theseam-ui-common-confirm-dialog.mjs +13 -13
  389. package/fesm2015/theseam-ui-common-confirm-dialog.mjs.map +1 -1
  390. package/fesm2015/theseam-ui-common-data-exporter.mjs +10 -10
  391. package/fesm2015/theseam-ui-common-data-exporter.mjs.map +1 -1
  392. package/fesm2015/theseam-ui-common-data-filters.mjs +13 -13
  393. package/fesm2015/theseam-ui-common-data-filters.mjs.map +1 -1
  394. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs +26 -26
  395. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  396. package/fesm2015/theseam-ui-common-datatable.mjs +1112 -139
  397. package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
  398. package/fesm2015/theseam-ui-common-dynamic-component-loader.mjs +7 -7
  399. package/fesm2015/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
  400. package/fesm2015/theseam-ui-common-dynamic.mjs +21 -21
  401. package/fesm2015/theseam-ui-common-dynamic.mjs.map +1 -1
  402. package/fesm2015/theseam-ui-common-footer-bar.mjs +7 -7
  403. package/fesm2015/theseam-ui-common-footer-bar.mjs.map +1 -1
  404. package/fesm2015/theseam-ui-common-form-field-error.mjs +16 -16
  405. package/fesm2015/theseam-ui-common-form-field-error.mjs.map +1 -1
  406. package/fesm2015/theseam-ui-common-form-field.mjs +22 -22
  407. package/fesm2015/theseam-ui-common-form-field.mjs.map +1 -1
  408. package/fesm2015/theseam-ui-common-framework.mjs +1026 -277
  409. package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
  410. package/fesm2015/theseam-ui-common-google-maps.mjs +41 -41
  411. package/fesm2015/theseam-ui-common-google-maps.mjs.map +1 -1
  412. package/fesm2015/theseam-ui-common-graphql.mjs +257 -4
  413. package/fesm2015/theseam-ui-common-graphql.mjs.map +1 -1
  414. package/fesm2015/theseam-ui-common-icon.mjs +13 -13
  415. package/fesm2015/theseam-ui-common-icon.mjs.map +1 -1
  416. package/fesm2015/theseam-ui-common-layout.mjs +18 -9
  417. package/fesm2015/theseam-ui-common-layout.mjs.map +1 -1
  418. package/fesm2015/theseam-ui-common-loading.mjs +10 -10
  419. package/fesm2015/theseam-ui-common-loading.mjs.map +1 -1
  420. package/fesm2015/theseam-ui-common-menu.mjs +30 -25
  421. package/fesm2015/theseam-ui-common-menu.mjs.map +1 -1
  422. package/fesm2015/theseam-ui-common-modal.mjs +43 -43
  423. package/fesm2015/theseam-ui-common-modal.mjs.map +1 -1
  424. package/fesm2015/theseam-ui-common-navigation-reload.mjs +3 -3
  425. package/fesm2015/theseam-ui-common-navigation-reload.mjs.map +1 -1
  426. package/fesm2015/theseam-ui-common-popover.mjs +19 -11
  427. package/fesm2015/theseam-ui-common-popover.mjs.map +1 -1
  428. package/fesm2015/theseam-ui-common-progress.mjs +7 -7
  429. package/fesm2015/theseam-ui-common-progress.mjs.map +1 -1
  430. package/fesm2015/theseam-ui-common-rich-text.mjs +7 -7
  431. package/fesm2015/theseam-ui-common-rich-text.mjs.map +1 -1
  432. package/fesm2015/theseam-ui-common-scrollbar.mjs +10 -10
  433. package/fesm2015/theseam-ui-common-scrollbar.mjs.map +1 -1
  434. package/fesm2015/theseam-ui-common-services.mjs +12 -12
  435. package/fesm2015/theseam-ui-common-services.mjs.map +1 -1
  436. package/fesm2015/theseam-ui-common-shared.mjs +37 -37
  437. package/fesm2015/theseam-ui-common-shared.mjs.map +1 -1
  438. package/fesm2015/theseam-ui-common-storage.mjs +3 -3
  439. package/fesm2015/theseam-ui-common-storage.mjs.map +1 -1
  440. package/fesm2015/theseam-ui-common-story-helpers.mjs +26 -26
  441. package/fesm2015/theseam-ui-common-story-helpers.mjs.map +1 -1
  442. package/fesm2015/theseam-ui-common-tabbed.mjs +22 -22
  443. package/fesm2015/theseam-ui-common-tabbed.mjs.map +1 -1
  444. package/fesm2015/theseam-ui-common-table-cell-type.mjs +10 -10
  445. package/fesm2015/theseam-ui-common-table-cell-type.mjs.map +1 -1
  446. package/fesm2015/theseam-ui-common-table-cell-types.mjs +34 -32
  447. package/fesm2015/theseam-ui-common-table-cell-types.mjs.map +1 -1
  448. package/fesm2015/theseam-ui-common-table.mjs +207 -15
  449. package/fesm2015/theseam-ui-common-table.mjs.map +1 -1
  450. package/fesm2015/theseam-ui-common-tel-input.mjs +13 -13
  451. package/fesm2015/theseam-ui-common-tel-input.mjs.map +1 -1
  452. package/fesm2015/theseam-ui-common-tiled-select.mjs +22 -22
  453. package/fesm2015/theseam-ui-common-tiled-select.mjs.map +1 -1
  454. package/fesm2015/theseam-ui-common-toggle-edit.mjs +16 -16
  455. package/fesm2015/theseam-ui-common-toggle-edit.mjs.map +1 -1
  456. package/fesm2015/theseam-ui-common-toggle-group.mjs +10 -10
  457. package/fesm2015/theseam-ui-common-toggle-group.mjs.map +1 -1
  458. package/fesm2015/theseam-ui-common-unsaved-changes-dialog.mjs +13 -13
  459. package/fesm2015/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
  460. package/fesm2015/theseam-ui-common-utils.mjs.map +1 -1
  461. package/fesm2015/theseam-ui-common-vertical-list-filter.mjs +3 -3
  462. package/fesm2015/theseam-ui-common-vertical-list-filter.mjs.map +1 -1
  463. package/fesm2015/theseam-ui-common-viewers.mjs +20 -20
  464. package/fesm2015/theseam-ui-common-viewers.mjs.map +1 -1
  465. package/fesm2015/theseam-ui-common-widget.mjs +135 -135
  466. package/fesm2015/theseam-ui-common-widget.mjs.map +1 -1
  467. package/fesm2020/theseam-ui-common-asset-reader.mjs +10 -10
  468. package/fesm2020/theseam-ui-common-asset-reader.mjs.map +1 -1
  469. package/fesm2020/theseam-ui-common-breadcrumbs.mjs +11 -11
  470. package/fesm2020/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  471. package/fesm2020/theseam-ui-common-buttons.mjs +25 -25
  472. package/fesm2020/theseam-ui-common-buttons.mjs.map +1 -1
  473. package/fesm2020/theseam-ui-common-card.mjs +19 -19
  474. package/fesm2020/theseam-ui-common-card.mjs.map +1 -1
  475. package/fesm2020/theseam-ui-common-carousel.mjs +10 -10
  476. package/fesm2020/theseam-ui-common-carousel.mjs.map +1 -1
  477. package/fesm2020/theseam-ui-common-checkbox.mjs +7 -7
  478. package/fesm2020/theseam-ui-common-checkbox.mjs.map +1 -1
  479. package/fesm2020/theseam-ui-common-confirm-dialog.mjs +13 -13
  480. package/fesm2020/theseam-ui-common-confirm-dialog.mjs.map +1 -1
  481. package/fesm2020/theseam-ui-common-data-exporter.mjs +10 -10
  482. package/fesm2020/theseam-ui-common-data-exporter.mjs.map +1 -1
  483. package/fesm2020/theseam-ui-common-data-filters.mjs +13 -13
  484. package/fesm2020/theseam-ui-common-data-filters.mjs.map +1 -1
  485. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs +26 -26
  486. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  487. package/fesm2020/theseam-ui-common-datatable.mjs +1096 -139
  488. package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
  489. package/fesm2020/theseam-ui-common-dynamic-component-loader.mjs +7 -7
  490. package/fesm2020/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
  491. package/fesm2020/theseam-ui-common-dynamic.mjs +21 -21
  492. package/fesm2020/theseam-ui-common-dynamic.mjs.map +1 -1
  493. package/fesm2020/theseam-ui-common-footer-bar.mjs +7 -7
  494. package/fesm2020/theseam-ui-common-footer-bar.mjs.map +1 -1
  495. package/fesm2020/theseam-ui-common-form-field-error.mjs +16 -16
  496. package/fesm2020/theseam-ui-common-form-field-error.mjs.map +1 -1
  497. package/fesm2020/theseam-ui-common-form-field.mjs +22 -22
  498. package/fesm2020/theseam-ui-common-form-field.mjs.map +1 -1
  499. package/fesm2020/theseam-ui-common-framework.mjs +1028 -277
  500. package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
  501. package/fesm2020/theseam-ui-common-google-maps.mjs +41 -41
  502. package/fesm2020/theseam-ui-common-google-maps.mjs.map +1 -1
  503. package/fesm2020/theseam-ui-common-graphql.mjs +257 -4
  504. package/fesm2020/theseam-ui-common-graphql.mjs.map +1 -1
  505. package/fesm2020/theseam-ui-common-icon.mjs +13 -13
  506. package/fesm2020/theseam-ui-common-icon.mjs.map +1 -1
  507. package/fesm2020/theseam-ui-common-layout.mjs +18 -9
  508. package/fesm2020/theseam-ui-common-layout.mjs.map +1 -1
  509. package/fesm2020/theseam-ui-common-loading.mjs +10 -10
  510. package/fesm2020/theseam-ui-common-loading.mjs.map +1 -1
  511. package/fesm2020/theseam-ui-common-menu.mjs +30 -25
  512. package/fesm2020/theseam-ui-common-menu.mjs.map +1 -1
  513. package/fesm2020/theseam-ui-common-modal.mjs +43 -43
  514. package/fesm2020/theseam-ui-common-modal.mjs.map +1 -1
  515. package/fesm2020/theseam-ui-common-navigation-reload.mjs +3 -3
  516. package/fesm2020/theseam-ui-common-navigation-reload.mjs.map +1 -1
  517. package/fesm2020/theseam-ui-common-popover.mjs +19 -11
  518. package/fesm2020/theseam-ui-common-popover.mjs.map +1 -1
  519. package/fesm2020/theseam-ui-common-progress.mjs +7 -7
  520. package/fesm2020/theseam-ui-common-progress.mjs.map +1 -1
  521. package/fesm2020/theseam-ui-common-rich-text.mjs +7 -7
  522. package/fesm2020/theseam-ui-common-rich-text.mjs.map +1 -1
  523. package/fesm2020/theseam-ui-common-scrollbar.mjs +10 -10
  524. package/fesm2020/theseam-ui-common-scrollbar.mjs.map +1 -1
  525. package/fesm2020/theseam-ui-common-services.mjs +12 -12
  526. package/fesm2020/theseam-ui-common-services.mjs.map +1 -1
  527. package/fesm2020/theseam-ui-common-shared.mjs +37 -37
  528. package/fesm2020/theseam-ui-common-shared.mjs.map +1 -1
  529. package/fesm2020/theseam-ui-common-storage.mjs +3 -3
  530. package/fesm2020/theseam-ui-common-storage.mjs.map +1 -1
  531. package/fesm2020/theseam-ui-common-story-helpers.mjs +26 -26
  532. package/fesm2020/theseam-ui-common-story-helpers.mjs.map +1 -1
  533. package/fesm2020/theseam-ui-common-tabbed.mjs +22 -22
  534. package/fesm2020/theseam-ui-common-tabbed.mjs.map +1 -1
  535. package/fesm2020/theseam-ui-common-table-cell-type.mjs +10 -10
  536. package/fesm2020/theseam-ui-common-table-cell-type.mjs.map +1 -1
  537. package/fesm2020/theseam-ui-common-table-cell-types.mjs +34 -32
  538. package/fesm2020/theseam-ui-common-table-cell-types.mjs.map +1 -1
  539. package/fesm2020/theseam-ui-common-table.mjs +205 -15
  540. package/fesm2020/theseam-ui-common-table.mjs.map +1 -1
  541. package/fesm2020/theseam-ui-common-tel-input.mjs +13 -13
  542. package/fesm2020/theseam-ui-common-tel-input.mjs.map +1 -1
  543. package/fesm2020/theseam-ui-common-tiled-select.mjs +22 -22
  544. package/fesm2020/theseam-ui-common-tiled-select.mjs.map +1 -1
  545. package/fesm2020/theseam-ui-common-toggle-edit.mjs +16 -16
  546. package/fesm2020/theseam-ui-common-toggle-edit.mjs.map +1 -1
  547. package/fesm2020/theseam-ui-common-toggle-group.mjs +10 -10
  548. package/fesm2020/theseam-ui-common-toggle-group.mjs.map +1 -1
  549. package/fesm2020/theseam-ui-common-unsaved-changes-dialog.mjs +13 -13
  550. package/fesm2020/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
  551. package/fesm2020/theseam-ui-common-utils.mjs.map +1 -1
  552. package/fesm2020/theseam-ui-common-vertical-list-filter.mjs +3 -3
  553. package/fesm2020/theseam-ui-common-vertical-list-filter.mjs.map +1 -1
  554. package/fesm2020/theseam-ui-common-viewers.mjs +20 -20
  555. package/fesm2020/theseam-ui-common-viewers.mjs.map +1 -1
  556. package/fesm2020/theseam-ui-common-widget.mjs +135 -135
  557. package/fesm2020/theseam-ui-common-widget.mjs.map +1 -1
  558. package/framework/base-layout/base-layout.component.d.ts +4 -2
  559. package/framework/base-layout/base-layout.component.scss +18 -10
  560. package/framework/base-layout/base-layout.module.d.ts +11 -10
  561. package/framework/base-layout/directives/base-layout-nav-toggle.directive.d.ts +8 -3
  562. package/framework/base-layout/directives/base-layout-side-bar-header.directive.d.ts +9 -0
  563. package/framework/base-layout/index.d.ts +1 -0
  564. package/framework/base-layout/styles/_variables.scss +21 -0
  565. package/framework/nav/_nav-theme.scss +4 -0
  566. package/framework/nav/horizontal-nav/horizontal-nav.component.d.ts +25 -0
  567. package/framework/nav/horizontal-nav/horizontal-nav.component.scss +50 -0
  568. package/framework/nav/index.d.ts +5 -0
  569. package/framework/nav/nav-item/nav-item.component.d.ts +74 -0
  570. package/framework/nav/nav-item/nav-item.component.scss +203 -0
  571. package/framework/nav/nav-utils.d.ts +20 -0
  572. package/framework/nav/nav.models.d.ts +77 -0
  573. package/framework/nav/nav.module.d.ts +17 -0
  574. package/framework/nav/nav.service.d.ts +27 -0
  575. package/framework/nav/styles/_themes/light/_variables.scss +56 -0
  576. package/framework/nav/styles/_themes/primary/_variables.scss +56 -0
  577. package/framework/nav/styles/_utilities.scss +3 -0
  578. package/framework/nav/styles/_variables.scss +2 -0
  579. package/framework/public-api.d.ts +1 -0
  580. package/framework/side-nav/side-nav-item/side-nav-item.component.d.ts +7 -14
  581. package/framework/side-nav/side-nav-item/side-nav-item.component.scss +7 -5
  582. package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.d.ts +5 -3
  583. package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.scss +3 -6
  584. package/framework/side-nav/side-nav.component.d.ts +13 -1
  585. package/framework/side-nav/side-nav.component.scss +0 -1
  586. package/framework/side-nav/side-nav.models.d.ts +7 -1
  587. package/framework/side-nav/side-nav.module.d.ts +1 -9
  588. package/framework/side-nav/styles/_themes/light/_variables.scss +24 -14
  589. package/framework/side-nav/styles/_themes/primary/_variables.scss +8 -0
  590. package/framework/top-bar/index.d.ts +2 -0
  591. package/framework/top-bar/top-bar-compact-menu-btn-detail.directive.d.ts +8 -0
  592. package/framework/top-bar/top-bar-item.directive.d.ts +4 -1
  593. package/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.d.ts +5 -2
  594. package/framework/top-bar/top-bar-nav-toggle-btn-detail.directive.d.ts +8 -0
  595. package/framework/top-bar/top-bar.component.d.ts +25 -3
  596. package/framework/top-bar/top-bar.component.scss +7 -2
  597. package/framework/top-bar/top-bar.module.d.ts +10 -8
  598. package/graphql/datatable/datatable-graphql.service.d.ts +1 -1
  599. package/graphql/datatable/index.d.ts +3 -0
  600. package/graphql/datatable/map-filter-states.d.ts +2 -2
  601. package/graphql/datatable/map-search-date-columns-data-filter-state-to-gql.d.ts +4 -0
  602. package/graphql/datatable/map-search-numeric-columns-data-filter-state-to-gql.d.ts +4 -0
  603. package/graphql/datatable/map-search-text-columns-data-filter-state-to-gql.d.ts +4 -0
  604. package/layout/layout.service.d.ts +9 -1
  605. package/menu/menu-toggle.directive.d.ts +2 -1
  606. package/package.json +3 -3
  607. package/popover/popover/popover.component.d.ts +4 -1
  608. package/popover/popover.directive.d.ts +2 -1
  609. package/styles/vendor/ngx-datatable/_ngx-datatable.scss +83 -14
  610. package/styles/vendor/ngx-datatable/_themes/bootstrap/_variables.scss +38 -3
  611. package/table/public-api.d.ts +3 -0
  612. package/table/table/table.component.d.ts +21 -3
  613. package/table/table-cell-tpl.directive.d.ts +7 -0
  614. package/table/table-column-header-tpl.directive.d.ts +7 -0
  615. package/table/table-column.component.d.ts +24 -0
  616. package/table/table.module.d.ts +4 -1
@@ -1 +1 @@
1
- {"version":3,"file":"theseam-ui-common-datatable-dynamic.mjs","sources":["../../../projects/ui-common/datatable-dynamic/utils/defaults/set-dynamic-datatable-columns-defaults.ts","../../../projects/ui-common/datatable-dynamic/utils/defaults/set-dynamic-datatable-filter-menu-defaults.ts","../../../projects/ui-common/datatable-dynamic/utils/defaults/set-dynamic-datatable-options-defaults.ts","../../../projects/ui-common/datatable-dynamic/utils/defaults/set-dynamic-datatable-def-defaults.ts","../../../projects/ui-common/datatable-dynamic/dynamic-datatable-def.service.ts","../../../projects/ui-common/datatable-dynamic/dynamic-datatable-row-actions.service.ts","../../../projects/ui-common/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.ts","../../../projects/ui-common/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.ts","../../../projects/ui-common/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.html","../../../projects/ui-common/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.ts","../../../projects/ui-common/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.html","../../../projects/ui-common/datatable-dynamic/datatable-dynamic-menu-bar-token.ts","../../../projects/ui-common/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.ts","../../../projects/ui-common/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.html","../../../projects/ui-common/datatable-dynamic/datatable-dynamic.component.ts","../../../projects/ui-common/datatable-dynamic/datatable-dynamic.component.html","../../../projects/ui-common/datatable-dynamic/datatable-dynamic.module.ts","../../../projects/ui-common/datatable-dynamic/theseam-ui-common-datatable-dynamic.ts"],"sourcesContent":["import { DynamicDatatableColumn } from '../../datatable-dynamic-def'\n\nexport function setDynamicDatatableColumnsDefaults(\n columns: DynamicDatatableColumn[]\n) {\n for (const col of columns) {\n if (!col.cellType) {\n col.cellType = 'string'\n }\n }\n}\n","import { DynamicDatatableFilterMenu } from '../../datatable-dynamic-def'\n\nexport function setDynamicDatatableFilterMenuDefaults(\n filterMenu: DynamicDatatableFilterMenu\n) {\n if (!filterMenu.state) {\n filterMenu.state = 'default'\n }\n}\n","import { DynamicDatatableOptions } from '../../datatable-dynamic-def'\n\nexport function setDynamicDatatableOptionsDefaults(\n options: DynamicDatatableOptions\n) {\n if (options.virtualization === undefined || options.virtualization === null) {\n options.virtualization = true\n }\n}\n","import { DatatableDynamicDef } from '../../datatable-dynamic-def'\n\nimport { setDynamicDatatableColumnsDefaults } from './set-dynamic-datatable-columns-defaults'\nimport { setDynamicDatatableFilterMenuDefaults } from './set-dynamic-datatable-filter-menu-defaults'\nimport { setDynamicDatatableOptionsDefaults } from './set-dynamic-datatable-options-defaults'\n\nexport function setDynamicDatatableDefDefaults(\n def: DatatableDynamicDef\n) {\n setDynamicDatatableColumnsDefaults(def.columns)\n\n if (def.filterMenu) {\n setDynamicDatatableFilterMenuDefaults(def.filterMenu)\n }\n\n if (def.options) {\n setDynamicDatatableOptionsDefaults(def.options)\n }\n}\n","import { ComponentType } from '@angular/cdk/portal'\nimport { Inject, Injectable } from '@angular/core'\nimport { BehaviorSubject, combineLatest, Observable, of } from 'rxjs'\nimport { map, shareReplay, switchMap } from 'rxjs/operators'\n\nimport { IDataExporter, THESEAM_DATA_EXPORTER } from '@theseam/ui-common/data-exporter'\nimport { IDataFilter, THESEAM_DATA_FILTER_DEF } from '@theseam/ui-common/data-filters'\nimport { DynamicValueHelperService } from '@theseam/ui-common/dynamic'\nimport { hasProperty, notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { DynamicDatatableOptions } from './datatable-dynamic-def'\nimport { DatatableDynamicDef } from './datatable-dynamic-def'\nimport { DynamicDatatableMenuBar } from './models/dynamic-datatable-menu-bar'\nimport { DynamicDatatableFilterMenuItem } from './models/index'\nimport { setDynamicDatatableDefDefaults } from './utils/index'\n\n/**\n * Manages the data defined in the `DatatableDynamicDef`. Simplifies accessing\n * and observing the needed data based on the `DatatableDynamicDef`.\n */\n@Injectable()\nexport class DynamicDatatableDefService {\n\n /**\n * @deprecated\n * @ignore\n */\n private _dataExporters: IDataExporter[]\n\n /**\n * @deprecated\n * @ignore\n */\n private _dataFilters: { name: string, component: ComponentType<IDataFilter> }[]\n\n /** @ignore */\n private readonly _defSubject = new BehaviorSubject<DatatableDynamicDef | undefined>(undefined)\n\n /** Dynamic datatable definition. */\n public readonly def$: Observable<DatatableDynamicDef | undefined>\n\n /**\n * Exporters in the def that are available.\n * @deprecated\n */\n public readonly exporters$: Observable<IDataExporter[]>\n\n /**\n * Filter menu items in the def that are available.\n * @deprecated\n */\n public readonly filterMenuItems$: Observable<DynamicDatatableFilterMenuItem[]>\n\n /**\n * Observes whether the datatable has a filter menu.\n * @deprecated\n */\n public readonly hasFilterMenu$: Observable<boolean>\n\n /** Observes datatable options. */\n public readonly options$: Observable<DynamicDatatableOptions | undefined>\n\n /** Observes the datatable def menu bar. */\n public readonly menuBar$: Observable<DynamicDatatableMenuBar | undefined>\n\n constructor(\n @Inject(THESEAM_DATA_EXPORTER) dataExporters: IDataExporter[],\n @Inject(THESEAM_DATA_FILTER_DEF) dataFilters: { name: string, component: ComponentType<IDataFilter> }[],\n private _valueHelper: DynamicValueHelperService,\n ) {\n this._dataExporters = (dataExporters || [])\n this._dataFilters = (dataFilters || [])\n\n this.def$ = this._defSubject.asObservable()\n\n this.exporters$ = this.def$.pipe(\n map(def => def ? this._mapExporters(def) : []),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n\n this.filterMenuItems$ = this.def$.pipe(\n map(def => def ? this._mapFilterMenuItems(def) : []),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n\n this.hasFilterMenu$ = this.def$.pipe(\n switchMap(def => {\n if (!def) { return of(false) }\n\n // Check if the visibility can be determined by the state value only.\n if (def.filterMenu && def.filterMenu.state) {\n switch (def.filterMenu.state) {\n case 'always-visible': return of(true)\n case 'hidden': return of(false)\n }\n }\n\n // Check if there is anything to put in the filter menu.\n return combineLatest([\n this.exporters$.pipe(map(e => e.length > 0)),\n this.filterMenuItems$.pipe(map(f => f.length > 0))\n ]).pipe(map(v => v.indexOf(true) !== -1))\n }),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n\n this.options$ = this.def$.pipe(\n map(def => def ? def.options : undefined),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n\n this.menuBar$ = this.def$.pipe(\n map(def => (notNullOrUndefined(def) && hasProperty(def, 'menuBar')) ? def.menuBar : undefined),\n // tap(v => console.log('menubar', v)),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n }\n\n /** Sets the `DatatableDynamicDef` that defines the datatable. */\n public setDef(def: DatatableDynamicDef | undefined): void {\n if (def) { setDynamicDatatableDefDefaults(def) }\n this._defSubject.next(def || undefined)\n }\n\n /** Map the def exporters to the provided `IDataExporter` objects. */\n private _mapExporters(def: DatatableDynamicDef): IDataExporter[] {\n if (!def.filterMenu || !Array.isArray(def.filterMenu.exporters)) {\n return []\n }\n\n return def.filterMenu.exporters\n .map(e => this._dataExporters.find(de => de.name === e))\n .filter(notNullOrUndefined)\n }\n\n /** Map the def filter menu items to provided components. */\n private _mapFilterMenuItems(def: DatatableDynamicDef): DynamicDatatableFilterMenuItem[] {\n if (!def.filterMenu || !def.filterMenu.filters || !Array.isArray(def.filterMenu.filters)) {\n return []\n }\n\n return def.filterMenu.filters\n .map(f => {\n const _df = this._dataFilters.find(df => df.name === f.name)\n if (_df) { return { ...f, component: _df.component } }\n })\n .filter(notNullOrUndefined)\n }\n\n}\n","import { Injectable } from '@angular/core'\nimport { from, Observable, of } from 'rxjs'\nimport { map, switchMap, toArray } from 'rxjs/operators'\n\nimport { DynamicValueHelperService } from '@theseam/ui-common/dynamic'\nimport { notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { DynamicDatatableRow } from './datatable-dynamic-def'\nimport { DynamicDatatableDefService } from './dynamic-datatable-def.service'\nimport { DynamicDatatableRowAction } from './models/dynamic-datatable-row-action'\nimport { DynamicDatatableRowActionContext } from './models/dynamic-datatable-row-action-context'\n\n@Injectable()\nexport class DynamicDatatableRowActionsService {\n\n constructor(\n private _valueHelper: DynamicValueHelperService,\n private _dynamicDef: DynamicDatatableDefService\n ) { }\n\n /**\n * Observe actions for specified row\n */\n public rowActions(row: DynamicDatatableRow): Observable<DynamicDatatableRowAction[]> {\n return this._dynamicDef.def$.pipe(\n map(def => (def && def.rowActions) ? def.rowActions || [] : []),\n switchMap(rowActions => rowActions\n ? from(rowActions).pipe(\n map(rowAction => {\n if (Object.prototype.hasOwnProperty.call(rowAction, 'hidden')) {\n if (typeof rowAction.hidden === 'boolean') {\n return rowAction.hidden ? undefined : rowAction\n } else {\n const context = this._getRowActionContext(row, rowAction)\n // TODO: Fix async eval\n const isHidden = this._valueHelper.evalSync(rowAction.hidden, context)\n return isHidden ? undefined : rowAction\n }\n }\n return rowAction\n }),\n toArray(),\n map(v => v.filter(notNullOrUndefined))\n )\n : of([])\n )\n )\n }\n\n /** @ignore */\n private _getRowActionContext(row: DynamicDatatableRow, rowActionDef: DynamicDatatableRowAction): DynamicDatatableRowActionContext {\n return {\n row\n }\n }\n\n}\n","import { LocationStrategy } from '@angular/common'\nimport {\n Attribute,\n Directive,\n ElementRef,\n Input,\n isDevMode,\n OnChanges,\n OnDestroy,\n Renderer2,\n SimpleChanges,\n} from '@angular/core'\nimport { ActivatedRoute, QueryParamsHandling, Router, RouterLink, RouterLinkWithHref } from '@angular/router'\nimport { from, fromEvent, Observable, of, ReplaySubject, Subscription } from 'rxjs'\nimport { catchError, mapTo, switchMap, tap } from 'rxjs/operators'\n\nimport { AssetReaderHelperService } from '@theseam/ui-common/asset-reader'\nimport {\n DynamicActionHelperService,\n DynamicActionUiAnchorDef,\n DynamicActionUiButtonDef,\n DynamicActionUiDef,\n DynamicValueHelperService\n} from '@theseam/ui-common/dynamic'\nimport { getAttribute, hasProperty, toggleAttribute } from '@theseam/ui-common/utils'\n\nimport { DynamicDatatableRow } from '../datatable-dynamic-def'\nimport type { DynamicDatatableActionMenuRecord } from '../models/dynamic-datatable-action-menu-record'\nimport { DynamicDatatableRowAction } from '../models/dynamic-datatable-row-action'\nimport { DynamicDatatableRowActionContext } from '../models/dynamic-datatable-row-action-context'\n\n/**\n * Class to act as a substitute to `routerLink` directive until the menu items\n * can be dynamically built in a clean way with or without `routerLink`.\n */\nexport class DatatableDynamicActionMenuItemRouterLink {\n\n private _rLink?: RouterLink\n private _rLinkWithHref?: RouterLinkWithHref\n\n // private _clickSubscription?: Subscription\n private _rLinkClickEventListener?: any\n\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n @Attribute('tabindex') tabIndex: string | null,\n private renderer: Renderer2,\n private el: ElementRef,\n private locationStrategy: LocationStrategy\n ) {\n if (el.nativeElement.nodeName.toLowerCase() === 'a') {\n this._rLinkWithHref = new RouterLinkWithHref(\n router,\n route,\n '0', // TODO: Fix type.\n renderer,\n el.nativeElement,\n locationStrategy\n )\n // console.log('rLinkWithHref', this.rLinkWithHref)\n\n this._rLinkClickEventListener = this.el.nativeElement.addEventListener('click', (event: MouseEvent) => {\n // console.log('this._rLinkWithHref', this._rLinkWithHref, this._rLinkWithHref && this._rLinkWithHref.href)\n if (this._rLinkWithHref) {\n return this._rLinkWithHref.onClick(event.button, event.ctrlKey, event.shiftKey, event.altKey, event.metaKey)\n }\n })\n } else {\n this._rLink = new RouterLink(\n router,\n route,\n tabIndex as string,\n renderer,\n el\n )\n // console.log('rLink', this.rLink)\n\n this._rLinkClickEventListener = this.el.nativeElement.addEventListener('click', () => {\n // console.log('this._rLink', this._rLink && this._rLink.urlTree)\n if (this._rLink) { return (this._rLink as any).onClick() }\n })\n\n // this._clickSubscription = fromEvent(el.nativeElement, 'click')\n // .subscribe(() => {\n // if (this._rLink) {\n // this._rLink.onClick()\n // } else {\n // if (this._clickSubscription && !this._clickSubscription.closed) {\n // this._clickSubscription.unsubscribe()\n // }\n // }\n // })\n }\n }\n\n get routerLink(): RouterLink | undefined { return this._rLink }\n get routerLinkWithHref(): RouterLinkWithHref | undefined { return this._rLinkWithHref }\n\n set routerLinkInput(commands: any[] | string) {\n if (this._rLink) {\n this._rLink.routerLink = commands\n } else if (this._rLinkWithHref) {\n this._rLinkWithHref.routerLink = commands\n }\n }\n\n set queryParams(value: { [k: string]: any }) {\n if (this._rLink) {\n this._rLink.queryParams = value\n } else if (this._rLinkWithHref) {\n this._rLinkWithHref.queryParams = value\n }\n }\n\n set fragment(value: string) {\n if (this._rLink) {\n this._rLink.fragment = value\n } else if (this._rLinkWithHref) {\n this._rLinkWithHref.fragment = value\n }\n }\n\n set queryParamsHandling(value: QueryParamsHandling) {\n if (this._rLink) {\n this._rLink.queryParamsHandling = value\n } else if (this._rLinkWithHref) {\n this._rLinkWithHref.queryParamsHandling = value\n }\n }\n\n set preserveFragment(value: boolean) {\n if (this._rLink) {\n this._rLink.preserveFragment = value\n } else if (this._rLinkWithHref) {\n this._rLinkWithHref.preserveFragment = value\n }\n }\n\n set skipLocationChange(value: boolean) {\n if (this._rLink) {\n this._rLink.skipLocationChange = value\n } else if (this._rLinkWithHref) {\n this._rLinkWithHref.skipLocationChange = value\n }\n }\n\n set replaceUrl(value: boolean) {\n if (this._rLink) {\n this._rLink.replaceUrl = value\n } else if (this._rLinkWithHref) {\n this._rLinkWithHref.replaceUrl = value\n }\n }\n\n set state(value: { [k: string]: any }) {\n if (this._rLink) {\n this._rLink.state = value\n } else if (this._rLinkWithHref) {\n this._rLinkWithHref.state = value\n }\n }\n\n set target(value: string | undefined) {\n if (this._rLinkWithHref) {\n this._rLinkWithHref.target = value as string\n\n if (value) {\n this.renderer.setAttribute(this.el.nativeElement, 'target', value)\n } else {\n toggleAttribute(this.el.nativeElement, 'target', false)\n }\n }\n }\n\n public destroy() {\n // if (this._clickSubscription && !this._clickSubscription.closed) {\n // this._clickSubscription.unsubscribe()\n // }\n if (this._rLinkClickEventListener) {\n this.el.nativeElement.removeEventListener('click', this._rLinkClickEventListener)\n this._rLinkClickEventListener = null\n }\n\n if (this._rLinkWithHref && this._rLinkWithHref.ngOnDestroy) {\n this._rLinkWithHref.ngOnDestroy()\n }\n }\n\n}\n\n// TODO: Refactor this directive. It got way more complex instead of more\n// simplified like it was supposed to be.\n@Directive({\n selector: '[seamDatatableDynamicActionMenuItem]',\n exportAs: 'seamDatatableDynamicActionMenuItem'\n})\nexport class DatatableDynamicActionMenuItemDirective implements OnDestroy, OnChanges {\n\n @Input()\n // get seamDatatableDynamicActionMenuItem(): DynamicDatatableActionMenuRecord { return this._record }\n set seamDatatableDynamicActionMenuItem(value: DynamicDatatableActionMenuRecord) {\n this._record.next(value)\n }\n private _record = new ReplaySubject<DynamicDatatableActionMenuRecord>(1)\n\n private _clickSubscription?: Subscription\n private _menuRouterLink?: DatatableDynamicActionMenuItemRouterLink\n\n private _recordSubscription = Subscription.EMPTY\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private _renderer: Renderer2,\n private _valueHelper: DynamicValueHelperService,\n private _actionHelper: DynamicActionHelperService,\n private _assetReaderHelper: AssetReaderHelperService,\n private _router: Router,\n private _route: ActivatedRoute,\n private _locationStrategy: LocationStrategy\n ) {\n this._recordSubscription = this._record.pipe(\n // tap(v => console.log('record', v)),\n switchMap(record => this._update(record)),\n tap(() => { this._setInvalidActionState(false) }),\n catchError(error => {\n // eslint-disable-next-line no-console\n if (isDevMode()) { console.error(error) }\n this._setInvalidActionState(true)\n return of(undefined)\n }),\n // tap(v => console.log('record DONE', v))\n ).subscribe()\n }\n\n ngOnDestroy() {\n this._recordSubscription.unsubscribe()\n this._unsubClick()\n if (this._menuRouterLink && this._menuRouterLink.routerLinkWithHref) {\n this._menuRouterLink.routerLinkWithHref.ngOnDestroy()\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n // console.log('ngOnChanges', changes, this, this._menuRouterLink)\n if (this._menuRouterLink && this._menuRouterLink.routerLinkWithHref) {\n this._menuRouterLink.routerLinkWithHref.ngOnChanges({})\n if (this._menuRouterLink.routerLinkWithHref.href) {\n if (getAttribute(this._elementRef.nativeElement, 'href') !== this._menuRouterLink.routerLinkWithHref.href) {\n this._renderer.setAttribute(this._elementRef.nativeElement, 'href', this._menuRouterLink.routerLinkWithHref.href)\n }\n } else {\n toggleAttribute(this._elementRef.nativeElement, 'href', false)\n }\n }\n }\n\n public _update(record: DynamicDatatableActionMenuRecord): Observable<void> {\n this._unsubClick()\n\n return from(this._getUiProps(record)).pipe(\n switchMap(uiProps => this._isAnchor()\n ? this._updateAnchorElement(record, uiProps as DynamicActionUiAnchorDef)\n : this._updateButtonElement(record, uiProps as DynamicActionUiButtonDef)\n )\n )\n }\n\n private _updateAnchorElement(\n record: DynamicDatatableActionMenuRecord,\n uiProps: DynamicActionUiAnchorDef\n ): Observable<void> {\n const _stream: Observable<any> = of(undefined)\n\n switch (uiProps.triggerType) {\n case 'link': {\n // console.log('Handle \"link\" triggerType.', uiProps)\n // this._tryInitTabIndex()\n this._tryInitBlockClick(record, uiProps)\n this._initMenuItemRouterLink(record, uiProps)\n\n break\n }\n case 'link-external': {\n // console.log('Handle \"link-external\" triggerType.', uiProps)\n // this._tryInitTabIndex()\n this._tryInitBlockClick(record, uiProps)\n if (hasProperty(uiProps, 'linkUrl')) {\n this._setAttr('href', uiProps.linkUrl)\n }\n if (hasProperty(uiProps, 'linkExtras')) {\n if (hasProperty(uiProps.linkExtras, 'target')) {\n this._setAttr('target', uiProps.linkExtras.target)\n }\n }\n // TODO: Consider making the ItemRouterLink work with external urls.\n // this._initMenuItemRouterLink(record, uiProps)\n\n break\n }\n // TODO: Unless we decide to add a route for openning assets, this would\n // be confusing to a user.\n // case 'link-asset': {\n // console.log('Handle \"link-asset\" triggerType.', uiProps)\n // // this._tryInitTabIndex()\n // this._tryInitBlockClick(record, uiProps)\n // break\n // }\n default: throw Error('[DatatableDynamicActionMenuItemDirective] ' +\n `triggerType ${uiProps.triggerType} is not valid for _updateAnchorElement().`)\n }\n\n return _stream// .pipe(mapTo(undefined))\n }\n\n private _updateButtonElement(\n record: DynamicDatatableActionMenuRecord,\n uiProps: DynamicActionUiAnchorDef | DynamicActionUiButtonDef\n ): Observable<void> {\n let _stream: Observable<any> = of(undefined)\n // this._updateClickElement(record, uiProps as DynamicActionUiButtonDef)\n switch (uiProps.triggerType) {\n case 'link-asset': {\n // console.log('Handle \"link-asset\" triggerType.', uiProps)\n // this._tryInitTabIndex()\n this._tryInitBlockClick(record, uiProps)\n _stream = _stream.pipe(switchMap(() => this._updateAssetElement(record, uiProps)))\n break\n }\n case 'click': {\n // console.log('Handle \"click\" triggerType.', uiProps)\n this._tryInitBlockClick(record, uiProps)\n _stream = _stream.pipe(switchMap(() => this._updateClickElement(record, uiProps)))\n break\n }\n default: throw Error('[DatatableDynamicActionMenuItemDirective] ' +\n `triggerType ${uiProps.triggerType} is not valid for _updateAnchorElement().`)\n }\n\n return _stream// .pipe(mapTo(undefined))\n }\n\n private _updateAssetElement(\n record: DynamicDatatableActionMenuRecord,\n uiProps: DynamicActionUiAnchorDef | DynamicActionUiButtonDef\n ): Observable<void> {\n // console.log('_updateAssetElement')\n // return of(undefined)\n // console.log('this._elementRef.nativeElement', this._elementRef.nativeElement)\n const t = fromEvent(this._elementRef.nativeElement, 'click').pipe(\n tap(event => {\n // const _context = this._getContext(record._row, record.rowAction)\n // const context = { ..._context, event, uiProps }\n // const result = this._valueHelper.evalSync(uiProps.blockClickExpr, context)\n // console.log(record, uiProps)\n // console.log('_updateClickElement click', (<any>event).button, event)\n if (this._assetReaderHelper) {\n if (uiProps.triggerType === 'link-asset' && hasProperty(uiProps, 'linkUrl')) {\n const url = uiProps.linkUrl\n let target: string | undefined\n if (hasProperty(uiProps, 'linkExtras') && hasProperty(uiProps.linkExtras, 'target')) {\n target = uiProps.linkExtras.target\n }\n this._assetReaderHelper.openLink(url, true, true, target)\n }\n }\n // if (!result) {\n // event.preventDefault()\n // event.stopPropagation()\n // }\n }),\n mapTo(undefined)\n )\n\n return of(undefined).pipe(\n // tap(() => console.log('starting _updateButtonElement')),\n switchMap(() => t),\n )\n }\n\n private _updateClickElement(\n record: DynamicDatatableActionMenuRecord,\n uiProps: DynamicActionUiButtonDef\n ): Observable<void> {\n // console.log('_updateClickElement', record, uiProps)\n // return of(undefined)\n return fromEvent(this._elementRef.nativeElement, 'click').pipe(\n switchMap(event => {\n const _context = this._getContext(record._row, record.rowAction)\n const context = { ..._context, event, uiProps }\n // console.log('click', (<any>event).button, event)\n // if (!result) {\n // event.preventDefault()\n // event.stopPropagation()\n // }\n\n return this._actionHelper.exec(uiProps._actionDef, context)\n }),\n mapTo(undefined)\n )\n }\n\n private _unsubClick() {\n if (this._clickSubscription && !this._clickSubscription.closed) {\n this._clickSubscription.unsubscribe()\n }\n }\n\n private _setAttr(attr: string, value: string) {\n this._renderer.setAttribute(this._elementRef.nativeElement, attr, value)\n }\n\n private _tryInitTabIndex() {\n if (getAttribute(this._elementRef.nativeElement, 'tabindex') === null) {\n this._renderer.setAttribute(this._elementRef.nativeElement, 'tabindex', '0')\n }\n }\n\n private _tryInitBlockClick(\n record: DynamicDatatableActionMenuRecord,\n uiProps: DynamicActionUiDef\n ) {\n this._unsubClick()\n if (hasProperty(uiProps, 'blockClickExpr')) {\n this._clickSubscription = this._blockClickExprObservable(uiProps, record).subscribe()\n }\n }\n\n private _blockClickExprObservable(\n uiProps: DynamicActionUiDef,\n record: DynamicDatatableActionMenuRecord\n ) {\n return fromEvent(this._elementRef.nativeElement, 'click').pipe(\n tap(event => {\n const _context = this._getContext(record._row, record.rowAction)\n const context = { ..._context, event, uiProps }\n const result = this._valueHelper.evalSync(uiProps.blockClickExpr, context)\n // console.log('click', result, (<any>event).button, event)\n if (!result) {\n event.preventDefault()\n event.stopPropagation()\n }\n }),\n mapTo(undefined)\n )\n }\n\n private _initMenuItemRouterLink(\n record: DynamicDatatableActionMenuRecord,\n uiProps: DynamicActionUiAnchorDef\n ) {\n this._menuRouterLink = new DatatableDynamicActionMenuItemRouterLink(\n this._router,\n this._route,\n getAttribute(this._elementRef.nativeElement, 'tabindex'),\n this._renderer,\n this._elementRef,\n this._locationStrategy\n )\n // console.log(this._menuRouterLink)\n\n this._menuRouterLink.routerLinkInput = uiProps.linkUrl as string\n\n if (hasProperty(uiProps, 'linkExtras')) {\n if (hasProperty(uiProps.linkExtras, 'target')) {\n this._menuRouterLink.target = uiProps.linkExtras.target\n }\n if (hasProperty(uiProps.linkExtras, 'queryParams')) {\n this._menuRouterLink.queryParams = uiProps.linkExtras.queryParams\n }\n if (hasProperty(uiProps.linkExtras, 'fragment')) {\n this._menuRouterLink.fragment = uiProps.linkExtras.fragment\n }\n if (hasProperty(uiProps.linkExtras, 'queryParamsHandling')) {\n this._menuRouterLink.queryParamsHandling = uiProps.linkExtras.queryParamsHandling\n }\n if (hasProperty(uiProps.linkExtras, 'preserveFragment')) {\n this._menuRouterLink.preserveFragment = uiProps.linkExtras.preserveFragment\n }\n if (hasProperty(uiProps.linkExtras, 'skipLocationChange')) {\n this._menuRouterLink.skipLocationChange = uiProps.linkExtras.skipLocationChange\n }\n if (hasProperty(uiProps.linkExtras, 'replaceUrl')) {\n this._menuRouterLink.replaceUrl = uiProps.linkExtras.replaceUrl\n }\n if (hasProperty(uiProps.linkExtras, 'state')) {\n this._menuRouterLink.state = uiProps.linkExtras.state\n }\n }\n\n this.ngOnChanges({})\n }\n\n private _isAnchor(): boolean {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'a'\n }\n\n private _getUiProps(record: DynamicDatatableActionMenuRecord): Promise<DynamicActionUiDef> {\n const context = this._getContext(record._row, record.rowAction)\n return this._actionHelper.getUiProps(record.rowAction.action, context)\n }\n\n /** @ignore */\n private _getContext(row: DynamicDatatableRow, rowActionDef: DynamicDatatableRowAction): DynamicDatatableRowActionContext {\n return {\n row\n }\n }\n\n private _setInvalidActionState(invalid: boolean = false) {\n const element = this._elementRef.nativeElement\n toggleAttribute(element, 'disabled', invalid)\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core'\nimport { BehaviorSubject, from, Observable, of } from 'rxjs'\nimport { concatMap, filter, switchMap, toArray } from 'rxjs/operators'\n\nimport { faEllipsisH } from '@fortawesome/free-solid-svg-icons'\nimport { DynamicValueHelperService } from '@theseam/ui-common/dynamic'\nimport { hasProperty, notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { DynamicDatatableRow } from '../datatable-dynamic-def'\nimport { DynamicDatatableRowActionsService } from '../dynamic-datatable-row-actions.service'\nimport { DynamicDatatableActionMenuElementTypes, DynamicDatatableActionMenuRecord } from '../models/dynamic-datatable-action-menu-record'\nimport { DynamicDatatableRowAction } from '../models/dynamic-datatable-row-action'\nimport { DynamicDatatableRowActionContext } from '../models/dynamic-datatable-row-action-context'\n\n@Component({\n selector: 'seam-datatable-dynamic-action-menu',\n templateUrl: './datatable-dynamic-action-menu.component.html',\n styleUrls: ['./datatable-dynamic-action-menu.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatatableDynamicActionMenuComponent {\n\n faEllipsisH = faEllipsisH\n\n @Input()\n get row() { return this._row.value }\n set row(value: DynamicDatatableRow | undefined) {\n this._row.next(value || undefined)\n }\n private _row = new BehaviorSubject<DynamicDatatableRow | undefined>(undefined)\n\n @Input()\n get actionDefs() { return this._actionDefs.value }\n set actionDefs(value: DynamicDatatableRowAction[]) {\n this._actionDefs.next(value || [])\n }\n private _actionDefs = new BehaviorSubject<DynamicDatatableRowAction[]>([])\n\n _menuRecords$: Observable<DynamicDatatableActionMenuRecord[]>\n\n /** @ignore */\n _actionMenuPositions = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ]\n\n constructor(\n private _valueHelper: DynamicValueHelperService,\n private _dynamicRowActions: DynamicDatatableRowActionsService\n ) {\n // this._menuRecords$ = combineLatest([ this._row, this._actionDefs ]).pipe(\n // switchMap(([ row, actionDefs ]) => !!row ? this._mapRecords(row, actionDefs) : of([]))\n // )\n this._menuRecords$ = this._row.pipe(\n switchMap(row => row\n ? this._dynamicRowActions.rowActions(row).pipe(\n switchMap(actionDefs => this._mapRecords(row, actionDefs))\n )\n : of([])\n ),\n // tap(v => console.log('actions', v))\n )\n\n // this._menuRecords$.subscribe()\n }\n\n // TODO: Consider moving this to `DynamicDatatableRowActionsService`.\n private _mapRecords<A extends DynamicDatatableRowAction>(\n row: DynamicDatatableRow,\n actionDefs: A[]\n ): Observable<DynamicDatatableActionMenuRecord[]> {\n return from(actionDefs).pipe(\n concatMap(actionDef => {\n return (async () => {\n const _rowAction: DynamicDatatableRowAction = {\n ...actionDef\n }\n\n const context = this._getRowActionContext(row, actionDef)\n\n if (hasProperty(_rowAction, 'hidden')) {\n _rowAction.hidden = await this._valueHelper.eval(_rowAction.hidden, context)\n if (_rowAction.hidden) {\n return undefined\n }\n }\n\n _rowAction.label = await this._valueHelper.eval(actionDef.label, context)\n\n if (hasProperty(_rowAction, 'disabled')) {\n _rowAction.disabled = await this._valueHelper.eval(_rowAction.disabled, context)\n }\n\n const record: DynamicDatatableActionMenuRecord = {\n _row: row,\n _def: actionDef,\n rowAction: _rowAction,\n elementType: this._expectedElementType(actionDef)\n }\n\n return record\n })()\n }),\n filter(notNullOrUndefined),\n toArray()\n )\n }\n\n /** @ignore */\n private _getRowActionContext(\n row: DynamicDatatableRow,\n rowActionDef: DynamicDatatableRowAction\n ): DynamicDatatableRowActionContext {\n return {\n row\n }\n }\n\n private _expectedElementType(def: DynamicDatatableRowAction): DynamicDatatableActionMenuElementTypes {\n const action = def.action\n\n if (action.type === 'link') {\n if (hasProperty(action as any, 'asset')) {\n return 'button'\n }\n return 'a'\n }\n\n return 'button'\n }\n\n}\n","<seam-menu #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\">\n\n <ng-container *ngFor=\"let record of _menuRecords$ | async\">\n\n <a *ngIf=\"record.elementType === 'a'\"\n seamMenuItem\n [seamDatatableDynamicActionMenuItem]=\"record\"\n class=\"list-group-item list-group-item-action py-1\">{{ record.rowAction.label }}</a>\n\n <button *ngIf=\"record.elementType === 'button'\"\n seamMenuItem\n [seamDatatableDynamicActionMenuItem]=\"record\"\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\">{{ record.rowAction.label }}</button>\n\n </ng-container>\n\n <!-- <ng-container *ngIf=\"(item.routerLink || item.href) && !item.confirmDialog; else noRouterLink\">\n <a *ngIf=\"item.href; else noHref\"\n seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [attr.href]=\"item.href\"\n [target]=\"item.target\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n <ng-template #noHref>\n <a seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [queryParams]=\"item.queryParams\"\n [fragment]=\"item.fragment\"\n [queryParamsHandling]=\"item.queryParamsHandling\"\n [preserveFragment]=\"item.preserveFragment\"\n [skipLocationChange]=\"item.skipLocationChange\"\n [replaceUrl]=\"item.replaceUrl\"\n [state]=\"item.state\"\n [routerLink]=\"item.routerLink\"\n [target]=\"item.target\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n </ng-template>\n </ng-container>\n <ng-template #noRouterLink>\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </button>\n </ng-template>\n </ng-container> -->\n</seam-menu>\n\n<button type=\"button\" class=\"datatable-action-button btn\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"$any(_actionMenuPositions)\"\n title=\"Row Actions\">\n <seam-icon [icon]=\"faEllipsisH\"></seam-icon>\n</button>\n","import { ComponentPortal, PortalInjector } from '@angular/cdk/portal'\nimport { ChangeDetectionStrategy, Component, Injector, Input, OnInit } from '@angular/core'\n\nimport { THESEAM_DATA_FILTER_OPTIONS } from '@theseam/ui-common/data-filters'\nimport type { ComponentType } from '@theseam/ui-common/models'\n\n@Component({\n selector: 'seam-datatable-dynamic-filter-container',\n templateUrl: './datatable-dynamic-filter-container.component.html',\n styleUrls: ['./datatable-dynamic-filter-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatatableDynamicFilterContainerComponent<C> implements OnInit {\n\n @Input()\n set filterComponent(value: ComponentType<C> | undefined | null) {\n this._filterComponent = value\n // if (this._filterComponent !== value) {\n // this._setPortal(value)\n // }\n }\n get filterComponent() { return this._filterComponent }\n private _filterComponent: ComponentType<C> | undefined | null\n\n @Input() options: any\n\n _portal: ComponentPortal<C> | null = null\n\n constructor(\n private _injector: Injector\n ) { }\n\n ngOnInit() {\n if (this.filterComponent) {\n this._setPortal(this.filterComponent)\n }\n }\n\n private _setPortal(component: ComponentType<C>) {\n if (this._portal) {\n this._portal = null\n }\n\n if (component) {\n this._portal = new ComponentPortal(component, undefined, this._createInjector())\n } else {\n this._portal = null\n }\n }\n\n private _createInjector(): PortalInjector {\n return new PortalInjector(this._injector, new WeakMap <any, any>([\n [ THESEAM_DATA_FILTER_OPTIONS, this.options ]\n ]))\n }\n\n}\n","<ng-template [cdkPortalOutlet]=\"_portal\"></ng-template>\n","import { InjectionToken } from '@angular/core'\n\nimport { IDatatableDynamicMenuBarItemManifest } from './datatable-dynamic-menu-bar-item-manifest'\n\nexport const THESEAM_DATATABLE_DYNAMIC_MENUBAR_ITEM = new InjectionToken<IDatatableDynamicMenuBarItemManifest>(\n 'IDatatableDynamicMenuBarItemManifest'\n)\n","import { ComponentPortal, PortalInjector } from '@angular/cdk/portal'\nimport { ChangeDetectionStrategy, Component, Inject, Injector, Input, Optional } from '@angular/core'\nimport { BehaviorSubject, Observable } from 'rxjs'\nimport { map, switchMap } from 'rxjs/operators'\n\nimport { DynamicValueHelperService } from '@theseam/ui-common/dynamic'\nimport { TheSeamDynamicComponentLoader } from '@theseam/ui-common/dynamic-component-loader'\nimport { hasProperty } from '@theseam/ui-common/utils'\n\nimport { IDatatableDynamicMenuBarItemManifest } from '../datatable-dynamic-menu-bar-item-manifest'\nimport { THESEAM_DATATABLE_DYNAMIC_MENUBAR_ITEM } from '../datatable-dynamic-menu-bar-token'\nimport {\n DynamicDatatableMenuBar,\n DynamicDatatableMenuBarColumn,\n DynamicDatatableMenuBarItem,\n DynamicDatatableMenuBarRow,\n DynamicDatatableMenuBarRowLayoutTriColumn\n} from '../models/dynamic-datatable-menu-bar'\n\nexport interface IDatatableDynamicMenuBarContentItem {\n // styles?: string | string[]\n // cssClass?: string | string[]\n portal?: ComponentPortal<object>\n // component?: string | ComponentType<{}>\n // config?: any\n}\n\nexport interface IDatatableDynamicMenuBarContentColumn {\n styles?: string | string[]\n cssClass?: string | string[]\n items?: IDatatableDynamicMenuBarContentItem[]\n}\n\nexport interface IDatatableDynamicMenuBarContentRowLayoutTriColumn {\n columnLeft?: IDatatableDynamicMenuBarContentColumn\n columnCenter?: IDatatableDynamicMenuBarContentColumn\n columnRight?: IDatatableDynamicMenuBarContentColumn\n}\n\nexport interface IDatatableDynamicMenuBarContentRow {\n styles?: string | string[]\n cssClass?: string | string[]\n priority?: number\n layoutType?: string\n layout?: IDatatableDynamicMenuBarContentRowLayoutTriColumn\n}\n\nexport interface IDatatableDynamicMenuBarContentRowContext {\n row: DynamicDatatableMenuBarRow\n}\n\nexport interface IDatatableDynamicMenuBarContentColumnContext {\n column: DynamicDatatableMenuBarColumn\n row: DynamicDatatableMenuBarRow\n}\n\nexport interface IDatatableDynamicMenuBarContentItemContext {\n item: DynamicDatatableMenuBarItem\n row: DynamicDatatableMenuBarRow\n column: DynamicDatatableMenuBarColumn\n}\n\n@Component({\n selector: 'seam-datatable-dynamic-menu-bar-content',\n templateUrl: './datatable-dynamic-menu-bar-content.component.html',\n styleUrls: ['./datatable-dynamic-menu-bar-content.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatatableDynamicMenuBarContentComponent {\n\n private readonly _def = new BehaviorSubject<DynamicDatatableMenuBar | undefined>(undefined)\n\n @Input()\n set def(value: DynamicDatatableMenuBar | undefined) { this._def.next(value) }\n get def(): DynamicDatatableMenuBar | undefined { return this._def.value }\n\n public readonly def$: Observable<DynamicDatatableMenuBar | undefined>\n\n readonly _rows$: Observable<IDatatableDynamicMenuBarContentRow[]>\n\n constructor(\n private readonly _valueHelper: DynamicValueHelperService,\n private readonly _dynamicComponentLoader: TheSeamDynamicComponentLoader,\n private readonly _injector: Injector,\n @Optional() @Inject(THESEAM_DATATABLE_DYNAMIC_MENUBAR_ITEM)\n private readonly _menuBarItemManifests?: IDatatableDynamicMenuBarItemManifest[]\n ) {\n this.def$ = this._def.asObservable()\n // .pipe(tap(v => console.log('def$', v)))\n\n this._rows$ = this.def$.pipe(switchMap(def => this._mapRows((def && def.rows) || [])))\n // .pipe(tap(v => console.log('_rows$', v)))\n }\n\n private _mapRows(rows: DynamicDatatableMenuBarRow[]): Promise<IDatatableDynamicMenuBarContentRow[]> {\n return Promise.all(rows.map(r => this._mapRow(r)))\n }\n\n private async _mapRow(row: DynamicDatatableMenuBarRow): Promise<IDatatableDynamicMenuBarContentRow> {\n const result: IDatatableDynamicMenuBarContentRow = { }\n const context = this._createRowContext(row)\n\n if (hasProperty(row, 'styles')) {\n result.styles = await this._valueHelper.eval(row.styles, context)\n }\n\n if (hasProperty(row, 'cssClass')) {\n result.cssClass = await this._valueHelper.eval(row.cssClass, context)\n }\n\n if (hasProperty(row, 'priority')) {\n result.priority = await this._valueHelper.eval(row.priority, context)\n }\n\n result.layoutType = row.layout.type\n result.layout = await this._mapRowLayout(row.layout, row)\n\n return result\n }\n\n private async _mapRowLayout(\n layout: DynamicDatatableMenuBarRowLayoutTriColumn,\n row: DynamicDatatableMenuBarRow\n ): Promise<IDatatableDynamicMenuBarContentRowLayoutTriColumn> {\n const result: IDatatableDynamicMenuBarContentRowLayoutTriColumn = { }\n\n if (hasProperty(layout, 'columnLeft')) {\n result.columnLeft = await this._mapColumn(layout.columnLeft, row)\n }\n\n if (hasProperty(layout, 'columnCenter')) {\n result.columnCenter = await this._mapColumn(layout.columnCenter, row)\n }\n\n if (hasProperty(layout, 'columnRight')) {\n result.columnRight = await this._mapColumn(layout.columnRight, row)\n }\n\n return result\n }\n\n private async _mapColumn(\n column: DynamicDatatableMenuBarColumn,\n row: DynamicDatatableMenuBarRow\n ): Promise<IDatatableDynamicMenuBarContentColumn> {\n const result: IDatatableDynamicMenuBarContentColumn = { }\n const context = this._createColumnContext(column, row)\n\n if (hasProperty(column, 'styles')) {\n result.styles = await this._valueHelper.eval(column.styles, context)\n }\n\n if (hasProperty(column, 'cssClass')) {\n result.cssClass = await this._valueHelper.eval(column.cssClass, context)\n }\n\n result.items = await Promise.all(column.items.map(v => this._mapItem(v, row, column)))\n\n return result\n }\n\n private async _mapItem(\n item: DynamicDatatableMenuBarItem,\n row: DynamicDatatableMenuBarRow,\n column: DynamicDatatableMenuBarColumn\n ): Promise<IDatatableDynamicMenuBarContentItem> {\n const result: IDatatableDynamicMenuBarContentItem = { }\n const context = this._createItemContext(item, row, column)\n\n // if (hasProperty(item, 'styles')) {\n // result.styles = await this._valueHelper.eval(item.styles, context)\n // }\n\n // if (hasProperty(item, 'cssClass')) {\n // result.cssClass = await this._valueHelper.eval(item.cssClass, context)\n // }\n\n if (hasProperty(item, 'component')) {\n // result.component = await this._valueHelper.eval(item.component, context)\n const component = await this._valueHelper.eval(item.component, context)\n\n let data: any\n if (hasProperty(item, 'data')) {\n // result.data = await this._valueHelper.eval(item.data, context)\n // console.log('%cdata', 'color:cyan', item.data)\n data = await this._valueHelper.eval(item.data, context)\n // console.log('%cdata', 'color:limegreen', data)\n }\n\n result.portal = await this._getComponentPortal(component, data)\n }\n\n return result\n }\n\n private _createRowContext(row: DynamicDatatableMenuBarRow): IDatatableDynamicMenuBarContentRowContext {\n return {\n row\n }\n }\n\n private _createColumnContext(\n column: DynamicDatatableMenuBarColumn,\n row: DynamicDatatableMenuBarRow\n ): IDatatableDynamicMenuBarContentColumnContext {\n return {\n row,\n column\n }\n }\n\n private _createItemContext(\n item: DynamicDatatableMenuBarItem,\n row: DynamicDatatableMenuBarRow,\n column: DynamicDatatableMenuBarColumn\n ): IDatatableDynamicMenuBarContentItemContext {\n return {\n item,\n row,\n column\n }\n }\n\n private async _getComponentPortal(component: string, data?: any): Promise<ComponentPortal<object> | undefined> {\n const manifest = (this._menuBarItemManifests || []).find(m => m.name === component)\n\n if (!manifest) {\n // TODO: Make sure the component is skipped instead of erroring outside of dev mode.\n throw Error(`MenuBar manifest for '${component}' not found.`)\n }\n\n // TODO: Create a new injector with the data injected\n let injector = this._injector\n if (manifest.dataToken) {\n injector = new PortalInjector(this._injector, new WeakMap([\n [manifest.dataToken, data]\n ]))\n }\n\n if (typeof manifest.component === 'string') {\n this._dynamicComponentLoader.getComponentFactory<object>(manifest.component).pipe(\n map(componentFactory => {\n return new ComponentPortal(\n componentFactory.componentType,\n null,\n injector,\n (componentFactory as any /* ComponentFactoryBoundToModule */).ngModule.componentFactoryResolver\n )\n })\n ).toPromise()\n } else {\n return new ComponentPortal(manifest.component, null, injector, null)\n }\n }\n\n}\n","<seam-datatable-menu-bar-row *ngFor=\"let row of _rows$ | async; last as isLast\"\n [class.mb-2]=\"!isLast\"\n [ngClass]=\"$any(row.cssClass)\"\n [ngStyle]=\"$any(row.styles)\">\n <ng-container *ngIf=\"row.layoutType === 'tri-column'\">\n <seam-datatable-menu-bar-column-left *ngIf=\"row.layout?.columnLeft\"\n [ngClass]=\"$any(row.layout).cssClass\"\n [ngStyle]=\"$any(row.layout).styles\">\n <ng-container *ngIf=\"row.layout?.columnLeft?.items\">\n <ng-container *ngFor=\"let item of row.layout?.columnLeft?.items\">\n <ng-template [cdkPortalOutlet]=\"item.portal\"></ng-template>\n </ng-container>\n </ng-container>\n </seam-datatable-menu-bar-column-left>\n <seam-datatable-menu-bar-column-center *ngIf=\"row.layout?.columnCenter\"\n [ngClass]=\"$any(row.layout).cssClass\"\n [ngStyle]=\"$any(row.layout).styles\">\n <ng-container *ngIf=\"row.layout?.columnCenter?.items\">\n <ng-container *ngFor=\"let item of row.layout?.columnCenter?.items\">\n <ng-template [cdkPortalOutlet]=\"item.portal\"></ng-template>\n </ng-container>\n </ng-container>\n </seam-datatable-menu-bar-column-center>\n <seam-datatable-menu-bar-column-right *ngIf=\"row.layout?.columnRight\"\n [ngClass]=\"$any(row.layout).cssClass\"\n [ngStyle]=\"$any(row.layout).styles\">\n <ng-container *ngIf=\"row.layout?.columnRight?.items\">\n <ng-container *ngFor=\"let item of row.layout?.columnRight?.items\">\n <ng-template [cdkPortalOutlet]=\"item.portal\"></ng-template>\n </ng-container>\n </ng-container>\n </seam-datatable-menu-bar-column-right>\n </ng-container>\n</seam-datatable-menu-bar-row>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core'\nimport { Observable } from 'rxjs'\nimport { map } from 'rxjs/operators'\n\nimport { IDataExporter } from '@theseam/ui-common/data-exporter'\n\nimport {\n DatatableDynamicDef,\n DynamicDatatableOptions\n} from './datatable-dynamic-def'\nimport { DynamicDatatableDefService } from './dynamic-datatable-def.service'\nimport { DynamicDatatableRowActionsService } from './dynamic-datatable-row-actions.service'\nimport { DynamicDatatableFilterMenuItem } from './models/dynamic-datatable-filter-menu-item'\nimport { DynamicDatatableMenuBar } from './models/dynamic-datatable-menu-bar'\n\n/**\n * # EXPERIMENTAL\n *\n * NOTE: This component is still experimental. When stable all standard\n * datatables must use this component, unless there is a good reason not to, in\n * our apps.\n *\n * ----------------------------------------------------------------------------\n *\n * Datatable that is built from a json definition.\n *\n * All standard datatables in our apps must use this component, unless there is\n * a good reason not to. If a standard datatable does not use this component\n * then an explaination comment needs to be clearly provided in the code to\n * avoid getting migrated to this component.\n *\n * A few reasons this component should to be used:\n * - We can, more easily, control what a datatable in our app does by requiring\n * the definition follow a json schema, instead of having full scripting\n * access available to the developer.\n * + By using json we can maintain the tables from any external app/language\n * that can produce a json string.\n * + More scripting access often leads to different hacks across the tables\n * that should have just been supported by this component if it is a feature\n * a datatable should be able to do in an app of ours.\n * - We can allow any of our tables to be configured by the server.\n * + By supporting configuration on the server we can change the tables\n * without a new build and do things like allowing non-developers/clients to\n * maintain the tables functionality.\n */\n@Component({\n selector: 'seam-datatable-dynamic',\n templateUrl: './datatable-dynamic.component.html',\n styleUrls: ['./datatable-dynamic.component.scss'],\n providers: [\n DynamicDatatableDefService,\n DynamicDatatableRowActionsService\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatatableDynamicComponent {\n\n /** The `DatatableDynamicDef` that defines the datatable. */\n @Input() set def(value: DatatableDynamicDef | undefined | null) {\n this._dynamicDef.setDef(value || undefined)\n }\n\n /**\n * Observes whether the datatable has a def.\n * @ignore\n */\n _hasDef$: Observable<boolean>\n\n /**\n * Observes whether the datatable has a menu bar.\n */\n menuBar$: Observable<DynamicDatatableMenuBar | undefined>\n\n /**\n * The available exporters.\n * @ignore\n */\n _exporters$: Observable<IDataExporter[]>\n\n /**\n * The 'common' type filter menu items.\n * @ignore\n */\n _commonFilterMenuItems$: Observable<DynamicDatatableFilterMenuItem[]>\n\n /**\n * Observes whether the datatable has a 'full-search' menu item.\n * @ignore\n */\n _hasFullSearch$: Observable<boolean>\n\n /**\n * Observes whether the datatable has a filter menu.\n * @ignore\n */\n _hasFilterMenu$: Observable<boolean>\n\n /**\n * Observes datatable options.\n * @ignore\n */\n _options$: Observable<DynamicDatatableOptions | undefined>\n\n /**\n * TODO: Implement def columns parser.\n * @ignore\n */\n _tmp_columns$: Observable<any>\n\n /**\n * TODO: Implement def rows parser.\n * @ignore\n */\n _tmp_rows$: Observable<any>\n\n constructor(\n private readonly _dynamicDef: DynamicDatatableDefService\n ) {\n this._hasDef$ = this._dynamicDef.def$.pipe(map(def => !!def))\n\n this.menuBar$ = this._dynamicDef.menuBar$\n\n this._exporters$ = this._dynamicDef.exporters$\n\n this._commonFilterMenuItems$ = this._dynamicDef.filterMenuItems$\n .pipe(map(f => f.filter(_f => _f.type === 'common')))\n\n this._hasFullSearch$ = this._dynamicDef.filterMenuItems$\n .pipe(map(f => !!f.find(_f => _f.type === 'full-search')))\n\n this._hasFilterMenu$ = this._dynamicDef.hasFilterMenu$\n\n this._options$ = this._dynamicDef.options$\n\n this._tmp_columns$ = this._dynamicDef.def$.pipe(\n map(def => def ? def.columns : [])\n )\n\n this._tmp_rows$ = this._dynamicDef.def$.pipe(\n map(def => def ? def.rows : []),\n // tap(v => console.log('_tmp_rows$', v))\n )\n }\n\n}\n","<ng-container *ngIf=\"_hasDef$ | async\">\n <seam-datatable *ngIf=\"_options$ | async as opts\"\n class=\"w-100 h-100\"\n [columns]=\"_tmp_columns$ | async\"\n [rows]=\"_tmp_rows$ | async\"\n [virtualization]=\"opts.virtualization\">\n\n <seam-datatable-menu-bar *ngIf=\"menuBar$ | async as menuBar\">\n <seam-datatable-dynamic-menu-bar-content [def]=\"menuBar\"></seam-datatable-dynamic-menu-bar-content>\n </seam-datatable-menu-bar>\n <!-- <seam-datatable-menu-bar *ngIf=\"_hasFilterMenu$ | async\">\n <div class=\"d-flex flex-row pb-2\">\n <div class=\"d-flex flex-row justify-content-end flex-grow-1\">\n <seam-data-filter-search seamDatatableFilter *ngIf=\"_hasFullSearch$\"></seam-data-filter-search>\n </div>\n </div>\n <div class=\"d-flex flex-row\">\n <div class=\"d-flex justify-content-center flex-grow-1\">\n <ng-container *ngFor=\"let r of _commonFilterMenuItems$ | async; let isFirst = first\">\n <seam-datatable-dynamic-filter-container\n [class.ml-1]=\"!isFirst\"\n [filterComponent]=\"r.component\"\n [options]=\"r.options\">\n </seam-datatable-dynamic-filter-container>\n </ng-container>\n </div>\n <seam-datatable-export-button *ngIf=\"_exporters$ | async as exporters\"\n [exporters]=\"exporters\">\n </seam-datatable-export-button>\n </div>\n </seam-datatable-menu-bar> -->\n\n <ng-template seamDatatableRowActionItem let-row>\n <seam-datatable-dynamic-action-menu [row]=\"row\"></seam-datatable-dynamic-action-menu>\n </ng-template>\n\n </seam-datatable>\n</ng-container>\n","import { PortalModule } from '@angular/cdk/portal'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { RouterModule } from '@angular/router'\n\nimport { TheSeamButtonsModule } from '@theseam/ui-common/buttons'\nimport { TheSeamDataExporterModule } from '@theseam/ui-common/data-exporter'\nimport { TheSeamDataFiltersModule } from '@theseam/ui-common/data-filters'\nimport { TheSeamDatatableModule } from '@theseam/ui-common/datatable'\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\nimport { TheSeamMenuModule } from '@theseam/ui-common/menu'\nimport { TheSeamSharedModule } from '@theseam/ui-common/shared'\nimport { TheSeamTableCellTypesModule } from '@theseam/ui-common/table-cell-types'\n\nimport { DatatableDynamicActionMenuComponent } from './datatable-dynamic-action-menu/datatable-dynamic-action-menu.component'\nimport { DatatableDynamicFilterContainerComponent } from './datatable-dynamic-filter-container/datatable-dynamic-filter-container.component'\nimport { DatatableDynamicMenuBarContentComponent } from './datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component'\nimport { DatatableDynamicComponent } from './datatable-dynamic.component'\nimport { DatatableDynamicActionMenuItemDirective } from './directives/datatable-dynamic-action-menu-item.directive'\n\n@NgModule({\n declarations: [\n DatatableDynamicComponent,\n DatatableDynamicFilterContainerComponent,\n DatatableDynamicActionMenuComponent,\n DatatableDynamicActionMenuItemDirective,\n DatatableDynamicMenuBarContentComponent,\n ],\n imports: [\n CommonModule,\n TheSeamSharedModule,\n TheSeamDatatableModule,\n TheSeamTableCellTypesModule,\n TheSeamDataExporterModule,\n TheSeamDataFiltersModule,\n TheSeamIconModule,\n PortalModule,\n RouterModule,\n TheSeamMenuModule,\n TheSeamButtonsModule\n ],\n exports: [\n DatatableDynamicComponent,\n TheSeamDatatableModule,\n DatatableDynamicActionMenuItemDirective\n ]\n})\nexport class TheSeamDatatableDynamicModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.DynamicDatatableDefService","i4","i2.DynamicDatatableRowActionsService","i3","i6.DatatableDynamicActionMenuItemDirective","i1","i5","i1.DynamicDatatableDefService","i2","i4.DatatableDynamicActionMenuComponent","i5.DatatableDynamicMenuBarContentComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEM,SAAU,kCAAkC,CAChD,OAAiC,EAAA;AAEjC,IAAA,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;AACzB,QAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;AACjB,YAAA,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAA;AACxB,SAAA;AACF,KAAA;AACH;;ACRM,SAAU,qCAAqC,CACnD,UAAsC,EAAA;AAEtC,IAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AACrB,QAAA,UAAU,CAAC,KAAK,GAAG,SAAS,CAAA;AAC7B,KAAA;AACH;;ACNM,SAAU,kCAAkC,CAChD,OAAgC,EAAA;IAEhC,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,IAAI,OAAO,CAAC,cAAc,KAAK,IAAI,EAAE;AAC3E,QAAA,OAAO,CAAC,cAAc,GAAG,IAAI,CAAA;AAC9B,KAAA;AACH;;ACFM,SAAU,8BAA8B,CAC5C,GAAwB,EAAA;AAExB,IAAA,kCAAkC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAE/C,IAAI,GAAG,CAAC,UAAU,EAAE;AAClB,QAAA,qCAAqC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;AACtD,KAAA;IAED,IAAI,GAAG,CAAC,OAAO,EAAE;AACf,QAAA,kCAAkC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AAChD,KAAA;AACH;;ACFA;;;AAGG;MAEU,0BAA0B,CAAA;AA4CrC,IAAA,WAAA,CACiC,aAA8B,EAC5B,WAAsE,EAC/F,YAAuC,EAAA;QAAvC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAA2B;;AAhChC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAkC,SAAS,CAAC,CAAA;QAkC5F,IAAI,CAAC,cAAc,IAAI,aAAa,IAAI,EAAE,CAAC,CAAA;QAC3C,IAAI,CAAC,YAAY,IAAI,WAAW,IAAI,EAAE,CAAC,CAAA;QAEvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAA;QAE3C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAC9B,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAC9C,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAC/C,CAAA;QAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CACpC,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EACpD,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAC/C,CAAA;AAED,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAClC,SAAS,CAAC,GAAG,IAAG;YACd,IAAI,CAAC,GAAG,EAAE;AAAE,gBAAA,OAAO,EAAE,CAAC,KAAK,CAAC,CAAA;AAAE,aAAA;;YAG9B,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE;AAC1C,gBAAA,QAAQ,GAAG,CAAC,UAAU,CAAC,KAAK;oBAC1B,KAAK,gBAAgB,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAA;oBACtC,KAAK,QAAQ,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAA;AAChC,iBAAA;AACF,aAAA;;AAGD,YAAA,OAAO,aAAa,CAAC;AACnB,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC5C,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;aACnD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAC3C,SAAC,CAAC,EACF,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAC/C,CAAA;AAED,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAC5B,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,EACzC,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAC/C,CAAA;AAED,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAC5B,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;;AAE9F,QAAA,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAC/C,CAAA;KACF;;AAGM,IAAA,MAAM,CAAC,GAAoC,EAAA;AAChD,QAAA,IAAI,GAAG,EAAE;YAAE,8BAA8B,CAAC,GAAG,CAAC,CAAA;AAAE,SAAA;QAChD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,SAAS,CAAC,CAAA;KACxC;;AAGO,IAAA,aAAa,CAAC,GAAwB,EAAA;AAC5C,QAAA,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;AAC/D,YAAA,OAAO,EAAE,CAAA;AACV,SAAA;AAED,QAAA,OAAO,GAAG,CAAC,UAAU,CAAC,SAAS;aAC5B,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;aACvD,MAAM,CAAC,kBAAkB,CAAC,CAAA;KAC9B;;AAGO,IAAA,mBAAmB,CAAC,GAAwB,EAAA;QAClD,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;AACxF,YAAA,OAAO,EAAE,CAAA;AACV,SAAA;AAED,QAAA,OAAO,GAAG,CAAC,UAAU,CAAC,OAAO;aAC1B,GAAG,CAAC,CAAC,IAAG;YACP,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;AAC5D,YAAA,IAAI,GAAG,EAAE;gBAAE,OAAO,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAA;AAAE,aAAA;AACxD,SAAC,CAAC;aACD,MAAM,CAAC,kBAAkB,CAAC,CAAA;KAC9B;;uHA9HU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EA6C3B,qBAAqB,EAAA,EAAA,EAAA,KAAA,EACrB,uBAAuB,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;2HA9CtB,0BAA0B,EAAA,CAAA,CAAA;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC,UAAU;;0BA8CN,MAAM;2BAAC,qBAAqB,CAAA;;0BAC5B,MAAM;2BAAC,uBAAuB,CAAA;;;MCtDtB,iCAAiC,CAAA;IAE5C,WACU,CAAA,YAAuC,EACvC,WAAuC,EAAA;QADvC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAA2B;QACvC,IAAW,CAAA,WAAA,GAAX,WAAW,CAA4B;KAC5C;AAEL;;AAEG;AACI,IAAA,UAAU,CAAC,GAAwB,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAC/B,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,IAAI,EAAE,GAAG,EAAE,CAAC,EAC/D,SAAS,CAAC,UAAU,IAAI,UAAU;AAChC,cAAE,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CACrB,GAAG,CAAC,SAAS,IAAG;AACd,gBAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE;AAC7D,oBAAA,IAAI,OAAO,SAAS,CAAC,MAAM,KAAK,SAAS,EAAE;wBACzC,OAAO,SAAS,CAAC,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;AAChD,qBAAA;AAAM,yBAAA;wBACL,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;;AAEzD,wBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;wBACtE,OAAO,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAA;AACxC,qBAAA;AACF,iBAAA;AACD,gBAAA,OAAO,SAAS,CAAA;AAClB,aAAC,CAAC,EACF,OAAO,EAAE,EACT,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CACvC;AACD,cAAE,EAAE,CAAC,EAAE,CAAC,CACT,CACF,CAAA;KACF;;IAGO,oBAAoB,CAAC,GAAwB,EAAE,YAAuC,EAAA;QAC5F,OAAO;YACL,GAAG;SACJ,CAAA;KACF;;8HAzCU,iCAAiC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,0BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kIAAjC,iCAAiC,EAAA,CAAA,CAAA;2FAAjC,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAD7C,UAAU;;;ACmBX;;;AAGG;AACU,IAAA,wCAAwC,GAA9C,MAAM,wCAAwC,CAAA;IAQnD,WACU,CAAA,MAAc,EACd,KAAqB,EACN,QAAuB,EACtC,QAAmB,EACnB,EAAc,EACd,gBAAkC,EAAA;QALlC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QAErB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACnB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;QACd,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAE1C,IAAI,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE;AACnD,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,kBAAkB,CAC1C,MAAM,EACN,KAAK,EACL,GAAG;AACH,YAAA,QAAQ,EACR,EAAE,CAAC,aAAa,EAChB,gBAAgB,CACjB,CAAA;;AAGD,YAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAiB,KAAI;;gBAEpG,IAAI,IAAI,CAAC,cAAc,EAAE;oBACvB,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;AAC7G,iBAAA;AACH,aAAC,CAAC,CAAA;AACH,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAC1B,MAAM,EACN,KAAK,EACL,QAAkB,EAClB,QAAQ,EACR,EAAE,CACH,CAAA;;AAGD,YAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAK;;gBAEnF,IAAI,IAAI,CAAC,MAAM,EAAE;AAAE,oBAAA,OAAQ,IAAI,CAAC,MAAc,CAAC,OAAO,EAAE,CAAA;AAAE,iBAAA;AAC5D,aAAC,CAAC,CAAA;;;;;;;;;;;AAYH,SAAA;KACF;IAED,IAAI,UAAU,KAA6B,OAAO,IAAI,CAAC,MAAM,CAAA,EAAE;IAC/D,IAAI,kBAAkB,KAAqC,OAAO,IAAI,CAAC,cAAc,CAAA,EAAE;IAEvF,IAAI,eAAe,CAAC,QAAwB,EAAA;QAC1C,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAA;AAClC,SAAA;aAAM,IAAI,IAAI,CAAC,cAAc,EAAE;AAC9B,YAAA,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,QAAQ,CAAA;AAC1C,SAAA;KACF;IAED,IAAI,WAAW,CAAC,KAA2B,EAAA;QACzC,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAA;AAChC,SAAA;aAAM,IAAI,IAAI,CAAC,cAAc,EAAE;AAC9B,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,KAAK,CAAA;AACxC,SAAA;KACF;IAED,IAAI,QAAQ,CAAC,KAAa,EAAA;QACxB,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAA;AAC7B,SAAA;aAAM,IAAI,IAAI,CAAC,cAAc,EAAE;AAC9B,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,KAAK,CAAA;AACrC,SAAA;KACF;IAED,IAAI,mBAAmB,CAAC,KAA0B,EAAA;QAChD,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,mBAAmB,GAAG,KAAK,CAAA;AACxC,SAAA;aAAM,IAAI,IAAI,CAAC,cAAc,EAAE;AAC9B,YAAA,IAAI,CAAC,cAAc,CAAC,mBAAmB,GAAG,KAAK,CAAA;AAChD,SAAA;KACF;IAED,IAAI,gBAAgB,CAAC,KAAc,EAAA;QACjC,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAA;AACrC,SAAA;aAAM,IAAI,IAAI,CAAC,cAAc,EAAE;AAC9B,YAAA,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,KAAK,CAAA;AAC7C,SAAA;KACF;IAED,IAAI,kBAAkB,CAAC,KAAc,EAAA;QACnC,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,kBAAkB,GAAG,KAAK,CAAA;AACvC,SAAA;aAAM,IAAI,IAAI,CAAC,cAAc,EAAE;AAC9B,YAAA,IAAI,CAAC,cAAc,CAAC,kBAAkB,GAAG,KAAK,CAAA;AAC/C,SAAA;KACF;IAED,IAAI,UAAU,CAAC,KAAc,EAAA;QAC3B,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAA;AAC/B,SAAA;aAAM,IAAI,IAAI,CAAC,cAAc,EAAE;AAC9B,YAAA,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,KAAK,CAAA;AACvC,SAAA;KACF;IAED,IAAI,KAAK,CAAC,KAA2B,EAAA;QACnC,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;AAC1B,SAAA;aAAM,IAAI,IAAI,CAAC,cAAc,EAAE;AAC9B,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,KAAK,CAAA;AAClC,SAAA;KACF;IAED,IAAI,MAAM,CAAC,KAAyB,EAAA;QAClC,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,KAAe,CAAA;AAE5C,YAAA,IAAI,KAAK,EAAE;AACT,gBAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;AACnE,aAAA;AAAM,iBAAA;gBACL,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;AACxD,aAAA;AACF,SAAA;KACF;IAEM,OAAO,GAAA;;;;QAIZ,IAAI,IAAI,CAAC,wBAAwB,EAAE;AACjC,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAA;AACjF,YAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAA;AACrC,SAAA;QAED,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;AAC1D,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAA;AAClC,SAAA;KACF;EAEF;AA1JY,wCAAwC,GAAA,UAAA,CAAA;AAWhD,IAAA,OAAA,CAAA,CAAA,EAAA,SAAS,CAAC,UAAU,CAAC,CAAA;AAXb,CAAA,EAAA,wCAAwC,CA0JpD,CAAA;AAED;AACA;MAKa,uCAAuC,CAAA;IAElD,IAEI,kCAAkC,CAAC,KAAuC,EAAA;AAC5E,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACzB;AAQD,IAAA,WAAA,CACU,WAAoC,EACpC,SAAoB,EACpB,YAAuC,EACvC,aAAyC,EACzC,kBAA4C,EAC5C,OAAe,EACf,MAAsB,EACtB,iBAAmC,EAAA;QAPnC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAyB;QACpC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QACpB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAA2B;QACvC,IAAa,CAAA,aAAA,GAAb,aAAa,CAA4B;QACzC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAA0B;QAC5C,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QACf,IAAM,CAAA,MAAA,GAAN,MAAM,CAAgB;QACtB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAkB;AAfrC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,aAAa,CAAmC,CAAC,CAAC,CAAA;AAKhE,QAAA,IAAA,CAAA,mBAAmB,GAAG,YAAY,CAAC,KAAK,CAAA;AAY9C,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI;;AAE1C,QAAA,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EACzC,GAAG,CAAC,MAAK,EAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAA,EAAE,CAAC,EACjD,UAAU,CAAC,KAAK,IAAG;;YAEjB,IAAI,SAAS,EAAE,EAAE;AAAE,gBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AAAE,aAAA;AACzC,YAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAA;AACjC,YAAA,OAAO,EAAE,CAAC,SAAS,CAAC,CAAA;AACtB,SAAC,CAAC,CAEH,CAAC,SAAS,EAAE,CAAA;KACd;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAA;QACtC,IAAI,CAAC,WAAW,EAAE,CAAA;QAClB,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE;AACnE,YAAA,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAA;AACtD,SAAA;KACF;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;;QAEhC,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE;YACnE,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;AACvD,YAAA,IAAI,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE;AAChD,gBAAA,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE;oBACzG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;AAClH,iBAAA;AACF,aAAA;AAAM,iBAAA;gBACL,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;AAC/D,aAAA;AACF,SAAA;KACF;AAEM,IAAA,OAAO,CAAC,MAAwC,EAAA;QACrD,IAAI,CAAC,WAAW,EAAE,CAAA;QAElB,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CACxC,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE;cACjC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,OAAmC,CAAC;cACtE,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,OAAmC,CAAC,CACzE,CACF,CAAA;KACF;IAEO,oBAAoB,CAC1B,MAAwC,EACxC,OAAiC,EAAA;AAEjC,QAAA,MAAM,OAAO,GAAoB,EAAE,CAAC,SAAS,CAAC,CAAA;QAE9C,QAAQ,OAAO,CAAC,WAAW;YACzB,KAAK,MAAM,EAAE;;;AAGX,gBAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AACxC,gBAAA,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;gBAE7C,MAAK;AACN,aAAA;YACD,KAAK,eAAe,EAAE;;;AAGpB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AACxC,gBAAA,IAAI,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE;oBACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;AACvC,iBAAA;AACD,gBAAA,IAAI,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE;oBACtC,IAAI,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE;wBAC7C,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;AACnD,qBAAA;AACF,iBAAA;;;gBAID,MAAK;AACN,aAAA;;;;;;;;;AASD,YAAA,SAAS,MAAM,KAAK,CAAC,4CAA4C;AAC/D,gBAAA,CAAA,YAAA,EAAe,OAAO,CAAC,WAAW,CAAA,yCAAA,CAA2C,CAAC,CAAA;AACjF,SAAA;QAED,OAAO,OAAO,CAAA;KACf;IAEO,oBAAoB,CAC1B,MAAwC,EACxC,OAA4D,EAAA;AAE5D,QAAA,IAAI,OAAO,GAAoB,EAAE,CAAC,SAAS,CAAC,CAAA;;QAE5C,QAAQ,OAAO,CAAC,WAAW;YACzB,KAAK,YAAY,EAAE;;;AAGjB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;gBACxC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;gBAClF,MAAK;AACN,aAAA;YACD,KAAK,OAAO,EAAE;;AAEZ,gBAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;gBACxC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;gBAClF,MAAK;AACN,aAAA;AACD,YAAA,SAAS,MAAM,KAAK,CAAC,4CAA4C;AAC/D,gBAAA,CAAA,YAAA,EAAe,OAAO,CAAC,WAAW,CAAA,yCAAA,CAA2C,CAAC,CAAA;AACjF,SAAA;QAED,OAAO,OAAO,CAAA;KACf;IAEO,mBAAmB,CACzB,MAAwC,EACxC,OAA4D,EAAA;;;;AAK5D,QAAA,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAC/D,GAAG,CAAC,KAAK,IAAG;;;;;;YAMV,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,gBAAA,IAAI,OAAO,CAAC,WAAW,KAAK,YAAY,IAAI,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE;AAC3E,oBAAA,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAA;AAC3B,oBAAA,IAAI,MAA0B,CAAA;AAC9B,oBAAA,IAAI,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE;AACnF,wBAAA,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAA;AACnC,qBAAA;AACD,oBAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;AAC1D,iBAAA;AACF,aAAA;;;;;AAKH,SAAC,CAAC,EACF,KAAK,CAAC,SAAS,CAAC,CACjB,CAAA;AAED,QAAA,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI;;AAEvB,QAAA,SAAS,CAAC,MAAM,CAAC,CAAC,CACnB,CAAA;KACF;IAEO,mBAAmB,CACzB,MAAwC,EACxC,OAAiC,EAAA;;;AAIjC,QAAA,OAAO,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAC5D,SAAS,CAAC,KAAK,IAAG;AAChB,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;YAChE,MAAM,OAAO,GAAG,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;;;;;;AAO/C,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;AAC7D,SAAC,CAAC,EACF,KAAK,CAAC,SAAS,CAAC,CACjB,CAAA;KACF;IAEO,WAAW,GAAA;QACjB,IAAI,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;AAC9D,YAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAA;AACtC,SAAA;KACF;IAEO,QAAQ,CAAC,IAAY,EAAE,KAAa,EAAA;AAC1C,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;KACzE;IAEO,gBAAgB,GAAA;AACtB,QAAA,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,UAAU,CAAC,KAAK,IAAI,EAAE;AACrE,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,UAAU,EAAE,GAAG,CAAC,CAAA;AAC7E,SAAA;KACF;IAEO,kBAAkB,CACxB,MAAwC,EACxC,OAA2B,EAAA;QAE3B,IAAI,CAAC,WAAW,EAAE,CAAA;AAClB,QAAA,IAAI,WAAW,CAAC,OAAO,EAAE,gBAAgB,CAAC,EAAE;AAC1C,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,SAAS,EAAE,CAAA;AACtF,SAAA;KACF;IAEO,yBAAyB,CAC/B,OAA2B,EAC3B,MAAwC,EAAA;AAExC,QAAA,OAAO,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAC5D,GAAG,CAAC,KAAK,IAAG;AACV,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;YAChE,MAAM,OAAO,GAAG,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;AAC/C,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;;YAE1E,IAAI,CAAC,MAAM,EAAE;gBACX,KAAK,CAAC,cAAc,EAAE,CAAA;gBACtB,KAAK,CAAC,eAAe,EAAE,CAAA;AACxB,aAAA;AACH,SAAC,CAAC,EACF,KAAK,CAAC,SAAS,CAAC,CACjB,CAAA;KACF;IAEO,uBAAuB,CAC7B,MAAwC,EACxC,OAAiC,EAAA;AAEjC,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,wCAAwC,CACjE,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,MAAM,EACX,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,UAAU,CAAC,EACxD,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,iBAAiB,CACvB,CAAA;;QAGD,IAAI,CAAC,eAAe,CAAC,eAAe,GAAG,OAAO,CAAC,OAAiB,CAAA;AAEhE,QAAA,IAAI,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE;YACtC,IAAI,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE;gBAC7C,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAA;AACxD,aAAA;YACD,IAAI,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE;gBAClD,IAAI,CAAC,eAAe,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAA;AAClE,aAAA;YACD,IAAI,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE;gBAC/C,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAA;AAC5D,aAAA;YACD,IAAI,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,qBAAqB,CAAC,EAAE;gBAC1D,IAAI,CAAC,eAAe,CAAC,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAA;AAClF,aAAA;YACD,IAAI,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,kBAAkB,CAAC,EAAE;gBACvD,IAAI,CAAC,eAAe,CAAC,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAA;AAC5E,aAAA;YACD,IAAI,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,oBAAoB,CAAC,EAAE;gBACzD,IAAI,CAAC,eAAe,CAAC,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAA;AAChF,aAAA;YACD,IAAI,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE;gBACjD,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAA;AAChE,aAAA;YACD,IAAI,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE;gBAC5C,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAA;AACtD,aAAA;AACF,SAAA;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;KACrB;IAEO,SAAS,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,GAAG,CAAA;KACrE;AAEO,IAAA,WAAW,CAAC,MAAwC,EAAA;AAC1D,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;AAC/D,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KACvE;;IAGO,WAAW,CAAC,GAAwB,EAAE,YAAuC,EAAA;QACnF,OAAO;YACL,GAAG;SACJ,CAAA;KACF;IAEO,sBAAsB,CAAC,UAAmB,KAAK,EAAA;AACrD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAA;AAC9C,QAAA,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;KAC9C;;oIA3TU,uCAAuC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;wHAAvC,uCAAuC,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,EAAA,kCAAA,EAAA,oCAAA,EAAA,EAAA,QAAA,EAAA,CAAA,oCAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAvC,uCAAuC,EAAA,UAAA,EAAA,CAAA;kBAJnD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sCAAsC;AAChD,oBAAA,QAAQ,EAAE,oCAAoC;AAC/C,iBAAA,CAAA;oUAKK,kCAAkC,EAAA,CAAA;sBAFrC,KAAK;;;MCnLK,mCAAmC,CAAA;IAI9C,IACI,GAAG,GAAK,EAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAA,EAAE;IACpC,IAAI,GAAG,CAAC,KAAsC,EAAA;QAC5C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,CAAA;KACnC;IAGD,IACI,UAAU,GAAK,EAAA,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAA,EAAE;IAClD,IAAI,UAAU,CAAC,KAAkC,EAAA;QAC/C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;KACnC;IAiCD,WACU,CAAA,YAAuC,EACvC,kBAAqD,EAAA;QADrD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAA2B;QACvC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmC;QAhD/D,IAAW,CAAA,WAAA,GAAG,WAAW,CAAA;AAOjB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,eAAe,CAAkC,SAAS,CAAC,CAAA;AAOtE,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAA8B,EAAE,CAAC,CAAA;;AAK1E,QAAA,IAAA,CAAA,oBAAoB,GAAG;AACrB,YAAA;AACE,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,QAAQ,EAAE,KAAK;AAChB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,QAAQ,EAAE,QAAQ;AACnB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,QAAQ,EAAE,KAAK;AAChB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,QAAQ,EAAE,QAAQ;AACnB,aAAA;SACF,CAAA;;;;AASC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CACjC,SAAS,CAAC,GAAG,IAAI,GAAG;cAChB,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAC1C,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAC3D;AACH,cAAE,EAAE,CAAC,EAAE,CAAC,CACT,CAEF,CAAA;;KAGF;;IAGO,WAAW,CACjB,GAAwB,EACxB,UAAe,EAAA;QAEf,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAC1B,SAAS,CAAC,SAAS,IAAG;YACpB,OAAO,CAAC,YAAW;AACjB,gBAAA,MAAM,UAAU,GAA8B;AAC5C,oBAAA,GAAG,SAAS;iBACb,CAAA;gBAED,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;AAEzD,gBAAA,IAAI,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE;AACrC,oBAAA,UAAU,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;oBAC5E,IAAI,UAAU,CAAC,MAAM,EAAE;AACrB,wBAAA,OAAO,SAAS,CAAA;AACjB,qBAAA;AACF,iBAAA;AAED,gBAAA,UAAU,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;AAEzE,gBAAA,IAAI,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE;AACvC,oBAAA,UAAU,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;AACjF,iBAAA;AAED,gBAAA,MAAM,MAAM,GAAqC;AAC/C,oBAAA,IAAI,EAAE,GAAG;AACT,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,SAAS,EAAE,UAAU;AACrB,oBAAA,WAAW,EAAE,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC;iBAClD,CAAA;AAED,gBAAA,OAAO,MAAM,CAAA;aACd,GAAG,CAAA;SACL,CAAC,EACF,MAAM,CAAC,kBAAkB,CAAC,EAC1B,OAAO,EAAE,CACV,CAAA;KACF;;IAGO,oBAAoB,CAC1B,GAAwB,EACxB,YAAuC,EAAA;QAEvC,OAAO;YACL,GAAG;SACJ,CAAA;KACF;AAEO,IAAA,oBAAoB,CAAC,GAA8B,EAAA;AACzD,QAAA,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;AAEzB,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;AAC1B,YAAA,IAAI,WAAW,CAAC,MAAa,EAAE,OAAO,CAAC,EAAE;AACvC,gBAAA,OAAO,QAAQ,CAAA;AAChB,aAAA;AACD,YAAA,OAAO,GAAG,CAAA;AACX,SAAA;AAED,QAAA,OAAO,QAAQ,CAAA;KAChB;;gIAnIU,mCAAmC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,iCAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnC,mCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mCAAmC,4HCpBhD,8tEA8DA,EAAA,MAAA,EAAA,CAAA,iPAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,EAAA,MAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,WAAA,EAAA,gCAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,WAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uCAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,oCAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oCAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FD1Ca,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAN/C,SAAS;+BACE,oCAAoC,EAAA,eAAA,EAG7B,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,8tEAAA,EAAA,MAAA,EAAA,CAAA,iPAAA,CAAA,EAAA,CAAA;6JAO3C,GAAG,EAAA,CAAA;sBADN,KAAK;gBAQF,UAAU,EAAA,CAAA;sBADb,KAAK;;;MEnBK,wCAAwC,CAAA;IAEnD,IACI,eAAe,CAAC,KAA0C,EAAA;AAC5D,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAA;;;;KAI9B;IACD,IAAI,eAAe,KAAK,OAAO,IAAI,CAAC,gBAAgB,CAAA,EAAE;AAOtD,IAAA,WAAA,CACU,SAAmB,EAAA;QAAnB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAU;QAH7B,IAAO,CAAA,OAAA,GAA8B,IAAI,CAAA;KAIpC;IAEL,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;AACtC,SAAA;KACF;AAEO,IAAA,UAAU,CAAC,SAA2B,EAAA;QAC5C,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;AACpB,SAAA;AAED,QAAA,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAA;AACjF,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;AACpB,SAAA;KACF;IAEO,eAAe,GAAA;QACrB,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,OAAO,CAAY;AAC/D,YAAA,CAAE,2BAA2B,EAAE,IAAI,CAAC,OAAO,CAAE;AAC9C,SAAA,CAAC,CAAC,CAAA;KACJ;;qIA1CU,wCAAwC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxC,wCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wCAAwC,mJCZrD,6DACA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDWa,wCAAwC,EAAA,UAAA,EAAA,CAAA;kBANpD,SAAS;+BACE,yCAAyC,EAAA,eAAA,EAGlC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6DAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA;+FAK3C,eAAe,EAAA,CAAA;sBADlB,KAAK;gBAUG,OAAO,EAAA,CAAA;sBAAf,KAAK;;;MEpBK,sCAAsC,GAAG,IAAI,cAAc,CACtE,sCAAsC;;MC+D3B,uCAAuC,CAAA;AAIlD,IAAA,IACI,GAAG,CAAC,KAA0C,EAAA,EAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA,EAAE;IAC7E,IAAI,GAAG,GAA0C,EAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAA,EAAE;AAMzE,IAAA,WAAA,CACmB,YAAuC,EACvC,uBAAsD,EACtD,SAAmB,EAEnB,qBAA8D,EAAA;QAJ9D,IAAY,CAAA,YAAA,GAAZ,YAAY,CAA2B;QACvC,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAA+B;QACtD,IAAS,CAAA,SAAA,GAAT,SAAS,CAAU;QAEnB,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAyC;AAfhE,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,eAAe,CAAsC,SAAS,CAAC,CAAA;QAiBzF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;;AAGpC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;;KAEvF;AAEO,IAAA,QAAQ,CAAC,IAAkC,EAAA;QACjD,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KACnD;IAEO,MAAM,OAAO,CAAC,GAA+B,EAAA;QACnD,MAAM,MAAM,GAAuC,EAAG,CAAA;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;AAE3C,QAAA,IAAI,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE;AAC9B,YAAA,MAAM,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAClE,SAAA;AAED,QAAA,IAAI,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE;AAChC,YAAA,MAAM,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;AACtE,SAAA;AAED,QAAA,IAAI,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE;AAChC,YAAA,MAAM,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;AACtE,SAAA;QAED,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAA;AACnC,QAAA,MAAM,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAEzD,QAAA,OAAO,MAAM,CAAA;KACd;AAEO,IAAA,MAAM,aAAa,CACzB,MAAiD,EACjD,GAA+B,EAAA;QAE/B,MAAM,MAAM,GAAsD,EAAG,CAAA;AAErE,QAAA,IAAI,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE;AACrC,YAAA,MAAM,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;AAClE,SAAA;AAED,QAAA,IAAI,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE;AACvC,YAAA,MAAM,CAAC,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,CAAA;AACtE,SAAA;AAED,QAAA,IAAI,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE;AACtC,YAAA,MAAM,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;AACpE,SAAA;AAED,QAAA,OAAO,MAAM,CAAA;KACd;AAEO,IAAA,MAAM,UAAU,CACtB,MAAqC,EACrC,GAA+B,EAAA;QAE/B,MAAM,MAAM,GAA0C,EAAG,CAAA;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAEtD,QAAA,IAAI,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;AACjC,YAAA,MAAM,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AACrE,SAAA;AAED,QAAA,IAAI,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE;AACnC,YAAA,MAAM,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;AACzE,SAAA;AAED,QAAA,MAAM,CAAC,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;AAEtF,QAAA,OAAO,MAAM,CAAA;KACd;AAEO,IAAA,MAAM,QAAQ,CACpB,IAAiC,EACjC,GAA+B,EAC/B,MAAqC,EAAA;QAErC,MAAM,MAAM,GAAwC,EAAG,CAAA;AACvD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;;;;;;;AAU1D,QAAA,IAAI,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE;;AAElC,YAAA,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;AAEvE,YAAA,IAAI,IAAS,CAAA;AACb,YAAA,IAAI,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;;;AAG7B,gBAAA,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;;AAExD,aAAA;AAED,YAAA,MAAM,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;AAChE,SAAA;AAED,QAAA,OAAO,MAAM,CAAA;KACd;AAEO,IAAA,iBAAiB,CAAC,GAA+B,EAAA;QACvD,OAAO;YACL,GAAG;SACJ,CAAA;KACF;IAEO,oBAAoB,CAC1B,MAAqC,EACrC,GAA+B,EAAA;QAE/B,OAAO;YACL,GAAG;YACH,MAAM;SACP,CAAA;KACF;AAEO,IAAA,kBAAkB,CACxB,IAAiC,EACjC,GAA+B,EAC/B,MAAqC,EAAA;QAErC,OAAO;YACL,IAAI;YACJ,GAAG;YACH,MAAM;SACP,CAAA;KACF;AAEO,IAAA,MAAM,mBAAmB,CAAC,SAAiB,EAAE,IAAU,EAAA;QAC7D,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,qBAAqB,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAA;QAEnF,IAAI,CAAC,QAAQ,EAAE;;AAEb,YAAA,MAAM,KAAK,CAAC,CAAA,sBAAA,EAAyB,SAAS,CAAA,YAAA,CAAc,CAAC,CAAA;AAC9D,SAAA;;AAGD,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAA;QAC7B,IAAI,QAAQ,CAAC,SAAS,EAAE;YACtB,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,OAAO,CAAC;AACxD,gBAAA,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;AAC3B,aAAA,CAAC,CAAC,CAAA;AACJ,SAAA;AAED,QAAA,IAAI,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,EAAE;AAC1C,YAAA,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,CAAS,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAC/E,GAAG,CAAC,gBAAgB,IAAG;AACrB,gBAAA,OAAO,IAAI,eAAe,CACxB,gBAAgB,CAAC,aAAa,EAC9B,IAAI,EACJ,QAAQ,EACP,gBAAuB,qCAAsC,QAAQ,CAAC,wBAAwB,CAChG,CAAA;AACH,aAAC,CAAC,CACH,CAAC,SAAS,EAAE,CAAA;AACd,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,IAAI,eAAe,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;AACrE,SAAA;KACF;;AAzLU,uCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uCAAuC,kIAgB5B,sCAAsC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAhBjD,uCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uCAAuC,uGCpEpD,8rDAkCA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mCAAA,EAAA,QAAA,EAAA,qCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,qCAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oCAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDkCa,uCAAuC,EAAA,UAAA,EAAA,CAAA;kBANnD,SAAS;+BACE,yCAAyC,EAAA,eAAA,EAGlC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,8rDAAA,EAAA,CAAA;;0BAkB5C,QAAQ;;0BAAI,MAAM;2BAAC,sCAAsC,CAAA;4CAXxD,GAAG,EAAA,CAAA;sBADN,KAAK;;;AEzDR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BG;MAWU,yBAAyB,CAAA;;IAGpC,IAAa,GAAG,CAAC,KAA6C,EAAA;QAC5D,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC,CAAA;KAC5C;AAuDD,IAAA,WAAA,CACmB,WAAuC,EAAA;QAAvC,IAAW,CAAA,WAAA,GAAX,WAAW,CAA4B;QAExD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QAE7D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAA;QAEzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAA;AAE9C,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB;aAC7D,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAA;AAEvD,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB;aACrD,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,CAAA;QAE5D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,CAAA;QAEtD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAA;AAE1C,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAC7C,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CACnC,CAAA;AAED,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAC1C,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAEhC,CAAA;KACF;;sHAvFU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAI,0BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EANzB,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,SAAA,EAAA;QACT,0BAA0B;QAC1B,iCAAiC;AAClC,KAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpDH,kqDAsCA,EAAA,MAAA,EAAA,CAAA,6CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,MAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,SAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,+BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,mCAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uCAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDiBa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAVrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EAGvB,SAAA,EAAA;wBACT,0BAA0B;wBAC1B,iCAAiC;qBAClC,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,kqDAAA,EAAA,MAAA,EAAA,CAAA,6CAAA,CAAA,EAAA,CAAA;8GAKlC,GAAG,EAAA,CAAA;sBAAf,KAAK;;;MEXK,6BAA6B,CAAA;;0HAA7B,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA7B,6BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,iBAzBtC,yBAAyB;QACzB,wCAAwC;QACxC,mCAAmC;QACnC,uCAAuC;AACvC,QAAA,uCAAuC,aAGvC,YAAY;QACZ,mBAAmB;QACnB,sBAAsB;QACtB,2BAA2B;QAC3B,yBAAyB;QACzB,wBAAwB;QACxB,iBAAiB;QACjB,YAAY;QACZ,YAAY;QACZ,iBAAiB;AACjB,QAAA,oBAAoB,aAGpB,yBAAyB;QACzB,sBAAsB;QACtB,uCAAuC,CAAA,EAAA,CAAA,CAAA;AAG9B,6BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,YAlBtC,YAAY;QACZ,mBAAmB;QACnB,sBAAsB;QACtB,2BAA2B;QAC3B,yBAAyB;QACzB,wBAAwB;QACxB,iBAAiB;QACjB,YAAY;QACZ,YAAY;QACZ,iBAAiB;AACjB,QAAA,oBAAoB,EAIpB,sBAAsB,CAAA,EAAA,CAAA,CAAA;2FAIb,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBA3BzC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,yBAAyB;wBACzB,wCAAwC;wBACxC,mCAAmC;wBACnC,uCAAuC;wBACvC,uCAAuC;AACxC,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,sBAAsB;wBACtB,2BAA2B;wBAC3B,yBAAyB;wBACzB,wBAAwB;wBACxB,iBAAiB;wBACjB,YAAY;wBACZ,YAAY;wBACZ,iBAAiB;wBACjB,oBAAoB;AACrB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,yBAAyB;wBACzB,sBAAsB;wBACtB,uCAAuC;AACxC,qBAAA;AACF,iBAAA,CAAA;;;AC9CD;;AAEG;;;;"}
1
+ {"version":3,"file":"theseam-ui-common-datatable-dynamic.mjs","sources":["../../../projects/ui-common/datatable-dynamic/utils/defaults/set-dynamic-datatable-columns-defaults.ts","../../../projects/ui-common/datatable-dynamic/utils/defaults/set-dynamic-datatable-filter-menu-defaults.ts","../../../projects/ui-common/datatable-dynamic/utils/defaults/set-dynamic-datatable-options-defaults.ts","../../../projects/ui-common/datatable-dynamic/utils/defaults/set-dynamic-datatable-def-defaults.ts","../../../projects/ui-common/datatable-dynamic/dynamic-datatable-def.service.ts","../../../projects/ui-common/datatable-dynamic/dynamic-datatable-row-actions.service.ts","../../../projects/ui-common/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.ts","../../../projects/ui-common/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.ts","../../../projects/ui-common/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.html","../../../projects/ui-common/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.ts","../../../projects/ui-common/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.html","../../../projects/ui-common/datatable-dynamic/datatable-dynamic-menu-bar-token.ts","../../../projects/ui-common/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.ts","../../../projects/ui-common/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.html","../../../projects/ui-common/datatable-dynamic/datatable-dynamic.component.ts","../../../projects/ui-common/datatable-dynamic/datatable-dynamic.component.html","../../../projects/ui-common/datatable-dynamic/datatable-dynamic.module.ts","../../../projects/ui-common/datatable-dynamic/theseam-ui-common-datatable-dynamic.ts"],"sourcesContent":["import { DynamicDatatableColumn } from '../../datatable-dynamic-def'\n\nexport function setDynamicDatatableColumnsDefaults(\n columns: DynamicDatatableColumn[]\n) {\n for (const col of columns) {\n if (!col.cellType) {\n col.cellType = 'string'\n }\n }\n}\n","import { DynamicDatatableFilterMenu } from '../../datatable-dynamic-def'\n\nexport function setDynamicDatatableFilterMenuDefaults(\n filterMenu: DynamicDatatableFilterMenu\n) {\n if (!filterMenu.state) {\n filterMenu.state = 'default'\n }\n}\n","import { DynamicDatatableOptions } from '../../datatable-dynamic-def'\n\nexport function setDynamicDatatableOptionsDefaults(\n options: DynamicDatatableOptions\n) {\n if (options.virtualization === undefined || options.virtualization === null) {\n options.virtualization = true\n }\n}\n","import { DatatableDynamicDef } from '../../datatable-dynamic-def'\n\nimport { setDynamicDatatableColumnsDefaults } from './set-dynamic-datatable-columns-defaults'\nimport { setDynamicDatatableFilterMenuDefaults } from './set-dynamic-datatable-filter-menu-defaults'\nimport { setDynamicDatatableOptionsDefaults } from './set-dynamic-datatable-options-defaults'\n\nexport function setDynamicDatatableDefDefaults(\n def: DatatableDynamicDef\n) {\n setDynamicDatatableColumnsDefaults(def.columns)\n\n if (def.filterMenu) {\n setDynamicDatatableFilterMenuDefaults(def.filterMenu)\n }\n\n if (def.options) {\n setDynamicDatatableOptionsDefaults(def.options)\n }\n}\n","import { ComponentType } from '@angular/cdk/portal'\nimport { Inject, Injectable } from '@angular/core'\nimport { BehaviorSubject, combineLatest, Observable, of } from 'rxjs'\nimport { map, shareReplay, switchMap } from 'rxjs/operators'\n\nimport { IDataExporter, THESEAM_DATA_EXPORTER } from '@theseam/ui-common/data-exporter'\nimport { IDataFilter, THESEAM_DATA_FILTER_DEF } from '@theseam/ui-common/data-filters'\nimport { DynamicValueHelperService } from '@theseam/ui-common/dynamic'\nimport { hasProperty, notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { DynamicDatatableOptions } from './datatable-dynamic-def'\nimport { DatatableDynamicDef } from './datatable-dynamic-def'\nimport { DynamicDatatableMenuBar } from './models/dynamic-datatable-menu-bar'\nimport { DynamicDatatableFilterMenuItem } from './models/index'\nimport { setDynamicDatatableDefDefaults } from './utils/index'\n\n/**\n * Manages the data defined in the `DatatableDynamicDef`. Simplifies accessing\n * and observing the needed data based on the `DatatableDynamicDef`.\n */\n@Injectable()\nexport class DynamicDatatableDefService {\n\n /**\n * @deprecated\n * @ignore\n */\n private _dataExporters: IDataExporter[]\n\n /**\n * @deprecated\n * @ignore\n */\n private _dataFilters: { name: string, component: ComponentType<IDataFilter> }[]\n\n /** @ignore */\n private readonly _defSubject = new BehaviorSubject<DatatableDynamicDef | undefined>(undefined)\n\n /** Dynamic datatable definition. */\n public readonly def$: Observable<DatatableDynamicDef | undefined>\n\n /**\n * Exporters in the def that are available.\n * @deprecated\n */\n public readonly exporters$: Observable<IDataExporter[]>\n\n /**\n * Filter menu items in the def that are available.\n * @deprecated\n */\n public readonly filterMenuItems$: Observable<DynamicDatatableFilterMenuItem[]>\n\n /**\n * Observes whether the datatable has a filter menu.\n * @deprecated\n */\n public readonly hasFilterMenu$: Observable<boolean>\n\n /** Observes datatable options. */\n public readonly options$: Observable<DynamicDatatableOptions | undefined>\n\n /** Observes the datatable def menu bar. */\n public readonly menuBar$: Observable<DynamicDatatableMenuBar | undefined>\n\n constructor(\n @Inject(THESEAM_DATA_EXPORTER) dataExporters: IDataExporter[],\n @Inject(THESEAM_DATA_FILTER_DEF) dataFilters: { name: string, component: ComponentType<IDataFilter> }[],\n private _valueHelper: DynamicValueHelperService,\n ) {\n this._dataExporters = (dataExporters || [])\n this._dataFilters = (dataFilters || [])\n\n this.def$ = this._defSubject.asObservable()\n\n this.exporters$ = this.def$.pipe(\n map(def => def ? this._mapExporters(def) : []),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n\n this.filterMenuItems$ = this.def$.pipe(\n map(def => def ? this._mapFilterMenuItems(def) : []),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n\n this.hasFilterMenu$ = this.def$.pipe(\n switchMap(def => {\n if (!def) { return of(false) }\n\n // Check if the visibility can be determined by the state value only.\n if (def.filterMenu && def.filterMenu.state) {\n switch (def.filterMenu.state) {\n case 'always-visible': return of(true)\n case 'hidden': return of(false)\n }\n }\n\n // Check if there is anything to put in the filter menu.\n return combineLatest([\n this.exporters$.pipe(map(e => e.length > 0)),\n this.filterMenuItems$.pipe(map(f => f.length > 0))\n ]).pipe(map(v => v.indexOf(true) !== -1))\n }),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n\n this.options$ = this.def$.pipe(\n map(def => def ? def.options : undefined),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n\n this.menuBar$ = this.def$.pipe(\n map(def => (notNullOrUndefined(def) && hasProperty(def, 'menuBar')) ? def.menuBar : undefined),\n // tap(v => console.log('menubar', v)),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n }\n\n /** Sets the `DatatableDynamicDef` that defines the datatable. */\n public setDef(def: DatatableDynamicDef | undefined): void {\n if (def) { setDynamicDatatableDefDefaults(def) }\n this._defSubject.next(def || undefined)\n }\n\n /** Map the def exporters to the provided `IDataExporter` objects. */\n private _mapExporters(def: DatatableDynamicDef): IDataExporter[] {\n if (!def.filterMenu || !Array.isArray(def.filterMenu.exporters)) {\n return []\n }\n\n return def.filterMenu.exporters\n .map(e => this._dataExporters.find(de => de.name === e))\n .filter(notNullOrUndefined)\n }\n\n /** Map the def filter menu items to provided components. */\n private _mapFilterMenuItems(def: DatatableDynamicDef): DynamicDatatableFilterMenuItem[] {\n if (!def.filterMenu || !def.filterMenu.filters || !Array.isArray(def.filterMenu.filters)) {\n return []\n }\n\n return def.filterMenu.filters\n .map(f => {\n const _df = this._dataFilters.find(df => df.name === f.name)\n if (_df) { return { ...f, component: _df.component } }\n })\n .filter(notNullOrUndefined)\n }\n\n}\n","import { Injectable } from '@angular/core'\nimport { from, Observable, of } from 'rxjs'\nimport { map, switchMap, toArray } from 'rxjs/operators'\n\nimport { DynamicValueHelperService } from '@theseam/ui-common/dynamic'\nimport { notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { DynamicDatatableRow } from './datatable-dynamic-def'\nimport { DynamicDatatableDefService } from './dynamic-datatable-def.service'\nimport { DynamicDatatableRowAction } from './models/dynamic-datatable-row-action'\nimport { DynamicDatatableRowActionContext } from './models/dynamic-datatable-row-action-context'\n\n@Injectable()\nexport class DynamicDatatableRowActionsService {\n\n constructor(\n private _valueHelper: DynamicValueHelperService,\n private _dynamicDef: DynamicDatatableDefService\n ) { }\n\n /**\n * Observe actions for specified row\n */\n public rowActions(row: DynamicDatatableRow): Observable<DynamicDatatableRowAction[]> {\n return this._dynamicDef.def$.pipe(\n map(def => (def && def.rowActions) ? def.rowActions || [] : []),\n switchMap(rowActions => rowActions\n ? from(rowActions).pipe(\n map(rowAction => {\n if (Object.prototype.hasOwnProperty.call(rowAction, 'hidden')) {\n if (typeof rowAction.hidden === 'boolean') {\n return rowAction.hidden ? undefined : rowAction\n } else {\n const context = this._getRowActionContext(row, rowAction)\n // TODO: Fix async eval\n const isHidden = this._valueHelper.evalSync(rowAction.hidden, context)\n return isHidden ? undefined : rowAction\n }\n }\n return rowAction\n }),\n toArray(),\n map(v => v.filter(notNullOrUndefined))\n )\n : of([])\n )\n )\n }\n\n /** @ignore */\n private _getRowActionContext(row: DynamicDatatableRow, rowActionDef: DynamicDatatableRowAction): DynamicDatatableRowActionContext {\n return {\n row\n }\n }\n\n}\n","import { LocationStrategy } from '@angular/common'\nimport {\n Attribute,\n Directive,\n ElementRef,\n Input,\n isDevMode,\n OnChanges,\n OnDestroy,\n Renderer2,\n SimpleChanges,\n} from '@angular/core'\nimport { ActivatedRoute, QueryParamsHandling, Router, RouterLink, RouterLinkWithHref } from '@angular/router'\nimport { from, fromEvent, Observable, of, ReplaySubject, Subscription } from 'rxjs'\nimport { catchError, mapTo, switchMap, tap } from 'rxjs/operators'\n\nimport { AssetReaderHelperService } from '@theseam/ui-common/asset-reader'\nimport {\n DynamicActionHelperService,\n DynamicActionUiAnchorDef,\n DynamicActionUiButtonDef,\n DynamicActionUiDef,\n DynamicValueHelperService\n} from '@theseam/ui-common/dynamic'\nimport { getAttribute, hasProperty, toggleAttribute } from '@theseam/ui-common/utils'\n\nimport { DynamicDatatableRow } from '../datatable-dynamic-def'\nimport type { DynamicDatatableActionMenuRecord } from '../models/dynamic-datatable-action-menu-record'\nimport { DynamicDatatableRowAction } from '../models/dynamic-datatable-row-action'\nimport { DynamicDatatableRowActionContext } from '../models/dynamic-datatable-row-action-context'\n\n/**\n * Class to act as a substitute to `routerLink` directive until the menu items\n * can be dynamically built in a clean way with or without `routerLink`.\n */\nexport class DatatableDynamicActionMenuItemRouterLink {\n\n private _rLink?: RouterLink\n private _rLinkWithHref?: RouterLinkWithHref\n\n // private _clickSubscription?: Subscription\n private _rLinkClickEventListener?: any\n\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n @Attribute('tabindex') tabIndex: string | null,\n private renderer: Renderer2,\n private el: ElementRef,\n private locationStrategy: LocationStrategy\n ) {\n if (el.nativeElement.nodeName.toLowerCase() === 'a') {\n this._rLinkWithHref = new RouterLinkWithHref(\n router,\n route,\n '0', // TODO: Fix type.\n renderer,\n el.nativeElement,\n locationStrategy\n )\n // console.log('rLinkWithHref', this.rLinkWithHref)\n\n this._rLinkClickEventListener = this.el.nativeElement.addEventListener('click', (event: MouseEvent) => {\n // console.log('this._rLinkWithHref', this._rLinkWithHref, this._rLinkWithHref && this._rLinkWithHref.href)\n if (this._rLinkWithHref) {\n return this._rLinkWithHref.onClick(event.button, event.ctrlKey, event.shiftKey, event.altKey, event.metaKey)\n }\n })\n } else {\n this._rLink = new RouterLink(\n router,\n route,\n tabIndex as string,\n renderer,\n el\n )\n // console.log('rLink', this.rLink)\n\n this._rLinkClickEventListener = this.el.nativeElement.addEventListener('click', () => {\n // console.log('this._rLink', this._rLink && this._rLink.urlTree)\n if (this._rLink) { return (this._rLink as any).onClick() }\n })\n\n // this._clickSubscription = fromEvent(el.nativeElement, 'click')\n // .subscribe(() => {\n // if (this._rLink) {\n // this._rLink.onClick()\n // } else {\n // if (this._clickSubscription && !this._clickSubscription.closed) {\n // this._clickSubscription.unsubscribe()\n // }\n // }\n // })\n }\n }\n\n get routerLink(): RouterLink | undefined { return this._rLink }\n get routerLinkWithHref(): RouterLinkWithHref | undefined { return this._rLinkWithHref }\n\n set routerLinkInput(commands: any[] | string) {\n if (this._rLink) {\n this._rLink.routerLink = commands\n } else if (this._rLinkWithHref) {\n this._rLinkWithHref.routerLink = commands\n }\n }\n\n set queryParams(value: { [k: string]: any }) {\n if (this._rLink) {\n this._rLink.queryParams = value\n } else if (this._rLinkWithHref) {\n this._rLinkWithHref.queryParams = value\n }\n }\n\n set fragment(value: string) {\n if (this._rLink) {\n this._rLink.fragment = value\n } else if (this._rLinkWithHref) {\n this._rLinkWithHref.fragment = value\n }\n }\n\n set queryParamsHandling(value: QueryParamsHandling) {\n if (this._rLink) {\n this._rLink.queryParamsHandling = value\n } else if (this._rLinkWithHref) {\n this._rLinkWithHref.queryParamsHandling = value\n }\n }\n\n set preserveFragment(value: boolean) {\n if (this._rLink) {\n this._rLink.preserveFragment = value\n } else if (this._rLinkWithHref) {\n this._rLinkWithHref.preserveFragment = value\n }\n }\n\n set skipLocationChange(value: boolean) {\n if (this._rLink) {\n this._rLink.skipLocationChange = value\n } else if (this._rLinkWithHref) {\n this._rLinkWithHref.skipLocationChange = value\n }\n }\n\n set replaceUrl(value: boolean) {\n if (this._rLink) {\n this._rLink.replaceUrl = value\n } else if (this._rLinkWithHref) {\n this._rLinkWithHref.replaceUrl = value\n }\n }\n\n set state(value: { [k: string]: any }) {\n if (this._rLink) {\n this._rLink.state = value\n } else if (this._rLinkWithHref) {\n this._rLinkWithHref.state = value\n }\n }\n\n set target(value: string | undefined) {\n if (this._rLinkWithHref) {\n this._rLinkWithHref.target = value as string\n\n if (value) {\n this.renderer.setAttribute(this.el.nativeElement, 'target', value)\n } else {\n toggleAttribute(this.el.nativeElement, 'target', false)\n }\n }\n }\n\n public destroy() {\n // if (this._clickSubscription && !this._clickSubscription.closed) {\n // this._clickSubscription.unsubscribe()\n // }\n if (this._rLinkClickEventListener) {\n this.el.nativeElement.removeEventListener('click', this._rLinkClickEventListener)\n this._rLinkClickEventListener = null\n }\n\n if (this._rLinkWithHref && this._rLinkWithHref.ngOnDestroy) {\n this._rLinkWithHref.ngOnDestroy()\n }\n }\n\n}\n\n// TODO: Refactor this directive. It got way more complex instead of more\n// simplified like it was supposed to be.\n@Directive({\n selector: '[seamDatatableDynamicActionMenuItem]',\n exportAs: 'seamDatatableDynamicActionMenuItem'\n})\nexport class DatatableDynamicActionMenuItemDirective implements OnDestroy, OnChanges {\n\n @Input()\n // get seamDatatableDynamicActionMenuItem(): DynamicDatatableActionMenuRecord { return this._record }\n set seamDatatableDynamicActionMenuItem(value: DynamicDatatableActionMenuRecord) {\n this._record.next(value)\n }\n private _record = new ReplaySubject<DynamicDatatableActionMenuRecord>(1)\n\n private _clickSubscription?: Subscription\n private _menuRouterLink?: DatatableDynamicActionMenuItemRouterLink\n\n private _recordSubscription = Subscription.EMPTY\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private _renderer: Renderer2,\n private _valueHelper: DynamicValueHelperService,\n private _actionHelper: DynamicActionHelperService,\n private _assetReaderHelper: AssetReaderHelperService,\n private _router: Router,\n private _route: ActivatedRoute,\n private _locationStrategy: LocationStrategy\n ) {\n this._recordSubscription = this._record.pipe(\n // tap(v => console.log('record', v)),\n switchMap(record => this._update(record)),\n tap(() => { this._setInvalidActionState(false) }),\n catchError(error => {\n // eslint-disable-next-line no-console\n if (isDevMode()) { console.error(error) }\n this._setInvalidActionState(true)\n return of(undefined)\n }),\n // tap(v => console.log('record DONE', v))\n ).subscribe()\n }\n\n ngOnDestroy() {\n this._recordSubscription.unsubscribe()\n this._unsubClick()\n if (this._menuRouterLink && this._menuRouterLink.routerLinkWithHref) {\n this._menuRouterLink.routerLinkWithHref.ngOnDestroy()\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n // console.log('ngOnChanges', changes, this, this._menuRouterLink)\n if (this._menuRouterLink && this._menuRouterLink.routerLinkWithHref) {\n this._menuRouterLink.routerLinkWithHref.ngOnChanges({})\n if (this._menuRouterLink.routerLinkWithHref.href) {\n if (getAttribute(this._elementRef.nativeElement, 'href') !== this._menuRouterLink.routerLinkWithHref.href) {\n this._renderer.setAttribute(this._elementRef.nativeElement, 'href', this._menuRouterLink.routerLinkWithHref.href)\n }\n } else {\n toggleAttribute(this._elementRef.nativeElement, 'href', false)\n }\n }\n }\n\n public _update(record: DynamicDatatableActionMenuRecord): Observable<void> {\n this._unsubClick()\n\n return from(this._getUiProps(record)).pipe(\n switchMap(uiProps => this._isAnchor()\n ? this._updateAnchorElement(record, uiProps as DynamicActionUiAnchorDef)\n : this._updateButtonElement(record, uiProps as DynamicActionUiButtonDef)\n )\n )\n }\n\n private _updateAnchorElement(\n record: DynamicDatatableActionMenuRecord,\n uiProps: DynamicActionUiAnchorDef\n ): Observable<void> {\n const _stream: Observable<any> = of(undefined)\n\n switch (uiProps.triggerType) {\n case 'link': {\n // console.log('Handle \"link\" triggerType.', uiProps)\n // this._tryInitTabIndex()\n this._tryInitBlockClick(record, uiProps)\n this._initMenuItemRouterLink(record, uiProps)\n\n break\n }\n case 'link-external': {\n // console.log('Handle \"link-external\" triggerType.', uiProps)\n // this._tryInitTabIndex()\n this._tryInitBlockClick(record, uiProps)\n if (hasProperty(uiProps, 'linkUrl')) {\n this._setAttr('href', uiProps.linkUrl)\n }\n if (hasProperty(uiProps, 'linkExtras')) {\n if (hasProperty(uiProps.linkExtras, 'target')) {\n this._setAttr('target', uiProps.linkExtras.target)\n }\n }\n // TODO: Consider making the ItemRouterLink work with external urls.\n // this._initMenuItemRouterLink(record, uiProps)\n\n break\n }\n // TODO: Unless we decide to add a route for openning assets, this would\n // be confusing to a user.\n // case 'link-asset': {\n // console.log('Handle \"link-asset\" triggerType.', uiProps)\n // // this._tryInitTabIndex()\n // this._tryInitBlockClick(record, uiProps)\n // break\n // }\n default: throw Error('[DatatableDynamicActionMenuItemDirective] ' +\n `triggerType ${uiProps.triggerType} is not valid for _updateAnchorElement().`)\n }\n\n return _stream// .pipe(mapTo(undefined))\n }\n\n private _updateButtonElement(\n record: DynamicDatatableActionMenuRecord,\n uiProps: DynamicActionUiAnchorDef | DynamicActionUiButtonDef\n ): Observable<void> {\n let _stream: Observable<any> = of(undefined)\n // this._updateClickElement(record, uiProps as DynamicActionUiButtonDef)\n switch (uiProps.triggerType) {\n case 'link-asset': {\n // console.log('Handle \"link-asset\" triggerType.', uiProps)\n // this._tryInitTabIndex()\n this._tryInitBlockClick(record, uiProps)\n _stream = _stream.pipe(switchMap(() => this._updateAssetElement(record, uiProps)))\n break\n }\n case 'click': {\n // console.log('Handle \"click\" triggerType.', uiProps)\n this._tryInitBlockClick(record, uiProps)\n _stream = _stream.pipe(switchMap(() => this._updateClickElement(record, uiProps)))\n break\n }\n default: throw Error('[DatatableDynamicActionMenuItemDirective] ' +\n `triggerType ${uiProps.triggerType} is not valid for _updateAnchorElement().`)\n }\n\n return _stream// .pipe(mapTo(undefined))\n }\n\n private _updateAssetElement(\n record: DynamicDatatableActionMenuRecord,\n uiProps: DynamicActionUiAnchorDef | DynamicActionUiButtonDef\n ): Observable<void> {\n // console.log('_updateAssetElement')\n // return of(undefined)\n // console.log('this._elementRef.nativeElement', this._elementRef.nativeElement)\n const t = fromEvent(this._elementRef.nativeElement, 'click').pipe(\n tap(event => {\n // const _context = this._getContext(record._row, record.rowAction)\n // const context = { ..._context, event, uiProps }\n // const result = this._valueHelper.evalSync(uiProps.blockClickExpr, context)\n // console.log(record, uiProps)\n // console.log('_updateClickElement click', (<any>event).button, event)\n if (this._assetReaderHelper) {\n if (uiProps.triggerType === 'link-asset' && hasProperty(uiProps, 'linkUrl')) {\n const url = uiProps.linkUrl\n let target: string | undefined\n if (hasProperty(uiProps, 'linkExtras') && hasProperty(uiProps.linkExtras, 'target')) {\n target = uiProps.linkExtras.target\n }\n this._assetReaderHelper.openLink(url, true, true, target)\n }\n }\n // if (!result) {\n // event.preventDefault()\n // event.stopPropagation()\n // }\n }),\n mapTo(undefined)\n )\n\n return of(undefined).pipe(\n // tap(() => console.log('starting _updateButtonElement')),\n switchMap(() => t),\n )\n }\n\n private _updateClickElement(\n record: DynamicDatatableActionMenuRecord,\n uiProps: DynamicActionUiButtonDef\n ): Observable<void> {\n // console.log('_updateClickElement', record, uiProps)\n // return of(undefined)\n return fromEvent(this._elementRef.nativeElement, 'click').pipe(\n switchMap(event => {\n const _context = this._getContext(record._row, record.rowAction)\n const context = { ..._context, event, uiProps }\n // console.log('click', (<any>event).button, event)\n // if (!result) {\n // event.preventDefault()\n // event.stopPropagation()\n // }\n\n return this._actionHelper.exec(uiProps._actionDef, context)\n }),\n mapTo(undefined)\n )\n }\n\n private _unsubClick() {\n if (this._clickSubscription && !this._clickSubscription.closed) {\n this._clickSubscription.unsubscribe()\n }\n }\n\n private _setAttr(attr: string, value: string) {\n this._renderer.setAttribute(this._elementRef.nativeElement, attr, value)\n }\n\n private _tryInitTabIndex() {\n if (getAttribute(this._elementRef.nativeElement, 'tabindex') === null) {\n this._renderer.setAttribute(this._elementRef.nativeElement, 'tabindex', '0')\n }\n }\n\n private _tryInitBlockClick(\n record: DynamicDatatableActionMenuRecord,\n uiProps: DynamicActionUiDef\n ) {\n this._unsubClick()\n if (hasProperty(uiProps, 'blockClickExpr')) {\n this._clickSubscription = this._blockClickExprObservable(uiProps, record).subscribe()\n }\n }\n\n private _blockClickExprObservable(\n uiProps: DynamicActionUiDef,\n record: DynamicDatatableActionMenuRecord\n ) {\n return fromEvent(this._elementRef.nativeElement, 'click').pipe(\n tap(event => {\n const _context = this._getContext(record._row, record.rowAction)\n const context = { ..._context, event, uiProps }\n const result = this._valueHelper.evalSync(uiProps.blockClickExpr, context)\n // console.log('click', result, (<any>event).button, event)\n if (!result) {\n event.preventDefault()\n event.stopPropagation()\n }\n }),\n mapTo(undefined)\n )\n }\n\n private _initMenuItemRouterLink(\n record: DynamicDatatableActionMenuRecord,\n uiProps: DynamicActionUiAnchorDef\n ) {\n this._menuRouterLink = new DatatableDynamicActionMenuItemRouterLink(\n this._router,\n this._route,\n getAttribute(this._elementRef.nativeElement, 'tabindex'),\n this._renderer,\n this._elementRef,\n this._locationStrategy\n )\n // console.log(this._menuRouterLink)\n\n this._menuRouterLink.routerLinkInput = uiProps.linkUrl as string\n\n if (hasProperty(uiProps, 'linkExtras')) {\n if (hasProperty(uiProps.linkExtras, 'target')) {\n this._menuRouterLink.target = uiProps.linkExtras.target\n }\n if (hasProperty(uiProps.linkExtras, 'queryParams')) {\n this._menuRouterLink.queryParams = uiProps.linkExtras.queryParams\n }\n if (hasProperty(uiProps.linkExtras, 'fragment')) {\n this._menuRouterLink.fragment = uiProps.linkExtras.fragment\n }\n if (hasProperty(uiProps.linkExtras, 'queryParamsHandling')) {\n this._menuRouterLink.queryParamsHandling = uiProps.linkExtras.queryParamsHandling\n }\n if (hasProperty(uiProps.linkExtras, 'preserveFragment')) {\n this._menuRouterLink.preserveFragment = uiProps.linkExtras.preserveFragment\n }\n if (hasProperty(uiProps.linkExtras, 'skipLocationChange')) {\n this._menuRouterLink.skipLocationChange = uiProps.linkExtras.skipLocationChange\n }\n if (hasProperty(uiProps.linkExtras, 'replaceUrl')) {\n this._menuRouterLink.replaceUrl = uiProps.linkExtras.replaceUrl\n }\n if (hasProperty(uiProps.linkExtras, 'state')) {\n this._menuRouterLink.state = uiProps.linkExtras.state\n }\n }\n\n this.ngOnChanges({})\n }\n\n private _isAnchor(): boolean {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'a'\n }\n\n private _getUiProps(record: DynamicDatatableActionMenuRecord): Promise<DynamicActionUiDef> {\n const context = this._getContext(record._row, record.rowAction)\n return this._actionHelper.getUiProps(record.rowAction.action, context)\n }\n\n /** @ignore */\n private _getContext(row: DynamicDatatableRow, rowActionDef: DynamicDatatableRowAction): DynamicDatatableRowActionContext {\n return {\n row\n }\n }\n\n private _setInvalidActionState(invalid: boolean = false) {\n const element = this._elementRef.nativeElement\n toggleAttribute(element, 'disabled', invalid)\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core'\nimport { BehaviorSubject, from, Observable, of } from 'rxjs'\nimport { concatMap, filter, switchMap, toArray } from 'rxjs/operators'\n\nimport { faEllipsisH } from '@fortawesome/free-solid-svg-icons'\nimport { DynamicValueHelperService } from '@theseam/ui-common/dynamic'\nimport { hasProperty, notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { DynamicDatatableRow } from '../datatable-dynamic-def'\nimport { DynamicDatatableRowActionsService } from '../dynamic-datatable-row-actions.service'\nimport { DynamicDatatableActionMenuElementTypes, DynamicDatatableActionMenuRecord } from '../models/dynamic-datatable-action-menu-record'\nimport { DynamicDatatableRowAction } from '../models/dynamic-datatable-row-action'\nimport { DynamicDatatableRowActionContext } from '../models/dynamic-datatable-row-action-context'\n\n@Component({\n selector: 'seam-datatable-dynamic-action-menu',\n templateUrl: './datatable-dynamic-action-menu.component.html',\n styleUrls: ['./datatable-dynamic-action-menu.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatatableDynamicActionMenuComponent {\n\n faEllipsisH = faEllipsisH\n\n @Input()\n get row() { return this._row.value }\n set row(value: DynamicDatatableRow | undefined) {\n this._row.next(value || undefined)\n }\n private _row = new BehaviorSubject<DynamicDatatableRow | undefined>(undefined)\n\n @Input()\n get actionDefs() { return this._actionDefs.value }\n set actionDefs(value: DynamicDatatableRowAction[]) {\n this._actionDefs.next(value || [])\n }\n private _actionDefs = new BehaviorSubject<DynamicDatatableRowAction[]>([])\n\n _menuRecords$: Observable<DynamicDatatableActionMenuRecord[]>\n\n /** @ignore */\n _actionMenuPositions = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ]\n\n constructor(\n private _valueHelper: DynamicValueHelperService,\n private _dynamicRowActions: DynamicDatatableRowActionsService\n ) {\n // this._menuRecords$ = combineLatest([ this._row, this._actionDefs ]).pipe(\n // switchMap(([ row, actionDefs ]) => !!row ? this._mapRecords(row, actionDefs) : of([]))\n // )\n this._menuRecords$ = this._row.pipe(\n switchMap(row => row\n ? this._dynamicRowActions.rowActions(row).pipe(\n switchMap(actionDefs => this._mapRecords(row, actionDefs))\n )\n : of([])\n ),\n // tap(v => console.log('actions', v))\n )\n\n // this._menuRecords$.subscribe()\n }\n\n // TODO: Consider moving this to `DynamicDatatableRowActionsService`.\n private _mapRecords<A extends DynamicDatatableRowAction>(\n row: DynamicDatatableRow,\n actionDefs: A[]\n ): Observable<DynamicDatatableActionMenuRecord[]> {\n return from(actionDefs).pipe(\n concatMap(actionDef => {\n return (async () => {\n const _rowAction: DynamicDatatableRowAction = {\n ...actionDef\n }\n\n const context = this._getRowActionContext(row, actionDef)\n\n if (hasProperty(_rowAction, 'hidden')) {\n _rowAction.hidden = await this._valueHelper.eval(_rowAction.hidden, context)\n if (_rowAction.hidden) {\n return undefined\n }\n }\n\n _rowAction.label = await this._valueHelper.eval(actionDef.label, context)\n\n if (hasProperty(_rowAction, 'disabled')) {\n _rowAction.disabled = await this._valueHelper.eval(_rowAction.disabled, context)\n }\n\n const record: DynamicDatatableActionMenuRecord = {\n _row: row,\n _def: actionDef,\n rowAction: _rowAction,\n elementType: this._expectedElementType(actionDef)\n }\n\n return record\n })()\n }),\n filter(notNullOrUndefined),\n toArray()\n )\n }\n\n /** @ignore */\n private _getRowActionContext(\n row: DynamicDatatableRow,\n rowActionDef: DynamicDatatableRowAction\n ): DynamicDatatableRowActionContext {\n return {\n row\n }\n }\n\n private _expectedElementType(def: DynamicDatatableRowAction): DynamicDatatableActionMenuElementTypes {\n const action = def.action\n\n if (action.type === 'link') {\n if (hasProperty(action as any, 'asset')) {\n return 'button'\n }\n return 'a'\n }\n\n return 'button'\n }\n\n}\n","<seam-menu #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\">\n\n <ng-container *ngFor=\"let record of _menuRecords$ | async\">\n\n <a *ngIf=\"record.elementType === 'a'\"\n seamMenuItem\n [seamDatatableDynamicActionMenuItem]=\"record\"\n class=\"list-group-item list-group-item-action py-1\">{{ record.rowAction.label }}</a>\n\n <button *ngIf=\"record.elementType === 'button'\"\n seamMenuItem\n [seamDatatableDynamicActionMenuItem]=\"record\"\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\">{{ record.rowAction.label }}</button>\n\n </ng-container>\n\n <!-- <ng-container *ngIf=\"(item.routerLink || item.href) && !item.confirmDialog; else noRouterLink\">\n <a *ngIf=\"item.href; else noHref\"\n seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [attr.href]=\"item.href\"\n [target]=\"item.target\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n <ng-template #noHref>\n <a seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [queryParams]=\"item.queryParams\"\n [fragment]=\"item.fragment\"\n [queryParamsHandling]=\"item.queryParamsHandling\"\n [preserveFragment]=\"item.preserveFragment\"\n [skipLocationChange]=\"item.skipLocationChange\"\n [replaceUrl]=\"item.replaceUrl\"\n [state]=\"item.state\"\n [routerLink]=\"item.routerLink\"\n [target]=\"item.target\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n </ng-template>\n </ng-container>\n <ng-template #noRouterLink>\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </button>\n </ng-template>\n </ng-container> -->\n</seam-menu>\n\n<button type=\"button\" class=\"datatable-action-button btn\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"$any(_actionMenuPositions)\"\n title=\"Row Actions\">\n <seam-icon [icon]=\"faEllipsisH\"></seam-icon>\n</button>\n","import { ComponentPortal, PortalInjector } from '@angular/cdk/portal'\nimport { ChangeDetectionStrategy, Component, Injector, Input, OnInit } from '@angular/core'\n\nimport { THESEAM_DATA_FILTER_OPTIONS } from '@theseam/ui-common/data-filters'\nimport type { ComponentType } from '@theseam/ui-common/models'\n\n@Component({\n selector: 'seam-datatable-dynamic-filter-container',\n templateUrl: './datatable-dynamic-filter-container.component.html',\n styleUrls: ['./datatable-dynamic-filter-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatatableDynamicFilterContainerComponent<C> implements OnInit {\n\n @Input()\n set filterComponent(value: ComponentType<C> | undefined | null) {\n this._filterComponent = value\n // if (this._filterComponent !== value) {\n // this._setPortal(value)\n // }\n }\n get filterComponent() { return this._filterComponent }\n private _filterComponent: ComponentType<C> | undefined | null\n\n @Input() options: any\n\n _portal: ComponentPortal<C> | null = null\n\n constructor(\n private _injector: Injector\n ) { }\n\n ngOnInit() {\n if (this.filterComponent) {\n this._setPortal(this.filterComponent)\n }\n }\n\n private _setPortal(component: ComponentType<C>) {\n if (this._portal) {\n this._portal = null\n }\n\n if (component) {\n this._portal = new ComponentPortal(component, undefined, this._createInjector())\n } else {\n this._portal = null\n }\n }\n\n private _createInjector(): PortalInjector {\n return new PortalInjector(this._injector, new WeakMap <any, any>([\n [ THESEAM_DATA_FILTER_OPTIONS, this.options ]\n ]))\n }\n\n}\n","<ng-template [cdkPortalOutlet]=\"_portal\"></ng-template>\n","import { InjectionToken } from '@angular/core'\n\nimport { IDatatableDynamicMenuBarItemManifest } from './datatable-dynamic-menu-bar-item-manifest'\n\nexport const THESEAM_DATATABLE_DYNAMIC_MENUBAR_ITEM = new InjectionToken<IDatatableDynamicMenuBarItemManifest>(\n 'IDatatableDynamicMenuBarItemManifest'\n)\n","import { ComponentPortal, PortalInjector } from '@angular/cdk/portal'\nimport { ChangeDetectionStrategy, Component, Inject, Injector, Input, Optional } from '@angular/core'\nimport { BehaviorSubject, Observable } from 'rxjs'\nimport { map, switchMap } from 'rxjs/operators'\n\nimport { DynamicValueHelperService } from '@theseam/ui-common/dynamic'\nimport { TheSeamDynamicComponentLoader } from '@theseam/ui-common/dynamic-component-loader'\nimport { hasProperty } from '@theseam/ui-common/utils'\n\nimport { IDatatableDynamicMenuBarItemManifest } from '../datatable-dynamic-menu-bar-item-manifest'\nimport { THESEAM_DATATABLE_DYNAMIC_MENUBAR_ITEM } from '../datatable-dynamic-menu-bar-token'\nimport {\n DynamicDatatableMenuBar,\n DynamicDatatableMenuBarColumn,\n DynamicDatatableMenuBarItem,\n DynamicDatatableMenuBarRow,\n DynamicDatatableMenuBarRowLayoutTriColumn\n} from '../models/dynamic-datatable-menu-bar'\n\nexport interface IDatatableDynamicMenuBarContentItem {\n // styles?: string | string[]\n // cssClass?: string | string[]\n portal?: ComponentPortal<object>\n // component?: string | ComponentType<{}>\n // config?: any\n}\n\nexport interface IDatatableDynamicMenuBarContentColumn {\n styles?: string | string[]\n cssClass?: string | string[]\n items?: IDatatableDynamicMenuBarContentItem[]\n}\n\nexport interface IDatatableDynamicMenuBarContentRowLayoutTriColumn {\n columnLeft?: IDatatableDynamicMenuBarContentColumn\n columnCenter?: IDatatableDynamicMenuBarContentColumn\n columnRight?: IDatatableDynamicMenuBarContentColumn\n}\n\nexport interface IDatatableDynamicMenuBarContentRow {\n styles?: string | string[]\n cssClass?: string | string[]\n priority?: number\n layoutType?: string\n layout?: IDatatableDynamicMenuBarContentRowLayoutTriColumn\n}\n\nexport interface IDatatableDynamicMenuBarContentRowContext {\n row: DynamicDatatableMenuBarRow\n}\n\nexport interface IDatatableDynamicMenuBarContentColumnContext {\n column: DynamicDatatableMenuBarColumn\n row: DynamicDatatableMenuBarRow\n}\n\nexport interface IDatatableDynamicMenuBarContentItemContext {\n item: DynamicDatatableMenuBarItem\n row: DynamicDatatableMenuBarRow\n column: DynamicDatatableMenuBarColumn\n}\n\n@Component({\n selector: 'seam-datatable-dynamic-menu-bar-content',\n templateUrl: './datatable-dynamic-menu-bar-content.component.html',\n styleUrls: ['./datatable-dynamic-menu-bar-content.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatatableDynamicMenuBarContentComponent {\n\n private readonly _def = new BehaviorSubject<DynamicDatatableMenuBar | undefined>(undefined)\n\n @Input()\n set def(value: DynamicDatatableMenuBar | undefined) { this._def.next(value) }\n get def(): DynamicDatatableMenuBar | undefined { return this._def.value }\n\n public readonly def$: Observable<DynamicDatatableMenuBar | undefined>\n\n readonly _rows$: Observable<IDatatableDynamicMenuBarContentRow[]>\n\n constructor(\n private readonly _valueHelper: DynamicValueHelperService,\n private readonly _dynamicComponentLoader: TheSeamDynamicComponentLoader,\n private readonly _injector: Injector,\n @Optional() @Inject(THESEAM_DATATABLE_DYNAMIC_MENUBAR_ITEM)\n private readonly _menuBarItemManifests?: IDatatableDynamicMenuBarItemManifest[]\n ) {\n this.def$ = this._def.asObservable()\n // .pipe(tap(v => console.log('def$', v)))\n\n this._rows$ = this.def$.pipe(switchMap(def => this._mapRows((def && def.rows) || [])))\n // .pipe(tap(v => console.log('_rows$', v)))\n }\n\n private _mapRows(rows: DynamicDatatableMenuBarRow[]): Promise<IDatatableDynamicMenuBarContentRow[]> {\n return Promise.all(rows.map(r => this._mapRow(r)))\n }\n\n private async _mapRow(row: DynamicDatatableMenuBarRow): Promise<IDatatableDynamicMenuBarContentRow> {\n const result: IDatatableDynamicMenuBarContentRow = { }\n const context = this._createRowContext(row)\n\n if (hasProperty(row, 'styles')) {\n result.styles = await this._valueHelper.eval(row.styles, context)\n }\n\n if (hasProperty(row, 'cssClass')) {\n result.cssClass = await this._valueHelper.eval(row.cssClass, context)\n }\n\n if (hasProperty(row, 'priority')) {\n result.priority = await this._valueHelper.eval(row.priority, context)\n }\n\n result.layoutType = row.layout.type\n result.layout = await this._mapRowLayout(row.layout, row)\n\n return result\n }\n\n private async _mapRowLayout(\n layout: DynamicDatatableMenuBarRowLayoutTriColumn,\n row: DynamicDatatableMenuBarRow\n ): Promise<IDatatableDynamicMenuBarContentRowLayoutTriColumn> {\n const result: IDatatableDynamicMenuBarContentRowLayoutTriColumn = { }\n\n if (hasProperty(layout, 'columnLeft')) {\n result.columnLeft = await this._mapColumn(layout.columnLeft, row)\n }\n\n if (hasProperty(layout, 'columnCenter')) {\n result.columnCenter = await this._mapColumn(layout.columnCenter, row)\n }\n\n if (hasProperty(layout, 'columnRight')) {\n result.columnRight = await this._mapColumn(layout.columnRight, row)\n }\n\n return result\n }\n\n private async _mapColumn(\n column: DynamicDatatableMenuBarColumn,\n row: DynamicDatatableMenuBarRow\n ): Promise<IDatatableDynamicMenuBarContentColumn> {\n const result: IDatatableDynamicMenuBarContentColumn = { }\n const context = this._createColumnContext(column, row)\n\n if (hasProperty(column, 'styles')) {\n result.styles = await this._valueHelper.eval(column.styles, context)\n }\n\n if (hasProperty(column, 'cssClass')) {\n result.cssClass = await this._valueHelper.eval(column.cssClass, context)\n }\n\n result.items = await Promise.all(column.items.map(v => this._mapItem(v, row, column)))\n\n return result\n }\n\n private async _mapItem(\n item: DynamicDatatableMenuBarItem,\n row: DynamicDatatableMenuBarRow,\n column: DynamicDatatableMenuBarColumn\n ): Promise<IDatatableDynamicMenuBarContentItem> {\n const result: IDatatableDynamicMenuBarContentItem = { }\n const context = this._createItemContext(item, row, column)\n\n // if (hasProperty(item, 'styles')) {\n // result.styles = await this._valueHelper.eval(item.styles, context)\n // }\n\n // if (hasProperty(item, 'cssClass')) {\n // result.cssClass = await this._valueHelper.eval(item.cssClass, context)\n // }\n\n if (hasProperty(item, 'component')) {\n // result.component = await this._valueHelper.eval(item.component, context)\n const component = await this._valueHelper.eval(item.component, context)\n\n let data: any\n if (hasProperty(item, 'data')) {\n // result.data = await this._valueHelper.eval(item.data, context)\n // console.log('%cdata', 'color:cyan', item.data)\n data = await this._valueHelper.eval(item.data, context)\n // console.log('%cdata', 'color:limegreen', data)\n }\n\n result.portal = await this._getComponentPortal(component, data)\n }\n\n return result\n }\n\n private _createRowContext(row: DynamicDatatableMenuBarRow): IDatatableDynamicMenuBarContentRowContext {\n return {\n row\n }\n }\n\n private _createColumnContext(\n column: DynamicDatatableMenuBarColumn,\n row: DynamicDatatableMenuBarRow\n ): IDatatableDynamicMenuBarContentColumnContext {\n return {\n row,\n column\n }\n }\n\n private _createItemContext(\n item: DynamicDatatableMenuBarItem,\n row: DynamicDatatableMenuBarRow,\n column: DynamicDatatableMenuBarColumn\n ): IDatatableDynamicMenuBarContentItemContext {\n return {\n item,\n row,\n column\n }\n }\n\n private async _getComponentPortal(component: string, data?: any): Promise<ComponentPortal<object> | undefined> {\n const manifest = (this._menuBarItemManifests || []).find(m => m.name === component)\n\n if (!manifest) {\n // TODO: Make sure the component is skipped instead of erroring outside of dev mode.\n throw Error(`MenuBar manifest for '${component}' not found.`)\n }\n\n // TODO: Create a new injector with the data injected\n let injector = this._injector\n if (manifest.dataToken) {\n injector = new PortalInjector(this._injector, new WeakMap([\n [manifest.dataToken, data]\n ]))\n }\n\n if (typeof manifest.component === 'string') {\n this._dynamicComponentLoader.getComponentFactory<object>(manifest.component).pipe(\n map(componentFactory => {\n return new ComponentPortal(\n componentFactory.componentType,\n null,\n injector,\n (componentFactory as any /* ComponentFactoryBoundToModule */).ngModule.componentFactoryResolver\n )\n })\n ).toPromise()\n } else {\n return new ComponentPortal(manifest.component, null, injector, null)\n }\n }\n\n}\n","<seam-datatable-menu-bar-row *ngFor=\"let row of _rows$ | async; last as isLast\"\n [class.mb-2]=\"!isLast\"\n [ngClass]=\"$any(row.cssClass)\"\n [ngStyle]=\"$any(row.styles)\">\n <ng-container *ngIf=\"row.layoutType === 'tri-column'\">\n <seam-datatable-menu-bar-column-left *ngIf=\"row.layout?.columnLeft\"\n [ngClass]=\"$any(row.layout).cssClass\"\n [ngStyle]=\"$any(row.layout).styles\">\n <ng-container *ngIf=\"row.layout?.columnLeft?.items\">\n <ng-container *ngFor=\"let item of row.layout?.columnLeft?.items\">\n <ng-template [cdkPortalOutlet]=\"item.portal\"></ng-template>\n </ng-container>\n </ng-container>\n </seam-datatable-menu-bar-column-left>\n <seam-datatable-menu-bar-column-center *ngIf=\"row.layout?.columnCenter\"\n [ngClass]=\"$any(row.layout).cssClass\"\n [ngStyle]=\"$any(row.layout).styles\">\n <ng-container *ngIf=\"row.layout?.columnCenter?.items\">\n <ng-container *ngFor=\"let item of row.layout?.columnCenter?.items\">\n <ng-template [cdkPortalOutlet]=\"item.portal\"></ng-template>\n </ng-container>\n </ng-container>\n </seam-datatable-menu-bar-column-center>\n <seam-datatable-menu-bar-column-right *ngIf=\"row.layout?.columnRight\"\n [ngClass]=\"$any(row.layout).cssClass\"\n [ngStyle]=\"$any(row.layout).styles\">\n <ng-container *ngIf=\"row.layout?.columnRight?.items\">\n <ng-container *ngFor=\"let item of row.layout?.columnRight?.items\">\n <ng-template [cdkPortalOutlet]=\"item.portal\"></ng-template>\n </ng-container>\n </ng-container>\n </seam-datatable-menu-bar-column-right>\n </ng-container>\n</seam-datatable-menu-bar-row>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core'\nimport { Observable } from 'rxjs'\nimport { map } from 'rxjs/operators'\n\nimport { IDataExporter } from '@theseam/ui-common/data-exporter'\n\nimport {\n DatatableDynamicDef,\n DynamicDatatableOptions\n} from './datatable-dynamic-def'\nimport { DynamicDatatableDefService } from './dynamic-datatable-def.service'\nimport { DynamicDatatableRowActionsService } from './dynamic-datatable-row-actions.service'\nimport { DynamicDatatableFilterMenuItem } from './models/dynamic-datatable-filter-menu-item'\nimport { DynamicDatatableMenuBar } from './models/dynamic-datatable-menu-bar'\n\n/**\n * # EXPERIMENTAL\n *\n * NOTE: This component is still experimental. When stable all standard\n * datatables must use this component, unless there is a good reason not to, in\n * our apps.\n *\n * ----------------------------------------------------------------------------\n *\n * Datatable that is built from a json definition.\n *\n * All standard datatables in our apps must use this component, unless there is\n * a good reason not to. If a standard datatable does not use this component\n * then an explaination comment needs to be clearly provided in the code to\n * avoid getting migrated to this component.\n *\n * A few reasons this component should to be used:\n * - We can, more easily, control what a datatable in our app does by requiring\n * the definition follow a json schema, instead of having full scripting\n * access available to the developer.\n * + By using json we can maintain the tables from any external app/language\n * that can produce a json string.\n * + More scripting access often leads to different hacks across the tables\n * that should have just been supported by this component if it is a feature\n * a datatable should be able to do in an app of ours.\n * - We can allow any of our tables to be configured by the server.\n * + By supporting configuration on the server we can change the tables\n * without a new build and do things like allowing non-developers/clients to\n * maintain the tables functionality.\n */\n@Component({\n selector: 'seam-datatable-dynamic',\n templateUrl: './datatable-dynamic.component.html',\n styleUrls: ['./datatable-dynamic.component.scss'],\n providers: [\n DynamicDatatableDefService,\n DynamicDatatableRowActionsService\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatatableDynamicComponent {\n\n /** The `DatatableDynamicDef` that defines the datatable. */\n @Input() set def(value: DatatableDynamicDef | undefined | null) {\n this._dynamicDef.setDef(value || undefined)\n }\n\n /**\n * Observes whether the datatable has a def.\n * @ignore\n */\n _hasDef$: Observable<boolean>\n\n /**\n * Observes whether the datatable has a menu bar.\n */\n menuBar$: Observable<DynamicDatatableMenuBar | undefined>\n\n /**\n * The available exporters.\n * @ignore\n */\n _exporters$: Observable<IDataExporter[]>\n\n /**\n * The 'common' type filter menu items.\n * @ignore\n */\n _commonFilterMenuItems$: Observable<DynamicDatatableFilterMenuItem[]>\n\n /**\n * Observes whether the datatable has a 'full-search' menu item.\n * @ignore\n */\n _hasFullSearch$: Observable<boolean>\n\n /**\n * Observes whether the datatable has a filter menu.\n * @ignore\n */\n _hasFilterMenu$: Observable<boolean>\n\n /**\n * Observes datatable options.\n * @ignore\n */\n _options$: Observable<DynamicDatatableOptions | undefined>\n\n /**\n * TODO: Implement def columns parser.\n * @ignore\n */\n _tmp_columns$: Observable<any>\n\n /**\n * TODO: Implement def rows parser.\n * @ignore\n */\n _tmp_rows$: Observable<any>\n\n constructor(\n private readonly _dynamicDef: DynamicDatatableDefService\n ) {\n this._hasDef$ = this._dynamicDef.def$.pipe(map(def => !!def))\n\n this.menuBar$ = this._dynamicDef.menuBar$\n\n this._exporters$ = this._dynamicDef.exporters$\n\n this._commonFilterMenuItems$ = this._dynamicDef.filterMenuItems$\n .pipe(map(f => f.filter(_f => _f.type === 'common')))\n\n this._hasFullSearch$ = this._dynamicDef.filterMenuItems$\n .pipe(map(f => !!f.find(_f => _f.type === 'full-search')))\n\n this._hasFilterMenu$ = this._dynamicDef.hasFilterMenu$\n\n this._options$ = this._dynamicDef.options$\n\n this._tmp_columns$ = this._dynamicDef.def$.pipe(\n map(def => def ? def.columns : [])\n )\n\n this._tmp_rows$ = this._dynamicDef.def$.pipe(\n map(def => def ? def.rows : []),\n // tap(v => console.log('_tmp_rows$', v))\n )\n }\n\n}\n","<ng-container *ngIf=\"_hasDef$ | async\">\n <seam-datatable *ngIf=\"_options$ | async as opts\"\n class=\"w-100 h-100\"\n [columns]=\"_tmp_columns$ | async\"\n [rows]=\"_tmp_rows$ | async\"\n [virtualization]=\"opts.virtualization\">\n\n <seam-datatable-menu-bar *ngIf=\"menuBar$ | async as menuBar\">\n <seam-datatable-dynamic-menu-bar-content [def]=\"menuBar\"></seam-datatable-dynamic-menu-bar-content>\n </seam-datatable-menu-bar>\n <!-- <seam-datatable-menu-bar *ngIf=\"_hasFilterMenu$ | async\">\n <div class=\"d-flex flex-row pb-2\">\n <div class=\"d-flex flex-row justify-content-end flex-grow-1\">\n <seam-data-filter-search seamDatatableFilter *ngIf=\"_hasFullSearch$\"></seam-data-filter-search>\n </div>\n </div>\n <div class=\"d-flex flex-row\">\n <div class=\"d-flex justify-content-center flex-grow-1\">\n <ng-container *ngFor=\"let r of _commonFilterMenuItems$ | async; let isFirst = first\">\n <seam-datatable-dynamic-filter-container\n [class.ml-1]=\"!isFirst\"\n [filterComponent]=\"r.component\"\n [options]=\"r.options\">\n </seam-datatable-dynamic-filter-container>\n </ng-container>\n </div>\n <seam-datatable-export-button *ngIf=\"_exporters$ | async as exporters\"\n [exporters]=\"exporters\">\n </seam-datatable-export-button>\n </div>\n </seam-datatable-menu-bar> -->\n\n <ng-template seamDatatableRowActionItem let-row>\n <seam-datatable-dynamic-action-menu [row]=\"row\"></seam-datatable-dynamic-action-menu>\n </ng-template>\n\n </seam-datatable>\n</ng-container>\n","import { PortalModule } from '@angular/cdk/portal'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { RouterModule } from '@angular/router'\n\nimport { TheSeamButtonsModule } from '@theseam/ui-common/buttons'\nimport { TheSeamDataExporterModule } from '@theseam/ui-common/data-exporter'\nimport { TheSeamDataFiltersModule } from '@theseam/ui-common/data-filters'\nimport { TheSeamDatatableModule } from '@theseam/ui-common/datatable'\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\nimport { TheSeamMenuModule } from '@theseam/ui-common/menu'\nimport { TheSeamSharedModule } from '@theseam/ui-common/shared'\nimport { TheSeamTableCellTypesModule } from '@theseam/ui-common/table-cell-types'\n\nimport { DatatableDynamicActionMenuComponent } from './datatable-dynamic-action-menu/datatable-dynamic-action-menu.component'\nimport { DatatableDynamicFilterContainerComponent } from './datatable-dynamic-filter-container/datatable-dynamic-filter-container.component'\nimport { DatatableDynamicMenuBarContentComponent } from './datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component'\nimport { DatatableDynamicComponent } from './datatable-dynamic.component'\nimport { DatatableDynamicActionMenuItemDirective } from './directives/datatable-dynamic-action-menu-item.directive'\n\n@NgModule({\n declarations: [\n DatatableDynamicComponent,\n DatatableDynamicFilterContainerComponent,\n DatatableDynamicActionMenuComponent,\n DatatableDynamicActionMenuItemDirective,\n DatatableDynamicMenuBarContentComponent,\n ],\n imports: [\n CommonModule,\n TheSeamSharedModule,\n TheSeamDatatableModule,\n TheSeamTableCellTypesModule,\n TheSeamDataExporterModule,\n TheSeamDataFiltersModule,\n TheSeamIconModule,\n PortalModule,\n RouterModule,\n TheSeamMenuModule,\n TheSeamButtonsModule\n ],\n exports: [\n DatatableDynamicComponent,\n TheSeamDatatableModule,\n DatatableDynamicActionMenuItemDirective\n ]\n})\nexport class TheSeamDatatableDynamicModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.DynamicDatatableDefService","i4","i2.DynamicDatatableRowActionsService","i3","i6.DatatableDynamicActionMenuItemDirective","i1","i5","i1.DynamicDatatableDefService","i2","i4.DatatableDynamicActionMenuComponent","i5.DatatableDynamicMenuBarContentComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEM,SAAU,kCAAkC,CAChD,OAAiC,EAAA;AAEjC,IAAA,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;AACzB,QAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;AACjB,YAAA,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAA;AACxB,SAAA;AACF,KAAA;AACH;;ACRM,SAAU,qCAAqC,CACnD,UAAsC,EAAA;AAEtC,IAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AACrB,QAAA,UAAU,CAAC,KAAK,GAAG,SAAS,CAAA;AAC7B,KAAA;AACH;;ACNM,SAAU,kCAAkC,CAChD,OAAgC,EAAA;IAEhC,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,IAAI,OAAO,CAAC,cAAc,KAAK,IAAI,EAAE;AAC3E,QAAA,OAAO,CAAC,cAAc,GAAG,IAAI,CAAA;AAC9B,KAAA;AACH;;ACFM,SAAU,8BAA8B,CAC5C,GAAwB,EAAA;AAExB,IAAA,kCAAkC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAE/C,IAAI,GAAG,CAAC,UAAU,EAAE;AAClB,QAAA,qCAAqC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;AACtD,KAAA;IAED,IAAI,GAAG,CAAC,OAAO,EAAE;AACf,QAAA,kCAAkC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AAChD,KAAA;AACH;;ACFA;;;AAGG;MAEU,0BAA0B,CAAA;AA4CrC,IAAA,WAAA,CACiC,aAA8B,EAC5B,WAAsE,EAC/F,YAAuC,EAAA;QAAvC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAA2B;;AAhChC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAkC,SAAS,CAAC,CAAA;QAkC5F,IAAI,CAAC,cAAc,IAAI,aAAa,IAAI,EAAE,CAAC,CAAA;QAC3C,IAAI,CAAC,YAAY,IAAI,WAAW,IAAI,EAAE,CAAC,CAAA;QAEvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAA;QAE3C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAC9B,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAC9C,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAC/C,CAAA;QAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CACpC,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EACpD,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAC/C,CAAA;AAED,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAClC,SAAS,CAAC,GAAG,IAAG;YACd,IAAI,CAAC,GAAG,EAAE;AAAE,gBAAA,OAAO,EAAE,CAAC,KAAK,CAAC,CAAA;AAAE,aAAA;;YAG9B,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE;AAC1C,gBAAA,QAAQ,GAAG,CAAC,UAAU,CAAC,KAAK;oBAC1B,KAAK,gBAAgB,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAA;oBACtC,KAAK,QAAQ,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAA;AAChC,iBAAA;AACF,aAAA;;AAGD,YAAA,OAAO,aAAa,CAAC;AACnB,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC5C,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;aACnD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAC3C,SAAC,CAAC,EACF,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAC/C,CAAA;AAED,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAC5B,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,EACzC,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAC/C,CAAA;AAED,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAC5B,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;;AAE9F,QAAA,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAC/C,CAAA;KACF;;AAGM,IAAA,MAAM,CAAC,GAAoC,EAAA;AAChD,QAAA,IAAI,GAAG,EAAE;YAAE,8BAA8B,CAAC,GAAG,CAAC,CAAA;AAAE,SAAA;QAChD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,SAAS,CAAC,CAAA;KACxC;;AAGO,IAAA,aAAa,CAAC,GAAwB,EAAA;AAC5C,QAAA,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;AAC/D,YAAA,OAAO,EAAE,CAAA;AACV,SAAA;AAED,QAAA,OAAO,GAAG,CAAC,UAAU,CAAC,SAAS;aAC5B,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;aACvD,MAAM,CAAC,kBAAkB,CAAC,CAAA;KAC9B;;AAGO,IAAA,mBAAmB,CAAC,GAAwB,EAAA;QAClD,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;AACxF,YAAA,OAAO,EAAE,CAAA;AACV,SAAA;AAED,QAAA,OAAO,GAAG,CAAC,UAAU,CAAC,OAAO;aAC1B,GAAG,CAAC,CAAC,IAAG;YACP,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;AAC5D,YAAA,IAAI,GAAG,EAAE;gBAAE,OAAO,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAA;AAAE,aAAA;AACxD,SAAC,CAAC;aACD,MAAM,CAAC,kBAAkB,CAAC,CAAA;KAC9B;;wHA9HU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EA6C3B,qBAAqB,EAAA,EAAA,EAAA,KAAA,EACrB,uBAAuB,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;4HA9CtB,0BAA0B,EAAA,CAAA,CAAA;4FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC,UAAU;;0BA8CN,MAAM;2BAAC,qBAAqB,CAAA;;0BAC5B,MAAM;2BAAC,uBAAuB,CAAA;;;MCtDtB,iCAAiC,CAAA;IAE5C,WACU,CAAA,YAAuC,EACvC,WAAuC,EAAA;QADvC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAA2B;QACvC,IAAW,CAAA,WAAA,GAAX,WAAW,CAA4B;KAC5C;AAEL;;AAEG;AACI,IAAA,UAAU,CAAC,GAAwB,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAC/B,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,IAAI,EAAE,GAAG,EAAE,CAAC,EAC/D,SAAS,CAAC,UAAU,IAAI,UAAU;AAChC,cAAE,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CACrB,GAAG,CAAC,SAAS,IAAG;AACd,gBAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE;AAC7D,oBAAA,IAAI,OAAO,SAAS,CAAC,MAAM,KAAK,SAAS,EAAE;wBACzC,OAAO,SAAS,CAAC,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;AAChD,qBAAA;AAAM,yBAAA;wBACL,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;;AAEzD,wBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;wBACtE,OAAO,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAA;AACxC,qBAAA;AACF,iBAAA;AACD,gBAAA,OAAO,SAAS,CAAA;AAClB,aAAC,CAAC,EACF,OAAO,EAAE,EACT,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CACvC;AACD,cAAE,EAAE,CAAC,EAAE,CAAC,CACT,CACF,CAAA;KACF;;IAGO,oBAAoB,CAAC,GAAwB,EAAE,YAAuC,EAAA;QAC5F,OAAO;YACL,GAAG;SACJ,CAAA;KACF;;+HAzCU,iCAAiC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,0BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mIAAjC,iCAAiC,EAAA,CAAA,CAAA;4FAAjC,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAD7C,UAAU;;;ACmBX;;;AAGG;AACU,IAAA,wCAAwC,GAA9C,MAAM,wCAAwC,CAAA;IAQnD,WACU,CAAA,MAAc,EACd,KAAqB,EACN,QAAuB,EACtC,QAAmB,EACnB,EAAc,EACd,gBAAkC,EAAA;QALlC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QAErB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACnB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;QACd,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAE1C,IAAI,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE;AACnD,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,kBAAkB,CAC1C,MAAM,EACN,KAAK,EACL,GAAG;AACH,YAAA,QAAQ,EACR,EAAE,CAAC,aAAa,EAChB,gBAAgB,CACjB,CAAA;;AAGD,YAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAiB,KAAI;;gBAEpG,IAAI,IAAI,CAAC,cAAc,EAAE;oBACvB,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;AAC7G,iBAAA;AACH,aAAC,CAAC,CAAA;AACH,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAC1B,MAAM,EACN,KAAK,EACL,QAAkB,EAClB,QAAQ,EACR,EAAE,CACH,CAAA;;AAGD,YAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAK;;gBAEnF,IAAI,IAAI,CAAC,MAAM,EAAE;AAAE,oBAAA,OAAQ,IAAI,CAAC,MAAc,CAAC,OAAO,EAAE,CAAA;AAAE,iBAAA;AAC5D,aAAC,CAAC,CAAA;;;;;;;;;;;AAYH,SAAA;KACF;IAED,IAAI,UAAU,KAA6B,OAAO,IAAI,CAAC,MAAM,CAAA,EAAE;IAC/D,IAAI,kBAAkB,KAAqC,OAAO,IAAI,CAAC,cAAc,CAAA,EAAE;IAEvF,IAAI,eAAe,CAAC,QAAwB,EAAA;QAC1C,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAA;AAClC,SAAA;aAAM,IAAI,IAAI,CAAC,cAAc,EAAE;AAC9B,YAAA,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,QAAQ,CAAA;AAC1C,SAAA;KACF;IAED,IAAI,WAAW,CAAC,KAA2B,EAAA;QACzC,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAA;AAChC,SAAA;aAAM,IAAI,IAAI,CAAC,cAAc,EAAE;AAC9B,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,KAAK,CAAA;AACxC,SAAA;KACF;IAED,IAAI,QAAQ,CAAC,KAAa,EAAA;QACxB,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAA;AAC7B,SAAA;aAAM,IAAI,IAAI,CAAC,cAAc,EAAE;AAC9B,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,KAAK,CAAA;AACrC,SAAA;KACF;IAED,IAAI,mBAAmB,CAAC,KAA0B,EAAA;QAChD,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,mBAAmB,GAAG,KAAK,CAAA;AACxC,SAAA;aAAM,IAAI,IAAI,CAAC,cAAc,EAAE;AAC9B,YAAA,IAAI,CAAC,cAAc,CAAC,mBAAmB,GAAG,KAAK,CAAA;AAChD,SAAA;KACF;IAED,IAAI,gBAAgB,CAAC,KAAc,EAAA;QACjC,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAA;AACrC,SAAA;aAAM,IAAI,IAAI,CAAC,cAAc,EAAE;AAC9B,YAAA,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,KAAK,CAAA;AAC7C,SAAA;KACF;IAED,IAAI,kBAAkB,CAAC,KAAc,EAAA;QACnC,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,kBAAkB,GAAG,KAAK,CAAA;AACvC,SAAA;aAAM,IAAI,IAAI,CAAC,cAAc,EAAE;AAC9B,YAAA,IAAI,CAAC,cAAc,CAAC,kBAAkB,GAAG,KAAK,CAAA;AAC/C,SAAA;KACF;IAED,IAAI,UAAU,CAAC,KAAc,EAAA;QAC3B,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAA;AAC/B,SAAA;aAAM,IAAI,IAAI,CAAC,cAAc,EAAE;AAC9B,YAAA,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,KAAK,CAAA;AACvC,SAAA;KACF;IAED,IAAI,KAAK,CAAC,KAA2B,EAAA;QACnC,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;AAC1B,SAAA;aAAM,IAAI,IAAI,CAAC,cAAc,EAAE;AAC9B,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,KAAK,CAAA;AAClC,SAAA;KACF;IAED,IAAI,MAAM,CAAC,KAAyB,EAAA;QAClC,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,KAAe,CAAA;AAE5C,YAAA,IAAI,KAAK,EAAE;AACT,gBAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;AACnE,aAAA;AAAM,iBAAA;gBACL,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;AACxD,aAAA;AACF,SAAA;KACF;IAEM,OAAO,GAAA;;;;QAIZ,IAAI,IAAI,CAAC,wBAAwB,EAAE;AACjC,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAA;AACjF,YAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAA;AACrC,SAAA;QAED,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;AAC1D,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAA;AAClC,SAAA;KACF;EAEF;AA1JY,wCAAwC,GAAA,UAAA,CAAA;AAWhD,IAAA,OAAA,CAAA,CAAA,EAAA,SAAS,CAAC,UAAU,CAAC,CAAA;AAXb,CAAA,EAAA,wCAAwC,CA0JpD,CAAA;AAED;AACA;MAKa,uCAAuC,CAAA;IAElD,IAEI,kCAAkC,CAAC,KAAuC,EAAA;AAC5E,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACzB;AAQD,IAAA,WAAA,CACU,WAAoC,EACpC,SAAoB,EACpB,YAAuC,EACvC,aAAyC,EACzC,kBAA4C,EAC5C,OAAe,EACf,MAAsB,EACtB,iBAAmC,EAAA;QAPnC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAyB;QACpC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QACpB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAA2B;QACvC,IAAa,CAAA,aAAA,GAAb,aAAa,CAA4B;QACzC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAA0B;QAC5C,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QACf,IAAM,CAAA,MAAA,GAAN,MAAM,CAAgB;QACtB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAkB;AAfrC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,aAAa,CAAmC,CAAC,CAAC,CAAA;AAKhE,QAAA,IAAA,CAAA,mBAAmB,GAAG,YAAY,CAAC,KAAK,CAAA;AAY9C,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI;;AAE1C,QAAA,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EACzC,GAAG,CAAC,MAAK,EAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAA,EAAE,CAAC,EACjD,UAAU,CAAC,KAAK,IAAG;;YAEjB,IAAI,SAAS,EAAE,EAAE;AAAE,gBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AAAE,aAAA;AACzC,YAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAA;AACjC,YAAA,OAAO,EAAE,CAAC,SAAS,CAAC,CAAA;AACtB,SAAC,CAAC,CAEH,CAAC,SAAS,EAAE,CAAA;KACd;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAA;QACtC,IAAI,CAAC,WAAW,EAAE,CAAA;QAClB,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE;AACnE,YAAA,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAA;AACtD,SAAA;KACF;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;;QAEhC,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE;YACnE,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;AACvD,YAAA,IAAI,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE;AAChD,gBAAA,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE;oBACzG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;AAClH,iBAAA;AACF,aAAA;AAAM,iBAAA;gBACL,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;AAC/D,aAAA;AACF,SAAA;KACF;AAEM,IAAA,OAAO,CAAC,MAAwC,EAAA;QACrD,IAAI,CAAC,WAAW,EAAE,CAAA;QAElB,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CACxC,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE;cACjC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,OAAmC,CAAC;cACtE,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,OAAmC,CAAC,CACzE,CACF,CAAA;KACF;IAEO,oBAAoB,CAC1B,MAAwC,EACxC,OAAiC,EAAA;AAEjC,QAAA,MAAM,OAAO,GAAoB,EAAE,CAAC,SAAS,CAAC,CAAA;QAE9C,QAAQ,OAAO,CAAC,WAAW;YACzB,KAAK,MAAM,EAAE;;;AAGX,gBAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AACxC,gBAAA,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;gBAE7C,MAAK;AACN,aAAA;YACD,KAAK,eAAe,EAAE;;;AAGpB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AACxC,gBAAA,IAAI,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE;oBACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;AACvC,iBAAA;AACD,gBAAA,IAAI,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE;oBACtC,IAAI,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE;wBAC7C,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;AACnD,qBAAA;AACF,iBAAA;;;gBAID,MAAK;AACN,aAAA;;;;;;;;;AASD,YAAA,SAAS,MAAM,KAAK,CAAC,4CAA4C;AAC/D,gBAAA,CAAA,YAAA,EAAe,OAAO,CAAC,WAAW,CAAA,yCAAA,CAA2C,CAAC,CAAA;AACjF,SAAA;QAED,OAAO,OAAO,CAAA;KACf;IAEO,oBAAoB,CAC1B,MAAwC,EACxC,OAA4D,EAAA;AAE5D,QAAA,IAAI,OAAO,GAAoB,EAAE,CAAC,SAAS,CAAC,CAAA;;QAE5C,QAAQ,OAAO,CAAC,WAAW;YACzB,KAAK,YAAY,EAAE;;;AAGjB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;gBACxC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;gBAClF,MAAK;AACN,aAAA;YACD,KAAK,OAAO,EAAE;;AAEZ,gBAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;gBACxC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;gBAClF,MAAK;AACN,aAAA;AACD,YAAA,SAAS,MAAM,KAAK,CAAC,4CAA4C;AAC/D,gBAAA,CAAA,YAAA,EAAe,OAAO,CAAC,WAAW,CAAA,yCAAA,CAA2C,CAAC,CAAA;AACjF,SAAA;QAED,OAAO,OAAO,CAAA;KACf;IAEO,mBAAmB,CACzB,MAAwC,EACxC,OAA4D,EAAA;;;;AAK5D,QAAA,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAC/D,GAAG,CAAC,KAAK,IAAG;;;;;;YAMV,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,gBAAA,IAAI,OAAO,CAAC,WAAW,KAAK,YAAY,IAAI,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE;AAC3E,oBAAA,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAA;AAC3B,oBAAA,IAAI,MAA0B,CAAA;AAC9B,oBAAA,IAAI,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE;AACnF,wBAAA,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAA;AACnC,qBAAA;AACD,oBAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;AAC1D,iBAAA;AACF,aAAA;;;;;AAKH,SAAC,CAAC,EACF,KAAK,CAAC,SAAS,CAAC,CACjB,CAAA;AAED,QAAA,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI;;AAEvB,QAAA,SAAS,CAAC,MAAM,CAAC,CAAC,CACnB,CAAA;KACF;IAEO,mBAAmB,CACzB,MAAwC,EACxC,OAAiC,EAAA;;;AAIjC,QAAA,OAAO,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAC5D,SAAS,CAAC,KAAK,IAAG;AAChB,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;YAChE,MAAM,OAAO,GAAG,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;;;;;;AAO/C,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;AAC7D,SAAC,CAAC,EACF,KAAK,CAAC,SAAS,CAAC,CACjB,CAAA;KACF;IAEO,WAAW,GAAA;QACjB,IAAI,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;AAC9D,YAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAA;AACtC,SAAA;KACF;IAEO,QAAQ,CAAC,IAAY,EAAE,KAAa,EAAA;AAC1C,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;KACzE;IAEO,gBAAgB,GAAA;AACtB,QAAA,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,UAAU,CAAC,KAAK,IAAI,EAAE;AACrE,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,UAAU,EAAE,GAAG,CAAC,CAAA;AAC7E,SAAA;KACF;IAEO,kBAAkB,CACxB,MAAwC,EACxC,OAA2B,EAAA;QAE3B,IAAI,CAAC,WAAW,EAAE,CAAA;AAClB,QAAA,IAAI,WAAW,CAAC,OAAO,EAAE,gBAAgB,CAAC,EAAE;AAC1C,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,SAAS,EAAE,CAAA;AACtF,SAAA;KACF;IAEO,yBAAyB,CAC/B,OAA2B,EAC3B,MAAwC,EAAA;AAExC,QAAA,OAAO,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAC5D,GAAG,CAAC,KAAK,IAAG;AACV,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;YAChE,MAAM,OAAO,GAAG,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;AAC/C,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;;YAE1E,IAAI,CAAC,MAAM,EAAE;gBACX,KAAK,CAAC,cAAc,EAAE,CAAA;gBACtB,KAAK,CAAC,eAAe,EAAE,CAAA;AACxB,aAAA;AACH,SAAC,CAAC,EACF,KAAK,CAAC,SAAS,CAAC,CACjB,CAAA;KACF;IAEO,uBAAuB,CAC7B,MAAwC,EACxC,OAAiC,EAAA;AAEjC,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,wCAAwC,CACjE,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,MAAM,EACX,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,UAAU,CAAC,EACxD,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,iBAAiB,CACvB,CAAA;;QAGD,IAAI,CAAC,eAAe,CAAC,eAAe,GAAG,OAAO,CAAC,OAAiB,CAAA;AAEhE,QAAA,IAAI,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE;YACtC,IAAI,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE;gBAC7C,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAA;AACxD,aAAA;YACD,IAAI,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE;gBAClD,IAAI,CAAC,eAAe,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAA;AAClE,aAAA;YACD,IAAI,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE;gBAC/C,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAA;AAC5D,aAAA;YACD,IAAI,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,qBAAqB,CAAC,EAAE;gBAC1D,IAAI,CAAC,eAAe,CAAC,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAA;AAClF,aAAA;YACD,IAAI,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,kBAAkB,CAAC,EAAE;gBACvD,IAAI,CAAC,eAAe,CAAC,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAA;AAC5E,aAAA;YACD,IAAI,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,oBAAoB,CAAC,EAAE;gBACzD,IAAI,CAAC,eAAe,CAAC,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAA;AAChF,aAAA;YACD,IAAI,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE;gBACjD,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAA;AAChE,aAAA;YACD,IAAI,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE;gBAC5C,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAA;AACtD,aAAA;AACF,SAAA;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;KACrB;IAEO,SAAS,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,GAAG,CAAA;KACrE;AAEO,IAAA,WAAW,CAAC,MAAwC,EAAA;AAC1D,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;AAC/D,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KACvE;;IAGO,WAAW,CAAC,GAAwB,EAAE,YAAuC,EAAA;QACnF,OAAO;YACL,GAAG;SACJ,CAAA;KACF;IAEO,sBAAsB,CAAC,UAAmB,KAAK,EAAA;AACrD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAA;AAC9C,QAAA,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;KAC9C;;qIA3TU,uCAAuC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;yHAAvC,uCAAuC,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,EAAA,kCAAA,EAAA,oCAAA,EAAA,EAAA,QAAA,EAAA,CAAA,oCAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAAvC,uCAAuC,EAAA,UAAA,EAAA,CAAA;kBAJnD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sCAAsC;AAChD,oBAAA,QAAQ,EAAE,oCAAoC;AAC/C,iBAAA,CAAA;oUAKK,kCAAkC,EAAA,CAAA;sBAFrC,KAAK;;;MCnLK,mCAAmC,CAAA;IAI9C,IACI,GAAG,GAAK,EAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAA,EAAE;IACpC,IAAI,GAAG,CAAC,KAAsC,EAAA;QAC5C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,CAAA;KACnC;IAGD,IACI,UAAU,GAAK,EAAA,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAA,EAAE;IAClD,IAAI,UAAU,CAAC,KAAkC,EAAA;QAC/C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;KACnC;IAiCD,WACU,CAAA,YAAuC,EACvC,kBAAqD,EAAA;QADrD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAA2B;QACvC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmC;QAhD/D,IAAW,CAAA,WAAA,GAAG,WAAW,CAAA;AAOjB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,eAAe,CAAkC,SAAS,CAAC,CAAA;AAOtE,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAA8B,EAAE,CAAC,CAAA;;AAK1E,QAAA,IAAA,CAAA,oBAAoB,GAAG;AACrB,YAAA;AACE,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,QAAQ,EAAE,KAAK;AAChB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,QAAQ,EAAE,QAAQ;AACnB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,QAAQ,EAAE,KAAK;AAChB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,QAAQ,EAAE,QAAQ;AACnB,aAAA;SACF,CAAA;;;;AASC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CACjC,SAAS,CAAC,GAAG,IAAI,GAAG;cAChB,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAC1C,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAC3D;AACH,cAAE,EAAE,CAAC,EAAE,CAAC,CACT,CAEF,CAAA;;KAGF;;IAGO,WAAW,CACjB,GAAwB,EACxB,UAAe,EAAA;QAEf,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAC1B,SAAS,CAAC,SAAS,IAAG;YACpB,OAAO,CAAC,YAAW;AACjB,gBAAA,MAAM,UAAU,GAA8B;AAC5C,oBAAA,GAAG,SAAS;iBACb,CAAA;gBAED,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;AAEzD,gBAAA,IAAI,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE;AACrC,oBAAA,UAAU,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;oBAC5E,IAAI,UAAU,CAAC,MAAM,EAAE;AACrB,wBAAA,OAAO,SAAS,CAAA;AACjB,qBAAA;AACF,iBAAA;AAED,gBAAA,UAAU,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;AAEzE,gBAAA,IAAI,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE;AACvC,oBAAA,UAAU,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;AACjF,iBAAA;AAED,gBAAA,MAAM,MAAM,GAAqC;AAC/C,oBAAA,IAAI,EAAE,GAAG;AACT,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,SAAS,EAAE,UAAU;AACrB,oBAAA,WAAW,EAAE,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC;iBAClD,CAAA;AAED,gBAAA,OAAO,MAAM,CAAA;aACd,GAAG,CAAA;SACL,CAAC,EACF,MAAM,CAAC,kBAAkB,CAAC,EAC1B,OAAO,EAAE,CACV,CAAA;KACF;;IAGO,oBAAoB,CAC1B,GAAwB,EACxB,YAAuC,EAAA;QAEvC,OAAO;YACL,GAAG;SACJ,CAAA;KACF;AAEO,IAAA,oBAAoB,CAAC,GAA8B,EAAA;AACzD,QAAA,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;AAEzB,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;AAC1B,YAAA,IAAI,WAAW,CAAC,MAAa,EAAE,OAAO,CAAC,EAAE;AACvC,gBAAA,OAAO,QAAQ,CAAA;AAChB,aAAA;AACD,YAAA,OAAO,GAAG,CAAA;AACX,SAAA;AAED,QAAA,OAAO,QAAQ,CAAA;KAChB;;iIAnIU,mCAAmC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,iCAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnC,mCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mCAAmC,4HCpBhD,8tEA8DA,EAAA,MAAA,EAAA,CAAA,iPAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,EAAA,MAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,WAAA,EAAA,gCAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,WAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uCAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,oCAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oCAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;4FD1Ca,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAN/C,SAAS;+BACE,oCAAoC,EAAA,eAAA,EAG7B,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,8tEAAA,EAAA,MAAA,EAAA,CAAA,iPAAA,CAAA,EAAA,CAAA;6JAO3C,GAAG,EAAA,CAAA;sBADN,KAAK;gBAQF,UAAU,EAAA,CAAA;sBADb,KAAK;;;MEnBK,wCAAwC,CAAA;IAEnD,IACI,eAAe,CAAC,KAA0C,EAAA;AAC5D,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAA;;;;KAI9B;IACD,IAAI,eAAe,KAAK,OAAO,IAAI,CAAC,gBAAgB,CAAA,EAAE;AAOtD,IAAA,WAAA,CACU,SAAmB,EAAA;QAAnB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAU;QAH7B,IAAO,CAAA,OAAA,GAA8B,IAAI,CAAA;KAIpC;IAEL,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;AACtC,SAAA;KACF;AAEO,IAAA,UAAU,CAAC,SAA2B,EAAA;QAC5C,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;AACpB,SAAA;AAED,QAAA,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAA;AACjF,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;AACpB,SAAA;KACF;IAEO,eAAe,GAAA;QACrB,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,OAAO,CAAY;AAC/D,YAAA,CAAE,2BAA2B,EAAE,IAAI,CAAC,OAAO,CAAE;AAC9C,SAAA,CAAC,CAAC,CAAA;KACJ;;sIA1CU,wCAAwC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxC,wCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wCAAwC,mJCZrD,6DACA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;4FDWa,wCAAwC,EAAA,UAAA,EAAA,CAAA;kBANpD,SAAS;+BACE,yCAAyC,EAAA,eAAA,EAGlC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6DAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA;+FAK3C,eAAe,EAAA,CAAA;sBADlB,KAAK;gBAUG,OAAO,EAAA,CAAA;sBAAf,KAAK;;;MEpBK,sCAAsC,GAAG,IAAI,cAAc,CACtE,sCAAsC;;MC+D3B,uCAAuC,CAAA;AAIlD,IAAA,IACI,GAAG,CAAC,KAA0C,EAAA,EAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA,EAAE;IAC7E,IAAI,GAAG,GAA0C,EAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAA,EAAE;AAMzE,IAAA,WAAA,CACmB,YAAuC,EACvC,uBAAsD,EACtD,SAAmB,EAEnB,qBAA8D,EAAA;QAJ9D,IAAY,CAAA,YAAA,GAAZ,YAAY,CAA2B;QACvC,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAA+B;QACtD,IAAS,CAAA,SAAA,GAAT,SAAS,CAAU;QAEnB,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAyC;AAfhE,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,eAAe,CAAsC,SAAS,CAAC,CAAA;QAiBzF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;;AAGpC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;;KAEvF;AAEO,IAAA,QAAQ,CAAC,IAAkC,EAAA;QACjD,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KACnD;IAEO,MAAM,OAAO,CAAC,GAA+B,EAAA;QACnD,MAAM,MAAM,GAAuC,EAAG,CAAA;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;AAE3C,QAAA,IAAI,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE;AAC9B,YAAA,MAAM,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAClE,SAAA;AAED,QAAA,IAAI,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE;AAChC,YAAA,MAAM,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;AACtE,SAAA;AAED,QAAA,IAAI,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE;AAChC,YAAA,MAAM,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;AACtE,SAAA;QAED,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAA;AACnC,QAAA,MAAM,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAEzD,QAAA,OAAO,MAAM,CAAA;KACd;AAEO,IAAA,MAAM,aAAa,CACzB,MAAiD,EACjD,GAA+B,EAAA;QAE/B,MAAM,MAAM,GAAsD,EAAG,CAAA;AAErE,QAAA,IAAI,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE;AACrC,YAAA,MAAM,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;AAClE,SAAA;AAED,QAAA,IAAI,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE;AACvC,YAAA,MAAM,CAAC,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,CAAA;AACtE,SAAA;AAED,QAAA,IAAI,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE;AACtC,YAAA,MAAM,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;AACpE,SAAA;AAED,QAAA,OAAO,MAAM,CAAA;KACd;AAEO,IAAA,MAAM,UAAU,CACtB,MAAqC,EACrC,GAA+B,EAAA;QAE/B,MAAM,MAAM,GAA0C,EAAG,CAAA;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAEtD,QAAA,IAAI,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;AACjC,YAAA,MAAM,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AACrE,SAAA;AAED,QAAA,IAAI,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE;AACnC,YAAA,MAAM,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;AACzE,SAAA;AAED,QAAA,MAAM,CAAC,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;AAEtF,QAAA,OAAO,MAAM,CAAA;KACd;AAEO,IAAA,MAAM,QAAQ,CACpB,IAAiC,EACjC,GAA+B,EAC/B,MAAqC,EAAA;QAErC,MAAM,MAAM,GAAwC,EAAG,CAAA;AACvD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;;;;;;;AAU1D,QAAA,IAAI,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE;;AAElC,YAAA,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;AAEvE,YAAA,IAAI,IAAS,CAAA;AACb,YAAA,IAAI,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;;;AAG7B,gBAAA,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;;AAExD,aAAA;AAED,YAAA,MAAM,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;AAChE,SAAA;AAED,QAAA,OAAO,MAAM,CAAA;KACd;AAEO,IAAA,iBAAiB,CAAC,GAA+B,EAAA;QACvD,OAAO;YACL,GAAG;SACJ,CAAA;KACF;IAEO,oBAAoB,CAC1B,MAAqC,EACrC,GAA+B,EAAA;QAE/B,OAAO;YACL,GAAG;YACH,MAAM;SACP,CAAA;KACF;AAEO,IAAA,kBAAkB,CACxB,IAAiC,EACjC,GAA+B,EAC/B,MAAqC,EAAA;QAErC,OAAO;YACL,IAAI;YACJ,GAAG;YACH,MAAM;SACP,CAAA;KACF;AAEO,IAAA,MAAM,mBAAmB,CAAC,SAAiB,EAAE,IAAU,EAAA;QAC7D,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,qBAAqB,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAA;QAEnF,IAAI,CAAC,QAAQ,EAAE;;AAEb,YAAA,MAAM,KAAK,CAAC,CAAA,sBAAA,EAAyB,SAAS,CAAA,YAAA,CAAc,CAAC,CAAA;AAC9D,SAAA;;AAGD,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAA;QAC7B,IAAI,QAAQ,CAAC,SAAS,EAAE;YACtB,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,OAAO,CAAC;AACxD,gBAAA,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;AAC3B,aAAA,CAAC,CAAC,CAAA;AACJ,SAAA;AAED,QAAA,IAAI,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,EAAE;AAC1C,YAAA,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,CAAS,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAC/E,GAAG,CAAC,gBAAgB,IAAG;AACrB,gBAAA,OAAO,IAAI,eAAe,CACxB,gBAAgB,CAAC,aAAa,EAC9B,IAAI,EACJ,QAAQ,EACP,gBAAuB,qCAAsC,QAAQ,CAAC,wBAAwB,CAChG,CAAA;AACH,aAAC,CAAC,CACH,CAAC,SAAS,EAAE,CAAA;AACd,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,IAAI,eAAe,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;AACrE,SAAA;KACF;;AAzLU,uCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uCAAuC,kIAgB5B,sCAAsC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAhBjD,uCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uCAAuC,uGCpEpD,8rDAkCA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mCAAA,EAAA,QAAA,EAAA,qCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,qCAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oCAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;4FDkCa,uCAAuC,EAAA,UAAA,EAAA,CAAA;kBANnD,SAAS;+BACE,yCAAyC,EAAA,eAAA,EAGlC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,8rDAAA,EAAA,CAAA;;0BAkB5C,QAAQ;;0BAAI,MAAM;2BAAC,sCAAsC,CAAA;4CAXxD,GAAG,EAAA,CAAA;sBADN,KAAK;;;AEzDR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BG;MAWU,yBAAyB,CAAA;;IAGpC,IAAa,GAAG,CAAC,KAA6C,EAAA;QAC5D,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC,CAAA;KAC5C;AAuDD,IAAA,WAAA,CACmB,WAAuC,EAAA;QAAvC,IAAW,CAAA,WAAA,GAAX,WAAW,CAA4B;QAExD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QAE7D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAA;QAEzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAA;AAE9C,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB;aAC7D,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAA;AAEvD,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB;aACrD,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,CAAA;QAE5D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,CAAA;QAEtD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAA;AAE1C,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAC7C,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CACnC,CAAA;AAED,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAC1C,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAEhC,CAAA;KACF;;uHAvFU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAI,0BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,EANzB,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,SAAA,EAAA;QACT,0BAA0B;QAC1B,iCAAiC;AAClC,KAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpDH,kqDAsCA,EAAA,MAAA,EAAA,CAAA,6CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,MAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,0BAAA,EAAA,kBAAA,EAAA,0BAAA,EAAA,4BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,SAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,+BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,mCAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uCAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;4FDiBa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAVrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EAGvB,SAAA,EAAA;wBACT,0BAA0B;wBAC1B,iCAAiC;qBAClC,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,kqDAAA,EAAA,MAAA,EAAA,CAAA,6CAAA,CAAA,EAAA,CAAA;8GAKlC,GAAG,EAAA,CAAA;sBAAf,KAAK;;;MEXK,6BAA6B,CAAA;;2HAA7B,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA7B,6BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,iBAzBtC,yBAAyB;QACzB,wCAAwC;QACxC,mCAAmC;QACnC,uCAAuC;AACvC,QAAA,uCAAuC,aAGvC,YAAY;QACZ,mBAAmB;QACnB,sBAAsB;QACtB,2BAA2B;QAC3B,yBAAyB;QACzB,wBAAwB;QACxB,iBAAiB;QACjB,YAAY;QACZ,YAAY;QACZ,iBAAiB;AACjB,QAAA,oBAAoB,aAGpB,yBAAyB;QACzB,sBAAsB;QACtB,uCAAuC,CAAA,EAAA,CAAA,CAAA;AAG9B,6BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,YAlBtC,YAAY;QACZ,mBAAmB;QACnB,sBAAsB;QACtB,2BAA2B;QAC3B,yBAAyB;QACzB,wBAAwB;QACxB,iBAAiB;QACjB,YAAY;QACZ,YAAY;QACZ,iBAAiB;AACjB,QAAA,oBAAoB,EAIpB,sBAAsB,CAAA,EAAA,CAAA,CAAA;4FAIb,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBA3BzC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,yBAAyB;wBACzB,wCAAwC;wBACxC,mCAAmC;wBACnC,uCAAuC;wBACvC,uCAAuC;AACxC,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,sBAAsB;wBACtB,2BAA2B;wBAC3B,yBAAyB;wBACzB,wBAAwB;wBACxB,iBAAiB;wBACjB,YAAY;wBACZ,YAAY;wBACZ,iBAAiB;wBACjB,oBAAoB;AACrB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,yBAAyB;wBACzB,sBAAsB;wBACtB,uCAAuC;AACxC,qBAAA;AACF,iBAAA,CAAA;;;AC9CD;;AAEG;;;;"}