@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
@@ -1,15 +1,23 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { animate, animateChild, group, query, state, style, transition, trigger } from '@angular/animations';
3
3
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
4
- import { TemplatePortal } from '@angular/cdk/portal';
5
- import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, forwardRef, HostBinding, Inject, Input, Optional, Output, TemplateRef, ViewEncapsulation, } from '@angular/core';
4
+ import { PortalModule, TemplatePortal } from '@angular/cdk/portal';
5
+ import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, HostBinding, Inject, Input, Optional, Output, TemplateRef, ViewEncapsulation, } from '@angular/core';
6
+ import { CommonModule } from '@angular/common';
7
+ import { A11yModule } from '@angular/cdk/a11y';
6
8
  import { BehaviorSubject, combineLatest, Subject } from 'rxjs';
7
9
  import { distinctUntilChanged, map, shareReplay, switchMap, takeUntil, tap } from 'rxjs/operators';
8
- import { InputBoolean } from '@theseam/ui-common/core';
10
+ import { faBars } from '@fortawesome/free-solid-svg-icons';
11
+ import { InputBoolean, InputNumber } from '@theseam/ui-common/core';
12
+ import { TheSeamLayoutModule } from '@theseam/ui-common/layout';
13
+ import { TheSeamScrollbarModule } from '@theseam/ui-common/scrollbar';
9
14
  import { THESEAM_BASE_LAYOUT_REF } from '../base-layout/index';
10
15
  import { BaseLayoutSideBarFooterDirective } from '../base-layout/directives/base-layout-side-bar-footer.directive';
16
+ import { BaseLayoutSideBarHeaderDirective } from '../base-layout/directives/base-layout-side-bar-header.directive';
11
17
  import { DEFAULT_SIDE_NAV_CONFIG, THESEAM_SIDE_NAV_ACCESSOR, THESEAM_SIDE_NAV_CONFIG } from './side-nav-tokens';
12
18
  import { TheSeamSideNavService } from './side-nav.service';
19
+ import { SideNavToggleComponent } from './side-nav-toggle/side-nav-toggle.component';
20
+ import { SideNavItemComponent } from './side-nav-item/side-nav-item.component';
13
21
  import { applyItemConfig } from './side-nav-utils';
14
22
  import * as i0 from "@angular/core";
15
23
  import * as i1 from "@theseam/ui-common/layout";
@@ -17,8 +25,6 @@ import * as i2 from "./side-nav.service";
17
25
  import * as i3 from "@angular/common";
18
26
  import * as i4 from "@theseam/ui-common/scrollbar";
19
27
  import * as i5 from "@angular/cdk/portal";
20
- import * as i6 from "./side-nav-item/side-nav-item.component";
21
- import * as i7 from "./side-nav-toggle/side-nav-toggle.component";
22
28
  const EXPANDED_STATE = 'expanded';
23
29
  const COLLAPSED_STATE = 'collapsed';
24
30
  const EXPANDED_OVERLAY_STATE = 'expanded-overlay';
@@ -75,14 +81,20 @@ export class SideNavComponent {
75
81
  this._config = _config;
76
82
  this._baseLayoutRef = _baseLayoutRef;
77
83
  this._ngUnsubscribe = new Subject();
84
+ this.faBars = faBars;
78
85
  // @HostBinding('@sideNavExpand') _sideNavExpand = EXPANDED_STATE
79
86
  // _sideNavExpand = EXPANDED_STATE
80
87
  // @HostBinding('@sideNavAnim') _sideNavExpand = EXPANDED_STATE
81
88
  this._sideNavExpand = 'initial';
82
89
  this.hasHeaderToggle = true;
90
+ this.toggleIcon = faBars;
83
91
  this._items = new BehaviorSubject([]);
92
+ this.indentSize = 10;
84
93
  this._expanded = new BehaviorSubject(true);
85
94
  this.expanded$ = this._expanded.asObservable();
95
+ this.expandOrigin = 'left';
96
+ this.expandHeight = '100%';
97
+ this.expandWidth = 'calc(100vw - 50px)';
86
98
  this._overlay = new BehaviorSubject(false);
87
99
  this.overlay$ = this._overlay.asObservable();
88
100
  this._menuItemTooltipConfig = {
@@ -121,6 +133,9 @@ export class SideNavComponent {
121
133
  this.sideNavExpandedState$
122
134
  .pipe(takeUntil(this._ngUnsubscribe))
123
135
  .subscribe(v => this._sideNavExpand = v);
136
+ if (this._sideBarHeaderTpl) {
137
+ this._sideBarHeaderPortal = new TemplatePortal(this._sideBarHeaderTpl, this._viewContainerRef);
138
+ }
124
139
  if (this._sideBarFooterTpl) {
125
140
  this._sideBarFooterPortal = new TemplatePortal(this._sideBarFooterTpl, this._viewContainerRef);
126
141
  }
@@ -151,16 +166,32 @@ export class SideNavComponent {
151
166
  this._backdropHidden.next(true);
152
167
  }
153
168
  }
169
+ get expandOriginTransform() {
170
+ switch (this.expandOrigin) {
171
+ case 'right':
172
+ return this._sideNavExpand === EXPANDED_OVERLAY_STATE ? 'translateX(100vw) translateX(-100%)'
173
+ : this._sideNavExpand === COLLAPSED_OVERLAY_STATE ? 'translateX(100vw)' : null;
174
+ case 'top':
175
+ return this._sideNavExpand === EXPANDED_OVERLAY_STATE ? 'translateY(0)'
176
+ : this._sideNavExpand === COLLAPSED_OVERLAY_STATE ? 'translateY(-100%)' : null;
177
+ case 'bottom':
178
+ return this._sideNavExpand === EXPANDED_OVERLAY_STATE ? 'translateY(100vh) translateY(-100%)'
179
+ : this._sideNavExpand === COLLAPSED_OVERLAY_STATE ? 'translateY(100vh)' : null;
180
+ case 'left':
181
+ default:
182
+ return this._sideNavExpand === EXPANDED_OVERLAY_STATE ? 'translateX(0)'
183
+ : this._sideNavExpand === COLLAPSED_OVERLAY_STATE ? 'translateX(-100%)' : null;
184
+ }
185
+ }
154
186
  }
155
- SideNavComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SideNavComponent, deps: [{ token: i0.ViewContainerRef }, { token: i1.TheSeamLayoutService }, { token: i2.TheSeamSideNavService }, { token: THESEAM_SIDE_NAV_CONFIG, optional: true }, { token: THESEAM_BASE_LAYOUT_REF, optional: true }], target: i0.ɵɵFactoryTarget.Component });
156
- SideNavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: SideNavComponent, selector: "seam-side-nav", inputs: { hasHeaderToggle: "hasHeaderToggle", items: "items", expanded: "expanded", overlay: "overlay", menuItemTooltipConfig: "menuItemTooltipConfig" }, outputs: { toggleExpand: "toggleExpand" }, host: { properties: { "@sideNavAnim": "this._sideNavExpand" } }, providers: [
187
+ SideNavComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SideNavComponent, deps: [{ token: i0.ViewContainerRef }, { token: i1.TheSeamLayoutService }, { token: i2.TheSeamSideNavService }, { token: THESEAM_SIDE_NAV_CONFIG, optional: true }, { token: THESEAM_BASE_LAYOUT_REF, optional: true }], target: i0.ɵɵFactoryTarget.Component });
188
+ SideNavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SideNavComponent, isStandalone: true, selector: "seam-side-nav", inputs: { hasHeaderToggle: "hasHeaderToggle", toggleIcon: "toggleIcon", toggleTpl: "toggleTpl", items: "items", hideEmptyIcon: "hideEmptyIcon", indentSize: "indentSize", expanded: "expanded", expandOrigin: "expandOrigin", expandHeight: "expandHeight", expandWidth: "expandWidth", overlay: "overlay", menuItemTooltipConfig: "menuItemTooltipConfig" }, outputs: { toggleExpand: "toggleExpand" }, host: { properties: { "@sideNavAnim": "this._sideNavExpand" } }, providers: [
157
189
  TheSeamSideNavService,
158
190
  {
159
191
  provide: THESEAM_SIDE_NAV_ACCESSOR,
160
- // tslint:disable-next-line:no-use-before-declare
161
- useExisting: forwardRef(() => SideNavComponent)
192
+ useExisting: SideNavComponent
162
193
  },
163
- ], queries: [{ propertyName: "_sideBarFooterTpl", first: true, predicate: BaseLayoutSideBarFooterDirective, descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<div class=\"side-nav-backdrop\" *ngIf=\"isMobile$ | async\"\n [@sideNavBackdrop]=\"_sideNavExpand\"\n [class.side-nav-backdrop-hidden]=\"_backdropHidden | async\"></div>\n\n<div class=\"side-nav-inner-wrapper\" [@sideNavExpand]=\"_sideNavExpand\"\n (@sideNavExpand.start)=\"animateStart()\"\n (@sideNavExpand.done)=\"animateEnd()\">\n <nav class=\"nav side-nav-content\">\n <seam-side-nav-toggle *ngIf=\"hasHeaderToggle\"\n [expanded]=\"expanded$ | async\"\n (toggleExpand)=\"toggle()\">\n </seam-side-nav-toggle>\n <div class=\"side-nav-items-container\" seamOverlayScrollbar>\n <seam-side-nav-item *ngFor=\"let item of items$ | async\"\n [compact]=\"!(expanded$ | async)\"\n [isMobile]=\"isMobile$ | async\"\n [itemType]=\"$any(item)?.itemType\"\n [icon]=\"$any(item)?.icon\"\n [label]=\"$any(item)?.label\"\n [link]=\"$any(item)?.link\"\n [badgeText]=\"$any(item)?.badge?.text\"\n [badgeTheme]=\"$any(item)?.badge?.theme || 'danger'\"\n [badgeSrContent]=\"$any(item)?.badge?.srContent\"\n [badgeTooltip]=\"$any(item)?.badge?.tooltip\"\n [queryParams]=\"$any(item)?.queryParams\"\n [children]=\"$any(item)?.children\"\n [active]=\"$any(item).__state.active\"\n [expanded]=\"$any(item).__state.expanded\"\n [menuItemTooltipConfig]=\"menuItemTooltipConfig\"\n [menuItemTooltipDisabled]=\"menuItemTooltipDisabled$ | async\"\n [activeNavigatable]=\"$any(item).activeNavigatable\">\n </seam-side-nav-item>\n </div>\n <ng-template [cdkPortalOutlet]=\"_sideBarFooterPortal\"></ng-template>\n </nav>\n</div>\n", styles: ["seam-side-nav,.seam-side-nav{display:block;height:100%;position:relative;z-index:2;overflow:hidden}seam-side-nav .side-nav-inner-wrapper,.seam-side-nav .side-nav-inner-wrapper{background:#357ebd;height:100%}seam-side-nav .side-nav-backdrop,.seam-side-nav .side-nav-backdrop{background:rgba(52,58,64,.6);width:100vw;height:100vh}seam-side-nav .side-nav-backdrop.side-nav-backdrop-hidden,.seam-side-nav .side-nav-backdrop.side-nav-backdrop-hidden{display:none;width:0;height:0;padding:0;margin:0}seam-side-nav .side-nav-content,.seam-side-nav .side-nav-content{display:flex;flex-direction:column;height:100%;flex-wrap:nowrap}seam-side-nav .side-nav-items-container,.seam-side-nav .side-nav-items-container{display:flex;flex-direction:column;width:100%;flex:1 1 100%}\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: "directive", type: i4.OverlayScrollbarDirective, selector: "[seamOverlayScrollbar]", inputs: ["seamOverlayScrollbar", "overlayScrollbarEnabled"], exportAs: ["seamOverlayScrollbar"] }, { kind: "directive", type: i5.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i6.SideNavItemComponent, selector: "seam-side-nav-item", inputs: ["itemType", "icon", "label", "active", "activeNavigatable", "link", "queryParams", "children", "hierLevel", "indentSize", "expanded", "compact", "isMobile", "badgeText", "badgeTheme", "badgeSrContent", "badgeTooltip", "menuItemTooltipConfig", "menuItemTooltipDisabled"], exportAs: ["seamSideNavItem"] }, { kind: "component", type: i7.SideNavToggleComponent, selector: "seam-side-nav-toggle", inputs: ["expanded"], outputs: ["toggleExpand"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], animations: [
194
+ ], queries: [{ propertyName: "_sideBarHeaderTpl", first: true, predicate: BaseLayoutSideBarHeaderDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "_sideBarFooterTpl", first: true, predicate: BaseLayoutSideBarFooterDirective, descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<div class=\"side-nav-backdrop\" *ngIf=\"isMobile$ | async\"\r\n [@sideNavBackdrop]=\"_sideNavExpand\"\r\n [class.side-nav-backdrop-hidden]=\"_backdropHidden | async\"\r\n (click)=\"collapse()\"></div>\r\n\r\n<div\r\n class=\"side-nav-inner-wrapper\"\r\n [@sideNavExpand]=\"{\r\n value: _sideNavExpand,\r\n params: {\r\n origin: expandOriginTransform,\r\n height: expandHeight,\r\n width: expandWidth\r\n }\r\n }\"\r\n (@sideNavExpand.start)=\"animateStart()\"\r\n (@sideNavExpand.done)=\"animateEnd()\">\r\n <nav class=\"nav side-nav-content\">\r\n <seam-side-nav-toggle *ngIf=\"hasHeaderToggle\"\r\n [toggleIcon]=\"toggleIcon\"\r\n [toggleTpl]=\"toggleTpl\"\r\n [expanded]=\"expanded$ | async\"\r\n (toggleExpand)=\"toggle()\">\r\n <ng-template [cdkPortalOutlet]=\"_sideBarHeaderPortal\"></ng-template>\r\n </seam-side-nav-toggle>\r\n <div class=\"side-nav-items-container\" seamOverlayScrollbar>\r\n <div class=\"side-nav--group side-nav--group--level-0\">\r\n <seam-side-nav-item *ngFor=\"let item of items$ | async\"\r\n [compact]=\"!(expanded$ | async)\"\r\n [isMobile]=\"isMobile$ | async\"\r\n [itemType]=\"$any(item)?.itemType\"\r\n [icon]=\"$any(item)?.icon\"\r\n [label]=\"$any(item)?.label\"\r\n [link]=\"$any(item)?.link\"\r\n [badgeText]=\"$any(item)?.badge?.text\"\r\n [badgeTheme]=\"$any(item)?.badge?.theme || 'danger'\"\r\n [badgeSrContent]=\"$any(item)?.badge?.srContent\"\r\n [badgeTooltip]=\"$any(item)?.badge?.tooltip\"\r\n [queryParams]=\"$any(item)?.queryParams\"\r\n [children]=\"$any(item)?.children\"\r\n [active]=\"$any(item).__state?.active\"\r\n [expanded]=\"$any(item).__state?.expanded\"\r\n [hideEmptyIcon]=\"hideEmptyIcon\"\r\n [indentSize]=\"indentSize\"\r\n [menuItemTooltipConfig]=\"menuItemTooltipConfig\"\r\n [menuItemTooltipDisabled]=\"menuItemTooltipDisabled$ | async\">\r\n [activeNavigatable]=\"$any(item).activeNavigatable\">\r\n </seam-side-nav-item>\r\n </div>\r\n </div>\r\n <ng-template [cdkPortalOutlet]=\"_sideBarFooterPortal\"></ng-template>\r\n </nav>\r\n</div>\r\n", styles: ["seam-side-nav,.seam-side-nav{display:block;height:100%;position:relative;z-index:2;overflow:hidden}seam-side-nav .side-nav-inner-wrapper,.seam-side-nav .side-nav-inner-wrapper{background:#357ebd;height:100%}seam-side-nav .side-nav-backdrop,.seam-side-nav .side-nav-backdrop{background:rgba(52,58,64,.6);width:100vw;height:100vh}seam-side-nav .side-nav-backdrop.side-nav-backdrop-hidden,.seam-side-nav .side-nav-backdrop.side-nav-backdrop-hidden{display:none;width:0;height:0;padding:0;margin:0}seam-side-nav .side-nav-content,.seam-side-nav .side-nav-content{display:flex;flex-direction:column;height:100%;flex-wrap:nowrap}seam-side-nav .side-nav-items-container,.seam-side-nav .side-nav-items-container{display:flex;flex-direction:column;width:100%;flex:1 1 100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: A11yModule }, { kind: "ngmodule", type: TheSeamScrollbarModule }, { kind: "directive", type: i4.OverlayScrollbarDirective, selector: "[seamOverlayScrollbar]", inputs: ["seamOverlayScrollbar", "overlayScrollbarEnabled"], exportAs: ["seamOverlayScrollbar"] }, { kind: "ngmodule", type: TheSeamLayoutModule }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i5.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: SideNavItemComponent, selector: "seam-side-nav-item", inputs: ["itemType", "icon", "hideEmptyIcon", "label", "active", "activeNavigatable", "link", "queryParams", "children", "hierLevel", "indentSize", "expanded", "compact", "isMobile", "badgeText", "badgeTheme", "badgeSrContent", "badgeTooltip", "menuItemTooltipConfig", "menuItemTooltipDisabled"], exportAs: ["seamSideNavItem"] }, { kind: "component", type: SideNavToggleComponent, selector: "seam-side-nav-toggle", inputs: ["expanded", "toggleIcon", "toggleTpl"], outputs: ["toggleExpand"] }], animations: [
164
195
  //
165
196
  // TODO: This animation code turned into a mess. Clean it up and make it
166
197
  // more smooth.
@@ -183,32 +214,42 @@ SideNavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", versi
183
214
  transition(sideNavExpandStateChangeFn, animate('0.2s ease-in-out')),
184
215
  ]),
185
216
  trigger('sideNavExpand', [
186
- // TODO: Make width configurable.
217
+ // TODO: Make width configurable for non-overlay state.
187
218
  state(EXPANDED_STATE, style({ width: '260px' })),
188
219
  state(COLLAPSED_STATE, style({ width: '50px', 'overflow-x': 'hidden' })),
189
220
  state(EXPANDED_OVERLAY_STATE, style({
190
221
  position: 'absolute',
191
222
  top: 0,
192
- height: '100%',
193
223
  bottom: 0,
194
224
  left: 0,
195
- float: 'left',
225
+ height: '{{ height }}',
226
+ width: '{{ width }}',
227
+ transform: '{{ origin }}',
196
228
  zIndex: '9999',
197
- width: 'calc(100vw - 50px)',
198
- transform: 'translateX(0)'
199
- })),
229
+ }), {
230
+ params: {
231
+ origin: 'translateX(100%)',
232
+ height: '100%',
233
+ width: 'calc(100vw - 50px)',
234
+ }
235
+ }),
200
236
  state(COLLAPSED_OVERLAY_STATE, style({
201
237
  position: 'absolute',
202
238
  top: 0,
203
- height: '100%',
204
239
  bottom: 0,
205
240
  left: 0,
206
- float: 'left',
241
+ height: '{{ height }}',
242
+ width: '{{ width }}',
243
+ transform: '{{ origin }}',
244
+ 'overflow-x': 'hidden',
207
245
  zIndex: '9999',
208
- width: 'calc(100vw - 50px)',
209
- transform: 'translateX(calc(-100vw + 50px))',
210
- 'overflow-x': 'hidden'
211
- })),
246
+ }), {
247
+ params: {
248
+ origin: 'translateX(0)',
249
+ height: '100%',
250
+ width: 'calc(100vw - 50px)',
251
+ }
252
+ }),
212
253
  // transition(`${EXPANDED_STATE} <=> ${COLLAPSED_STATE}`, animate('0.2s ease-in-out')),
