@theseam/ui-common 0.4.28 → 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 +5 -5
  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 +4 -4
  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 +4 -4
  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
@@ -0,0 +1,109 @@
1
+ import { Inject, Injectable, Optional } from '@angular/core';
2
+ import { BehaviorSubject, combineLatest, map, of, switchMap } from 'rxjs';
3
+ import { isNullOrUndefined, notNullOrUndefined } from '@theseam/ui-common/utils';
4
+ import { camelCase } from '@marklb/ngx-datatable';
5
+ import { THESEAM_COLUMNS_DATA_FILTER } from '../models/columns-data-filter';
6
+ import { THESEAM_COLUMNS_DATA_FILTERS_DEFAULT } from '../models/columns-data-filters/utils';
7
+ import { THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_NAME, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_NAME, THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_NAME } from '../models/columns-data-filters/models';
8
+ import * as i0 from "@angular/core";
9
+ export class ColumnsFiltersService {
10
+ constructor(_customColumnsDataFilters) {
11
+ this._customColumnsDataFilters = _customColumnsDataFilters;
12
+ this._columnFilterTemplates = new BehaviorSubject([]);
13
+ this.columnFilterTemplates$ = this._columnFilterTemplates.asObservable();
14
+ this._columnsFilters = new BehaviorSubject([]);
15
+ this.columnsFilters$ = this._columnsFilters.asObservable();
16
+ this.columnActiveFilterProps$ = this.columnsFilters$.pipe(switchMap(filters => {
17
+ if (!filters.length) {
18
+ return of([]);
19
+ }
20
+ return combineLatest(filters.map(f => f.filterStateChanges.pipe(map(filterState => !f.isDefault() ? filterState.state.prop : null))));
21
+ }), map(props => props.filter(notNullOrUndefined)));
22
+ }
23
+ registerColumnFilters(columns) {
24
+ this._columnsFilters.next([]);
25
+ const filters = columns
26
+ .filter(col => col.filterable)
27
+ .map(col => this.createColumnDataFilter(col, null));
28
+ this._columnsFilters.next(filters.filter(notNullOrUndefined));
29
+ }
30
+ setFilterTemplates(tpls) {
31
+ this._columnFilterTemplates.next(tpls);
32
+ }
33
+ createColumnDataFilter(column, initialValue) {
34
+ const prop = this.getColumnFilterProp(column);
35
+ if (isNullOrUndefined(prop)) {
36
+ return null;
37
+ }
38
+ return this._getColumnsDataFilter(prop, column, initialValue);
39
+ }
40
+ _getColumnsDataFilter(prop, column, initialValue) {
41
+ const filterClass = this._getColumnsDataFilterType(column);
42
+ let filter;
43
+ if (notNullOrUndefined(this._customColumnsDataFilters)) {
44
+ filter = this._customColumnsDataFilters.find(x => x.name === filterClass);
45
+ }
46
+ if (isNullOrUndefined(filter)) {
47
+ filter = THESEAM_COLUMNS_DATA_FILTERS_DEFAULT.find(x => x.name === filterClass);
48
+ }
49
+ if (notNullOrUndefined(filter)) {
50
+ return new filter.class(prop, initialValue, column);
51
+ }
52
+ return null;
53
+ }
54
+ _getColumnsDataFilterType(column) {
55
+ if (notNullOrUndefined(column.filterOptions) && notNullOrUndefined(column.filterOptions.filterType)) {
56
+ return column.filterOptions.filterType;
57
+ }
58
+ else if (notNullOrUndefined(column.cellType)) {
59
+ switch (column.cellType) {
60
+ case 'string':
61
+ case 'phone':
62
+ return THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_NAME;
63
+ case 'currency':
64
+ case 'decimal':
65
+ case 'integer':
66
+ return THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_NAME;
67
+ case 'date':
68
+ return THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_NAME;
69
+ }
70
+ }
71
+ return THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_NAME;
72
+ }
73
+ getColumnFilterProp(column) {
74
+ if (isNullOrUndefined(column)) {
75
+ return null;
76
+ }
77
+ const prop = column.filterOptions?.filterProp || column.prop || (notNullOrUndefined(column.name) ? camelCase(column.name) : undefined);
78
+ if (isNullOrUndefined(prop)) {
79
+ return null;
80
+ }
81
+ return `${prop}`;
82
+ }
83
+ getColumnFilter(prop) {
84
+ if (isNullOrUndefined(prop)) {
85
+ return undefined;
86
+ }
87
+ return this._columnsFilters.value.find(f => f.prop === prop);
88
+ }
89
+ filters() {
90
+ return this._columnsFilters.value;
91
+ }
92
+ addFilter(filter) {
93
+ this._columnsFilters.next([...this._columnsFilters.value, filter]);
94
+ }
95
+ removeFilter(filter) {
96
+ this._columnsFilters.next([...this._columnsFilters.value.filter(c => c.name !== filter.name)]);
97
+ }
98
+ }
99
+ ColumnsFiltersService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColumnsFiltersService, deps: [{ token: THESEAM_COLUMNS_DATA_FILTER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
100
+ ColumnsFiltersService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColumnsFiltersService });
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColumnsFiltersService, decorators: [{
102
+ type: Injectable
103
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
104
+ type: Optional
105
+ }, {
106
+ type: Inject,
107
+ args: [THESEAM_COLUMNS_DATA_FILTER]
108
+ }] }]; } });
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy1maWx0ZXJzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL3NlcnZpY2VzL2NvbHVtbnMtZmlsdGVycy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUV6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUloRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDakQsT0FBTyxFQUFxQiwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFBO0FBRTlGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQzNGLE9BQU8sRUFBRSw0Q0FBNEMsRUFBRSwrQ0FBK0MsRUFBRSw0Q0FBNEMsRUFBRSxNQUFNLHVDQUF1QyxDQUFBOztBQUduTSxNQUFNLE9BQU8scUJBQXFCO0lBb0JoQyxZQUNvRSx5QkFBMEQ7UUFBMUQsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUFpQztRQXBCN0csMkJBQXNCLEdBQUcsSUFBSSxlQUFlLENBQTBDLEVBQUUsQ0FBQyxDQUFBO1FBQzFGLDJCQUFzQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUVsRSxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUFzQixFQUFFLENBQUMsQ0FBQTtRQUMvRCxvQkFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUE7UUFFckQsNkJBQXdCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQ2xFLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtnQkFDbkIsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUE7YUFDZDtZQUVELE9BQU8sYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUM3RCxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUNuRSxDQUFDLENBQUMsQ0FBQTtRQUNMLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUMvQyxDQUFBO0lBSUUsQ0FBQztJQUVHLHFCQUFxQixDQUFDLE9BQWlDO1FBQzVELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBRTdCLE1BQU0sT0FBTyxHQUFHLE9BQU87YUFDcEIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQzthQUM3QixHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUE7UUFFckQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUE7SUFDL0QsQ0FBQztJQUVNLGtCQUFrQixDQUFDLElBQTZDO1FBQ3JFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDeEMsQ0FBQztJQUVNLHNCQUFzQixDQUFDLE1BQThCLEVBQUUsWUFBaUI7UUFDN0UsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBRTdDLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDM0IsT0FBTyxJQUFJLENBQUE7U0FDWjtRQUVELE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDL0QsQ0FBQztJQUVPLHFCQUFxQixDQUFDLElBQVksRUFBRSxNQUE4QixFQUFFLFlBQWlCO1FBRTNGLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUUxRCxJQUFJLE1BQU0sQ0FBQTtRQUNWLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEVBQUU7WUFDdEQsTUFBTSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxDQUFBO1NBQzFFO1FBRUQsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM3QixNQUFNLEdBQUcsb0NBQW9DLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsQ0FBQTtTQUNoRjtRQUVELElBQUksa0JBQWtCLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDOUIsT0FBTyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQTtTQUNwRDtRQUVELE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVPLHlCQUF5QixDQUFDLE1BQThCO1FBQzlELElBQUksa0JBQWtCLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDbkcsT0FBTyxNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQTtTQUN2QzthQUNJLElBQUksa0JBQWtCLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzVDLFFBQVEsTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDdkIsS0FBSyxRQUFRLENBQUM7Z0JBQ2QsS0FBSyxPQUFPO29CQUNWLE9BQU8sNENBQTRDLENBQUE7Z0JBQ3JELEtBQUssVUFBVSxDQUFDO2dCQUNoQixLQUFLLFNBQVMsQ0FBQztnQkFDZixLQUFLLFNBQVM7b0JBQ1osT0FBTywrQ0FBK0MsQ0FBQTtnQkFDeEQsS0FBSyxNQUFNO29CQUNULE9BQU8sNENBQTRDLENBQUE7YUFDdEQ7U0FDRjtRQUVELE9BQU8sNENBQTRDLENBQUE7SUFDckQsQ0FBQztJQUVNLG1CQUFtQixDQUFDLE1BQWlEO1FBQzFFLElBQUksaUJBQWlCLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDN0IsT0FBTyxJQUFJLENBQUE7U0FDWjtRQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxhQUFhLEVBQUUsVUFBVSxJQUFJLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBUyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQzlJLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDM0IsT0FBTyxJQUFJLENBQUE7U0FDWjtRQUVELE9BQU8sR0FBRyxJQUFJLEVBQUUsQ0FBQTtJQUNsQixDQUFDO0lBRU0sZUFBZSxDQUFDLElBQW1CO1FBQ3hDLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDM0IsT0FBTyxTQUFTLENBQUE7U0FDakI7UUFFRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUE7SUFDOUQsQ0FBQztJQUVNLE9BQU87UUFDWixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFBO0lBQ25DLENBQUM7SUFFTSxTQUFTLENBQUMsTUFBeUI7UUFDeEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBRSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBRSxDQUFDLENBQUE7SUFDdEUsQ0FBQztJQUVNLFlBQVksQ0FBQyxNQUF5QjtRQUMzQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFFLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUUsQ0FBQyxDQUFBO0lBQ2xHLENBQUM7O21IQXhIVSxxQkFBcUIsa0JBcUJWLDJCQUEyQjt1SEFyQnRDLHFCQUFxQjs0RkFBckIscUJBQXFCO2tCQURqQyxVQUFVOzswQkFzQk4sUUFBUTs7MEJBQUksTUFBTTsyQkFBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBvZiwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcydcblxuaW1wb3J0IHsgaXNOdWxsT3JVbmRlZmluZWQsIG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcblxuaW1wb3J0IHsgVGhlU2VhbURhdGF0YWJsZUNvbHVtbiB9IGZyb20gJy4uL21vZGVscy90YWJsZS1jb2x1bW4nXG5pbXBvcnQgeyBEYXRhRmlsdGVyQ29udGFpbmVyIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2RhdGEtZmlsdGVycydcbmltcG9ydCB7IGNhbWVsQ2FzZSB9IGZyb20gJ0BtYXJrbGIvbmd4LWRhdGF0YWJsZSdcbmltcG9ydCB7IENvbHVtbnNEYXRhRmlsdGVyLCBUSEVTRUFNX0NPTFVNTlNfREFUQV9GSUxURVIgfSBmcm9tICcuLi9tb2RlbHMvY29sdW1ucy1kYXRhLWZpbHRlcidcbmltcG9ydCB7IFRoZVNlYW1EYXRhdGFibGVDb2x1bW5GaWx0ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2RhdGF0YWJsZS1jb2x1bW4tZmlsdGVyLmRpcmVjdGl2ZSdcbmltcG9ydCB7IFRIRVNFQU1fQ09MVU1OU19EQVRBX0ZJTFRFUlNfREVGQVVMVCB9IGZyb20gJy4uL21vZGVscy9jb2x1bW5zLWRhdGEtZmlsdGVycy91dGlscydcbmltcG9ydCB7IFRIRVNFQU1fQ09MVU1OU19EQVRBX0ZJTFRFUl9EQVRFX1NFQVJDSF9OQU1FLCBUSEVTRUFNX0NPTFVNTlNfREFUQV9GSUxURVJfTlVNRVJJQ19TRUFSQ0hfTkFNRSwgVEhFU0VBTV9DT0xVTU5TX0RBVEFfRklMVEVSX1RFWFRfU0VBUkNIX05BTUUgfSBmcm9tICcuLi9tb2RlbHMvY29sdW1ucy1kYXRhLWZpbHRlcnMvbW9kZWxzJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29sdW1uc0ZpbHRlcnNTZXJ2aWNlIGltcGxlbWVudHMgRGF0YUZpbHRlckNvbnRhaW5lciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbHVtbkZpbHRlclRlbXBsYXRlcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGhlU2VhbURhdGF0YWJsZUNvbHVtbkZpbHRlckRpcmVjdGl2ZVtdPihbXSlcbiAgcHVibGljIHJlYWRvbmx5IGNvbHVtbkZpbHRlclRlbXBsYXRlcyQgPSB0aGlzLl9jb2x1bW5GaWx0ZXJUZW1wbGF0ZXMuYXNPYnNlcnZhYmxlKClcblxuICBwcml2YXRlIHJlYWRvbmx5IF9jb2x1bW5zRmlsdGVycyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29sdW1uc0RhdGFGaWx0ZXJbXT4oW10pXG4gIHB1YmxpYyByZWFkb25seSBjb2x1bW5zRmlsdGVycyQgPSB0aGlzLl9jb2x1bW5zRmlsdGVycy5hc09ic2VydmFibGUoKVxuXG4gIHB1YmxpYyByZWFkb25seSBjb2x1bW5BY3RpdmVGaWx0ZXJQcm9wcyQgPSB0aGlzLmNvbHVtbnNGaWx0ZXJzJC5waXBlKFxuICAgIHN3aXRjaE1hcChmaWx0ZXJzID0+IHtcbiAgICAgIGlmICghZmlsdGVycy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIG9mKFtdKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29tYmluZUxhdGVzdChmaWx0ZXJzLm1hcChmID0+IGYuZmlsdGVyU3RhdGVDaGFuZ2VzLnBpcGUoXG4gICAgICAgIG1hcChmaWx0ZXJTdGF0ZSA9PiAhZi5pc0RlZmF1bHQoKSA/IGZpbHRlclN0YXRlLnN0YXRlLnByb3AgOiBudWxsKVxuICAgICAgKSkpXG4gICAgfSksXG4gICAgbWFwKHByb3BzID0+IHByb3BzLmZpbHRlcihub3ROdWxsT3JVbmRlZmluZWQpKVxuICApXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChUSEVTRUFNX0NPTFVNTlNfREFUQV9GSUxURVIpIHByaXZhdGUgcmVhZG9ubHkgX2N1c3RvbUNvbHVtbnNEYXRhRmlsdGVycz86IHsgbmFtZTogc3RyaW5nLCBjbGFzczogYW55IH1bXVxuICApIHt9XG5cbiAgcHVibGljIHJlZ2lzdGVyQ29sdW1uRmlsdGVycyhjb2x1bW5zOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uW10pIHtcbiAgICB0aGlzLl9jb2x1bW5zRmlsdGVycy5uZXh0KFtdKVxuXG4gICAgY29uc3QgZmlsdGVycyA9IGNvbHVtbnNcbiAgICAgIC5maWx0ZXIoY29sID0+IGNvbC5maWx0ZXJhYmxlKVxuICAgICAgLm1hcChjb2wgPT4gdGhpcy5jcmVhdGVDb2x1bW5EYXRhRmlsdGVyKGNvbCwgbnVsbCkpXG5cbiAgICB0aGlzLl9jb2x1bW5zRmlsdGVycy5uZXh0KGZpbHRlcnMuZmlsdGVyKG5vdE51bGxPclVuZGVmaW5lZCkpXG4gIH1cblxuICBwdWJsaWMgc2V0RmlsdGVyVGVtcGxhdGVzKHRwbHM6IFRoZVNlYW1EYXRhdGFibGVDb2x1bW5GaWx0ZXJEaXJlY3RpdmVbXSkge1xuICAgIHRoaXMuX2NvbHVtbkZpbHRlclRlbXBsYXRlcy5uZXh0KHRwbHMpXG4gIH1cblxuICBwdWJsaWMgY3JlYXRlQ29sdW1uRGF0YUZpbHRlcihjb2x1bW46IFRoZVNlYW1EYXRhdGFibGVDb2x1bW4sIGluaXRpYWxWYWx1ZTogYW55KTogQ29sdW1uc0RhdGFGaWx0ZXIgfCBudWxsIHtcbiAgICBjb25zdCBwcm9wID0gdGhpcy5nZXRDb2x1bW5GaWx0ZXJQcm9wKGNvbHVtbilcblxuICAgIGlmIChpc051bGxPclVuZGVmaW5lZChwcm9wKSkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fZ2V0Q29sdW1uc0RhdGFGaWx0ZXIocHJvcCwgY29sdW1uLCBpbml0aWFsVmFsdWUpXG4gIH1cblxuICBwcml2YXRlIF9nZXRDb2x1bW5zRGF0YUZpbHRlcihwcm9wOiBzdHJpbmcsIGNvbHVtbjogVGhlU2VhbURhdGF0YWJsZUNvbHVtbiwgaW5pdGlhbFZhbHVlOiBhbnkpOiBDb2x1bW5zRGF0YUZpbHRlciB8IG51bGxcbiAge1xuICAgIGNvbnN0IGZpbHRlckNsYXNzID0gdGhpcy5fZ2V0Q29sdW1uc0RhdGFGaWx0ZXJUeXBlKGNvbHVtbilcblxuICAgIGxldCBmaWx0ZXJcbiAgICBpZiAobm90TnVsbE9yVW5kZWZpbmVkKHRoaXMuX2N1c3RvbUNvbHVtbnNEYXRhRmlsdGVycykpIHtcbiAgICAgIGZpbHRlciA9IHRoaXMuX2N1c3RvbUNvbHVtbnNEYXRhRmlsdGVycy5maW5kKHggPT4geC5uYW1lID09PSBmaWx0ZXJDbGFzcylcbiAgICB9XG5cbiAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQoZmlsdGVyKSkge1xuICAgICAgZmlsdGVyID0gVEhFU0VBTV9DT0xVTU5TX0RBVEFfRklMVEVSU19ERUZBVUxULmZpbmQoeCA9PiB4Lm5hbWUgPT09IGZpbHRlckNsYXNzKVxuICAgIH1cblxuICAgIGlmIChub3ROdWxsT3JVbmRlZmluZWQoZmlsdGVyKSkge1xuICAgICAgcmV0dXJuIG5ldyBmaWx0ZXIuY2xhc3MocHJvcCwgaW5pdGlhbFZhbHVlLCBjb2x1bW4pXG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHByaXZhdGUgX2dldENvbHVtbnNEYXRhRmlsdGVyVHlwZShjb2x1bW46IFRoZVNlYW1EYXRhdGFibGVDb2x1bW4pOiBzdHJpbmcge1xuICAgIGlmIChub3ROdWxsT3JVbmRlZmluZWQoY29sdW1uLmZpbHRlck9wdGlvbnMpICYmIG5vdE51bGxPclVuZGVmaW5lZChjb2x1bW4uZmlsdGVyT3B0aW9ucy5maWx0ZXJUeXBlKSkge1xuICAgICAgcmV0dXJuIGNvbHVtbi5maWx0ZXJPcHRpb25zLmZpbHRlclR5cGVcbiAgICB9XG4gICAgZWxzZSBpZiAobm90TnVsbE9yVW5kZWZpbmVkKGNvbHVtbi5jZWxsVHlwZSkpIHtcbiAgICAgIHN3aXRjaCAoY29sdW1uLmNlbGxUeXBlKSB7XG4gICAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgIGNhc2UgJ3Bob25lJzpcbiAgICAgICAgICByZXR1cm4gVEhFU0VBTV9DT0xVTU5TX0RBVEFfRklMVEVSX1RFWFRfU0VBUkNIX05BTUVcbiAgICAgICAgY2FzZSAnY3VycmVuY3knOlxuICAgICAgICBjYXNlICdkZWNpbWFsJzpcbiAgICAgICAgY2FzZSAnaW50ZWdlcic6XG4gICAgICAgICAgcmV0dXJuIFRIRVNFQU1fQ09MVU1OU19EQVRBX0ZJTFRFUl9OVU1FUklDX1NFQVJDSF9OQU1FXG4gICAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICAgIHJldHVybiBUSEVTRUFNX0NPTFVNTlNfREFUQV9GSUxURVJfREFURV9TRUFSQ0hfTkFNRVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBUSEVTRUFNX0NPTFVNTlNfREFUQV9GSUxURVJfVEVYVF9TRUFSQ0hfTkFNRVxuICB9XG5cbiAgcHVibGljIGdldENvbHVtbkZpbHRlclByb3AoY29sdW1uOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmIChpc051bGxPclVuZGVmaW5lZChjb2x1bW4pKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIGNvbnN0IHByb3AgPSBjb2x1bW4uZmlsdGVyT3B0aW9ucz8uZmlsdGVyUHJvcCB8fCBjb2x1bW4ucHJvcCB8fCAobm90TnVsbE9yVW5kZWZpbmVkKGNvbHVtbi5uYW1lKSA/IGNhbWVsQ2FzZSg8c3RyaW5nPmNvbHVtbi5uYW1lKSA6IHVuZGVmaW5lZClcbiAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQocHJvcCkpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgcmV0dXJuIGAke3Byb3B9YFxuICB9XG5cbiAgcHVibGljIGdldENvbHVtbkZpbHRlcihwcm9wOiBzdHJpbmcgfCBudWxsKTogQ29sdW1uc0RhdGFGaWx0ZXIgfCB1bmRlZmluZWQge1xuICAgIGlmIChpc051bGxPclVuZGVmaW5lZChwcm9wKSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9jb2x1bW5zRmlsdGVycy52YWx1ZS5maW5kKGYgPT4gZi5wcm9wID09PSBwcm9wKVxuICB9XG5cbiAgcHVibGljIGZpbHRlcnMoKTogQ29sdW1uc0RhdGFGaWx0ZXJbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtbnNGaWx0ZXJzLnZhbHVlXG4gIH1cblxuICBwdWJsaWMgYWRkRmlsdGVyKGZpbHRlcjogQ29sdW1uc0RhdGFGaWx0ZXIpIHtcbiAgICB0aGlzLl9jb2x1bW5zRmlsdGVycy5uZXh0KFsgLi4udGhpcy5fY29sdW1uc0ZpbHRlcnMudmFsdWUsIGZpbHRlciBdKVxuICB9XG5cbiAgcHVibGljIHJlbW92ZUZpbHRlcihmaWx0ZXI6IENvbHVtbnNEYXRhRmlsdGVyKSB7XG4gICAgdGhpcy5fY29sdW1uc0ZpbHRlcnMubmV4dChbIC4uLnRoaXMuX2NvbHVtbnNGaWx0ZXJzLnZhbHVlLmZpbHRlcihjID0+IGMubmFtZSAhPT0gZmlsdGVyLm5hbWUpIF0pXG4gIH1cbn1cbiJdfQ==
@@ -78,6 +78,13 @@ export class ColumnsManagerService {
78
78
  this._updateColumns.next(undefined);
79
79
  }
80
80
  }
