geonetwork-ui 2.4.0-alpha.2.d6fa0bfa → 2.4.0-alpha.2.d9a09c3cf

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 (518) hide show
  1. package/esm2022/libs/api/repository/src/lib/gn4/auth/auth.service.mjs +27 -3
  2. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/date-range.utils.mjs +12 -0
  3. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +44 -19
  4. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/index.mjs +2 -1
  5. package/esm2022/libs/common/domain/src/lib/model/search/filter.model.mjs +1 -1
  6. package/esm2022/libs/feature/catalog/src/lib/feature-catalog.module.mjs +11 -18
  7. package/esm2022/libs/feature/catalog/src/lib/organisations/organisations.component.mjs +37 -12
  8. package/esm2022/libs/feature/catalog/src/lib/site-title/site-title.component.mjs +3 -3
  9. package/esm2022/libs/feature/dataviz/src/index.mjs +1 -2
  10. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +15 -8
  11. package/esm2022/libs/feature/dataviz/src/lib/figure/figure-container/figure-container.component.mjs +4 -3
  12. package/esm2022/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.mjs +4 -7
  13. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +3 -3
  14. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +13 -7
  15. package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +3 -3
  16. package/esm2022/libs/feature/editor/src/lib/components/import-record/import-record.component.mjs +9 -9
  17. package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +6 -3
  18. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.mjs +3 -3
  19. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date/form-field-date.component.mjs +19 -0
  20. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.mjs +13 -7
  21. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.mjs +13 -8
  22. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +14 -8
  23. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +3 -27
  24. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-toggle/form-field-spatial-toggle.component.mjs +44 -0
  25. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +7 -5
  26. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -2
  27. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +15 -2
  28. package/esm2022/libs/feature/editor/src/lib/models/editor-config.model.mjs +1 -1
  29. package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +7 -8
  30. package/esm2022/libs/feature/notifications/src/lib/notifications.service.mjs +3 -2
  31. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +14 -7
  32. package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +9 -7
  33. package/esm2022/libs/feature/record/src/lib/data-view-share/data-view-share.component.mjs +14 -6
  34. package/esm2022/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.mjs +10 -8
  35. package/esm2022/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.mjs +8 -6
  36. package/esm2022/libs/feature/record/src/lib/feature-record.module.mjs +7 -65
  37. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +37 -14
  38. package/esm2022/libs/feature/router/src/lib/default/constants.mjs +1 -1
  39. package/esm2022/libs/feature/router/src/lib/default/state/query-params.utils.mjs +50 -0
  40. package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +5 -4
  41. package/esm2022/libs/feature/search/src/index.mjs +3 -1
  42. package/esm2022/libs/feature/search/src/lib/constants.mjs +2 -2
  43. package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +4 -4
  44. package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +18 -11
  45. package/esm2022/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.mjs +27 -5
  46. package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +11 -6
  47. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +2 -2
  48. package/esm2022/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.mjs +67 -0
  49. package/esm2022/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.mjs +84 -0
  50. package/esm2022/libs/feature/search/src/lib/state/search.facade.mjs +2 -4
  51. package/esm2022/libs/feature/search/src/lib/state/selectors.mjs +1 -9
  52. package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +52 -16
  53. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +7 -2
  54. package/esm2022/libs/ui/catalog/src/index.mjs +1 -2
  55. package/esm2022/libs/ui/catalog/src/lib/catalog-title/catalog-title.component.mjs +4 -3
  56. package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +4 -4
  57. package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +15 -5
  58. package/esm2022/libs/ui/catalog/src/lib/organisations-result/organisations-result.component.mjs +4 -3
  59. package/esm2022/libs/ui/elements/src/index.mjs +1 -3
  60. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +25 -7
  61. package/esm2022/libs/ui/elements/src/lib/content-ghost/content-ghost.component.mjs +4 -3
  62. package/esm2022/libs/ui/elements/src/lib/download-item/download-item.component.mjs +15 -4
  63. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +12 -6
  64. package/esm2022/libs/ui/elements/src/lib/error/error.component.mjs +22 -4
  65. package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +15 -7
  66. package/esm2022/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.mjs +5 -4
  67. package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +25 -5
  68. package/esm2022/libs/ui/elements/src/lib/metadata-info/linkify.directive.mjs +3 -2
  69. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +37 -13
  70. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +11 -7
  71. package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +7 -5
  72. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +13 -8
  73. package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +16 -7
  74. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +7 -140
  75. package/esm2022/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.mjs +27 -9
  76. package/esm2022/libs/ui/elements/src/lib/user-preview/user-preview.component.mjs +3 -3
  77. package/esm2022/libs/ui/inputs/src/index.mjs +2 -2
  78. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +2 -1
  79. package/esm2022/libs/ui/inputs/src/lib/badge/badge.component.mjs +3 -3
  80. package/esm2022/libs/ui/inputs/src/lib/copy-text-button/copy-text-button.component.mjs +7 -4
  81. package/esm2022/libs/ui/inputs/src/lib/date-range-dropdown/date-range-dropdown.component.mjs +65 -0
  82. package/esm2022/libs/ui/inputs/src/lib/file-input/file-input.component.mjs +7 -4
  83. package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +7 -4
  84. package/esm2022/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.mjs +5 -5
  85. package/esm2022/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.mjs +6 -4
  86. package/esm2022/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.mjs +6 -3
  87. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +2 -25
  88. package/esm2022/libs/ui/layout/src/index.mjs +6 -1
  89. package/esm2022/libs/ui/layout/src/lib/block-list/block-list.component.mjs +17 -12
  90. package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +24 -19
  91. package/esm2022/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.mjs +7 -5
  92. package/esm2022/libs/ui/layout/src/lib/expandable-panel-button/expandable-panel-button.component.mjs +6 -4
  93. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.mjs +4 -2
  94. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +6 -2
  95. package/esm2022/libs/ui/layout/src/lib/paginable.interface.mjs +2 -0
  96. package/esm2022/libs/ui/layout/src/lib/pagination/pagination.component.mjs +52 -0
  97. package/esm2022/libs/ui/layout/src/lib/pagination-buttons/pagination-buttons.component.mjs +52 -0
  98. package/esm2022/libs/ui/layout/src/lib/pagination-dots/pagination-dots.component.mjs +36 -0
  99. package/esm2022/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.mjs +26 -0
  100. package/esm2022/libs/ui/layout/src/lib/ui-layout.module.mjs +5 -26
  101. package/esm2022/libs/ui/map/src/index.mjs +2 -1
  102. package/esm2022/libs/ui/map/src/lib/components/map-legend/map-legend.component.mjs +32 -0
  103. package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +4 -4
  104. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +5 -20
  105. package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +7 -5
  106. package/esm2022/libs/ui/widgets/src/lib/loading-mask/loading-mask.component.mjs +5 -4
  107. package/esm2022/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.mjs +3 -3
  108. package/esm2022/libs/ui/widgets/src/lib/spinning-loader/spinning-loader.component.mjs +3 -3
  109. package/esm2022/libs/ui/widgets/src/lib/ui-widgets.module.mjs +5 -26
  110. package/esm2022/libs/util/app-config/src/lib/app-config.mjs +4 -1
  111. package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +2 -1
  112. package/esm2022/libs/util/app-config/src/lib/model.mjs +1 -1
  113. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +17 -17
  114. package/esm2022/libs/util/shared/src/lib/utils/format-fields.mjs +9 -0
  115. package/esm2022/libs/util/shared/src/lib/utils/index.mjs +2 -1
  116. package/esm2022/translations/de.json +6 -7
  117. package/esm2022/translations/en.json +6 -7
  118. package/esm2022/translations/es.json +6 -7
  119. package/esm2022/translations/fr.json +7 -8
  120. package/esm2022/translations/it.json +6 -7
  121. package/esm2022/translations/nl.json +6 -7
  122. package/esm2022/translations/pt.json +6 -7
  123. package/fesm2022/geonetwork-ui.mjs +2245 -1961
  124. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  125. package/libs/api/repository/src/lib/gn4/auth/auth.service.d.ts +12 -2
  126. package/libs/api/repository/src/lib/gn4/auth/auth.service.d.ts.map +1 -1
  127. package/libs/api/repository/src/lib/gn4/elasticsearch/date-range.utils.d.ts +4 -0
  128. package/libs/api/repository/src/lib/gn4/elasticsearch/date-range.utils.d.ts.map +1 -0
  129. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +5 -1
  130. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  131. package/libs/api/repository/src/lib/gn4/elasticsearch/index.d.ts +1 -0
  132. package/libs/api/repository/src/lib/gn4/elasticsearch/index.d.ts.map +1 -1
  133. package/libs/common/domain/src/lib/model/search/filter.model.d.ts +16 -1
  134. package/libs/common/domain/src/lib/model/search/filter.model.d.ts.map +1 -1
  135. package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts +8 -9
  136. package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts.map +1 -1
  137. package/libs/feature/catalog/src/lib/organisations/organisations.component.d.ts +10 -3
  138. package/libs/feature/catalog/src/lib/organisations/organisations.component.d.ts.map +1 -1
  139. package/libs/feature/dataviz/src/index.d.ts +0 -1
  140. package/libs/feature/dataviz/src/index.d.ts.map +1 -1
  141. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +1 -1
  142. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  143. package/libs/feature/dataviz/src/lib/figure/figure-container/figure-container.component.d.ts +1 -1
  144. package/libs/feature/dataviz/src/lib/figure/figure-container/figure-container.component.d.ts.map +1 -1
  145. package/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.d.ts +1 -1
  146. package/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.d.ts.map +1 -1
  147. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +1 -1
  148. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  149. package/libs/feature/editor/src/lib/components/import-record/import-record.component.d.ts.map +1 -1
  150. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts +2 -1
  151. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts.map +1 -1
  152. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date/form-field-date.component.d.ts +9 -0
  153. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date/form-field-date.component.d.ts.map +1 -0
  154. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.d.ts +4 -1
  155. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.d.ts.map +1 -1
  156. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts +4 -1
  157. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts.map +1 -1
  158. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts +4 -1
  159. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts.map +1 -1
  160. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts +3 -7
  161. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts.map +1 -1
  162. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-toggle/form-field-spatial-toggle.component.d.ts +14 -0
  163. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-toggle/form-field-spatial-toggle.component.d.ts.map +1 -0
  164. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  165. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -1
  166. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
  167. package/libs/feature/editor/src/lib/fields.config.d.ts +2 -0
  168. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  169. package/libs/feature/editor/src/lib/models/editor-config.model.d.ts +1 -1
  170. package/libs/feature/editor/src/lib/models/editor-config.model.d.ts.map +1 -1
  171. package/libs/feature/notifications/src/lib/notifications.service.d.ts +1 -1
  172. package/libs/feature/notifications/src/lib/notifications.service.d.ts.map +1 -1
  173. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +1 -1
  174. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  175. package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts +1 -1
  176. package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts.map +1 -1
  177. package/libs/feature/record/src/lib/data-view-share/data-view-share.component.d.ts +1 -1
  178. package/libs/feature/record/src/lib/data-view-share/data-view-share.component.d.ts.map +1 -1
  179. package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts +1 -1
  180. package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts.map +1 -1
  181. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts +1 -1
  182. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts.map +1 -1
  183. package/libs/feature/record/src/lib/feature-record.module.d.ts +14 -25
  184. package/libs/feature/record/src/lib/feature-record.module.d.ts.map +1 -1
  185. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +5 -1
  186. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  187. package/libs/feature/router/src/lib/default/constants.d.ts +2 -1
  188. package/libs/feature/router/src/lib/default/constants.d.ts.map +1 -1
  189. package/libs/feature/router/src/lib/default/state/query-params.utils.d.ts +4 -0
  190. package/libs/feature/router/src/lib/default/state/query-params.utils.d.ts.map +1 -0
  191. package/libs/feature/router/src/lib/default/state/router.facade.d.ts +1 -1
  192. package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
  193. package/libs/feature/search/src/index.d.ts +2 -0
  194. package/libs/feature/search/src/index.d.ts.map +1 -1
  195. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts +1 -1
  196. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts.map +1 -1
  197. package/libs/feature/search/src/lib/feature-search.module.d.ts +17 -14
  198. package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
  199. package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts +7 -1
  200. package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts.map +1 -1
  201. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts +1 -0
  202. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts.map +1 -1
  203. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
  204. package/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.d.ts +22 -0
  205. package/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.d.ts.map +1 -0
  206. package/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.d.ts +34 -0
  207. package/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.d.ts.map +1 -0
  208. package/libs/feature/search/src/lib/state/search.facade.d.ts +0 -2
  209. package/libs/feature/search/src/lib/state/search.facade.d.ts.map +1 -1
  210. package/libs/feature/search/src/lib/state/selectors.d.ts +0 -2
  211. package/libs/feature/search/src/lib/state/selectors.d.ts.map +1 -1
  212. package/libs/feature/search/src/lib/utils/service/fields.d.ts +20 -7
  213. package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
  214. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts +4 -2
  215. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  216. package/libs/ui/catalog/src/index.d.ts +0 -1
  217. package/libs/ui/catalog/src/index.d.ts.map +1 -1
  218. package/libs/ui/catalog/src/lib/catalog-title/catalog-title.component.d.ts +1 -1
  219. package/libs/ui/catalog/src/lib/catalog-title/catalog-title.component.d.ts.map +1 -1
  220. package/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.d.ts +1 -1
  221. package/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.d.ts.map +1 -1
  222. package/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.d.ts +1 -1
  223. package/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.d.ts.map +1 -1
  224. package/libs/ui/catalog/src/lib/organisations-result/organisations-result.component.d.ts +1 -1
  225. package/libs/ui/catalog/src/lib/organisations-result/organisations-result.component.d.ts.map +1 -1
  226. package/libs/ui/elements/src/index.d.ts +0 -2
  227. package/libs/ui/elements/src/index.d.ts.map +1 -1
  228. package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts +1 -1
  229. package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts.map +1 -1
  230. package/libs/ui/elements/src/lib/content-ghost/content-ghost.component.d.ts +1 -1
  231. package/libs/ui/elements/src/lib/content-ghost/content-ghost.component.d.ts.map +1 -1
  232. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts +1 -1
  233. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts.map +1 -1
  234. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
  235. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
  236. package/libs/ui/elements/src/lib/error/error.component.d.ts +1 -1
  237. package/libs/ui/elements/src/lib/error/error.component.d.ts.map +1 -1
  238. package/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.d.ts +1 -1
  239. package/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.d.ts.map +1 -1
  240. package/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.d.ts +1 -1
  241. package/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.d.ts.map +1 -1
  242. package/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.d.ts +1 -1
  243. package/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.d.ts.map +1 -1
  244. package/libs/ui/elements/src/lib/metadata-info/linkify.directive.d.ts +2 -2
  245. package/libs/ui/elements/src/lib/metadata-info/linkify.directive.d.ts.map +1 -1
  246. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +1 -1
  247. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
  248. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +1 -1
  249. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  250. package/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.d.ts +1 -1
  251. package/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.d.ts.map +1 -1
  252. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +1 -1
  253. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  254. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts +1 -1
  255. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts.map +1 -1
  256. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +19 -37
  257. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  258. package/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.d.ts +1 -1
  259. package/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.d.ts.map +1 -1
  260. package/libs/ui/inputs/src/index.d.ts +1 -1
  261. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  262. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
  263. package/libs/ui/inputs/src/lib/copy-text-button/copy-text-button.component.d.ts +1 -1
  264. package/libs/ui/inputs/src/lib/copy-text-button/copy-text-button.component.d.ts.map +1 -1
  265. package/libs/ui/inputs/src/lib/date-range-dropdown/date-range-dropdown.component.d.ts +20 -0
  266. package/libs/ui/inputs/src/lib/date-range-dropdown/date-range-dropdown.component.d.ts.map +1 -0
  267. package/libs/ui/inputs/src/lib/file-input/file-input.component.d.ts +2 -1
  268. package/libs/ui/inputs/src/lib/file-input/file-input.component.d.ts.map +1 -1
  269. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts +2 -1
  270. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts.map +1 -1
  271. package/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.d.ts +1 -1
  272. package/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.d.ts.map +1 -1
  273. package/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.d.ts +1 -1
  274. package/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.d.ts.map +1 -1
  275. package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts +2 -1
  276. package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts.map +1 -1
  277. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +28 -31
  278. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  279. package/libs/ui/layout/src/index.d.ts +5 -0
  280. package/libs/ui/layout/src/index.d.ts.map +1 -1
  281. package/libs/ui/layout/src/lib/block-list/block-list.component.d.ts +7 -5
  282. package/libs/ui/layout/src/lib/block-list/block-list.component.d.ts.map +1 -1
  283. package/libs/ui/layout/src/lib/carousel/carousel.component.d.ts +9 -7
  284. package/libs/ui/layout/src/lib/carousel/carousel.component.d.ts.map +1 -1
  285. package/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.d.ts +1 -1
  286. package/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.d.ts.map +1 -1
  287. package/libs/ui/layout/src/lib/expandable-panel-button/expandable-panel-button.component.d.ts +1 -1
  288. package/libs/ui/layout/src/lib/expandable-panel-button/expandable-panel-button.component.d.ts.map +1 -1
  289. package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts +2 -1
  290. package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts.map +1 -1
  291. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -1
  292. package/libs/ui/layout/src/lib/paginable.interface.d.ts +15 -0
  293. package/libs/ui/layout/src/lib/paginable.interface.d.ts.map +1 -0
  294. package/libs/ui/layout/src/lib/pagination/pagination.component.d.ts +11 -0
  295. package/libs/ui/layout/src/lib/pagination/pagination.component.d.ts.map +1 -0
  296. package/libs/ui/layout/src/lib/pagination-buttons/pagination-buttons.component.d.ts +9 -0
  297. package/libs/ui/layout/src/lib/pagination-buttons/pagination-buttons.component.d.ts.map +1 -0
  298. package/libs/ui/layout/src/lib/pagination-dots/pagination-dots.component.d.ts +10 -0
  299. package/libs/ui/layout/src/lib/pagination-dots/pagination-dots.component.d.ts.map +1 -0
  300. package/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.d.ts +8 -0
  301. package/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.d.ts.map +1 -0
  302. package/libs/ui/layout/src/lib/ui-layout.module.d.ts +6 -8
  303. package/libs/ui/layout/src/lib/ui-layout.module.d.ts.map +1 -1
  304. package/libs/ui/map/src/index.d.ts +1 -0
  305. package/libs/ui/map/src/index.d.ts.map +1 -1
  306. package/libs/ui/map/src/lib/components/map-legend/map-legend.component.d.ts +12 -0
  307. package/libs/ui/map/src/lib/components/map-legend/map-legend.component.d.ts.map +1 -0
  308. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +0 -3
  309. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  310. package/libs/ui/search/src/lib/ui-search.module.d.ts +2 -1
  311. package/libs/ui/search/src/lib/ui-search.module.d.ts.map +1 -1
  312. package/libs/ui/widgets/src/lib/loading-mask/loading-mask.component.d.ts +1 -1
  313. package/libs/ui/widgets/src/lib/loading-mask/loading-mask.component.d.ts.map +1 -1
  314. package/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.d.ts +1 -1
  315. package/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.d.ts.map +1 -1
  316. package/libs/ui/widgets/src/lib/spinning-loader/spinning-loader.component.d.ts +1 -1
  317. package/libs/ui/widgets/src/lib/spinning-loader/spinning-loader.component.d.ts.map +1 -1
  318. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts +9 -12
  319. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts.map +1 -1
  320. package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
  321. package/libs/util/app-config/src/lib/fixtures.d.ts.map +1 -1
  322. package/libs/util/app-config/src/lib/model.d.ts +2 -0
  323. package/libs/util/app-config/src/lib/model.d.ts.map +1 -1
  324. package/libs/util/shared/src/lib/links/link-utils.d.ts +16 -16
  325. package/libs/util/shared/src/lib/utils/format-fields.d.ts +2 -0
  326. package/libs/util/shared/src/lib/utils/format-fields.d.ts.map +1 -0
  327. package/libs/util/shared/src/lib/utils/index.d.ts +1 -0
  328. package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
  329. package/package.json +1 -1
  330. package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +24 -3
  331. package/src/libs/api/repository/src/lib/gn4/elasticsearch/date-range.utils.ts +13 -0
  332. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +58 -23
  333. package/src/libs/api/repository/src/lib/gn4/elasticsearch/index.ts +1 -0
  334. package/src/libs/common/domain/src/lib/model/search/filter.model.ts +17 -1
  335. package/src/libs/common/fixtures/src/lib/editor/editor.fixtures.ts +10 -0
  336. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +101 -0
  337. package/src/libs/feature/catalog/src/lib/feature-catalog.module.ts +4 -9
  338. package/src/libs/feature/catalog/src/lib/organisations/organisations.component.html +1 -5
  339. package/src/libs/feature/catalog/src/lib/organisations/organisations.component.ts +41 -5
  340. package/src/libs/feature/dataviz/src/index.ts +0 -1
  341. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +20 -2
  342. package/src/libs/feature/dataviz/src/lib/figure/figure-container/figure-container.component.ts +3 -1
  343. package/src/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.ts +6 -1
  344. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +2 -2
  345. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +15 -2
  346. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.html +3 -2
  347. package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.ts +9 -8
  348. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.html +2 -0
  349. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +1 -0
  350. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.html +1 -1
  351. package/src/libs/feature/editor/src/lib/components/record-form/form-field/{form-field-date-updated/form-field-date-updated.component.ts → form-field-date/form-field-date.component.ts} +4 -4
  352. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.html +55 -41
  353. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.ts +24 -14
  354. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.html +83 -67
  355. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.ts +24 -14
  356. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.html +22 -11
  357. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +26 -14
  358. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +0 -5
  359. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +1 -41
  360. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-toggle/form-field-spatial-toggle.component.html +5 -0
  361. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-toggle/form-field-spatial-toggle.component.ts +60 -0
  362. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +12 -2
  363. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +4 -2
  364. package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -1
  365. package/src/libs/feature/editor/src/lib/fields.config.ts +16 -1
  366. package/src/libs/feature/editor/src/lib/models/editor-config.model.ts +3 -1
  367. package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.ts +2 -2
  368. package/src/libs/feature/notifications/src/lib/notifications.service.ts +6 -1
  369. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +15 -0
  370. package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +5 -0
  371. package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.ts +16 -1
  372. package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts +5 -0
  373. package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.ts +8 -1
  374. package/src/libs/feature/record/src/lib/feature-record.module.ts +3 -43
  375. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +46 -4
  376. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +46 -1
  377. package/src/libs/feature/router/src/lib/default/constants.ts +6 -1
  378. package/src/libs/feature/router/src/lib/default/state/query-params.utils.ts +61 -0
  379. package/src/libs/feature/router/src/lib/default/state/router.facade.ts +5 -3
  380. package/src/libs/feature/search/src/index.ts +2 -0
  381. package/src/libs/feature/search/src/lib/constants.ts +1 -1
  382. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +3 -0
  383. package/src/libs/feature/search/src/lib/feature-search.module.ts +15 -6
  384. package/src/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.html +20 -10
  385. package/src/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.ts +32 -1
  386. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.html +1 -6
  387. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +12 -1
  388. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +16 -12
  389. package/src/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.css +0 -0
  390. package/src/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.html +17 -0
  391. package/src/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.ts +78 -0
  392. package/src/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.html +20 -0
  393. package/src/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.ts +118 -0
  394. package/src/libs/feature/search/src/lib/state/search.facade.ts +0 -8
  395. package/src/libs/feature/search/src/lib/state/selectors.ts +0 -18
  396. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +17 -3
  397. package/src/libs/feature/search/src/lib/utils/service/fields.ts +73 -20
  398. package/src/libs/ui/catalog/src/index.ts +0 -1
  399. package/src/libs/ui/catalog/src/lib/catalog-title/catalog-title.component.ts +3 -0
  400. package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.ts +3 -0
  401. package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.ts +11 -0
  402. package/src/libs/ui/catalog/src/lib/organisations-result/organisations-result.component.ts +3 -0
  403. package/src/libs/ui/elements/src/index.ts +0 -2
  404. package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +0 -1
  405. package/src/libs/ui/elements/src/lib/api-card/api-card.component.ts +19 -0
  406. package/src/libs/ui/elements/src/lib/content-ghost/content-ghost.component.ts +3 -0
  407. package/src/libs/ui/elements/src/lib/download-item/download-item.component.ts +11 -0
  408. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +11 -1
  409. package/src/libs/ui/elements/src/lib/error/error.component.ts +19 -0
  410. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.html +1 -2
  411. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.ts +15 -0
  412. package/src/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.ts +4 -1
  413. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.ts +24 -0
  414. package/src/libs/ui/elements/src/lib/metadata-info/linkify.directive.ts +2 -1
  415. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +37 -0
  416. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +16 -1
  417. package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.ts +6 -0
  418. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +15 -0
  419. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +0 -1
  420. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.ts +15 -0
  421. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +2 -97
  422. package/src/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.ts +22 -0
  423. package/src/libs/ui/elements/src/lib/user-preview/user-preview.component.html +1 -4
  424. package/src/libs/ui/inputs/src/index.ts +1 -1
  425. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +1 -0
  426. package/src/libs/ui/inputs/src/lib/badge/badge.component.html +1 -1
  427. package/src/libs/ui/inputs/src/lib/copy-text-button/copy-text-button.component.html +0 -1
  428. package/src/libs/ui/inputs/src/lib/copy-text-button/copy-text-button.component.ts +7 -0
  429. package/src/libs/ui/inputs/src/lib/date-range-dropdown/date-range-dropdown.component.css +5 -0
  430. package/src/libs/ui/inputs/src/lib/date-range-dropdown/date-range-dropdown.component.html +30 -0
  431. package/src/libs/ui/inputs/src/lib/date-range-dropdown/date-range-dropdown.component.ts +63 -0
  432. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.html +5 -4
  433. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.ts +1 -0
  434. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.html +15 -5
  435. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.ts +1 -0
  436. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.ts +4 -1
  437. package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.ts +6 -0
  438. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.html +1 -0
  439. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.ts +1 -0
  440. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +2 -19
  441. package/src/libs/ui/layout/src/index.ts +5 -0
  442. package/src/libs/ui/layout/src/lib/block-list/block-list.component.css +0 -16
  443. package/src/libs/ui/layout/src/lib/block-list/block-list.component.html +4 -12
  444. package/src/libs/ui/layout/src/lib/block-list/block-list.component.ts +20 -11
  445. package/src/libs/ui/layout/src/lib/carousel/carousel.component.css +0 -16
  446. package/src/libs/ui/layout/src/lib/carousel/carousel.component.html +4 -12
  447. package/src/libs/ui/layout/src/lib/carousel/carousel.component.ts +22 -19
  448. package/src/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.ts +8 -2
  449. package/src/libs/ui/layout/src/lib/expandable-panel-button/expandable-panel-button.component.ts +6 -0
  450. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.ts +1 -0
  451. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +5 -1
  452. package/src/libs/ui/layout/src/lib/paginable.interface.ts +14 -0
  453. package/src/libs/ui/layout/src/lib/pagination/pagination.component.css +0 -0
  454. package/src/libs/ui/{elements → layout}/src/lib/pagination/pagination.component.html +10 -11
  455. package/src/libs/ui/layout/src/lib/pagination/pagination.component.ts +45 -0
  456. package/src/libs/ui/layout/src/lib/pagination-buttons/pagination-buttons.component.css +0 -0
  457. package/src/libs/ui/layout/src/lib/pagination-buttons/pagination-buttons.component.html +51 -0
  458. package/src/libs/ui/layout/src/lib/pagination-buttons/pagination-buttons.component.ts +50 -0
  459. package/src/libs/ui/layout/src/lib/pagination-dots/pagination-dots.component.css +16 -0
  460. package/src/libs/ui/layout/src/lib/pagination-dots/pagination-dots.component.html +15 -0
  461. package/src/libs/ui/layout/src/lib/pagination-dots/pagination-dots.component.ts +31 -0
  462. package/src/libs/ui/{inputs → layout}/src/lib/previous-next-buttons/previous-next-buttons.component.html +6 -6
  463. package/src/libs/ui/{inputs → layout}/src/lib/previous-next-buttons/previous-next-buttons.component.ts +4 -21
  464. package/src/libs/ui/layout/src/lib/ui-layout.module.ts +3 -26
  465. package/src/libs/ui/map/src/index.ts +1 -0
  466. package/src/libs/ui/map/src/lib/components/map-legend/map-legend.component.css +5 -0
  467. package/src/libs/ui/map/src/lib/components/map-legend/map-legend.component.html +1 -0
  468. package/src/libs/ui/map/src/lib/components/map-legend/map-legend.component.ts +39 -0
  469. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +12 -18
  470. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +2 -25
  471. package/src/libs/ui/search/src/lib/ui-search.module.ts +6 -2
  472. package/src/libs/ui/widgets/src/lib/loading-mask/loading-mask.component.ts +4 -6
  473. package/src/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.ts +1 -0
  474. package/src/libs/ui/widgets/src/lib/spinning-loader/spinning-loader.component.ts +1 -0
  475. package/src/libs/ui/widgets/src/lib/ui-widgets.module.ts +2 -16
  476. package/src/libs/util/app-config/src/lib/app-config.ts +3 -0
  477. package/src/libs/util/app-config/src/lib/fixtures.ts +1 -0
  478. package/src/libs/util/app-config/src/lib/model.ts +2 -0
  479. package/src/libs/util/shared/src/lib/links/link-utils.ts +16 -16
  480. package/src/libs/util/shared/src/lib/utils/format-fields.ts +11 -0
  481. package/src/libs/util/shared/src/lib/utils/index.ts +1 -0
  482. package/tailwind.base.css +2 -1
  483. package/translations/de.json +6 -7
  484. package/translations/en.json +6 -7
  485. package/translations/es.json +6 -7
  486. package/translations/fr.json +7 -8
  487. package/translations/it.json +6 -7
  488. package/translations/nl.json +6 -7
  489. package/translations/pt.json +6 -7
  490. package/translations/sk.json +6 -7
  491. package/esm2022/libs/feature/dataviz/src/lib/feature-dataviz.module.mjs +0 -74
  492. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.mjs +0 -19
  493. package/esm2022/libs/ui/catalog/src/lib/ui-catalog.module.mjs +0 -73
  494. package/esm2022/libs/ui/elements/src/lib/pagination/pagination.component.mjs +0 -54
  495. package/esm2022/libs/ui/elements/src/lib/pagination-buttons/pagination-buttons.component.mjs +0 -66
  496. package/esm2022/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.mjs +0 -39
  497. package/libs/feature/dataviz/src/lib/feature-dataviz.module.d.ts +0 -22
  498. package/libs/feature/dataviz/src/lib/feature-dataviz.module.d.ts.map +0 -1
  499. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.d.ts +0 -9
  500. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.d.ts.map +0 -1
  501. package/libs/ui/catalog/src/lib/ui-catalog.module.d.ts +0 -17
  502. package/libs/ui/catalog/src/lib/ui-catalog.module.d.ts.map +0 -1
  503. package/libs/ui/elements/src/lib/pagination/pagination.component.d.ts +0 -16
  504. package/libs/ui/elements/src/lib/pagination/pagination.component.d.ts.map +0 -1
  505. package/libs/ui/elements/src/lib/pagination-buttons/pagination-buttons.component.d.ts +0 -17
  506. package/libs/ui/elements/src/lib/pagination-buttons/pagination-buttons.component.d.ts.map +0 -1
  507. package/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.d.ts +0 -12
  508. package/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.d.ts.map +0 -1
  509. package/src/libs/feature/dataviz/src/lib/feature-dataviz.module.ts +0 -48
  510. package/src/libs/ui/catalog/src/lib/ui-catalog.module.ts +0 -43
  511. package/src/libs/ui/elements/src/lib/pagination/pagination.component.ts +0 -50
  512. package/src/libs/ui/elements/src/lib/pagination-buttons/pagination-buttons.component.html +0 -33
  513. package/src/libs/ui/elements/src/lib/pagination-buttons/pagination-buttons.component.ts +0 -68
  514. /package/src/libs/feature/editor/src/lib/components/record-form/form-field/{form-field-date-updated/form-field-date-updated.component.css → form-field-date/form-field-date.component.css} +0 -0
  515. /package/src/libs/feature/editor/src/lib/components/record-form/form-field/{form-field-date-updated/form-field-date-updated.component.html → form-field-date/form-field-date.component.html} +0 -0
  516. /package/src/libs/{ui/elements/src/lib/pagination-buttons/pagination-buttons.component.css → feature/editor/src/lib/components/record-form/form-field/form-field-spatial-toggle/form-field-spatial-toggle.component.css} +0 -0
  517. /package/src/libs/{ui/elements/src/lib/pagination/pagination.component.css → feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.css} +0 -0
  518. /package/src/libs/ui/{inputs → layout}/src/lib/previous-next-buttons/previous-next-buttons.component.css +0 -0