213
254
  transition(sideNavExpandStateChangeFn, animate('0.2s ease-in-out')),
214
255
  // transition(`${EXPANDED_STATE} <=> ${COLLAPSED_STATE}`, [
@@ -226,14 +267,16 @@ SideNavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", versi
226
267
  __decorate([
227
268
  InputBoolean()
228
269
  ], SideNavComponent.prototype, "hasHeaderToggle", void 0);
229
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SideNavComponent, decorators: [{
270
+ __decorate([
271
+ InputNumber(10)
272
+ ], SideNavComponent.prototype, "indentSize", void 0);
273
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SideNavComponent, decorators: [{
230
274
  type: Component,
231
275
  args: [{ selector: 'seam-side-nav', providers: [
232
276
  TheSeamSideNavService,
233
277
  {
234
278
  provide: THESEAM_SIDE_NAV_ACCESSOR,
235
- // tslint:disable-next-line:no-use-before-declare
236
- useExisting: forwardRef(() => SideNavComponent)
279
+ useExisting: SideNavComponent
237
280
  },
238
281
  ], animations: [
239
282
  //
@@ -258,32 +301,42 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
258
301
  transition(sideNavExpandStateChangeFn, animate('0.2s ease-in-out')),
259
302
  ]),
260
303
  trigger('sideNavExpand', [
261
- // TODO: Make width configurable.
304
+ // TODO: Make width configurable for non-overlay state.
262
305
  state(EXPANDED_STATE, style({ width: '260px' })),
263
306
  state(COLLAPSED_STATE, style({ width: '50px', 'overflow-x': 'hidden' })),
264
307
  state(EXPANDED_OVERLAY_STATE, style({
265
308
  position: 'absolute',
266
309
  top: 0,
267
- height: '100%',
268
310
  bottom: 0,
269
311
  left: 0,
270
- float: 'left',
312
+ height: '{{ height }}',
313
+ width: '{{ width }}',
314
+ transform: '{{ origin }}',
271
315
  zIndex: '9999',
272
- width: 'calc(100vw - 50px)',
273
- transform: 'translateX(0)'
274
- })),
316
+ }), {
317
+ params: {
318
+ origin: 'translateX(100%)',
319
+ height: '100%',
320
+ width: 'calc(100vw - 50px)',
321
+ }
322
+ }),
275
323
  state(COLLAPSED_OVERLAY_STATE, style({
276
324
  position: 'absolute',
277
325
  top: 0,
278
- height: '100%',
279
326
  bottom: 0,
280
327
  left: 0,
281
- float: 'left',
328
+ height: '{{ height }}',
329
+ width: '{{ width }}',
330
+ transform: '{{ origin }}',
331
+ 'overflow-x': 'hidden',
282
332
  zIndex: '9999',
283
- width: 'calc(100vw - 50px)',
284
- transform: 'translateX(calc(-100vw + 50px))',
285
- 'overflow-x': 'hidden'
286
- })),
333
+ }), {
334
+ params: {
335
+ origin: 'translateX(0)',
336
+ height: '100%',
337
+ width: 'calc(100vw - 50px)',
338
+ }
339
+ }),
287
340
  // transition(`${EXPANDED_STATE} <=> ${COLLAPSED_STATE}`, animate('0.2s ease-in-out')),
288
341
  transition(sideNavExpandStateChangeFn, animate('0.2s ease-in-out')),
289
342
  // transition(`${EXPANDED_STATE} <=> ${COLLAPSED_STATE}`, [
@@ -297,7 +350,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
297
350
  // ])
298
351
  // ]),
299
352
  ])
300
- ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"side-nav-backdrop\" *ngIf=\"isMobile$ | async\"\n [@sideNavBackdrop]=\"_sideNavExpand\"\n [class.side-nav-backdrop-hidden]=\"_backdropHidden | async\"></div>\n\n<div class=\"side-nav-inner-wrapper\" [@sideNavExpand]=\"_sideNavExpand\"\n (@sideNavExpand.start)=\"animateStart()\"\n (@sideNavExpand.done)=\"animateEnd()\">\n <nav class=\"nav side-nav-content\">\n <seam-side-nav-toggle *ngIf=\"hasHeaderToggle\"\n [expanded]=\"expanded$ | async\"\n (toggleExpand)=\"toggle()\">\n </seam-side-nav-toggle>\n <div class=\"side-nav-items-container\" seamOverlayScrollbar>\n <seam-side-nav-item *ngFor=\"let item of items$ | async\"\n [compact]=\"!(expanded$ | async)\"\n [isMobile]=\"isMobile$ | async\"\n [itemType]=\"$any(item)?.itemType\"\n [icon]=\"$any(item)?.icon\"\n [label]=\"$any(item)?.label\"\n [link]=\"$any(item)?.link\"\n [badgeText]=\"$any(item)?.badge?.text\"\n [badgeTheme]=\"$any(item)?.badge?.theme || 'danger'\"\n [badgeSrContent]=\"$any(item)?.badge?.srContent\"\n [badgeTooltip]=\"$any(item)?.badge?.tooltip\"\n [queryParams]=\"$any(item)?.queryParams\"\n [children]=\"$any(item)?.children\"\n [active]=\"$any(item).__state.active\"\n [expanded]=\"$any(item).__state.expanded\"\n [menuItemTooltipConfig]=\"menuItemTooltipConfig\"\n [menuItemTooltipDisabled]=\"menuItemTooltipDisabled$ | async\"\n [activeNavigatable]=\"$any(item).activeNavigatable\">\n </seam-side-nav-item>\n </div>\n <ng-template [cdkPortalOutlet]=\"_sideBarFooterPortal\"></ng-template>\n </nav>\n</div>\n", styles: ["seam-side-nav,.seam-side-nav{display:block;height:100%;position:relative;z-index:2;overflow:hidden}seam-side-nav .side-nav-inner-wrapper,.seam-side-nav .side-nav-inner-wrapper{background:#357ebd;height:100%}seam-side-nav .side-nav-backdrop,.seam-side-nav .side-nav-backdrop{background:rgba(52,58,64,.6);width:100vw;height:100vh}seam-side-nav .side-nav-backdrop.side-nav-backdrop-hidden,.seam-side-nav .side-nav-backdrop.side-nav-backdrop-hidden{display:none;width:0;height:0;padding:0;margin:0}seam-side-nav .side-nav-content,.seam-side-nav .side-nav-content{display:flex;flex-direction:column;height:100%;flex-wrap:nowrap}seam-side-nav .side-nav-items-container,.seam-side-nav .side-nav-items-container{display:flex;flex-direction:column;width:100%;flex:1 1 100%}\n"] }]
353
+ ], imports: [
354
+ CommonModule,
355
+ A11yModule,
356
+ TheSeamScrollbarModule,
357
+ TheSeamLayoutModule,
358
+ PortalModule,
359
+ SideNavItemComponent,
360
+ SideNavToggleComponent,
361
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, template: "<div class=\"side-nav-backdrop\" *ngIf=\"isMobile$ | async\"\r\n [@sideNavBackdrop]=\"_sideNavExpand\"\r\n [class.side-nav-backdrop-hidden]=\"_backdropHidden | async\"\r\n (click)=\"collapse()\"></div>\r\n\r\n<div\r\n class=\"side-nav-inner-wrapper\"\r\n [@sideNavExpand]=\"{\r\n value: _sideNavExpand,\r\n params: {\r\n origin: expandOriginTransform,\r\n height: expandHeight,\r\n width: expandWidth\r\n }\r\n }\"\r\n (@sideNavExpand.start)=\"animateStart()\"\r\n (@sideNavExpand.done)=\"animateEnd()\">\r\n <nav class=\"nav side-nav-content\">\r\n <seam-side-nav-toggle *ngIf=\"hasHeaderToggle\"\r\n [toggleIcon]=\"toggleIcon\"\r\n [toggleTpl]=\"toggleTpl\"\r\n [expanded]=\"expanded$ | async\"\r\n (toggleExpand)=\"toggle()\">\r\n <ng-template [cdkPortalOutlet]=\"_sideBarHeaderPortal\"></ng-template>\r\n </seam-side-nav-toggle>\r\n <div class=\"side-nav-items-container\" seamOverlayScrollbar>\r\n <div class=\"side-nav--group side-nav--group--level-0\">\r\n <seam-side-nav-item *ngFor=\"let item of items$ | async\"\r\n [compact]=\"!(expanded$ | async)\"\r\n [isMobile]=\"isMobile$ | async\"\r\n [itemType]=\"$any(item)?.itemType\"\r\n [icon]=\"$any(item)?.icon\"\r\n [label]=\"$any(item)?.label\"\r\n [link]=\"$any(item)?.link\"\r\n [badgeText]=\"$any(item)?.badge?.text\"\r\n [badgeTheme]=\"$any(item)?.badge?.theme || 'danger'\"\r\n [badgeSrContent]=\"$any(item)?.badge?.srContent\"\r\n [badgeTooltip]=\"$any(item)?.badge?.tooltip\"\r\n [queryParams]=\"$any(item)?.queryParams\"\r\n [children]=\"$any(item)?.children\"\r\n [active]=\"$any(item).__state?.active\"\r\n [expanded]=\"$any(item).__state?.expanded\"\r\n [hideEmptyIcon]=\"hideEmptyIcon\"\r\n [indentSize]=\"indentSize\"\r\n [menuItemTooltipConfig]=\"menuItemTooltipConfig\"\r\n [menuItemTooltipDisabled]=\"menuItemTooltipDisabled$ | async\">\r\n [activeNavigatable]=\"$any(item).activeNavigatable\">\r\n </seam-side-nav-item>\r\n </div>\r\n </div>\r\n <ng-template [cdkPortalOutlet]=\"_sideBarFooterPortal\"></ng-template>\r\n </nav>\r\n</div>\r\n", styles: ["seam-side-nav,.seam-side-nav{display:block;height:100%;position:relative;z-index:2;overflow:hidden}seam-side-nav .side-nav-inner-wrapper,.seam-side-nav .side-nav-inner-wrapper{background:#357ebd;height:100%}seam-side-nav .side-nav-backdrop,.seam-side-nav .side-nav-backdrop{background:rgba(52,58,64,.6);width:100vw;height:100vh}seam-side-nav .side-nav-backdrop.side-nav-backdrop-hidden,.seam-side-nav .side-nav-backdrop.side-nav-backdrop-hidden{display:none;width:0;height:0;padding:0;margin:0}seam-side-nav .side-nav-content,.seam-side-nav .side-nav-content{display:flex;flex-direction:column;height:100%;flex-wrap:nowrap}seam-side-nav .side-nav-items-container,.seam-side-nav .side-nav-items-container{display:flex;flex-direction:column;width:100%;flex:1 1 100%}\n"] }]
301
362
  }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i1.TheSeamLayoutService }, { type: i2.TheSeamSideNavService }, { type: undefined, decorators: [{
302
363
  type: Optional
303
364
  }, {
@@ -313,18 +374,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
313
374
  args: ['@sideNavAnim']
314
375
  }], hasHeaderToggle: [{
315
376
  type: Input
377
+ }], toggleIcon: [{
378
+ type: Input
379
+ }], toggleTpl: [{
380
+ type: Input
316
381
  }], items: [{
317
382
  type: Input
383
+ }], hideEmptyIcon: [{
384
+ type: Input
385
+ }], indentSize: [{
386
+ type: Input
318
387
  }], expanded: [{
319
388
  type: Input
389
+ }], expandOrigin: [{
390
+ type: Input
391
+ }], expandHeight: [{
392
+ type: Input
393
+ }], expandWidth: [{
394
+ type: Input
320
395
  }], overlay: [{
321
396
  type: Input
322
397
  }], menuItemTooltipConfig: [{
323
398
  type: Input
324
399
  }], toggleExpand: [{
325
400
  type: Output
401
+ }], _sideBarHeaderTpl: [{
402
+ type: ContentChild,
403
+ args: [BaseLayoutSideBarHeaderDirective, { static: true, read: TemplateRef }]
326
404
  }], _sideBarFooterTpl: [{
327
405
  type: ContentChild,
328
406
  args: [BaseLayoutSideBarFooterDirective, { static: true, read: TemplateRef }]
329
407
  }] } });