81
+ setActionItemColumnPosition(actionItemColumnPosition) {
82
+ const changed = this._actionItemColumnPosition !== actionItemColumnPosition;
83
+ this._actionItemColumnPosition = actionItemColumnPosition;
84
+ if (changed) {
85
+ this._updateColumns.next(undefined);
86
+ }
87
+ }
81
88
  setActionMenuCellTpl(actionMenuCellTpl) {
82
89
  const changed = this._actionMenuCellTpl !== actionMenuCellTpl;
83
90
  this._actionMenuCellTpl = actionMenuCellTpl;
@@ -156,7 +163,13 @@ export class ColumnsManagerService {
156
163
  cols.push(_col);
157
164
  }
158
165
  if (this._shouldAddRowActionColumn()) {
159
- cols.push(createActionMenuColumn(this._actionMenuCellTpl, this._blankHeaderTpl));
166
+ const actionMenuColumn = createActionMenuColumn(this._actionMenuCellTpl, this._blankHeaderTpl, this._rowActionColumnIsFrozenLeft(), this._rowActionColumnIsFrozenRight());
167
+ if (this._rowActionColumnIsStaticLeft()) {
168
+ cols.unshift(actionMenuColumn);
169
+ }
170
+ else {
171
+ cols.push(actionMenuColumn);
172
+ }
160
173
  }
161
174
  // Make sure the default for any missing props are set.
162
175
  // TODO: Determine if this should be done earlier, because I don't like
@@ -242,6 +255,18 @@ export class ColumnsManagerService {
242
255
  _shouldAddRowActionColumn() {
243
256
  return this._rowActionItem !== undefined;
244
257
  }
258
+ _rowActionColumnIsFrozenLeft() {
259
+ return this._actionItemColumnPosition === 'frozenLeft';
260
+ }
261
+ _rowActionColumnIsFrozenRight() {
262
+ return this._actionItemColumnPosition === 'frozenRight';
263
+ }
264
+ _rowActionColumnIsStaticLeft() {
265
+ return this._actionItemColumnPosition === 'staticLeft';
266
+ }
267
+ _rowActionColumnIsStaticRight() {
268
+ return this._actionItemColumnPosition === 'staticRight';
269
+ }
245
270
  _shouldAddTreeToggleColumn(column) {
246
271
  return column.isTreeColumn !== undefined && column.isTreeColumn &&
247
272
  (!hasProperty(column, 'treeToggleTemplate') || !notNullOrUndefined(column.treeToggleTemplate));
@@ -253,9 +278,9 @@ export class ColumnsManagerService {
253
278
  return hasProperty(column, 'cellType');
254
279
  }
255
280
  }
256
- ColumnsManagerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ColumnsManagerService, deps: [{ token: i0.KeyValueDiffers }, { token: i1.DatatableColumnChangesService }], target: i0.ɵɵFactoryTarget.Injectable });
257
- ColumnsManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ColumnsManagerService });
258
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ColumnsManagerService, decorators: [{
281
+ ColumnsManagerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColumnsManagerService, deps: [{ token: i0.KeyValueDiffers }, { token: i1.DatatableColumnChangesService }], target: i0.ɵɵFactoryTarget.Injectable });
282
+ ColumnsManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColumnsManagerService });
283
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColumnsManagerService, decorators: [{
259
284
  type: Injectable
260
285
  }], ctorParameters: function () { return [{ type: i0.KeyValueDiffers }, { type: i1.DatatableColumnChangesService }]; } });