@@ -5,6 +5,10 @@ import * as i0 from "@angular/core";
5
5
  import * as i1 from "@ngx-translate/core";
6
6
  export const DEFAULT_GN4_LOGIN_URL = `/geonetwork/srv/\${lang3}/catalog.signin?redirect=\${current_url}`;
7
7
  export const LOGIN_URL = new InjectionToken('loginUrl');
8
+ export const DEFAULT_GN4_LOGOUT_URL = `/geonetwork/signout`;
9
+ export const LOGOUT_URL = new InjectionToken('logoutUrl');
10
+ export const DEFAULT_GN4_SETTINGS_URL = `/geonetwork/srv/\${lang3}/admin.console#/organization/users?userOrGroup=`;
11
+ export const SETTINGS_URL = new InjectionToken('settingsUrl');
8
12
  export class AuthService {
9
13
  get loginUrl() {
10
14
  let baseUrl = this.baseLoginUrl;
@@ -18,12 +22,22 @@ export class AuthService {
18
22
  .replace('${lang2}', this.translateService.currentLang)
19
23
  .replace('${lang3}', LANG_2_TO_3_MAPPER[this.translateService.currentLang]);
20
24
  }
21
- constructor(baseLoginUrlToken, translateService) {
25
+ get logoutUrl() {
26
+ return this.baseLogoutUrl;
27
+ }
28
+ get settingsUrl() {
29
+ return this.baseSettingsUrl.replace('${lang3}', LANG_2_TO_3_MAPPER[this.translateService.currentLang]);
30
+ }
31
+ constructor(baseLoginUrlToken, baseLogoutUrlToken, baseSettingsUrlToken, translateService) {
22
32
  this.baseLoginUrlToken = baseLoginUrlToken;
33
+ this.baseLogoutUrlToken = baseLogoutUrlToken;
34
+ this.baseSettingsUrlToken = baseSettingsUrlToken;
23
35
  this.translateService = translateService;
24
36
  this.baseLoginUrl = this.baseLoginUrlToken || DEFAULT_GN4_LOGIN_URL;
37
+ this.baseLogoutUrl = this.baseLogoutUrlToken || DEFAULT_GN4_LOGOUT_URL;
38
+ this.baseSettingsUrl = this.baseSettingsUrlToken || DEFAULT_GN4_SETTINGS_URL;
25
39
  }
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthService, deps: [{ token: LOGIN_URL, optional: true }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthService, deps: [{ token: LOGIN_URL, optional: true }, { token: LOGOUT_URL, optional: true }, { token: SETTINGS_URL, optional: true }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
27
41
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthService, providedIn: 'root' }); }
28
42
  }
29
43
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthService, decorators: [{
@@ -36,5 +50,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
36
50
  }, {
37
51
  type: Inject,
38
52
  args: [LOGIN_URL]
53
+ }] }, { type: undefined, decorators: [{
54
+ type: Optional
55
+ }, {
56
+ type: Inject,
57
+ args: [LOGOUT_URL]
58
+ }] }, { type: undefined, decorators: [{
59
+ type: Optional
60
+ }, {
61
+ type: Inject,
62
+ args: [SETTINGS_URL]
39
63
  }] }, { type: i1.TranslateService }]; } });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcGkvcmVwb3NpdG9yeS9zcmMvbGliL2duNC9hdXRoL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQzVFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBOzs7QUFFdEQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsbUVBQW1FLENBQUE7QUFDeEcsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksY0FBYyxDQUFTLFVBQVUsQ0FBQyxDQUFBO0FBSy9ELE1BQU0sT0FBTyxXQUFXO0lBRXRCLElBQUksUUFBUTtRQUNWLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUE7UUFDL0IsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUE7UUFDdkQsMEVBQTBFO1FBQzFFLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLHNCQUFzQixFQUFFO1lBQ25FLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtTQUNwQztRQUNELE9BQU8sT0FBTzthQUNYLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQ3JELE9BQU8sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQzthQUN0RCxPQUFPLENBQ04sVUFBVSxFQUNWLGtCQUFrQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FDdEQsQ0FBQTtJQUNMLENBQUM7SUFDRCxZQUdVLGlCQUF5QixFQUN6QixnQkFBa0M7UUFEbEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFRO1FBQ3pCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFwQjVDLGlCQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixJQUFJLHFCQUFxQixDQUFBO0lBcUIzRCxDQUFDOytHQXRCTyxXQUFXLGtCQW1CWixTQUFTO21IQW5CUixXQUFXLGNBRlYsTUFBTTs7NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQW1CSSxRQUFROzswQkFDUixNQUFNOzJCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBMQU5HXzJfVE9fM19NQVBQRVIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvaTE4bi9zcmMnXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfR040X0xPR0lOX1VSTCA9IGAvZ2VvbmV0d29yay9zcnYvXFwke2xhbmczfS9jYXRhbG9nLnNpZ25pbj9yZWRpcmVjdD1cXCR7Y3VycmVudF91cmx9YFxuZXhwb3J0IGNvbnN0IExPR0lOX1VSTCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdsb2dpblVybCcpXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZSB7XG4gIGJhc2VMb2dpblVybCA9IHRoaXMuYmFzZUxvZ2luVXJsVG9rZW4gfHwgREVGQVVMVF9HTjRfTE9HSU5fVVJMXG4gIGdldCBsb2dpblVybCgpIHtcbiAgICBsZXQgYmFzZVVybCA9IHRoaXMuYmFzZUxvZ2luVXJsXG4gICAgY29uc3QgbG9jYXRpb25IYXNRdWVyeVBhcmFtcyA9ICEhd2luZG93LmxvY2F0aW9uLnNlYXJjaFxuICAgIC8vIHRoaXMgaXMgc3BlY2lmaWMgdG8gZ2VvcmNoZXN0cmEgbG9naW4gVVJMIGJhc2VkIG9uIGEgP2xvZ2luIHF1ZXJ5IHBhcmFtXG4gICAgaWYgKGJhc2VVcmwuc3RhcnRzV2l0aCgnJHtjdXJyZW50X3VybH0/JykgJiYgbG9jYXRpb25IYXNRdWVyeVBhcmFtcykge1xuICAgICAgYmFzZVVybCA9IGJhc2VVcmwucmVwbGFjZSgnPycsICcmJylcbiAgICB9XG4gICAgcmV0dXJuIGJhc2VVcmxcbiAgICAgIC5yZXBsYWNlKCcke2N1cnJlbnRfdXJsfScsIHdpbmRvdy5sb2NhdGlvbi50b1N0cmluZygpKVxuICAgICAgLnJlcGxhY2UoJyR7bGFuZzJ9JywgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nKVxuICAgICAgLnJlcGxhY2UoXG4gICAgICAgICcke2xhbmczfScsXG4gICAgICAgIExBTkdfMl9UT18zX01BUFBFUlt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmddXG4gICAgICApXG4gIH1cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KExPR0lOX1VSTClcbiAgICBwcml2YXRlIGJhc2VMb2dpblVybFRva2VuOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge31cbn1cbiJdfQ==
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcGkvcmVwb3NpdG9yeS9zcmMvbGliL2duNC9hdXRoL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQzVFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBOzs7QUFFdEQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsbUVBQW1FLENBQUE7QUFDeEcsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksY0FBYyxDQUFTLFVBQVUsQ0FBQyxDQUFBO0FBRS9ELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLHFCQUFxQixDQUFBO0FBQzNELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxJQUFJLGNBQWMsQ0FBUyxXQUFXLENBQUMsQ0FBQTtBQUVqRSxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRywwRUFBMEUsQ0FBQTtBQUNsSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQVMsYUFBYSxDQUFDLENBQUE7QUFLckUsTUFBTSxPQUFPLFdBQVc7SUFLdEIsSUFBSSxRQUFRO1FBQ1YsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQTtRQUMvQixNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQTtRQUN2RCwwRUFBMEU7UUFDMUUsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLElBQUksc0JBQXNCLEVBQUU7WUFDbkUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO1NBQ3BDO1FBQ0QsT0FBTyxPQUFPO2FBQ1gsT0FBTyxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDckQsT0FBTyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDO2FBQ3RELE9BQU8sQ0FDTixVQUFVLEVBQ1Ysa0JBQWtCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUN0RCxDQUFBO0lBQ0wsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQTtJQUMzQixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FDakMsVUFBVSxFQUNWLGtCQUFrQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FDdEQsQ0FBQTtJQUNILENBQUM7SUFFRCxZQUN5QyxpQkFBeUIsRUFDeEIsa0JBQTBCLEVBQ3hCLG9CQUE0QixFQUM5RCxnQkFBa0M7UUFISCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQVE7UUFDeEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFRO1FBQ3hCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBUTtRQUM5RCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBbkM1QyxpQkFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxxQkFBcUIsQ0FBQTtRQUM5RCxrQkFBYSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxzQkFBc0IsQ0FBQTtRQUNqRSxvQkFBZSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsSUFBSSx3QkFBd0IsQ0FBQTtJQWtDcEUsQ0FBQzsrR0FyQ08sV0FBVyxrQkFpQ0EsU0FBUyw2QkFDVCxVQUFVLDZCQUNWLFlBQVk7bUhBbkN2QixXQUFXLGNBRlYsTUFBTTs7NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWtDSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFNBQVM7OzBCQUM1QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFVBQVU7OzBCQUM3QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBMQU5HXzJfVE9fM19NQVBQRVIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvaTE4bi9zcmMnXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfR040X0xPR0lOX1VSTCA9IGAvZ2VvbmV0d29yay9zcnYvXFwke2xhbmczfS9jYXRhbG9nLnNpZ25pbj9yZWRpcmVjdD1cXCR7Y3VycmVudF91cmx9YFxuZXhwb3J0IGNvbnN0IExPR0lOX1VSTCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdsb2dpblVybCcpXG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0dONF9MT0dPVVRfVVJMID0gYC9nZW9uZXR3b3JrL3NpZ25vdXRgXG5leHBvcnQgY29uc3QgTE9HT1VUX1VSTCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdsb2dvdXRVcmwnKVxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9HTjRfU0VUVElOR1NfVVJMID0gYC9nZW9uZXR3b3JrL3Nydi9cXCR7bGFuZzN9L2FkbWluLmNvbnNvbGUjL29yZ2FuaXphdGlvbi91c2Vycz91c2VyT3JHcm91cD1gXG5leHBvcnQgY29uc3QgU0VUVElOR1NfVVJMID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ3NldHRpbmdzVXJsJylcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIHtcbiAgYmFzZUxvZ2luVXJsID0gdGhpcy5iYXNlTG9naW5VcmxUb2tlbiB8fCBERUZBVUxUX0dONF9MT0dJTl9VUkxcbiAgYmFzZUxvZ291dFVybCA9IHRoaXMuYmFzZUxvZ291dFVybFRva2VuIHx8IERFRkFVTFRfR040X0xPR09VVF9VUkxcbiAgYmFzZVNldHRpbmdzVXJsID0gdGhpcy5iYXNlU2V0dGluZ3NVcmxUb2tlbiB8fCBERUZBVUxUX0dONF9TRVRUSU5HU19VUkxcblxuICBnZXQgbG9naW5VcmwoKSB7XG4gICAgbGV0IGJhc2VVcmwgPSB0aGlzLmJhc2VMb2dpblVybFxuICAgIGNvbnN0IGxvY2F0aW9uSGFzUXVlcnlQYXJhbXMgPSAhIXdpbmRvdy5sb2NhdGlvbi5zZWFyY2hcbiAgICAvLyB0aGlzIGlzIHNwZWNpZmljIHRvIGdlb3JjaGVzdHJhIGxvZ2luIFVSTCBiYXNlZCBvbiBhID9sb2dpbiBxdWVyeSBwYXJhbVxuICAgIGlmIChiYXNlVXJsLnN0YXJ0c1dpdGgoJyR7Y3VycmVudF91cmx9PycpICYmIGxvY2F0aW9uSGFzUXVlcnlQYXJhbXMpIHtcbiAgICAgIGJhc2VVcmwgPSBiYXNlVXJsLnJlcGxhY2UoJz8nLCAnJicpXG4gICAgfVxuICAgIHJldHVybiBiYXNlVXJsXG4gICAgICAucmVwbGFjZSgnJHtjdXJyZW50X3VybH0nLCB3aW5kb3cubG9jYXRpb24udG9TdHJpbmcoKSlcbiAgICAgIC5yZXBsYWNlKCcke2xhbmcyfScsIHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZylcbiAgICAgIC5yZXBsYWNlKFxuICAgICAgICAnJHtsYW5nM30nLFxuICAgICAgICBMQU5HXzJfVE9fM19NQVBQRVJbdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nXVxuICAgICAgKVxuICB9XG5cbiAgZ2V0IGxvZ291dFVybCgpIHtcbiAgICByZXR1cm4gdGhpcy5iYXNlTG9nb3V0VXJsXG4gIH1cblxuICBnZXQgc2V0dGluZ3NVcmwoKSB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZVNldHRpbmdzVXJsLnJlcGxhY2UoXG4gICAgICAnJHtsYW5nM30nLFxuICAgICAgTEFOR18yX1RPXzNfTUFQUEVSW3RoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZ11cbiAgICApXG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KExPR0lOX1VSTCkgcHJpdmF0ZSBiYXNlTG9naW5VcmxUb2tlbjogc3RyaW5nLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTE9HT1VUX1VSTCkgcHJpdmF0ZSBiYXNlTG9nb3V0VXJsVG9rZW46IHN0cmluZyxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFNFVFRJTkdTX1VSTCkgcHJpdmF0ZSBiYXNlU2V0dGluZ3NVcmxUb2tlbjogc3RyaW5nLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxuICApIHt9XG59XG4iXX0=
@@ -0,0 +1,12 @@
1
+ export function isDateRange(filter) {
2
+ if (!filter)
3
+ return false;
4
+ return typeof filter === 'object' && ('start' in filter || 'end' in filter);
5
+ }
6
+ export function formatDate(date) {
7
+ const year = date.getFullYear();
8
+ const month = String(date.getMonth() + 1).padStart(2, '0');
9
+ const day = String(date.getDate()).padStart(2, '0');
10
+ return `${year}-${month}-${day}`;
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL3JlcG9zaXRvcnkvc3JjL2xpYi9nbjQvZWxhc3RpY3NlYXJjaC9kYXRlLXJhbmdlLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxXQUFXLENBQUMsTUFBbUI7SUFDN0MsSUFBSSxDQUFDLE1BQU07UUFBRSxPQUFPLEtBQUssQ0FBQTtJQUN6QixPQUFPLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxDQUFDLE9BQU8sSUFBSSxNQUFNLElBQUksS0FBSyxJQUFJLE1BQU0sQ0FBQyxDQUFBO0FBQzdFLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLElBQVU7SUFDbkMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO0lBQy9CLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUMxRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUNuRCxPQUFPLEdBQUcsSUFBSSxJQUFJLEtBQUssSUFBSSxHQUFHLEVBQUUsQ0FBQTtBQUNsQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGRGaWx0ZXIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9zZWFyY2gnXG5cbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGVSYW5nZShmaWx0ZXI6IEZpZWxkRmlsdGVyKTogYm9vbGVhbiB7XG4gIGlmICghZmlsdGVyKSByZXR1cm4gZmFsc2VcbiAgcmV0dXJuIHR5cGVvZiBmaWx0ZXIgPT09ICdvYmplY3QnICYmICgnc3RhcnQnIGluIGZpbHRlciB8fCAnZW5kJyBpbiBmaWx0ZXIpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXREYXRlKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpXG4gIGNvbnN0IG1vbnRoID0gU3RyaW5nKGRhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJylcbiAgY29uc3QgZGF5ID0gU3RyaW5nKGRhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpXG4gIHJldHVybiBgJHt5ZWFyfS0ke21vbnRofS0ke2RheX1gXG59XG4iXX0=
@@ -2,6 +2,7 @@ import { Inject, Injectable, Optional } from '@angular/core';
2
2
  import { ES_QUERY_FIELDS_PRIORITY, ES_SOURCE_SUMMARY, } from './constant';
3
3
  import { METADATA_LANGUAGE } from '../../metadata-language';
4
4
  import { LangService } from '../../../../../../../libs/util/i18n/src';
5
+ import { formatDate, isDateRange } from './date-range.utils';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "../../../../../../../libs/util/i18n/src";
7
8
  export class ElasticsearchService {
@@ -155,7 +156,7 @@ export class ElasticsearchService {
155
156
  isCurrentSearchLang() {
156
157
  return this.metadataLang === 'current';
157
158
  }
158
- filtersToQueryString(filters) {
159
+ filtersToQuery(filters) {
159
160
  const makeQuery = (filter) => {
160
161
  if (typeof filter === 'string') {
161
162
  return filter;
@@ -169,10 +170,44 @@ export class ElasticsearchService {
169
170
  })
170
171
  .join(' OR ');
171
172
  };
172
- return Object.keys(filters)
173
- .filter((fieldname) => filters[fieldname] && JSON.stringify(filters[fieldname]) !== '{}')
174
- .map((fieldname) => `${fieldname}:(${makeQuery(filters[fieldname])})`)
175
- .join(' AND ');
173
+ const queryString = typeof filters === 'string'
174
+ ? filters
175
+ : Object.keys(filters)
176
+ .filter((fieldname) => !isDateRange(filters[fieldname]))
177
+ .filter((fieldname) => filters[fieldname] &&
178
+ JSON.stringify(filters[fieldname]) !== '{}')
179
+ .map((fieldname) => `${fieldname}:(${makeQuery(filters[fieldname])})`)
180
+ .join(' AND ');
181
+ const queryRange = Object.entries(filters)
182
+ .filter(([, value]) => isDateRange(value))
183
+ .map(([searchField, dateRange]) => {
184
+ return {
185
+ searchField,
186
+ dateRange,
187
+ };
188
+ })[0];
189
+ const queryParts = [
190
+ queryString && {
191
+ query_string: {
192
+ query: queryString,
193
+ },
194
+ },
195
+ queryRange &&
196
+ queryRange.dateRange && {
197
+ range: {
198
+ [queryRange.searchField]: {
199
+ ...(queryRange.dateRange.start && {
200
+ gte: formatDate(queryRange.dateRange.start),
201
+ }),
202
+ ...(queryRange.dateRange.end && {
203
+ lte: formatDate(queryRange.dateRange.end),
204
+ }),
205
+ format: 'yyyy-MM-dd',
206
+ },
207
+ },
208
+ },
209
+ ].filter(Boolean);
210
+ return queryParts.length > 0 ? queryParts : undefined;
176
211
  }
177
212
  buildPayloadQuery({ any, ...fieldSearchFilters }, configFilters, uuids, geometry) {
178
213
  const must = [];
@@ -195,13 +230,9 @@ export class ElasticsearchService {
195
230
  },
196
231
  });
197
232
  }
198
- const queryFilters = this.filtersToQueryString(fieldSearchFilters);
233
+ const queryFilters = this.filtersToQuery(fieldSearchFilters);
199
234
  if (queryFilters) {
200
- filter.push({
201
- query_string: {
202
- query: queryFilters,
203
- },
204
- });
235
+ filter.push(...queryFilters);
205
236
  }
206
237
  if (uuids) {
207
238
  filter.push({
@@ -385,13 +416,7 @@ export class ElasticsearchService {
385
416
  const filter = aggregation.filters[curr];
386
417
  return {
387
418
  ...prev,
388
- [curr]: {
389
- query_string: {
390
- query: typeof filter === 'string'
391
- ? filter
392
- : this.filtersToQueryString(filter),
393
- },
394
- },
419
+ [curr]: this.filtersToQuery(filter)[0],
395
420
  };
396
421
  }, {}),
397
422
  };
@@ -469,4 +494,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
469
494
  type: Inject,
470
495
  args: [METADATA_LANGUAGE]
471
496
  }] }]; } });