330
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1uYXYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2ZyYW1ld29yay9zaWRlLW5hdi9zaWRlLW5hdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZnJhbWV3b3JrL3NpZGUtbmF2L3NpZGUtbmF2LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsT0FBTyxFQUNQLFlBQVksRUFDWixLQUFLLEVBQ0wsS0FBSyxFQUNMLEtBQUssRUFDTCxLQUFLLEVBQ0wsVUFBVSxFQUNWLE9BQU8sRUFDUixNQUFNLHFCQUFxQixDQUFBO0FBQzVCLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUMzRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDcEQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixXQUFXLEVBRVgsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFBO0FBRXRCLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQVUsR0FBRyxFQUFtQixXQUFXLEVBQWEsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUV0SSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFHdEQsT0FBTyxFQUFnRCx1QkFBdUIsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRTVHLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGlFQUFpRSxDQUFB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QyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHVCQUF1Qjs0Q0EvRGhCLGNBQWM7c0JBQTFDLFdBQVc7dUJBQUMsY0FBYztnQkFFRixlQUFlO3NCQUF2QyxLQUFLO2dCQUdGLEtBQUs7c0JBRFIsS0FBSztnQkFPRixRQUFRO3NCQURYLEtBQUs7Z0JBZUYsT0FBTztzQkFEVixLQUFLO2dCQWFGLHFCQUFxQjtzQkFEeEIsS0FBSztnQkFhSSxZQUFZO3NCQUFyQixNQUFNO2dCQU04RSxpQkFBaUI7c0JBQXJHLFlBQVk7dUJBQUMsZ0NBQWdDLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhbmltYXRlLFxuICBhbmltYXRlQ2hpbGQsXG4gIGdyb3VwLFxuICBxdWVyeSxcbiAgc3RhdGUsXG4gIHN0eWxlLFxuICB0cmFuc2l0aW9uLFxuICB0cmlnZ2VyXG59IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbidcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCdcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBtYXBUbywgcGFpcndpc2UsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgSW5wdXRCb29sZWFuIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2NvcmUnXG5pbXBvcnQgeyBUaGVTZWFtTGF5b3V0U2VydmljZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9sYXlvdXQnXG5cbmltcG9ydCB7IElUaGVTZWFtQmFzZUxheW91dE5hdiwgSVRoZVNlYW1CYXNlTGF5b3V0UmVmLCBUSEVTRUFNX0JBU0VfTEFZT1VUX1JFRiB9IGZyb20gJy4uL2Jhc2UtbGF5b3V0L2luZGV4J1xuXG5pbXBvcnQgeyBCYXNlTGF5b3V0U2lkZUJhckZvb3RlckRpcmVjdGl2ZSB9IGZyb20gJy4uL2Jhc2UtbGF5b3V0L2RpcmVjdGl2ZXMvYmFzZS1sYXlvdXQtc2lkZS1iYXItZm9vdGVyLmRpcmVjdGl2ZSdcbmltcG9ydCB7IERFRkFVTFRfU0lERV9OQVZfQ09ORklHLCBTaWRlTmF2Q29uZmlnLCBUSEVTRUFNX1NJREVfTkFWX0FDQ0VTU09SLCBUSEVTRUFNX1NJREVfTkFWX0NPTkZJRyB9IGZyb20gJy4vc2lkZS1uYXYtdG9rZW5zJ1xuaW1wb3J0IHsgSVNpZGVOYXZJdGVtLCBTaWRlTmF2SXRlbU1lbnVJdGVtVG9vbHRpcENvbmZpZyB9IGZyb20gJy4vc2lkZS1uYXYubW9kZWxzJ1xuaW1wb3J0IHsgVGhlU2VhbVNpZGVOYXZTZXJ2aWNlIH0gZnJvbSAnLi9zaWRlLW5hdi5zZXJ2aWNlJ1xuaW1wb3J0IHsgYXBwbHlJdGVtQ29uZmlnIH0gZnJvbSAnLi9zaWRlLW5hdi11dGlscydcblxuY29uc3QgRVhQQU5ERURfU1RBVEUgPSAnZXhwYW5kZWQnXG5jb25zdCBDT0xMQVBTRURfU1RBVEUgPSAnY29sbGFwc2VkJ1xuXG5jb25zdCBFWFBBTkRFRF9PVkVSTEFZX1NUQVRFID0gJ2V4cGFuZGVkLW92ZXJsYXknXG5jb25zdCBDT0xMQVBTRURfT1ZFUkxBWV9TVEFURSA9ICdjb2xsYXBzZWQtb3ZlcmxheSdcblxuY29uc3QgRVhQQU5ERURfU1RBVEVTID0gWyBFWFBBTkRFRF9TVEFURSwgRVhQQU5ERURfT1ZFUkxBWV9TVEFURSBdXG5jb25zdCBDT0xMQVBTRURfU1RBVEVTID0gWyBDT0xMQVBTRURfU1RBVEUsIENPTExBUFNFRF9PVkVSTEFZX1NUQVRFIF1cbmNvbnN0IEVYUEFORF9TVEFURVMgPSBbIC4uLkVYUEFOREVEX1NUQVRFUywgLi4uQ09MTEFQU0VEX1NUQVRFUyBdXG5cbmV4cG9ydCBmdW5jdGlvbiBzaWRlTmF2RXhwYW5kU3RhdGVDaGFuZ2VGbihmcm9tU3RhdGU6IHN0cmluZywgdG9TdGF0ZTogc3RyaW5nKSB7XG4gIC8vIGNvbnNvbGUubG9nKHsgZnJvbVN0YXRlLCB0b1N0YXRlIH0pXG4gIHJldHVybiBmcm9tU3RhdGUgIT09IHRvU3RhdGUgJiZcbiAgICAoXG4gICAgICAvLyBOT1RFOiBUaGUgY3VycmVudCB3YXkgdGhlIHNpZGUgbmF2IGlzIGJlaW5nIHVzZWQgaXQgY2F1c2VzIHRoZVxuICAgICAgLy8gY29tcG9uZW50IHRvIHNvbWV0aW1lcyBnZXQgcGxhY2VkIGluIHRoZSB3cm9uZyBsb2NhdGlvbiBpbml0aWFsbHkuIEl0XG4gICAgICAvLyBpcyBmYXN0IGVub3VnaCB0byBub3QgYmUgbm90aWNlZCB3aXRob3V0IGFuIGluaXRpYWwgYW5pbWF0aW9uIHVzdWFsbHksXG4gICAgICAvLyBzbyBpdCBpcyBjb21tZW50ZWQgb3V0IGJlbG93IHVudGlsIHRoZSBpbml0aWFsIHBsYWNlbWVudCBpc3N1ZSBpdFxuICAgICAgLy8gZml4ZWQuXG4gICAgICAvL1xuICAgICAgLy8gKFxuICAgICAgLy8gICBmcm9tU3RhdGUgPT09ICd2b2lkJyAmJiBFWFBBTkRfU1RBVEVTLmluZGV4T2YodG9TdGF0ZSkgIT09IC0xXG4gICAgICAvLyAgIHx8XG4gICAgICAvLyAgIHRvU3RhdGUgPT09ICd2b2lkJyAmJiBFWFBBTkRfU1RBVEVTLmluZGV4T2YoZnJvbVN0YXRlKSAhPT0gLTFcbiAgICAgIC8vIClcbiAgICAgIC8vIHx8XG4gICAgICAoXG4gICAgICAgIChFWFBBTkRFRF9TVEFURVMuaW5kZXhPZihmcm9tU3RhdGUpICE9PSAtMSAmJiBDT0xMQVBTRURfU1RBVEVTLmluZGV4T2YodG9TdGF0ZSkgIT09IC0xKSB8fFxuICAgICAgICAoRVhQQU5ERURfU1RBVEVTLmluZGV4T2YodG9TdGF0ZSkgIT09IC0xICYmIENPTExBUFNFRF9TVEFURVMuaW5kZXhPZihmcm9tU3RhdGUpICE9PSAtMSlcbiAgICAgIClcbiAgICApXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NlYW0tc2lkZS1uYXYnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2lkZS1uYXYuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zaWRlLW5hdi5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICBUaGVTZWFtU2lkZU5hdlNlcnZpY2UsXG4gICAge1xuICAgICAgcHJvdmlkZTogVEhFU0VBTV9TSURFX05BVl9BQ0NFU1NPUixcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby11c2UtYmVmb3JlLWRlY2xhcmVcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNpZGVOYXZDb21wb25lbnQpXG4gICAgfSxcbiAgXSxcbiAgYW5pbWF0aW9uczogW1xuXG4gICAgLy9cbiAgICAvLyBUT0RPOiBUaGlzIGFuaW1hdGlvbiBjb2RlIHR1cm5lZCBpbnRvIGEgbWVzcy4gQ2xlYW4gaXQgdXAgYW5kIG1ha2UgaXRcbiAgICAvLyBtb3JlIHNtb290aC5cbiAgICAvL1xuXG4gICAgdHJpZ2dlcignc2lkZU5hdkFuaW0nLCBbXG4gICAgICB0cmFuc2l0aW9uKHNpZGVOYXZFeHBhbmRTdGF0ZUNoYW5nZUZuLCBbXG4gICAgICAgIGdyb3VwKFtcbiAgICAgICAgICBxdWVyeSgnQHNpZGVOYXZCYWNrZHJvcCcsIGFuaW1hdGVDaGlsZCgpLCB7IG9wdGlvbmFsOiB0cnVlIH0pLFxuICAgICAgICAgIHF1ZXJ5KCdAc2lkZU5hdkV4cGFuZCcsIGFuaW1hdGVDaGlsZCgpLCB7IG9wdGlvbmFsOiB0cnVlIH0pLFxuICAgICAgICBdKSxcbiAgICAgIF0pLFxuICAgIF0pLFxuXG4gICAgdHJpZ2dlcignc2lkZU5hdkJhY2tkcm9wJywgW1xuICAgICAgc3RhdGUoRVhQQU5ERURfT1ZFUkxBWV9TVEFURSwgc3R5bGUoeyBvcGFjaXR5OiAnMScgfSkpLFxuICAgICAgc3RhdGUoQ09MTEFQU0VEX09WRVJMQVlfU1RBVEUsIHN0eWxlKHsgb3BhY2l0eTogJzAnIH0pKSxcblxuICAgICAgLy8gdHJhbnNpdGlvbigoZnJvbVN0YXRlLCB0b1N0YXRlLCBlbGVtZW50LCBwYXJhbXMpID0+IHtcbiAgICAgIC8vICAgY29uc29sZS5sb2coJ3NpZGVOYXZCYWNrZHJvcCB2JywgZnJvbVN0YXRlLCB0b1N0YXRlLCBlbGVtZW50LCBwYXJhbXMpXG4gICAgICAvLyAgIHJldHVybiBmYWxzZVxuICAgICAgLy8gfSwgW10pLFxuXG4gICAgICB0cmFuc2l0aW9uKHNpZGVOYXZFeHBhbmRTdGF0ZUNoYW5nZUZuLCBhbmltYXRlKCcwLjJzIGVhc2UtaW4tb3V0JykpLFxuICAgIF0pLFxuXG4gICAgdHJpZ2dlcignc2lkZU5hdkV4cGFuZCcsIFtcbiAgICAgIC8vIFRPRE86IE1ha2Ugd2lkdGggY29uZmlndXJhYmxlLlxuICAgICAgc3RhdGUoRVhQQU5ERURfU1RBVEUsIHN0eWxlKHsgd2lkdGg6ICcyNjBweCcgfSkpLFxuICAgICAgc3RhdGUoQ09MTEFQU0VEX1NUQVRFLCBzdHlsZSh7IHdpZHRoOiAnNTBweCcsICdvdmVyZmxvdy14JzogJ2hpZGRlbicgfSkpLFxuXG4gICAgICBzdGF0ZShFWFBBTkRFRF9PVkVSTEFZX1NUQVRFLCBzdHlsZSh7XG4gICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICB0b3A6IDAsXG4gICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICBib3R0b206IDAsXG4gICAgICAgIGxlZnQ6IDAsXG4gICAgICAgIGZsb2F0OiAnbGVmdCcsXG4gICAgICAgIHpJbmRleDogJzk5OTknLFxuICAgICAgICB3aWR0aDogJ2NhbGMoMTAwdncgLSA1MHB4KScsXG4gICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMCknXG4gICAgICB9KSksXG4gICAgICBzdGF0ZShDT0xMQVBTRURfT1ZFUkxBWV9TVEFURSwgc3R5bGUoe1xuICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgdG9wOiAwLFxuICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgYm90dG9tOiAwLFxuICAgICAgICBsZWZ0OiAwLFxuICAgICAgICBmbG9hdDogJ2xlZnQnLFxuICAgICAgICB6SW5kZXg6ICc5OTk5JyxcbiAgICAgICAgd2lkdGg6ICdjYWxjKDEwMHZ3IC0gNTBweCknLFxuICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKGNhbGMoLTEwMHZ3ICsgNTBweCkpJyxcbiAgICAgICAgJ292ZXJmbG93LXgnOiAnaGlkZGVuJ1xuICAgICAgfSkpLFxuXG4gICAgICAvLyB0cmFuc2l0aW9uKGAke0VYUEFOREVEX1NUQVRFfSA8PT4gJHtDT0xMQVBTRURfU1RBVEV9YCwgYW5pbWF0ZSgnMC4ycyBlYXNlLWluLW91dCcpKSxcblxuICAgICAgdHJhbnNpdGlvbihzaWRlTmF2RXhwYW5kU3RhdGVDaGFuZ2VGbiwgYW5pbWF0ZSgnMC4ycyBlYXNlLWluLW91dCcpKSxcblxuICAgICAgLy8gdHJhbnNpdGlvbihgJHtFWFBBTkRFRF9TVEFURX0gPD0+ICR7Q09MTEFQU0VEX1NUQVRFfWAsIFtcbiAgICAgIC8vICAgLy8gcXVlcnkoJzpsZWF2ZScsIGFuaW1hdGVDaGlsZCgpLCB7IG9wdGlvbmFsOiB0cnVlIH0pLFxuICAgICAgLy8gICAvLyBxdWVyeSgnOmVudGVyJywgYW5pbWF0ZUNoaWxkKCksIHsgb3B0aW9uYWw6IHRydWUgfSksXG4gICAgICAvLyAgIGdyb3VwKFtcbiAgICAgIC8vICAgICBxdWVyeSgnOmxlYXZlJywgYW5pbWF0ZUNoaWxkKCksIHsgb3B0aW9uYWw6IHRydWUgfSksXG4gICAgICAvLyAgICAgcXVlcnkoJzplbnRlcicsIGFuaW1hdGVDaGlsZCgpLCB7IG9wdGlvbmFsOiB0cnVlIH0pLFxuICAgICAgLy8gICAgIHF1ZXJ5KCdAY29tcGFjdEFuaW0nLCBhbmltYXRlQ2hpbGQoKSwgeyBvcHRpb25hbDogdHJ1ZSB9KSxcbiAgICAgIC8vICAgICBhbmltYXRlKCc1LjJzIGVhc2UtaW4tb3V0JylcbiAgICAgIC8vICAgXSlcbiAgICAgIC8vIF0pLFxuICAgIF0pXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFNpZGVOYXZDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgSVRoZVNlYW1CYXNlTGF5b3V0TmF2IHtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2hhc0hlYWRlclRvZ2dsZTogQm9vbGVhbklucHV0XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KClcblxuICAvLyBASG9zdEJpbmRpbmcoJ0BzaWRlTmF2RXhwYW5kJykgX3NpZGVOYXZFeHBhbmQgPSBFWFBBTkRFRF9TVEFURVxuICAvLyBfc2lkZU5hdkV4cGFuZCA9IEVYUEFOREVEX1NUQVRFXG5cbiAgLy8gQEhvc3RCaW5kaW5nKCdAc2lkZU5hdkFuaW0nKSBfc2lkZU5hdkV4cGFuZCA9IEVYUEFOREVEX1NUQVRFXG4gIEBIb3N0QmluZGluZygnQHNpZGVOYXZBbmltJykgX3NpZGVOYXZFeHBhbmQgPSAnaW5pdGlhbCdcblxuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgaGFzSGVhZGVyVG9nZ2xlID0gdHJ1ZVxuXG4gIEBJbnB1dCgpXG4gIGdldCBpdGVtcygpOiBJU2lkZU5hdkl0ZW1bXSB7IHJldHVybiB0aGlzLl9pdGVtcy52YWx1ZSB9XG4gIHNldCBpdGVtcyh2YWx1ZTogSVNpZGVOYXZJdGVtW10pIHsgdGhpcy5faXRlbXMubmV4dCh2YWx1ZSkgfVxuICBwcml2YXRlIF9pdGVtcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SVNpZGVOYXZJdGVtW10+KFtdKVxuICBwdWJsaWMgcmVhZG9ubHkgaXRlbXMkOiBPYnNlcnZhYmxlPElTaWRlTmF2SXRlbVtdPlxuXG4gIEBJbnB1dCgpXG4gIGdldCBleHBhbmRlZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2V4cGFuZGVkLnZhbHVlIH1cbiAgc2V0IGV4cGFuZGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgY29uc3QgZXhwYW5kZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpXG4gICAgY29uc3QgZW1pdCA9IGV4cGFuZGVkICE9PSB0aGlzLmV4cGFuZGVkXG4gICAgdGhpcy5fZXhwYW5kZWQubmV4dChleHBhbmRlZClcblxuICAgIGlmIChlbWl0KSB7XG4gICAgICB0aGlzLnRvZ2dsZUV4cGFuZC5lbWl0KGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSkpXG4gICAgfVxuICB9XG4gIHByaXZhdGUgX2V4cGFuZGVkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKVxuICBwdWJsaWMgcmVhZG9ubHkgZXhwYW5kZWQkID0gdGhpcy5fZXhwYW5kZWQuYXNPYnNlcnZhYmxlKClcblxuICBASW5wdXQoKVxuICBnZXQgb3ZlcmxheSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX292ZXJsYXkudmFsdWUgfVxuICBzZXQgb3ZlcmxheSh2YWx1ZTogYm9vbGVhbikgeyB0aGlzLl9vdmVybGF5Lm5leHQoY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKSkgfVxuICBwcml2YXRlIF9vdmVybGF5ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSlcbiAgcHVibGljIHJlYWRvbmx5IG92ZXJsYXkkID0gdGhpcy5fb3ZlcmxheS5hc09ic2VydmFibGUoKVxuXG4gIHByaXZhdGUgX21lbnVJdGVtVG9vbHRpcENvbmZpZzogU2lkZU5hdkl0ZW1NZW51SXRlbVRvb2x0aXBDb25maWcgPSB7XG4gICAgcGxhY2VtZW50OiAncmlnaHQnLFxuICAgIGNvbnRhaW5lcjogJ2JvZHknLFxuICAgIGJlaGF2aW9yOiAnYWx3YXlzJ1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IG1lbnVJdGVtVG9vbHRpcENvbmZpZygpIHsgcmV0dXJuIHRoaXMuX21lbnVJdGVtVG9vbHRpcENvbmZpZyB9XG4gIHNldCBtZW51SXRlbVRvb2x0aXBDb25maWcodmFsdWU6IFNpZGVOYXZJdGVtTWVudUl0ZW1Ub29sdGlwQ29uZmlnIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xuICAgIHRoaXMuX21lbnVJdGVtVG9vbHRpcENvbmZpZyA9IHtcbiAgICAgIGNsYXNzOiB2YWx1ZT8uY2xhc3MsXG4gICAgICBwbGFjZW1lbnQ6IHZhbHVlPy5wbGFjZW1lbnQgfHwgdGhpcy5fbWVudUl0ZW1Ub29sdGlwQ29uZmlnLnBsYWNlbWVudCxcbiAgICAgIGNvbnRhaW5lcjogdmFsdWU/LmNvbnRhaW5lciB8fCB0aGlzLl9tZW51SXRlbVRvb2x0aXBDb25maWcuY29udGFpbmVyLFxuICAgICAgYmVoYXZpb3I6IHZhbHVlPy5iZWhhdmlvciB8fCB0aGlzLl9tZW51SXRlbVRvb2x0aXBDb25maWcuYmVoYXZpb3JcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbWVudUl0ZW1Ub29sdGlwRGlzYWJsZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIEBPdXRwdXQoKSB0b2dnbGVFeHBhbmQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KClcblxuICBwdWJsaWMgcmVhZG9ubHkgaXNNb2JpbGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+XG4gIHB1YmxpYyByZWFkb25seSBzaWRlTmF2RXhwYW5kZWRTdGF0ZSQ6IE9ic2VydmFibGU8c3RyaW5nPlxuICBwdWJsaWMgX2JhY2tkcm9wSGlkZGVuID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKVxuXG4gIEBDb250ZW50Q2hpbGQoQmFzZUxheW91dFNpZGVCYXJGb290ZXJEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBUZW1wbGF0ZVJlZiB9KSBfc2lkZUJhckZvb3RlclRwbD86IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsXG4gIF9zaWRlQmFyRm9vdGVyUG9ydGFsPzogVGVtcGxhdGVQb3J0YWxcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2xheW91dDogVGhlU2VhbUxheW91dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfc2lkZU5hdjogVGhlU2VhbVNpZGVOYXZTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVEhFU0VBTV9TSURFX05BVl9DT05GSUcpIHByaXZhdGUgcmVhZG9ubHkgX2NvbmZpZz86IFNpZGVOYXZDb25maWcsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChUSEVTRUFNX0JBU0VfTEFZT1VUX1JFRikgcHJpdmF0ZSByZWFkb25seSBfYmFzZUxheW91dFJlZj86IElUaGVTZWFtQmFzZUxheW91dFJlZlxuICApIHtcbiAgICBjb25zdCBjb25maWc6IFNpZGVOYXZDb25maWcgPSB7XG4gICAgICAuLi5ERUZBVUxUX1NJREVfTkFWX0NPTkZJRyxcbiAgICAgIC4uLih0aGlzLl9jb25maWcgfHwge30pLFxuICAgIH1cblxuICAgIHRoaXMuaXRlbXMkID0gdGhpcy5faXRlbXMuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgIG1hcChpdGVtcyA9PiAoaXRlbXMgJiYgY29uZmlnKSA/IGl0ZW1zLm1hcChpdG0gPT4gYXBwbHlJdGVtQ29uZmlnKGl0bSwgY29uZmlnKSkgOiBbXSksXG4gICAgICBzd2l0Y2hNYXAoaXRlbXMgPT4gaXRlbXMgPyB0aGlzLl9zaWRlTmF2LmNyZWF0ZUl0ZW1zT2JzZXJ2YWJsZShpdGVtcykgOiBbXSksXG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pLFxuICAgIClcblxuICAgIHRoaXMuaXNNb2JpbGUkID0gdGhpcy5fbGF5b3V0LmlzTW9iaWxlJC5waXBlKFxuICAgICAgdGFwKGlzTW9iaWxlID0+IGlzTW9iaWxlID8gdGhpcy5jb2xsYXBzZSgpIDogdGhpcy5leHBhbmQoKSlcbiAgICApXG5cbiAgICB0aGlzLnNpZGVOYXZFeHBhbmRlZFN0YXRlJCA9IGNvbWJpbmVMYXRlc3QoWyB0aGlzLmV4cGFuZGVkJCwgdGhpcy5vdmVybGF5JCBdKS5waXBlKFxuICAgICAgbWFwKChbIGV4cGFuZGVkLCBvdmVybGF5IF0pID0+IGV4cGFuZGVkXG4gICAgICAgID8gb3ZlcmxheSA/IEVYUEFOREVEX09WRVJMQVlfU1RBVEUgOiBFWFBBTkRFRF9TVEFURVxuICAgICAgICA6IG92ZXJsYXkgPyBDT0xMQVBTRURfT1ZFUkxBWV9TVEFURSA6IENPTExBUFNFRF9TVEFURVxuICAgICAgKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICApXG5cbiAgICB0aGlzLm1lbnVJdGVtVG9vbHRpcERpc2FibGVkJCA9IGNvbWJpbmVMYXRlc3QoWyB0aGlzLmV4cGFuZGVkJCwgdGhpcy5vdmVybGF5JCBdKS5waXBlKFxuICAgICAgbWFwKChbIGV4cGFuZGVkLCBvdmVybGF5IF0pID0+IHtcbiAgICAgICAgLy8gbmV2ZXIgZGlzcGxheSB0b29sdGlwIG9uIG1vYmlsZSwgaXQgYnJlYWtzIHRoZSBsYXlvdXRcbiAgICAgICAgaWYgKG92ZXJsYXkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubWVudUl0ZW1Ub29sdGlwQ29uZmlnPy5iZWhhdmlvciA9PT0gJ2Fsd2F5cycgPyBmYWxzZVxuICAgICAgICAgIDogdGhpcy5tZW51SXRlbVRvb2x0aXBDb25maWc/LmJlaGF2aW9yID09PSAnbmV2ZXInID8gdHJ1ZVxuICAgICAgICAgIDogdGhpcy5tZW51SXRlbVRvb2x0aXBDb25maWc/LmJlaGF2aW9yID09PSAnY29sbGFwc2VPbmx5JyA/IGV4cGFuZGVkIDogdHJ1ZVxuICAgICAgfSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuX2Jhc2VMYXlvdXRSZWYpIHsgdGhpcy5fYmFzZUxheW91dFJlZi5yZWdpc3Rlck5hdih0aGlzKSB9XG5cbiAgICB0aGlzLmlzTW9iaWxlJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZShiID0+IHRoaXMub3ZlcmxheSA9IGIpXG5cbiAgICB0aGlzLnNpZGVOYXZFeHBhbmRlZFN0YXRlJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSh2ID0+IHRoaXMuX3NpZGVOYXZFeHBhbmQgPSB2KVxuXG4gICAgaWYgKHRoaXMuX3NpZGVCYXJGb290ZXJUcGwpIHtcbiAgICAgIHRoaXMuX3NpZGVCYXJGb290ZXJQb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5fc2lkZUJhckZvb3RlclRwbCwgdGhpcy5fdmlld0NvbnRhaW5lclJlZilcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLm5leHQodW5kZWZpbmVkKVxuICAgIHRoaXMuX25nVW5zdWJzY3JpYmUuY29tcGxldGUoKVxuICAgIGlmICh0aGlzLl9iYXNlTGF5b3V0UmVmKSB7IHRoaXMuX2Jhc2VMYXlvdXRSZWYudW5yZWdpc3Rlck5hdih0aGlzKSB9XG4gIH1cblxuICBwdWJsaWMgZXhwYW5kKCkge1xuICAgIHRoaXMuZXhwYW5kZWQgPSB0cnVlXG4gIH1cblxuICBwdWJsaWMgY29sbGFwc2UoKSB7XG4gICAgdGhpcy5leHBhbmRlZCA9IGZhbHNlXG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlKCkge1xuICAgIHRoaXMuZXhwYW5kZWQgPSAhdGhpcy5leHBhbmRlZFxuICB9XG5cbiAgcHVibGljIGFuaW1hdGVTdGFydCgpIHtcbiAgICBpZiAodGhpcy5leHBhbmRlZCkge1xuICAgICAgdGhpcy5fYmFja2Ryb3BIaWRkZW4ubmV4dChmYWxzZSlcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYW5pbWF0ZUVuZCgpIHtcbiAgICBpZiAoIXRoaXMuZXhwYW5kZWQpIHtcbiAgICAgIHRoaXMuX2JhY2tkcm9wSGlkZGVuLm5leHQodHJ1ZSlcbiAgICB9XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cInNpZGUtbmF2LWJhY2tkcm9wXCIgKm5nSWY9XCJpc01vYmlsZSQgfCBhc3luY1wiXG4gIFtAc2lkZU5hdkJhY2tkcm9wXT1cIl9zaWRlTmF2RXhwYW5kXCJcbiAgW2NsYXNzLnNpZGUtbmF2LWJhY2tkcm9wLWhpZGRlbl09XCJfYmFja2Ryb3BIaWRkZW4gfCBhc3luY1wiPjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwic2lkZS1uYXYtaW5uZXItd3JhcHBlclwiIFtAc2lkZU5hdkV4cGFuZF09XCJfc2lkZU5hdkV4cGFuZFwiXG4gIChAc2lkZU5hdkV4cGFuZC5zdGFydCk9XCJhbmltYXRlU3RhcnQoKVwiXG4gIChAc2lkZU5hdkV4cGFuZC5kb25lKT1cImFuaW1hdGVFbmQoKVwiPlxuICA8bmF2IGNsYXNzPVwibmF2IHNpZGUtbmF2LWNvbnRlbnRcIj5cbiAgICA8c2VhbS1zaWRlLW5hdi10b2dnbGUgKm5nSWY9XCJoYXNIZWFkZXJUb2dnbGVcIlxuICAgICAgW2V4cGFuZGVkXT1cImV4cGFuZGVkJCB8IGFzeW5jXCJcbiAgICAgICh0b2dnbGVFeHBhbmQpPVwidG9nZ2xlKClcIj5cbiAgICA8L3NlYW0tc2lkZS1uYXYtdG9nZ2xlPlxuICAgIDxkaXYgY2xhc3M9XCJzaWRlLW5hdi1pdGVtcy1jb250YWluZXJcIiBzZWFtT3ZlcmxheVNjcm9sbGJhcj5cbiAgICAgIDxzZWFtLXNpZGUtbmF2LWl0ZW0gKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXMkIHwgYXN5bmNcIlxuICAgICAgICBbY29tcGFjdF09XCIhKGV4cGFuZGVkJCB8IGFzeW5jKVwiXG4gICAgICAgIFtpc01vYmlsZV09XCJpc01vYmlsZSQgfCBhc3luY1wiXG4gICAgICAgIFtpdGVtVHlwZV09XCIkYW55KGl0ZW0pPy5pdGVtVHlwZVwiXG4gICAgICAgIFtpY29uXT1cIiRhbnkoaXRlbSk/Lmljb25cIlxuICAgICAgICBbbGFiZWxdPVwiJGFueShpdGVtKT8ubGFiZWxcIlxuICAgICAgICBbbGlua109XCIkYW55KGl0ZW0pPy5saW5rXCJcbiAgICAgICAgW2JhZGdlVGV4dF09XCIkYW55KGl0ZW0pPy5iYWRnZT8udGV4dFwiXG4gICAgICAgIFtiYWRnZVRoZW1lXT1cIiRhbnkoaXRlbSk/LmJhZGdlPy50aGVtZSB8fCAnZGFuZ2VyJ1wiXG4gICAgICAgIFtiYWRnZVNyQ29udGVudF09XCIkYW55KGl0ZW0pPy5iYWRnZT8uc3JDb250ZW50XCJcbiAgICAgICAgW2JhZGdlVG9vbHRpcF09XCIkYW55KGl0ZW0pPy5iYWRnZT8udG9vbHRpcFwiXG4gICAgICAgIFtxdWVyeVBhcmFtc109XCIkYW55KGl0ZW0pPy5xdWVyeVBhcmFtc1wiXG4gICAgICAgIFtjaGlsZHJlbl09XCIkYW55KGl0ZW0pPy5jaGlsZHJlblwiXG4gICAgICAgIFthY3RpdmVdPVwiJGFueShpdGVtKS5fX3N0YXRlLmFjdGl2ZVwiXG4gICAgICAgIFtleHBhbmRlZF09XCIkYW55KGl0ZW0pLl9fc3RhdGUuZXhwYW5kZWRcIlxuICAgICAgICBbbWVudUl0ZW1Ub29sdGlwQ29uZmlnXT1cIm1lbnVJdGVtVG9vbHRpcENvbmZpZ1wiXG4gICAgICAgIFttZW51SXRlbVRvb2x0aXBEaXNhYmxlZF09XCJtZW51SXRlbVRvb2x0aXBEaXNhYmxlZCQgfCBhc3luY1wiXG4gICAgICAgIFthY3RpdmVOYXZpZ2F0YWJsZV09XCIkYW55KGl0ZW0pLmFjdGl2ZU5hdmlnYXRhYmxlXCI+XG4gICAgICA8L3NlYW0tc2lkZS1uYXYtaXRlbT5cbiAgICA8L2Rpdj5cbiAgICA8bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJfc2lkZUJhckZvb3RlclBvcnRhbFwiPjwvbmctdGVtcGxhdGU+XG4gIDwvbmF2PlxuPC9kaXY+XG4iXX0=
408
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1uYXYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2ZyYW1ld29yay9zaWRlLW5hdi9zaWRlLW5hdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZnJhbWV3b3JrL3NpZGUtbmF2L3NpZGUtbmF2LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsT0FBTyxFQUNQLFlBQVksRUFDWixLQUFLLEVBQ0wsS0FBSyxFQUNMLEtBQUssRUFDTCxLQUFLLEVBQ0wsVUFBVSxFQUNWLE9BQU8sRUFDUixNQUFNLHFCQUFxQixDQUFBO0FBQzVCLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ2xFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixXQUFXLEVBRVgsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFbEcsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQzFE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TUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxjQUN6QixJQUFJOzswQkE0RmIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyx1QkFBdUI7OzBCQUMxQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHVCQUF1Qjs0Q0FoRmhCLGNBQWM7c0JBQTFDLFdBQVc7dUJBQUMsY0FBYztnQkFFRixlQUFlO3NCQUF2QyxLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFHRixLQUFLO3NCQURSLEtBQUs7Z0JBTUcsYUFBYTtzQkFBckIsS0FBSztnQkFFb0IsVUFBVTtzQkFBbkMsS0FBSztnQkFHRixRQUFRO3NCQURYLEtBQUs7Z0JBY0csWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0YsT0FBTztzQkFEVixLQUFLO2dCQWFGLHFCQUFxQjtzQkFEeEIsS0FBSztnQkFhSSxZQUFZO3NCQUFyQixNQUFNO2dCQU04RSxpQkFBaUI7c0JBQXJHLFlBQVk7dUJBQUMsZ0NBQWdDLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBR0UsaUJBQWlCO3NCQUFyRyxZQUFZO3VCQUFDLGdDQUFnQyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBhbmltYXRlLFxyXG4gIGFuaW1hdGVDaGlsZCxcclxuICBncm91cCxcclxuICBxdWVyeSxcclxuICBzdGF0ZSxcclxuICBzdHlsZSxcclxuICB0cmFuc2l0aW9uLFxyXG4gIHRyaWdnZXJcclxufSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJ1xyXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbidcclxuaW1wb3J0IHsgUG9ydGFsTW9kdWxlLCBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnXHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3B0aW9uYWwsXHJcbiAgT3V0cHV0LFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xyXG5pbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknXHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcblxyXG5pbXBvcnQgeyBmYUJhcnMgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnXHJcbmltcG9ydCB7IElucHV0Qm9vbGVhbiwgSW5wdXROdW1iZXIgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vY29yZSdcclxuaW1wb3J0IHsgVGhlU2VhbUxheW91dE1vZHVsZSwgVGhlU2VhbUxheW91dFNlcnZpY2UgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vbGF5b3V0J1xyXG5pbXBvcnQgeyBTZWFtSWNvbiB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9pY29uJ1xyXG5pbXBvcnQgeyBUaGVTZWFtU2Nyb2xsYmFyTW9kdWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3Njcm9sbGJhcidcclxuXHJcbmltcG9ydCB7IElUaGVTZWFtQmFzZUxheW91dE5hdiwgSVRoZVNlYW1CYXNlTGF5b3V0UmVmLCBUSEVTRUFNX0JBU0VfTEFZT1VUX1JFRiB9IGZyb20gJy4uL2Jhc2UtbGF5b3V0L2luZGV4J1xyXG5cclxuaW1wb3J0IHsgQmFzZUxheW91dFNpZGVCYXJGb290ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9iYXNlLWxheW91dC9kaXJlY3RpdmVzL2Jhc2UtbGF5b3V0LXNpZGUtYmFyLWZvb3Rlci5kaXJlY3RpdmUnXHJcbmltcG9ydCB7IEJhc2VMYXlvdXRTaWRlQmFySGVhZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vYmFzZS1sYXlvdXQvZGlyZWN0aXZlcy9iYXNlLWxheW91dC1zaWRlLWJhci1oZWFkZXIuZGlyZWN0aXZlJ1xyXG5pbXBvcnQgeyBERUZBVUxUX1NJREVfTkFWX0NPTkZJRywgU2lkZU5hdkNvbmZpZywgVEhFU0VBTV9TSURFX05BVl9BQ0NFU1NPUiwgVEhFU0VBTV9TSURFX05BVl9DT05GSUcgfSBmcm9tICcuL3NpZGUtbmF2LXRva2VucydcclxuaW1wb3J0IHsgSVNpZGVOYXZJdGVtLCBTaWRlTmF2SXRlbU1lbnVJdGVtVG9vbHRpcENvbmZpZyB9IGZyb20gJy4vc2lkZS1uYXYubW9kZWxzJ1xyXG5pbXBvcnQgeyBUaGVTZWFtU2lkZU5hdlNlcnZpY2UgfSBmcm9tICcuL3NpZGUtbmF2LnNlcnZpY2UnXHJcbmltcG9ydCB7IFNpZGVOYXZUb2dnbGVDb21wb25lbnQgfSBmcm9tICcuL3NpZGUtbmF2LXRvZ2dsZS9zaWRlLW5hdi10b2dnbGUuY29tcG9uZW50J1xyXG5pbXBvcnQgeyBTaWRlTmF2SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vc2lkZS1uYXYtaXRlbS9zaWRlLW5hdi1pdGVtLmNvbXBvbmVudCdcclxuaW1wb3J0IHsgYXBwbHlJdGVtQ29uZmlnIH0gZnJvbSAnLi9zaWRlLW5hdi11dGlscydcclxuXHJcbmNvbnN0IEVYUEFOREVEX1NUQVRFID0gJ2V4cGFuZGVkJ1xyXG5jb25zdCBDT0xMQVBTRURfU1RBVEUgPSAnY29sbGFwc2VkJ1xyXG5cclxuY29uc3QgRVhQQU5ERURfT1ZFUkxBWV9TVEFURSA9ICdleHBhbmRlZC1vdmVybGF5J1xyXG5jb25zdCBDT0xMQVBTRURfT1ZFUkxBWV9TVEFURSA9ICdjb2xsYXBzZWQtb3ZlcmxheSdcclxuXHJcbmNvbnN0IEVYUEFOREVEX1NUQVRFUyA9IFsgRVhQQU5ERURfU1RBVEUsIEVYUEFOREVEX09WRVJMQVlfU1RBVEUgXVxyXG5jb25zdCBDT0xMQVBTRURfU1RBVEVTID0gWyBDT0xMQVBTRURfU1RBVEUsIENPTExBUFNFRF9PVkVSTEFZX1NUQVRFIF1cclxuY29uc3QgRVhQQU5EX1NUQVRFUyA9IFsgLi4uRVhQQU5ERURfU1RBVEVTLCAuLi5DT0xMQVBTRURfU1RBVEVTIF1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzaWRlTmF2RXhwYW5kU3RhdGVDaGFuZ2VGbihmcm9tU3RhdGU6IHN0cmluZywgdG9TdGF0ZTogc3RyaW5nKSB7XHJcbiAgLy8gY29uc29sZS5sb2coeyBmcm9tU3RhdGUsIHRvU3RhdGUgfSlcclxuICByZXR1cm4gZnJvbVN0YXRlICE9PSB0b1N0YXRlICYmXHJcbiAgICAoXHJcbiAgICAgIC8vIE5PVEU6IFRoZSBjdXJyZW50IHdheSB0aGUgc2lkZSBuYXYgaXMgYmVpbmcgdXNlZCBpdCBjYXVzZXMgdGhlXHJcbiAgICAgIC8vIGNvbXBvbmVudCB0byBzb21ldGltZXMgZ2V0IHBsYWNlZCBpbiB0aGUgd3JvbmcgbG9jYXRpb24gaW5pdGlhbGx5LiBJdFxyXG4gICAgICAvLyBpcyBmYXN0IGVub3VnaCB0byBub3QgYmUgbm90aWNlZCB3aXRob3V0IGFuIGluaXRpYWwgYW5pbWF0aW9uIHVzdWFsbHksXHJcbiAgICAgIC8vIHNvIGl0IGlzIGNvbW1lbnRlZCBvdXQgYmVsb3cgdW50aWwgdGhlIGluaXRpYWwgcGxhY2VtZW50IGlzc3VlIGl0XHJcbiAgICAgIC8vIGZpeGVkLlxyXG4gICAgICAvL1xyXG4gICAgICAvLyAoXHJcbiAgICAgIC8vICAgZnJvbVN0YXRlID09PSAndm9pZCcgJiYgRVhQQU5EX1NUQVRFUy5pbmRleE9mKHRvU3RhdGUpICE9PSAtMVxyXG4gICAgICAvLyAgIHx8XHJcbiAgICAgIC8vICAgdG9TdGF0ZSA9PT0gJ3ZvaWQnICYmIEVYUEFORF9TVEFURVMuaW5kZXhPZihmcm9tU3RhdGUpICE9PSAtMVxyXG4gICAgICAvLyApXHJcbiAgICAgIC8vIHx8XHJcbiAgICAgIChcclxuICAgICAgICAoRVhQQU5ERURfU1RBVEVTLmluZGV4T2YoZnJvbVN0YXRlKSAhPT0gLTEgJiYgQ09MTEFQU0VEX1NUQVRFUy5pbmRleE9mKHRvU3RhdGUpICE9PSAtMSkgfHxcclxuICAgICAgICAoRVhQQU5ERURfU1RBVEVTLmluZGV4T2YodG9TdGF0ZSkgIT09IC0xICYmIENPTExBUFNFRF9TVEFURVMuaW5kZXhPZihmcm9tU3RhdGUpICE9PSAtMSlcclxuICAgICAgKVxyXG4gICAgKVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NlYW0tc2lkZS1uYXYnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWRlLW5hdi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2lkZS1uYXYuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIFRoZVNlYW1TaWRlTmF2U2VydmljZSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogVEhFU0VBTV9TSURFX05BVl9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IFNpZGVOYXZDb21wb25lbnRcclxuICAgIH0sXHJcbiAgXSxcclxuICBhbmltYXRpb25zOiBbXHJcblxyXG4gICAgLy9cclxuICAgIC8vIFRPRE86IFRoaXMgYW5pbWF0aW9uIGNvZGUgdHVybmVkIGludG8gYSBtZXNzLiBDbGVhbiBpdCB1cCBhbmQgbWFrZSBpdFxyXG4gICAgLy8gbW9yZSBzbW9vdGguXHJcbiAgICAvL1xyXG5cclxuICAgIHRyaWdnZXIoJ3NpZGVOYXZBbmltJywgW1xyXG4gICAgICB0cmFuc2l0aW9uKHNpZGVOYXZFeHBhbmRTdGF0ZUNoYW5nZUZuLCBbXHJcbiAgICAgICAgZ3JvdXAoW1xyXG4gICAgICAgICAgcXVlcnkoJ0BzaWRlTmF2QmFja2Ryb3AnLCBhbmltYXRlQ2hpbGQoKSwgeyBvcHRpb25hbDogdHJ1ZSB9KSxcclxuICAgICAgICAgIHF1ZXJ5KCdAc2lkZU5hdkV4cGFuZCcsIGFuaW1hdGVDaGlsZCgpLCB7IG9wdGlvbmFsOiB0cnVlIH0pLFxyXG4gICAgICAgIF0pLFxyXG4gICAgICBdKSxcclxuICAgIF0pLFxyXG5cclxuICAgIHRyaWdnZXIoJ3NpZGVOYXZCYWNrZHJvcCcsIFtcclxuICAgICAgc3RhdGUoRVhQQU5ERURfT1ZFUkxBWV9TVEFURSwgc3R5bGUoeyBvcGFjaXR5OiAnMScgfSkpLFxyXG4gICAgICBzdGF0ZShDT0xMQVBTRURfT1ZFUkxBWV9TVEFURSwgc3R5bGUoeyBvcGFjaXR5OiAnMCcgfSkpLFxyXG5cclxuICAgICAgLy8gdHJhbnNpdGlvbigoZnJvbVN0YXRlLCB0b1N0YXRlLCBlbGVtZW50LCBwYXJhbXMpID0+IHtcclxuICAgICAgLy8gICBjb25zb2xlLmxvZygnc2lkZU5hdkJhY2tkcm9wIHYnLCBmcm9tU3RhdGUsIHRvU3RhdGUsIGVsZW1lbnQsIHBhcmFtcylcclxuICAgICAgLy8gICByZXR1cm4gZmFsc2VcclxuICAgICAgLy8gfSwgW10pLFxyXG5cclxuICAgICAgdHJhbnNpdGlvbihzaWRlTmF2RXhwYW5kU3RhdGVDaGFuZ2VGbiwgYW5pbWF0ZSgnMC4ycyBlYXNlLWluLW91dCcpKSxcclxuICAgIF0pLFxyXG5cclxuICAgIHRyaWdnZXIoJ3NpZGVOYXZFeHBhbmQnLCBbXHJcbiAgICAgIC8vIFRPRE86IE1ha2Ugd2lkdGggY29uZmlndXJhYmxlIGZvciBub24tb3ZlcmxheSBzdGF0ZS5cclxuICAgICAgc3RhdGUoRVhQQU5ERURfU1RBVEUsIHN0eWxlKHsgd2lkdGg6ICcyNjBweCcgfSkpLFxyXG4gICAgICBzdGF0ZShDT0xMQVBTRURfU1RBVEUsIHN0eWxlKHsgd2lkdGg6ICc1MHB4JywgJ292ZXJmbG93LXgnOiAnaGlkZGVuJyB9KSksXHJcblxyXG4gICAgICBzdGF0ZShFWFBBTkRFRF9PVkVSTEFZX1NUQVRFLCBzdHlsZSh7XHJcbiAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcclxuICAgICAgICAgIHRvcDogMCxcclxuICAgICAgICAgIGJvdHRvbTogMCxcclxuICAgICAgICAgIGxlZnQ6IDAsXHJcbiAgICAgICAgICBoZWlnaHQ6ICd7eyBoZWlnaHQgfX0nLFxyXG4gICAgICAgICAgd2lkdGg6ICd7eyB3aWR0aCB9fScsXHJcbiAgICAgICAgICB0cmFuc2Zvcm06ICd7eyBvcmlnaW4gfX0nLFxyXG4gICAgICAgICAgekluZGV4OiAnOTk5OScsXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgICAgIG9yaWdpbjogJ3RyYW5zbGF0ZVgoMTAwJSknLFxyXG4gICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcclxuICAgICAgICAgICAgd2lkdGg6ICdjYWxjKDEwMHZ3IC0gNTBweCknLFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgKSxcclxuICAgICAgc3RhdGUoQ09MTEFQU0VEX09WRVJMQVlfU1RBVEUsIHN0eWxlKHtcclxuICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxyXG4gICAgICAgICAgdG9wOiAwLFxyXG4gICAgICAgICAgYm90dG9tOiAwLFxyXG4gICAgICAgICAgbGVmdDogMCxcclxuICAgICAgICAgIGhlaWdodDogJ3t7IGhlaWdodCB9fScsXHJcbiAgICAgICAgICB3aWR0aDogJ3t7IHdpZHRoIH19JyxcclxuICAgICAgICAgIHRyYW5zZm9ybTogJ3t7IG9yaWdpbiB9fScsXHJcbiAgICAgICAgICAnb3ZlcmZsb3cteCc6ICdoaWRkZW4nLFxyXG4gICAgICAgICAgekluZGV4OiAnOTk5OScsXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgICAgIG9yaWdpbjogJ3RyYW5zbGF0ZVgoMCknLFxyXG4gICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcclxuICAgICAgICAgICAgd2lkdGg6ICdjYWxjKDEwMHZ3IC0gNTBweCknLFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgKSxcclxuXHJcbiAgICAgIC8vIHRyYW5zaXRpb24oYCR7RVhQQU5ERURfU1RBVEV9IDw9PiAke0NPTExBUFNFRF9TVEFURX1gLCBhbmltYXRlKCcwLjJzIGVhc2UtaW4tb3V0JykpLFxyXG5cclxuICAgICAgdHJhbnNpdGlvbihzaWRlTmF2RXhwYW5kU3RhdGVDaGFuZ2VGbiwgYW5pbWF0ZSgnMC4ycyBlYXNlLWluLW91dCcpKSxcclxuXHJcbiAgICAgIC8vIHRyYW5zaXRpb24oYCR7RVhQQU5ERURfU1RBVEV9IDw9PiAke0NPTExBUFNFRF9TVEFURX1gLCBbXHJcbiAgICAgIC8vICAgLy8gcXVlcnkoJzpsZWF2ZScsIGFuaW1hdGVDaGlsZCgpLCB7IG9wdGlvbmFsOiB0cnVlIH0pLFxyXG4gICAgICAvLyAgIC8vIHF1ZXJ5KCc6ZW50ZXInLCBhbmltYXRlQ2hpbGQoKSwgeyBvcHRpb25hbDogdHJ1ZSB9KSxcclxuICAgICAgLy8gICBncm91cChbXHJcbiAgICAgIC8vICAgICBxdWVyeSgnOmxlYXZlJywgYW5pbWF0ZUNoaWxkKCksIHsgb3B0aW9uYWw6IHRydWUgfSksXHJcbiAgICAgIC8vICAgICBxdWVyeSgnOmVudGVyJywgYW5pbWF0ZUNoaWxkKCksIHsgb3B0aW9uYWw6IHRydWUgfSksXHJcbiAgICAgIC8vICAgICBxdWVyeSgnQGNvbXBhY3RBbmltJywgYW5pbWF0ZUNoaWxkKCksIHsgb3B0aW9uYWw6IHRydWUgfSksXHJcbiAgICAgIC8vICAgICBhbmltYXRlKCc1LjJzIGVhc2UtaW4tb3V0JylcclxuICAgICAgLy8gICBdKVxyXG4gICAgICAvLyBdKSxcclxuICAgIF0pXHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBBMTF5TW9kdWxlLFxyXG4gICAgVGhlU2VhbVNjcm9sbGJhck1vZHVsZSxcclxuICAgIFRoZVNlYW1MYXlvdXRNb2R1bGUsXHJcbiAgICBQb3J0YWxNb2R1bGUsXHJcbiAgICBTaWRlTmF2SXRlbUNvbXBvbmVudCxcclxuICAgIFNpZGVOYXZUb2dnbGVDb21wb25lbnQsXHJcbiAgXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaWRlTmF2Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIElUaGVTZWFtQmFzZUxheW91dE5hdiB7XHJcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2hhc0hlYWRlclRvZ2dsZTogQm9vbGVhbklucHV0XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpXHJcblxyXG4gIGZhQmFycyA9IGZhQmFyc1xyXG5cclxuICAvLyBASG9zdEJpbmRpbmcoJ0BzaWRlTmF2RXhwYW5kJykgX3NpZGVOYXZFeHBhbmQgPSBFWFBBTkRFRF9TVEFURVxyXG4gIC8vIF9zaWRlTmF2RXhwYW5kID0gRVhQQU5ERURfU1RBVEVcclxuXHJcbiAgLy8gQEhvc3RCaW5kaW5nKCdAc2lkZU5hdkFuaW0nKSBfc2lkZU5hdkV4cGFuZCA9IEVYUEFOREVEX1NUQVRFXHJcbiAgQEhvc3RCaW5kaW5nKCdAc2lkZU5hdkFuaW0nKSBfc2lkZU5hdkV4cGFuZCA9ICdpbml0aWFsJ1xyXG5cclxuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgaGFzSGVhZGVyVG9nZ2xlID0gdHJ1ZVxyXG5cclxuICBASW5wdXQoKSB0b2dnbGVJY29uOiBTZWFtSWNvbiB8IG51bGwgfCB1bmRlZmluZWQgPSBmYUJhcnNcclxuXHJcbiAgQElucHV0KCkgdG9nZ2xlVHBsOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHwgbnVsbFxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBpdGVtcygpOiBJU2lkZU5hdkl0ZW1bXSB7IHJldHVybiB0aGlzLl9pdGVtcy52YWx1ZSB9XHJcbiAgc2V0IGl0ZW1zKHZhbHVlOiBJU2lkZU5hdkl0ZW1bXSkgeyB0aGlzLl9pdGVtcy5uZXh0KHZhbHVlKSB9XHJcbiAgcHJpdmF0ZSBfaXRlbXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElTaWRlTmF2SXRlbVtdPihbXSlcclxuICBwdWJsaWMgcmVhZG9ubHkgaXRlbXMkOiBPYnNlcnZhYmxlPElTaWRlTmF2SXRlbVtdPlxyXG5cclxuICBASW5wdXQoKSBoaWRlRW1wdHlJY29uOiBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZFxyXG5cclxuICBASW5wdXQoKSBASW5wdXROdW1iZXIoMTApIGluZGVudFNpemUgPSAxMFxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBleHBhbmRlZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2V4cGFuZGVkLnZhbHVlIH1cclxuICBzZXQgZXhwYW5kZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIGNvbnN0IGV4cGFuZGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKVxyXG4gICAgY29uc3QgZW1pdCA9IGV4cGFuZGVkICE9PSB0aGlzLmV4cGFuZGVkXHJcbiAgICB0aGlzLl9leHBhbmRlZC5uZXh0KGV4cGFuZGVkKVxyXG5cclxuICAgIGlmIChlbWl0KSB7XHJcbiAgICAgIHRoaXMudG9nZ2xlRXhwYW5kLmVtaXQoY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKSlcclxuICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBfZXhwYW5kZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpXHJcbiAgcHVibGljIHJlYWRvbmx5IGV4cGFuZGVkJCA9IHRoaXMuX2V4cGFuZGVkLmFzT2JzZXJ2YWJsZSgpXHJcblxyXG4gIEBJbnB1dCgpIGV4cGFuZE9yaWdpbjogJ2xlZnQnIHwgJ3JpZ2h0JyB8ICd0b3AnIHwgJ2JvdHRvbScgPSAnbGVmdCdcclxuXHJcbiAgQElucHV0KCkgZXhwYW5kSGVpZ2h0ID0gJzEwMCUnXHJcblxyXG4gIEBJbnB1dCgpIGV4cGFuZFdpZHRoID0gJ2NhbGMoMTAwdncgLSA1MHB4KSdcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgb3ZlcmxheSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX292ZXJsYXkudmFsdWUgfVxyXG4gIHNldCBvdmVybGF5KHZhbHVlOiBib29sZWFuKSB7IHRoaXMuX292ZXJsYXkubmV4dChjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpKSB9XHJcbiAgcHJpdmF0ZSBfb3ZlcmxheSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpXHJcbiAgcHVibGljIHJlYWRvbmx5IG92ZXJsYXkkID0gdGhpcy5fb3ZlcmxheS5hc09ic2VydmFibGUoKVxyXG5cclxuICBwcml2YXRlIF9tZW51SXRlbVRvb2x0aXBDb25maWc6IFNpZGVOYXZJdGVtTWVudUl0ZW1Ub29sdGlwQ29uZmlnID0ge1xyXG4gICAgcGxhY2VtZW50OiAncmlnaHQnLFxyXG4gICAgY29udGFpbmVyOiAnYm9keScsXHJcbiAgICBiZWhhdmlvcjogJ2Fsd2F5cydcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IG1lbnVJdGVtVG9vbHRpcENvbmZpZygpIHsgcmV0dXJuIHRoaXMuX21lbnVJdGVtVG9vbHRpcENvbmZpZyB9XHJcbiAgc2V0IG1lbnVJdGVtVG9vbHRpcENvbmZpZyh2YWx1ZTogU2lkZU5hdkl0ZW1NZW51SXRlbVRvb2x0aXBDb25maWcgfCB1bmRlZmluZWQgfCBudWxsKSB7XHJcbiAgICB0aGlzLl9tZW51SXRlbVRvb2x0aXBDb25maWcgPSB7XHJcbiAgICAgIGNsYXNzOiB2YWx1ZT8uY2xhc3MsXHJcbiAgICAgIHBsYWNlbWVudDogdmFsdWU/LnBsYWNlbWVudCB8fCB0aGlzLl9tZW51SXRlbVRvb2x0aXBDb25maWcucGxhY2VtZW50LFxyXG4gICAgICBjb250YWluZXI6IHZhbHVlPy5jb250YWluZXIgfHwgdGhpcy5fbWVudUl0ZW1Ub29sdGlwQ29uZmlnLmNvbnRhaW5lcixcclxuICAgICAgYmVoYXZpb3I6IHZhbHVlPy5iZWhhdmlvciB8fCB0aGlzLl9tZW51SXRlbVRvb2x0aXBDb25maWcuYmVoYXZpb3JcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBtZW51SXRlbVRvb2x0aXBEaXNhYmxlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gfCB1bmRlZmluZWQgfCBudWxsXHJcblxyXG4gIEBPdXRwdXQoKSB0b2dnbGVFeHBhbmQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KClcclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IGlzTW9iaWxlJDogT2JzZXJ2YWJsZTxib29sZWFuPlxyXG4gIHB1YmxpYyByZWFkb25seSBzaWRlTmF2RXhwYW5kZWRTdGF0ZSQ6IE9ic2VydmFibGU8c3RyaW5nPlxyXG4gIHB1YmxpYyBfYmFja2Ryb3BIaWRkZW4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpXHJcblxyXG4gIEBDb250ZW50Q2hpbGQoQmFzZUxheW91dFNpZGVCYXJIZWFkZXJEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBUZW1wbGF0ZVJlZiB9KSBfc2lkZUJhckhlYWRlclRwbD86IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsXHJcbiAgX3NpZGVCYXJIZWFkZXJQb3J0YWw/OiBUZW1wbGF0ZVBvcnRhbFxyXG5cclxuICBAQ29udGVudENoaWxkKEJhc2VMYXlvdXRTaWRlQmFyRm9vdGVyRGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogVGVtcGxhdGVSZWYgfSkgX3NpZGVCYXJGb290ZXJUcGw/OiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbFxyXG4gIF9zaWRlQmFyRm9vdGVyUG9ydGFsPzogVGVtcGxhdGVQb3J0YWxcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbGF5b3V0OiBUaGVTZWFtTGF5b3V0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3NpZGVOYXY6IFRoZVNlYW1TaWRlTmF2U2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVEhFU0VBTV9TSURFX05BVl9DT05GSUcpIHByaXZhdGUgcmVhZG9ubHkgX2NvbmZpZz86IFNpZGVOYXZDb25maWcsXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFRIRVNFQU1fQkFTRV9MQVlPVVRfUkVGKSBwcml2YXRlIHJlYWRvbmx5IF9iYXNlTGF5b3V0UmVmPzogSVRoZVNlYW1CYXNlTGF5b3V0UmVmXHJcbiAgKSB7XHJcbiAgICBjb25zdCBjb25maWc6IFNpZGVOYXZDb25maWcgPSB7XHJcbiAgICAgIC4uLkRFRkFVTFRfU0lERV9OQVZfQ09ORklHLFxyXG4gICAgICAuLi4odGhpcy5fY29uZmlnIHx8IHt9KSxcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLml0ZW1zJCA9IHRoaXMuX2l0ZW1zLmFzT2JzZXJ2YWJsZSgpLnBpcGUoXHJcbiAgICAgIG1hcChpdGVtcyA9PiAoaXRlbXMgJiYgY29uZmlnKSA/IGl0ZW1zLm1hcChpdG0gPT4gYXBwbHlJdGVtQ29uZmlnKGl0bSwgY29uZmlnKSkgOiBbXSksXHJcbiAgICAgIHN3aXRjaE1hcChpdGVtcyA9PiBpdGVtcyA/IHRoaXMuX3NpZGVOYXYuY3JlYXRlSXRlbXNPYnNlcnZhYmxlKGl0ZW1zKSA6IFtdKSxcclxuICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KSxcclxuICAgIClcclxuXHJcbiAgICB0aGlzLmlzTW9iaWxlJCA9IHRoaXMuX2xheW91dC5pc01vYmlsZSQucGlwZShcclxuICAgICAgdGFwKGlzTW9iaWxlID0+IGlzTW9iaWxlID8gdGhpcy5jb2xsYXBzZSgpIDogdGhpcy5leHBhbmQoKSlcclxuICAgIClcclxuXHJcbiAgICB0aGlzLnNpZGVOYXZFeHBhbmRlZFN0YXRlJCA9IGNvbWJpbmVMYXRlc3QoWyB0aGlzLmV4cGFuZGVkJCwgdGhpcy5vdmVybGF5JCBdKS5waXBlKFxyXG4gICAgICBtYXAoKFsgZXhwYW5kZWQsIG92ZXJsYXkgXSkgPT4gZXhwYW5kZWRcclxuICAgICAgICA/IG92ZXJsYXkgPyBFWFBBTkRFRF9PVkVSTEFZX1NUQVRFIDogRVhQQU5ERURfU1RBVEVcclxuICAgICAgICA6IG92ZXJsYXkgPyBDT0xMQVBTRURfT1ZFUkxBWV9TVEFURSA6IENPTExBUFNFRF9TVEFURVxyXG4gICAgICApLFxyXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXHJcbiAgICApXHJcblxyXG4gICAgdGhpcy5tZW51SXRlbVRvb2x0aXBEaXNhYmxlZCQgPSBjb21iaW5lTGF0ZXN0KFsgdGhpcy5leHBhbmRlZCQsIHRoaXMub3ZlcmxheSQgXSkucGlwZShcclxuICAgICAgbWFwKChbIGV4cGFuZGVkLCBvdmVybGF5IF0pID0+IHtcclxuICAgICAgICAvLyBuZXZlciBkaXNwbGF5IHRvb2x0aXAgb24gbW9iaWxlLCBpdCBicmVha3MgdGhlIGxheW91dFxyXG4gICAgICAgIGlmIChvdmVybGF5KSB7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMubWVudUl0ZW1Ub29sdGlwQ29uZmlnPy5iZWhhdmlvciA9PT0gJ2Fsd2F5cycgPyBmYWxzZVxyXG4gICAgICAgICAgOiB0aGlzLm1lbnVJdGVtVG9vbHRpcENvbmZpZz8uYmVoYXZpb3IgPT09ICduZXZlcicgPyB0cnVlXHJcbiAgICAgICAgICA6IHRoaXMubWVudUl0ZW1Ub29sdGlwQ29uZmlnPy5iZWhhdmlvciA9PT0gJ2NvbGxhcHNlT25seScgPyBleHBhbmRlZCA6IHRydWVcclxuICAgICAgfSksXHJcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcclxuICAgIClcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuX2Jhc2VMYXlvdXRSZWYpIHsgdGhpcy5fYmFzZUxheW91dFJlZi5yZWdpc3Rlck5hdih0aGlzKSB9XHJcblxyXG4gICAgdGhpcy5pc01vYmlsZSRcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX25nVW5zdWJzY3JpYmUpKVxyXG4gICAgICAuc3Vic2NyaWJlKGIgPT4gdGhpcy5vdmVybGF5ID0gYilcclxuXHJcbiAgICB0aGlzLnNpZGVOYXZFeHBhbmRlZFN0YXRlJFxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fbmdVbnN1YnNjcmliZSkpXHJcbiAgICAgIC5zdWJzY3JpYmUodiA9PiB0aGlzLl9zaWRlTmF2RXhwYW5kID0gdilcclxuXHJcbiAgICBpZiAodGhpcy5fc2lkZUJhckhlYWRlclRwbCkge1xyXG4gICAgICB0aGlzLl9zaWRlQmFySGVhZGVyUG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuX3NpZGVCYXJIZWFkZXJUcGwsIHRoaXMuX3ZpZXdDb250YWluZXJSZWYpXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuX3NpZGVCYXJGb290ZXJUcGwpIHtcclxuICAgICAgdGhpcy5fc2lkZUJhckZvb3RlclBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLl9zaWRlQmFyRm9vdGVyVHBsLCB0aGlzLl92aWV3Q29udGFpbmVyUmVmKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLm5leHQodW5kZWZpbmVkKVxyXG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpXHJcbiAgICBpZiAodGhpcy5fYmFzZUxheW91dFJlZikgeyB0aGlzLl9iYXNlTGF5b3V0UmVmLnVucmVnaXN0ZXJOYXYodGhpcykgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGV4cGFuZCgpIHtcclxuICAgIHRoaXMuZXhwYW5kZWQgPSB0cnVlXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29sbGFwc2UoKSB7XHJcbiAgICB0aGlzLmV4cGFuZGVkID0gZmFsc2VcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b2dnbGUoKSB7XHJcbiAgICB0aGlzLmV4cGFuZGVkID0gIXRoaXMuZXhwYW5kZWRcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhbmltYXRlU3RhcnQoKSB7XHJcbiAgICBpZiAodGhpcy5leHBhbmRlZCkge1xyXG4gICAgICB0aGlzLl9iYWNrZHJvcEhpZGRlbi5uZXh0KGZhbHNlKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFuaW1hdGVFbmQoKSB7XHJcbiAgICBpZiAoIXRoaXMuZXhwYW5kZWQpIHtcclxuICAgICAgdGhpcy5fYmFja2Ryb3BIaWRkZW4ubmV4dCh0cnVlKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGV4cGFuZE9yaWdpblRyYW5zZm9ybSgpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIHN3aXRjaCAodGhpcy5leHBhbmRPcmlnaW4pIHtcclxuICAgICAgY2FzZSAncmlnaHQnOlxyXG4gICAgICAgIHJldHVybiB0aGlzLl9zaWRlTmF2RXhwYW5kID09PSBFWFBBTkRFRF9PVkVSTEFZX1NUQVRFID8gJ3RyYW5zbGF0ZVgoMTAwdncpIHRyYW5zbGF0ZVgoLTEwMCUpJ1xyXG4gICAgICAgICAgICA6IHRoaXMuX3NpZGVOYXZFeHBhbmQgPT09IENPTExBUFNFRF9PVkVSTEFZX1NUQVRFID8gJ3RyYW5zbGF0ZVgoMTAwdncpJyA6IG51bGxcclxuICAgICAgY2FzZSAndG9wJzpcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2lkZU5hdkV4cGFuZCA9PT0gRVhQQU5ERURfT1ZFUkxBWV9TVEFURSA/ICd0cmFuc2xhdGVZKDApJ1xyXG4gICAgICAgICAgICA6IHRoaXMuX3NpZGVOYXZFeHBhbmQgPT09IENPTExBUFNFRF9PVkVSTEFZX1NUQVRFID8gJ3RyYW5zbGF0ZVkoLTEwMCUpJyA6IG51bGxcclxuICAgICAgY2FzZSAnYm90dG9tJzpcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2lkZU5hdkV4cGFuZCA9PT0gRVhQQU5ERURfT1ZFUkxBWV9TVEFURSA/ICd0cmFuc2xhdGVZKDEwMHZoKSB0cmFuc2xhdGVZKC0xMDAlKSdcclxuICAgICAgICAgICAgOiB0aGlzLl9zaWRlTmF2RXhwYW5kID09PSBDT0xMQVBTRURfT1ZFUkxBWV9TVEFURSA/ICd0cmFuc2xhdGVZKDEwMHZoKScgOiBudWxsXHJcbiAgICAgIGNhc2UgJ2xlZnQnOlxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiB0aGlzLl9zaWRlTmF2RXhwYW5kID09PSBFWFBBTkRFRF9PVkVSTEFZX1NUQVRFID8gJ3RyYW5zbGF0ZVgoMCknXHJcbiAgICAgICAgICAgIDogdGhpcy5fc2lkZU5hdkV4cGFuZCA9PT0gQ09MTEFQU0VEX09WRVJMQVlfU1RBVEUgPyAndHJhbnNsYXRlWCgtMTAwJSknIDogbnVsbFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInNpZGUtbmF2LWJhY2tkcm9wXCIgKm5nSWY9XCJpc01vYmlsZSQgfCBhc3luY1wiXHJcbiAgW0BzaWRlTmF2QmFja2Ryb3BdPVwiX3NpZGVOYXZFeHBhbmRcIlxyXG4gIFtjbGFzcy5zaWRlLW5hdi1iYWNrZHJvcC1oaWRkZW5dPVwiX2JhY2tkcm9wSGlkZGVuIHwgYXN5bmNcIlxyXG4gIChjbGljayk9XCJjb2xsYXBzZSgpXCI+PC9kaXY+XHJcblxyXG48ZGl2XHJcbiAgY2xhc3M9XCJzaWRlLW5hdi1pbm5lci13cmFwcGVyXCJcclxuICBbQHNpZGVOYXZFeHBhbmRdPVwie1xyXG4gICAgdmFsdWU6IF9zaWRlTmF2RXhwYW5kLFxyXG4gICAgcGFyYW1zOiB7XHJcbiAgICAgIG9yaWdpbjogZXhwYW5kT3JpZ2luVHJhbnNmb3JtLFxyXG4gICAgICBoZWlnaHQ6IGV4cGFuZEhlaWdodCxcclxuICAgICAgd2lkdGg6IGV4cGFuZFdpZHRoXHJcbiAgICB9XHJcbiAgfVwiXHJcbiAgKEBzaWRlTmF2RXhwYW5kLnN0YXJ0KT1cImFuaW1hdGVTdGFydCgpXCJcclxuICAoQHNpZGVOYXZFeHBhbmQuZG9uZSk9XCJhbmltYXRlRW5kKClcIj5cclxuICA8bmF2IGNsYXNzPVwibmF2IHNpZGUtbmF2LWNvbnRlbnRcIj5cclxuICAgIDxzZWFtLXNpZGUtbmF2LXRvZ2dsZSAqbmdJZj1cImhhc0hlYWRlclRvZ2dsZVwiXHJcbiAgICAgIFt0b2dnbGVJY29uXT1cInRvZ2dsZUljb25cIlxyXG4gICAgICBbdG9nZ2xlVHBsXT1cInRvZ2dsZVRwbFwiXHJcbiAgICAgIFtleHBhbmRlZF09XCJleHBhbmRlZCQgfCBhc3luY1wiXHJcbiAgICAgICh0b2dnbGVFeHBhbmQpPVwidG9nZ2xlKClcIj5cclxuICAgICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwiX3NpZGVCYXJIZWFkZXJQb3J0YWxcIj48L25nLXRlbXBsYXRlPlxyXG4gICAgPC9zZWFtLXNpZGUtbmF2LXRvZ2dsZT5cclxuICAgIDxkaXYgY2xhc3M9XCJzaWRlLW5hdi1pdGVtcy1jb250YWluZXJcIiBzZWFtT3ZlcmxheVNjcm9sbGJhcj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNpZGUtbmF2LS1ncm91cCBzaWRlLW5hdi0tZ3JvdXAtLWxldmVsLTBcIj5cclxuICAgICAgICA8c2VhbS1zaWRlLW5hdi1pdGVtICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zJCB8IGFzeW5jXCJcclxuICAgICAgICAgIFtjb21wYWN0XT1cIiEoZXhwYW5kZWQkIHwgYXN5bmMpXCJcclxuICAgICAgICAgIFtpc01vYmlsZV09XCJpc01vYmlsZSQgfCBhc3luY1wiXHJcbiAgICAgICAgICBbaXRlbVR5cGVdPVwiJGFueShpdGVtKT8uaXRlbVR5cGVcIlxyXG4gICAgICAgICAgW2ljb25dPVwiJGFueShpdGVtKT8uaWNvblwiXHJcbiAgICAgICAgICBbbGFiZWxdPVwiJGFueShpdGVtKT8ubGFiZWxcIlxyXG4gICAgICAgICAgW2xpbmtdPVwiJGFueShpdGVtKT8ubGlua1wiXHJcbiAgICAgICAgICBbYmFkZ2VUZXh0XT1cIiRhbnkoaXRlbSk/LmJhZGdlPy50ZXh0XCJcclxuICAgICAgICAgIFtiYWRnZVRoZW1lXT1cIiRhbnkoaXRlbSk/LmJhZGdlPy50aGVtZSB8fCAnZGFuZ2VyJ1wiXHJcbiAgICAgICAgICBbYmFkZ2VTckNvbnRlbnRdPVwiJGFueShpdGVtKT8uYmFkZ2U/LnNyQ29udGVudFwiXHJcbiAgICAgICAgICBbYmFkZ2VUb29sdGlwXT1cIiRhbnkoaXRlbSk/LmJhZGdlPy50b29sdGlwXCJcclxuICAgICAgICAgIFtxdWVyeVBhcmFtc109XCIkYW55KGl0ZW0pPy5xdWVyeVBhcmFtc1wiXHJcbiAgICAgICAgICBbY2hpbGRyZW5dPVwiJGFueShpdGVtKT8uY2hpbGRyZW5cIlxyXG4gICAgICAgICAgW2FjdGl2ZV09XCIkYW55KGl0ZW0pLl9fc3RhdGU/LmFjdGl2ZVwiXHJcbiAgICAgICAgICBbZXhwYW5kZWRdPVwiJGFueShpdGVtKS5fX3N0YXRlPy5leHBhbmRlZFwiXHJcbiAgICAgICAgICBbaGlkZUVtcHR5SWNvbl09XCJoaWRlRW1wdHlJY29uXCJcclxuICAgICAgICAgIFtpbmRlbnRTaXplXT1cImluZGVudFNpemVcIlxyXG4gICAgICAgICAgW21lbnVJdGVtVG9vbHRpcENvbmZpZ109XCJtZW51SXRlbVRvb2x0aXBDb25maWdcIlxyXG4gICAgICAgICAgW21lbnVJdGVtVG9vbHRpcERpc2FibGVkXT1cIm1lbnVJdGVtVG9vbHRpcERpc2FibGVkJCB8IGFzeW5jXCI+XHJcbiAgICAgICAgICBbYWN0aXZlTmF2aWdhdGFibGVdPVwiJGFueShpdGVtKS5hY3RpdmVOYXZpZ2F0YWJsZVwiPlxyXG4gICAgICAgIDwvc2VhbS1zaWRlLW5hdi1pdGVtPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwiX3NpZGVCYXJGb290ZXJQb3J0YWxcIj48L25nLXRlbXBsYXRlPlxyXG4gIDwvbmF2PlxyXG48L2Rpdj5cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1uYXYubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2ZyYW1ld29yay9zaWRlLW5hdi9zaWRlLW5hdi5tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElzQWN0aXZlTWF0Y2hPcHRpb25zLCBVcmxDcmVhdGlvbk9wdGlvbnMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5pbXBvcnQgeyBTZWFtSWNvbiB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9pY29uJ1xuaW1wb3J0IHR5cGUgeyBUaGVtZVR5cGVzIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL21vZGVscydcblxuaW1wb3J0IHsgU2lkZU5hdkl0ZW1CYWRnZVRvb2x0aXAgfSBmcm9tICcuL3NpZGUtbmF2LWl0ZW0vc2lkZS1uYXYtaXRlbS5jb21wb25lbnQnXG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNpZGVOYXZJdGVtU3RhdGUge1xuICAvLyBwYXJlbnQ/OiBJU2lkZU5hdkl0ZW1cbiAgYWN0aXZlOiBib29sZWFuXG4gIGV4cGFuZGVkOiBib29sZWFuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lkZU5hdkl0ZW1DYW5IYXZlU3RhdGUge1xuICAvKipcbiAgICogVGhpcyBwcm9wIGlzIG1hbmFnZWQgYnkgdGhlIFNpZGVOYXYuIElmIG1hbnVhbGx5IHNldCBpdCB3aWxsIGJlIG92ZXJ3cml0dGVuLlxuICAgKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICAgX19zdGF0ZT86IElTaWRlTmF2SXRlbVN0YXRlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lkZU5hdkl0ZW1DYW5CZUFjdGl2ZSB7XG4gIC8qKlxuICAgKiBDYW4gbmF2aWdhdGUsIHdoZW4gYWN0aXZlLlxuICAgKlxuICAgKiBFbmFibGUgaWYgeW91IG5lZWQgdG8gcmVjZWl2ZSBldmVudHMgd2hlbiB0aGUgaXRlbSBpcyBhbHJlYWR5IGFjdGl2ZSwgc3VjaFxuICAgKiBhcyBvYnNlcnZpbmcgYE5hdmlnYXRpb25Ta2lwcGVkYCByb3V0ZXIgZXZlbnRzLlxuICAgKlxuICAgKiBEZWZhdWx0OiBmYWxzZVxuICAgKi9cbiAgYWN0aXZlTmF2aWdhdGFibGU/OiBib29sZWFuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lkZU5hdkl0ZW1DYW5IYXZlQ2hpbGRyZW4ge1xuICBjaGlsZHJlbj86IElTaWRlTmF2SXRlbVtdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNpZGVOYXZJdGVtQmFzZTxUIGV4dGVuZHMgc3RyaW5nPiBleHRlbmRzIFNpZGVOYXZJdGVtQ2FuSGF2ZVN0YXRlIHtcbiAgLyoqXG4gICAqIGRlZmF1bHQ6ICdyb3V0ZSdcbiAgICovXG4gIGl0ZW1UeXBlPzogVFxuXG4gIGJhZGdlPzogSVNpZGVOYXZCYWRnZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTaWRlTmF2VGl0bGUgZXh0ZW5kcyBJU2lkZU5hdkl0ZW1CYXNlPCd0aXRsZSc+IHtcbiAgbGFiZWw/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2lkZU5hdkRpdmlkZXIgZXh0ZW5kcyBJU2lkZU5hdkl0ZW1CYXNlPCdkaXZpZGVyJz4ge1xuICBsYWJlbD86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTaWRlTmF2QmFkZ2Uge1xuXG4gIHRleHQ/OiBzdHJpbmdcblxuICB0aGVtZT86IFRoZW1lVHlwZXNcblxuICAvKipcbiAgICogQ29udGVudCB0byBwcm92aWRlIHRvIGFzc2lzdGl2ZSB0ZWNobm9sb2d5LCBzdWNoIGFzIHNjcmVlbiByZWFkZXJzLlxuICAgKi9cbiAgc3JDb250ZW50Pzogc3RyaW5nXG5cbiAgdG9vbHRpcD86IHN0cmluZyB8IFNpZGVOYXZJdGVtQmFkZ2VUb29sdGlwXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNpZGVOYXZCYXNpYyBleHRlbmRzIElTaWRlTmF2SXRlbUJhc2U8J2Jhc2ljJz4sIFNpZGVOYXZJdGVtQ2FuSGF2ZUNoaWxkcmVuIHtcbiAgaWNvbj86IFNlYW1JY29uXG4gIGxhYmVsOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2lkZU5hdkxpbmsgZXh0ZW5kcyBJU2lkZU5hdkl0ZW1CYXNlPCdsaW5rJz4sXG4gIFBhcnRpYWw8UGljazxVcmxDcmVhdGlvbk9wdGlvbnMsICdxdWVyeVBhcmFtcycgfCAnZnJhZ21lbnQnIHwgJ3F1ZXJ5UGFyYW1zSGFuZGxpbmcnIHwgJ3ByZXNlcnZlRnJhZ21lbnQnPj4sXG4gIFNpZGVOYXZJdGVtQ2FuSGF2ZUNoaWxkcmVuLFxuICBTaWRlTmF2SXRlbUNhbkJlQWN0aXZlIHtcbiAgaWNvbj86IFNlYW1JY29uXG4gIGxhYmVsOiBzdHJpbmdcblxuICBsaW5rPzogYW55W10gfCBzdHJpbmdcblxuICAvKipcbiAgICogRGVmYXVsdDogeyBwYXRoczogJ3N1YnNldCcsIHF1ZXJ5UGFyYW1zOiAnc3Vic2V0JywgZnJhZ21lbnQ6ICdpZ25vcmVkJywgbWF0cml4UGFyYW1zOiAnaWdub3JlZCcgfVxuICAgKi9cbiAgbWF0Y2hPcHRpb25zPzogUGFydGlhbDxJc0FjdGl2ZU1hdGNoT3B0aW9ucz5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2lkZU5hdkJ1dHRvbiBleHRlbmRzIElTaWRlTmF2SXRlbUJhc2U8J2J1dHRvbic+LCBTaWRlTmF2SXRlbUNhbkJlQWN0aXZlIHtcbiAgb25DbGljazogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkXG59XG5cbmV4cG9ydCB0eXBlIElTaWRlTmF2SXRlbSA9IElTaWRlTmF2VGl0bGUgfCBJU2lkZU5hdkRpdmlkZXIgfCBJU2lkZU5hdkJhc2ljIHwgSVNpZGVOYXZMaW5rIHwgSVNpZGVOYXZCdXR0b25cblxuZXhwb3J0IGludGVyZmFjZSBTaWRlTmF2SXRlbVN0YXRlQ2hhbmdlZCB7XG4gIGl0ZW06IElTaWRlTmF2SXRlbVxuICBwcm9wOiBzdHJpbmdcbiAgcHJldlZhbHVlOiBhbnlcbiAgbmV3VmFsdWU6IGFueVxufVxuXG4vKipcbiAqIFdoZW4gYG5ldmVyYCwgbWVudSBpdGVtIHRvb2x0aXAgaXMgYWx3YXlzIGRpc2FibGVkLlxuICogV2hlbiBgYWx3YXlzYCwgbWVudSBpdGVtIHRvb2x0aXAgaXMgYWx3YXlzIGVuYWJsZWQuXG4gKiBXaGVuIGBjb2xsYXBzZU9ubHlgLCBtZW51IGl0ZW0gdG9vbHRpcCBpcyBlbmFibGVkIG9ubHkgd2hlbiB0aGUgc2lkZW5hdiBpcyBjb2xsYXBzZWQuXG4gKi9cbmV4cG9ydCB0eXBlIFNpZGVOYXZJdGVtTWVudUl0ZW1Ub29sdGlwQmVoYXZpb3IgPSAnbmV2ZXInIHwgJ2Fsd2F5cycgfCAnY29sbGFwc2VPbmx5J1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpZGVOYXZJdGVtTWVudUl0ZW1Ub29sdGlwQ29uZmlnIHtcbiAgY2xhc3M/OiBzdHJpbmdcbiAgcGxhY2VtZW50Pzogc3RyaW5nXG4gIGNvbnRhaW5lcj86IHN0cmluZ1xuICBiZWhhdmlvcj86IFNpZGVOYXZJdGVtTWVudUl0ZW1Ub29sdGlwQmVoYXZpb3Jcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1uYXYubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2ZyYW1ld29yay9zaWRlLW5hdi9zaWRlLW5hdi5tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElzQWN0aXZlTWF0Y2hPcHRpb25zLCBVcmxDcmVhdGlvbk9wdGlvbnMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5pbXBvcnQgeyBTZWFtSWNvbiB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9pY29uJ1xuaW1wb3J0IHR5cGUgeyBUaGVtZVR5cGVzIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL21vZGVscydcblxuZXhwb3J0IGludGVyZmFjZSBJU2lkZU5hdkl0ZW1TdGF0ZSB7XG4gIC8vIHBhcmVudD86IElTaWRlTmF2SXRlbVxuICBhY3RpdmU6IGJvb2xlYW5cbiAgZXhwYW5kZWQ6IGJvb2xlYW5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWRlTmF2SXRlbUNhbkhhdmVTdGF0ZSB7XG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgbWFuYWdlZCBieSB0aGUgU2lkZU5hdi4gSWYgbWFudWFsbHkgc2V0IGl0IHdpbGwgYmUgb3ZlcndyaXR0ZW4uXG4gICAqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gICBfX3N0YXRlPzogSVNpZGVOYXZJdGVtU3RhdGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWRlTmF2SXRlbUNhbkJlQWN0aXZlIHtcbiAgLyoqXG4gICAqIENhbiBuYXZpZ2F0ZSwgd2hlbiBhY3RpdmUuXG4gICAqXG4gICAqIEVuYWJsZSBpZiB5b3UgbmVlZCB0byByZWNlaXZlIGV2ZW50cyB3aGVuIHRoZSBpdGVtIGlzIGFscmVhZHkgYWN0aXZlLCBzdWNoXG4gICAqIGFzIG9ic2VydmluZyBgTmF2aWdhdGlvblNraXBwZWRgIHJvdXRlciBldmVudHMuXG4gICAqXG4gICAqIERlZmF1bHQ6IGZhbHNlXG4gICAqL1xuICBhY3RpdmVOYXZpZ2F0YWJsZT86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWRlTmF2SXRlbUNhbkhhdmVDaGlsZHJlbiB7XG4gIGNoaWxkcmVuPzogSVNpZGVOYXZJdGVtW11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2lkZU5hdkl0ZW1CYXNlPFQgZXh0ZW5kcyBzdHJpbmc+IGV4dGVuZHMgU2lkZU5hdkl0ZW1DYW5IYXZlU3RhdGUge1xuICAvKipcbiAgICogZGVmYXVsdDogJ3JvdXRlJ1xuICAgKi9cbiAgaXRlbVR5cGU/OiBUXG5cbiAgYmFkZ2U/OiBJU2lkZU5hdkJhZGdlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNpZGVOYXZUaXRsZSBleHRlbmRzIElTaWRlTmF2SXRlbUJhc2U8J3RpdGxlJz4ge1xuICBsYWJlbD86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTaWRlTmF2RGl2aWRlciBleHRlbmRzIElTaWRlTmF2SXRlbUJhc2U8J2RpdmlkZXInPiB7XG4gIGxhYmVsPzogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNpZGVOYXZCYWRnZSB7XG5cbiAgdGV4dD86IHN0cmluZ1xuXG4gIHRoZW1lPzogVGhlbWVUeXBlc1xuXG4gIC8qKlxuICAgKiBDb250ZW50IHRvIHByb3ZpZGUgdG8gYXNzaXN0aXZlIHRlY2hub2xvZ3ksIHN1Y2ggYXMgc2NyZWVuIHJlYWRlcnMuXG4gICAqL1xuICBzckNvbnRlbnQ/OiBzdHJpbmdcblxuICB0b29sdGlwPzogc3RyaW5nIHwgU2lkZU5hdkl0ZW1CYWRnZVRvb2x0aXBcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2lkZU5hdkJhc2ljIGV4dGVuZHMgSVNpZGVOYXZJdGVtQmFzZTwnYmFzaWMnPiwgU2lkZU5hdkl0ZW1DYW5IYXZlQ2hpbGRyZW4ge1xuICBpY29uPzogU2VhbUljb25cbiAgbGFiZWw6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTaWRlTmF2TGluayBleHRlbmRzIElTaWRlTmF2SXRlbUJhc2U8J2xpbmsnPixcbiAgUGFydGlhbDxQaWNrPFVybENyZWF0aW9uT3B0aW9ucywgJ3F1ZXJ5UGFyYW1zJyB8ICdmcmFnbWVudCcgfCAncXVlcnlQYXJhbXNIYW5kbGluZycgfCAncHJlc2VydmVGcmFnbWVudCc+PixcbiAgU2lkZU5hdkl0ZW1DYW5IYXZlQ2hpbGRyZW4sXG4gIFNpZGVOYXZJdGVtQ2FuQmVBY3RpdmUge1xuICBpY29uPzogU2VhbUljb25cbiAgbGFiZWw6IHN0cmluZ1xuXG4gIGxpbms/OiBhbnlbXSB8IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBEZWZhdWx0OiB7IHBhdGhzOiAnc3Vic2V0JywgcXVlcnlQYXJhbXM6ICdzdWJzZXQnLCBmcmFnbWVudDogJ2lnbm9yZWQnLCBtYXRyaXhQYXJhbXM6ICdpZ25vcmVkJyB9XG4gICAqL1xuICBtYXRjaE9wdGlvbnM/OiBQYXJ0aWFsPElzQWN0aXZlTWF0Y2hPcHRpb25zPlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTaWRlTmF2QnV0dG9uIGV4dGVuZHMgSVNpZGVOYXZJdGVtQmFzZTwnYnV0dG9uJz4sIFNpZGVOYXZJdGVtQ2FuQmVBY3RpdmUge1xuICBvbkNsaWNrOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWRcbn1cblxuZXhwb3J0IHR5cGUgSVNpZGVOYXZJdGVtID0gSVNpZGVOYXZUaXRsZSB8IElTaWRlTmF2RGl2aWRlciB8IElTaWRlTmF2QmFzaWMgfCBJU2lkZU5hdkxpbmsgfCBJU2lkZU5hdkJ1dHRvblxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZGVOYXZJdGVtU3RhdGVDaGFuZ2VkIHtcbiAgaXRlbTogSVNpZGVOYXZJdGVtXG4gIHByb3A6IHN0cmluZ1xuICBwcmV2VmFsdWU6IGFueVxuICBuZXdWYWx1ZTogYW55XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lkZU5hdkl0ZW1CYWRnZVRvb2x0aXAge1xuICB0b29sdGlwPzogc3RyaW5nXG4gIGNsYXNzPzogc3RyaW5nXG4gIHBsYWNlbWVudD86IHN0cmluZ1xuICBjb250YWluZXI/OiBzdHJpbmdcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbi8qKlxuICogV2hlbiBgbmV2ZXJgLCBtZW51IGl0ZW0gdG9vbHRpcCBpcyBhbHdheXMgZGlzYWJsZWQuXG4gKiBXaGVuIGBhbHdheXNgLCBtZW51IGl0ZW0gdG9vbHRpcCBpcyBhbHdheXMgZW5hYmxlZC5cbiAqIFdoZW4gYGNvbGxhcHNlT25seWAsIG1lbnUgaXRlbSB0b29sdGlwIGlzIGVuYWJsZWQgb25seSB3aGVuIHRoZSBzaWRlbmF2IGlzIGNvbGxhcHNlZC5cbiAqL1xuZXhwb3J0IHR5cGUgU2lkZU5hdkl0ZW1NZW51SXRlbVRvb2x0aXBCZWhhdmlvciA9ICduZXZlcicgfCAnYWx3YXlzJyB8ICdjb2xsYXBzZU9ubHknXG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lkZU5hdkl0ZW1NZW51SXRlbVRvb2x0aXBDb25maWcge1xuICBjbGFzcz86IHN0cmluZ1xuICBwbGFjZW1lbnQ/OiBzdHJpbmdcbiAgY29udGFpbmVyPzogc3RyaW5nXG4gIGJlaGF2aW9yPzogU2lkZU5hdkl0ZW1NZW51SXRlbVRvb2x0aXBCZWhhdmlvclxufVxuIl19
@@ -1,62 +1,32 @@
1
- import { PortalModule } from '@angular/cdk/portal';
2
- import { A11yModule } from '@angular/cdk/a11y';
3
- import { CommonModule } from '@angular/common';
4
1
  import { NgModule } from '@angular/core';