261
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL3NlcnZpY2VzL2NvbHVtbnMtbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWlFLE1BQU0sZUFBZSxDQUFBO0FBQ3pHLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUM1RixPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRWxGLE9BQU8sRUFJTCxhQUFhLEdBR2QsTUFBTSx1QkFBdUIsQ0FBQTtBQUU5QixPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFLMUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUE7QUFDM0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBQ2hFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFBOzs7QUFHdkUsSUFBSyxZQUlKO0FBSkQsV0FBSyxZQUFZO0lBQ2YsaURBQUssQ0FBQTtJQUNMLHVEQUFRLENBQUE7SUFDUixtREFBTSxDQUFBO0FBQ1IsQ0FBQyxFQUpJLFlBQVksS0FBWixZQUFZLFFBSWhCO0FBS0QsTUFBTSxPQUFPLHFCQUFxQjtJQXdCaEMsWUFDbUIsUUFBeUIsRUFDekIscUJBQW9EO1FBRHBELGFBQVEs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QUMsTUFBTSxDQUFDLENBQUE7WUFDM0QsSUFBSSxTQUFTLEVBQUU7Z0JBQ2Isb0VBQW9FO2dCQUNwRSxVQUFVLEdBQUcsSUFBSSxDQUFBO2FBQ2xCO1NBQ0Y7UUFDRCxPQUFPLFVBQVUsQ0FBQTtJQUNuQixDQUFDO0lBRU8sd0JBQXdCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLGNBQWMsS0FBSyxhQUFhLENBQUMsUUFBUSxDQUFBO0lBQ3ZELENBQUM7SUFFTyx5QkFBeUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsY0FBYyxLQUFLLFNBQVMsQ0FBQTtJQUMxQyxDQUFDO0lBRU8sMEJBQTBCLENBQUMsTUFBOEI7UUFDL0QsT0FBTyxNQUFNLENBQUMsWUFBWSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsWUFBWTtZQUM3RCxDQUFDLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQTtJQUNsRyxDQUFDO0lBRU8sd0JBQXdCLENBQUMsTUFBOEI7UUFDN0QsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQTtJQUMvQyxDQUFDO0lBRU8sNkJBQTZCLENBQUMsTUFBOEI7UUFDbEUsT0FBTyxXQUFXLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFBO0lBQ3hDLENBQUM7O2tIQXJVVSxxQkFBcUI7c0hBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgS2V5VmFsdWVDaGFuZ2VzLCBLZXlWYWx1ZURpZmZlciwgS2V5VmFsdWVEaWZmZXJzLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRlZmVyLCBFTVBUWSwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgYXVkaXRUaW1lLCBtYXAsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGgsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQge1xuICBEYXRhVGFibGVDb2x1bW5DZWxsVHJlZVRvZ2dsZSxcbiAgRGF0YVRhYmxlQ29sdW1uRGlyZWN0aXZlLFxuICBEYXRhVGFibGVDb2x1bW5IZWFkZXJEaXJlY3RpdmUsXG4gIFNlbGVjdGlvblR5cGUsXG4gIFRhYmxlQ29sdW1uLFxuICBUYWJsZUNvbHVtblByb3AsXG59IGZyb20gJ0BtYXJrbGIvbmd4LWRhdGF0YWJsZSdcblxuaW1wb3J0IHsgaGFzUHJvcGVydHksIG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcblxuaW1wb3J0IHsgRGF0YXRhYmxlQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0YXRhYmxlLWNvbHVtbi9kYXRhdGFibGUtY29sdW1uLmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGF0YWJsZVJvd0FjdGlvbkl0ZW1EaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2RhdGF0YWJsZS1yb3ctYWN0aW9uLWl0ZW0uZGlyZWN0aXZlJ1xuaW1wb3J0IHsgVGhlU2VhbURhdGF0YWJsZUNvbHVtbiB9IGZyb20gJy4uL21vZGVscy90YWJsZS1jb2x1bW4nXG5pbXBvcnQgeyBjcmVhdGVBY3Rpb25NZW51Q29sdW1uIH0gZnJvbSAnLi4vdXRpbHMvY3JlYXRlLWFjdGlvbi1tZW51LWNvbHVtbidcbmltcG9ydCB7IGNyZWF0ZUNoZWNrYm94Q29sdW1uIH0gZnJvbSAnLi4vdXRpbHMvY3JlYXRlLWNoZWNrYm94LWNvbHVtbidcbmltcG9ydCB7IGdldENvbHVtblByb3AgfSBmcm9tICcuLi91dGlscy9nZXQtY29sdW1uLXByb3AnXG5pbXBvcnQgeyBzZXRDb2x1bW5EZWZhdWx0cyB9IGZyb20gJy4uL3V0aWxzL3NldC1jb2x1bW4tZGVmYXVsdHMnXG5pbXBvcnQgeyB0cmFuc2xhdGVUZW1wbGF0ZUNvbHVtbnMgfSBmcm9tICcuLi91dGlscy90cmFuc2xhdGUtdGVtcGxhdGVzJ1xuaW1wb3J0IHsgRGF0YXRhYmxlQ29sdW1uQ2hhbmdlc1NlcnZpY2UgfSBmcm9tICcuL2RhdGF0YWJsZS1jb2x1bW4tY2hhbmdlcy5zZXJ2aWNlJ1xuXG5lbnVtIENvbHVtbnNUeXBlcyB7XG4gIElucHV0LFxuICBUZW1wbGF0ZSxcbiAgUmVzdWx0LFxufVxuXG5leHBvcnQgdHlwZSBJbnRlcm5hbENvbHVtbnNHZXR0ZXIgPSAoKSA9PiBUYWJsZUNvbHVtbltdXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb2x1bW5zTWFuYWdlclNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IF91cGRhdGVDb2x1bW5zID0gbmV3IFN1YmplY3Q8dm9pZD4oKVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2lucHV0Q29sdW1ucyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGhlU2VhbURhdGF0YWJsZUNvbHVtbltdPihbXSlcbiAgcHJpdmF0ZSByZWFkb25seSBfdGVtcGxhdGVDb2x1bW5zID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYXRhdGFibGVDb2x1bW5Db21wb25lbnRbXT4oW10pXG5cbiAgcHJpdmF0ZSByZWFkb25seSBfaW5wQ29sRGlmZmVyc01hcCA9IG5ldyBNYXA8VGFibGVDb2x1bW5Qcm9wLCBLZXlWYWx1ZURpZmZlcjxhbnksIGFueT4+KClcbiAgcHJpdmF0ZSByZWFkb25seSBfdHBsQ29sRGlmZmVyc01hcCA9IG5ldyBNYXA8VGFibGVDb2x1bW5Qcm9wLCBLZXlWYWx1ZURpZmZlcjxhbnksIGFueT4+KClcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVzdWx0Q29sRGlmZmVyc01hcCA9IG5ldyBNYXA8VGFibGVDb2x1bW5Qcm9wLCBLZXlWYWx1ZURpZmZlcjxhbnksIGFueT4+KClcbiAgcHJpdmF0ZSBfY29sUHJvcHNEaWZmZXI/OiBLZXlWYWx1ZURpZmZlcjxhbnksIGFueT5cblxuICBwcml2YXRlIF9pbnRlcm5hbENvbHVtbnNHZXR0ZXI/OiBJbnRlcm5hbENvbHVtbnNHZXR0ZXJcblxuICBwcml2YXRlIF9zZWxlY3Rpb25UeXBlOiBTZWxlY3Rpb25UeXBlIHwgdW5kZWZpbmVkXG4gIHByaXZhdGUgX3Jvd0FjdGlvbkl0ZW06IERhdGF0YWJsZVJvd0FjdGlvbkl0ZW1EaXJlY3RpdmUgfCB1bmRlZmluZWRcbiAgcHJpdmF0ZSBfYWN0aW9uTWVudUNlbGxUcGw6IFRlbXBsYXRlUmVmPERhdGFUYWJsZUNvbHVtbkRpcmVjdGl2ZT4gfCB1bmRlZmluZWRcbiAgcHJpdmF0ZSBfYmxhbmtIZWFkZXJUcGw6IFRlbXBsYXRlUmVmPERhdGFUYWJsZUNvbHVtbkhlYWRlckRpcmVjdGl2ZT4gfCB1bmRlZmluZWRcbiAgcHJpdmF0ZSBfdHJlZVRvZ2dsZVRwbDogVGVtcGxhdGVSZWY8RGF0YVRhYmxlQ29sdW1uQ2VsbFRyZWVUb2dnbGU+IHwgdW5kZWZpbmVkXG4gIHByaXZhdGUgX2hlYWRlclRwbDogVGVtcGxhdGVSZWY8RGF0YVRhYmxlQ29sdW1uSGVhZGVyRGlyZWN0aXZlPiB8IHVuZGVmaW5lZFxuICBwcml2YXRlIF9jZWxsVHlwZVNlbGVjdG9yVHBsOiBUZW1wbGF0ZVJlZjxEYXRhVGFibGVDb2x1bW5EaXJlY3RpdmU+IHwgdW5kZWZpbmVkXG5cbiAgLy8gVE9ETzogQ29uc2lkZXIgbWFraW5nIHRoaXMgYSBjb2x1bW5zIGNoYW5nZWQgb2JlcnZhYmxlLCB0byBtYWtlIGNoYW5nZXMgbW9yZSBwcmVkaWN0YWJsZS5cbiAgcHVibGljIHJlYWRvbmx5IGNvbHVtbnMkOiBPYnNlcnZhYmxlPFRoZVNlYW1EYXRhdGFibGVDb2x1bW5bXT5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kaWZmZXJzOiBLZXlWYWx1ZURpZmZlcnMsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY29sdW1uQ2hhbmdlc1NlcnZpY2U6IERhdGF0YWJsZUNvbHVtbkNoYW5nZXNTZXJ2aWNlLFxuICApIHtcbiAgICBjb25zdCB0ZW1wbGF0ZUNvbHVtbnMkID0gdGhpcy5fY29sdW1uQ2hhbmdlc1NlcnZpY2UuY29sdW1uSW5wdXRDaGFuZ2VzJC5waXBlKFxuICAgICAgc3RhcnRXaXRoKHVuZGVmaW5lZCksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGVtcGxhdGVDb2x1bW5zLmFzT2JzZXJ2YWJsZSgpLnBpcGUobWFwKHRyYW5zbGF0ZVRlbXBsYXRlQ29sdW1ucykpXG4gICAgICB9KVxuICAgIClcblxuICAgIHRoaXMuY29sdW1ucyQgPSBkZWZlcigoKSA9PiB7XG4gICAgICBsZXQgaXNGaXJzdCA9IHRydWVcbiAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgdGhpcy5faW5wdXRDb2x1bW5zLmFzT2JzZXJ2YWJsZSgpLFxuICAgICAgICB0ZW1wbGF0ZUNvbHVtbnMkLFxuICAgICAgICB0aGlzLl91cGRhdGVDb2x1bW5zLmFzT2JzZXJ2YWJsZSgpLnBpcGUoYXVkaXRUaW1lKDApLCBzdGFydFdpdGgodW5kZWZpbmVkKSlcbiAgICAgIF0pLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoWyBpbnB1dENvbHVtbnMsIHRlbXBsYXRlQ29sdW1ucyBdKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29scyA9IHRoaXMuX21lcmdlQ29sdW1ucyhpbnB1dENvbHVtbnMsIHRlbXBsYXRlQ29sdW1ucylcblxuICAgICAgICAgIGNvbnN0IGhhc0NvbHVtbnNDaGFuZ2VkID0gdGhpcy5faGFzQ29sdW1uc0NoYW5nZWQoY29scylcblxuICAgICAgICAgIC8vIFRPRE86IExvb2sgZm9yIGNvbHVtbnMgYWRkZWQvcmVtb3ZlZCBhbmQgcmVtb3ZlIHRoZSByZW1vdmVkIGNvbHVtbnNcbiAgICAgICAgICAvLyBkaWZmZXJzLCBub3QganVzdCBjaGFuZ2VzIHRvIGNvbHVtbnMuXG4gICAgICAgICAgY29uc3QgaGFzQWRkZWRPclJlbW92ZWRDb2x1bW5zID0gdGhpcy5faGFzQWRkZWRPclJlbW92ZWRDb2x1bW5zKGNvbHMpXG5cbiAgICAgICAgICAvLyBOT1RFOiBCb3RoIGNoZWNrcyBuZWVkIHRvIGJlIHJ1biwgZXZlbiB0aG91Z2ggb25seSBvbmUgbmVlZHMgdG8gYmVcbiAgICAgICAgICAvLyB0cnVlLCBiZWNhdXNlIHRoZWlyIGRpZmZlcnMgbmVlZCB0byBiZSBjYWxsZWQuXG4gICAgICAgICAgaWYgKGhhc0NvbHVtbnNDaGFuZ2VkIHx8IGhhc0FkZGVkT3JSZW1vdmVkQ29sdW1ucyB8fCBpc0ZpcnN0KSB7XG4gICAgICAgICAgICBpc0ZpcnN0ID0gZmFsc2VcbiAgICAgICAgICAgIHJldHVybiBvZihjb2xzKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBFTVBUWVxuICAgICAgICB9KSxcbiAgICAgIClcbiAgICB9KS5waXBlKFxuICAgICAgc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSwgYnVmZmVyU2l6ZTogMSB9KVxuICAgIClcbiAgfVxuXG4gIHB1YmxpYyBzZXRJbnB1dENvbHVtbnMoY29sdW1uczogVGhlU2VhbURhdGF0YWJsZUNvbHVtbltdKTogdm9pZCB7XG4gICAgdGhpcy5faW5wdXRDb2x1bW5zLm5leHQoY29sdW1ucylcbiAgfVxuXG4gIHB1YmxpYyBzZXRUZW1wbGF0ZUNvbHVtbnMoY29sdW1uczogRGF0YXRhYmxlQ29sdW1uQ29tcG9uZW50W10pOiB2b2lkIHtcbiAgICB0aGlzLl90ZW1wbGF0ZUNvbHVtbnMubmV4dChjb2x1bW5zKVxuICB9XG5cbiAgcHVibGljIHNldEludGVybmFsQ29sdW1uc0dldHRlcihnZXR0ZXI6IEludGVybmFsQ29sdW1uc0dldHRlciB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLl9pbnRlcm5hbENvbHVtbnNHZXR0ZXIgPSBnZXR0ZXIgfHwgdW5kZWZpbmVkXG4gICAgdGhpcy5fdXBkYXRlQ29sdW1ucy5uZXh0KHVuZGVmaW5lZClcbiAgfVxuXG4gIHB1YmxpYyBzZXRTZWxlY3Rpb25UeXBlKHNlbGVjdGlvblR5cGU6IFNlbGVjdGlvblR5cGUgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBjb25zdCBjaGFuZ2VkID0gdGhpcy5fc2VsZWN0aW9uVHlwZSAhPT0gc2VsZWN0aW9uVHlwZVxuICAgIHRoaXMuX3NlbGVjdGlvblR5cGUgPSBzZWxlY3Rpb25UeXBlXG4gICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZUNvbHVtbnMubmV4dCh1bmRlZmluZWQpXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFNlbGVjdGlvblR5cGUoKTogU2VsZWN0aW9uVHlwZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGlvblR5cGVcbiAgfVxuXG4gIHB1YmxpYyBzZXRSb3dBY3Rpb25JdGVtKHJvd0FjdGlvbkl0ZW06IERhdGF0YWJsZVJvd0FjdGlvbkl0ZW1EaXJlY3RpdmUgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBjb25zdCBjaGFuZ2VkID0gdGhpcy5fcm93QWN0aW9uSXRlbSAhPT0gcm93QWN0aW9uSXRlbVxuICAgIHRoaXMuX3Jvd0FjdGlvbkl0ZW0gPSByb3dBY3Rpb25JdGVtXG4gICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZUNvbHVtbnMubmV4dCh1bmRlZmluZWQpXG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldEFjdGlvbk1lbnVDZWxsVHBsKGFjdGlvbk1lbnVDZWxsVHBsOiBUZW1wbGF0ZVJlZjxEYXRhVGFibGVDb2x1bW5EaXJlY3RpdmU+IHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgY29uc3QgY2hhbmdlZCA9IHRoaXMuX2FjdGlvbk1lbnVDZWxsVHBsICE9PSBhY3Rpb25NZW51Q2VsbFRwbFxuICAgIHRoaXMuX2FjdGlvbk1lbnVDZWxsVHBsID0gYWN0aW9uTWVudUNlbGxUcGxcbiAgICBpZiAoY2hhbmdlZCkge1xuICAgICAgdGhpcy5fdXBkYXRlQ29sdW1ucy5uZXh0KHVuZGVmaW5lZClcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0QmxhbmtIZWFkZXJUcGwoYmxhbmtIZWFkZXJUcGw6IFRlbXBsYXRlUmVmPERhdGFUYWJsZUNvbHVtbkhlYWRlckRpcmVjdGl2ZT4gfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBjb25zdCBjaGFuZ2VkID0gdGhpcy5fYmxhbmtIZWFkZXJUcGwgIT09IGJsYW5rSGVhZGVyVHBsXG4gICAgdGhpcy5fYmxhbmtIZWFkZXJUcGwgPSBibGFua0hlYWRlclRwbFxuICAgIGlmIChjaGFuZ2VkKSB7XG4gICAgICB0aGlzLl91cGRhdGVDb2x1bW5zLm5leHQodW5kZWZpbmVkKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRUcmVlVG9nZ2xlVHBsKHRyZWVUb2dnbGVUcGw6IFRlbXBsYXRlUmVmPERhdGFUYWJsZUNvbHVtbkNlbGxUcmVlVG9nZ2xlPiB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGNvbnN0IGNoYW5nZWQgPSB0aGlzLl90cmVlVG9nZ2xlVHBsICE9PSB0cmVlVG9nZ2xlVHBsXG4gICAgdGhpcy5fdHJlZVRvZ2dsZVRwbCA9IHRyZWVUb2dnbGVUcGxcbiAgICBpZiAoY2hhbmdlZCkge1xuICAgICAgdGhpcy5fdXBkYXRlQ29sdW1ucy5uZXh0KHVuZGVmaW5lZClcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0SGVhZGVyVHBsKGhlYWRlclRwbDogVGVtcGxhdGVSZWY8RGF0YVRhYmxlQ29sdW1uSGVhZGVyRGlyZWN0aXZlPiB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGNvbnN0IGNoYW5nZWQgPSB0aGlzLl9oZWFkZXJUcGwgIT09IGhlYWRlclRwbFxuICAgIHRoaXMuX2hlYWRlclRwbCA9IGhlYWRlclRwbFxuICAgIGlmIChjaGFuZ2VkKSB7XG4gICAgICB0aGlzLl91cGRhdGVDb2x1bW5zLm5leHQodW5kZWZpbmVkKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRDZWxsVHlwZVNlbGVjdG9yVHBsKGNlbGxUeXBlU2VsZWN0b3JUcGw6IFRlbXBsYXRlUmVmPERhdGFUYWJsZUNvbHVtbkRpcmVjdGl2ZT4gfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBjb25zdCBjaGFuZ2VkID0gdGhpcy5fY2VsbFR5cGVTZWxlY3RvclRwbCAhPT0gY2VsbFR5cGVTZWxlY3RvclRwbFxuICAgIHRoaXMuX2NlbGxUeXBlU2VsZWN0b3JUcGwgPSBjZWxsVHlwZVNlbGVjdG9yVHBsXG4gICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZUNvbHVtbnMubmV4dCh1bmRlZmluZWQpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfbWVyZ2VDb2x1bW5zKFxuICAgIGlucHV0Q29sdW1uczogVGhlU2VhbURhdGF0YWJsZUNvbHVtbltdLFxuICAgIHRlbXBsYXRlQ29sdW1uczogRGF0YXRhYmxlQ29sdW1uQ29tcG9uZW50W11cbiAgKTogVGhlU2VhbURhdGF0YWJsZUNvbHVtbltdIHtcbiAgICBjb25zdCBjb2xzOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uW10gPSBbXVxuXG4gICAgLy8gQWRkIHRoZSBmaXJzdCBjb2x1bW4gY2hlY2tib3ggaWYgJ2NoZWNrYm94JyBzZWxlY3Rpb24gaXMgZW5hYmxlZC5cbiAgICBpZiAodGhpcy5fc2hvdWxkQWRkQ2hlY2tib3hDb2x1bW4oKSkge1xuICAgICAgY29scy5wdXNoKGNyZWF0ZUNoZWNrYm94Q29sdW1uKCkpXG4gICAgfVxuXG4gICAgLy8gQ29sdW1uIG5lZWRzIHRvIGJlIHByb3ZpZGVkIGluIHRoZSBpbnB1dENvbHVtbnMsIHNvIGl0ZXJhdGUgdGhlXG4gICAgLy8gaW5wdXRDb2x1bW5zLlxuICAgIGZvciAoY29uc3QgaW5wQ29sIG9mIGlucHV0Q29sdW1ucykge1xuICAgICAgY29uc3QgcHJvcCA9IGdldENvbHVtblByb3AoaW5wQ29sKVxuICAgICAgaWYgKCFub3ROdWxsT3JVbmRlZmluZWQocHJvcCkpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYENvbHVtbiBtYXkgaGF2ZSAncHJvcCcgb3IgJ25hbWUnIGRlZmluZWQuYClcbiAgICAgIH1cblxuICAgICAgY29uc3QgaW50ZXJuYWxDb2wgPSB0aGlzLl9nZXRJbnRlcm5hbENvbHVtbihwcm9wKVxuXG4gICAgICBjb25zdCBpbnBDb2xEaWYgPSB0aGlzLl9nZXRDb2xEaWYoaW5wQ29sLCBDb2x1bW5zVHlwZXMuSW5wdXQpXG4gICAgICBpZiAobm90TnVsbE9yVW5kZWZpbmVkKGlucENvbERpZikpIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlQ29sRGlmKGlucENvbERpZiwgaW50ZXJuYWxDb2wsIGlucENvbClcbiAgICAgIH1cblxuICAgICAgY29uc3QgdHBsQ29sID0gdGhpcy5fZmluZENvbHVtbkJ5UHJvcChwcm9wLCB0ZW1wbGF0ZUNvbHVtbnMpXG4gICAgICBpZiAodHBsQ29sICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3QgdHBsQ29sRGlmID0gdGhpcy5fZ2V0Q29sRGlmKHRwbENvbCwgQ29sdW1uc1R5cGVzLlRlbXBsYXRlKVxuICAgICAgICBpZiAobm90TnVsbE9yVW5kZWZpbmVkKHRwbENvbERpZikpIHtcbiAgICAgICAgICB0aGlzLl91cGRhdGVDb2xEaWYodHBsQ29sRGlmLCBpbnRlcm5hbENvbCwgdHBsQ29sKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IF9jb2w6IFRoZVNlYW1EYXRhdGFibGVDb2x1bW4gPSB7XG4gICAgICAgIC4uLihpbnRlcm5hbENvbCB8fCB7fSksXG4gICAgICAgIC4uLmlucENvbCxcbiAgICAgICAgLy8gVE9ETzogUmV0aGluayB0aGlzLCBiZWNhdXNlIEkgZG9uJ3Qga25vdyBpZiB0aGlzIGlzIGNvcnJlY3QuXG4gICAgICAgIC4uLih0cGxDb2wgYXMgYW55IHx8IHt9KVxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5fc2hvdWxkQWRkVHJlZVRvZ2dsZUNvbHVtbihfY29sKSkge1xuICAgICAgICBfY29sLnRyZWVUb2dnbGVUZW1wbGF0ZSA9IHRoaXMuX3RyZWVUb2dnbGVUcGxcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX3Nob3VsZEFkZEhlYWRlclRlbXBsYXRlKF9jb2wpKSB7XG4gICAgICAgIF9jb2wuaGVhZGVyVGVtcGxhdGUgPSB0aGlzLl9oZWFkZXJUcGxcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX3Nob3VsZEFkZENlbGxUeXBlU2VsZWN0b3JUcGwoX2NvbCkpIHtcbiAgICAgICAgX2NvbC5jZWxsVGVtcGxhdGUgPSB0aGlzLl9jZWxsVHlwZVNlbGVjdG9yVHBsXG4gICAgICB9XG5cbiAgICAgIGNvbHMucHVzaChfY29sKVxuICAgIH1cblxuICAgIGlmICh0aGlzLl9zaG91bGRBZGRSb3dBY3Rpb25Db2x1bW4oKSkge1xuICAgICAgY29scy5wdXNoKGNyZWF0ZUFjdGlvbk1lbnVDb2x1bW4odGhpcy5fYWN0aW9uTWVudUNlbGxUcGwsIHRoaXMuX2JsYW5rSGVhZGVyVHBsKSlcbiAgICB9XG5cbiAgICAvLyBNYWtlIHN1cmUgdGhlIGRlZmF1bHQgZm9yIGFueSBtaXNzaW5nIHByb3BzIGFyZSBzZXQuXG4gICAgLy8gVE9ETzogRGV0ZXJtaW5lIGlmIHRoaXMgc2hvdWxkIGJlIGRvbmUgZWFybGllciwgYmVjYXVzZSBJIGRvbid0IGxpa2VcbiAgICAvLyBob3cgdGhpcyBpcyBkb25lIGFmdGVyIGRpZiBjaGVja3MuXG4gICAgc2V0Q29sdW1uRGVmYXVsdHMoY29scylcblxuICAgIHJldHVybiBjb2xzXG4gIH1cblxuICBwcml2YXRlIF9nZXRJbnRlcm5hbENvbHVtbnMoKTogVGFibGVDb2x1bW5bXSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuX2ludGVybmFsQ29sdW1uc0dldHRlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2ludGVybmFsQ29sdW1uc0dldHRlcigpXG4gIH1cblxuICBwcml2YXRlIF9nZXRJbnRlcm5hbENvbHVtbihwcm9wOiBUYWJsZUNvbHVtblByb3ApOiBUYWJsZUNvbHVtbiB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaW50ZXJuYWxDb2xzID0gdGhpcy5fZ2V0SW50ZXJuYWxDb2x1bW5zKClcblxuICAgIGlmIChpbnRlcm5hbENvbHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIHJldHVybiBpbnRlcm5hbENvbHMuZmluZChjID0+IGdldENvbHVtblByb3AoYykgPT09IHByb3ApXG4gIH1cblxuICBwcml2YXRlIF9maW5kQ29sdW1uQnlQcm9wPFQgZXh0ZW5kcyBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uIHwgRGF0YXRhYmxlQ29sdW1uQ29tcG9uZW50PihcbiAgICBwcm9wOiBUYWJsZUNvbHVtblByb3AsXG4gICAgY29sdW1uczogVFtdXG4gICk6IFQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBjb2x1bW5zLmZpbmQoYyA9PiBnZXRDb2x1bW5Qcm9wKGMpID09PSBwcm9wKVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RGlmTWFwRm9yQ29sdW1uc1R5cGUoY29sdW1uc1R5cGU6IENvbHVtbnNUeXBlcyk6IE1hcDxUYWJsZUNvbHVtblByb3AsIEtleVZhbHVlRGlmZmVyPGFueSwgYW55Pj4ge1xuICAgIHN3aXRjaCAoY29sdW1uc1R5cGUpIHtcbiAgICAgIGNhc2UgQ29sdW1uc1R5cGVzLklucHV0OiByZXR1cm4gdGhpcy5faW5wQ29sRGlmZmVyc01hcFxuICAgICAgY2FzZSBDb2x1bW5zVHlwZXMuVGVtcGxhdGU6IHJldHVybiB0aGlzLl90cGxDb2xEaWZmZXJzTWFwXG4gICAgICBjYXNlIENvbHVtbnNUeXBlcy5SZXN1bHQ6IHJldHVybiB0aGlzLl9yZXN1bHRDb2xEaWZmZXJzTWFwXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Q29sdW1uRGlmZmVyKHByb3A6IFRhYmxlQ29sdW1uUHJvcCwgY29sc1R5cGU6IENvbHVtbnNUeXBlcyk6IEtleVZhbHVlRGlmZmVyPHN0cmluZywgYW55PiB7XG4gICAgY29uc3QgZGlmTWFwID0gdGhpcy5fZ2V0RGlmTWFwRm9yQ29sdW1uc1R5cGUoY29sc1R5cGUpXG4gICAgaWYgKGRpZk1hcCA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgY29sdW1ucyB0eXBlLmApXG4gICAgfVxuXG4gICAgaWYgKCFkaWZNYXAuaGFzKHByb3ApKSB7XG4gICAgICBkaWZNYXAuc2V0KHByb3AsIHRoaXMuX2RpZmZlcnMuZmluZCh7fSkuY3JlYXRlKCkpXG4gICAgfVxuXG4gICAgY29uc3QgZGlmZmVyID0gZGlmTWFwLmdldChwcm9wKVxuICAgIGlmIChkaWZmZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgRXJyb3IoYERpZmZlciBub3QgZm91bmQuIE5ldyBkaWZmZXIgc2hvdWxkIGhhdmUgYmVlbiBjcmVhdGVkLmApXG4gICAgfVxuXG4gICAgcmV0dXJuIGRpZmZlclxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Q29sRGlmKFxuICAgIGNvbDogVGhlU2VhbURhdGF0YWJsZUNvbHVtbiB8IERhdGF0YWJsZUNvbHVtbkNvbXBvbmVudCxcbiAgICBjb2xzVHlwZTogQ29sdW1uc1R5cGVzXG4gICk6IEtleVZhbHVlQ2hhbmdlczxzdHJpbmcsIGFueT4gfCBudWxsIHtcbiAgICBjb25zdCBwcm9wID0gZ2V0Q29sdW1uUHJvcChjb2wpXG4gICAgaWYgKHByb3AgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgRXJyb3IoYENvbHVtbiBwcm9wIG5vdCBmb3VuZC5gKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9nZXRDb2x1bW5EaWZmZXIocHJvcCwgY29sc1R5cGUpLmRpZmYoY29sKVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlQ29sRGlmKFxuICAgIGNvbERpZjogS2V5VmFsdWVDaGFuZ2VzPHN0cmluZywgYW55PixcbiAgICBpbnRlcm5hbENvbHVtbjogVGFibGVDb2x1bW4gfCB1bmRlZmluZWQsXG4gICAgY29sOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uIHwgRGF0YXRhYmxlQ29sdW1uQ29tcG9uZW50XG4gICk6IHZvaWQge1xuICAgIGNvbERpZi5mb3JFYWNoUmVtb3ZlZEl0ZW0ociA9PiB7XG4gICAgICBpZiAoaW50ZXJuYWxDb2x1bW4gJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGludGVybmFsQ29sdW1uLCByLmtleSkpIHtcbiAgICAgICAgY29uc3QgayA9IHIua2V5IGFzIGtleW9mIFRhYmxlQ29sdW1uXG4gICAgICAgIGRlbGV0ZSBpbnRlcm5hbENvbHVtbltrXVxuICAgICAgfVxuICAgIH0pXG4gICAgY29sRGlmLmZvckVhY2hBZGRlZEl0ZW0ociA9PiAoY29sIGFzIGFueSlbci5rZXldID0gci5jdXJyZW50VmFsdWUpXG4gICAgY29sRGlmLmZvckVhY2hDaGFuZ2VkSXRlbShyID0+IChjb2wgYXMgYW55KVtyLmtleV0gPSByLmN1cnJlbnRWYWx1ZSlcbiAgfVxuXG4gIHByaXZhdGUgX2hhc0FkZGVkT3JSZW1vdmVkQ29sdW1ucyhjb2x1bW5zOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uW10pOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuX2NvbFByb3BzRGlmZmVyKSB7XG4gICAgICB0aGlzLl9jb2xQcm9wc0RpZmZlciA9IHRoaXMuX2RpZmZlcnMuZmluZChbXSkuY3JlYXRlKClcbiAgICB9XG5cbiAgICBjb25zdCBwcm9wcyA9IGNvbHVtbnMubWFwKGMgPT4gZ2V0Q29sdW1uUHJvcChjKSlcbiAgICByZXR1cm4gdGhpcy5fY29sUHJvcHNEaWZmZXIuZGlmZihwcm9wcykgIT09IG51bGxcbiAgfVxuXG4gIHByaXZhdGUgX2hhc0NvbHVtbnNDaGFuZ2VkKGNvbHVtbnM6IFRoZVNlYW1EYXRhdGFibGVDb2x1bW5bXSk6IGJvb2xlYW4ge1xuICAgIGxldCBjb2xDaGFuZ2VkID0gZmFsc2VcbiAgICBmb3IgKGNvbnN0IGNvbCBvZiBjb2x1bW5zKSB7XG4gICAgICBjb25zdCByZXN1bHREaWYgPSB0aGlzLl9nZXRDb2xEaWYoY29sLCBDb2x1bW5zVHlwZXMuUmVzdWx0KVxuICAgICAgaWYgKHJlc3VsdERpZikge1xuICAgICAgICAvLyBOT1RFOiBDYW4ndCByZXR1cm4gZWFybHksIGJlY2F1c2UgdGhlIGRpZmZlcnMgbmVlZCB0byBiZSB1cGRhdGVkLlxuICAgICAgICBjb2xDaGFuZ2VkID0gdHJ1ZVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29sQ2hhbmdlZFxuICB9XG5cbiAgcHJpdmF0ZSBfc2hvdWxkQWRkQ2hlY2tib3hDb2x1bW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGlvblR5cGUgPT09IFNlbGVjdGlvblR5cGUuY2hlY2tib3hcbiAgfVxuXG4gIHByaXZhdGUgX3Nob3VsZEFkZFJvd0FjdGlvbkNvbHVtbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcm93QWN0aW9uSXRlbSAhPT0gdW5kZWZpbmVkXG4gIH1cblxuICBwcml2YXRlIF9zaG91bGRBZGRUcmVlVG9nZ2xlQ29sdW1uKGNvbHVtbjogVGhlU2VhbURhdGF0YWJsZUNvbHVtbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBjb2x1bW4uaXNUcmVlQ29sdW1uICE9PSB1bmRlZmluZWQgJiYgY29sdW1uLmlzVHJlZUNvbHVtbiAmJlxuICAgICAgKCFoYXNQcm9wZXJ0eShjb2x1bW4sICd0cmVlVG9nZ2xlVGVtcGxhdGUnKSB8fCAhbm90TnVsbE9yVW5kZWZpbmVkKGNvbHVtbi50cmVlVG9nZ2xlVGVtcGxhdGUpKVxuICB9XG5cbiAgcHJpdmF0ZSBfc2hvdWxkQWRkSGVhZGVyVGVtcGxhdGUoY29sdW1uOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFoYXNQcm9wZXJ0eShjb2x1bW4sICdoZWFkZXJUZW1wbGF0ZScpXG4gIH1cblxuICBwcml2YXRlIF9zaG91bGRBZGRDZWxsVHlwZVNlbGVjdG9yVHBsKGNvbHVtbjogVGhlU2VhbURhdGF0YWJsZUNvbHVtbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBoYXNQcm9wZXJ0eShjb2x1bW4sICdjZWxsVHlwZScpXG4gIH1cblxufVxuIl19
286
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL3NlcnZpY2VzL2NvbHVtbnMtbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWlFLE1BQU0sZUFBZSxDQUFBO0FBQ3pHLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUM1RixPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRWxGLE9BQU8sRUFJTCxhQUFhLEdBR2QsTUFBTSx1QkFBdUIsQ0FBQTtBQUU5QixPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFLMUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUE7QUFDM0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBQ2hFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFBOzs7QUFJdkUsSUFBSyxZQUlKO0FBSkQsV0FBSyxZQUFZO0lBQ2YsaURBQUssQ0FBQTtJQUNMLHVEQUFRLENBQUE7SUFDUixtREFBTSxDQUFBO0FBQ1IsQ0FBQyxFQUpJLFlBQVksS0FBWixZQUFZLFFBSWhCO0FBS0QsTUFBTSxPQUFPLHFCQUFxQjtJQXlCaEMsWUFDbUIsUUFBeUIsRUFDekIscUJBQW9EO1FBRHBELGFBQVEs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LENBQUE7SUFDekQsQ0FBQztJQUVPLDBCQUEwQixDQUFDLE1BQThCO1FBQy9ELE9BQU8sTUFBTSxDQUFDLFlBQVksS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLFlBQVk7WUFDN0QsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUE7SUFDbEcsQ0FBQztJQUVPLHdCQUF3QixDQUFDLE1BQThCO1FBQzdELE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLENBQUE7SUFDL0MsQ0FBQztJQUVPLDZCQUE2QixDQUFDLE1BQThCO1FBQ2xFLE9BQU8sV0FBVyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQTtJQUN4QyxDQUFDOzttSEFwV1UscUJBQXFCO3VIQUFyQixxQkFBcUI7NEZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEtleVZhbHVlQ2hhbmdlcywgS2V5VmFsdWVEaWZmZXIsIEtleVZhbHVlRGlmZmVycywgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBkZWZlciwgRU1QVFksIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGF1ZGl0VGltZSwgbWFwLCBzaGFyZVJlcGxheSwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHtcbiAgRGF0YVRhYmxlQ29sdW1uQ2VsbFRyZWVUb2dnbGUsXG4gIERhdGFUYWJsZUNvbHVtbkRpcmVjdGl2ZSxcbiAgRGF0YVRhYmxlQ29sdW1uSGVhZGVyRGlyZWN0aXZlLFxuICBTZWxlY3Rpb25UeXBlLFxuICBUYWJsZUNvbHVtbixcbiAgVGFibGVDb2x1bW5Qcm9wLFxufSBmcm9tICdAbWFya2xiL25neC1kYXRhdGFibGUnXG5cbmltcG9ydCB7IGhhc1Byb3BlcnR5LCBub3ROdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vdXRpbHMnXG5cbmltcG9ydCB7IERhdGF0YWJsZUNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uL2RhdGF0YWJsZS1jb2x1bW4vZGF0YXRhYmxlLWNvbHVtbi5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhdGFibGVSb3dBY3Rpb25JdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9kYXRhdGFibGUtcm93LWFjdGlvbi1pdGVtLmRpcmVjdGl2ZSdcbmltcG9ydCB7IFRoZVNlYW1EYXRhdGFibGVDb2x1bW4gfSBmcm9tICcuLi9tb2RlbHMvdGFibGUtY29sdW1uJ1xuaW1wb3J0IHsgY3JlYXRlQWN0aW9uTWVudUNvbHVtbiB9IGZyb20gJy4uL3V0aWxzL2NyZWF0ZS1hY3Rpb24tbWVudS1jb2x1bW4nXG5pbXBvcnQgeyBjcmVhdGVDaGVja2JveENvbHVtbiB9IGZyb20gJy4uL3V0aWxzL2NyZWF0ZS1jaGVja2JveC1jb2x1bW4nXG5pbXBvcnQgeyBnZXRDb2x1bW5Qcm9wIH0gZnJvbSAnLi4vdXRpbHMvZ2V0LWNvbHVtbi1wcm9wJ1xuaW1wb3J0IHsgc2V0Q29sdW1uRGVmYXVsdHMgfSBmcm9tICcuLi91dGlscy9zZXQtY29sdW1uLWRlZmF1bHRzJ1xuaW1wb3J0IHsgdHJhbnNsYXRlVGVtcGxhdGVDb2x1bW5zIH0gZnJvbSAnLi4vdXRpbHMvdHJhbnNsYXRlLXRlbXBsYXRlcydcbmltcG9ydCB7IERhdGF0YWJsZUNvbHVtbkNoYW5nZXNTZXJ2aWNlIH0gZnJvbSAnLi9kYXRhdGFibGUtY29sdW1uLWNoYW5nZXMuc2VydmljZSdcbmltcG9ydCB7IEFjdGlvbkl0ZW1Db2x1bW5Qb3NpdGlvbiB9IGZyb20gJy4uL21vZGVscy9hY3Rpb24taXRlbS1jb2x1bW4tcG9zaXRpb24nXG5cbmVudW0gQ29sdW1uc1R5cGVzIHtcbiAgSW5wdXQsXG4gIFRlbXBsYXRlLFxuICBSZXN1bHQsXG59XG5cbmV4cG9ydCB0eXBlIEludGVybmFsQ29sdW1uc0dldHRlciA9ICgpID0+IFRhYmxlQ29sdW1uW11cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvbHVtbnNNYW5hZ2VyU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3VwZGF0ZUNvbHVtbnMgPSBuZXcgU3ViamVjdDx2b2lkPigpXG5cbiAgcHJpdmF0ZSByZWFkb25seSBfaW5wdXRDb2x1bW5zID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUaGVTZWFtRGF0YXRhYmxlQ29sdW1uW10+KFtdKVxuICBwcml2YXRlIHJlYWRvbmx5IF90ZW1wbGF0ZUNvbHVtbnMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGF0YWJsZUNvbHVtbkNvbXBvbmVudFtdPihbXSlcblxuICBwcml2YXRlIHJlYWRvbmx5IF9pbnBDb2xEaWZmZXJzTWFwID0gbmV3IE1hcDxUYWJsZUNvbHVtblByb3AsIEtleVZhbHVlRGlmZmVyPGFueSwgYW55Pj4oKVxuICBwcml2YXRlIHJlYWRvbmx5IF90cGxDb2xEaWZmZXJzTWFwID0gbmV3IE1hcDxUYWJsZUNvbHVtblByb3AsIEtleVZhbHVlRGlmZmVyPGFueSwgYW55Pj4oKVxuICBwcml2YXRlIHJlYWRvbmx5IF9yZXN1bHRDb2xEaWZmZXJzTWFwID0gbmV3IE1hcDxUYWJsZUNvbHVtblByb3AsIEtleVZhbHVlRGlmZmVyPGFueSwgYW55Pj4oKVxuICBwcml2YXRlIF9jb2xQcm9wc0RpZmZlcj86IEtleVZhbHVlRGlmZmVyPGFueSwgYW55PlxuXG4gIHByaXZhdGUgX2ludGVybmFsQ29sdW1uc0dldHRlcj86IEludGVybmFsQ29sdW1uc0dldHRlclxuXG4gIHByaXZhdGUgX3NlbGVjdGlvblR5cGU6IFNlbGVjdGlvblR5cGUgfCB1bmRlZmluZWRcbiAgcHJpdmF0ZSBfcm93QWN0aW9uSXRlbTogRGF0YXRhYmxlUm93QWN0aW9uSXRlbURpcmVjdGl2ZSB8IHVuZGVmaW5lZFxuICBwcml2YXRlIF9hY3Rpb25NZW51Q2VsbFRwbDogVGVtcGxhdGVSZWY8RGF0YVRhYmxlQ29sdW1uRGlyZWN0aXZlPiB8IHVuZGVmaW5lZFxuICBwcml2YXRlIF9hY3Rpb25JdGVtQ29sdW1uUG9zaXRpb246IEFjdGlvbkl0ZW1Db2x1bW5Qb3NpdGlvbiB8IHVuZGVmaW5lZFxuICBwcml2YXRlIF9ibGFua0hlYWRlclRwbDogVGVtcGxhdGVSZWY8RGF0YVRhYmxlQ29sdW1uSGVhZGVyRGlyZWN0aXZlPiB8IHVuZGVmaW5lZFxuICBwcml2YXRlIF90cmVlVG9nZ2xlVHBsOiBUZW1wbGF0ZVJlZjxEYXRhVGFibGVDb2x1bW5DZWxsVHJlZVRvZ2dsZT4gfCB1bmRlZmluZWRcbiAgcHJpdmF0ZSBfaGVhZGVyVHBsOiBUZW1wbGF0ZVJlZjxEYXRhVGFibGVDb2x1bW5IZWFkZXJEaXJlY3RpdmU+IHwgdW5kZWZpbmVkXG4gIHByaXZhdGUgX2NlbGxUeXBlU2VsZWN0b3JUcGw6IFRlbXBsYXRlUmVmPERhdGFUYWJsZUNvbHVtbkRpcmVjdGl2ZT4gfCB1bmRlZmluZWRcblxuICAvLyBUT0RPOiBDb25zaWRlciBtYWtpbmcgdGhpcyBhIGNvbHVtbnMgY2hhbmdlZCBvYmVydmFibGUsIHRvIG1ha2UgY2hhbmdlcyBtb3JlIHByZWRpY3RhYmxlLlxuICBwdWJsaWMgcmVhZG9ubHkgY29sdW1ucyQ6IE9ic2VydmFibGU8VGhlU2VhbURhdGF0YWJsZUNvbHVtbltdPlxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2RpZmZlcnM6IEtleVZhbHVlRGlmZmVycyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jb2x1bW5DaGFuZ2VzU2VydmljZTogRGF0YXRhYmxlQ29sdW1uQ2hhbmdlc1NlcnZpY2UsXG4gICkge1xuICAgIGNvbnN0IHRlbXBsYXRlQ29sdW1ucyQgPSB0aGlzLl9jb2x1bW5DaGFuZ2VzU2VydmljZS5jb2x1bW5JbnB1dENoYW5nZXMkLnBpcGUoXG4gICAgICBzdGFydFdpdGgodW5kZWZpbmVkKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl90ZW1wbGF0ZUNvbHVtbnMuYXNPYnNlcnZhYmxlKCkucGlwZShtYXAodHJhbnNsYXRlVGVtcGxhdGVDb2x1bW5zKSlcbiAgICAgIH0pXG4gICAgKVxuXG4gICAgdGhpcy5jb2x1bW5zJCA9IGRlZmVyKCgpID0+IHtcbiAgICAgIGxldCBpc0ZpcnN0ID0gdHJ1ZVxuICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLl9pbnB1dENvbHVtbnMuYXNPYnNlcnZhYmxlKCksXG4gICAgICAgIHRlbXBsYXRlQ29sdW1ucyQsXG4gICAgICAgIHRoaXMuX3VwZGF0ZUNvbHVtbnMuYXNPYnNlcnZhYmxlKCkucGlwZShhdWRpdFRpbWUoMCksIHN0YXJ0V2l0aCh1bmRlZmluZWQpKVxuICAgICAgXSkucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKChbIGlucHV0Q29sdW1ucywgdGVtcGxhdGVDb2x1bW5zIF0pID0+IHtcbiAgICAgICAgICBjb25zdCBjb2xzID0gdGhpcy5fbWVyZ2VDb2x1bW5zKGlucHV0Q29sdW1ucywgdGVtcGxhdGVDb2x1bW5zKVxuXG4gICAgICAgICAgY29uc3QgaGFzQ29sdW1uc0NoYW5nZWQgPSB0aGlzLl9oYXNDb2x1bW5zQ2hhbmdlZChjb2xzKVxuXG4gICAgICAgICAgLy8gVE9ETzogTG9vayBmb3IgY29sdW1ucyBhZGRlZC9yZW1vdmVkIGFuZCByZW1vdmUgdGhlIHJlbW92ZWQgY29sdW1uc1xuICAgICAgICAgIC8vIGRpZmZlcnMsIG5vdCBqdXN0IGNoYW5nZXMgdG8gY29sdW1ucy5cbiAgICAgICAgICBjb25zdCBoYXNBZGRlZE9yUmVtb3ZlZENvbHVtbnMgPSB0aGlzLl9oYXNBZGRlZE9yUmVtb3ZlZENvbHVtbnMoY29scylcblxuICAgICAgICAgIC8vIE5PVEU6IEJvdGggY2hlY2tzIG5lZWQgdG8gYmUgcnVuLCBldmVuIHRob3VnaCBvbmx5IG9uZSBuZWVkcyB0byBiZVxuICAgICAgICAgIC8vIHRydWUsIGJlY2F1c2UgdGhlaXIgZGlmZmVycyBuZWVkIHRvIGJlIGNhbGxlZC5cbiAgICAgICAgICBpZiAoaGFzQ29sdW1uc0NoYW5nZWQgfHwgaGFzQWRkZWRPclJlbW92ZWRDb2x1bW5zIHx8IGlzRmlyc3QpIHtcbiAgICAgICAgICAgIGlzRmlyc3QgPSBmYWxzZVxuICAgICAgICAgICAgcmV0dXJuIG9mKGNvbHMpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIEVNUFRZXG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgIH0pLnBpcGUoXG4gICAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxIH0pXG4gICAgKVxuICB9XG5cbiAgcHVibGljIHNldElucHV0Q29sdW1ucyhjb2x1bW5zOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uW10pOiB2b2lkIHtcbiAgICB0aGlzLl9pbnB1dENvbHVtbnMubmV4dChjb2x1bW5zKVxuICB9XG5cbiAgcHVibGljIHNldFRlbXBsYXRlQ29sdW1ucyhjb2x1bW5zOiBEYXRhdGFibGVDb2x1bW5Db21wb25lbnRbXSk6IHZvaWQge1xuICAgIHRoaXMuX3RlbXBsYXRlQ29sdW1ucy5uZXh0KGNvbHVtbnMpXG4gIH1cblxuICBwdWJsaWMgc2V0SW50ZXJuYWxDb2x1bW5zR2V0dGVyKGdldHRlcjogSW50ZXJuYWxDb2x1bW5zR2V0dGVyIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMuX2ludGVybmFsQ29sdW1uc0dldHRlciA9IGdldHRlciB8fCB1bmRlZmluZWRcbiAgICB0aGlzLl91cGRhdGVDb2x1bW5zLm5leHQodW5kZWZpbmVkKVxuICB9XG5cbiAgcHVibGljIHNldFNlbGVjdGlvblR5cGUoc2VsZWN0aW9uVHlwZTogU2VsZWN0aW9uVHlwZSB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGNvbnN0IGNoYW5nZWQgPSB0aGlzLl9zZWxlY3Rpb25UeXBlICE9PSBzZWxlY3Rpb25UeXBlXG4gICAgdGhpcy5fc2VsZWN0aW9uVHlwZSA9IHNlbGVjdGlvblR5cGVcbiAgICBpZiAoY2hhbmdlZCkge1xuICAgICAgdGhpcy5fdXBkYXRlQ29sdW1ucy5uZXh0KHVuZGVmaW5lZClcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0U2VsZWN0aW9uVHlwZSgpOiBTZWxlY3Rpb25UeXBlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0aW9uVHlwZVxuICB9XG5cbiAgcHVibGljIHNldFJvd0FjdGlvbkl0ZW0ocm93QWN0aW9uSXRlbTogRGF0YXRhYmxlUm93QWN0aW9uSXRlbURpcmVjdGl2ZSB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGNvbnN0IGNoYW5nZWQgPSB0aGlzLl9yb3dBY3Rpb25JdGVtICE9PSByb3dBY3Rpb25JdGVtXG4gICAgdGhpcy5fcm93QWN0aW9uSXRlbSA9IHJvd0FjdGlvbkl0ZW1cbiAgICBpZiAoY2hhbmdlZCkge1xuICAgICAgdGhpcy5fdXBkYXRlQ29sdW1ucy5uZXh0KHVuZGVmaW5lZClcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0QWN0aW9uSXRlbUNvbHVtblBvc2l0aW9uKGFjdGlvbkl0ZW1Db2x1bW5Qb3NpdGlvbjogQWN0aW9uSXRlbUNvbHVtblBvc2l0aW9uIHwgdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgY2hhbmdlZCA9IHRoaXMuX2FjdGlvbkl0ZW1Db2x1bW5Qb3NpdGlvbiAhPT0gYWN0aW9uSXRlbUNvbHVtblBvc2l0aW9uXG4gICAgdGhpcy5fYWN0aW9uSXRlbUNvbHVtblBvc2l0aW9uID0gYWN0aW9uSXRlbUNvbHVtblBvc2l0aW9uXG4gICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZUNvbHVtbnMubmV4dCh1bmRlZmluZWQpXG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldEFjdGlvbk1lbnVDZWxsVHBsKGFjdGlvbk1lbnVDZWxsVHBsOiBUZW1wbGF0ZVJlZjxEYXRhVGFibGVDb2x1bW5EaXJlY3RpdmU+IHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgY29uc3QgY2hhbmdlZCA9IHRoaXMuX2FjdGlvbk1lbnVDZWxsVHBsICE9PSBhY3Rpb25NZW51Q2VsbFRwbFxuICAgIHRoaXMuX2FjdGlvbk1lbnVDZWxsVHBsID0gYWN0aW9uTWVudUNlbGxUcGxcbiAgICBpZiAoY2hhbmdlZCkge1xuICAgICAgdGhpcy5fdXBkYXRlQ29sdW1ucy5uZXh0KHVuZGVmaW5lZClcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0QmxhbmtIZWFkZXJUcGwoYmxhbmtIZWFkZXJUcGw6IFRlbXBsYXRlUmVmPERhdGFUYWJsZUNvbHVtbkhlYWRlckRpcmVjdGl2ZT4gfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBjb25zdCBjaGFuZ2VkID0gdGhpcy5fYmxhbmtIZWFkZXJUcGwgIT09IGJsYW5rSGVhZGVyVHBsXG4gICAgdGhpcy5fYmxhbmtIZWFkZXJUcGwgPSBibGFua0hlYWRlclRwbFxuICAgIGlmIChjaGFuZ2VkKSB7XG4gICAgICB0aGlzLl91cGRhdGVDb2x1bW5zLm5leHQodW5kZWZpbmVkKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRUcmVlVG9nZ2xlVHBsKHRyZWVUb2dnbGVUcGw6IFRlbXBsYXRlUmVmPERhdGFUYWJsZUNvbHVtbkNlbGxUcmVlVG9nZ2xlPiB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGNvbnN0IGNoYW5nZWQgPSB0aGlzLl90cmVlVG9nZ2xlVHBsICE9PSB0cmVlVG9nZ2xlVHBsXG4gICAgdGhpcy5fdHJlZVRvZ2dsZVRwbCA9IHRyZWVUb2dnbGVUcGxcbiAgICBpZiAoY2hhbmdlZCkge1xuICAgICAgdGhpcy5fdXBkYXRlQ29sdW1ucy5uZXh0KHVuZGVmaW5lZClcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0SGVhZGVyVHBsKGhlYWRlclRwbDogVGVtcGxhdGVSZWY8RGF0YVRhYmxlQ29sdW1uSGVhZGVyRGlyZWN0aXZlPiB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGNvbnN0IGNoYW5nZWQgPSB0aGlzLl9oZWFkZXJUcGwgIT09IGhlYWRlclRwbFxuICAgIHRoaXMuX2hlYWRlclRwbCA9IGhlYWRlclRwbFxuICAgIGlmIChjaGFuZ2VkKSB7XG4gICAgICB0aGlzLl91cGRhdGVDb2x1bW5zLm5leHQodW5kZWZpbmVkKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRDZWxsVHlwZVNlbGVjdG9yVHBsKGNlbGxUeXBlU2VsZWN0b3JUcGw6IFRlbXBsYXRlUmVmPERhdGFUYWJsZUNvbHVtbkRpcmVjdGl2ZT4gfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBjb25zdCBjaGFuZ2VkID0gdGhpcy5fY2VsbFR5cGVTZWxlY3RvclRwbCAhPT0gY2VsbFR5cGVTZWxlY3RvclRwbFxuICAgIHRoaXMuX2NlbGxUeXBlU2VsZWN0b3JUcGwgPSBjZWxsVHlwZVNlbGVjdG9yVHBsXG4gICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZUNvbHVtbnMubmV4dCh1bmRlZmluZWQpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfbWVyZ2VDb2x1bW5zKFxuICAgIGlucHV0Q29sdW1uczogVGhlU2VhbURhdGF0YWJsZUNvbHVtbltdLFxuICAgIHRlbXBsYXRlQ29sdW1uczogRGF0YXRhYmxlQ29sdW1uQ29tcG9uZW50W11cbiAgKTogVGhlU2VhbURhdGF0YWJsZUNvbHVtbltdIHtcbiAgICBjb25zdCBjb2xzOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uW10gPSBbXVxuXG4gICAgLy8gQWRkIHRoZSBmaXJzdCBjb2x1bW4gY2hlY2tib3ggaWYgJ2NoZWNrYm94JyBzZWxlY3Rpb24gaXMgZW5hYmxlZC5cbiAgICBpZiAodGhpcy5fc2hvdWxkQWRkQ2hlY2tib3hDb2x1bW4oKSkge1xuICAgICAgY29scy5wdXNoKGNyZWF0ZUNoZWNrYm94Q29sdW1uKCkpXG4gICAgfVxuXG4gICAgLy8gQ29sdW1uIG5lZWRzIHRvIGJlIHByb3ZpZGVkIGluIHRoZSBpbnB1dENvbHVtbnMsIHNvIGl0ZXJhdGUgdGhlXG4gICAgLy8gaW5wdXRDb2x1bW5zLlxuICAgIGZvciAoY29uc3QgaW5wQ29sIG9mIGlucHV0Q29sdW1ucykge1xuICAgICAgY29uc3QgcHJvcCA9IGdldENvbHVtblByb3AoaW5wQ29sKVxuICAgICAgaWYgKCFub3ROdWxsT3JVbmRlZmluZWQocHJvcCkpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYENvbHVtbiBtYXkgaGF2ZSAncHJvcCcgb3IgJ25hbWUnIGRlZmluZWQuYClcbiAgICAgIH1cblxuICAgICAgY29uc3QgaW50ZXJuYWxDb2wgPSB0aGlzLl9nZXRJbnRlcm5hbENvbHVtbihwcm9wKVxuXG4gICAgICBjb25zdCBpbnBDb2xEaWYgPSB0aGlzLl9nZXRDb2xEaWYoaW5wQ29sLCBDb2x1bW5zVHlwZXMuSW5wdXQpXG4gICAgICBpZiAobm90TnVsbE9yVW5kZWZpbmVkKGlucENvbERpZikpIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlQ29sRGlmKGlucENvbERpZiwgaW50ZXJuYWxDb2wsIGlucENvbClcbiAgICAgIH1cblxuICAgICAgY29uc3QgdHBsQ29sID0gdGhpcy5fZmluZENvbHVtbkJ5UHJvcChwcm9wLCB0ZW1wbGF0ZUNvbHVtbnMpXG4gICAgICBpZiAodHBsQ29sICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3QgdHBsQ29sRGlmID0gdGhpcy5fZ2V0Q29sRGlmKHRwbENvbCwgQ29sdW1uc1R5cGVzLlRlbXBsYXRlKVxuICAgICAgICBpZiAobm90TnVsbE9yVW5kZWZpbmVkKHRwbENvbERpZikpIHtcbiAgICAgICAgICB0aGlzLl91cGRhdGVDb2xEaWYodHBsQ29sRGlmLCBpbnRlcm5hbENvbCwgdHBsQ29sKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IF9jb2w6IFRoZVNlYW1EYXRhdGFibGVDb2x1bW4gPSB7XG4gICAgICAgIC4uLihpbnRlcm5hbENvbCB8fCB7fSksXG4gICAgICAgIC4uLmlucENvbCxcbiAgICAgICAgLy8gVE9ETzogUmV0aGluayB0aGlzLCBiZWNhdXNlIEkgZG9uJ3Qga25vdyBpZiB0aGlzIGlzIGNvcnJlY3QuXG4gICAgICAgIC4uLih0cGxDb2wgYXMgYW55IHx8IHt9KVxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5fc2hvdWxkQWRkVHJlZVRvZ2dsZUNvbHVtbihfY29sKSkge1xuICAgICAgICBfY29sLnRyZWVUb2dnbGVUZW1wbGF0ZSA9IHRoaXMuX3RyZWVUb2dnbGVUcGxcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX3Nob3VsZEFkZEhlYWRlclRlbXBsYXRlKF9jb2wpKSB7XG4gICAgICAgIF9jb2wuaGVhZGVyVGVtcGxhdGUgPSB0aGlzLl9oZWFkZXJUcGxcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX3Nob3VsZEFkZENlbGxUeXBlU2VsZWN0b3JUcGwoX2NvbCkpIHtcbiAgICAgICAgX2NvbC5jZWxsVGVtcGxhdGUgPSB0aGlzLl9jZWxsVHlwZVNlbGVjdG9yVHBsXG4gICAgICB9XG5cbiAgICAgIGNvbHMucHVzaChfY29sKVxuICAgIH1cblxuICAgIGlmICh0aGlzLl9zaG91bGRBZGRSb3dBY3Rpb25Db2x1bW4oKSkge1xuICAgICAgY29uc3QgYWN0aW9uTWVudUNvbHVtbiA9IGNyZWF0ZUFjdGlvbk1lbnVDb2x1bW4odGhpcy5fYWN0aW9uTWVudUNlbGxUcGwsIHRoaXMuX2JsYW5rSGVhZGVyVHBsLCB0aGlzLl9yb3dBY3Rpb25Db2x1bW5Jc0Zyb3plbkxlZnQoKSwgdGhpcy5fcm93QWN0aW9uQ29sdW1uSXNGcm96ZW5SaWdodCgpKVxuXG4gICAgICBpZiAodGhpcy5fcm93QWN0aW9uQ29sdW1uSXNTdGF0aWNMZWZ0KCkpIHtcbiAgICAgICAgY29scy51bnNoaWZ0KGFjdGlvbk1lbnVDb2x1bW4pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb2xzLnB1c2goYWN0aW9uTWVudUNvbHVtbilcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNYWtlIHN1cmUgdGhlIGRlZmF1bHQgZm9yIGFueSBtaXNzaW5nIHByb3BzIGFyZSBzZXQuXG4gICAgLy8gVE9ETzogRGV0ZXJtaW5lIGlmIHRoaXMgc2hvdWxkIGJlIGRvbmUgZWFybGllciwgYmVjYXVzZSBJIGRvbid0IGxpa2VcbiAgICAvLyBob3cgdGhpcyBpcyBkb25lIGFmdGVyIGRpZiBjaGVja3MuXG4gICAgc2V0Q29sdW1uRGVmYXVsdHMoY29scylcblxuICAgIHJldHVybiBjb2xzXG4gIH1cblxuICBwcml2YXRlIF9nZXRJbnRlcm5hbENvbHVtbnMoKTogVGFibGVDb2x1bW5bXSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuX2ludGVybmFsQ29sdW1uc0dldHRlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2ludGVybmFsQ29sdW1uc0dldHRlcigpXG4gIH1cblxuICBwcml2YXRlIF9nZXRJbnRlcm5hbENvbHVtbihwcm9wOiBUYWJsZUNvbHVtblByb3ApOiBUYWJsZUNvbHVtbiB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaW50ZXJuYWxDb2xzID0gdGhpcy5fZ2V0SW50ZXJuYWxDb2x1bW5zKClcblxuICAgIGlmIChpbnRlcm5hbENvbHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIHJldHVybiBpbnRlcm5hbENvbHMuZmluZChjID0+IGdldENvbHVtblByb3AoYykgPT09IHByb3ApXG4gIH1cblxuICBwcml2YXRlIF9maW5kQ29sdW1uQnlQcm9wPFQgZXh0ZW5kcyBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uIHwgRGF0YXRhYmxlQ29sdW1uQ29tcG9uZW50PihcbiAgICBwcm9wOiBUYWJsZUNvbHVtblByb3AsXG4gICAgY29sdW1uczogVFtdXG4gICk6IFQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBjb2x1bW5zLmZpbmQoYyA9PiBnZXRDb2x1bW5Qcm9wKGMpID09PSBwcm9wKVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RGlmTWFwRm9yQ29sdW1uc1R5cGUoY29sdW1uc1R5cGU6IENvbHVtbnNUeXBlcyk6IE1hcDxUYWJsZUNvbHVtblByb3AsIEtleVZhbHVlRGlmZmVyPGFueSwgYW55Pj4ge1xuICAgIHN3aXRjaCAoY29sdW1uc1R5cGUpIHtcbiAgICAgIGNhc2UgQ29sdW1uc1R5cGVzLklucHV0OiByZXR1cm4gdGhpcy5faW5wQ29sRGlmZmVyc01hcFxuICAgICAgY2FzZSBDb2x1bW5zVHlwZXMuVGVtcGxhdGU6IHJldHVybiB0aGlzLl90cGxDb2xEaWZmZXJzTWFwXG4gICAgICBjYXNlIENvbHVtbnNUeXBlcy5SZXN1bHQ6IHJldHVybiB0aGlzLl9yZXN1bHRDb2xEaWZmZXJzTWFwXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Q29sdW1uRGlmZmVyKHByb3A6IFRhYmxlQ29sdW1uUHJvcCwgY29sc1R5cGU6IENvbHVtbnNUeXBlcyk6IEtleVZhbHVlRGlmZmVyPHN0cmluZywgYW55PiB7XG4gICAgY29uc3QgZGlmTWFwID0gdGhpcy5fZ2V0RGlmTWFwRm9yQ29sdW1uc1R5cGUoY29sc1R5cGUpXG4gICAgaWYgKGRpZk1hcCA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgY29sdW1ucyB0eXBlLmApXG4gICAgfVxuXG4gICAgaWYgKCFkaWZNYXAuaGFzKHByb3ApKSB7XG4gICAgICBkaWZNYXAuc2V0KHByb3AsIHRoaXMuX2RpZmZlcnMuZmluZCh7fSkuY3JlYXRlKCkpXG4gICAgfVxuXG4gICAgY29uc3QgZGlmZmVyID0gZGlmTWFwLmdldChwcm9wKVxuICAgIGlmIChkaWZmZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgRXJyb3IoYERpZmZlciBub3QgZm91bmQuIE5ldyBkaWZmZXIgc2hvdWxkIGhhdmUgYmVlbiBjcmVhdGVkLmApXG4gICAgfVxuXG4gICAgcmV0dXJuIGRpZmZlclxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Q29sRGlmKFxuICAgIGNvbDogVGhlU2VhbURhdGF0YWJsZUNvbHVtbiB8IERhdGF0YWJsZUNvbHVtbkNvbXBvbmVudCxcbiAgICBjb2xzVHlwZTogQ29sdW1uc1R5cGVzXG4gICk6IEtleVZhbHVlQ2hhbmdlczxzdHJpbmcsIGFueT4gfCBudWxsIHtcbiAgICBjb25zdCBwcm9wID0gZ2V0Q29sdW1uUHJvcChjb2wpXG4gICAgaWYgKHByb3AgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgRXJyb3IoYENvbHVtbiBwcm9wIG5vdCBmb3VuZC5gKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9nZXRDb2x1bW5EaWZmZXIocHJvcCwgY29sc1R5cGUpLmRpZmYoY29sKVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlQ29sRGlmKFxuICAgIGNvbERpZjogS2V5VmFsdWVDaGFuZ2VzPHN0cmluZywgYW55PixcbiAgICBpbnRlcm5hbENvbHVtbjogVGFibGVDb2x1bW4gfCB1bmRlZmluZWQsXG4gICAgY29sOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uIHwgRGF0YXRhYmxlQ29sdW1uQ29tcG9uZW50XG4gICk6IHZvaWQge1xuICAgIGNvbERpZi5mb3JFYWNoUmVtb3ZlZEl0ZW0ociA9PiB7XG4gICAgICBpZiAoaW50ZXJuYWxDb2x1bW4gJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGludGVybmFsQ29sdW1uLCByLmtleSkpIHtcbiAgICAgICAgY29uc3QgayA9IHIua2V5IGFzIGtleW9mIFRhYmxlQ29sdW1uXG4gICAgICAgIGRlbGV0ZSBpbnRlcm5hbENvbHVtbltrXVxuICAgICAgfVxuICAgIH0pXG4gICAgY29sRGlmLmZvckVhY2hBZGRlZEl0ZW0ociA9PiAoY29sIGFzIGFueSlbci5rZXldID0gci5jdXJyZW50VmFsdWUpXG4gICAgY29sRGlmLmZvckVhY2hDaGFuZ2VkSXRlbShyID0+IChjb2wgYXMgYW55KVtyLmtleV0gPSByLmN1cnJlbnRWYWx1ZSlcbiAgfVxuXG4gIHByaXZhdGUgX2hhc0FkZGVkT3JSZW1vdmVkQ29sdW1ucyhjb2x1bW5zOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uW10pOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuX2NvbFByb3BzRGlmZmVyKSB7XG4gICAgICB0aGlzLl9jb2xQcm9wc0RpZmZlciA9IHRoaXMuX2RpZmZlcnMuZmluZChbXSkuY3JlYXRlKClcbiAgICB9XG5cbiAgICBjb25zdCBwcm9wcyA9IGNvbHVtbnMubWFwKGMgPT4gZ2V0Q29sdW1uUHJvcChjKSlcbiAgICByZXR1cm4gdGhpcy5fY29sUHJvcHNEaWZmZXIuZGlmZihwcm9wcykgIT09IG51bGxcbiAgfVxuXG4gIHByaXZhdGUgX2hhc0NvbHVtbnNDaGFuZ2VkKGNvbHVtbnM6IFRoZVNlYW1EYXRhdGFibGVDb2x1bW5bXSk6IGJvb2xlYW4ge1xuICAgIGxldCBjb2xDaGFuZ2VkID0gZmFsc2VcbiAgICBmb3IgKGNvbnN0IGNvbCBvZiBjb2x1bW5zKSB7XG4gICAgICBjb25zdCByZXN1bHREaWYgPSB0aGlzLl9nZXRDb2xEaWYoY29sLCBDb2x1bW5zVHlwZXMuUmVzdWx0KVxuICAgICAgaWYgKHJlc3VsdERpZikge1xuICAgICAgICAvLyBOT1RFOiBDYW4ndCByZXR1cm4gZWFybHksIGJlY2F1c2UgdGhlIGRpZmZlcnMgbmVlZCB0byBiZSB1cGRhdGVkLlxuICAgICAgICBjb2xDaGFuZ2VkID0gdHJ1ZVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29sQ2hhbmdlZFxuICB9XG5cbiAgcHJpdmF0ZSBfc2hvdWxkQWRkQ2hlY2tib3hDb2x1bW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGlvblR5cGUgPT09IFNlbGVjdGlvblR5cGUuY2hlY2tib3hcbiAgfVxuXG4gIHByaXZhdGUgX3Nob3VsZEFkZFJvd0FjdGlvbkNvbHVtbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcm93QWN0aW9uSXRlbSAhPT0gdW5kZWZpbmVkXG4gIH1cblxuICBwcml2YXRlIF9yb3dBY3Rpb25Db2x1bW5Jc0Zyb3plbkxlZnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbkl0ZW1Db2x1bW5Qb3NpdGlvbiA9PT0gJ2Zyb3plbkxlZnQnXG4gIH1cblxuICBwcml2YXRlIF9yb3dBY3Rpb25Db2x1bW5Jc0Zyb3plblJpZ2h0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9hY3Rpb25JdGVtQ29sdW1uUG9zaXRpb24gPT09ICdmcm96ZW5SaWdodCdcbiAgfVxuXG4gIHByaXZhdGUgX3Jvd0FjdGlvbkNvbHVtbklzU3RhdGljTGVmdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9uSXRlbUNvbHVtblBvc2l0aW9uID09PSAnc3RhdGljTGVmdCdcbiAgfVxuXG4gIHByaXZhdGUgX3Jvd0FjdGlvbkNvbHVtbklzU3RhdGljUmlnaHQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbkl0ZW1Db2x1bW5Qb3NpdGlvbiA9PT0gJ3N0YXRpY1JpZ2h0J1xuICB9XG5cbiAgcHJpdmF0ZSBfc2hvdWxkQWRkVHJlZVRvZ2dsZUNvbHVtbihjb2x1bW46IFRoZVNlYW1EYXRhdGFibGVDb2x1bW4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gY29sdW1uLmlzVHJlZUNvbHVtbiAhPT0gdW5kZWZpbmVkICYmIGNvbHVtbi5pc1RyZWVDb2x1bW4gJiZcbiAgICAgICghaGFzUHJvcGVydHkoY29sdW1uLCAndHJlZVRvZ2dsZVRlbXBsYXRlJykgfHwgIW5vdE51bGxPclVuZGVmaW5lZChjb2x1bW4udHJlZVRvZ2dsZVRlbXBsYXRlKSlcbiAgfVxuXG4gIHByaXZhdGUgX3Nob3VsZEFkZEhlYWRlclRlbXBsYXRlKGNvbHVtbjogVGhlU2VhbURhdGF0YWJsZUNvbHVtbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhaGFzUHJvcGVydHkoY29sdW1uLCAnaGVhZGVyVGVtcGxhdGUnKVxuICB9XG5cbiAgcHJpdmF0ZSBfc2hvdWxkQWRkQ2VsbFR5cGVTZWxlY3RvclRwbChjb2x1bW46IFRoZVNlYW1EYXRhdGFibGVDb2x1bW4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gaGFzUHJvcGVydHkoY29sdW1uLCAnY2VsbFR5cGUnKVxuICB9XG5cbn1cbiJdfQ==
@@ -12,9 +12,9 @@ export class DatatableColumnChangesService {
12
12
  this.columnInputChanges.next(undefined);
13
13
  }