472
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhc3RpY3NlYXJjaC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcGkvcmVwb3NpdG9yeS9zcmMvbGliL2duNC9lbGFzdGljc2VhcmNoL2VsYXN0aWNzZWFyY2guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFNUQsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixpQkFBaUIsR0FFbEIsTUFBTSxZQUFZLENBQUE7QUFVbkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFXM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlDQUF5QyxDQUFBOzs7QUFLckUsTUFBTSxPQUFPLG9CQUFvQjtJQU0vQixZQUNVLFdBQXdCLEVBQ2UsWUFBb0I7UUFEM0QsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDZSxpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQVByRSxzREFBc0Q7UUFDdEQsbUdBQW1HO1FBQzNGLGtCQUFhLEdBQTJCLEVBQUUsQ0FBQTtRQUMxQyxVQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUE7SUFLbEMsQ0FBQztJQUVKLG9CQUFvQixDQUNsQixlQUFvQixFQUFFLEVBQ3RCLElBQUksR0FBRyxDQUFDLEVBQ1IsSUFBSSxHQUFHLENBQUMsRUFDUixTQUFzQixJQUFJLEVBQzFCLGdCQUErQixFQUFFLEVBQ2pDLGdCQUErQixFQUFFLEVBQ2pDLGdCQUErQixFQUFFLEVBQ2pDLEtBQWdCLEVBQ2hCLFFBQW1CO1FBRW5CLE1BQU0sT0FBTyxHQUFHO1lBQ2QsWUFBWTtZQUNaLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7WUFDbkMsS0FBSyxFQUFFLElB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TyxDQUFDLEdBQUcsQ0FBQyxDQUN0QyxDQUFBO2dCQUNMLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDeEMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxHQUFHO29CQUNwQixTQUFTLEVBQUUsT0FBTyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHO29CQUNsQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFNBQVM7aUJBQ3hCLENBQUMsQ0FBQyxDQUFBO2dCQUNILE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQSxDQUFDLFlBQVk7Z0JBQzFCLE9BQU87b0JBQ0wsT0FBTztpQkFDUixDQUFBO2FBQ0Y7U0FDRjtJQUNILENBQUM7K0dBbmhCVSxvQkFBb0IsNkNBUVQsaUJBQWlCO21IQVI1QixvQkFBb0IsY0FGbkIsTUFBTTs7NEZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBU0ksUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEdlb21ldHJ5IH0gZnJvbSAnZ2VvanNvbidcbmltcG9ydCB7XG4gIEVTX1FVRVJZX0ZJRUxEU19QUklPUklUWSxcbiAgRVNfU09VUkNFX1NVTU1BUlksXG4gIEVzUXVlcnlGaWVsZHNQcmlvcml0eVR5cGUsXG59IGZyb20gJy4vY29uc3RhbnQnXG5pbXBvcnQge1xuICBBZ2dyZWdhdGlvbixcbiAgQWdncmVnYXRpb25QYXJhbXMsXG4gIEFnZ3JlZ2F0aW9uc1BhcmFtcyxcbiAgRmllbGRGaWx0ZXIsXG4gIEZpZWxkRmlsdGVycyxcbiAgRmlsdGVyQWdncmVnYXRpb25QYXJhbXMsXG4gIFNvcnRCeUZpZWxkLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9zZWFyY2gnXG5pbXBvcnQgeyBNRVRBREFUQV9MQU5HVUFHRSB9IGZyb20gJy4uLy4uL21ldGFkYXRhLWxhbmd1YWdlJ1xuaW1wb3J0IHtcbiAgQWdncmVnYXRpb25SZXN1bHQsXG4gIEVzU2VhcmNoUGFyYW1zLFxuICBGaWx0ZXJzQWdncmVnYXRpb25SZXN1bHQsXG4gIEhpc3RvZ3JhbUFnZ3JlZ2F0aW9uUmVzdWx0LFxuICBSZXF1ZXN0RmllbGRzLFxuICBTZWFyY2hGaWx0ZXJzLFxuICBTb3J0UGFyYW1zLFxuICBUZXJtc0FnZ3JlZ2F0aW9uUmVzdWx0LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjJ1xuaW1wb3J0IHsgTGFuZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvaTE4bi9zcmMnXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBFbGFzdGljc2VhcmNoU2VydmljZSB7XG4gIC8vIHJ1bnRpbWUgZmllbGRzIGFyZSBjb21wdXRlZCB1c2luZyBhIFBhaW5sZXNzIHNjcmlwdFxuICAvLyBzZWU6IGh0dHBzOi8vd3d3LmVsYXN0aWMuY28vZ3VpZGUvZW4vZWxhc3RpY3NlYXJjaC9yZWZlcmVuY2UvY3VycmVudC9ydW50aW1lLW1hcHBpbmctZmllbGRzLmh0bWxcbiAgcHJpdmF0ZSBydW50aW1lRmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge31cbiAgcHJpdmF0ZSBsYW5nMyA9IHRoaXMubGFuZ1NlcnZpY2UuaXNvM1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbGFuZ1NlcnZpY2U6IExhbmdTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUVUQURBVEFfTEFOR1VBR0UpIHByaXZhdGUgbWV0YWRhdGFMYW5nOiBzdHJpbmdcbiAgKSB7fVxuXG4gIGdldFNlYXJjaFJlcXVlc3RCb2R5KFxuICAgIGFnZ3JlZ2F0aW9uczogYW55ID0ge30sXG4gICAgc2l6ZSA9IDAsXG4gICAgZnJvbSA9IDAsXG4gICAgc29ydEJ5OiBTb3J0QnlGaWVsZCA9IG51bGwsXG4gICAgcmVxdWVzdEZpZWxkczogUmVxdWVzdEZpZWxkcyA9IFtdLFxuICAgIHNlYXJjaEZpbHRlcnM6IFNlYXJjaEZpbHRlcnMgPSB7fSxcbiAgICBjb25maWdGaWx0ZXJzOiBTZWFyY2hGaWx0ZXJzID0ge30sXG4gICAgdXVpZHM/OiBzdHJpbmdbXSxcbiAgICBnZW9tZXRyeT86IEdlb21ldHJ5XG4gICk6IEVzU2VhcmNoUGFyYW1zIHtcbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgYWdncmVnYXRpb25zLFxuICAgICAgZnJvbSxcbiAgICAgIHNpemUsXG4gICAgICBzb3J0OiB0aGlzLmJ1aWxkUGF5bG9hZFNvcnQoc29ydEJ5KSxcbiAgICAgIHF1ZXJ5OiB0aGlzLmJ1aWxkUGF5bG9hZFF1ZXJ5KFxuICAgICAgICBzZWFyY2hGaWx0ZXJzLFxuICAgICAgICBjb25maWdGaWx0ZXJzLFxuICAgICAgICB1dWlkcyxcbiAgICAgICAgZ2VvbWV0cnlcbiAgICAgICksXG4gICAgICAuLi4oc2l6ZSA+IDAgPyB7IHRyYWNrX3RvdGFsX2hpdHM6IHRydWUgfSA6IHt9KSxcbiAgICAgIF9zb3VyY2U6IHJlcXVlc3RGaWVsZHMsXG4gICAgfVxuICAgIHRoaXMucHJvY2Vzc1J1bnRpbWVGaWVsZHMocGF5bG9hZClcbiAgICByZXR1cm4gcGF5bG9hZFxuICB9XG5cbiAgLy8gcGF5bG9hZCBvYmplY3Qgd2lsbCBiZSBtdXRhdGVkXG4gIHByaXZhdGUgcHJvY2Vzc1J1bnRpbWVGaWVsZHMocGF5bG9hZDogRXNTZWFyY2hQYXJhbXMpOiBFc1NlYXJjaFBhcmFtcyB7XG4gICAgY29uc3QgYWRkTWFwcGluZyA9IChmaWVsZE5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKCFwYXlsb2FkLnJ1bnRpbWVfbWFwcGluZ3MpIHBheWxvYWQucnVudGltZV9tYXBwaW5ncyA9IHt9XG4gICAgICBwYXlsb2FkLnJ1bnRpbWVfbWFwcGluZ3NbZmllbGROYW1lXSA9IHtcbiAgICAgICAgdHlwZTogJ2tleXdvcmQnLFxuICAgICAgICBzY3JpcHQ6IHRoaXMucnVudGltZUZpZWxkc1tmaWVsZE5hbWVdLFxuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBsb29rRm9yRmllbGQgPSAobm9kZTogdW5rbm93bikgPT4ge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkobm9kZSkpIHtcbiAgICAgICAgbm9kZS5mb3JFYWNoKGxvb2tGb3JGaWVsZClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIG5vZGUgIT09ICdvYmplY3QnKSByZXR1cm5cbiAgICAgIGlmICgnZmllbGQnIGluIG5vZGUgJiYgdHlwZW9mIG5vZGUuZmllbGQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGlmIChub2RlLmZpZWxkIGluIHRoaXMucnVudGltZUZpZWxkcykge1xuICAgICAgICAgIGFkZE1hcHBpbmcobm9kZS5maWVsZClcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBydW50aW1lRmllbGQgaW4gdGhpcy5ydW50aW1lRmllbGRzKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBydW50aW1lRmllbGQgaW4gbm9kZSAmJlxuICAgICAgICAgIChub2RlW3J1bnRpbWVGaWVsZF0gPT09ICdhc2MnIHx8IG5vZGVbcnVudGltZUZpZWxkXSA9PT0gJ2Rlc2MnKVxuICAgICAgICApIHtcbiAgICAgICAgICBhZGRNYXBwaW5nKHJ1bnRpbWVGaWVsZClcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgJ3F1ZXJ5JyBpbiBub2RlICYmXG4gICAgICAgICAgdHlwZW9mIG5vZGUucXVlcnkgPT09ICdzdHJpbmcnICYmXG4gICAgICAgICAgbm9kZS5xdWVyeS5pbmRleE9mKHJ1bnRpbWVGaWVsZCArICc6JykgPiAtMVxuICAgICAgICApIHtcbiAgICAgICAgICBhZGRNYXBwaW5nKHJ1bnRpbWVGaWVsZClcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBrZXkgaW4gbm9kZSkge1xuICAgICAgICBpZiAodHlwZW9mIG5vZGVba2V5XSA9PT0gJ29iamVjdCcpIGxvb2tGb3JGaWVsZChub2RlW2tleV0pXG4gICAgICB9XG4gICAgfVxuICAgIGxvb2tGb3JGaWVsZChwYXlsb2FkLmFnZ3JlZ2F0aW9ucylcbiAgICBsb29rRm9yRmllbGQocGF5bG9hZC5zb3J0KVxuICAgIGxvb2tGb3JGaWVsZChwYXlsb2FkLnF1ZXJ5KVxuICAgIHJldHVybiBwYXlsb2FkXG4gIH1cblxuICByZWdpc3RlclJ1bnRpbWVGaWVsZChmaWVsZE5hbWU6IHN0cmluZywgZXhwcmVzc2lvbjogc3RyaW5nKSB7XG4gICAgdGhpcy5ydW50aW1lRmllbGRzW2ZpZWxkTmFtZV0gPSBleHByZXNzaW9uXG4gIH1cblxuICBnZXRNZXRhZGF0YUJ5SWRQYXlsb2FkKHV1aWQ6IHN0cmluZyk6IEVzU2VhcmNoUGFyYW1zIHtcbiAgICByZXR1cm4ge1xuICAgICAgcXVlcnk6IHtcbiAgICAgICAgaWRzOiB7XG4gICAgICAgICAgdmFsdWVzOiBbdXVpZF0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH1cbiAgfVxuXG4gIGdldFJlbGF0ZWRSZWNvcmRQYXlsb2FkKFxuICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgdXVpZDogc3RyaW5nLFxuICAgIHNpemUgPSA2LFxuICAgIF9zb3VyY2UgPSBbLi4uRVNfU09VUkNFX1NVTU1BUlksICdhbGxLZXl3b3JkcycsICdjcmVhdGVEYXRlJ11cbiAgKTogRXNTZWFyY2hQYXJhbXMge1xuICAgIHJldHVybiB7XG4gICAgICBxdWVyeToge1xuICAgICAgICBib29sOiB7XG4gICAgICAgICAgbXVzdDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBtb3JlX2xpa2VfdGhpczoge1xuICAgICAgICAgICAgICAgIGZpZWxkczogW1xuICAgICAgICAgICAgICAgICAgJ3Jlc291cmNlVGl0bGVPYmplY3QuZGVmYXVsdCcsXG4gICAgICAgICAgICAgICAgICAncmVzb3VyY2VBYnN0cmFjdE9iamVjdC5kZWZhdWx0JyxcbiAgICAgICAgICAgICAgICAgICd0YWcucmF3JyxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIGxpa2U6IHRpdGxlLFxuICAgICAgICAgICAgICAgIG1pbl90ZXJtX2ZyZXE6IDEsXG4gICAgICAgICAgICAgICAgbWF4X3F1ZXJ5X3Rlcm1zOiAxMixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRlcm1zOiB7XG4gICAgICAgICAgICAgICAgaXNUZW1wbGF0ZTogWyduJ10sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0ZXJtczoge1xuICAgICAgICAgICAgICAgIGRyYWZ0OiBbJ24nLCAnZSddLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIG11c3Rfbm90OiBbeyB3aWxkY2FyZDogeyB1dWlkOiB1dWlkIH0gfV0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgc2l6ZSxcbiAgICAgIF9zb3VyY2UsXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFBheWxvYWRTb3J0KHNvcnRCeTogU29ydEJ5RmllbGQpOiBTb3J0UGFyYW1zIHtcbiAgICBpZiAoc29ydEJ5ID09PSBudWxsKSByZXR1cm4gdW5kZWZpbmVkXG4gICAgY29uc3QgZmllbGRzID0gQXJyYXkuaXNBcnJheShzb3J0QnlbMF0pID8gc29ydEJ5IDogW3NvcnRCeV1cbiAgICByZXR1cm4gZmllbGRzLm1hcCgoZmllbGQpID0+ICh7IFtmaWVsZFsxXV06IGZpZWxkWzBdIH0pKVxuICB9XG5cbiAgcHJpdmF0ZSBpbmplY3RMYW5nSW5RdWVyeVN0cmluZ0ZpZWxkcyhcbiAgICBxdWVyeUZpZWxkc1ByaW9yaXR5OiBFc1F1ZXJ5RmllbGRzUHJpb3JpdHlUeXBlXG4gICkge1xuICAgIGNvbnN0IHF1ZXJ5TGFuZyA9IHRoaXMuZ2V0UXVlcnlMYW5nKClcbiAgICByZXR1cm4gT2JqZWN0LmtleXMocXVlcnlGaWVsZHNQcmlvcml0eSkucmVkdWNlKChxdWVyeSwgZmllbGQpID0+IHtcbiAgICAgIGNvbnN0IG11bHRpTGFuZ1JlZ0V4cCA9IC9cXCRcXHtzZWFyY2hMYW5nXFx9L2dcbiAgICAgIGNvbnN0IGlzTXVsdGlsYW5nRmllbGQgPSBtdWx0aUxhbmdSZWdFeHAudGVzdChmaWVsZClcbiAgICAgIGNvbnN0IGZpZWxkUHJpb3JpdHkgPSBxdWVyeUZpZWxkc1ByaW9yaXR5W2ZpZWxkXVxuICAgICAgcmV0dXJuIFtcbiAgICAgICAgLi4ucXVlcnksXG4gICAgICAgIC4uLih0aGlzLmlzQ3VycmVudFNlYXJjaExhbmcoKSAmJiBpc011bHRpbGFuZ0ZpZWxkXG4gICAgICAgICAgPyBbXG4gICAgICAgICAgICAgIGAke2ZpZWxkLnJlcGxhY2UobXVsdGlMYW5nUmVnRXhwLCBxdWVyeUxhbmcpfV4ke1xuICAgICAgICAgICAgICAgIGZpZWxkUHJpb3JpdHkgKyAxMFxuICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgZmllbGQucmVwbGFjZShtdWx0aUxhbmdSZWdFeHAsICcqJykgK1xuICAgICAgICAgICAgICAgIChmaWVsZFByaW9yaXR5ID4gMSA/IGBeJHtmaWVsZFByaW9yaXR5fWAgOiAnJyksXG4gICAgICAgICAgICBdXG4gICAgICAgICAgOiBbXG4gICAgICAgICAgICAgIGZpZWxkLnJlcGxhY2UobXVsdGlMYW5nUmVnRXhwLCBxdWVyeUxhbmcpICtcbiAgICAgICAgICAgICAgICAoZmllbGRQcmlvcml0eSA+IDEgPyBgXiR7ZmllbGRQcmlvcml0eX1gIDogJycpLFxuICAgICAgICAgICAgXSksXG4gICAgICBdXG4gICAgfSwgW10pXG4gIH1cblxuICBwcml2YXRlIGdldFF1ZXJ5TGFuZygpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLm1ldGFkYXRhTGFuZykge1xuICAgICAgcmV0dXJuIHRoaXMuaXNDdXJyZW50U2VhcmNoTGFuZygpXG4gICAgICAgID8gYGxhbmcke3RoaXMubGFuZzN9YFxuICAgICAgICA6IGBsYW5nJHt0aGlzLm1ldGFkYXRhTGFuZ31gXG4gICAgfSBlbHNlIHJldHVybiAnKidcbiAgfVxuICBwcml2YXRlIGlzQ3VycmVudFNlYXJjaExhbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0YWRhdGFMYW5nID09PSAnY3VycmVudCdcbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVyc1RvUXVlcnlTdHJpbmcoZmlsdGVyczogRmllbGRGaWx0ZXJzKTogc3RyaW5nIHtcbiAgICBjb25zdCBtYWtlUXVlcnkgPSAoZmlsdGVyOiBGaWVsZEZpbHRlcik6IHN0cmluZyA9PiB7XG4gICAgICBpZiAodHlwZW9mIGZpbHRlciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIGZpbHRlclxuICAgICAgfVxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGZpbHRlcilcbiAgICAgICAgLm1hcCgoa2V5KSA9PiB7XG4gICAgICAgICAgaWYgKGZpbHRlcltrZXldID09PSB0cnVlKSB7XG4gICAgICAgICAgICByZXR1cm4gYFwiJHtrZXl9XCJgXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBgLVwiJHtrZXl9XCJgXG4gICAgICAgIH0pXG4gICAgICAgIC5qb2luKCcgT1IgJylcbiAgICB9XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGZpbHRlcnMpXG4gICAgICAuZmlsdGVyKFxuICAgICAgICAoZmllbGRuYW1lKSA9PlxuICAgICAgICAgIGZpbHRlcnNbZmllbGRuYW1lXSAmJiBKU09OLnN0cmluZ2lmeShmaWx0ZXJzW2ZpZWxkbmFtZV0pICE9PSAne30nXG4gICAgICApXG4gICAgICAubWFwKChmaWVsZG5hbWUpID0+IGAke2ZpZWxkbmFtZX06KCR7bWFrZVF1ZXJ5KGZpbHRlcnNbZmllbGRuYW1lXSl9KWApXG4gICAgICAuam9pbignIEFORCAnKVxuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFBheWxvYWRRdWVyeShcbiAgICB7IGFueSwgLi4uZmllbGRTZWFyY2hGaWx0ZXJzIH06IFNlYXJjaEZpbHRlcnMsXG4gICAgY29uZmlnRmlsdGVyczogU2VhcmNoRmlsdGVycyxcbiAgICB1dWlkcz86IHN0cmluZ1tdLFxuICAgIGdlb21ldHJ5PzogR2VvbWV0cnlcbiAgKSB7XG4gICAgY29uc3QgbXVzdCA9IFtdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+W11cbiAgICBjb25zdCBtdXN0X25vdCA9IHtcbiAgICAgIC4uLnRoaXMucXVlcnlGaWx0ZXJPblZhbHVlcygncmVzb3VyY2VUeXBlJywgW1xuICAgICAgICAnc2VydmljZScsXG4gICAgICAgICdtYXAnLFxuICAgICAgICAnbWFwL3N0YXRpYycsXG4gICAgICAgICdtYXBEaWdpdGFsJyxcbiAgICAgIF0pLFxuICAgIH1cbiAgICBjb25zdCBzaG91bGQgPSBbXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdXG4gICAgY29uc3QgZmlsdGVyID0gW3RoaXMucXVlcnlGaWx0ZXJPblZhbHVlcygnaXNUZW1wbGF0ZScsICduJyldIGFzIFJlY29yZDxcbiAgICAgIHN0cmluZyxcbiAgICAgIHVua25vd25cbiAgICA+W11cblxuICAgIGlmIChhbnkpIHtcbiAgICAgIG11c3QucHVzaCh7XG4gICAgICAgIHF1ZXJ5X3N0cmluZzoge1xuICAgICAgICAgIHF1ZXJ5OiB0aGlzLmVzY2FwZVNwZWNpYWxDaGFyYWN0ZXJzKGFueSksXG4gICAgICAgICAgZGVmYXVsdF9vcGVyYXRvcjogJ0FORCcsXG4gICAgICAgICAgZmllbGRzOiB0aGlzLmluamVjdExhbmdJblF1ZXJ5U3RyaW5nRmllbGRzKEVTX1FVRVJZX0ZJRUxEU19QUklPUklUWSksXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgIH1cbiAgICBjb25zdCBxdWVyeUZpbHRlcnMgPSB0aGlzLmZpbHRlcnNUb1F1ZXJ5U3RyaW5nKGZpZWxkU2VhcmNoRmlsdGVycylcbiAgICBpZiAocXVlcnlGaWx0ZXJzKSB7XG4gICAgICBmaWx0ZXIucHVzaCh7XG4gICAgICAgIHF1ZXJ5X3N0cmluZzoge1xuICAgICAgICAgIHF1ZXJ5OiBxdWVyeUZpbHRlcnMsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgIH1cbiAgICBpZiAodXVpZHMpIHtcbiAgICAgIGZpbHRlci5wdXNoKHtcbiAgICAgICAgaWRzOiB7XG4gICAgICAgICAgdmFsdWVzOiB1dWlkcyxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgfVxuICAgIGlmIChnZW9tZXRyeSkge1xuICAgICAgc2hvdWxkLnB1c2goXG4gICAgICAgIHtcbiAgICAgICAgICBnZW9fc2hhcGU6IHtcbiAgICAgICAgICAgIGdlb206IHtcbiAgICAgICAgICAgICAgc2hhcGU6IGdlb21ldHJ5LFxuICAgICAgICAgICAgICByZWxhdGlvbjogJ3dpdGhpbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYm9vc3Q6IDEwLjAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGdlb19zaGFwZToge1xuICAgICAgICAgICAgZ2VvbToge1xuICAgICAgICAgICAgICBzaGFwZTogZ2VvbWV0cnksXG4gICAgICAgICAgICAgIHJlbGF0aW9uOiAnaW50ZXJzZWN0cycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYm9vc3Q6IDcuMCxcbiAgICAgICAgICB9LFxuICAgICAgICB9XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGJvb2w6IHtcbiAgICAgICAgbXVzdCxcbiAgICAgICAgbXVzdF9ub3QsXG4gICAgICAgIHNob3VsZCxcbiAgICAgICAgZmlsdGVyLFxuICAgICAgfSxcbiAgICB9XG4gIH1cblxuICBidWlsZE1vcmVPbkFnZ3JlZ2F0aW9uUGF5bG9hZChcbiAgICBhZ2dyZWdhdGlvbnM6IGFueSxcbiAgICBrZXk6IHN0cmluZyxcbiAgICBzZWFyY2hGaWx0ZXJzOiBTZWFyY2hGaWx0ZXJzLFxuICAgIGNvbmZpZ0ZpbHRlcnM6IFNlYXJjaEZpbHRlcnNcbiAgKTogRXNTZWFyY2hQYXJhbXMge1xuICAgIHJldHVybiB7XG4gICAgICBhZ2dyZWdhdGlvbnM6IHsgW2tleV06IGFnZ3JlZ2F0aW9uc1trZXldIH0sXG4gICAgICBzaXplOiAwLFxuICAgICAgcXVlcnk6IHRoaXMuYnVpbGRQYXlsb2FkUXVlcnkoc2VhcmNoRmlsdGVycywgY29uZmlnRmlsdGVycyksXG4gICAgfVxuICB9XG5cbiAgcXVlcnlGaWx0ZXJPblZhbHVlcyhrZXksIHZhbHVlcykge1xuICAgIHJldHVybiAhdmFsdWVzIHx8IHZhbHVlcy5sZW5ndGggPD0gMFxuICAgICAgPyB7fVxuICAgICAgOiB7XG4gICAgICAgICAgdGVybXM6IHtcbiAgICAgICAgICAgIFtrZXldOiBbLi4udmFsdWVzXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9XG4gIH1cblxuICBidWlsZEF1dG9jb21wbGV0ZVBheWxvYWQocXVlcnk6IHN0cmluZyk6IEVzU2VhcmNoUGFyYW1zIHtcbiAgICByZXR1cm4ge1xuICAgICAgcXVlcnk6IHtcbiAgICAgICAgYm9vbDoge1xuICAgICAgICAgIG11c3Q6IFtcbiAgICAgICAgICAgIHRoaXMucXVlcnlGaWx0ZXJPblZhbHVlcygnaXNUZW1wbGF0ZScsICduJyksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG11bHRpX21hdGNoOiB7XG4gICAgICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICAgICAgdHlwZTogJ2Jvb2xfcHJlZml4JyxcbiAgICAgICAgICAgICAgICBmaWVsZHM6IHRoaXMuaW5qZWN0TGFuZ0luUXVlcnlTdHJpbmdGaWVsZHMoe1xuICAgICAgICAgICAgICAgICAgJ3Jlc291cmNlVGl0bGVPYmplY3QuJHtzZWFyY2hMYW5nfSc6IDQsXG4gICAgICAgICAgICAgICAgICAncmVzb3VyY2VBYnN0cmFjdE9iamVjdC4ke3NlYXJjaExhbmd9JzogMyxcbiAgICAgICAgICAgICAgICAgIHRhZzogMixcbiAgICAgICAgICAgICAgICAgIHJlc291cmNlSWRlbnRpZmllcjogMSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBtdXN0X25vdDoge1xuICAgICAgICAgICAgLi4udGhpcy5xdWVyeUZpbHRlck9uVmFsdWVzKCdyZXNvdXJjZVR5cGUnLCBbXG4gICAgICAgICAgICAgICdzZXJ2aWNlJyxcbiAgICAgICAgICAgICAgJ21hcCcsXG4gICAgICAgICAgICAgICdtYXAvc3RhdGljJyxcbiAgICAgICAgICAgICAgJ21hcERpZ2l0YWwnLFxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBfc291cmNlOiBbJ3Jlc291cmNlVGl0bGVPYmplY3QnLCAndXVpZCddLFxuICAgICAgZnJvbTogMCxcbiAgICAgIHNpemU6IDIwLFxuICAgIH1cbiAgfVxuXG4gIGNvbWJpbmVRdWVyeUdyb3VwcyhxdWVyeUdyb3Vwcykge1xuICAgIHJldHVybiBxdWVyeUdyb3VwcyA/IHF1ZXJ5R3JvdXBzLmpvaW4oJyBBTkQgJykudHJpbSgpIDogJydcbiAgfVxuXG4gIC8qKlxuICAgKiBGYWNldHMgc3RhdGUgaXMgYW4gb2JqZWN0IGxpa2UgdGhpczpcbiAgICpcbiAgICoge1xuICAgKiAgICd0YWcnOiB7XG4gICAqICAgICAnd29ybGQnOiB0cnVlLFxuICAgKiAgICAgJ3ZlY3Rvcic6IHRydWVcbiAgICogICB9LFxuICAgKiAgICdhdmFpbGFibGVJblNlcnZpY2UnIDoge1xuICAgKiAgICAgJ2F2YWlsYWJsZUluVmlld1NlcnZpY2UnOiAnK2xpbmtQcm90b2NvbDpcXC9PR0M6V01TLipcXC8nXG4gICAqICAgfSxcbiAgICogICAncmVzb3VyY2VUeXBlJzoge1xuICAgKiAgICAgJ3NlcnZpY2UnOiB7XG4gICAqICAgICAgICdzZXJ2aWNlVHlwZSc6IHtcbiAgICogICAgICAgICAnT0dDOldNUyc6IHRydWVcbiAgICogICAgICAgICAnT0dDOldGUyc6IGZhbHNlXG4gICAqICAgICAgIH1cbiAgICogICAgIH0sXG4gICAqICAgICAnZG93bmxvYWQnOiB7XG4gICAqICAgICAgICdzZXJ2aWNlVHlwZSc6IHtcbiAgICogICAgICAgfVxuICAgKiAgICAgfSxcbiAgICogICAgICdkYXRhc2V0JzogdHJ1ZVxuICAgKiAgIH1cbiAgICogfVxuICAgKi9cbiAgLy8gRklYTUU6IHRoaXMgaXMgbm90IHVzZWQgYW55bW9yZVxuICBzdGF0ZUZpbHRlcnNUb1F1ZXJ5U3RyaW5nKGZhY2V0c1N0YXRlKSB7XG4gICAgY29uc3QgcXVlcnkgPSBbXVxuICAgIGZvciAoY29uc3QgaW5kZXhLZXkgaW4gZmFjZXRzU3RhdGUpIHtcbiAgICAgIGlmIChpbmRleEtleSBpbiBmYWNldHNTdGF0ZSkge1xuICAgICAgICBjb25zdCBxdWVyeUNodW5rID0gdGhpcy5wYXJzZVN0YXRlTm9kZShcbiAgICAgICAgICBpbmRleEtleSxcbiAgICAgICAgICBmYWNldHNTdGF0ZVtpbmRleEtleV0sXG4gICAgICAgICAgdW5kZWZpbmVkXG4gICAgICAgIClcbiAgICAgICAgaWYgKHF1ZXJ5Q2h1bmspIHtcbiAgICAgICAgICBxdWVyeS5wdXNoKHF1ZXJ5Q2h1bmspXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29tYmluZVF1ZXJ5R3JvdXBzKHF1ZXJ5KVxuICB9XG5cbiAgLy8gRklYTUU6IHRoaXMgaXMgbm90IHVzZWQgYW55bW9yZVxuICBwcml2YXRlIHBhcnNlU3RhdGVOb2RlKG5vZGVOYW1lLCBub2RlLCBpbmRleEtleSkge1xuICAgIGxldCBxdWVyeVN0cmluZyA9ICcnXG4gICAgaWYgKG5vZGUgJiYgdHlwZW9mIG5vZGUgPT09ICdvYmplY3QnKSB7XG4gICAgICBjb25zdCBjaHVua3MgPSBbXVxuICAgICAgZm9yIChjb25zdCBwIGluIG5vZGUpIHtcbiAgICAgICAgLy8gbmVzdGluZ1xuICAgICAgICBpZiAobm9kZVtwXSAmJiB0eXBlb2Ygbm9kZVtwXSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBjb25zdCBuZXh0THZsS2V5ID0gT2JqZWN0LmtleXMobm9kZVtwXSlbMF1cbiAgICAgICAgICBjb25zdCBuZXh0THZsU3RhdGUgPSBub2RlW3BdW25leHRMdmxLZXldXG4gICAgICAgICAgaWYgKE9iamVjdC5rZXlzKG5leHRMdmxTdGF0ZSkubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBuZXN0ZWRDaHVua3MgPSBbbm9kZU5hbWUgKyAnOicgKyAnXCInICsgcCArICdcIiddXG4gICAgICAgICAgICBjb25zdCBjaHVuayA9IHRoaXMucGFyc2VTdGF0ZU5vZGUoXG4gICAgICAgICAgICAgIG5leHRMdmxLZXksXG4gICAgICAgICAgICAgIG5leHRMdmxTdGF0ZSxcbiAgICAgICAgICAgICAgbmV4dEx2bEtleVxuICAgICAgICAgICAgKS50cmltKClcbiAgICAgICAgICAgIGlmIChjaHVuaykge1xuICAgICAgICAgICAgICBuZXN0ZWRDaHVua3MucHVzaChjaHVuaylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNodW5rcy5wdXNoKCcoJyArIG5lc3RlZENodW5rcy5qb2luKCcgQU5EICcpICsgJyknKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBjaHVuayA9IHRoaXMucGFyc2VTdGF0ZU5vZGUocCwgbm9kZVtwXSwgbm9kZU5hbWUpLnRyaW0oKVxuICAgICAgICAgIGlmIChjaHVuaykge1xuICAgICAgICAgICAgY2h1bmtzLnB1c2goY2h1bmspXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoY2h1bmtzICYmIGNodW5rcy5sZW5ndGgpIHtcbiAgICAgICAgcXVlcnlTdHJpbmcgKz0gJygnXG4gICAgICAgIHF1ZXJ5U3RyaW5nICs9IGNodW5rcy5qb2luKCcgJylcbiAgICAgICAgcXVlcnlTdHJpbmcgKz0gJyknXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlb2Ygbm9kZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHF1ZXJ5U3RyaW5nICs9IG5vZGVcbiAgICB9IGVsc2UgaWYgKG5vZGUgPT09IHRydWUpIHtcbiAgICAgIHF1ZXJ5U3RyaW5nICs9IGluZGV4S2V5ICsgJzpcIicgKyBub2RlTmFtZSArICdcIidcbiAgICB9IGVsc2UgaWYgKG5vZGUgPT09IGZhbHNlKSB7XG4gICAgICBxdWVyeVN0cmluZyArPSAnLScgKyBpbmRleEtleSArICc6XCInICsgbm9kZU5hbWUgKyAnXCInXG4gICAgfVxuICAgIHJldHVybiBxdWVyeVN0cmluZ1xuICB9XG5cbiAgcHJpdmF0ZSBlc2NhcGVTcGVjaWFsQ2hhcmFjdGVycyhxdWVyeXN0cmluZykge1xuICAgIHJldHVybiBxdWVyeXN0cmluZy5yZXBsYWNlKFxuICAgICAgLyhcXCt8LXxcXC98JiZ8XFx8XFx8fCF8XFx7fFxcfXxcXFt8XFxdXFxefH58XFw/fDp8XFxcXHsxfXxcXCh8XFwpKS9nLFxuICAgICAgJ1xcXFwkMSdcbiAgICApXG4gIH1cblxuICBidWlsZEFnZ3JlZ2F0aW9uc1BheWxvYWQoYWdncmVnYXRpb25zOiBBZ2dyZWdhdGlvbnNQYXJhbXMpOiBhbnkge1xuICAgIGNvbnN0IG1hcFRvRVNBZ2dyZWdhdGlvbiA9IChhZ2dyZWdhdGlvbjogQWdncmVnYXRpb25QYXJhbXMpID0+IHtcbiAgICAgIHN3aXRjaCAoYWdncmVnYXRpb24udHlwZSkge1xuICAgICAgICBjYXNlICdmaWx0ZXJzJzpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZmlsdGVyczogT2JqZWN0LmtleXMoYWdncmVnYXRpb24uZmlsdGVycykucmVkdWNlKChwcmV2LCBjdXJyKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbHRlciA9IGFnZ3JlZ2F0aW9uLmZpbHRlcnNbY3Vycl1cbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgICAgICAgIFtjdXJyXToge1xuICAgICAgICAgICAgICAgICAgcXVlcnlfc3RyaW5nOiB7XG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5OlxuICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBmaWx0ZXIgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmZpbHRlcnNUb1F1ZXJ5U3RyaW5nKGZpbHRlciksXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHt9KSxcbiAgICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3Rlcm1zJzpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGVybXM6IHtcbiAgICAgICAgICAgICAgc2l6ZTogYWdncmVnYXRpb24ubGltaXQsXG4gICAgICAgICAgICAgIGZpZWxkOiBhZ2dyZWdhdGlvbi5maWVsZCxcbiAgICAgICAgICAgICAgb3JkZXI6IHtcbiAgICAgICAgICAgICAgICBbYF8ke2FnZ3JlZ2F0aW9uLnNvcnRbMV19YF06IGFnZ3JlZ2F0aW9uLnNvcnRbMF0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgY2FzZSAnaGlzdG9ncmFtJzpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaGlzdG9ncmFtOiB7XG4gICAgICAgICAgICAgIGZpZWxkOiBhZ2dyZWdhdGlvbi5maWVsZCxcbiAgICAgICAgICAgICAgaW50ZXJ2YWw6IGFnZ3JlZ2F0aW9uLmludGVydmFsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBPYmplY3Qua2V5cyhhZ2dyZWdhdGlvbnMpLnJlZHVjZShcbiAgICAgIChwcmV2LCBjdXJyKSA9PiAoe1xuICAgICAgICAuLi5wcmV2LFxuICAgICAgICBbY3Vycl06IG1hcFRvRVNBZ2dyZWdhdGlvbihhZ2dyZWdhdGlvbnNbY3Vycl0pLFxuICAgICAgfSksXG4gICAgICB7fVxuICAgIClcbiAgfVxuXG4gIHBhcnNlQWdncmVnYXRpb25SZXN1bHQoXG4gICAgcmVzdWx0OiBBZ2dyZWdhdGlvblJlc3VsdCxcbiAgICByZXF1ZXN0UGFyYW06IEFnZ3JlZ2F0aW9uUGFyYW1zXG4gICk6IEFnZ3JlZ2F0aW9uIHtcbiAgICBzd2l0Y2ggKHJlcXVlc3RQYXJhbS50eXBlKSB7XG4gICAgICBjYXNlICdmaWx0ZXJzJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBidWNrZXRzOiBPYmplY3Qua2V5cyhcbiAgICAgICAgICAgIChyZXN1bHQgYXMgRmlsdGVyc0FnZ3JlZ2F0aW9uUmVzdWx0KS5idWNrZXRzXG4gICAgICAgICAgKS5tYXAoKGtleSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYnVja2V0ID0gKHJlc3VsdCBhcyBGaWx0ZXJzQWdncmVnYXRpb25SZXN1bHQpLmJ1Y2tldHNba2V5XVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgdGVybToga2V5LFxuICAgICAgICAgICAgICBjb3VudDogYnVja2V0LmRvY19jb3VudCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgfVxuICAgICAgY2FzZSAndGVybXMnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGJ1Y2tldHM6IChyZXN1bHQgYXMgVGVybXNBZ2dyZWdhdGlvblJlc3VsdCkuYnVja2V0cy5tYXAoKGJ1Y2tldCkgPT4gKHtcbiAgICAgICAgICAgIHRlcm06IGJ1Y2tldC5rZXksXG4gICAgICAgICAgICBjb3VudDogYnVja2V0LmRvY19jb3VudCxcbiAgICAgICAgICB9KSksXG4gICAgICAgIH1cbiAgICAgIGNhc2UgJ2hpc3RvZ3JhbSc6IHtcbiAgICAgICAgY29uc3QgaGlzdG9ncmFtUmVzdWx0ID0gcmVzdWx0IGFzIEhpc3RvZ3JhbUFnZ3JlZ2F0aW9uUmVzdWx0XG4gICAgICAgIGxldCBidWNrZXRzID0gQXJyYXkuaXNBcnJheShoaXN0b2dyYW1SZXN1bHQuYnVja2V0cylcbiAgICAgICAgICA/IGhpc3RvZ3JhbVJlc3VsdC5idWNrZXRzXG4gICAgICAgICAgOiBPYmplY3Qua2V5cyhoaXN0b2dyYW1SZXN1bHQuYnVja2V0cykubWFwKFxuICAgICAgICAgICAgICAoa2V5KSA9PiBoaXN0b2dyYW1SZXN1bHQuYnVja2V0c1trZXldXG4gICAgICAgICAgICApXG4gICAgICAgIGJ1Y2tldHMgPSBidWNrZXRzLm1hcCgoYnVja2V0LCBpbmRleCkgPT4gKHtcbiAgICAgICAgICBsb3dWYWx1ZTogYnVja2V0LmtleSxcbiAgICAgICAgICBoaWdoVmFsdWU6IGJ1Y2tldHNbaW5kZXggKyAxXT8ua2V5LCAvLyB0aGlzIHdpbGwgcmV0dXJuIHVuZGVmaW5lZCBvbiB0aGUgbGFzdCBlbGVtZW50ICh3aGljaCB3ZSByZW1vdmUgbGF0ZXIpXG4gICAgICAgICAgY291bnQ6IGJ1Y2tldC5kb2NfY291bnQsXG4gICAgICAgIH0pKVxuICAgICAgICBidWNrZXRzLnBvcCgpIC8vIHNlZSBhYm92ZVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGJ1Y2tldHMsXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
497
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhc3RpY3NlYXJjaC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcGkvcmVwb3NpdG9yeS9zcmMvbGliL2duNC9lbGFzdGljc2VhcmNoL2VsYXN0aWNzZWFyY2guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFNUQsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixpQkFBaUIsR0FFbEIsTUFBTSxZQUFZLENBQUE7QUFXbkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFXM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7OztBQU81RCxNQUFNLE9BQU8sb0JBQW9CO0lBTS9CLFlBQ1UsV0FBd0IsRUFDZSxZQUFvQjtRQUQzRCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUNlLGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBUHJFLHNEQUFzRDtRQUN0RCxtR0FBbUc7UUFDM0Ysa0JBQWEsR0FBMkIsRUFBRSxDQUFBO1FBQzFDLFVBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQTtJQUtsQyxDQUFDO0lBRUosb0JBQW9CLENBQ2xCLGVBQW9CLEVBQUUsRUFDdEIsSUFBSSxHQUFHLENBQUMsRUFDUixJQUFJLEdBQUcsQ0FBQyxFQUNSLFNBQXNCLElBQUksRUFDMUIsZ0JBQStCLEVBQUUsRUFDakMsZ0JBQStCLEVBQUUsRUFDakMsZ0JBQStCLEVBQUUsRUFDakMsS0FBZ0IsRUFDaEIsUUFBbUI7UUFFbkIsTUFBTSxPQUFPLEdBQUc7WUFDZCxZQUFZO1lBQ1osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJLEVB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Q0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQ3RDLENBQUE7Z0JBQ0wsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUN4QyxRQUFRLEVBQUUsTUFBTSxDQUFDLEdBQUc7b0JBQ3BCLFNBQVMsRUFBRSxPQUFPLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUc7b0JBQ2xDLEtBQUssRUFBRSxNQUFNLENBQUMsU0FBUztpQkFDeEIsQ0FBQyxDQUFDLENBQUE7Z0JBQ0gsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFBLENBQUMsWUFBWTtnQkFDMUIsT0FBTztvQkFDTCxPQUFPO2lCQUNSLENBQUE7YUFDRjtTQUNGO0lBQ0gsQ0FBQzsrR0FsakJVLG9CQUFvQiw2Q0FRVCxpQkFBaUI7bUhBUjVCLG9CQUFvQixjQUZuQixNQUFNOzs0RkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFTSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgR2VvbWV0cnkgfSBmcm9tICdnZW9qc29uJ1xuaW1wb3J0IHtcbiAgRVNfUVVFUllfRklFTERTX1BSSU9SSVRZLFxuICBFU19TT1VSQ0VfU1VNTUFSWSxcbiAgRXNRdWVyeUZpZWxkc1ByaW9yaXR5VHlwZSxcbn0gZnJvbSAnLi9jb25zdGFudCdcbmltcG9ydCB7XG4gIEFnZ3JlZ2F0aW9uLFxuICBBZ2dyZWdhdGlvblBhcmFtcyxcbiAgQWdncmVnYXRpb25zUGFyYW1zLFxuICBGaWVsZEZpbHRlcixcbiAgRmllbGRGaWx0ZXJzLFxuICBGaWx0ZXJRdWVyeSxcbiAgRmlsdGVyc0FnZ3JlZ2F0aW9uUGFyYW1zLFxuICBTb3J0QnlGaWVsZCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvc2VhcmNoJ1xuaW1wb3J0IHsgTUVUQURBVEFfTEFOR1VBR0UgfSBmcm9tICcuLi8uLi9tZXRhZGF0YS1sYW5ndWFnZSdcbmltcG9ydCB7XG4gIEFnZ3JlZ2F0aW9uUmVzdWx0LFxuICBFc1NlYXJjaFBhcmFtcyxcbiAgRmlsdGVyc0FnZ3JlZ2F0aW9uUmVzdWx0LFxuICBIaXN0b2dyYW1BZ2dyZWdhdGlvblJlc3VsdCxcbiAgUmVxdWVzdEZpZWxkcyxcbiAgU2VhcmNoRmlsdGVycyxcbiAgU29ydFBhcmFtcyxcbiAgVGVybXNBZ2dyZWdhdGlvblJlc3VsdCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcGkvbWV0YWRhdGEtY29udmVydGVyL3NyYydcbmltcG9ydCB7IExhbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2kxOG4vc3JjJ1xuaW1wb3J0IHsgZm9ybWF0RGF0ZSwgaXNEYXRlUmFuZ2UgfSBmcm9tICcuL2RhdGUtcmFuZ2UudXRpbHMnXG5cbmV4cG9ydCB0eXBlIERhdGVSYW5nZSA9IHsgc3RhcnQ/OiBEYXRlOyBlbmQ/OiBEYXRlIH1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEVsYXN0aWNzZWFyY2hTZXJ2aWNlIHtcbiAgLy8gcnVudGltZSBmaWVsZHMgYXJlIGNvbXB1dGVkIHVzaW5nIGEgUGFpbmxlc3Mgc2NyaXB0XG4gIC8vIHNlZTogaHR0cHM6Ly93d3cuZWxhc3RpYy5jby9ndWlkZS9lbi9lbGFzdGljc2VhcmNoL3JlZmVyZW5jZS9jdXJyZW50L3J1bnRpbWUtbWFwcGluZy1maWVsZHMuaHRtbFxuICBwcml2YXRlIHJ1bnRpbWVGaWVsZHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fVxuICBwcml2YXRlIGxhbmczID0gdGhpcy5sYW5nU2VydmljZS5pc28zXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBsYW5nU2VydmljZTogTGFuZ1NlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChNRVRBREFUQV9MQU5HVUFHRSkgcHJpdmF0ZSBtZXRhZGF0YUxhbmc6IHN0cmluZ1xuICApIHt9XG5cbiAgZ2V0U2VhcmNoUmVxdWVzdEJvZHkoXG4gICAgYWdncmVnYXRpb25zOiBhbnkgPSB7fSxcbiAgICBzaXplID0gMCxcbiAgICBmcm9tID0gMCxcbiAgICBzb3J0Qnk6IFNvcnRCeUZpZWxkID0gbnVsbCxcbiAgICByZXF1ZXN0RmllbGRzOiBSZXF1ZXN0RmllbGRzID0gW10sXG4gICAgc2VhcmNoRmlsdGVyczogU2VhcmNoRmlsdGVycyA9IHt9LFxuICAgIGNvbmZpZ0ZpbHRlcnM6IFNlYXJjaEZpbHRlcnMgPSB7fSxcbiAgICB1dWlkcz86IHN0cmluZ1tdLFxuICAgIGdlb21ldHJ5PzogR2VvbWV0cnlcbiAgKTogRXNTZWFyY2hQYXJhbXMge1xuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICBhZ2dyZWdhdGlvbnMsXG4gICAgICBmcm9tLFxuICAgICAgc2l6ZSxcbiAgICAgIHNvcnQ6IHRoaXMuYnVpbGRQYXlsb2FkU29ydChzb3J0QnkpLFxuICAgICAgcXVlcnk6IHRoaXMuYnVpbGRQYXlsb2FkUXVlcnkoXG4gICAgICAgIHNlYXJjaEZpbHRlcnMsXG4gICAgICAgIGNvbmZpZ0ZpbHRlcnMsXG4gICAgICAgIHV1aWRzLFxuICAgICAgICBnZW9tZXRyeVxuICAgICAgKSxcbiAgICAgIC4uLihzaXplID4gMCA/IHsgdHJhY2tfdG90YWxfaGl0czogdHJ1ZSB9IDoge30pLFxuICAgICAgX3NvdXJjZTogcmVxdWVzdEZpZWxkcyxcbiAgICB9XG4gICAgdGhpcy5wcm9jZXNzUnVudGltZUZpZWxkcyhwYXlsb2FkKVxuICAgIHJldHVybiBwYXlsb2FkXG4gIH1cblxuICAvLyBwYXlsb2FkIG9iamVjdCB3aWxsIGJlIG11dGF0ZWRcbiAgcHJpdmF0ZSBwcm9jZXNzUnVudGltZUZpZWxkcyhwYXlsb2FkOiBFc1NlYXJjaFBhcmFtcyk6IEVzU2VhcmNoUGFyYW1zIHtcbiAgICBjb25zdCBhZGRNYXBwaW5nID0gKGZpZWxkTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAoIXBheWxvYWQucnVudGltZV9tYXBwaW5ncykgcGF5bG9hZC5ydW50aW1lX21hcHBpbmdzID0ge31cbiAgICAgIHBheWxvYWQucnVudGltZV9tYXBwaW5nc1tmaWVsZE5hbWVdID0ge1xuICAgICAgICB0eXBlOiAna2V5d29yZCcsXG4gICAgICAgIHNjcmlwdDogdGhpcy5ydW50aW1lRmllbGRzW2ZpZWxkTmFtZV0sXG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGxvb2tGb3JGaWVsZCA9IChub2RlOiB1bmtub3duKSA9PiB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShub2RlKSkge1xuICAgICAgICBub2RlLmZvckVhY2gobG9va0ZvckZpZWxkKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2Ygbm9kZSAhPT0gJ29iamVjdCcpIHJldHVyblxuICAgICAgaWYgKCdmaWVsZCcgaW4gbm9kZSAmJiB0eXBlb2Ygbm9kZS5maWVsZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgaWYgKG5vZGUuZmllbGQgaW4gdGhpcy5ydW50aW1lRmllbGRzKSB7XG4gICAgICAgICAgYWRkTWFwcGluZyhub2RlLmZpZWxkKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IHJ1bnRpbWVGaWVsZCBpbiB0aGlzLnJ1bnRpbWVGaWVsZHMpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHJ1bnRpbWVGaWVsZCBpbiBub2RlICYmXG4gICAgICAgICAgKG5vZGVbcnVudGltZUZpZWxkXSA9PT0gJ2FzYycgfHwgbm9kZVtydW50aW1lRmllbGRdID09PSAnZGVzYycpXG4gICAgICAgICkge1xuICAgICAgICAgIGFkZE1hcHBpbmcocnVudGltZUZpZWxkKVxuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICAncXVlcnknIGluIG5vZGUgJiZcbiAgICAgICAgICB0eXBlb2Ygbm9kZS5xdWVyeSA9PT0gJ3N0cmluZycgJiZcbiAgICAgICAgICBub2RlLnF1ZXJ5LmluZGV4T2YocnVudGltZUZpZWxkICsgJzonKSA+IC0xXG4gICAgICAgICkge1xuICAgICAgICAgIGFkZE1hcHBpbmcocnVudGltZUZpZWxkKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBub2RlKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygbm9kZVtrZXldID09PSAnb2JqZWN0JykgbG9va0ZvckZpZWxkKG5vZGVba2V5XSlcbiAgICAgIH1cbiAgICB9XG4gICAgbG9va0ZvckZpZWxkKHBheWxvYWQuYWdncmVnYXRpb25zKVxuICAgIGxvb2tGb3JGaWVsZChwYXlsb2FkLnNvcnQpXG4gICAgbG9va0ZvckZpZWxkKHBheWxvYWQucXVlcnkpXG4gICAgcmV0dXJuIHBheWxvYWRcbiAgfVxuXG4gIHJlZ2lzdGVyUnVudGltZUZpZWxkKGZpZWxkTmFtZTogc3RyaW5nLCBleHByZXNzaW9uOiBzdHJpbmcpIHtcbiAgICB0aGlzLnJ1bnRpbWVGaWVsZHNbZmllbGROYW1lXSA9IGV4cHJlc3Npb25cbiAgfVxuXG4gIGdldE1ldGFkYXRhQnlJZFBheWxvYWQodXVpZDogc3RyaW5nKTogRXNTZWFyY2hQYXJhbXMge1xuICAgIHJldHVybiB7XG4gICAgICBxdWVyeToge1xuICAgICAgICBpZHM6IHtcbiAgICAgICAgICB2YWx1ZXM6IFt1dWlkXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfVxuICB9XG5cbiAgZ2V0UmVsYXRlZFJlY29yZFBheWxvYWQoXG4gICAgdGl0bGU6IHN0cmluZyxcbiAgICB1dWlkOiBzdHJpbmcsXG4gICAgc2l6ZSA9IDYsXG4gICAgX3NvdXJjZSA9IFsuLi5FU19TT1VSQ0VfU1VNTUFSWSwgJ2FsbEtleXdvcmRzJywgJ2NyZWF0ZURhdGUnXVxuICApOiBFc1NlYXJjaFBhcmFtcyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHF1ZXJ5OiB7XG4gICAgICAgIGJvb2w6IHtcbiAgICAgICAgICBtdXN0OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG1vcmVfbGlrZV90aGlzOiB7XG4gICAgICAgICAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgICAgICAgICAncmVzb3VyY2VUaXRsZU9iamVjdC5kZWZhdWx0JyxcbiAgICAgICAgICAgICAgICAgICdyZXNvdXJjZUFic3RyYWN0T2JqZWN0LmRlZmF1bHQnLFxuICAgICAgICAgICAgICAgICAgJ3RhZy5yYXcnLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgbGlrZTogdGl0bGUsXG4gICAgICAgICAgICAgICAgbWluX3Rlcm1fZnJlcTogMSxcbiAgICAgICAgICAgICAgICBtYXhfcXVlcnlfdGVybXM6IDEyLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGVybXM6IHtcbiAgICAgICAgICAgICAgICBpc1RlbXBsYXRlOiBbJ24nXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRlcm1zOiB7XG4gICAgICAgICAgICAgICAgZHJhZnQ6IFsnbicsICdlJ10sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgbXVzdF9ub3Q6IFt7IHdpbGRjYXJkOiB7IHV1aWQ6IHV1aWQgfSB9XSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBzaXplLFxuICAgICAgX3NvdXJjZSxcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkUGF5bG9hZFNvcnQoc29ydEJ5OiBTb3J0QnlGaWVsZCk6IFNvcnRQYXJhbXMge1xuICAgIGlmIChzb3J0QnkgPT09IG51bGwpIHJldHVybiB1bmRlZmluZWRcbiAgICBjb25zdCBmaWVsZHMgPSBBcnJheS5pc0FycmF5KHNvcnRCeVswXSkgPyBzb3J0QnkgOiBbc29ydEJ5XVxuICAgIHJldHVybiBmaWVsZHMubWFwKChmaWVsZCkgPT4gKHsgW2ZpZWxkWzFdXTogZmllbGRbMF0gfSkpXG4gIH1cblxuICBwcml2YXRlIGluamVjdExhbmdJblF1ZXJ5U3RyaW5nRmllbGRzKFxuICAgIHF1ZXJ5RmllbGRzUHJpb3JpdHk6IEVzUXVlcnlGaWVsZHNQcmlvcml0eVR5cGVcbiAgKSB7XG4gICAgY29uc3QgcXVlcnlMYW5nID0gdGhpcy5nZXRRdWVyeUxhbmcoKVxuICAgIHJldHVybiBPYmplY3Qua2V5cyhxdWVyeUZpZWxkc1ByaW9yaXR5KS5yZWR1Y2UoKHF1ZXJ5LCBmaWVsZCkgPT4ge1xuICAgICAgY29uc3QgbXVsdGlMYW5nUmVnRXhwID0gL1xcJFxce3NlYXJjaExhbmdcXH0vZ1xuICAgICAgY29uc3QgaXNNdWx0aWxhbmdGaWVsZCA9IG11bHRpTGFuZ1JlZ0V4cC50ZXN0KGZpZWxkKVxuICAgICAgY29uc3QgZmllbGRQcmlvcml0eSA9IHF1ZXJ5RmllbGRzUHJpb3JpdHlbZmllbGRdXG4gICAgICByZXR1cm4gW1xuICAgICAgICAuLi5xdWVyeSxcbiAgICAgICAgLi4uKHRoaXMuaXNDdXJyZW50U2VhcmNoTGFuZygpICYmIGlzTXVsdGlsYW5nRmllbGRcbiAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgYCR7ZmllbGQucmVwbGFjZShtdWx0aUxhbmdSZWdFeHAsIHF1ZXJ5TGFuZyl9XiR7XG4gICAgICAgICAgICAgICAgZmllbGRQcmlvcml0eSArIDEwXG4gICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICBmaWVsZC5yZXBsYWNlKG11bHRpTGFuZ1JlZ0V4cCwgJyonKSArXG4gICAgICAgICAgICAgICAgKGZpZWxkUHJpb3JpdHkgPiAxID8gYF4ke2ZpZWxkUHJpb3JpdHl9YCA6ICcnKSxcbiAgICAgICAgICAgIF1cbiAgICAgICAgICA6IFtcbiAgICAgICAgICAgICAgZmllbGQucmVwbGFjZShtdWx0aUxhbmdSZWdFeHAsIHF1ZXJ5TGFuZykgK1xuICAgICAgICAgICAgICAgIChmaWVsZFByaW9yaXR5ID4gMSA/IGBeJHtmaWVsZFByaW9yaXR5fWAgOiAnJyksXG4gICAgICAgICAgICBdKSxcbiAgICAgIF1cbiAgICB9LCBbXSlcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UXVlcnlMYW5nKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMubWV0YWRhdGFMYW5nKSB7XG4gICAgICByZXR1cm4gdGhpcy5pc0N1cnJlbnRTZWFyY2hMYW5nKClcbiAgICAgICAgPyBgbGFuZyR7dGhpcy5sYW5nM31gXG4gICAgICAgIDogYGxhbmcke3RoaXMubWV0YWRhdGFMYW5nfWBcbiAgICB9IGVsc2UgcmV0dXJuICcqJ1xuICB9XG4gIHByaXZhdGUgaXNDdXJyZW50U2VhcmNoTGFuZygpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhZGF0YUxhbmcgPT09ICdjdXJyZW50J1xuICB9XG5cbiAgcHJpdmF0ZSBmaWx0ZXJzVG9RdWVyeShcbiAgICBmaWx0ZXJzOiBGaWVsZEZpbHRlcnMgfCBGaWx0ZXJzQWdncmVnYXRpb25QYXJhbXMgfCBzdHJpbmdcbiAgKTogRmlsdGVyUXVlcnkge1xuICAgIGNvbnN0IG1ha2VRdWVyeSA9IChmaWx0ZXI6IEZpZWxkRmlsdGVyKTogc3RyaW5nID0+IHtcbiAgICAgIGlmICh0eXBlb2YgZmlsdGVyID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gZmlsdGVyXG4gICAgICB9XG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMoZmlsdGVyKVxuICAgICAgICAubWFwKChrZXkpID0+IHtcbiAgICAgICAgICBpZiAoZmlsdGVyW2tleV0gPT09IHRydWUpIHtcbiAgICAgICAgICAgIHJldHVybiBgXCIke2tleX1cImBcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGAtXCIke2tleX1cImBcbiAgICAgICAgfSlcbiAgICAgICAgLmpvaW4oJyBPUiAnKVxuICAgIH1cbiAgICBjb25zdCBxdWVyeVN0cmluZyA9XG4gICAgICB0eXBlb2YgZmlsdGVycyA9PT0gJ3N0cmluZydcbiAgICAgICAgPyBmaWx0ZXJzXG4gICAgICAgIDogT2JqZWN0LmtleXMoZmlsdGVycylcbiAgICAgICAgICAgIC5maWx0ZXIoKGZpZWxkbmFtZSkgPT4gIWlzRGF0ZVJhbmdlKGZpbHRlcnNbZmllbGRuYW1lXSkpXG4gICAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgICAoZmllbGRuYW1lKSA9PlxuICAgICAgICAgICAgICAgIGZpbHRlcnNbZmllbGRuYW1lXSAmJlxuICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGZpbHRlcnNbZmllbGRuYW1lXSkgIT09ICd7fSdcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5tYXAoXG4gICAgICAgICAgICAgIChmaWVsZG5hbWUpID0+IGAke2ZpZWxkbmFtZX06KCR7bWFrZVF1ZXJ5KGZpbHRlcnNbZmllbGRuYW1lXSl9KWBcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5qb2luKCcgQU5EICcpXG4gICAgY29uc3QgcXVlcnlSYW5nZSA9IE9iamVjdC5lbnRyaWVzKGZpbHRlcnMpXG4gICAgICAuZmlsdGVyKChbLCB2YWx1ZV0pID0+IGlzRGF0ZVJhbmdlKHZhbHVlKSlcbiAgICAgIC5tYXAoKFtzZWFyY2hGaWVsZCwgZGF0ZVJhbmdlXSkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHNlYXJjaEZpZWxkLFxuICAgICAgICAgIGRhdGVSYW5nZSxcbiAgICAgICAgfSBhcyB7XG4gICAgICAgICAgc2VhcmNoRmllbGQ6IHN0cmluZ1xuICAgICAgICAgIGRhdGVSYW5nZTogRGF0ZVJhbmdlXG4gICAgICAgIH1cbiAgICAgIH0pWzBdXG4gICAgY29uc3QgcXVlcnlQYXJ0cyA9IFtcbiAgICAgIHF1ZXJ5U3RyaW5nICYmIHtcbiAgICAgICAgcXVlcnlfc3RyaW5nOiB7XG4gICAgICAgICAgcXVlcnk6IHF1ZXJ5U3RyaW5nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHF1ZXJ5UmFuZ2UgJiZcbiAgICAgICAgcXVlcnlSYW5nZS5kYXRlUmFuZ2UgJiYge1xuICAgICAgICAgIHJhbmdlOiB7XG4gICAgICAgICAgICBbcXVlcnlSYW5nZS5zZWFyY2hGaWVsZF06IHtcbiAgICAgICAgICAgICAgLi4uKHF1ZXJ5UmFuZ2UuZGF0ZVJhbmdlLnN0YXJ0ICYmIHtcbiAgICAgICAgICAgICAgICBndGU6IGZvcm1hdERhdGUocXVlcnlSYW5nZS5kYXRlUmFuZ2Uuc3RhcnQpLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgLi4uKHF1ZXJ5UmFuZ2UuZGF0ZVJhbmdlLmVuZCAmJiB7XG4gICAgICAgICAgICAgICAgbHRlOiBmb3JtYXREYXRlKHF1ZXJ5UmFuZ2UuZGF0ZVJhbmdlLmVuZCksXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBmb3JtYXQ6ICd5eXl5LU1NLWRkJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICBdLmZpbHRlcihCb29sZWFuKVxuICAgIHJldHVybiBxdWVyeVBhcnRzLmxlbmd0aCA+IDAgPyAocXVlcnlQYXJ0cyBhcyBGaWx0ZXJRdWVyeSkgOiB1bmRlZmluZWRcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRQYXlsb2FkUXVlcnkoXG4gICAgeyBhbnksIC4uLmZpZWxkU2VhcmNoRmlsdGVycyB9OiBTZWFyY2hGaWx0ZXJzLFxuICAgIGNvbmZpZ0ZpbHRlcnM6IFNlYXJjaEZpbHRlcnMsXG4gICAgdXVpZHM/OiBzdHJpbmdbXSxcbiAgICBnZW9tZXRyeT86IEdlb21ldHJ5XG4gICkge1xuICAgIGNvbnN0IG11c3QgPSBbXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdXG4gICAgY29uc3QgbXVzdF9ub3QgPSB7XG4gICAgICAuLi50aGlzLnF1ZXJ5RmlsdGVyT25WYWx1ZXMoJ3Jlc291cmNlVHlwZScsIFtcbiAgICAgICAgJ3NlcnZpY2UnLFxuICAgICAgICAnbWFwJyxcbiAgICAgICAgJ21hcC9zdGF0aWMnLFxuICAgICAgICAnbWFwRGlnaXRhbCcsXG4gICAgICBdKSxcbiAgICB9XG4gICAgY29uc3Qgc2hvdWxkID0gW10gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXVxuICAgIGNvbnN0IGZpbHRlciA9IFt0aGlzLnF1ZXJ5RmlsdGVyT25WYWx1ZXMoJ2lzVGVtcGxhdGUnLCAnbicpXSBhcyBSZWNvcmQ8XG4gICAgICBzdHJpbmcsXG4gICAgICB1bmtub3duXG4gICAgPltdXG5cbiAgICBpZiAoYW55KSB7XG4gICAgICBtdXN0LnB1c2goe1xuICAgICAgICBxdWVyeV9zdHJpbmc6IHtcbiAgICAgICAgICBxdWVyeTogdGhpcy5lc2NhcGVTcGVjaWFsQ2hhcmFjdGVycyhhbnkpLFxuICAgICAgICAgIGRlZmF1bHRfb3BlcmF0b3I6ICdBTkQnLFxuICAgICAgICAgIGZpZWxkczogdGhpcy5pbmplY3RMYW5nSW5RdWVyeVN0cmluZ0ZpZWxkcyhFU19RVUVSWV9GSUVMRFNfUFJJT1JJVFkpLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9XG4gICAgY29uc3QgcXVlcnlGaWx0ZXJzID0gdGhpcy5maWx0ZXJzVG9RdWVyeShmaWVsZFNlYXJjaEZpbHRlcnMpXG4gICAgaWYgKHF1ZXJ5RmlsdGVycykge1xuICAgICAgZmlsdGVyLnB1c2goLi4ucXVlcnlGaWx0ZXJzKVxuICAgIH1cbiAgICBpZiAodXVpZHMpIHtcbiAgICAgIGZpbHRlci5wdXNoKHtcbiAgICAgICAgaWRzOiB7XG4gICAgICAgICAgdmFsdWVzOiB1dWlkcyxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgfVxuICAgIGlmIChnZW9tZXRyeSkge1xuICAgICAgc2hvdWxkLnB1c2goXG4gICAgICAgIHtcbiAgICAgICAgICBnZW9fc2hhcGU6IHtcbiAgICAgICAgICAgIGdlb206IHtcbiAgICAgICAgICAgICAgc2hhcGU6IGdlb21ldHJ5LFxuICAgICAgICAgICAgICByZWxhdGlvbjogJ3dpdGhpbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYm9vc3Q6IDEwLjAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGdlb19zaGFwZToge1xuICAgICAgICAgICAgZ2VvbToge1xuICAgICAgICAgICAgICBzaGFwZTogZ2VvbWV0cnksXG4gICAgICAgICAgICAgIHJlbGF0aW9uOiAnaW50ZXJzZWN0cycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYm9vc3Q6IDcuMCxcbiAgICAgICAgICB9LFxuICAgICAgICB9XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGJvb2w6IHtcbiAgICAgICAgbXVzdCxcbiAgICAgICAgbXVzdF9ub3QsXG4gICAgICAgIHNob3VsZCxcbiAgICAgICAgZmlsdGVyLFxuICAgICAgfSxcbiAgICB9XG4gIH1cblxuICBidWlsZE1vcmVPbkFnZ3JlZ2F0aW9uUGF5bG9hZChcbiAgICBhZ2dyZWdhdGlvbnM6IGFueSxcbiAgICBrZXk6IHN0cmluZyxcbiAgICBzZWFyY2hGaWx0ZXJzOiBTZWFyY2hGaWx0ZXJzLFxuICAgIGNvbmZpZ0ZpbHRlcnM6IFNlYXJjaEZpbHRlcnNcbiAgKTogRXNTZWFyY2hQYXJhbXMge1xuICAgIHJldHVybiB7XG4gICAgICBhZ2dyZWdhdGlvbnM6IHsgW2tleV06IGFnZ3JlZ2F0aW9uc1trZXldIH0sXG4gICAgICBzaXplOiAwLFxuICAgICAgcXVlcnk6IHRoaXMuYnVpbGRQYXlsb2FkUXVlcnkoc2VhcmNoRmlsdGVycywgY29uZmlnRmlsdGVycyksXG4gICAgfVxuICB9XG5cbiAgcXVlcnlGaWx0ZXJPblZhbHVlcyhrZXksIHZhbHVlcykge1xuICAgIHJldHVybiAhdmFsdWVzIHx8IHZhbHVlcy5sZW5ndGggPD0gMFxuICAgICAgPyB7fVxuICAgICAgOiB7XG4gICAgICAgICAgdGVybXM6IHtcbiAgICAgICAgICAgIFtrZXldOiBbLi4udmFsdWVzXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9XG4gIH1cblxuICBidWlsZEF1dG9jb21wbGV0ZVBheWxvYWQocXVlcnk6IHN0cmluZyk6IEVzU2VhcmNoUGFyYW1zIHtcbiAgICByZXR1cm4ge1xuICAgICAgcXVlcnk6IHtcbiAgICAgICAgYm9vbDoge1xuICAgICAgICAgIG11c3Q6IFtcbiAgICAgICAgICAgIHRoaXMucXVlcnlGaWx0ZXJPblZhbHVlcygnaXNUZW1wbGF0ZScsICduJyksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG11bHRpX21hdGNoOiB7XG4gICAgICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICAgICAgdHlwZTogJ2Jvb2xfcHJlZml4JyxcbiAgICAgICAgICAgICAgICBmaWVsZHM6IHRoaXMuaW5qZWN0TGFuZ0luUXVlcnlTdHJpbmdGaWVsZHMoe1xuICAgICAgICAgICAgICAgICAgJ3Jlc291cmNlVGl0bGVPYmplY3QuJHtzZWFyY2hMYW5nfSc6IDQsXG4gICAgICAgICAgICAgICAgICAncmVzb3VyY2VBYnN0cmFjdE9iamVjdC4ke3NlYXJjaExhbmd9JzogMyxcbiAgICAgICAgICAgICAgICAgIHRhZzogMixcbiAgICAgICAgICAgICAgICAgIHJlc291cmNlSWRlbnRpZmllcjogMSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBtdXN0X25vdDoge1xuICAgICAgICAgICAgLi4udGhpcy5xdWVyeUZpbHRlck9uVmFsdWVzKCdyZXNvdXJjZVR5cGUnLCBbXG4gICAgICAgICAgICAgICdzZXJ2aWNlJyxcbiAgICAgICAgICAgICAgJ21hcCcsXG4gICAgICAgICAgICAgICdtYXAvc3RhdGljJyxcbiAgICAgICAgICAgICAgJ21hcERpZ2l0YWwnLFxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBfc291cmNlOiBbJ3Jlc291cmNlVGl0bGVPYmplY3QnLCAndXVpZCddLFxuICAgICAgZnJvbTogMCxcbiAgICAgIHNpemU6IDIwLFxuICAgIH1cbiAgfVxuXG4gIGNvbWJpbmVRdWVyeUdyb3VwcyhxdWVyeUdyb3Vwcykge1xuICAgIHJldHVybiBxdWVyeUdyb3VwcyA/IHF1ZXJ5R3JvdXBzLmpvaW4oJyBBTkQgJykudHJpbSgpIDogJydcbiAgfVxuXG4gIC8qKlxuICAgKiBGYWNldHMgc3RhdGUgaXMgYW4gb2JqZWN0IGxpa2UgdGhpczpcbiAgICpcbiAgICoge1xuICAgKiAgICd0YWcnOiB7XG4gICAqICAgICAnd29ybGQnOiB0cnVlLFxuICAgKiAgICAgJ3ZlY3Rvcic6IHRydWVcbiAgICogICB9LFxuICAgKiAgICdhdmFpbGFibGVJblNlcnZpY2UnIDoge1xuICAgKiAgICAgJ2F2YWlsYWJsZUluVmlld1NlcnZpY2UnOiAnK2xpbmtQcm90b2NvbDpcXC9PR0M6V01TLipcXC8nXG4gICAqICAgfSxcbiAgICogICAncmVzb3VyY2VUeXBlJzoge1xuICAgKiAgICAgJ3NlcnZpY2UnOiB7XG4gICAqICAgICAgICdzZXJ2aWNlVHlwZSc6IHtcbiAgICogICAgICAgICAnT0dDOldNUyc6IHRydWVcbiAgICogICAgICAgICAnT0dDOldGUyc6IGZhbHNlXG4gICAqICAgICAgIH1cbiAgICogICAgIH0sXG4gICAqICAgICAnZG93bmxvYWQnOiB7XG4gICAqICAgICAgICdzZXJ2aWNlVHlwZSc6IHtcbiAgICogICAgICAgfVxuICAgKiAgICAgfSxcbiAgICogICAgICdkYXRhc2V0JzogdHJ1ZVxuICAgKiAgIH1cbiAgICogfVxuICAgKi9cbiAgLy8gRklYTUU6IHRoaXMgaXMgbm90IHVzZWQgYW55bW9yZVxuICBzdGF0ZUZpbHRlcnNUb1F1ZXJ5U3RyaW5nKGZhY2V0c1N0YXRlKSB7XG4gICAgY29uc3QgcXVlcnkgPSBbXVxuICAgIGZvciAoY29uc3QgaW5kZXhLZXkgaW4gZmFjZXRzU3RhdGUpIHtcbiAgICAgIGlmIChpbmRleEtleSBpbiBmYWNldHNTdGF0ZSkge1xuICAgICAgICBjb25zdCBxdWVyeUNodW5rID0gdGhpcy5wYXJzZVN0YXRlTm9kZShcbiAgICAgICAgICBpbmRleEtleSxcbiAgICAgICAgICBmYWNldHNTdGF0ZVtpbmRleEtleV0sXG4gICAgICAgICAgdW5kZWZpbmVkXG4gICAgICAgIClcbiAgICAgICAgaWYgKHF1ZXJ5Q2h1bmspIHtcbiAgICAgICAgICBxdWVyeS5wdXNoKHF1ZXJ5Q2h1bmspXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29tYmluZVF1ZXJ5R3JvdXBzKHF1ZXJ5KVxuICB9XG5cbiAgLy8gRklYTUU6IHRoaXMgaXMgbm90IHVzZWQgYW55bW9yZVxuICBwcml2YXRlIHBhcnNlU3RhdGVOb2RlKG5vZGVOYW1lLCBub2RlLCBpbmRleEtleSkge1xuICAgIGxldCBxdWVyeVN0cmluZyA9ICcnXG4gICAgaWYgKG5vZGUgJiYgdHlwZW9mIG5vZGUgPT09ICdvYmplY3QnKSB7XG4gICAgICBjb25zdCBjaHVua3MgPSBbXVxuICAgICAgZm9yIChjb25zdCBwIGluIG5vZGUpIHtcbiAgICAgICAgLy8gbmVzdGluZ1xuICAgICAgICBpZiAobm9kZVtwXSAmJiB0eXBlb2Ygbm9kZVtwXSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBjb25zdCBuZXh0THZsS2V5ID0gT2JqZWN0LmtleXMobm9kZVtwXSlbMF1cbiAgICAgICAgICBjb25zdCBuZXh0THZsU3RhdGUgPSBub2RlW3BdW25leHRMdmxLZXldXG4gICAgICAgICAgaWYgKE9iamVjdC5rZXlzKG5leHRMdmxTdGF0ZSkubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBuZXN0ZWRDaHVua3MgPSBbbm9kZU5hbWUgKyAnOicgKyAnXCInICsgcCArICdcIiddXG4gICAgICAgICAgICBjb25zdCBjaHVuayA9IHRoaXMucGFyc2VTdGF0ZU5vZGUoXG4gICAgICAgICAgICAgIG5leHRMdmxLZXksXG4gICAgICAgICAgICAgIG5leHRMdmxTdGF0ZSxcbiAgICAgICAgICAgICAgbmV4dEx2bEtleVxuICAgICAgICAgICAgKS50cmltKClcbiAgICAgICAgICAgIGlmIChjaHVuaykge1xuICAgICAgICAgICAgICBuZXN0ZWRDaHVua3MucHVzaChjaHVuaylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNodW5rcy5wdXNoKCcoJyArIG5lc3RlZENodW5rcy5qb2luKCcgQU5EICcpICsgJyknKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBjaHVuayA9IHRoaXMucGFyc2VTdGF0ZU5vZGUocCwgbm9kZVtwXSwgbm9kZU5hbWUpLnRyaW0oKVxuICAgICAgICAgIGlmIChjaHVuaykge1xuICAgICAgICAgICAgY2h1bmtzLnB1c2goY2h1bmspXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoY2h1bmtzICYmIGNodW5rcy5sZW5ndGgpIHtcbiAgICAgICAgcXVlcnlTdHJpbmcgKz0gJygnXG4gICAgICAgIHF1ZXJ5U3RyaW5nICs9IGNodW5rcy5qb2luKCcgJylcbiAgICAgICAgcXVlcnlTdHJpbmcgKz0gJyknXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlb2Ygbm9kZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHF1ZXJ5U3RyaW5nICs9IG5vZGVcbiAgICB9IGVsc2UgaWYgKG5vZGUgPT09IHRydWUpIHtcbiAgICAgIHF1ZXJ5U3RyaW5nICs9IGluZGV4S2V5ICsgJzpcIicgKyBub2RlTmFtZSArICdcIidcbiAgICB9IGVsc2UgaWYgKG5vZGUgPT09IGZhbHNlKSB7XG4gICAgICBxdWVyeVN0cmluZyArPSAnLScgKyBpbmRleEtleSArICc6XCInICsgbm9kZU5hbWUgKyAnXCInXG4gICAgfVxuICAgIHJldHVybiBxdWVyeVN0cmluZ1xuICB9XG5cbiAgcHJpdmF0ZSBlc2NhcGVTcGVjaWFsQ2hhcmFjdGVycyhxdWVyeXN0cmluZykge1xuICAgIHJldHVybiBxdWVyeXN0cmluZy5yZXBsYWNlKFxuICAgICAgLyhcXCt8LXxcXC98JiZ8XFx8XFx8fCF8XFx7fFxcfXxcXFt8XFxdXFxefH58XFw/fDp8XFxcXHsxfXxcXCh8XFwpKS9nLFxuICAgICAgJ1xcXFwkMSdcbiAgICApXG4gIH1cblxuICBidWlsZEFnZ3JlZ2F0aW9uc1BheWxvYWQoYWdncmVnYXRpb25zOiBBZ2dyZWdhdGlvbnNQYXJhbXMpOiBhbnkge1xuICAgIGNvbnN0IG1hcFRvRVNBZ2dyZWdhdGlvbiA9IChhZ2dyZWdhdGlvbjogQWdncmVnYXRpb25QYXJhbXMpID0+IHtcbiAgICAgIHN3aXRjaCAoYWdncmVnYXRpb24udHlwZSkge1xuICAgICAgICBjYXNlICdmaWx0ZXJzJzpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZmlsdGVyczogT2JqZWN0LmtleXMoYWdncmVnYXRpb24uZmlsdGVycykucmVkdWNlKChwcmV2LCBjdXJyKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbHRlciA9IGFnZ3JlZ2F0aW9uLmZpbHRlcnNbY3Vycl1cbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgICAgICAgIFtjdXJyXTogdGhpcy5maWx0ZXJzVG9RdWVyeShmaWx0ZXIpWzBdLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7fSksXG4gICAgICAgICAgfVxuICAgICAgICBjYXNlICd0ZXJtcyc6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRlcm1zOiB7XG4gICAgICAgICAgICAgIHNpemU6IGFnZ3JlZ2F0aW9uLmxpbWl0LFxuICAgICAgICAgICAgICBmaWVsZDogYWdncmVnYXRpb24uZmllbGQsXG4gICAgICAgICAgICAgIG9yZGVyOiB7XG4gICAgICAgICAgICAgICAgW2BfJHthZ2dyZWdhdGlvbi5zb3J0WzFdfWBdOiBhZ2dyZWdhdGlvbi5zb3J0WzBdLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIGNhc2UgJ2hpc3RvZ3JhbSc6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhpc3RvZ3JhbToge1xuICAgICAgICAgICAgICBmaWVsZDogYWdncmVnYXRpb24uZmllbGQsXG4gICAgICAgICAgICAgIGludGVydmFsOiBhZ2dyZWdhdGlvbi5pbnRlcnZhbCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gT2JqZWN0LmtleXMoYWdncmVnYXRpb25zKS5yZWR1Y2UoXG4gICAgICAocHJldiwgY3VycikgPT4gKHtcbiAgICAgICAgLi4ucHJldixcbiAgICAgICAgW2N1cnJdOiBtYXBUb0VTQWdncmVnYXRpb24oYWdncmVnYXRpb25zW2N1cnJdKSxcbiAgICAgIH0pLFxuICAgICAge31cbiAgICApXG4gIH1cblxuICBwYXJzZUFnZ3JlZ2F0aW9uUmVzdWx0KFxuICAgIHJlc3VsdDogQWdncmVnYXRpb25SZXN1bHQsXG4gICAgcmVxdWVzdFBhcmFtOiBBZ2dyZWdhdGlvblBhcmFtc1xuICApOiBBZ2dyZWdhdGlvbiB7XG4gICAgc3dpdGNoIChyZXF1ZXN0UGFyYW0udHlwZSkge1xuICAgICAgY2FzZSAnZmlsdGVycyc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgYnVja2V0czogT2JqZWN0LmtleXMoXG4gICAgICAgICAgICAocmVzdWx0IGFzIEZpbHRlcnNBZ2dyZWdhdGlvblJlc3VsdCkuYnVja2V0c1xuICAgICAgICAgICkubWFwKChrZXkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGJ1Y2tldCA9IChyZXN1bHQgYXMgRmlsdGVyc0FnZ3JlZ2F0aW9uUmVzdWx0KS5idWNrZXRzW2tleV1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIHRlcm06IGtleSxcbiAgICAgICAgICAgICAgY291bnQ6IGJ1Y2tldC5kb2NfY291bnQsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSksXG4gICAgICAgIH1cbiAgICAgIGNhc2UgJ3Rlcm1zJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBidWNrZXRzOiAocmVzdWx0IGFzIFRlcm1zQWdncmVnYXRpb25SZXN1bHQpLmJ1Y2tldHMubWFwKChidWNrZXQpID0+ICh7XG4gICAgICAgICAgICB0ZXJtOiBidWNrZXQua2V5LFxuICAgICAgICAgICAgY291bnQ6IGJ1Y2tldC5kb2NfY291bnQsXG4gICAgICAgICAgfSkpLFxuICAgICAgICB9XG4gICAgICBjYXNlICdoaXN0b2dyYW0nOiB7XG4gICAgICAgIGNvbnN0IGhpc3RvZ3JhbVJlc3VsdCA9IHJlc3VsdCBhcyBIaXN0b2dyYW1BZ2dyZWdhdGlvblJlc3VsdFxuICAgICAgICBsZXQgYnVja2V0cyA9IEFycmF5LmlzQXJyYXkoaGlzdG9ncmFtUmVzdWx0LmJ1Y2tldHMpXG4gICAgICAgICAgPyBoaXN0b2dyYW1SZXN1bHQuYnVja2V0c1xuICAgICAgICAgIDogT2JqZWN0LmtleXMoaGlzdG9ncmFtUmVzdWx0LmJ1Y2tldHMpLm1hcChcbiAgICAgICAgICAgICAgKGtleSkgPT4gaGlzdG9ncmFtUmVzdWx0LmJ1Y2tldHNba2V5XVxuICAgICAgICAgICAgKVxuICAgICAgICBidWNrZXRzID0gYnVja2V0cy5tYXAoKGJ1Y2tldCwgaW5kZXgpID0+ICh7XG4gICAgICAgICAgbG93VmFsdWU6IGJ1Y2tldC5rZXksXG4gICAgICAgICAgaGlnaFZhbHVlOiBidWNrZXRzW2luZGV4ICsgMV0/LmtleSwgLy8gdGhpcyB3aWxsIHJldHVybiB1bmRlZmluZWQgb24gdGhlIGxhc3QgZWxlbWVudCAod2hpY2ggd2UgcmVtb3ZlIGxhdGVyKVxuICAgICAgICAgIGNvdW50OiBidWNrZXQuZG9jX2NvdW50LFxuICAgICAgICB9KSlcbiAgICAgICAgYnVja2V0cy5wb3AoKSAvLyBzZWUgYWJvdmVcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBidWNrZXRzLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,3 +1,4 @@
1
1
  export * from './elasticsearch.service';