5
- import { RouterModule } from '@angular/router';
6
- import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';
7
- import { TheSeamIconModule } from '@theseam/ui-common/icon';
8
- import { TheSeamLayoutModule } from '@theseam/ui-common/layout';
9
- import { TheSeamScrollbarModule } from '@theseam/ui-common/scrollbar';
10
2
  import { SideNavItemComponent } from './side-nav-item/side-nav-item.component';
11
3
  import { SideNavToggleComponent } from './side-nav-toggle/side-nav-toggle.component';
12
4
  import { SideNavComponent } from './side-nav.component';
13
5
  import * as i0 from "@angular/core";
14
6
  export class TheSeamSideNavModule {
15
7
  }
16
- TheSeamSideNavModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSideNavModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
- TheSeamSideNavModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSideNavModule, declarations: [SideNavItemComponent,
8
+ TheSeamSideNavModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamSideNavModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ TheSeamSideNavModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: TheSeamSideNavModule, imports: [SideNavItemComponent,
18
10
  SideNavComponent,
19
- SideNavToggleComponent], imports: [CommonModule,
20
- RouterModule,
21
- TheSeamIconModule,
22
- A11yModule,
23
- TheSeamScrollbarModule,
24
- TheSeamLayoutModule,
25
- NgbTooltipModule,
26
- PortalModule], exports: [SideNavItemComponent,
11
+ SideNavToggleComponent], exports: [SideNavItemComponent,
27
12
  SideNavComponent,
28
13
  SideNavToggleComponent] });