14
14
  }
15
- DatatableColumnChangesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnChangesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
16
- DatatableColumnChangesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnChangesService });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnChangesService, decorators: [{
15
+ DatatableColumnChangesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableColumnChangesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
16
+ DatatableColumnChangesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableColumnChangesService });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableColumnChangesService, decorators: [{
18
18
  type: Injectable
19
19
  }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWNvbHVtbi1jaGFuZ2VzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL3NlcnZpY2VzL2RhdGF0YWJsZS1jb2x1bW4tY2hhbmdlcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTs7QUFHMUMsTUFBTSxPQUFPLDZCQUE2QjtJQUQxQztRQUdVLHVCQUFrQixHQUFHLElBQUksT0FBTyxFQUFhLENBQUE7S0FVdEQ7SUFSQyxJQUFJLG1CQUFtQjtRQUNyQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtJQUMvQyxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDekMsQ0FBQzs7MEhBVlUsNkJBQTZCOzhIQUE3Qiw2QkFBNkI7MkZBQTdCLDZCQUE2QjtrQkFEekMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEYXRhdGFibGVDb2x1bW5DaGFuZ2VzU2VydmljZSB7XG5cbiAgcHJpdmF0ZSBjb2x1bW5JbnB1dENoYW5nZXMgPSBuZXcgU3ViamVjdDx1bmRlZmluZWQ+KClcblxuICBnZXQgY29sdW1uSW5wdXRDaGFuZ2VzJCgpOiBPYnNlcnZhYmxlPHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbklucHV0Q2hhbmdlcy5hc09ic2VydmFibGUoKVxuICB9XG5cbiAgb25JbnB1dENoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbHVtbklucHV0Q2hhbmdlcy5uZXh0KHVuZGVmaW5lZClcbiAgfVxuXG59XG4iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWNvbHVtbi1jaGFuZ2VzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL3NlcnZpY2VzL2RhdGF0YWJsZS1jb2x1bW4tY2hhbmdlcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTs7QUFHMUMsTUFBTSxPQUFPLDZCQUE2QjtJQUQxQztRQUdVLHVCQUFrQixHQUFHLElBQUksT0FBTyxFQUFhLENBQUE7S0FVdEQ7SUFSQyxJQUFJLG1CQUFtQjtRQUNyQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtJQUMvQyxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDekMsQ0FBQzs7MkhBVlUsNkJBQTZCOytIQUE3Qiw2QkFBNkI7NEZBQTdCLDZCQUE2QjtrQkFEekMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEYXRhdGFibGVDb2x1bW5DaGFuZ2VzU2VydmljZSB7XG5cbiAgcHJpdmF0ZSBjb2x1bW5JbnB1dENoYW5nZXMgPSBuZXcgU3ViamVjdDx1bmRlZmluZWQ+KClcblxuICBnZXQgY29sdW1uSW5wdXRDaGFuZ2VzJCgpOiBPYnNlcnZhYmxlPHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbklucHV0Q2hhbmdlcy5hc09ic2VydmFibGUoKVxuICB9XG5cbiAgb25JbnB1dENoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbHVtbklucHV0Q2hhbmdlcy5uZXh0KHVuZGVmaW5lZClcbiAgfVxuXG59XG4iXX0=
@@ -78,9 +78,9 @@ export class DatatablePreferencesService {
78
78
  return prefs.version === CURRENT_DATATABLE_PREFERENCES_VERSION;
79
79
  }
80
80
  }