2
2
  export * from './constant';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9yZXBvc2l0b3J5L3NyYy9saWIvZ240L2VsYXN0aWNzZWFyY2gvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQTtBQUN2QyxjQUFjLFlBQVksQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZWxhc3RpY3NlYXJjaC5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudCdcbiJdfQ==
3
+ export * from './date-range.utils';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9yZXBvc2l0b3J5L3NyYy9saWIvZ240L2VsYXN0aWNzZWFyY2gvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQTtBQUN2QyxjQUFjLFlBQVksQ0FBQTtBQUMxQixjQUFjLG9CQUFvQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lbGFzdGljc2VhcmNoLnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL2NvbnN0YW50J1xuZXhwb3J0ICogZnJvbSAnLi9kYXRlLXJhbmdlLnV0aWxzJ1xuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvc2VhcmNoL2ZpbHRlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGROYW1lIH0gZnJvbSAnLi9maWVsZC5tb2RlbCdcblxuZXhwb3J0IHR5cGUgRmllbGRGaWx0ZXJCeVZhbHVlcyA9IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+XG5leHBvcnQgdHlwZSBGaWVsZEZpbHRlckJ5RXhwcmVzc2lvbiA9IHN0cmluZyB8IG51bWJlclxuZXhwb3J0IHR5cGUgRmllbGRGaWx0ZXIgPSBGaWVsZEZpbHRlckJ5RXhwcmVzc2lvbiB8IEZpZWxkRmlsdGVyQnlWYWx1ZXNcbmV4cG9ydCB0eXBlIEZpZWxkRmlsdGVycyA9IFJlY29yZDxGaWVsZE5hbWUsIEZpZWxkRmlsdGVyPlxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvc2VhcmNoL2ZpbHRlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGROYW1lIH0gZnJvbSAnLi9maWVsZC5tb2RlbCdcblxuZXhwb3J0IHR5cGUgRmllbGRGaWx0ZXJCeVZhbHVlcyA9IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+XG5leHBvcnQgdHlwZSBGaWVsZEZpbHRlckJ5RXhwcmVzc2lvbiA9IHN0cmluZyB8IG51bWJlclxuZXhwb3J0IHR5cGUgRmllbGRGaWx0ZXJCeVJhbmdlID0ge1xuICBzdGFydD86IERhdGVcbiAgZW5kPzogRGF0ZVxufVxuXG5leHBvcnQgdHlwZSBGaWVsZEZpbHRlciA9XG4gIHwgRmllbGRGaWx0ZXJCeUV4cHJlc3Npb25cbiAgfCBGaWVsZEZpbHRlckJ5VmFsdWVzXG4gIHwgRmllbGRGaWx0ZXJCeVJhbmdlXG5leHBvcnQgdHlwZSBGaWVsZEZpbHRlcnMgPSBSZWNvcmQ8RmllbGROYW1lLCBGaWVsZEZpbHRlcj5cblxuZXhwb3J0IHR5cGUgUXVlcnlTdHJpbmcgPSB7XG4gIHF1ZXJ5X3N0cmluZzogc3RyaW5nXG59XG5leHBvcnQgdHlwZSBRdWVyeVJhbmdlID0ge1xuICByYW5nZTogUmVjb3JkPHN0cmluZywgeyBmb3JtYXQ6IHN0cmluZzsgZ3RlOiBzdHJpbmc7IGx0ZTogc3RyaW5nIH0+XG59XG5leHBvcnQgdHlwZSBGaWx0ZXJRdWVyeSA9IEFycmF5PFF1ZXJ5U3RyaW5nIHwgUXVlcnlSYW5nZT5cbiJdfQ==
@@ -1,11 +1,10 @@
1
1
  import { InjectionToken, NgModule } from '@angular/core';