29
- TheSeamSideNavModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSideNavModule, imports: [CommonModule,
30
- RouterModule,
31
- TheSeamIconModule,
32
- A11yModule,
33
- TheSeamScrollbarModule,
34
- TheSeamLayoutModule,
35
- NgbTooltipModule,
36
- PortalModule] });
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSideNavModule, decorators: [{
14
+ TheSeamSideNavModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamSideNavModule, imports: [SideNavItemComponent,
15
+ SideNavComponent,
16
+ SideNavToggleComponent] });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamSideNavModule, decorators: [{
38
18
  type: NgModule,
39
19
  args: [{
40
- declarations: [
20
+ imports: [
41
21
  SideNavItemComponent,
42
22
  SideNavComponent,
43
- SideNavToggleComponent
44
- ],
45
- imports: [
46
- CommonModule,
47
- RouterModule,
48
- TheSeamIconModule,
49
- A11yModule,
50
- TheSeamScrollbarModule,
51
- TheSeamLayoutModule,
52
- NgbTooltipModule,
53
- PortalModule
23
+ SideNavToggleComponent,
54
24
  ],
55
25
  exports: [
56
26
  SideNavItemComponent,
57
27
  SideNavComponent,
58
- SideNavToggleComponent
28
+ SideNavToggleComponent,
59
29
  ]
60
30
  }]
61
31
  }] });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1uYXYubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2ZyYW1ld29yay9zaWRlLW5hdi9zaWRlLW5hdi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFFN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFFckUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDOUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkNBQTZDLENBQUE7QUFDcEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7O0FBd0J2RCxNQUFNLE9BQU8sb0JBQW9COztpSEFBcEIsb0JBQW9CO2tIQUFwQixvQkFBb0IsaUJBcEI3QixvQkFBb0I7UUFDcEIsZ0JBQWdCO1FBQ2hCLHNCQUFzQixhQUd0QixZQUFZO1FBQ1osWUFBWTtRQUNaLGlCQUFpQjtRQUNqQixVQUFVO1FBQ1Ysc0JBQXNCO1FBQ3RCLG1CQUFtQjtRQUNuQixnQkFBZ0I7UUFDaEIsWUFBWSxhQUdaLG9CQUFvQjtRQUNwQixnQkFBZ0I7UUFDaEIsc0JBQXNCO2tIQUdiLG9CQUFvQixZQWY3QixZQUFZO1FBQ1osWUFBWTtRQUNaLGlCQUFpQjtRQUNqQixVQUFVO1FBQ1Ysc0JBQXNCO1FBQ3RCLG1CQUFtQjtRQUNuQixnQkFBZ0I7UUFDaEIsWUFBWTsyRkFRSCxvQkFBb0I7a0JBdEJoQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixvQkFBb0I7d0JBQ3BCLGdCQUFnQjt3QkFDaEIsc0JBQXNCO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsVUFBVTt3QkFDVixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixZQUFZO3FCQUNiO29CQUNELE9BQU8sRUFBRTt3QkFDUCxvQkFBb0I7d0JBQ3BCLGdCQUFnQjt3QkFDaEIsc0JBQXNCO3FCQUN2QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnXG5pbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5cbmltcG9ydCB7IE5nYlRvb2x0aXBNb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCdcblxuaW1wb3J0IHsgVGhlU2VhbUljb25Nb2R1bGUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vaWNvbidcbmltcG9ydCB7IFRoZVNlYW1MYXlvdXRNb2R1bGUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vbGF5b3V0J1xuaW1wb3J0IHsgVGhlU2VhbVNjcm9sbGJhck1vZHVsZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9zY3JvbGxiYXInXG5cbmltcG9ydCB7IFNpZGVOYXZJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9zaWRlLW5hdi1pdGVtL3NpZGUtbmF2LWl0ZW0uY29tcG9uZW50J1xuaW1wb3J0IHsgU2lkZU5hdlRvZ2dsZUNvbXBvbmVudCB9IGZyb20gJy4vc2lkZS1uYXYtdG9nZ2xlL3NpZGUtbmF2LXRvZ2dsZS5jb21wb25lbnQnXG5pbXBvcnQgeyBTaWRlTmF2Q29tcG9uZW50IH0gZnJvbSAnLi9zaWRlLW5hdi5jb21wb25lbnQnXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFNpZGVOYXZJdGVtQ29tcG9uZW50LFxuICAgIFNpZGVOYXZDb21wb25lbnQsXG4gICAgU2lkZU5hdlRvZ2dsZUNvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBUaGVTZWFtSWNvbk1vZHVsZSxcbiAgICBBMTF5TW9kdWxlLFxuICAgIFRoZVNlYW1TY3JvbGxiYXJNb2R1bGUsXG4gICAgVGhlU2VhbUxheW91dE1vZHVsZSxcbiAgICBOZ2JUb29sdGlwTW9kdWxlLFxuICAgIFBvcnRhbE1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgU2lkZU5hdkl0ZW1Db21wb25lbnQsXG4gICAgU2lkZU5hdkNvbXBvbmVudCxcbiAgICBTaWRlTmF2VG9nZ2xlQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVGhlU2VhbVNpZGVOYXZNb2R1bGUgeyB9XG4iXX0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1uYXYubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2ZyYW1ld29yay9zaWRlLW5hdi9zaWRlLW5hdi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUV4QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUM5RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQTtBQUNwRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTs7QUFjdkQsTUFBTSxPQUFPLG9CQUFvQjs7a0hBQXBCLG9CQUFvQjttSEFBcEIsb0JBQW9CLFlBVjdCLG9CQUFvQjtRQUNwQixnQkFBZ0I7UUFDaEIsc0JBQXNCLGFBR3RCLG9CQUFvQjtRQUNwQixnQkFBZ0I7UUFDaEIsc0JBQXNCO21IQUdiLG9CQUFvQixZQVY3QixvQkFBb0I7UUFDcEIsZ0JBQWdCO1FBQ2hCLHNCQUFzQjs0RkFRYixvQkFBb0I7a0JBWmhDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLG9CQUFvQjt3QkFDcEIsZ0JBQWdCO3dCQUNoQixzQkFBc0I7cUJBQ3ZCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxvQkFBb0I7d0JBQ3BCLGdCQUFnQjt3QkFDaEIsc0JBQXNCO3FCQUN2QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuaW1wb3J0IHsgU2lkZU5hdkl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3NpZGUtbmF2LWl0ZW0vc2lkZS1uYXYtaXRlbS5jb21wb25lbnQnXG5pbXBvcnQgeyBTaWRlTmF2VG9nZ2xlQ29tcG9uZW50IH0gZnJvbSAnLi9zaWRlLW5hdi10b2dnbGUvc2lkZS1uYXYtdG9nZ2xlLmNvbXBvbmVudCdcbmltcG9ydCB7IFNpZGVOYXZDb21wb25lbnQgfSBmcm9tICcuL3NpZGUtbmF2LmNvbXBvbmVudCdcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIFNpZGVOYXZJdGVtQ29tcG9uZW50LFxuICAgIFNpZGVOYXZDb21wb25lbnQsXG4gICAgU2lkZU5hdlRvZ2dsZUNvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFNpZGVOYXZJdGVtQ29tcG9uZW50LFxuICAgIFNpZGVOYXZDb21wb25lbnQsXG4gICAgU2lkZU5hdlRvZ2dsZUNvbXBvbmVudCxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBUaGVTZWFtU2lkZU5hdk1vZHVsZSB7IH1cbiJdfQ==