81
- DatatablePreferencesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatablePreferencesService, deps: [{ token: i1.TheSeamPreferencesManagerService }, { token: THESEAM_DATATABLE_PREFERENCES_ACCESSOR, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
82
- DatatablePreferencesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatablePreferencesService, providedIn: 'root' });
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatablePreferencesService, decorators: [{
81
+ DatatablePreferencesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatablePreferencesService, deps: [{ token: i1.TheSeamPreferencesManagerService }, { token: THESEAM_DATATABLE_PREFERENCES_ACCESSOR, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
82
+ DatatablePreferencesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatablePreferencesService, providedIn: 'root' });
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatablePreferencesService, decorators: [{
84
84
  type: Injectable,
85
85
  args: [{
86
86
  providedIn: 'root'
@@ -91,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
91
91
  type: Inject,
92
92
  args: [THESEAM_DATATABLE_PREFERENCES_ACCESSOR]
93
93
  }] }]; } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLXByZWZlcmVuY2VzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL3NlcnZpY2VzL2RhdGF0YWJsZS1wcmVmZXJlbmNlcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM1RCxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUkxRCxPQUFPLEVBQUUscUNBQXFDLEVBQUUsMkJBQTJCLEVBQStCLE1BQU0sdUJBQXVCLENBQUE7QUFDdkksT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sMENBQTBDLENBQUE7OztBQU1qRyxNQUFNLE9BQU8sMkJBQTJCO0lBV3RDLFlBQ21CLG1CQUFxRCxFQUNGLGNBQTJDO1FBRDlGLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBa0M7UUFDRixtQkFBYyxHQUFkLGNBQWMsQ0FBNkI7UUFYakgsMkVBQTJFO1FBQzNFLDhFQUE4RTtRQUM5RSxzQkFBc0I7UUFFdEI7O1dBRUc7UUFDSyxhQUFRLEdBQUcsS0FBSyxDQUFBO0lBS3BCLENBQUM7SUFFRSxTQUFTLENBQUMsYUFBcUI7UUFDcEMsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUE7SUFDM0UsQ0FBQztJQUVNLFFBQVEsQ0FBQyxhQUFxQjtRQUNuQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsT0FBTyxLQUFLLENBQUE7U0FDYjtRQUNELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUN6RCxDQUFDO0lBRU0sV0FBVyxDQUFDLGFBQXFCO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUMsQ0FBQTtTQUNuRTtRQUVELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSwyQkFBMkIsQ0FBQyxDQUFDLElBQUksQ0FDL0csR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1YsSUFBSSxJQUFJLENBQUMsNEJBQTRCLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzVDLE9BQU8sS0FBSyxDQUFBO2FBQ2I7WUFDRCxNQUFNLEtBQUssQ0FBQyx3QkFBd0IsYUFBYSx5Q0FBeUMsQ0FBQyxDQUFBO1FBQzdGLENBQUMsQ0FBQyxDQUNILENBQUE7SUFDSCxDQUFDO0lBRU0sT0FBTyxDQUFDLGFBQXFCO1FBQ2xDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUE7SUFDakQsQ0FBQztJQUVNLGNBQWMsQ0FBQyxhQUFxQixFQUFFLFdBQXFDO1FBQzlFLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hCLE9BQU07U0FDUDtRQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFBO1FBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUNsQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDVixxRUFBcUU7WUFDckUsaURBQWlEO1lBQ2pELGtFQUFrRTtZQUNsRSxvRUFBb0U7WUFDcEUsa0NBQWtDO1lBQ2xDLGtCQUFrQjtZQUNsQixrRkFBa0Y7WUFDbEYsd0VBQXdFO1lBQ3hFLGdHQUFnRztZQUNoRywyRUFBMkU7WUFDM0UsV0FBVztZQUNYLGdDQUFnQztZQUNoQyxJQUFJO1lBQ0osc0VBQXNFO1lBQ3RFLGtCQUFrQjtZQUVsQixNQUFNLFFBQVEsR0FBZ0M7Z0JBQzVDLEdBQUcsMkJBQTJCO2dCQUM5QixXQUFXO2FBQ1osQ0FBQTtZQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFBO1lBQ3JCLE9BQU8sUUFBUSxDQUFBO1FBQ2pCLENBQUMsQ0FBQztRQUNGLHdDQUF3QztRQUN4QyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWM7WUFDdkMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JFLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQ2YsRUFDRCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUN2QzthQUNBLFNBQVMsRUFBRSxDQUFBO0lBQ2hCLENBQUM7SUFFTyw0QkFBNEIsQ0FBQyxLQUE2QjtRQUNoRSxPQUFPLEtBQUssQ0FBQyxPQUFPLEtBQUsscUNBQXFDLENBQUE7SUFDaEUsQ0FBQzs7d0hBMUZVLDJCQUEyQixrRUFhaEIsc0NBQXNDOzRIQWJqRCwyQkFBMkIsY0FGMUIsTUFBTTsyRkFFUCwyQkFBMkI7a0JBSHZDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFjSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHNDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgbWFwLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBUaGVTZWFtUHJlZmVyZW5jZXNBY2Nlc3NvciwgVGhlU2VhbVByZWZlcmVuY2VzQmFzZSwgVGhlU2VhbVByZWZlcmVuY2VzTWFuYWdlclNlcnZpY2UgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vc2VydmljZXMnXG5cbmltcG9ydCB7IENVUlJFTlRfREFUQVRBQkxFX1BSRUZFUkVOQ0VTX1ZFUlNJT04sIEVNUFRZX0RBVEFUQUJMRV9QUkVGRVJFTkNFUywgVGhlU2VhbURhdGF0YWJsZVByZWZlcmVuY2VzIH0gZnJvbSAnLi4vbW9kZWxzL3ByZWZlcmVuY2VzJ1xuaW1wb3J0IHsgVEhFU0VBTV9EQVRBVEFCTEVfUFJFRkVSRU5DRVNfQUNDRVNTT1IgfSBmcm9tICcuLi90b2tlbnMvZGF0YXRhYmxlLXByZWZlcmVuY2VzLWFjY2Vzc29yJ1xuaW1wb3J0IHsgQ29sdW1uc0FsdGVyYXRpb25TdGF0ZSB9IGZyb20gJy4uL21vZGVscy9jb2x1bW5zLWFsdGVyYXRpb24nXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERhdGF0YWJsZVByZWZlcmVuY2VzU2VydmljZSB7XG5cbiAgLy8gVE9ETzogUmVtb3ZlIHRoZSBuZWVkIGZvciB0aGlzIGludGVybmFsIHBlbmRpbmcgZmxhZy4gSSBvbmx5IGtlcHQgaXQgZm9yXG4gIC8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCB1bnRpbCBiZXR0ZXIgdGVzdHMgYXJlIGFkZGVkIHRvIG1ha2Ugc3VyZSBpZiBpc24ndFxuICAvLyBuZWNjZXNzYXJ5IGFueW1vcmUuXG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gcHJldmVudCBtdWx0aXBsZSB1cGRhdGVzIGZyb20gaGFwcGVuaW5nIGF0IHRoZSBzYW1lIHRpbWUsIGJ1dCBpdCBpcyBub3QgcGVyIGtleS5cbiAgICovXG4gIHByaXZhdGUgX3BlbmRpbmcgPSBmYWxzZVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3ByZWZlcmVuY2VzTWFuYWdlcjogVGhlU2VhbVByZWZlcmVuY2VzTWFuYWdlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChUSEVTRUFNX0RBVEFUQUJMRV9QUkVGRVJFTkNFU19BQ0NFU1NPUikgcHJpdmF0ZSBfcHJlZnNBY2Nlc3Nvcj86IFRoZVNlYW1QcmVmZXJlbmNlc0FjY2Vzc29yXG4gICkgeyB9XG5cbiAgcHVibGljIGlzUGVuZGluZyhwcmVmZXJlbmNlS2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcGVuZGluZyB8fCB0aGlzLl9wcmVmZXJlbmNlc01hbmFnZXIuaXNQZW5kaW5nKHByZWZlcmVuY2VLZXkpXG4gIH1cblxuICBwdWJsaWMgaXNMb2FkZWQocHJlZmVyZW5jZUtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuX3BlbmRpbmcpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fcHJlZmVyZW5jZXNNYW5hZ2VyLmlzTG9hZGVkKHByZWZlcmVuY2VLZXkpXG4gIH1cblxuICBwdWJsaWMgcHJlZmVyZW5jZXMocHJlZmVyZW5jZUtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxUaGVTZWFtRGF0YXRhYmxlUHJlZmVyZW5jZXM+IHtcbiAgICBpZiAoIXRoaXMuX3ByZWZzQWNjZXNzb3IpIHtcbiAgICAgIHJldHVybiBvZihKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KEVNUFRZX0RBVEFUQUJMRV9QUkVGRVJFTkNFUykpKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9wcmVmZXJlbmNlc01hbmFnZXIucHJlZmVyZW5jZXMocHJlZmVyZW5jZUtleSwgdGhpcy5fcHJlZnNBY2Nlc3NvciwgRU1QVFlfREFUQVRBQkxFX1BSRUZFUkVOQ0VTKS5waXBlKFxuICAgICAgbWFwKHByZWZzID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2lzVmFsaWREYXRhdGFibGVQcmVmZXJlbmNlcyhwcmVmcykpIHtcbiAgICAgICAgICByZXR1cm4gcHJlZnNcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBFcnJvcihgUHJlZmVyZW5jZXMgZm9yIGtleSAnJHtwcmVmZXJlbmNlS2V5fScgaXMgbm90IGEgdmFsaWQgZGF0YXRhYmxlIHByZWZlcmVuY2VzLmApXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIHB1YmxpYyByZWZyZXNoKHByZWZlcmVuY2VLZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX3ByZWZlcmVuY2VzTWFuYWdlci5yZWZyZXNoKHByZWZlcmVuY2VLZXkpXG4gIH1cblxuICBwdWJsaWMgc2V0QWx0ZXJhdGlvbnMocHJlZmVyZW5jZUtleTogc3RyaW5nLCBhbHRlcmF0aW9uczogQ29sdW1uc0FsdGVyYXRpb25TdGF0ZVtdKTogdm9pZCB7XG4gICAgICBpZiAoIXRoaXMuX3ByZWZzQWNjZXNzb3IpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIHRoaXMuX3BlbmRpbmcgPSB0cnVlXG4gICAgICB0aGlzLnByZWZlcmVuY2VzKHByZWZlcmVuY2VLZXkpLnBpcGUoXG4gICAgICAgIG1hcChwcmVmcyA9PiB7XG4gICAgICAgICAgLy8gTWFraW5nIHRoZSBwcmVmZXJlbmNlcyBpbW11dGFibGUgbWF5IG5vdCBiZSBuZWNlc3NhcnksIGJ1dCBmb3Igbm93XG4gICAgICAgICAgLy8gdGhpcyBvYmotPnN0ci0+b2JqIHdpbGwgd29yayBhcyBhIG5haXZlIGNsb25lLlxuICAgICAgICAgIC8vIGNvbnN0IGNvbHVtbnMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHByZWZzLmNvbHVtbnMgfHwgW10pKVxuICAgICAgICAgIC8vIGNvbnN0IF9jb2xQcmVmID0gY29sdW1ucy5maW5kKChjOiBhbnkpID0+IGMucHJvcCA9PT0gY29sdW1uLnByb3ApXG4gICAgICAgICAgLy8gLy8gY29uc29sZS5sb2coJ2hhcycsIF9jb2xQcmVmKVxuICAgICAgICAgIC8vIGlmIChfY29sUHJlZikge1xuICAgICAgICAgIC8vICAgLy8gY29uc29sZS5sb2coJ2hhc1Byb3BlcnR5KGNvbHVtbiwgXCJ3aWR0aFwiKSknLCBoYXNQcm9wZXJ0eShjb2x1bW4sICd3aWR0aCcpKVxuICAgICAgICAgIC8vICAgaWYgKGhhc1Byb3BlcnR5KGNvbHVtbiwgJ3dpZHRoJykpIHsgX2NvbFByZWYud2lkdGggPSBjb2x1bW4ud2lkdGggfVxuICAgICAgICAgIC8vICAgaWYgKGhhc1Byb3BlcnR5KGNvbHVtbiwgJ2NhbkF1dG9SZXNpemUnKSkgeyBfY29sUHJlZi5jYW5BdXRvUmVzaXplID0gY29sdW1uLmNhbkF1dG9SZXNpemUgfVxuICAgICAgICAgIC8vICAgaWYgKGhhc1Byb3BlcnR5KGNvbHVtbiwgJ2hpZGRlbicpKSB7IF9jb2xQcmVmLmhpZGRlbiA9IGNvbHVtbi5oaWRkZW4gfVxuICAgICAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAgICAgLy8gICBjb2x1bW5zLnB1c2goeyAuLi5jb2x1bW4gfSlcbiAgICAgICAgICAvLyB9XG4gICAgICAgICAgLy8gY29uc3QgbmV3UHJlZnM6IFRoZVNlYW1EYXRhdGFibGVQcmVmZXJlbmNlcyA9IHsgLi4ucHJlZnMsIGNvbHVtbnMgfVxuICAgICAgICAgIC8vIHJldHVybiBuZXdQcmVmc1xuXG4gICAgICAgICAgY29uc3QgbmV3UHJlZnM6IFRoZVNlYW1EYXRhdGFibGVQcmVmZXJlbmNlcyA9IHtcbiAgICAgICAgICAgIC4uLkVNUFRZX0RBVEFUQUJMRV9QUkVGRVJFTkNFUyxcbiAgICAgICAgICAgIGFsdGVyYXRpb25zXG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX3BlbmRpbmcgPSBmYWxzZVxuICAgICAgICAgIHJldHVybiBuZXdQcmVmc1xuICAgICAgICB9KSxcbiAgICAgICAgLy8gdGFwKHYgPT4gY29uc29sZS5sb2coJ25ld1ByZWZzJywgdikpLFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBzd2l0Y2hNYXAobmV3UHJlZnMgPT4gdGhpcy5fcHJlZnNBY2Nlc3NvclxuICAgICAgICAgID8gdGhpcy5fcHJlZnNBY2Nlc3Nvci51cGRhdGUocHJlZmVyZW5jZUtleSwgSlNPTi5zdHJpbmdpZnkobmV3UHJlZnMpKVxuICAgICAgICAgIDogb2YobmV3UHJlZnMpXG4gICAgICAgICksXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLnJlZnJlc2gocHJlZmVyZW5jZUtleSkpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKClcbiAgfVxuXG4gIHByaXZhdGUgX2lzVmFsaWREYXRhdGFibGVQcmVmZXJlbmNlcyhwcmVmczogVGhlU2VhbVByZWZlcmVuY2VzQmFzZSk6IHByZWZzIGlzIFRoZVNlYW1EYXRhdGFibGVQcmVmZXJlbmNlcyB7XG4gICAgcmV0dXJuIHByZWZzLnZlcnNpb24gPT09IENVUlJFTlRfREFUQVRBQkxFX1BSRUZFUkVOQ0VTX1ZFUlNJT05cbiAgfVxuXG59XG4iXX0=
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLXByZWZlcmVuY2VzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL3NlcnZpY2VzL2RhdGF0YWJsZS1wcmVmZXJlbmNlcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM1RCxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUkxRCxPQUFPLEVBQUUscUNBQXFDLEVBQUUsMkJBQTJCLEVBQStCLE1BQU0sdUJBQXVCLENBQUE7QUFDdkksT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sMENBQTBDLENBQUE7OztBQU1qRyxNQUFNLE9BQU8sMkJBQTJCO0lBV3RDLFlBQ21CLG1CQUFxRCxFQUNGLGNBQTJDO1FBRDlGLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBa0M7UUFDRixtQkFBYyxHQUFkLGNBQWMsQ0FBNkI7UUFYakgsMkVBQTJFO1FBQzNFLDhFQUE4RTtRQUM5RSxzQkFBc0I7UUFFdEI7O1dBRUc7UUFDSyxhQUFRLEdBQUcsS0FBSyxDQUFBO0lBS3BCLENBQUM7SUFFRSxTQUFTLENBQUMsYUFBcUI7UUFDcEMsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUE7SUFDM0UsQ0FBQztJQUVNLFFBQVEsQ0FBQyxhQUFxQjtRQUNuQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsT0FBTyxLQUFLLENBQUE7U0FDYjtRQUNELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUN6RCxDQUFDO0lBRU0sV0FBVyxDQUFDLGFBQXFCO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUMsQ0FBQTtTQUNuRTtRQUVELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSwyQkFBMkIsQ0FBQyxDQUFDLElBQUksQ0FDL0csR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1YsSUFBSSxJQUFJLENBQUMsNEJBQTRCLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzVDLE9BQU8sS0FBSyxDQUFBO2FBQ2I7WUFDRCxNQUFNLEtBQUssQ0FBQyx3QkFBd0IsYUFBYSx5Q0FBeUMsQ0FBQyxDQUFBO1FBQzdGLENBQUMsQ0FBQyxDQUNILENBQUE7SUFDSCxDQUFDO0lBRU0sT0FBTyxDQUFDLGFBQXFCO1FBQ2xDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUE7SUFDakQsQ0FBQztJQUVNLGNBQWMsQ0FBQyxhQUFxQixFQUFFLFdBQXFDO1FBQzlFLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hCLE9BQU07U0FDUDtRQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFBO1FBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUNsQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDVixxRUFBcUU7WUFDckUsaURBQWlEO1lBQ2pELGtFQUFrRTtZQUNsRSxvRUFBb0U7WUFDcEUsa0NBQWtDO1lBQ2xDLGtCQUFrQjtZQUNsQixrRkFBa0Y7WUFDbEYsd0VBQXdFO1lBQ3hFLGdHQUFnRztZQUNoRywyRUFBMkU7WUFDM0UsV0FBVztZQUNYLGdDQUFnQztZQUNoQyxJQUFJO1lBQ0osc0VBQXNFO1lBQ3RFLGtCQUFrQjtZQUVsQixNQUFNLFFBQVEsR0FBZ0M7Z0JBQzVDLEdBQUcsMkJBQTJCO2dCQUM5QixXQUFXO2FBQ1osQ0FBQTtZQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFBO1lBQ3JCLE9BQU8sUUFBUSxDQUFBO1FBQ2pCLENBQUMsQ0FBQztRQUNGLHdDQUF3QztRQUN4QyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWM7WUFDdkMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JFLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQ2YsRUFDRCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUN2QzthQUNBLFNBQVMsRUFBRSxDQUFBO0lBQ2hCLENBQUM7SUFFTyw0QkFBNEIsQ0FBQyxLQUE2QjtRQUNoRSxPQUFPLEtBQUssQ0FBQyxPQUFPLEtBQUsscUNBQXFDLENBQUE7SUFDaEUsQ0FBQzs7eUhBMUZVLDJCQUEyQixrRUFhaEIsc0NBQXNDOzZIQWJqRCwyQkFBMkIsY0FGMUIsTUFBTTs0RkFFUCwyQkFBMkI7a0JBSHZDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFjSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHNDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgbWFwLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBUaGVTZWFtUHJlZmVyZW5jZXNBY2Nlc3NvciwgVGhlU2VhbVByZWZlcmVuY2VzQmFzZSwgVGhlU2VhbVByZWZlcmVuY2VzTWFuYWdlclNlcnZpY2UgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vc2VydmljZXMnXG5cbmltcG9ydCB7IENVUlJFTlRfREFUQVRBQkxFX1BSRUZFUkVOQ0VTX1ZFUlNJT04sIEVNUFRZX0RBVEFUQUJMRV9QUkVGRVJFTkNFUywgVGhlU2VhbURhdGF0YWJsZVByZWZlcmVuY2VzIH0gZnJvbSAnLi4vbW9kZWxzL3ByZWZlcmVuY2VzJ1xuaW1wb3J0IHsgVEhFU0VBTV9EQVRBVEFCTEVfUFJFRkVSRU5DRVNfQUNDRVNTT1IgfSBmcm9tICcuLi90b2tlbnMvZGF0YXRhYmxlLXByZWZlcmVuY2VzLWFjY2Vzc29yJ1xuaW1wb3J0IHsgQ29sdW1uc0FsdGVyYXRpb25TdGF0ZSB9IGZyb20gJy4uL21vZGVscy9jb2x1bW5zLWFsdGVyYXRpb24nXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERhdGF0YWJsZVByZWZlcmVuY2VzU2VydmljZSB7XG5cbiAgLy8gVE9ETzogUmVtb3ZlIHRoZSBuZWVkIGZvciB0aGlzIGludGVybmFsIHBlbmRpbmcgZmxhZy4gSSBvbmx5IGtlcHQgaXQgZm9yXG4gIC8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCB1bnRpbCBiZXR0ZXIgdGVzdHMgYXJlIGFkZGVkIHRvIG1ha2Ugc3VyZSBpZiBpc24ndFxuICAvLyBuZWNjZXNzYXJ5IGFueW1vcmUuXG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gcHJldmVudCBtdWx0aXBsZSB1cGRhdGVzIGZyb20gaGFwcGVuaW5nIGF0IHRoZSBzYW1lIHRpbWUsIGJ1dCBpdCBpcyBub3QgcGVyIGtleS5cbiAgICovXG4gIHByaXZhdGUgX3BlbmRpbmcgPSBmYWxzZVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3ByZWZlcmVuY2VzTWFuYWdlcjogVGhlU2VhbVByZWZlcmVuY2VzTWFuYWdlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChUSEVTRUFNX0RBVEFUQUJMRV9QUkVGRVJFTkNFU19BQ0NFU1NPUikgcHJpdmF0ZSBfcHJlZnNBY2Nlc3Nvcj86IFRoZVNlYW1QcmVmZXJlbmNlc0FjY2Vzc29yXG4gICkgeyB9XG5cbiAgcHVibGljIGlzUGVuZGluZyhwcmVmZXJlbmNlS2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcGVuZGluZyB8fCB0aGlzLl9wcmVmZXJlbmNlc01hbmFnZXIuaXNQZW5kaW5nKHByZWZlcmVuY2VLZXkpXG4gIH1cblxuICBwdWJsaWMgaXNMb2FkZWQocHJlZmVyZW5jZUtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuX3BlbmRpbmcpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fcHJlZmVyZW5jZXNNYW5hZ2VyLmlzTG9hZGVkKHByZWZlcmVuY2VLZXkpXG4gIH1cblxuICBwdWJsaWMgcHJlZmVyZW5jZXMocHJlZmVyZW5jZUtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxUaGVTZWFtRGF0YXRhYmxlUHJlZmVyZW5jZXM+IHtcbiAgICBpZiAoIXRoaXMuX3ByZWZzQWNjZXNzb3IpIHtcbiAgICAgIHJldHVybiBvZihKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KEVNUFRZX0RBVEFUQUJMRV9QUkVGRVJFTkNFUykpKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9wcmVmZXJlbmNlc01hbmFnZXIucHJlZmVyZW5jZXMocHJlZmVyZW5jZUtleSwgdGhpcy5fcHJlZnNBY2Nlc3NvciwgRU1QVFlfREFUQVRBQkxFX1BSRUZFUkVOQ0VTKS5waXBlKFxuICAgICAgbWFwKHByZWZzID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2lzVmFsaWREYXRhdGFibGVQcmVmZXJlbmNlcyhwcmVmcykpIHtcbiAgICAgICAgICByZXR1cm4gcHJlZnNcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBFcnJvcihgUHJlZmVyZW5jZXMgZm9yIGtleSAnJHtwcmVmZXJlbmNlS2V5fScgaXMgbm90IGEgdmFsaWQgZGF0YXRhYmxlIHByZWZlcmVuY2VzLmApXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIHB1YmxpYyByZWZyZXNoKHByZWZlcmVuY2VLZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX3ByZWZlcmVuY2VzTWFuYWdlci5yZWZyZXNoKHByZWZlcmVuY2VLZXkpXG4gIH1cblxuICBwdWJsaWMgc2V0QWx0ZXJhdGlvbnMocHJlZmVyZW5jZUtleTogc3RyaW5nLCBhbHRlcmF0aW9uczogQ29sdW1uc0FsdGVyYXRpb25TdGF0ZVtdKTogdm9pZCB7XG4gICAgICBpZiAoIXRoaXMuX3ByZWZzQWNjZXNzb3IpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIHRoaXMuX3BlbmRpbmcgPSB0cnVlXG4gICAgICB0aGlzLnByZWZlcmVuY2VzKHByZWZlcmVuY2VLZXkpLnBpcGUoXG4gICAgICAgIG1hcChwcmVmcyA9PiB7XG4gICAgICAgICAgLy8gTWFraW5nIHRoZSBwcmVmZXJlbmNlcyBpbW11dGFibGUgbWF5IG5vdCBiZSBuZWNlc3NhcnksIGJ1dCBmb3Igbm93XG4gICAgICAgICAgLy8gdGhpcyBvYmotPnN0ci0+b2JqIHdpbGwgd29yayBhcyBhIG5haXZlIGNsb25lLlxuICAgICAgICAgIC8vIGNvbnN0IGNvbHVtbnMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHByZWZzLmNvbHVtbnMgfHwgW10pKVxuICAgICAgICAgIC8vIGNvbnN0IF9jb2xQcmVmID0gY29sdW1ucy5maW5kKChjOiBhbnkpID0+IGMucHJvcCA9PT0gY29sdW1uLnByb3ApXG4gICAgICAgICAgLy8gLy8gY29uc29sZS5sb2coJ2hhcycsIF9jb2xQcmVmKVxuICAgICAgICAgIC8vIGlmIChfY29sUHJlZikge1xuICAgICAgICAgIC8vICAgLy8gY29uc29sZS5sb2coJ2hhc1Byb3BlcnR5KGNvbHVtbiwgXCJ3aWR0aFwiKSknLCBoYXNQcm9wZXJ0eShjb2x1bW4sICd3aWR0aCcpKVxuICAgICAgICAgIC8vICAgaWYgKGhhc1Byb3BlcnR5KGNvbHVtbiwgJ3dpZHRoJykpIHsgX2NvbFByZWYud2lkdGggPSBjb2x1bW4ud2lkdGggfVxuICAgICAgICAgIC8vICAgaWYgKGhhc1Byb3BlcnR5KGNvbHVtbiwgJ2NhbkF1dG9SZXNpemUnKSkgeyBfY29sUHJlZi5jYW5BdXRvUmVzaXplID0gY29sdW1uLmNhbkF1dG9SZXNpemUgfVxuICAgICAgICAgIC8vICAgaWYgKGhhc1Byb3BlcnR5KGNvbHVtbiwgJ2hpZGRlbicpKSB7IF9jb2xQcmVmLmhpZGRlbiA9IGNvbHVtbi5oaWRkZW4gfVxuICAgICAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAgICAgLy8gICBjb2x1bW5zLnB1c2goeyAuLi5jb2x1bW4gfSlcbiAgICAgICAgICAvLyB9XG4gICAgICAgICAgLy8gY29uc3QgbmV3UHJlZnM6IFRoZVNlYW1EYXRhdGFibGVQcmVmZXJlbmNlcyA9IHsgLi4ucHJlZnMsIGNvbHVtbnMgfVxuICAgICAgICAgIC8vIHJldHVybiBuZXdQcmVmc1xuXG4gICAgICAgICAgY29uc3QgbmV3UHJlZnM6IFRoZVNlYW1EYXRhdGFibGVQcmVmZXJlbmNlcyA9IHtcbiAgICAgICAgICAgIC4uLkVNUFRZX0RBVEFUQUJMRV9QUkVGRVJFTkNFUyxcbiAgICAgICAgICAgIGFsdGVyYXRpb25zXG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX3BlbmRpbmcgPSBmYWxzZVxuICAgICAgICAgIHJldHVybiBuZXdQcmVmc1xuICAgICAgICB9KSxcbiAgICAgICAgLy8gdGFwKHYgPT4gY29uc29sZS5sb2coJ25ld1ByZWZzJywgdikpLFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBzd2l0Y2hNYXAobmV3UHJlZnMgPT4gdGhpcy5fcHJlZnNBY2Nlc3NvclxuICAgICAgICAgID8gdGhpcy5fcHJlZnNBY2Nlc3Nvci51cGRhdGUocHJlZmVyZW5jZUtleSwgSlNPTi5zdHJpbmdpZnkobmV3UHJlZnMpKVxuICAgICAgICAgIDogb2YobmV3UHJlZnMpXG4gICAgICAgICksXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLnJlZnJlc2gocHJlZmVyZW5jZUtleSkpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKClcbiAgfVxuXG4gIHByaXZhdGUgX2lzVmFsaWREYXRhdGFibGVQcmVmZXJlbmNlcyhwcmVmczogVGhlU2VhbVByZWZlcmVuY2VzQmFzZSk6IHByZWZzIGlzIFRoZVNlYW1EYXRhdGFibGVQcmVmZXJlbmNlcyB7XG4gICAgcmV0dXJuIHByZWZzLnZlcnNpb24gPT09IENVUlJFTlRfREFUQVRBQkxFX1BSRUZFUkVOQ0VTX1ZFUlNJT05cbiAgfVxuXG59XG4iXX0=
@@ -42,9 +42,9 @@ export class TheSeamDatatableScrollbarHelperService {
42
42
  });