2
2
  import { SiteTitleComponent } from './site-title/site-title.component';
3
- import { OrganisationsFilterComponent, UiCatalogModule, } from '../../../../../libs/ui/catalog/src';
3
+ import { CatalogTitleComponent, OrganisationsFilterComponent, } from '../../../../../libs/ui/catalog/src';
4
4
  import { GroupsApiService, SearchApiService, } from '../../../../../libs/data-access/gn4/src';
5
5
  import { CommonModule } from '@angular/common';
6
6
  import { SourceLabelComponent } from './source-label/source-label.component';
7
7
  import { LangService, UtilI18nModule } from '../../../../../libs/util/i18n/src';
8
- import { OrganisationsComponent } from './organisations/organisations.component';
9
8
  import { UiLayoutModule } from '../../../../../libs/ui/layout/src';
10
9
  import { TranslateModule, TranslateService } from '@ngx-translate/core';
11
10
  import { UiElementsModule } from '../../../../../libs/ui/elements/src';
@@ -21,13 +20,11 @@ const organizationsServiceFactory = (strategy, esService, searchApiService, grou
21
20
  : new OrganizationsFromMetadataService(esService, searchApiService, groupsApiService, platformService, langService);
22
21
  export class FeatureCatalogModule {
23
22
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureCatalogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
24
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: FeatureCatalogModule, declarations: [SiteTitleComponent,
25
- SourceLabelComponent,
26
- OrganisationsComponent], imports: [UiCatalogModule,
27
- UiLayoutModule,
23
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: FeatureCatalogModule, declarations: [SiteTitleComponent, SourceLabelComponent], imports: [UiLayoutModule,
28
24
  CommonModule,
29
25
  UtilI18nModule, i1.TranslateModule, UiElementsModule,
30
- OrganisationsFilterComponent], exports: [SiteTitleComponent, SourceLabelComponent, OrganisationsComponent] }); }
26
+ OrganisationsFilterComponent,
27
+ CatalogTitleComponent], exports: [SiteTitleComponent, SourceLabelComponent] }); }
31
28
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureCatalogModule, providers: [
32
29
  {
33
30
  provide: OrganizationsServiceInterface,
@@ -42,32 +39,28 @@ export class FeatureCatalogModule {
42
39
  LangService,
43
40
  ],
44
41
  },
45
- ], imports: [UiCatalogModule,
46
- UiLayoutModule,
42
+ ], imports: [UiLayoutModule,
47
43
  CommonModule,
48
44
  UtilI18nModule,
49
45
  TranslateModule.forChild(),
50
46
  UiElementsModule,
51
- OrganisationsFilterComponent] }); }
47
+ OrganisationsFilterComponent,
48
+ CatalogTitleComponent] }); }
52
49
  }
53
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureCatalogModule, decorators: [{
54
51
  type: NgModule,
55
52
  args: [{
56
- declarations: [
57
- SiteTitleComponent,
58
- SourceLabelComponent,
59
- OrganisationsComponent,
60
- ],
53
+ declarations: [SiteTitleComponent, SourceLabelComponent],
61
54
  imports: [
62
- UiCatalogModule,
63
55
  UiLayoutModule,
64
56
  CommonModule,
65
57
  UtilI18nModule,
66
58
  TranslateModule.forChild(),
67
59
  UiElementsModule,
68
60
  OrganisationsFilterComponent,
61
+ CatalogTitleComponent,
69
62
  ],
70
- exports: [SiteTitleComponent, SourceLabelComponent, OrganisationsComponent],
63
+ exports: [SiteTitleComponent, SourceLabelComponent],
71
64
  providers: [
72
65
  {
73
66
  provide: OrganizationsServiceInterface,
@@ -85,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
85
78
  ],
86
79
  }]
87
80
  }] });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1jYXRhbG9nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9jYXRhbG9nL3NyYy9saWIvZmVhdHVyZS1jYXRhbG9nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUN0RSxPQUFPLEVBQ0wsNEJBQTRCLEVBQzVCLGVBQWUsR0FDaEIsTUFBTSxvQ0FBb0MsQ0FBQTtBQUMzQyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGdCQUFnQixHQUNqQixNQUFNLHlDQUF5QyxDQUFBO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQTtBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQy9FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDdEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkVBQTJFLENBQUE7QUFDekgsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixzQkFBc0IsRUFDdEIsOEJBQThCLEVBQzlCLGdDQUFnQyxHQUVqQyxNQUFNLHdDQUF3QyxDQUFBO0FBQy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNFQUFzRSxDQUFBOzs7QUFFL0csc0NBQXNDO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUN0RCx3QkFBd0IsQ0FDekIsQ0FBQTtBQUVELE1BQU0sMkJBQTJCLEdBQUcsQ0FDbEMsUUFBK0IsRUFDL0IsU0FBK0IsRUFDL0IsZ0JBQWtDLEVBQ2xDLGdCQUFrQyxFQUNsQyxnQkFBa0MsRUFDbEMsZUFBeUMsRUFDekMsV0FBd0IsRUFDeEIsRUFBRSxDQUNGLFFBQVEsS0FBSyxRQUFRO0lBQ25CLENBQUMsQ0FBQyxJQUFJLDhCQUE4QixDQUNoQyxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixnQkFBZ0IsQ0FDakI7SUFDSCxDQUFDLENBQUMsSUFBSSxnQ0FBZ0MsQ0FDbEMsU0FBUyxFQUNULGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLFdBQVcsQ0FDWixDQUFBO0FBa0NQLE1BQU0sT0FBTyxvQkFBb0I7K0dBQXBCLG9CQUFvQjtnSEFBcEIsb0JBQW9CLGlCQTlCN0Isa0JBQWtCO1lBQ2xCLG9CQUFvQjtZQUNwQixzQkFBc0IsYUFHdEIsZUFBZTtZQUNmLGNBQWM7WUFDZCxZQUFZO1lBQ1osY0FBYyxzQkFFZCxnQkFBZ0I7WUFDaEIsNEJBQTRCLGFBRXBCLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLHNCQUFzQjtnSEFpQi9ELG9CQUFvQixhQWhCcEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsNkJBQTZCO2dCQUN0QyxVQUFVLEVBQUUsMkJBQTJCO2dCQUN2QyxJQUFJLEVBQUU7b0JBQ0osc0JBQXNCO29CQUN0QixvQkFBb0I7b0JBQ3BCLGdCQUFnQjtvQkFDaEIsZ0JBQWdCO29CQUNoQixnQkFBZ0I7b0JBQ2hCLHdCQUF3QjtvQkFDeEIsV0FBVztpQkFDWjthQUNGO1NBQ0YsWUF2QkMsZUFBZTtZQUNmLGNBQWM7WUFDZCxZQUFZO1lBQ1osY0FBYztZQUNkLGVBQWUsQ0FBQyxRQUFRLEVBQUU7WUFDMUIsZ0JBQWdCO1lBQ2hCLDRCQUE0Qjs7NEZBbUJuQixvQkFBb0I7a0JBaENoQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixrQkFBa0I7d0JBQ2xCLG9CQUFvQjt3QkFDcEIsc0JBQXNCO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZUFBZTt3QkFDZixjQUFjO3dCQUNkLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxlQUFlLENBQUMsUUFBUSxFQUFFO3dCQUMxQixnQkFBZ0I7d0JBQ2hCLDRCQUE0QjtxQkFDN0I7b0JBQ0QsT0FBTyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsc0JBQXNCLENBQUM7b0JBQzNFLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsNkJBQTZCOzRCQUN0QyxVQUFVLEVBQUUsMkJBQTJCOzRCQUN2QyxJQUFJLEVBQUU7Z0NBQ0osc0JBQXNCO2dDQUN0QixvQkFBb0I7Z0NBQ3BCLGdCQUFnQjtnQ0FDaEIsZ0JBQWdCO2dDQUNoQixnQkFBZ0I7Z0NBQ2hCLHdCQUF3QjtnQ0FDeEIsV0FBVzs2QkFDWjt5QkFDRjtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBTaXRlVGl0bGVDb21wb25lbnQgfSBmcm9tICcuL3NpdGUtdGl0bGUvc2l0ZS10aXRsZS5jb21wb25lbnQnXG5pbXBvcnQge1xuICBPcmdhbmlzYXRpb25zRmlsdGVyQ29tcG9uZW50LFxuICBVaUNhdGFsb2dNb2R1bGUsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvY2F0YWxvZy9zcmMnXG5pbXBvcnQge1xuICBHcm91cHNBcGlTZXJ2aWNlLFxuICBTZWFyY2hBcGlTZXJ2aWNlLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL2duNC9zcmMnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBTb3VyY2VMYWJlbENvbXBvbmVudCB9IGZyb20gJy4vc291cmNlLWxhYmVsL3NvdXJjZS1sYWJlbC5jb21wb25lbnQnXG5pbXBvcnQgeyBMYW5nU2VydmljZSwgVXRpbEkxOG5Nb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvaTE4bi9zcmMnXG5pbXBvcnQgeyBPcmdhbmlzYXRpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9vcmdhbmlzYXRpb25zL29yZ2FuaXNhdGlvbnMuY29tcG9uZW50J1xuaW1wb3J0IHsgVWlMYXlvdXRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgVWlFbGVtZW50c01vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjJ1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uc1NlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9vcmdhbml6YXRpb25zLnNlcnZpY2UuaW50ZXJmYWNlJ1xuaW1wb3J0IHtcbiAgRWxhc3RpY3NlYXJjaFNlcnZpY2UsXG4gIE9SR0FOSVpBVElPTlNfU1RSQVRFR1ksXG4gIE9yZ2FuaXphdGlvbnNGcm9tR3JvdXBzU2VydmljZSxcbiAgT3JnYW5pemF0aW9uc0Zyb21NZXRhZGF0YVNlcnZpY2UsXG4gIE9yZ2FuaXphdGlvbnNTdHJhdGVneSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy9hcGkvcmVwb3NpdG9yeS9zcmMnXG5pbXBvcnQgeyBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9wbGF0Zm9ybS5zZXJ2aWNlLmludGVyZmFjZSdcblxuLy8gZXhwZWN0cyB0aGUgcmVwbGFjZW1lbnQga2V5ICR7bmFtZX1cbmV4cG9ydCBjb25zdCBPUkdBTklaQVRJT05fVVJMX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oXG4gICdvcmdhbml6YXRpb24tdXJsLXRva2VuJ1xuKVxuXG5jb25zdCBvcmdhbml6YXRpb25zU2VydmljZUZhY3RvcnkgPSAoXG4gIHN0cmF0ZWd5OiBPcmdhbml6YXRpb25zU3RyYXRlZ3ksXG4gIGVzU2VydmljZTogRWxhc3RpY3NlYXJjaFNlcnZpY2UsXG4gIHNlYXJjaEFwaVNlcnZpY2U6IFNlYXJjaEFwaVNlcnZpY2UsXG4gIGdyb3Vwc0FwaVNlcnZpY2U6IEdyb3Vwc0FwaVNlcnZpY2UsXG4gIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gIHBsYXRmb3JtU2VydmljZTogUGxhdGZvcm1TZXJ2aWNlSW50ZXJmYWNlLFxuICBsYW5nU2VydmljZTogTGFuZ1NlcnZpY2VcbikgPT5cbiAgc3RyYXRlZ3kgPT09ICdncm91cHMnXG4gICAgPyBuZXcgT3JnYW5pemF0aW9uc0Zyb21Hcm91cHNTZXJ2aWNlKFxuICAgICAgICBlc1NlcnZpY2UsXG4gICAgICAgIHNlYXJjaEFwaVNlcnZpY2UsXG4gICAgICAgIGdyb3Vwc0FwaVNlcnZpY2UsXG4gICAgICAgIHRyYW5zbGF0ZVNlcnZpY2VcbiAgICAgIClcbiAgICA6IG5ldyBPcmdhbml6YXRpb25zRnJvbU1ldGFkYXRhU2VydmljZShcbiAgICAgICAgZXNTZXJ2aWNlLFxuICAgICAgICBzZWFyY2hBcGlTZXJ2aWNlLFxuICAgICAgICBncm91cHNBcGlTZXJ2aWNlLFxuICAgICAgICBwbGF0Zm9ybVNlcnZpY2UsXG4gICAgICAgIGxhbmdTZXJ2aWNlXG4gICAgICApXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFNpdGVUaXRsZUNvbXBvbmVudCxcbiAgICBTb3VyY2VMYWJlbENvbXBvbmVudCxcbiAgICBPcmdhbmlzYXRpb25zQ29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgVWlDYXRhbG9nTW9kdWxlLFxuICAgIFVpTGF5b3V0TW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBVdGlsSTE4bk1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUuZm9yQ2hpbGQoKSxcbiAgICBVaUVsZW1lbnRzTW9kdWxlLFxuICAgIE9yZ2FuaXNhdGlvbnNGaWx0ZXJDb21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtTaXRlVGl0bGVDb21wb25lbnQsIFNvdXJjZUxhYmVsQ29tcG9uZW50LCBPcmdhbmlzYXRpb25zQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogT3JnYW5pemF0aW9uc1NlcnZpY2VJbnRlcmZhY2UsXG4gICAgICB1c2VGYWN0b3J5OiBvcmdhbml6YXRpb25zU2VydmljZUZhY3RvcnksXG4gICAgICBkZXBzOiBbXG4gICAgICAgIE9SR0FOSVpBVElPTlNfU1RSQVRFR1ksXG4gICAgICAgIEVsYXN0aWNzZWFyY2hTZXJ2aWNlLFxuICAgICAgICBTZWFyY2hBcGlTZXJ2aWNlLFxuICAgICAgICBHcm91cHNBcGlTZXJ2aWNlLFxuICAgICAgICBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2UsXG4gICAgICAgIExhbmdTZXJ2aWNlLFxuICAgICAgXSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGZWF0dXJlQ2F0YWxvZ01vZHVsZSB7fVxuIl19
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1jYXRhbG9nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9jYXRhbG9nL3NyYy9saWIvZmVhdHVyZS1jYXRhbG9nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUN0RSxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLDRCQUE0QixHQUM3QixNQUFNLG9DQUFvQyxDQUFBO0FBQzNDLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEdBQ2pCLE1BQU0seUNBQXlDLENBQUE7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFBO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDL0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUN0RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyRUFBMkUsQ0FBQTtBQUN6SCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLHNCQUFzQixFQUN0Qiw4QkFBOEIsRUFDOUIsZ0NBQWdDLEdBRWpDLE1BQU0sd0NBQXdDLENBQUE7QUFDL0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0VBQXNFLENBQUE7OztBQUUvRyxzQ0FBc0M7QUFDdEMsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxjQUFjLENBQ3RELHdCQUF3QixDQUN6QixDQUFBO0FBRUQsTUFBTSwyQkFBMkIsR0FBRyxDQUNsQyxRQUErQixFQUMvQixTQUErQixFQUMvQixnQkFBa0MsRUFDbEMsZ0JBQWtDLEVBQ2xDLGdCQUFrQyxFQUNsQyxlQUF5QyxFQUN6QyxXQUF3QixFQUN4QixFQUFFLENBQ0YsUUFBUSxLQUFLLFFBQVE7SUFDbkIsQ0FBQyxDQUFDLElBQUksOEJBQThCLENBQ2hDLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLGdCQUFnQixDQUNqQjtJQUNILENBQUMsQ0FBQyxJQUFJLGdDQUFnQyxDQUNsQyxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsV0FBVyxDQUNaLENBQUE7QUE4QlAsTUFBTSxPQUFPLG9CQUFvQjsrR0FBcEIsb0JBQW9CO2dIQUFwQixvQkFBb0IsaUJBM0JoQixrQkFBa0IsRUFBRSxvQkFBb0IsYUFFckQsY0FBYztZQUNkLFlBQVk7WUFDWixjQUFjLHNCQUVkLGdCQUFnQjtZQUNoQiw0QkFBNEI7WUFDNUIscUJBQXFCLGFBRWIsa0JBQWtCLEVBQUUsb0JBQW9CO2dIQWlCdkMsb0JBQW9CLGFBaEJwQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSw2QkFBNkI7Z0JBQ3RDLFVBQVUsRUFBRSwyQkFBMkI7Z0JBQ3ZDLElBQUksRUFBRTtvQkFDSixzQkFBc0I7b0JBQ3RCLG9CQUFvQjtvQkFDcEIsZ0JBQWdCO29CQUNoQixnQkFBZ0I7b0JBQ2hCLGdCQUFnQjtvQkFDaEIsd0JBQXdCO29CQUN4QixXQUFXO2lCQUNaO2FBQ0Y7U0FDRixZQXZCQyxjQUFjO1lBQ2QsWUFBWTtZQUNaLGNBQWM7WUFDZCxlQUFlLENBQUMsUUFBUSxFQUFFO1lBQzFCLGdCQUFnQjtZQUNoQiw0QkFBNEI7WUFDNUIscUJBQXFCOzs0RkFtQlosb0JBQW9CO2tCQTVCaEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxvQkFBb0IsQ0FBQztvQkFDeEQsT0FBTyxFQUFFO3dCQUNQLGNBQWM7d0JBQ2QsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGVBQWUsQ0FBQyxRQUFRLEVBQUU7d0JBQzFCLGdCQUFnQjt3QkFDaEIsNEJBQTRCO3dCQUM1QixxQkFBcUI7cUJBQ3RCO29CQUNELE9BQU8sRUFBRSxDQUFDLGtCQUFrQixFQUFFLG9CQUFvQixDQUFDO29CQUNuRCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLDZCQUE2Qjs0QkFDdEMsVUFBVSxFQUFFLDJCQUEyQjs0QkFDdkMsSUFBSSxFQUFFO2dDQUNKLHNCQUFzQjtnQ0FDdEIsb0JBQW9CO2dDQUNwQixnQkFBZ0I7Z0NBQ2hCLGdCQUFnQjtnQ0FDaEIsZ0JBQWdCO2dDQUNoQix3QkFBd0I7Z0NBQ3hCLFdBQVc7NkJBQ1o7eUJBQ0Y7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgU2l0ZVRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi9zaXRlLXRpdGxlL3NpdGUtdGl0bGUuY29tcG9uZW50J1xuaW1wb3J0IHtcbiAgQ2F0YWxvZ1RpdGxlQ29tcG9uZW50LFxuICBPcmdhbmlzYXRpb25zRmlsdGVyQ29tcG9uZW50LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL2NhdGFsb2cvc3JjJ1xuaW1wb3J0IHtcbiAgR3JvdXBzQXBpU2VydmljZSxcbiAgU2VhcmNoQXBpU2VydmljZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9nbjQvc3JjJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgU291cmNlTGFiZWxDb21wb25lbnQgfSBmcm9tICcuL3NvdXJjZS1sYWJlbC9zb3VyY2UtbGFiZWwuY29tcG9uZW50J1xuaW1wb3J0IHsgTGFuZ1NlcnZpY2UsIFV0aWxJMThuTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2kxOG4vc3JjJ1xuaW1wb3J0IHsgVWlMYXlvdXRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgVWlFbGVtZW50c01vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjJ1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uc1NlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9vcmdhbml6YXRpb25zLnNlcnZpY2UuaW50ZXJmYWNlJ1xuaW1wb3J0IHtcbiAgRWxhc3RpY3NlYXJjaFNlcnZpY2UsXG4gIE9SR0FOSVpBVElPTlNfU1RSQVRFR1ksXG4gIE9yZ2FuaXphdGlvbnNGcm9tR3JvdXBzU2VydmljZSxcbiAgT3JnYW5pemF0aW9uc0Zyb21NZXRhZGF0YVNlcnZpY2UsXG4gIE9yZ2FuaXphdGlvbnNTdHJhdGVneSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy9hcGkvcmVwb3NpdG9yeS9zcmMnXG5pbXBvcnQgeyBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9wbGF0Zm9ybS5zZXJ2aWNlLmludGVyZmFjZSdcblxuLy8gZXhwZWN0cyB0aGUgcmVwbGFjZW1lbnQga2V5ICR7bmFtZX1cbmV4cG9ydCBjb25zdCBPUkdBTklaQVRJT05fVVJMX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oXG4gICdvcmdhbml6YXRpb24tdXJsLXRva2VuJ1xuKVxuXG5jb25zdCBvcmdhbml6YXRpb25zU2VydmljZUZhY3RvcnkgPSAoXG4gIHN0cmF0ZWd5OiBPcmdhbml6YXRpb25zU3RyYXRlZ3ksXG4gIGVzU2VydmljZTogRWxhc3RpY3NlYXJjaFNlcnZpY2UsXG4gIHNlYXJjaEFwaVNlcnZpY2U6IFNlYXJjaEFwaVNlcnZpY2UsXG4gIGdyb3Vwc0FwaVNlcnZpY2U6IEdyb3Vwc0FwaVNlcnZpY2UsXG4gIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gIHBsYXRmb3JtU2VydmljZTogUGxhdGZvcm1TZXJ2aWNlSW50ZXJmYWNlLFxuICBsYW5nU2VydmljZTogTGFuZ1NlcnZpY2VcbikgPT5cbiAgc3RyYXRlZ3kgPT09ICdncm91cHMnXG4gICAgPyBuZXcgT3JnYW5pemF0aW9uc0Zyb21Hcm91cHNTZXJ2aWNlKFxuICAgICAgICBlc1NlcnZpY2UsXG4gICAgICAgIHNlYXJjaEFwaVNlcnZpY2UsXG4gICAgICAgIGdyb3Vwc0FwaVNlcnZpY2UsXG4gICAgICAgIHRyYW5zbGF0ZVNlcnZpY2VcbiAgICAgIClcbiAgICA6IG5ldyBPcmdhbml6YXRpb25zRnJvbU1ldGFkYXRhU2VydmljZShcbiAgICAgICAgZXNTZXJ2aWNlLFxuICAgICAgICBzZWFyY2hBcGlTZXJ2aWNlLFxuICAgICAgICBncm91cHNBcGlTZXJ2aWNlLFxuICAgICAgICBwbGF0Zm9ybVNlcnZpY2UsXG4gICAgICAgIGxhbmdTZXJ2aWNlXG4gICAgICApXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1NpdGVUaXRsZUNvbXBvbmVudCwgU291cmNlTGFiZWxDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgVWlMYXlvdXRNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFV0aWxJMThuTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLFxuICAgIFVpRWxlbWVudHNNb2R1bGUsXG4gICAgT3JnYW5pc2F0aW9uc0ZpbHRlckNvbXBvbmVudCxcbiAgICBDYXRhbG9nVGl0bGVDb21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtTaXRlVGl0bGVDb21wb25lbnQsIFNvdXJjZUxhYmVsQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogT3JnYW5pemF0aW9uc1NlcnZpY2VJbnRlcmZhY2UsXG4gICAgICB1c2VGYWN0b3J5OiBvcmdhbml6YXRpb25zU2VydmljZUZhY3RvcnksXG4gICAgICBkZXBzOiBbXG4gICAgICAgIE9SR0FOSVpBVElPTlNfU1RSQVRFR1ksXG4gICAgICAgIEVsYXN0aWNzZWFyY2hTZXJ2aWNlLFxuICAgICAgICBTZWFyY2hBcGlTZXJ2aWNlLFxuICAgICAgICBHcm91cHNBcGlTZXJ2aWNlLFxuICAgICAgICBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2UsXG4gICAgICAgIExhbmdTZXJ2aWNlLFxuICAgICAgXSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGZWF0dXJlQ2F0YWxvZ01vZHVsZSB7fVxuIl19