43
43
  }
44
44
  }
45
- TheSeamDatatableScrollbarHelperService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamDatatableScrollbarHelperService, deps: [{ token: i0.NgZone }, { token: i1.OverlayScrollbarsService }], target: i0.ɵɵFactoryTarget.Injectable });
46
- TheSeamDatatableScrollbarHelperService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamDatatableScrollbarHelperService });
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamDatatableScrollbarHelperService, decorators: [{
45
+ TheSeamDatatableScrollbarHelperService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamDatatableScrollbarHelperService, deps: [{ token: i0.NgZone }, { token: i1.OverlayScrollbarsService }], target: i0.ɵɵFactoryTarget.Injectable });
46
+ TheSeamDatatableScrollbarHelperService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamDatatableScrollbarHelperService });
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamDatatableScrollbarHelperService, decorators: [{
48
48
  type: Injectable
49
49
  }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.OverlayScrollbarsService }]; } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLXNjcm9sbGJhci1oZWxwZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9kYXRhdGFibGUvc2VydmljZXMvZGF0YXRhYmxlLXNjcm9sbGJhci1oZWxwZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFBOzs7QUFLbEQsTUFBTSxPQUFPLHNDQUFzQztJQWFqRCxZQUNVLE9BQWUsRUFDZixXQUFxQztRQURyQyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsZ0JBQVcsR0FBWCxXQUFXLENBQTBCO1FBYi9DLFVBQUssR0FBRyxDQUFDLENBQUE7UUFFVDs7Ozs7V0FLRztRQUNILHNCQUFpQixHQUFHLEtBQUssQ0FBQTtRQUN6QiwwQkFBcUIsR0FBRyxHQUFHLENBQUE7SUFLdkIsQ0FBQztJQUVMLGNBQWMsQ0FBQyxRQUFhO1FBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRTtZQUMxRCxTQUFTLEVBQUU7Z0JBQ1QsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFO29CQUNaLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTt3QkFDcEIsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtvQkFDeEIsQ0FBQyxDQUFDLENBQUE7Z0JBQ0osQ0FBQzthQUNGO1NBQ0YsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELGlCQUFpQixDQUFDLFFBQWE7UUFDN0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQzFELENBQUM7SUFFRCxTQUFTLENBQUMsUUFBYSxFQUFFLE9BQWU7UUFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDbEMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7cUJBQ2pELE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQTthQUN0RDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO3FCQUNqRCxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQTthQUMxQjtRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs7bUlBNUNVLHNDQUFzQzt1SUFBdEMsc0NBQXNDOzJGQUF0QyxzQ0FBc0M7a0JBRGxELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5pbXBvcnQgeyBPdmVybGF5U2Nyb2xsYmFyc1NlcnZpY2UgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vc2Nyb2xsYmFyJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGhlU2VhbURhdGF0YWJsZVNjcm9sbGJhckhlbHBlclNlcnZpY2Uge1xuXG4gIHdpZHRoID0gMFxuXG4gIC8qKlxuICAgKiBBbmltYXRlcyBwcm9ncmFtbWF0aWMgc2Nyb2xsaW5nLCBzdWNoIGFzIHN3aXRjaGluZyBwYWdlcy5cbiAgICpcbiAgICogTk9URTogQW5pbWF0aW5nIHRoZSBzY3JvbGxpbmcgd29ya3MsIGJ1dCB0aGUgZGF0YXRhYmxlIG1heSBuZWVkIGNoYW5nZXNcbiAgICogYmVmb3JlIHRoaXMgaXMgZW5hYmxlZCwgYmVjYXVzZSBpdCBzZWVtcyBhIGxpdHRsZSBzdHV0dGVyeSB3aGVuIGl0IG1vdmVzLlxuICAgKi9cbiAgYW5pbWF0ZWRTY3JvbGxpbmcgPSBmYWxzZVxuICBhbmltYXRlZFNjcm9sbGluZ1RpbWUgPSAyNTBcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIF9zY3JvbGxiYXJzOiBPdmVybGF5U2Nyb2xsYmFyc1NlcnZpY2VcbiAgKSB7IH1cblxuICBvbkluaXRTY3JvbGxlcihzY3JvbGxlcjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fc2Nyb2xsYmFycy5pbml0aWFsaXplSW5zdGFuY2Uoc2Nyb2xsZXIucGFyZW50RWxlbWVudCwge1xuICAgICAgY2FsbGJhY2tzOiB7XG4gICAgICAgIG9uU2Nyb2xsOiBlID0+IHtcbiAgICAgICAgICB0aGlzLl9uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgIHNjcm9sbGVyLm9uU2Nyb2xsZWQoZSlcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIG9uRGVzdHJveVNjcm9sbGVyKHNjcm9sbGVyOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9zY3JvbGxiYXJzLmRlc3Ryb3lJbnN0YW5jZShzY3JvbGxlci5wYXJlbnRFbGVtZW50KVxuICB9XG5cbiAgc2V0T2Zmc2V0KHNjcm9sbGVyOiBhbnksIG9mZnNldFk6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBpZiAodGhpcy5hbmltYXRlZFNjcm9sbGluZykge1xuICAgICAgICB0aGlzLl9zY3JvbGxiYXJzLmdldEluc3RhbmNlKHNjcm9sbGVyLnBhcmVudEVsZW1lbnQpXG4gICAgICAgICAgLnNjcm9sbCh7IHk6IG9mZnNldFkgfSwgdGhpcy5hbmltYXRlZFNjcm9sbGluZ1RpbWUpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9zY3JvbGxiYXJzLmdldEluc3RhbmNlKHNjcm9sbGVyLnBhcmVudEVsZW1lbnQpXG4gICAgICAgICAgLnNjcm9sbCh7IHk6IG9mZnNldFkgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG59XG4iXX0=
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLXNjcm9sbGJhci1oZWxwZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9kYXRhdGFibGUvc2VydmljZXMvZGF0YXRhYmxlLXNjcm9sbGJhci1oZWxwZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFBOzs7QUFLbEQsTUFBTSxPQUFPLHNDQUFzQztJQWFqRCxZQUNVLE9BQWUsRUFDZixXQUFxQztRQURyQyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsZ0JBQVcsR0FBWCxXQUFXLENBQTBCO1FBYi9DLFVBQUssR0FBRyxDQUFDLENBQUE7UUFFVDs7Ozs7V0FLRztRQUNILHNCQUFpQixHQUFHLEtBQUssQ0FBQTtRQUN6QiwwQkFBcUIsR0FBRyxHQUFHLENBQUE7SUFLdkIsQ0FBQztJQUVMLGNBQWMsQ0FBQyxRQUFhO1FBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRTtZQUMxRCxTQUFTLEVBQUU7Z0JBQ1QsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFO29CQUNaLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTt3QkFDcEIsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtvQkFDeEIsQ0FBQyxDQUFDLENBQUE7Z0JBQ0osQ0FBQzthQUNGO1NBQ0YsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELGlCQUFpQixDQUFDLFFBQWE7UUFDN0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQzFELENBQUM7SUFFRCxTQUFTLENBQUMsUUFBYSxFQUFFLE9BQWU7UUFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDbEMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7cUJBQ2pELE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQTthQUN0RDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO3FCQUNqRCxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQTthQUMxQjtRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs7b0lBNUNVLHNDQUFzQzt3SUFBdEMsc0NBQXNDOzRGQUF0QyxzQ0FBc0M7a0JBRGxELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5pbXBvcnQgeyBPdmVybGF5U2Nyb2xsYmFyc1NlcnZpY2UgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vc2Nyb2xsYmFyJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGhlU2VhbURhdGF0YWJsZVNjcm9sbGJhckhlbHBlclNlcnZpY2Uge1xuXG4gIHdpZHRoID0gMFxuXG4gIC8qKlxuICAgKiBBbmltYXRlcyBwcm9ncmFtbWF0aWMgc2Nyb2xsaW5nLCBzdWNoIGFzIHN3aXRjaGluZyBwYWdlcy5cbiAgICpcbiAgICogTk9URTogQW5pbWF0aW5nIHRoZSBzY3JvbGxpbmcgd29ya3MsIGJ1dCB0aGUgZGF0YXRhYmxlIG1heSBuZWVkIGNoYW5nZXNcbiAgICogYmVmb3JlIHRoaXMgaXMgZW5hYmxlZCwgYmVjYXVzZSBpdCBzZWVtcyBhIGxpdHRsZSBzdHV0dGVyeSB3aGVuIGl0IG1vdmVzLlxuICAgKi9cbiAgYW5pbWF0ZWRTY3JvbGxpbmcgPSBmYWxzZVxuICBhbmltYXRlZFNjcm9sbGluZ1RpbWUgPSAyNTBcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIF9zY3JvbGxiYXJzOiBPdmVybGF5U2Nyb2xsYmFyc1NlcnZpY2VcbiAgKSB7IH1cblxuICBvbkluaXRTY3JvbGxlcihzY3JvbGxlcjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fc2Nyb2xsYmFycy5pbml0aWFsaXplSW5zdGFuY2Uoc2Nyb2xsZXIucGFyZW50RWxlbWVudCwge1xuICAgICAgY2FsbGJhY2tzOiB7XG4gICAgICAgIG9uU2Nyb2xsOiBlID0+IHtcbiAgICAgICAgICB0aGlzLl9uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgIHNjcm9sbGVyLm9uU2Nyb2xsZWQoZSlcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIG9uRGVzdHJveVNjcm9sbGVyKHNjcm9sbGVyOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9zY3JvbGxiYXJzLmRlc3Ryb3lJbnN0YW5jZShzY3JvbGxlci5wYXJlbnRFbGVtZW50KVxuICB9XG5cbiAgc2V0T2Zmc2V0KHNjcm9sbGVyOiBhbnksIG9mZnNldFk6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBpZiAodGhpcy5hbmltYXRlZFNjcm9sbGluZykge1xuICAgICAgICB0aGlzLl9zY3JvbGxiYXJzLmdldEluc3RhbmNlKHNjcm9sbGVyLnBhcmVudEVsZW1lbnQpXG4gICAgICAgICAgLnNjcm9sbCh7IHk6IG9mZnNldFkgfSwgdGhpcy5hbmltYXRlZFNjcm9sbGluZ1RpbWUpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9zY3JvbGxiYXJzLmdldEluc3RhbmNlKHNjcm9sbGVyLnBhcmVudEVsZW1lbnQpXG4gICAgICAgICAgLnNjcm9sbCh7IHk6IG9mZnNldFkgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  export const ACTION_MENU_COLUMN_PROP = '$$__actionMenu__';
2
- export function createActionMenuColumn(cellTemplate, headerTemplate) {
2
+ export function createActionMenuColumn(cellTemplate, headerTemplate, frozenLeft, frozenRight) {
3
3
  return {
4
4
  prop: ACTION_MENU_COLUMN_PROP,
5
5
  name: '',
@@ -10,9 +10,10 @@ export function createActionMenuColumn(cellTemplate, headerTemplate) {
10
10
  sortable: false,
11
11
  draggable: false,
12
12
  // TODO: Fix column auto sizing with fixed column and cell overlay before enabling.
13
- // frozenRight: true,
13
+ frozenLeft: frozenLeft,
14
+ frozenRight: frozenRight,
14
15
  cellTemplate,
15
16
  headerTemplate,
16
17
  };
17
18
  }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWFjdGlvbi1tZW51LWNvbHVtbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9kYXRhdGFibGUvdXRpbHMvY3JlYXRlLWFjdGlvbi1tZW51LWNvbHVtbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxrQkFBa0IsQ0FBQTtBQUV6RCxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLFlBQWlCLEVBQ2pCLGNBQW1CO0lBRW5CLE9BQU87UUFDTCxJQUFJLEVBQUUsdUJBQXVCO1FBQzdCLElBQUksRUFBRSxFQUFFO1FBQ1IsS0FBSyxFQUFFLEVBQUU7UUFDVCxRQUFRLEVBQUUsRUFBRTtRQUNaLFFBQVEsRUFBRSxFQUFFO1FBQ1osVUFBVSxFQUFFLEtBQUs7UUFDakIsUUFBUSxFQUFFLEtBQUs7UUFDZixTQUFTLEVBQUUsS0FBSztRQUNoQixtRkFBbUY7UUFDbkYscUJBQXFCO1FBQ3JCLFlBQVk7UUFDWixjQUFjO0tBQ2YsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vbW9kZWxzL3RhYmxlLWNvbHVtbidcblxuZXhwb3J0IGNvbnN0IEFDVElPTl9NRU5VX0NPTFVNTl9QUk9QID0gJyQkX19hY3Rpb25NZW51X18nXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBY3Rpb25NZW51Q29sdW1uKFxuICBjZWxsVGVtcGxhdGU6IGFueSxcbiAgaGVhZGVyVGVtcGxhdGU6IGFueVxuKTogVGhlU2VhbURhdGF0YWJsZUNvbHVtbiB7XG4gIHJldHVybiB7XG4gICAgcHJvcDogQUNUSU9OX01FTlVfQ09MVU1OX1BST1AsXG4gICAgbmFtZTogJycsXG4gICAgd2lkdGg6IDUwLFxuICAgIG1pbldpZHRoOiA1MCxcbiAgICBtYXhXaWR0aDogNTAsXG4gICAgcmVzaXplYWJsZTogZmFsc2UsXG4gICAgc29ydGFibGU6IGZhbHNlLFxuICAgIGRyYWdnYWJsZTogZmFsc2UsXG4gICAgLy8gVE9ETzogRml4IGNvbHVtbiBhdXRvIHNpemluZyB3aXRoIGZpeGVkIGNvbHVtbiBhbmQgY2VsbCBvdmVybGF5IGJlZm9yZSBlbmFibGluZy5cbiAgICAvLyBmcm96ZW5SaWdodDogdHJ1ZSxcbiAgICBjZWxsVGVtcGxhdGUsXG4gICAgaGVhZGVyVGVtcGxhdGUsXG4gIH1cbn1cbiJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWFjdGlvbi1tZW51LWNvbHVtbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9kYXRhdGFibGUvdXRpbHMvY3JlYXRlLWFjdGlvbi1tZW51LWNvbHVtbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxrQkFBa0IsQ0FBQTtBQUV6RCxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLFlBQWlCLEVBQ2pCLGNBQW1CLEVBQ25CLFVBQW9CLEVBQ3BCLFdBQXFCO0lBRXJCLE9BQU87UUFDTCxJQUFJLEVBQUUsdUJBQXVCO1FBQzdCLElBQUksRUFBRSxFQUFFO1FBQ1IsS0FBSyxFQUFFLEVBQUU7UUFDVCxRQUFRLEVBQUUsRUFBRTtRQUNaLFFBQVEsRUFBRSxFQUFFO1FBQ1osVUFBVSxFQUFFLEtBQUs7UUFDakIsUUFBUSxFQUFFLEtBQUs7UUFDZixTQUFTLEVBQUUsS0FBSztRQUNoQixtRkFBbUY7UUFDbkYsVUFBVSxFQUFFLFVBQVU7UUFDdEIsV0FBVyxFQUFFLFdBQVc7UUFDeEIsWUFBWTtRQUNaLGNBQWM7S0FDZixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRoZVNlYW1EYXRhdGFibGVDb2x1bW4gfSBmcm9tICcuLi9tb2RlbHMvdGFibGUtY29sdW1uJ1xuXG5leHBvcnQgY29uc3QgQUNUSU9OX01FTlVfQ09MVU1OX1BST1AgPSAnJCRfX2FjdGlvbk1lbnVfXydcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFjdGlvbk1lbnVDb2x1bW4oXG4gIGNlbGxUZW1wbGF0ZTogYW55LFxuICBoZWFkZXJUZW1wbGF0ZTogYW55LFxuICBmcm96ZW5MZWZ0PzogYm9vbGVhbixcbiAgZnJvemVuUmlnaHQ/OiBib29sZWFuXG4pOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uIHtcbiAgcmV0dXJuIHtcbiAgICBwcm9wOiBBQ1RJT05fTUVOVV9DT0xVTU5fUFJPUCxcbiAgICBuYW1lOiAnJyxcbiAgICB3aWR0aDogNTAsXG4gICAgbWluV2lkdGg6IDUwLFxuICAgIG1heFdpZHRoOiA1MCxcbiAgICByZXNpemVhYmxlOiBmYWxzZSxcbiAgICBzb3J0YWJsZTogZmFsc2UsXG4gICAgZHJhZ2dhYmxlOiBmYWxzZSxcbiAgICAvLyBUT0RPOiBGaXggY29sdW1uIGF1dG8gc2l6aW5nIHdpdGggZml4ZWQgY29sdW1uIGFuZCBjZWxsIG92ZXJsYXkgYmVmb3JlIGVuYWJsaW5nLlxuICAgIGZyb3plbkxlZnQ6IGZyb3plbkxlZnQsXG4gICAgZnJvemVuUmlnaHQ6IGZyb3plblJpZ2h0LFxuICAgIGNlbGxUZW1wbGF0ZSxcbiAgICBoZWFkZXJUZW1wbGF0ZSxcbiAgfVxufVxuIl19
@@ -105,9 +105,9 @@ export class DatatableDynamicActionMenuComponent {
105
105
  return 'button';
106
106
  }
107
107
  }
108
- DatatableDynamicActionMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableDynamicActionMenuComponent, deps: [{ token: i1.DynamicValueHelperService }, { token: i2.DynamicDatatableRowActionsService }], target: i0.ɵɵFactoryTarget.Component });
109
- DatatableDynamicActionMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableDynamicActionMenuComponent, selector: "seam-datatable-dynamic-action-menu", inputs: { row: "row", actionDefs: "actionDefs" }, ngImport: i0, template: "<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", styles: [":host{display:block;position:relative}.datatable-action-button{font-size:20px;line-height:20px;width:30px;height:30px;padding:0;border-radius:15px;text-align:center}.datatable-action-button::ng-deep .svg-inline--fa{vertical-align:middle}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }, { kind: "component", type: i5.MenuComponent, selector: "seam-menu", inputs: ["menuClass", "baseWidth", "animationType"], outputs: ["closed"], exportAs: ["seamMenu"] }, { kind: "directive", type: i5.MenuToggleDirective, selector: "[seamMenuToggle]", inputs: ["seamMenuToggle", "positions", "seamMenuTogglePositionsOffsetY"], outputs: ["menuOpened", "menuClosed"], exportAs: ["seamMenuToggle"] }, { kind: "component", type: i5.MenuItemComponent, selector: "[seamMenuItem]", inputs: ["disabled", "role", "icon", "iconClass", "sublevelIcon", "subLevelIconClass", "badgeText", "badgeTheme"], exportAs: ["seamMenuItem"] }, { kind: "directive", type: i6.DatatableDynamicActionMenuItemDirective, selector: "[seamDatatableDynamicActionMenuItem]", inputs: ["seamDatatableDynamicActionMenuItem"], exportAs: ["seamDatatableDynamicActionMenuItem"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableDynamicActionMenuComponent, decorators: [{
108
+ DatatableDynamicActionMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableDynamicActionMenuComponent, deps: [{ token: i1.DynamicValueHelperService }, { token: i2.DynamicDatatableRowActionsService }], target: i0.ɵɵFactoryTarget.Component });
109
+ DatatableDynamicActionMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DatatableDynamicActionMenuComponent, selector: "seam-datatable-dynamic-action-menu", inputs: { row: "row", actionDefs: "actionDefs" }, ngImport: i0, template: "<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", styles: [":host{display:block;position:relative}.datatable-action-button{font-size:20px;line-height:20px;width:30px;height:30px;padding:0;border-radius:15px;text-align:center}.datatable-action-button::ng-deep .svg-inline--fa{vertical-align:middle}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }, { kind: "component", type: i5.MenuComponent, selector: "seam-menu", inputs: ["menuClass", "baseWidth", "animationType"], outputs: ["closed"], exportAs: ["seamMenu"] }, { kind: "directive", type: i5.MenuToggleDirective, selector: "[seamMenuToggle]", inputs: ["seamMenuToggle", "positions", "seamMenuTogglePositionsOffsetY"], outputs: ["menuToggle", "menuOpened", "menuClosed"], exportAs: ["seamMenuToggle"] }, { kind: "component", type: i5.MenuItemComponent, selector: "[seamMenuItem]", inputs: ["disabled", "role", "icon", "iconClass", "sublevelIcon", "subLevelIconClass", "badgeText", "badgeTheme"], exportAs: ["seamMenuItem"] }, { kind: "directive", type: i6.DatatableDynamicActionMenuItemDirective, selector: "[seamDatatableDynamicActionMenuItem]", inputs: ["seamDatatableDynamicActionMenuItem"], exportAs: ["seamDatatableDynamicActionMenuItem"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableDynamicActionMenuComponent, decorators: [{
111
111
  type: Component,
112
112
  args: [{ selector: 'seam-datatable-dynamic-action-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: "<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", styles: [":host{display:block;position:relative}.datatable-action-button{font-size:20px;line-height:20px;width:30px;height:30px;padding:0;border-radius:15px;text-align:center}.datatable-action-button::ng-deep .svg-inline--fa{vertical-align:middle}\n"] }]
113
113
  }], ctorParameters: function () { return [{ type: i1.DynamicValueHelperService }, { type: i2.DynamicDatatableRowActionsService }]; }, propDecorators: { row: [{
@@ -115,4 +115,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
115
115
  }], actionDefs: [{
116
116
  type: Input
117
117
  }] } });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWR5bmFtaWMtYWN0aW9uLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2RhdGF0YWJsZS1keW5hbWljL2RhdGF0YWJsZS1keW5hbWljLWFjdGlvbi1tZW51L2RhdGF0YWJsZS1keW5hbWljLWFjdGlvbi1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9kYXRhdGFibGUtZHluYW1pYy9kYXRhdGFibGUtZHluYW1pYy1hY3Rpb24tbWVudS9kYXRhdGFibGUtZHluYW1pYy1hY3Rpb24tbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRXRFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUUvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7Ozs7Ozs7O0FBYzFFLE1BQU0sT0FBTyxtQ0FBbUM7SUFJOUMsSUFDSSxHQUFHLEtBQUssT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQSxDQUFDLENBQUM7SUFDcEMsSUFBSSxHQUFHLENBQUMsS0FBc0M7UUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQyxDQUFBO0lBQ3BDLENBQUM7SUFHRCxJQUNJLFVBQVUsS0FBSyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFBLENBQUMsQ0FBQztJQUNsRCxJQUFJLFVBQVUsQ0FBQyxLQUFrQztRQUMvQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUE7SUFDcEMsQ0FBQztJQWlDRCxZQUNVLFlBQXVDLEVBQ3ZDLGtCQUFxRDtRQURyRCxpQkFBWSxHQUFaLFlBQVksQ0FBMkI7UUFDdkMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQztRQWhEL0QsZ0JBQVcsR0FBRyxXQUFXLENBQUE7UUFPakIsU0FBSSxHQUFHLElBQUksZUFBZSxDQUFrQyxTQUFTLENBQUMsQ0FBQTtRQU90RSxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUE4QixFQUFFLENBQUMsQ0FBQTtRQUkxRSxjQUFjO1FBQ2QseUJBQW9CLEdBQUc7WUFDckI7Z0JBQ0UsT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixRQUFRLEVBQUUsS0FBSztnQkFDZixRQUFRLEVBQUUsS0FBSzthQUNoQjtZQUNEO2dCQUNFLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixPQUFPLEVBQUUsS0FBSztnQkFDZCxRQUFRLEVBQUUsS0FBSztnQkFDZixRQUFRLEVBQUUsUUFBUTthQUNuQjtZQUNEO2dCQUNFLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixRQUFRLEVBQUUsT0FBTztnQkFDakIsUUFBUSxFQUFFLEtBQUs7YUFDaEI7WUFDRDtnQkFDRSxPQUFPLEVBQUUsS0FBSztnQkFDZCxPQUFPLEVBQUUsS0FBSztnQkFDZCxRQUFRLEVBQUUsT0FBTztnQkFDakIsUUFBUSxFQUFFLFFBQVE7YUFDbkI7U0FDRixDQUFBO1FBTUMsNEVBQTRFO1FBQzVFLDJGQUEyRjtRQUMzRixJQUFJO1FBQ0osSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDakMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRztZQUNsQixDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQzFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQzNEO1lBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FDVCxDQUVGLENBQUE7UUFFRCxpQ0FBaUM7SUFDbkMsQ0FBQztJQUVELHFFQUFxRTtJQUM3RCxXQUFXLENBQ2pCLEdBQXdCLEVBQ3hCLFVBQWU7UUFFZixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQzFCLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNwQixPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUU7Z0JBQ2pCLE1BQU0sVUFBVSxHQUE4QjtvQkFDNUMsR0FBRyxTQUFTO2lCQUNiLENBQUE7Z0JBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQTtnQkFFekQsSUFBSSxXQUFXLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxFQUFFO29CQUNyQyxVQUFVLENBQUMsTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtvQkFDNUUsSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFO3dCQUNyQixPQUFPLFNBQVMsQ0FBQTtxQkFDakI7aUJBQ0Y7Z0JBRUQsVUFBVSxDQUFDLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUE7Z0JBRXpFLElBQUksV0FBVyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRTtvQkFDdkMsVUFBVSxDQUFDLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUE7aUJBQ2pGO2dCQUVELE1BQU0sTUFBTSxHQUFxQztvQkFDL0MsSUFBSSxFQUFFLEdBQUc7b0JBQ1QsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsU0FBUyxFQUFFLFVBQVU7b0JBQ3JCLFdBQVcsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDO2lCQUNsRCxDQUFBO2dCQUVELE9BQU8sTUFBTSxDQUFBO1lBQ2YsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUNOLENBQUMsQ0FBQyxFQUNGLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxFQUMxQixPQUFPLEVBQUUsQ0FDVixDQUFBO0lBQ0gsQ0FBQztJQUVELGNBQWM7SUFDTixvQkFBb0IsQ0FDMUIsR0FBd0IsRUFDeEIsWUFBdUM7UUFFdkMsT0FBTztZQUNMLEdBQUc7U0FDSixDQUFBO0lBQ0gsQ0FBQztJQUVPLG9CQUFvQixDQUFDLEdBQThCO1FBQ3pELE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7UUFFekIsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUMxQixJQUFJLFdBQVcsQ0FBQyxNQUFhLEVBQUUsT0FBTyxDQUFDLEVBQUU7Z0JBQ3ZDLE9BQU8sUUFBUSxDQUFBO2FBQ2hCO1lBQ0QsT0FBTyxHQUFHLENBQUE7U0FDWDtRQUVELE9BQU8sUUFBUSxDQUFBO0lBQ2pCLENBQUM7O2dJQW5JVSxtQ0FBbUM7b0hBQW5DLG1DQUFtQyw0SENwQmhELDh0RUE4REE7MkZEMUNhLG1DQUFtQztrQkFOL0MsU0FBUzsrQkFDRSxvQ0FBb0MsbUJBRzdCLHVCQUF1QixDQUFDLE1BQU07Z0tBTzNDLEdBQUc7c0JBRE4sS0FBSztnQkFRRixVQUFVO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZyb20sIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGNvbmNhdE1hcCwgZmlsdGVyLCBzd2l0Y2hNYXAsIHRvQXJyYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgZmFFbGxpcHNpc0ggfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnXG5pbXBvcnQgeyBEeW5hbWljVmFsdWVIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2R5bmFtaWMnXG5pbXBvcnQgeyBoYXNQcm9wZXJ0eSwgbm90TnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3V0aWxzJ1xuXG5pbXBvcnQgeyBEeW5hbWljRGF0YXRhYmxlUm93IH0gZnJvbSAnLi4vZGF0YXRhYmxlLWR5bmFtaWMtZGVmJ1xuaW1wb3J0IHsgRHluYW1pY0RhdGF0YWJsZVJvd0FjdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vZHluYW1pYy1kYXRhdGFibGUtcm93LWFjdGlvbnMuc2VydmljZSdcbmltcG9ydCB7IER5bmFtaWNEYXRhdGFibGVBY3Rpb25NZW51RWxlbWVudFR5cGVzLCBEeW5hbWljRGF0YXRhYmxlQWN0aW9uTWVudVJlY29yZCB9IGZyb20gJy4uL21vZGVscy9keW5hbWljLWRhdGF0YWJsZS1hY3Rpb24tbWVudS1yZWNvcmQnXG5pbXBvcnQgeyBEeW5hbWljRGF0YXRhYmxlUm93QWN0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2R5bmFtaWMtZGF0YXRhYmxlLXJvdy1hY3Rpb24nXG5pbXBvcnQgeyBEeW5hbWljRGF0YXRhYmxlUm93QWN0aW9uQ29udGV4dCB9IGZyb20gJy4uL21vZGVscy9keW5hbWljLWRhdGF0YWJsZS1yb3ctYWN0aW9uLWNvbnRleHQnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NlYW0tZGF0YXRhYmxlLWR5bmFtaWMtYWN0aW9uLW1lbnUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YXRhYmxlLWR5bmFtaWMtYWN0aW9uLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRhdGFibGUtZHluYW1pYy1hY3Rpb24tbWVudS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEYXRhdGFibGVEeW5hbWljQWN0aW9uTWVudUNvbXBvbmVudCB7XG5cbiAgZmFFbGxpcHNpc0ggPSBmYUVsbGlwc2lzSFxuXG4gIEBJbnB1dCgpXG4gIGdldCByb3coKSB7IHJldHVybiB0aGlzLl9yb3cudmFsdWUgfVxuICBzZXQgcm93KHZhbHVlOiBEeW5hbWljRGF0YXRhYmxlUm93IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fcm93Lm5leHQodmFsdWUgfHwgdW5kZWZpbmVkKVxuICB9XG4gIHByaXZhdGUgX3JvdyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RHluYW1pY0RhdGF0YWJsZVJvdyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuXG4gIEBJbnB1dCgpXG4gIGdldCBhY3Rpb25EZWZzKCkgeyByZXR1cm4gdGhpcy5fYWN0aW9uRGVmcy52YWx1ZSB9XG4gIHNldCBhY3Rpb25EZWZzKHZhbHVlOiBEeW5hbWljRGF0YXRhYmxlUm93QWN0aW9uW10pIHtcbiAgICB0aGlzLl9hY3Rpb25EZWZzLm5leHQodmFsdWUgfHwgW10pXG4gIH1cbiAgcHJpdmF0ZSBfYWN0aW9uRGVmcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RHluYW1pY0RhdGF0YWJsZVJvd0FjdGlvbltdPihbXSlcblxuICBfbWVudVJlY29yZHMkOiBPYnNlcnZhYmxlPER5bmFtaWNEYXRhdGFibGVBY3Rpb25NZW51UmVjb3JkW10+XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgX2FjdGlvbk1lbnVQb3NpdGlvbnMgPSBbXG4gICAge1xuICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgIH0sXG4gICAge1xuICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgIH0sXG4gICAge1xuICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgIH0sXG4gICAge1xuICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgIH0sXG4gIF1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF92YWx1ZUhlbHBlcjogRHluYW1pY1ZhbHVlSGVscGVyU2VydmljZSxcbiAgICBwcml2YXRlIF9keW5hbWljUm93QWN0aW9uczogRHluYW1pY0RhdGF0YWJsZVJvd0FjdGlvbnNTZXJ2aWNlXG4gICkge1xuICAgIC8vIHRoaXMuX21lbnVSZWNvcmRzJCA9IGNvbWJpbmVMYXRlc3QoWyB0aGlzLl9yb3csIHRoaXMuX2FjdGlvbkRlZnMgXSkucGlwZShcbiAgICAvLyAgIHN3aXRjaE1hcCgoWyByb3csIGFjdGlvbkRlZnMgXSkgPT4gISFyb3cgPyB0aGlzLl9tYXBSZWNvcmRzKHJvdywgYWN0aW9uRGVmcykgOiBvZihbXSkpXG4gICAgLy8gKVxuICAgIHRoaXMuX21lbnVSZWNvcmRzJCA9IHRoaXMuX3Jvdy5waXBlKFxuICAgICAgc3dpdGNoTWFwKHJvdyA9PiByb3dcbiAgICAgICAgPyB0aGlzLl9keW5hbWljUm93QWN0aW9ucy5yb3dBY3Rpb25zKHJvdykucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcChhY3Rpb25EZWZzID0+IHRoaXMuX21hcFJlY29yZHMocm93LCBhY3Rpb25EZWZzKSlcbiAgICAgICAgICApXG4gICAgICAgIDogb2YoW10pXG4gICAgICApLFxuICAgICAgLy8gdGFwKHYgPT4gY29uc29sZS5sb2coJ2FjdGlvbnMnLCB2KSlcbiAgICApXG5cbiAgICAvLyB0aGlzLl9tZW51UmVjb3JkcyQuc3Vic2NyaWJlKClcbiAgfVxuXG4gIC8vIFRPRE86IENvbnNpZGVyIG1vdmluZyB0aGlzIHRvIGBEeW5hbWljRGF0YXRhYmxlUm93QWN0aW9uc1NlcnZpY2VgLlxuICBwcml2YXRlIF9tYXBSZWNvcmRzPEEgZXh0ZW5kcyBEeW5hbWljRGF0YXRhYmxlUm93QWN0aW9uPihcbiAgICByb3c6IER5bmFtaWNEYXRhdGFibGVSb3csXG4gICAgYWN0aW9uRGVmczogQVtdXG4gICk6IE9ic2VydmFibGU8RHluYW1pY0RhdGF0YWJsZUFjdGlvbk1lbnVSZWNvcmRbXT4ge1xuICAgIHJldHVybiBmcm9tKGFjdGlvbkRlZnMpLnBpcGUoXG4gICAgICBjb25jYXRNYXAoYWN0aW9uRGVmID0+IHtcbiAgICAgICAgcmV0dXJuIChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgX3Jvd0FjdGlvbjogRHluYW1pY0RhdGF0YWJsZVJvd0FjdGlvbiA9IHtcbiAgICAgICAgICAgIC4uLmFjdGlvbkRlZlxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLl9nZXRSb3dBY3Rpb25Db250ZXh0KHJvdywgYWN0aW9uRGVmKVxuXG4gICAgICAgICAgaWYgKGhhc1Byb3BlcnR5KF9yb3dBY3Rpb24sICdoaWRkZW4nKSkge1xuICAgICAgICAgICAgX3Jvd0FjdGlvbi5oaWRkZW4gPSBhd2FpdCB0aGlzLl92YWx1ZUhlbHBlci5ldmFsKF9yb3dBY3Rpb24uaGlkZGVuLCBjb250ZXh0KVxuICAgICAgICAgICAgaWYgKF9yb3dBY3Rpb24uaGlkZGVuKSB7XG4gICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBfcm93QWN0aW9uLmxhYmVsID0gYXdhaXQgdGhpcy5fdmFsdWVIZWxwZXIuZXZhbChhY3Rpb25EZWYubGFiZWwsIGNvbnRleHQpXG5cbiAgICAgICAgICBpZiAoaGFzUHJvcGVydHkoX3Jvd0FjdGlvbiwgJ2Rpc2FibGVkJykpIHtcbiAgICAgICAgICAgIF9yb3dBY3Rpb24uZGlzYWJsZWQgPSBhd2FpdCB0aGlzLl92YWx1ZUhlbHBlci5ldmFsKF9yb3dBY3Rpb24uZGlzYWJsZWQsIGNvbnRleHQpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcmVjb3JkOiBEeW5hbWljRGF0YXRhYmxlQWN0aW9uTWVudVJlY29yZCA9IHtcbiAgICAgICAgICAgIF9yb3c6IHJvdyxcbiAgICAgICAgICAgIF9kZWY6IGFjdGlvbkRlZixcbiAgICAgICAgICAgIHJvd0FjdGlvbjogX3Jvd0FjdGlvbixcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiB0aGlzLl9leHBlY3RlZEVsZW1lbnRUeXBlKGFjdGlvbkRlZilcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gcmVjb3JkXG4gICAgICAgIH0pKClcbiAgICAgIH0pLFxuICAgICAgZmlsdGVyKG5vdE51bGxPclVuZGVmaW5lZCksXG4gICAgICB0b0FycmF5KClcbiAgICApXG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9nZXRSb3dBY3Rpb25Db250ZXh0KFxuICAgIHJvdzogRHluYW1pY0RhdGF0YWJsZVJvdyxcbiAgICByb3dBY3Rpb25EZWY6IER5bmFtaWNEYXRhdGFibGVSb3dBY3Rpb25cbiAgKTogRHluYW1pY0RhdGF0YWJsZVJvd0FjdGlvbkNvbnRleHQge1xuICAgIHJldHVybiB7XG4gICAgICByb3dcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9leHBlY3RlZEVsZW1lbnRUeXBlKGRlZjogRHluYW1pY0RhdGF0YWJsZVJvd0FjdGlvbik6IER5bmFtaWNEYXRhdGFibGVBY3Rpb25NZW51RWxlbWVudFR5cGVzIHtcbiAgICBjb25zdCBhY3Rpb24gPSBkZWYuYWN0aW9uXG5cbiAgICBpZiAoYWN0aW9uLnR5cGUgPT09ICdsaW5rJykge1xuICAgICAgaWYgKGhhc1Byb3BlcnR5KGFjdGlvbiBhcyBhbnksICdhc3NldCcpKSB7XG4gICAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgICAgfVxuICAgICAgcmV0dXJuICdhJ1xuICAgIH1cblxuICAgIHJldHVybiAnYnV0dG9uJ1xuICB9XG5cbn1cbiIsIjxzZWFtLW1lbnUgI21lbnVcbiAgbWVudUNsYXNzPVwibGlzdC1ncm91cCBweS0wIGJvcmRlci0wIHNlYW0tZGF0YXRhYmxlLWFjdGlvbi1tZW51XCJcbiAgYW5pbWF0aW9uVHlwZT1cImZhZGVcIj5cblxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCByZWNvcmQgb2YgX21lbnVSZWNvcmRzJCB8IGFzeW5jXCI+XG5cbiAgICA8YSAqbmdJZj1cInJlY29yZC5lbGVtZW50VHlwZSA9PT0gJ2EnXCJcbiAgICAgIHNlYW1NZW51SXRlbVxuICAgICAgW3NlYW1EYXRhdGFibGVEeW5hbWljQWN0aW9uTWVudUl0ZW1dPVwicmVjb3JkXCJcbiAgICAgIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtIGxpc3QtZ3JvdXAtaXRlbS1hY3Rpb24gcHktMVwiPnt7IHJlY29yZC5yb3dBY3Rpb24ubGFiZWwgfX08L2E+XG5cbiAgICA8YnV0dG9uICpuZ0lmPVwicmVjb3JkLmVsZW1lbnRUeXBlID09PSAnYnV0dG9uJ1wiXG4gICAgICBzZWFtTWVudUl0ZW1cbiAgICAgIFtzZWFtRGF0YXRhYmxlRHluYW1pY0FjdGlvbk1lbnVJdGVtXT1cInJlY29yZFwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtIGxpc3QtZ3JvdXAtaXRlbS1hY3Rpb24gcHktMVwiPnt7IHJlY29yZC5yb3dBY3Rpb24ubGFiZWwgfX08L2J1dHRvbj5cblxuICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cIihpdGVtLnJvdXRlckxpbmsgfHwgaXRlbS5ocmVmKSAmJiAhaXRlbS5jb25maXJtRGlhbG9nOyBlbHNlIG5vUm91dGVyTGlua1wiPlxuICAgICAgPGEgKm5nSWY9XCJpdGVtLmhyZWY7IGVsc2Ugbm9IcmVmXCJcbiAgICAgICAgc2VhbU1lbnVJdGVtXG4gICAgICAgIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtIGxpc3QtZ3JvdXAtaXRlbS1hY3Rpb24gcHktMVwiXG4gICAgICAgIFthdHRyLmhyZWZdPVwiaXRlbS5ocmVmXCJcbiAgICAgICAgW3RhcmdldF09XCJpdGVtLnRhcmdldFwiXG4gICAgICAgIChjbGljayk9XCJhY3RpdmF0ZUl0ZW0oJGV2ZW50LCBpdGVtKVwiPlxuICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICA8L2E+XG4gICAgICA8bmctdGVtcGxhdGUgI25vSHJlZj5cbiAgICAgICAgPGEgc2VhbU1lbnVJdGVtXG4gICAgICAgICAgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW0gbGlzdC1ncm91cC1pdGVtLWFjdGlvbiBweS0xXCJcbiAgICAgICAgICBbcXVlcnlQYXJhbXNdPVwiaXRlbS5xdWVyeVBhcmFtc1wiXG4gICAgICAgICAgW2ZyYWdtZW50XT1cIml0ZW0uZnJhZ21lbnRcIlxuICAgICAgICAgIFtxdWVyeVBhcmFtc0hhbmRsaW5nXT1cIml0ZW0ucXVlcnlQYXJhbXNIYW5kbGluZ1wiXG4gICAgICAgICAgW3ByZXNlcnZlRnJhZ21lbnRdPVwiaXRlbS5wcmVzZXJ2ZUZyYWdtZW50XCJcbiAgICAgICAgICBbc2tpcExvY2F0aW9uQ2hhbmdlXT1cIml0ZW0uc2tpcExvY2F0aW9uQ2hhbmdlXCJcbiAgICAgICAgICBbcmVwbGFjZVVybF09XCJpdGVtLnJlcGxhY2VVcmxcIlxuICAgICAgICAgIFtzdGF0ZV09XCJpdGVtLnN0YXRlXCJcbiAgICAgICAgICBbcm91dGVyTGlua109XCJpdGVtLnJvdXRlckxpbmtcIlxuICAgICAgICAgIFt0YXJnZXRdPVwiaXRlbS50YXJnZXRcIlxuICAgICAgICAgIChjbGljayk9XCJhY3RpdmF0ZUl0ZW0oJGV2ZW50LCBpdGVtKVwiPlxuICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfX1cbiAgICAgICAgPC9hPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI25vUm91dGVyTGluaz5cbiAgICAgIDxidXR0b24gc2VhbU1lbnVJdGVtXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbSBsaXN0LWdyb3VwLWl0ZW0tYWN0aW9uIHB5LTFcIlxuICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVJdGVtKCRldmVudCwgaXRlbSlcIj5cbiAgICAgICAge3sgaXRlbS5sYWJlbCB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy1jb250YWluZXI+IC0tPlxuPC9zZWFtLW1lbnU+XG5cbjxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZGF0YXRhYmxlLWFjdGlvbi1idXR0b24gYnRuXCJcbiAgW3NlYW1NZW51VG9nZ2xlXT1cIm1lbnVcIlxuICBbcG9zaXRpb25zXT1cIiRhbnkoX2FjdGlvbk1lbnVQb3NpdGlvbnMpXCJcbiAgdGl0bGU9XCJSb3cgQWN0aW9uc1wiPlxuICA8c2VhbS1pY29uIFtpY29uXT1cImZhRWxsaXBzaXNIXCI+PC9zZWFtLWljb24+XG48L2J1dHRvbj5cbiJdfQ==
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWR5bmFtaWMtYWN0aW9uLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2RhdGF0YWJsZS1keW5hbWljL2RhdGF0YWJsZS1keW5hbWljLWFjdGlvbi1tZW51L2RhdGF0YWJsZS1keW5hbWljLWFjdGlvbi1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9kYXRhdGFibGUtZHluYW1pYy9kYXRhdGFibGUtZHluYW1pYy1hY3Rpb24tbWVudS9kYXRhdGFibGUtZHluYW1pYy1hY3Rpb24tbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRXRFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUUvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7Ozs7Ozs7O0FBYzFFLE1BQU0sT0FBTyxtQ0FBbUM7SUFJOUMsSUFDSSxHQUFHLEtBQUssT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQSxDQUFDLENBQUM7SUFDcEMsSUFBSSxHQUFHLENBQUMsS0FBc0M7UUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQyxDQUFBO0lBQ3BDLENBQUM7SUFHRCxJQUNJLFVBQVUsS0FBSyxPQUFPLElBQUksQ0FBQyxXQUFX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LFVBQVUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUE7aUJBQ2pGO2dCQUVELE1BQU0sTUFBTSxHQUFxQztvQkFDL0MsSUFBSSxFQUFFLEdBQUc7b0JBQ1QsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsU0FBUyxFQUFFLFVBQVU7b0JBQ3JCLFdBQVcsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDO2lCQUNsRCxDQUFBO2dCQUVELE9BQU8sTUFBTSxDQUFBO1lBQ2YsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUNOLENBQUMsQ0FBQyxFQUNGLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxFQUMxQixPQUFPLEVBQUUsQ0FDVixDQUFBO0lBQ0gsQ0FBQztJQUVELGNBQWM7SUFDTixvQkFBb0IsQ0FDMUIsR0FBd0IsRUFDeEIsWUFBdUM7UUFFdkMsT0FBTztZQUNMLEdBQUc7U0FDSixDQUFBO0lBQ0gsQ0FBQztJQUVPLG9CQUFvQixDQUFDLEdBQThCO1FBQ3pELE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7UUFFekIsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUMxQixJQUFJLFdBQVcsQ0FBQyxNQUFhLEVBQUUsT0FBTyxDQUFDLEVBQUU7Z0JBQ3ZDLE9BQU8sUUFBUSxDQUFBO2FBQ2hCO1lBQ0QsT0FBTyxHQUFHLENBQUE7U0FDWDtRQUVELE9BQU8sUUFBUSxDQUFBO0lBQ2pCLENBQUM7O2lJQW5JVSxtQ0FBbUM7cUhBQW5DLG1DQUFtQyw0SENwQmhELDh0RUE4REE7NEZEMUNhLG1DQUFtQztrQkFOL0MsU0FBUzsrQkFDRSxvQ0FBb0MsbUJBRzdCLHVCQUF1QixDQUFDLE1BQU07Z0tBTzNDLEdBQUc7c0JBRE4sS0FBSztnQkFRRixVQUFVO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZyb20sIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGNvbmNhdE1hcCwgZmlsdGVyLCBzd2l0Y2hNYXAsIHRvQXJyYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgZmFFbGxpcHNpc0ggfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnXG5pbXBvcnQgeyBEeW5hbWljVmFsdWVIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2R5bmFtaWMnXG5pbXBvcnQgeyBoYXNQcm9wZXJ0eSwgbm90TnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3V0aWxzJ1xuXG5pbXBvcnQgeyBEeW5hbWljRGF0YXRhYmxlUm93IH0gZnJvbSAnLi4vZGF0YXRhYmxlLWR5bmFtaWMtZGVmJ1xuaW1wb3J0IHsgRHluYW1pY0RhdGF0YWJsZVJvd0FjdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vZHluYW1pYy1kYXRhdGFibGUtcm93LWFjdGlvbnMuc2VydmljZSdcbmltcG9ydCB7IER5bmFtaWNEYXRhdGFibGVBY3Rpb25NZW51RWxlbWVudFR5cGVzLCBEeW5hbWljRGF0YXRhYmxlQWN0aW9uTWVudVJlY29yZCB9IGZyb20gJy4uL21vZGVscy9keW5hbWljLWRhdGF0YWJsZS1hY3Rpb24tbWVudS1yZWNvcmQnXG5pbXBvcnQgeyBEeW5hbWljRGF0YXRhYmxlUm93QWN0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2R5bmFtaWMtZGF0YXRhYmxlLXJvdy1hY3Rpb24nXG5pbXBvcnQgeyBEeW5hbWljRGF0YXRhYmxlUm93QWN0aW9uQ29udGV4dCB9IGZyb20gJy4uL21vZGVscy9keW5hbWljLWRhdGF0YWJsZS1yb3ctYWN0aW9uLWNvbnRleHQnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NlYW0tZGF0YXRhYmxlLWR5bmFtaWMtYWN0aW9uLW1lbnUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YXRhYmxlLWR5bmFtaWMtYWN0aW9uLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRhdGFibGUtZHluYW1pYy1hY3Rpb24tbWVudS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEYXRhdGFibGVEeW5hbWljQWN0aW9uTWVudUNvbXBvbmVudCB7XG5cbiAgZmFFbGxpcHNpc0ggPSBmYUVsbGlwc2lzSFxuXG4gIEBJbnB1dCgpXG4gIGdldCByb3coKSB7IHJldHVybiB0aGlzLl9yb3cudmFsdWUgfVxuICBzZXQgcm93KHZhbHVlOiBEeW5hbWljRGF0YXRhYmxlUm93IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fcm93Lm5leHQodmFsdWUgfHwgdW5kZWZpbmVkKVxuICB9XG4gIHByaXZhdGUgX3JvdyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RHluYW1pY0RhdGF0YWJsZVJvdyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuXG4gIEBJbnB1dCgpXG4gIGdldCBhY3Rpb25EZWZzKCkgeyByZXR1cm4gdGhpcy5fYWN0aW9uRGVmcy52YWx1ZSB9XG4gIHNldCBhY3Rpb25EZWZzKHZhbHVlOiBEeW5hbWljRGF0YXRhYmxlUm93QWN0aW9uW10pIHtcbiAgICB0aGlzLl9hY3Rpb25EZWZzLm5leHQodmFsdWUgfHwgW10pXG4gIH1cbiAgcHJpdmF0ZSBfYWN0aW9uRGVmcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RHluYW1pY0RhdGF0YWJsZVJvd0FjdGlvbltdPihbXSlcblxuICBfbWVudVJlY29yZHMkOiBPYnNlcnZhYmxlPER5bmFtaWNEYXRhdGFibGVBY3Rpb25NZW51UmVjb3JkW10+XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgX2FjdGlvbk1lbnVQb3NpdGlvbnMgPSBbXG4gICAge1xuICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgIH0sXG4gICAge1xuICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgIH0sXG4gICAge1xuICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgIH0sXG4gICAge1xuICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgIH0sXG4gIF1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF92YWx1ZUhlbHBlcjogRHluYW1pY1ZhbHVlSGVscGVyU2VydmljZSxcbiAgICBwcml2YXRlIF9keW5hbWljUm93QWN0aW9uczogRHluYW1pY0RhdGF0YWJsZVJvd0FjdGlvbnNTZXJ2aWNlXG4gICkge1xuICAgIC8vIHRoaXMuX21lbnVSZWNvcmRzJCA9IGNvbWJpbmVMYXRlc3QoWyB0aGlzLl9yb3csIHRoaXMuX2FjdGlvbkRlZnMgXSkucGlwZShcbiAgICAvLyAgIHN3aXRjaE1hcCgoWyByb3csIGFjdGlvbkRlZnMgXSkgPT4gISFyb3cgPyB0aGlzLl9tYXBSZWNvcmRzKHJvdywgYWN0aW9uRGVmcykgOiBvZihbXSkpXG4gICAgLy8gKVxuICAgIHRoaXMuX21lbnVSZWNvcmRzJCA9IHRoaXMuX3Jvdy5waXBlKFxuICAgICAgc3dpdGNoTWFwKHJvdyA9PiByb3dcbiAgICAgICAgPyB0aGlzLl9keW5hbWljUm93QWN0aW9ucy5yb3dBY3Rpb25zKHJvdykucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcChhY3Rpb25EZWZzID0+IHRoaXMuX21hcFJlY29yZHMocm93LCBhY3Rpb25EZWZzKSlcbiAgICAgICAgICApXG4gICAgICAgIDogb2YoW10pXG4gICAgICApLFxuICAgICAgLy8gdGFwKHYgPT4gY29uc29sZS5sb2coJ2FjdGlvbnMnLCB2KSlcbiAgICApXG5cbiAgICAvLyB0aGlzLl9tZW51UmVjb3JkcyQuc3Vic2NyaWJlKClcbiAgfVxuXG4gIC8vIFRPRE86IENvbnNpZGVyIG1vdmluZyB0aGlzIHRvIGBEeW5hbWljRGF0YXRhYmxlUm93QWN0aW9uc1NlcnZpY2VgLlxuICBwcml2YXRlIF9tYXBSZWNvcmRzPEEgZXh0ZW5kcyBEeW5hbWljRGF0YXRhYmxlUm93QWN0aW9uPihcbiAgICByb3c6IER5bmFtaWNEYXRhdGFibGVSb3csXG4gICAgYWN0aW9uRGVmczogQVtdXG4gICk6IE9ic2VydmFibGU8RHluYW1pY0RhdGF0YWJsZUFjdGlvbk1lbnVSZWNvcmRbXT4ge1xuICAgIHJldHVybiBmcm9tKGFjdGlvbkRlZnMpLnBpcGUoXG4gICAgICBjb25jYXRNYXAoYWN0aW9uRGVmID0+IHtcbiAgICAgICAgcmV0dXJuIChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgX3Jvd0FjdGlvbjogRHluYW1pY0RhdGF0YWJsZVJvd0FjdGlvbiA9IHtcbiAgICAgICAgICAgIC4uLmFjdGlvbkRlZlxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLl9nZXRSb3dBY3Rpb25Db250ZXh0KHJvdywgYWN0aW9uRGVmKVxuXG4gICAgICAgICAgaWYgKGhhc1Byb3BlcnR5KF9yb3dBY3Rpb24sICdoaWRkZW4nKSkge1xuICAgICAgICAgICAgX3Jvd0FjdGlvbi5oaWRkZW4gPSBhd2FpdCB0aGlzLl92YWx1ZUhlbHBlci5ldmFsKF9yb3dBY3Rpb24uaGlkZGVuLCBjb250ZXh0KVxuICAgICAgICAgICAgaWYgKF9yb3dBY3Rpb24uaGlkZGVuKSB7XG4gICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBfcm93QWN0aW9uLmxhYmVsID0gYXdhaXQgdGhpcy5fdmFsdWVIZWxwZXIuZXZhbChhY3Rpb25EZWYubGFiZWwsIGNvbnRleHQpXG5cbiAgICAgICAgICBpZiAoaGFzUHJvcGVydHkoX3Jvd0FjdGlvbiwgJ2Rpc2FibGVkJykpIHtcbiAgICAgICAgICAgIF9yb3dBY3Rpb24uZGlzYWJsZWQgPSBhd2FpdCB0aGlzLl92YWx1ZUhlbHBlci5ldmFsKF9yb3dBY3Rpb24uZGlzYWJsZWQsIGNvbnRleHQpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcmVjb3JkOiBEeW5hbWljRGF0YXRhYmxlQWN0aW9uTWVudVJlY29yZCA9IHtcbiAgICAgICAgICAgIF9yb3c6IHJvdyxcbiAgICAgICAgICAgIF9kZWY6IGFjdGlvbkRlZixcbiAgICAgICAgICAgIHJvd0FjdGlvbjogX3Jvd0FjdGlvbixcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiB0aGlzLl9leHBlY3RlZEVsZW1lbnRUeXBlKGFjdGlvbkRlZilcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gcmVjb3JkXG4gICAgICAgIH0pKClcbiAgICAgIH0pLFxuICAgICAgZmlsdGVyKG5vdE51bGxPclVuZGVmaW5lZCksXG4gICAgICB0b0FycmF5KClcbiAgICApXG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9nZXRSb3dBY3Rpb25Db250ZXh0KFxuICAgIHJvdzogRHluYW1pY0RhdGF0YWJsZVJvdyxcbiAgICByb3dBY3Rpb25EZWY6IER5bmFtaWNEYXRhdGFibGVSb3dBY3Rpb25cbiAgKTogRHluYW1pY0RhdGF0YWJsZVJvd0FjdGlvbkNvbnRleHQge1xuICAgIHJldHVybiB7XG4gICAgICByb3dcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9leHBlY3RlZEVsZW1lbnRUeXBlKGRlZjogRHluYW1pY0RhdGF0YWJsZVJvd0FjdGlvbik6IER5bmFtaWNEYXRhdGFibGVBY3Rpb25NZW51RWxlbWVudFR5cGVzIHtcbiAgICBjb25zdCBhY3Rpb24gPSBkZWYuYWN0aW9uXG5cbiAgICBpZiAoYWN0aW9uLnR5cGUgPT09ICdsaW5rJykge1xuICAgICAgaWYgKGhhc1Byb3BlcnR5KGFjdGlvbiBhcyBhbnksICdhc3NldCcpKSB7XG4gICAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgICAgfVxuICAgICAgcmV0dXJuICdhJ1xuICAgIH1cblxuICAgIHJldHVybiAnYnV0dG9uJ1xuICB9XG5cbn1cbiIsIjxzZWFtLW1lbnUgI21lbnVcbiAgbWVudUNsYXNzPVwibGlzdC1ncm91cCBweS0wIGJvcmRlci0wIHNlYW0tZGF0YXRhYmxlLWFjdGlvbi1tZW51XCJcbiAgYW5pbWF0aW9uVHlwZT1cImZhZGVcIj5cblxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCByZWNvcmQgb2YgX21lbnVSZWNvcmRzJCB8IGFzeW5jXCI+XG5cbiAgICA8YSAqbmdJZj1cInJlY29yZC5lbGVtZW50VHlwZSA9PT0gJ2EnXCJcbiAgICAgIHNlYW1NZW51SXRlbVxuICAgICAgW3NlYW1EYXRhdGFibGVEeW5hbWljQWN0aW9uTWVudUl0ZW1dPVwicmVjb3JkXCJcbiAgICAgIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtIGxpc3QtZ3JvdXAtaXRlbS1hY3Rpb24gcHktMVwiPnt7IHJlY29yZC5yb3dBY3Rpb24ubGFiZWwgfX08L2E+XG5cbiAgICA8YnV0dG9uICpuZ0lmPVwicmVjb3JkLmVsZW1lbnRUeXBlID09PSAnYnV0dG9uJ1wiXG4gICAgICBzZWFtTWVudUl0ZW1cbiAgICAgIFtzZWFtRGF0YXRhYmxlRHluYW1pY0FjdGlvbk1lbnVJdGVtXT1cInJlY29yZFwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtIGxpc3QtZ3JvdXAtaXRlbS1hY3Rpb24gcHktMVwiPnt7IHJlY29yZC5yb3dBY3Rpb24ubGFiZWwgfX08L2J1dHRvbj5cblxuICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cIihpdGVtLnJvdXRlckxpbmsgfHwgaXRlbS5ocmVmKSAmJiAhaXRlbS5jb25maXJtRGlhbG9nOyBlbHNlIG5vUm91dGVyTGlua1wiPlxuICAgICAgPGEgKm5nSWY9XCJpdGVtLmhyZWY7IGVsc2Ugbm9IcmVmXCJcbiAgICAgICAgc2VhbU1lbnVJdGVtXG4gICAgICAgIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtIGxpc3QtZ3JvdXAtaXRlbS1hY3Rpb24gcHktMVwiXG4gICAgICAgIFthdHRyLmhyZWZdPVwiaXRlbS5ocmVmXCJcbiAgICAgICAgW3RhcmdldF09XCJpdGVtLnRhcmdldFwiXG4gICAgICAgIChjbGljayk9XCJhY3RpdmF0ZUl0ZW0oJGV2ZW50LCBpdGVtKVwiPlxuICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICA8L2E+XG4gICAgICA8bmctdGVtcGxhdGUgI25vSHJlZj5cbiAgICAgICAgPGEgc2VhbU1lbnVJdGVtXG4gICAgICAgICAgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW0gbGlzdC1ncm91cC1pdGVtLWFjdGlvbiBweS0xXCJcbiAgICAgICAgICBbcXVlcnlQYXJhbXNdPVwiaXRlbS5xdWVyeVBhcmFtc1wiXG4gICAgICAgICAgW2ZyYWdtZW50XT1cIml0ZW0uZnJhZ21lbnRcIlxuICAgICAgICAgIFtxdWVyeVBhcmFtc0hhbmRsaW5nXT1cIml0ZW0ucXVlcnlQYXJhbXNIYW5kbGluZ1wiXG4gICAgICAgICAgW3ByZXNlcnZlRnJhZ21lbnRdPVwiaXRlbS5wcmVzZXJ2ZUZyYWdtZW50XCJcbiAgICAgICAgICBbc2tpcExvY2F0aW9uQ2hhbmdlXT1cIml0ZW0uc2tpcExvY2F0aW9uQ2hhbmdlXCJcbiAgICAgICAgICBbcmVwbGFjZVVybF09XCJpdGVtLnJlcGxhY2VVcmxcIlxuICAgICAgICAgIFtzdGF0ZV09XCJpdGVtLnN0YXRlXCJcbiAgICAgICAgICBbcm91dGVyTGlua109XCJpdGVtLnJvdXRlckxpbmtcIlxuICAgICAgICAgIFt0YXJnZXRdPVwiaXRlbS50YXJnZXRcIlxuICAgICAgICAgIChjbGljayk9XCJhY3RpdmF0ZUl0ZW0oJGV2ZW50LCBpdGVtKVwiPlxuICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfX1cbiAgICAgICAgPC9hPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI25vUm91dGVyTGluaz5cbiAgICAgIDxidXR0b24gc2VhbU1lbnVJdGVtXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbSBsaXN0LWdyb3VwLWl0ZW0tYWN0aW9uIHB5LTFcIlxuICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVJdGVtKCRldmVudCwgaXRlbSlcIj5cbiAgICAgICAge3sgaXRlbS5sYWJlbCB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy1jb250YWluZXI+IC0tPlxuPC9zZWFtLW1lbnU+XG5cbjxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZGF0YXRhYmxlLWFjdGlvbi1idXR0b24gYnRuXCJcbiAgW3NlYW1NZW51VG9nZ2xlXT1cIm1lbnVcIlxuICBbcG9zaXRpb25zXT1cIiRhbnkoX2FjdGlvbk1lbnVQb3NpdGlvbnMpXCJcbiAgdGl0bGU9XCJSb3cgQWN0aW9uc1wiPlxuICA8c2VhbS1pY29uIFtpY29uXT1cImZhRWxsaXBzaXNIXCI+PC9zZWFtLWljb24+XG48L2J1dHRvbj5cbiJdfQ==