geonetwork-ui 2.7.0-dev.8de7be79f → 2.7.0-dev.943f3a71b

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 (426) hide show
  1. package/esm2022/index.mjs +1 -2
  2. package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.mjs +4 -7
  3. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +20 -20
  4. package/esm2022/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.mjs +3 -3
  5. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +3 -3
  6. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +3 -3
  7. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +4 -4
  8. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +5 -5
  9. package/esm2022/libs/api/repository/src/index.mjs +2 -2
  10. package/esm2022/libs/api/repository/src/lib/gn4/auth/auth.service.mjs +5 -5
  11. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +55 -12
  12. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +3 -3
  13. package/esm2022/libs/api/repository/src/lib/gn4/gn4.provider.mjs +26 -3
  14. package/esm2022/libs/api/repository/src/lib/gn4/organizations/index.mjs +3 -5
  15. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organization-strategy.token.mjs +5 -0
  16. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.mjs +3 -3
  17. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +3 -3
  18. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-service.factory.mjs +6 -0
  19. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +43 -25
  20. package/esm2022/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.mjs +3 -1
  21. package/esm2022/libs/api/repository/src/lib/metadata-language.token.mjs +3 -0
  22. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +11 -1
  23. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  24. package/esm2022/libs/feature/catalog/src/index.mjs +1 -2
  25. package/esm2022/libs/feature/catalog/src/lib/organization-url.token.mjs +3 -1
  26. package/esm2022/libs/feature/catalog/src/lib/site-title/site-title.component.mjs +5 -4
  27. package/esm2022/libs/feature/catalog/src/lib/source-label/source-label.component.mjs +4 -3
  28. package/esm2022/libs/feature/catalog/src/lib/sources/sources.service.mjs +3 -3
  29. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +4 -4
  30. package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +4 -4
  31. package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +8 -2
  32. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-topics/form-field-topics.component.mjs +55 -0
  33. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +8 -3
  34. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -1
  35. package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +6 -36
  36. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +83 -1
  37. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +10 -5
  38. package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +3 -5
  39. package/esm2022/libs/feature/notifications/src/index.mjs +1 -2
  40. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +4 -2
  41. package/esm2022/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.mjs +14 -4
  42. package/esm2022/libs/feature/record/src/lib/feature-record.module.mjs +5 -43
  43. package/esm2022/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.mjs +10 -5
  44. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +15 -5
  45. package/esm2022/libs/feature/record/src/lib/record-meta/record-meta.component.mjs +4 -2
  46. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +4 -2
  47. package/esm2022/libs/feature/router/src/lib/default/container/search-router.container.directive.mjs +3 -2
  48. package/esm2022/libs/feature/router/src/lib/default/router.module.mjs +2 -5
  49. package/esm2022/libs/feature/router/src/lib/default/state/query-params.utils.mjs +4 -3
  50. package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +3 -2
  51. package/esm2022/libs/feature/search/src/index.mjs +1 -2
  52. package/esm2022/libs/feature/search/src/lib/facets/facets-container/facets-container.component.mjs +12 -5
  53. package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +24 -17
  54. package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +4 -100
  55. package/esm2022/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.mjs +9 -5
  56. package/esm2022/libs/feature/search/src/lib/records-metrics/records-metrics.component.mjs +6 -5
  57. package/esm2022/libs/feature/search/src/lib/results-hits/results-hits.container.component.mjs +9 -5
  58. package/esm2022/libs/feature/search/src/lib/results-layout/results-layout.component.mjs +7 -6
  59. package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +19 -12
  60. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +2 -1
  61. package/esm2022/libs/feature/search/src/lib/sort-by/sort-by.component.mjs +7 -6
  62. package/esm2022/libs/feature/search/src/lib/state/container/search-state.container.directive.mjs +3 -2
  63. package/esm2022/libs/feature/search/src/lib/state/reducer.mjs +5 -2
  64. package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +8 -2
  65. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +10 -4
  66. package/esm2022/libs/ui/elements/src/lib/download-item/download-item.component.mjs +8 -2
  67. package/esm2022/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.mjs +8 -2
  68. package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +14 -4
  69. package/esm2022/libs/ui/elements/src/lib/kind-badge/kind-badge.component.mjs +8 -2
  70. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +3 -3
  71. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +1 -4
  72. package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +7 -7
  73. package/esm2022/libs/ui/elements/src/lib/notification/notification.component.mjs +8 -2
  74. package/esm2022/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.mjs +1 -6
  75. package/esm2022/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.mjs +15 -5
  76. package/esm2022/libs/ui/search/src/index.mjs +1 -3
  77. package/esm2022/libs/ui/search/src/lib/facets/facet-block/facet-block.component.mjs +14 -30
  78. package/esm2022/libs/ui/search/src/lib/facets/facet-item/facet-item.component.mjs +6 -27
  79. package/esm2022/libs/ui/search/src/lib/facets/facet-list/facet-list.component.mjs +7 -4
  80. package/esm2022/libs/ui/search/src/lib/record-metric/record-metric.component.mjs +5 -4
  81. package/esm2022/libs/ui/search/src/lib/record-preview/record-preview.component.mjs +5 -2
  82. package/esm2022/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.mjs +5 -4
  83. package/esm2022/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.mjs +36 -7
  84. package/esm2022/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.mjs +11 -5
  85. package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +5 -4
  86. package/esm2022/libs/ui/search/src/lib/record-preview-text/record-preview-text.component.mjs +5 -4
  87. package/esm2022/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.mjs +5 -4
  88. package/esm2022/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.mjs +5 -4
  89. package/esm2022/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.mjs +17 -7
  90. package/esm2022/libs/ui/search/src/lib/results-list/results-layout.config.mjs +4 -2
  91. package/esm2022/libs/ui/search/src/lib/results-list/results-list.component.mjs +5 -4
  92. package/esm2022/libs/ui/search/src/lib/results-list-item/results-list-item.component.mjs +5 -3
  93. package/esm2022/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.mjs +14 -4
  94. package/esm2022/libs/util/app-config/src/lib/app-config.mjs +3 -1
  95. package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +2 -2
  96. package/esm2022/libs/util/app-config/src/lib/model.mjs +1 -1
  97. package/esm2022/libs/util/app-config/src/lib/parse-utils.mjs +5 -4
  98. package/esm2022/libs/util/i18n/src/lib/language-codes.mjs +50 -9
  99. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +33 -8
  100. package/esm2022/libs/util/shared/src/lib/record/quality-score.util.mjs +9 -8
  101. package/esm2022/libs/util/shared/src/lib/utils/geojson.mjs +58 -1
  102. package/esm2022/libs/util/shared/src/lib/utils/index.mjs +2 -1
  103. package/esm2022/libs/util/shared/src/lib/utils/scroll.mjs +40 -0
  104. package/esm2022/translations/de.json +55 -21
  105. package/esm2022/translations/en.json +57 -22
  106. package/esm2022/translations/es.json +42 -8
  107. package/esm2022/translations/fr.json +61 -27
  108. package/esm2022/translations/it.json +55 -21
  109. package/esm2022/translations/nl.json +42 -8
  110. package/esm2022/translations/pt.json +42 -8
  111. package/esm2022/translations/sk.json +46 -12
  112. package/fesm2022/geonetwork-ui.mjs +10696 -10716
  113. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  114. package/index.d.ts +0 -1
  115. package/index.d.ts.map +1 -1
  116. package/index.ts +0 -1
  117. package/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.d.ts.map +1 -1
  118. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +1 -1
  119. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  120. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +2 -2
  121. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  122. package/libs/api/repository/src/index.d.ts +1 -1
  123. package/libs/api/repository/src/index.d.ts.map +1 -1
  124. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +1 -2
  125. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  126. package/libs/api/repository/src/lib/gn4/gn4.provider.d.ts +5 -1
  127. package/libs/api/repository/src/lib/gn4/gn4.provider.d.ts.map +1 -1
  128. package/libs/api/repository/src/lib/gn4/organizations/index.d.ts +2 -3
  129. package/libs/api/repository/src/lib/gn4/organizations/index.d.ts.map +1 -1
  130. package/libs/api/repository/src/lib/gn4/organizations/organization-strategy.token.d.ts +4 -0
  131. package/libs/api/repository/src/lib/gn4/organizations/organization-strategy.token.d.ts.map +1 -0
  132. package/libs/api/repository/src/lib/gn4/organizations/organizations-service.factory.d.ts +9 -0
  133. package/libs/api/repository/src/lib/gn4/organizations/organizations-service.factory.d.ts.map +1 -0
  134. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +12 -8
  135. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  136. package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts +2 -0
  137. package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts.map +1 -1
  138. package/libs/api/repository/src/lib/metadata-language.token.d.ts +5 -0
  139. package/libs/api/repository/src/lib/metadata-language.token.d.ts.map +1 -0
  140. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +5 -1
  141. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  142. package/libs/common/domain/src/lib/platform.service.interface.d.ts +2 -0
  143. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  144. package/libs/feature/catalog/src/index.d.ts +0 -1
  145. package/libs/feature/catalog/src/index.d.ts.map +1 -1
  146. package/libs/feature/catalog/src/lib/organization-url.token.d.ts +1 -0
  147. package/libs/feature/catalog/src/lib/organization-url.token.d.ts.map +1 -1
  148. package/libs/feature/catalog/src/lib/site-title/site-title.component.d.ts +1 -1
  149. package/libs/feature/catalog/src/lib/site-title/site-title.component.d.ts.map +1 -1
  150. package/libs/feature/catalog/src/lib/source-label/source-label.component.d.ts +1 -1
  151. package/libs/feature/catalog/src/lib/source-label/source-label.component.d.ts.map +1 -1
  152. package/libs/feature/catalog/src/lib/sources/sources.service.d.ts.map +1 -1
  153. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +1 -1
  154. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  155. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +1 -1
  156. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -1
  157. package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts.map +1 -1
  158. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-topics/form-field-topics.component.d.ts +20 -0
  159. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-topics/form-field-topics.component.d.ts.map +1 -0
  160. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +1 -0
  161. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  162. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -0
  163. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
  164. package/libs/feature/editor/src/lib/feature-editor.module.d.ts +3 -10
  165. package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
  166. package/libs/feature/editor/src/lib/fields.config.d.ts +8 -1
  167. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  168. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.d.ts.map +1 -1
  169. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts +2 -2
  170. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
  171. package/libs/feature/notifications/src/index.d.ts +0 -1
  172. package/libs/feature/notifications/src/index.d.ts.map +1 -1
  173. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  174. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts.map +1 -1
  175. package/libs/feature/record/src/lib/feature-record.module.d.ts +4 -11
  176. package/libs/feature/record/src/lib/feature-record.module.d.ts.map +1 -1
  177. package/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.d.ts.map +1 -1
  178. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  179. package/libs/feature/record/src/lib/record-meta/record-meta.component.d.ts.map +1 -1
  180. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  181. package/libs/feature/router/src/lib/default/container/search-router.container.directive.d.ts +1 -1
  182. package/libs/feature/router/src/lib/default/container/search-router.container.directive.d.ts.map +1 -1
  183. package/libs/feature/router/src/lib/default/router.module.d.ts +4 -5
  184. package/libs/feature/router/src/lib/default/router.module.d.ts.map +1 -1
  185. package/libs/feature/router/src/lib/default/state/query-params.utils.d.ts.map +1 -1
  186. package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
  187. package/libs/feature/search/src/index.d.ts +0 -1
  188. package/libs/feature/search/src/index.d.ts.map +1 -1
  189. package/libs/feature/search/src/lib/facets/facets-container/facets-container.component.d.ts +1 -1
  190. package/libs/feature/search/src/lib/facets/facets-container/facets-container.component.d.ts.map +1 -1
  191. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts +1 -0
  192. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts.map +1 -1
  193. package/libs/feature/search/src/lib/feature-search.module.d.ts +3 -26
  194. package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
  195. package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts +1 -1
  196. package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts.map +1 -1
  197. package/libs/feature/search/src/lib/records-metrics/records-metrics.component.d.ts +1 -1
  198. package/libs/feature/search/src/lib/records-metrics/records-metrics.component.d.ts.map +1 -1
  199. package/libs/feature/search/src/lib/results-hits/results-hits.container.component.d.ts +1 -1
  200. package/libs/feature/search/src/lib/results-hits/results-hits.container.component.d.ts.map +1 -1
  201. package/libs/feature/search/src/lib/results-layout/results-layout.component.d.ts +1 -1
  202. package/libs/feature/search/src/lib/results-layout/results-layout.component.d.ts.map +1 -1
  203. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts +1 -1
  204. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts.map +1 -1
  205. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +1 -1
  206. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
  207. package/libs/feature/search/src/lib/sort-by/sort-by.component.d.ts +1 -1
  208. package/libs/feature/search/src/lib/sort-by/sort-by.component.d.ts.map +1 -1
  209. package/libs/feature/search/src/lib/state/container/search-state.container.directive.d.ts +1 -1
  210. package/libs/feature/search/src/lib/state/container/search-state.container.directive.d.ts.map +1 -1
  211. package/libs/feature/search/src/lib/state/reducer.d.ts.map +1 -1
  212. package/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.d.ts.map +1 -1
  213. package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts.map +1 -1
  214. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts.map +1 -1
  215. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
  216. package/libs/ui/elements/src/lib/external-link-card/external-link-card.component.d.ts +1 -1
  217. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts.map +1 -1
  218. package/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.d.ts.map +1 -1
  219. package/libs/ui/elements/src/lib/kind-badge/kind-badge.component.d.ts.map +1 -1
  220. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +0 -1
  221. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  222. package/libs/ui/elements/src/lib/notification/notification.component.d.ts.map +1 -1
  223. package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts.map +1 -1
  224. package/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.d.ts.map +1 -1
  225. package/libs/ui/search/src/index.d.ts +0 -2
  226. package/libs/ui/search/src/index.d.ts.map +1 -1
  227. package/libs/ui/search/src/lib/facets/facet-block/facet-block.component.d.ts +1 -11
  228. package/libs/ui/search/src/lib/facets/facet-block/facet-block.component.d.ts.map +1 -1
  229. package/libs/ui/search/src/lib/facets/facet-item/facet-item.component.d.ts +1 -11
  230. package/libs/ui/search/src/lib/facets/facet-item/facet-item.component.d.ts.map +1 -1
  231. package/libs/ui/search/src/lib/facets/facet-list/facet-list.component.d.ts +1 -1
  232. package/libs/ui/search/src/lib/facets/facet-list/facet-list.component.d.ts.map +1 -1
  233. package/libs/ui/search/src/lib/record-metric/record-metric.component.d.ts +1 -1
  234. package/libs/ui/search/src/lib/record-metric/record-metric.component.d.ts.map +1 -1
  235. package/libs/ui/search/src/lib/record-preview/record-preview.component.d.ts +1 -1
  236. package/libs/ui/search/src/lib/record-preview/record-preview.component.d.ts.map +1 -1
  237. package/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.d.ts +1 -1
  238. package/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.d.ts.map +1 -1
  239. package/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.d.ts +1 -1
  240. package/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.d.ts.map +1 -1
  241. package/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.d.ts +1 -1
  242. package/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.d.ts.map +1 -1
  243. package/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.d.ts +1 -1
  244. package/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.d.ts.map +1 -1
  245. package/libs/ui/search/src/lib/record-preview-text/record-preview-text.component.d.ts +1 -1
  246. package/libs/ui/search/src/lib/record-preview-text/record-preview-text.component.d.ts.map +1 -1
  247. package/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.d.ts +1 -1
  248. package/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.d.ts.map +1 -1
  249. package/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.d.ts +1 -1
  250. package/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.d.ts.map +1 -1
  251. package/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.d.ts +1 -1
  252. package/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.d.ts.map +1 -1
  253. package/libs/ui/search/src/lib/results-list/results-layout.config.d.ts +1 -1
  254. package/libs/ui/search/src/lib/results-list/results-layout.config.d.ts.map +1 -1
  255. package/libs/ui/search/src/lib/results-list/results-list.component.d.ts +1 -1
  256. package/libs/ui/search/src/lib/results-list/results-list.component.d.ts.map +1 -1
  257. package/libs/ui/search/src/lib/results-list-item/results-list-item.component.d.ts +1 -1
  258. package/libs/ui/search/src/lib/results-list-item/results-list-item.component.d.ts.map +1 -1
  259. package/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.d.ts.map +1 -1
  260. package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
  261. package/libs/util/app-config/src/lib/model.d.ts +1 -0
  262. package/libs/util/app-config/src/lib/model.d.ts.map +1 -1
  263. package/libs/util/app-config/src/lib/parse-utils.d.ts.map +1 -1
  264. package/libs/util/i18n/src/lib/language-codes.d.ts +91 -31
  265. package/libs/util/i18n/src/lib/language-codes.d.ts.map +1 -1
  266. package/libs/util/shared/src/lib/links/link-utils.d.ts +26 -7
  267. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  268. package/libs/util/shared/src/lib/record/quality-score.util.d.ts.map +1 -1
  269. package/libs/util/shared/src/lib/utils/geojson.d.ts +7 -2
  270. package/libs/util/shared/src/lib/utils/geojson.d.ts.map +1 -1
  271. package/libs/util/shared/src/lib/utils/index.d.ts +1 -0
  272. package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
  273. package/libs/util/shared/src/lib/utils/scroll.d.ts +12 -0
  274. package/libs/util/shared/src/lib/utils/scroll.d.ts.map +1 -0
  275. package/package.json +11 -10
  276. package/src/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.ts +3 -6
  277. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +47 -22
  278. package/src/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.ts +2 -2
  279. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +2 -2
  280. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +2 -2
  281. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +3 -3
  282. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +6 -6
  283. package/src/libs/api/repository/src/index.ts +1 -1
  284. package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +4 -4
  285. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +65 -14
  286. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +2 -2
  287. package/src/libs/api/repository/src/lib/gn4/gn4.provider.ts +38 -2
  288. package/src/libs/api/repository/src/lib/gn4/organizations/index.ts +2 -11
  289. package/src/libs/api/repository/src/lib/gn4/organizations/organization-strategy.token.ts +10 -0
  290. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +2 -2
  291. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +2 -2
  292. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-service.factory.ts +33 -0
  293. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +45 -45
  294. package/src/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.ts +8 -0
  295. package/src/libs/api/repository/src/lib/metadata-language.token.ts +8 -0
  296. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +17 -1
  297. package/src/libs/common/domain/src/lib/platform.service.interface.ts +2 -0
  298. package/src/libs/feature/catalog/src/index.ts +0 -1
  299. package/src/libs/feature/catalog/src/lib/organization-url.token.ts +5 -0
  300. package/src/libs/feature/catalog/src/lib/site-title/site-title.component.ts +4 -0
  301. package/src/libs/feature/catalog/src/lib/source-label/source-label.component.ts +3 -0
  302. package/src/libs/feature/catalog/src/lib/sources/sources.service.ts +2 -5
  303. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +4 -4
  304. package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +3 -3
  305. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.ts +8 -1
  306. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-topics/form-field-topics.component.css +0 -0
  307. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-topics/form-field-topics.component.html +22 -0
  308. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-topics/form-field-topics.component.ts +57 -0
  309. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +6 -0
  310. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +5 -0
  311. package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -0
  312. package/src/libs/feature/editor/src/lib/feature-editor.module.ts +2 -18
  313. package/src/libs/feature/editor/src/lib/fields.config.ts +91 -1
  314. package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.ts +8 -1
  315. package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +8 -8
  316. package/src/libs/feature/notifications/src/index.ts +0 -1
  317. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +3 -1
  318. package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.ts +7 -2
  319. package/src/libs/feature/record/src/lib/feature-record.module.ts +1 -21
  320. package/src/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.ts +5 -2
  321. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +12 -3
  322. package/src/libs/feature/record/src/lib/record-meta/record-meta.component.ts +2 -0
  323. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +4 -2
  324. package/src/libs/feature/router/src/lib/default/container/search-router.container.directive.ts +1 -0
  325. package/src/libs/feature/router/src/lib/default/router.module.ts +0 -3
  326. package/src/libs/feature/router/src/lib/default/state/query-params.utils.ts +5 -2
  327. package/src/libs/feature/router/src/lib/default/state/router.facade.ts +2 -1
  328. package/src/libs/feature/search/src/index.ts +0 -1
  329. package/src/libs/feature/search/src/lib/facets/facets-container/facets-container.component.ts +14 -1
  330. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +23 -16
  331. package/src/libs/feature/search/src/lib/feature-search.module.ts +0 -61
  332. package/src/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.ts +12 -1
  333. package/src/libs/feature/search/src/lib/records-metrics/records-metrics.component.ts +5 -0
  334. package/src/libs/feature/search/src/lib/results-hits/results-hits.container.component.ts +11 -0
  335. package/src/libs/feature/search/src/lib/results-layout/results-layout.component.ts +5 -0
  336. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +21 -1
  337. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +1 -1
  338. package/src/libs/feature/search/src/lib/sort-by/sort-by.component.ts +5 -0
  339. package/src/libs/feature/search/src/lib/state/container/search-state.container.directive.ts +1 -0
  340. package/src/libs/feature/search/src/lib/state/reducer.ts +4 -1
  341. package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.ts +4 -1
  342. package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +4 -1
  343. package/src/libs/ui/elements/src/lib/api-card/api-card.component.ts +4 -1
  344. package/src/libs/ui/elements/src/lib/download-item/download-item.component.ts +4 -1
  345. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.ts +4 -1
  346. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.ts +7 -2
  347. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.ts +8 -1
  348. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +5 -1
  349. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +0 -4
  350. package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.ts +6 -6
  351. package/src/libs/ui/elements/src/lib/notification/notification.component.ts +8 -1
  352. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts +0 -6
  353. package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.html +4 -3
  354. package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.ts +9 -4
  355. package/src/libs/ui/search/src/index.ts +0 -2
  356. package/src/libs/ui/search/src/lib/facets/facet-block/facet-block.component.ts +12 -11
  357. package/src/libs/ui/search/src/lib/facets/facet-item/facet-item.component.ts +5 -11
  358. package/src/libs/ui/search/src/lib/facets/facet-list/facet-list.component.ts +6 -0
  359. package/src/libs/ui/search/src/lib/record-metric/record-metric.component.ts +4 -0
  360. package/src/libs/ui/search/src/lib/record-preview/record-preview.component.ts +3 -0
  361. package/src/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.ts +4 -0
  362. package/src/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.ts +33 -1
  363. package/src/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.ts +10 -0
  364. package/src/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.ts +4 -0
  365. package/src/libs/ui/search/src/lib/record-preview-text/record-preview-text.component.ts +4 -0
  366. package/src/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.ts +4 -0
  367. package/src/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.ts +4 -0
  368. package/src/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.html +1 -4
  369. package/src/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.ts +16 -2
  370. package/src/libs/ui/search/src/lib/results-list/results-layout.config.ts +5 -3
  371. package/src/libs/ui/search/src/lib/results-list/results-list.component.ts +4 -0
  372. package/src/libs/ui/search/src/lib/results-list-item/results-list-item.component.ts +3 -0
  373. package/src/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.ts +6 -1
  374. package/src/libs/util/app-config/src/lib/app-config.ts +2 -0
  375. package/src/libs/util/app-config/src/lib/fixtures.ts +1 -1
  376. package/src/libs/util/app-config/src/lib/model.ts +1 -0
  377. package/src/libs/util/app-config/src/lib/parse-utils.ts +4 -7
  378. package/src/libs/util/i18n/src/lib/language-codes.ts +62 -11
  379. package/src/libs/util/shared/src/lib/links/link-utils.ts +32 -7
  380. package/src/libs/util/shared/src/lib/record/quality-score.util.ts +13 -10
  381. package/src/libs/util/shared/src/lib/utils/geojson.ts +72 -2
  382. package/src/libs/util/shared/src/lib/utils/index.ts +1 -0
  383. package/src/libs/util/shared/src/lib/utils/scroll.ts +48 -0
  384. package/translations/de.json +55 -21
  385. package/translations/en.json +57 -22
  386. package/translations/es.json +42 -8
  387. package/translations/fr.json +61 -27
  388. package/translations/it.json +55 -21
  389. package/translations/nl.json +42 -8
  390. package/translations/pt.json +42 -8
  391. package/translations/sk.json +46 -12
  392. package/esm2022/libs/api/repository/src/lib/metadata-language.mjs +0 -3
  393. package/esm2022/libs/feature/auth/src/index.mjs +0 -2
  394. package/esm2022/libs/feature/auth/src/lib/feature-auth.module.mjs +0 -17
  395. package/esm2022/libs/feature/catalog/src/lib/feature-catalog.module.mjs +0 -57
  396. package/esm2022/libs/feature/notifications/src/lib/feature-notifications.module.mjs +0 -18
  397. package/esm2022/libs/feature/search/src/lib/facets/facets.module.mjs +0 -21
  398. package/esm2022/libs/ui/search/src/lib/facets/facets.module.mjs +0 -23
  399. package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +0 -168
  400. package/esm2022/libs/util/app-config/src/lib/constants.mjs +0 -439
  401. package/libs/api/repository/src/lib/metadata-language.d.ts +0 -3
  402. package/libs/api/repository/src/lib/metadata-language.d.ts.map +0 -1
  403. package/libs/feature/auth/src/index.d.ts +0 -2
  404. package/libs/feature/auth/src/index.d.ts.map +0 -1
  405. package/libs/feature/auth/src/lib/feature-auth.module.d.ts +0 -8
  406. package/libs/feature/auth/src/lib/feature-auth.module.d.ts.map +0 -1
  407. package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts +0 -14
  408. package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts.map +0 -1
  409. package/libs/feature/notifications/src/lib/feature-notifications.module.d.ts +0 -7
  410. package/libs/feature/notifications/src/lib/feature-notifications.module.d.ts.map +0 -1
  411. package/libs/feature/search/src/lib/facets/facets.module.d.ts +0 -11
  412. package/libs/feature/search/src/lib/facets/facets.module.d.ts.map +0 -1
  413. package/libs/ui/search/src/lib/facets/facets.module.d.ts +0 -13
  414. package/libs/ui/search/src/lib/facets/facets.module.d.ts.map +0 -1
  415. package/libs/ui/search/src/lib/ui-search.module.d.ts +0 -36
  416. package/libs/ui/search/src/lib/ui-search.module.d.ts.map +0 -1
  417. package/libs/util/app-config/src/lib/constants.d.ts +0 -2
  418. package/libs/util/app-config/src/lib/constants.d.ts.map +0 -1
  419. package/src/libs/api/repository/src/lib/metadata-language.ts +0 -3
  420. package/src/libs/feature/auth/src/index.ts +0 -1
  421. package/src/libs/feature/auth/src/lib/feature-auth.module.ts +0 -12
  422. package/src/libs/feature/catalog/src/lib/feature-catalog.module.ts +0 -71
  423. package/src/libs/feature/notifications/src/lib/feature-notifications.module.ts +0 -10
  424. package/src/libs/feature/search/src/lib/facets/facets.module.ts +0 -12
  425. package/src/libs/ui/search/src/lib/facets/facets.module.ts +0 -14
  426. package/src/libs/ui/search/src/lib/ui-search.module.ts +0 -108
@@ -63,10 +63,17 @@ export const FORMATS = {
63
63
  mimeTypes: ['application/geopackage+sqlite3'],
64
64
  },
65
65
  zip: {
66
- extensions: ['zip', 'tar.gz'],
66
+ extensions: ['zip', 'tar.gz', 'gz', '7z', '7zip'],
67
67
  priority: 8,
68
68
  color: '#B0CB52',
69
- mimeTypes: ['application/zip', 'application/x-zip'],
69
+ mimeTypes: [
70
+ 'application/zip',
71
+ 'application/x-zip',
72
+ 'application/x-compressed',
73
+ 'application/x-7z-compressed',
74
+ 'application/gzip',
75
+ 'application/x-gzip',
76
+ ],
70
77
  },
71
78
  pdf: {
72
79
  extensions: ['pdf'],
@@ -80,39 +87,57 @@ export const FORMATS = {
80
87
  color: '#C4A98F',
81
88
  mimeTypes: ['image/jpg'],
82
89
  },
90
+ png: {
91
+ extensions: ['png'],
92
+ priority: 10,
93
+ color: '#8B5A3C',
94
+ mimeTypes: ['image/png'],
95
+ },
96
+ tiff: {
97
+ extensions: ['tiff', 'tif', 'geotiff', 'geotif'],
98
+ priority: 11,
99
+ color: '#6B4423',
100
+ mimeTypes: ['image/tiff'],
101
+ },
83
102
  svg: {
84
103
  extensions: ['svg'],
85
- priority: 10,
104
+ priority: 12,
86
105
  color: '#EB6D82',
87
106
  mimeTypes: ['image/svg+xml'],
88
107
  },
89
108
  dxf: {
90
109
  extensions: ['dxf'],
91
- priority: 11,
110
+ priority: 13,
92
111
  color: '#DCCD00',
93
112
  mimeTypes: ['application/x-dxf', 'image/x-dxf'],
94
113
  },
95
114
  html: {
96
115
  extensions: ['html', 'htm'],
97
- priority: 12,
116
+ priority: 14,
98
117
  color: '#C0C9B6',
99
118
  mimeTypes: ['text/html'],
100
119
  },
101
120
  fgb: {
102
121
  extensions: ['fgb', 'flatgeobuf'],
103
- priority: 13,
122
+ priority: 15,
104
123
  color: '#A8111C',
105
124
  mimeTypes: ['application/flatgeobuf'],
106
125
  },
107
126
  jsonfg: {
108
127
  extensions: ['jsonfg', 'jsonfgc'],
109
- priority: 14,
128
+ priority: 16,
110
129
  color: '#009EE0',
111
130
  mimeTypes: [
112
131
  'application/vnd.ogc.fg+json',
113
132
  'application/vnd.ogc.fg+json;compatibility=geojson',
114
133
  ],
115
134
  },
135
+ webp: {
136
+ extensions: ['webp'],
137
+ priority: 17,
138
+ color: '#5A9E6F',
139
+ mimeTypes: ['image/webp'],
140
+ },
116
141
  };
117
142
  export function getFormatPriority(linkFormat) {
118
143
  for (const format in FORMATS) {
@@ -278,4 +303,4 @@ export function wmsLayerFlatten(layerFull) {
278
303
  export function getMimeTypeForFormat(format) {
279
304
  return format in FORMATS ? FORMATS[format.toLowerCase()].mimeTypes[0] : null;
280
305
  }
281
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjL2xpYi9saW5rcy9saW5rLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQU1oRSxPQUFPLEVBQ0wsY0FBYyxFQUNkLFdBQVcsRUFDWCxXQUFXLEVBQ1gsWUFBWSxHQUNiLE1BQU0sd0JBQXdCLENBQUE7QUFFL0IsTUFBTSxDQUFDLHFDQUFxQyxDQUFDLENBQUE7QUFFN0MsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ3JCLEdBQUcsRUFBRTtRQUNILFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUNuQixRQUFRLEVBQUUsQ0FBQztRQUNYLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFNBQVMsRUFBRSxDQUFDLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQztLQUMzQztJQUNELEtBQUssRUFBRTtRQUNMLFVBQVUsRUFBRTtZQUNWLE9BQU87WUFDUCxNQUFNO1lBQ04sS0FBSztZQUNMLFVBQVU7WUFDViwrQkFBK0I7U0FDaEM7UUFDRCxRQUFRLEVBQUUsQ0FBQztRQUNYLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFNBQVMsRUFBRTtZQUNULDBCQUEwQjtZQUMxQixtRUFBbUU7U0FDcEU7S0FDRjtJQUNELE9BQU8sRUFBRTtRQUNQLFVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQztRQUN2QixRQUFRLEVBQUUsQ0FBQztRQUNYLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFNBQVMsRUFBRSxDQUFDLHNCQUFzQixFQUFFLDBCQUEwQixDQUFDO0tBQ2hFO0lBQ0QsSUFBSSxFQUFFO1FBQ0osVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ3BCLFFBQVEsRUFBRSxDQUFDO1FBQ1gsS0FBSyxFQUFFLFNBQVM7UUFDaEIsU0FBUyxFQUFFLENBQUMsa0JB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LE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtBQUM5RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHtcbiAgRGF0YXNldE9ubGluZVJlc291cmNlLFxuICBTZXJ2aWNlT25saW5lUmVzb3VyY2UsXG4gIFNlcnZpY2VQcm90b2NvbCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHtcbiAgT2djQXBpRW5kcG9pbnQsXG4gIFdmc0VuZHBvaW50LFxuICBXbXNFbmRwb2ludCxcbiAgV210c0VuZHBvaW50LFxufSBmcm9tICdAY2FtcHRvY2FtcC9vZ2MtY2xpZW50J1xuXG5tYXJrZXIoJ2Rvd25sb2Fkcy53ZnMuZmVhdHVyZXR5cGUubm90LmZvdW5kJylcblxuZXhwb3J0IGNvbnN0IEZPUk1BVFMgPSB7XG4gIGNzdjoge1xuICAgIGV4dGVuc2lvbnM6IFsnY3N2J10sXG4gICAgcHJpb3JpdHk6IDEsXG4gICAgY29sb3I6ICcjRjZBOTI0JyxcbiAgICBtaW1lVHlwZXM6IFsndGV4dC9jc3YnLCAnYXBwbGljYXRpb24vY3N2J10sXG4gIH0sXG4gIGV4Y2VsOiB7XG4gICAgZXh0ZW5zaW9uczogW1xuICAgICAgJ2V4Y2VsJyxcbiAgICAgICd4bHN4JyxcbiAgICAgICd4bHMnLFxuICAgICAgJ21zLWV4Y2VsJyxcbiAgICAgICdvcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudCcsXG4gICAgXSxcbiAgICBwcmlvcml0eTogMixcbiAgICBjb2xvcjogJyNGRkRFMTAnLFxuICAgIG1pbWVUeXBlczogW1xuICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCcsXG4gICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnLFxuICAgIF0sXG4gIH0sXG4gIGdlb2pzb246IHtcbiAgICBleHRlbnNpb25zOiBbJ2dlb2pzb24nXSxcbiAgICBwcmlvcml0eTogMyxcbiAgICBjb2xvcjogJyMyOTNDNkYnLFxuICAgIG1pbWVUeXBlczogWydhcHBsaWNhdGlvbi9nZW8ranNvbicsICdhcHBsaWNhdGlvbi92bmQuZ2VvK2pzb24nXSxcbiAgfSxcbiAganNvbjoge1xuICAgIGV4dGVuc2lvbnM6IFsnanNvbiddLFxuICAgIHByaW9yaXR5OiAzLFxuICAgIGNvbG9yOiAnIzg0RDBGMCcsXG4gICAgbWltZVR5cGVzOiBbJ2FwcGxpY2F0aW9uL2pzb24nXSxcbiAgfSxcbiAgc2hwOiB7XG4gICAgZXh0ZW5zaW9uczogWydzaHAnLCAnc2hhcGUnLCAnemlwcGVkLXNoYXBlZmlsZSddLFxuICAgIHByaW9yaXR5OiA0LFxuICAgIGNvbG9yOiAnIzAwOTAzNicsXG4gICAgbWltZVR5cGVzOiBbJ3gtZ2lzL3gtc2hhcGVmaWxlJ10sXG4gIH0sXG4gIGdtbDoge1xuICAgIGV4dGVuc2lvbnM6IFsnZ21sJ10sXG4gICAgcHJpb3JpdHk6IDUsXG4gICAgY29sb3I6ICcjRTc1MTEzJyxcbiAgICBtaW1lVHlwZXM6IFsnYXBwbGljYXRpb24vZ21sK3htbCcsICd0ZXh0L3htbDsgc3VidHlwZT1nbWwnXSxcbiAgfSxcbiAga21sOiB7XG4gICAgZXh0ZW5zaW9uczogWydrbWwnLCAna216J10sXG4gICAgcHJpb3JpdHk6IDYsXG4gICAgY29sb3I6ICcjRjRCNUQwJyxcbiAgICBtaW1lVHlwZXM6IFtcbiAgICAgICdhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWVhcnRoLmttbCt4bWwnLFxuICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5nb29nbGUtZWFydGgua216JyxcbiAgICBdLFxuICB9LFxuICBncGtnOiB7XG4gICAgZXh0ZW5zaW9uczogWydncGtnJywgJ2dlb3BhY2thZ2UnXSxcbiAgICBwcmlvcml0eTogNyxcbiAgICBjb2xvcjogJyM3RDVEOUYnLFxuICAgIG1pbWVUeXBlczogWydhcHBsaWNhdGlvbi9nZW9wYWNrYWdlK3NxbGl0ZTMnXSxcbiAgfSxcbiAgemlwOiB7XG4gICAgZXh0ZW5zaW9uczogWyd6aXAnLCAndGFyLmd6J10sXG4gICAgcHJpb3JpdHk6IDgsXG4gICAgY29sb3I6ICcjQjBDQjUyJyxcbiAgICBtaW1lVHlwZXM6IFsnYXBwbGljYXRpb24vemlwJywgJ2FwcGxpY2F0aW9uL3gtemlwJ10sXG4gIH0sXG4gIHBkZjoge1xuICAgIGV4dGVuc2lvbnM6IFsncGRmJ10sXG4gICAgcHJpb3JpdHk6IDksXG4gICAgY29sb3I6ICcjNDk1NzlFJyxcbiAgICBtaW1lVHlwZXM6IFsnYXBwbGljYXRpb24vcGRmJ10sXG4gIH0sXG4gIGpwZzoge1xuICAgIGV4dGVuc2lvbnM6IFsnanBnJywgJ2pwZWcnLCAnamZpZicsICdwanBlZycsICdwanAnXSxcbiAgICBwcmlvcml0eTogOSxcbiAgICBjb2xvcjogJyNDNEE5OEYnLFxuICAgIG1pbWVUeXBlczogWydpbWFnZS9qcGcnXSxcbiAgfSxcbiAgc3ZnOiB7XG4gICAgZXh0ZW5zaW9uczogWydzdmcnXSxcbiAgICBwcmlvcml0eTogMTAsXG4gICAgY29sb3I6ICcjRUI2RDgyJyxcbiAgICBtaW1lVHlwZXM6IFsnaW1hZ2Uvc3ZnK3htbCddLFxuICB9LFxuICBkeGY6IHtcbiAgICBleHRlbnNpb25zOiBbJ2R4ZiddLFxuICAgIHByaW9yaXR5OiAxMSxcbiAgICBjb2xvcjogJyNEQ0NEMDAnLFxuICAgIG1pbWVUeXBlczogWydhcHBsaWNhdGlvbi94LWR4ZicsICdpbWFnZS94LWR4ZiddLFxuICB9LFxuICBodG1sOiB7XG4gICAgZXh0ZW5zaW9uczogWydodG1sJywgJ2h0bSddLFxuICAgIHByaW9yaXR5OiAxMixcbiAgICBjb2xvcjogJyNDMEM5QjYnLFxuICAgIG1pbWVUeXBlczogWyd0ZXh0L2h0bWwnXSxcbiAgfSxcbiAgZmdiOiB7XG4gICAgZXh0ZW5zaW9uczogWydmZ2InLCAnZmxhdGdlb2J1ZiddLFxuICAgIHByaW9yaXR5OiAxMyxcbiAgICBjb2xvcjogJyNBODExMUMnLFxuICAgIG1pbWVUeXBlczogWydhcHBsaWNhdGlvbi9mbGF0Z2VvYnVmJ10sXG4gIH0sXG4gIGpzb25mZzoge1xuICAgIGV4dGVuc2lvbnM6IFsnanNvbmZnJywgJ2pzb25mZ2MnXSxcbiAgICBwcmlvcml0eTogMTQsXG4gICAgY29sb3I6ICcjMDA5RUUwJyxcbiAgICBtaW1lVHlwZXM6IFtcbiAgICAgICdhcHBsaWNhdGlvbi92bmQub2djLmZnK2pzb24nLFxuICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vZ2MuZmcranNvbjtjb21wYXRpYmlsaXR5PWdlb2pzb24nLFxuICAgIF0sXG4gIH0sXG59IGFzIGNvbnN0XG5cbmV4cG9ydCB0eXBlIEZpbGVGb3JtYXQgPSBrZXlvZiB0eXBlb2YgRk9STUFUU1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybWF0UHJpb3JpdHkobGlua0Zvcm1hdDogRmlsZUZvcm1hdCk6IG51bWJlciB7XG4gIGZvciAoY29uc3QgZm9ybWF0IGluIEZPUk1BVFMpIHtcbiAgICBmb3IgKGNvbnN0IGV4dCBvZiBGT1JNQVRTW2Zvcm1hdF0uZXh0ZW5zaW9ucykge1xuICAgICAgaWYgKG5ldyBSZWdFeHAoYCR7ZXh0fWAsICdpJykudGVzdChsaW5rRm9ybWF0KSkge1xuICAgICAgICBpZiAoRk9STUFUU1tmb3JtYXRdLnByaW9yaXR5ID09PSAwKSByZXR1cm4gMFxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoRk9STUFUUykubGVuZ3RoIC0gRk9STUFUU1tmb3JtYXRdLnByaW9yaXR5XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiAwXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaW5rUHJpb3JpdHkoXG4gIGxpbms6IERhdGFzZXRPbmxpbmVSZXNvdXJjZSB8IFNlcnZpY2VPbmxpbmVSZXNvdXJjZVxuKTogbnVtYmVyIHtcbiAgcmV0dXJuIGdldEZvcm1hdFByaW9yaXR5KGdldEZpbGVGb3JtYXQobGluaykpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlRm9ybWF0RnJvbVNlcnZpY2VPdXRwdXQoXG4gIHNlcnZpY2VPdXRwdXQ6IHN0cmluZ1xuKTogRmlsZUZvcm1hdCB8IG51bGwge1xuICBmdW5jdGlvbiBmb3JtYXRNYXRjaGVyKGZvcm1hdDogKHR5cGVvZiBGT1JNQVRTKVtGaWxlRm9ybWF0XSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG91dHB1dCA9IHNlcnZpY2VPdXRwdXQudG9Mb3dlckNhc2UoKVxuICAgIHJldHVybiAoXG4gICAgICBmb3JtYXQuZXh0ZW5zaW9ucy5zb21lKChleHRlbnNpb246IHN0cmluZykgPT5cbiAgICAgICAgb3V0cHV0LmluY2x1ZGVzKGV4dGVuc2lvbilcbiAgICAgICkgfHxcbiAgICAgIGZvcm1hdC5taW1lVHlwZXMuc29tZSgobWltZVR5cGU6IHN0cmluZykgPT4gb3V0cHV0LmluY2x1ZGVzKG1pbWVUeXBlKSlcbiAgICApXG4gIH1cbiAgZm9yIChjb25zdCBmb3JtYXROYW1lIGluIEZPUk1BVFMpIHtcbiAgICBpZiAoZm9ybWF0TWF0Y2hlcihGT1JNQVRTW2Zvcm1hdE5hbWVdKSkge1xuICAgICAgcmV0dXJuIGZvcm1hdE5hbWUgYXMgRmlsZUZvcm1hdFxuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmlsZUZvcm1hdChcbiAgbGluazogRGF0YXNldE9ubGluZVJlc291cmNlIHwgU2VydmljZU9ubGluZVJlc291cmNlXG4pOiBGaWxlRm9ybWF0IHtcbiAgaWYgKCdtaW1lVHlwZScgaW4gbGluaykge1xuICAgIGNvbnN0IG1pbWVUeXBlRm9ybWF0ID0gbWltZVR5cGVUb0Zvcm1hdChsaW5rLm1pbWVUeXBlKVxuICAgIGlmIChtaW1lVHlwZUZvcm1hdCAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG1pbWVUeXBlRm9ybWF0XG4gICAgfVxuICB9XG4gIGZvciAoY29uc3QgZm9ybWF0IGluIEZPUk1BVFMpIHtcbiAgICBmb3IgKGNvbnN0IGFsaWFzIG9mIEZPUk1BVFNbZm9ybWF0XS5leHRlbnNpb25zKSB7XG4gICAgICBpZiAoY2hlY2tGaWxlRm9ybWF0KGxpbmssIGFsaWFzKSkgcmV0dXJuIGZvcm1hdCBhcyBGaWxlRm9ybWF0XG4gICAgICBpZiAoaXNGb3JtYXRJblF1ZXJ5UGFyYW0obGluaywgYWxpYXMpKSByZXR1cm4gZm9ybWF0IGFzIEZpbGVGb3JtYXRcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRm9ybWF0SW5RdWVyeVBhcmFtKFxuICBsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2UgfCBTZXJ2aWNlT25saW5lUmVzb3VyY2UsXG4gIGFsaWFzOiBzdHJpbmdcbik6IGJvb2xlYW4ge1xuICBjb25zdCBxdWVyeVBhcmFtcyA9IGxpbmsudXJsLnNlYXJjaFBhcmFtc1xuICBpZiAoIXF1ZXJ5UGFyYW1zKSByZXR1cm4gZmFsc2VcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgcXVlcnlQYXJhbXMuZW50cmllcygpKSB7XG4gICAgaWYgKGtleSA9PT0gJ2Zvcm1hdCcgfHwga2V5ID09PSAnZicpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gYWxpYXNcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtaW1lVHlwZVRvRm9ybWF0KG1pbWVUeXBlOiBzdHJpbmcpOiBGaWxlRm9ybWF0IHtcbiAgZm9yIChjb25zdCBmb3JtYXQgaW4gRk9STUFUUykge1xuICAgIGZvciAoY29uc3QgbXQgb2YgRk9STUFUU1tmb3JtYXRdLm1pbWVUeXBlcykge1xuICAgICAgaWYgKG1pbWVUeXBlID09PSBtdCkgcmV0dXJuIGZvcm1hdCBhcyBGaWxlRm9ybWF0XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0ZpbGVGb3JtYXQoXG4gIGxpbms6IERhdGFzZXRPbmxpbmVSZXNvdXJjZSB8IFNlcnZpY2VPbmxpbmVSZXNvdXJjZSxcbiAgZm9ybWF0OiBGaWxlRm9ybWF0XG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICAoJ25hbWUnIGluIGxpbmsgJiZcbiAgICAgIG5ldyBSZWdFeHAoYFsuL10ke2Zvcm1hdH1gLCAnaScpLnRlc3QobGluay5uYW1lLnRvTG93ZXJDYXNlKCkpKSB8fFxuICAgICgndXJsJyBpbiBsaW5rICYmXG4gICAgICBuZXcgUmVnRXhwKGBbLi9dJHtmb3JtYXR9YCwgJ2knKS50ZXN0KGxpbmsudXJsLnRvU3RyaW5nKCkpKSB8fFxuICAgICgnbmFtZScgaW4gbGluayAmJiBsaW5rLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmb3JtYXQpKVxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRCYWRnZUNvbG9yKGxpbmtGb3JtYXQ6IEZpbGVGb3JtYXQpOiBzdHJpbmcge1xuICBmb3IgKGNvbnN0IGZvcm1hdCBpbiBGT1JNQVRTKSB7XG4gICAgZm9yIChjb25zdCBhbGlhcyBvZiBGT1JNQVRTW2Zvcm1hdF0uZXh0ZW5zaW9ucykge1xuICAgICAgaWYgKG5ldyBSZWdFeHAoYCR7YWxpYXN9YCwgJ2knKS50ZXN0KGxpbmtGb3JtYXQpKVxuICAgICAgICByZXR1cm4gRk9STUFUU1tmb3JtYXRdLmNvbG9yXG4gICAgfVxuICB9XG4gIHJldHVybiAndmFyKC0tY29sb3ItZ3JheS03MDApJyAvLyBEZWZhdWx0IGNvbG9yID9cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExpbmtJZChsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2UpOiBzdHJpbmcge1xuICBjb25zdCBocmVmID0gbGluay51cmwuaHJlZiA/PyBsaW5rLnVybFxuICByZXR1cm4gYCR7Z2V0TGlua0xhYmVsKGxpbmspXG4gICAgLnJlcGxhY2UoL8ODwqkvZywgJ2UnKVxuICAgIC5yZXBsYWNlKC/Dg8KoL2csICdlJylcbiAgICAubm9ybWFsaXplKCdORkQnKVxuICAgIC5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJyl9LSR7aHJlZn1gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaW5rTGFiZWwoXG4gIGxpbms6IERhdGFzZXRPbmxpbmVSZXNvdXJjZSB8IFNlcnZpY2VPbmxpbmVSZXNvdXJjZVxuKTogc3RyaW5nIHtcbiAgbGV0IGZvcm1hdCA9ICcnXG4gIHN3aXRjaCAobGluay50eXBlKSB7XG4gICAgY2FzZSAnc2VydmljZSc6XG4gICAgICB7XG4gICAgICAgIHN3aXRjaCAobGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wpIHtcbiAgICAgICAgICBjYXNlICd3ZnMnOlxuICAgICAgICAgICAgZm9ybWF0ID0gJ1dGUydcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgY2FzZSAnd21zJzpcbiAgICAgICAgICAgIGZvcm1hdCA9ICdXTVMnXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgJ3dtdHMnOlxuICAgICAgICAgICAgZm9ybWF0ID0gJ1dNVFMnXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgJ3Rtcyc6XG4gICAgICAgICAgICBmb3JtYXQgPSAnVE1TJ1xuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBjYXNlICdlc3JpUmVzdCc6XG4gICAgICAgICAgICBmb3JtYXQgPSAnUkVTVCdcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGJyZWFrXG4gICAgZGVmYXVsdDpcbiAgICAgIGZvcm1hdCA9IGdldEZpbGVGb3JtYXQobGluaylcbiAgfVxuICBjb25zdCBsYWJlbCA9IGxpbmsuZGVzY3JpcHRpb24gfHwgKCduYW1lJyBpbiBsaW5rID8gbGluay5uYW1lIDogJycpXG4gIHJldHVybiBmb3JtYXQgPyBgJHtsYWJlbH0gKCR7Zm9ybWF0fSlgIDogbGFiZWxcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldExheWVycyh1cmw6IHN0cmluZywgc2VydmljZVByb3RvY29sOiBTZXJ2aWNlUHJvdG9jb2wpIHtcbiAgc3dpdGNoIChzZXJ2aWNlUHJvdG9jb2wpIHtcbiAgICBjYXNlICdvZ2NGZWF0dXJlcyc6IHtcbiAgICAgIGNvbnN0IGxheWVycyA9IGF3YWl0IG5ldyBPZ2NBcGlFbmRwb2ludCh1cmwpLmFsbENvbGxlY3Rpb25zXG4gICAgICByZXR1cm4gbGF5ZXJzXG4gICAgfVxuICAgIGNhc2UgJ3dmcyc6IHtcbiAgICAgIGNvbnN0IGVuZHBvaW50V2ZzID0gYXdhaXQgbmV3IFdmc0VuZHBvaW50KHVybCkuaXNSZWFkeSgpXG4gICAgICBjb25zdCBmZWF0dXJlVHlwZXMgPSBhd2FpdCBlbmRwb2ludFdmcy5nZXRGZWF0dXJlVHlwZXMoKVxuICAgICAgY29uc3QgbGF5ZXJzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIGZlYXR1cmVUeXBlcy5tYXAoYXN5bmMgKGNvbGxlY3Rpb24pID0+IHtcbiAgICAgICAgICByZXR1cm4gYXdhaXQgZW5kcG9pbnRXZnMuZ2V0RmVhdHVyZVR5cGVGdWxsKGNvbGxlY3Rpb24ubmFtZSlcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIHJldHVybiBsYXllcnNcbiAgICB9XG4gICAgY2FzZSAnd21zJzoge1xuICAgICAgY29uc3QgZW5kcG9pbnRXbXMgPSBhd2FpdCBuZXcgV21zRW5kcG9pbnQodXJsKS5pc1JlYWR5KClcbiAgICAgIGNvbnN0IGxheWVycyA9IChcbiAgICAgICAgYXdhaXQgZW5kcG9pbnRXbXNcbiAgICAgICAgICAuZ2V0TGF5ZXJzKClcbiAgICAgICAgICAuZmxhdE1hcCh3bXNMYXllckZsYXR0ZW4pXG4gICAgICAgICAgLmZpbHRlcigobCkgPT4gbC5uYW1lKVxuICAgICAgKS5tYXAoKGNvbGxlY3Rpb24pID0+IHtcbiAgICAgICAgcmV0dXJuIGVuZHBvaW50V21zLmdldExheWVyQnlOYW1lKGNvbGxlY3Rpb24ubmFtZSlcbiAgICAgIH0pXG4gICAgICByZXR1cm4gbGF5ZXJzXG4gICAgfVxuICAgIGNhc2UgJ3dtdHMnOiB7XG4gICAgICBjb25zdCBlbmRwb2ludFdtdHMgPSBhd2FpdCBuZXcgV210c0VuZHBvaW50KHVybCkuaXNSZWFkeSgpXG4gICAgICByZXR1cm4gZW5kcG9pbnRXbXRzLmdldExheWVycygpXG4gICAgfVxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdtc0xheWVyRmxhdHRlbihsYXllckZ1bGwpIHtcbiAgY29uc3QgbGF5ZXIgPSB7XG4gICAgdGl0bGU6IGxheWVyRnVsbC50aXRsZSxcbiAgICBuYW1lOiBsYXllckZ1bGwubmFtZSxcbiAgICBhYnN0cmFjdDogbGF5ZXJGdWxsLmFic3RyYWN0LFxuICB9XG5cbiAgcmV0dXJuICdjaGlsZHJlbicgaW4gbGF5ZXJGdWxsICYmIEFycmF5LmlzQXJyYXkobGF5ZXJGdWxsLmNoaWxkcmVuKVxuICAgID8gW2xheWVyLCAuLi5sYXllckZ1bGwuY2hpbGRyZW4uZmxhdE1hcCh3bXNMYXllckZsYXR0ZW4pXVxuICAgIDogW2xheWVyXVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWltZVR5cGVGb3JGb3JtYXQoZm9ybWF0OiBGaWxlRm9ybWF0KTogc3RyaW5nIHwgbnVsbCB7XG4gIHJldHVybiBmb3JtYXQgaW4gRk9STUFUUyA/IEZPUk1BVFNbZm9ybWF0LnRvTG93ZXJDYXNlKCldLm1pbWVUeXBlc1swXSA6IG51bGxcbn1cbiJdfQ==
306
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjL2xpYi9saW5rcy9saW5rLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQU1oRSxPQUFPLEVBQ0wsY0FBYyxFQUNkLFdBQVcsRUFDWCxXQUFXLEVBQ1gsWUFBWSxHQUNiLE1BQU0sd0JBQXdCLENBQUE7QUFFL0IsTUFBTSxDQUFDLHFDQUFxQyxDQUFDLENBQUE7QUFFN0MsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ3JCLEdBQUcsRUFBRTtRQUNILFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUNuQixRQUFRLEVBQUUsQ0FBQztRQUNYLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFNBQVMsRUFBRSxDQUFDLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQztLQUMzQztJQUNELEtBQUssRUFBRTtRQUNMLFVBQVUsRUFBRTtZQUNWLE9BQU87WUFDUCxNQUFNO1lBQ04sS0FBSztZQUNMLFVBQVU7WUFDViwrQkFBK0I7U0FDaEM7UUFDRCxRQUFRLEVBQUUsQ0FBQztRQUNYLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFNBQVMsRUFBRTtZQUNULDBCQUEwQjtZQUMxQixtRUFBbUU7U0FDcEU7S0FDRjtJQUNELE9BQU8sRUFBRTtRQUNQLFVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQztRQUN2QixRQUFRLEVBQUUsQ0FBQztRQUNYLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFNBQVMsRUFBRSxDQUFDLHNCQUFzQixFQUFFLDBCQUEwQixDQUFDO0tBQ2hFO0lBQ0QsSUFBSSxFQUFFO1FBQ0osVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ3BCLFFBQVEsRUFBRSxDQUFDO1FBQ1gsS0FBSyxFQUFFLFNBQVM7UUFDaEIsU0FBUyxFQUFFLENBQUMsa0JB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O1FBQ2pDLENBQUM7UUFDRDtZQUNFLE9BQU8sU0FBUyxDQUFBO0lBQ3BCLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxTQUFTO0lBQ3ZDLE1BQU0sS0FBSyxHQUFHO1FBQ1osS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLO1FBQ3RCLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtRQUNwQixRQUFRLEVBQUUsU0FBUyxDQUFDLFFBQVE7S0FDN0IsQ0FBQTtJQUVELE9BQU8sVUFBVSxJQUFJLFNBQVMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFDakUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDYixDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLE1BQWtCO0lBQ3JELE9BQU8sTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO0FBQzlFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5pbXBvcnQge1xuICBEYXRhc2V0T25saW5lUmVzb3VyY2UsXG4gIFNlcnZpY2VPbmxpbmVSZXNvdXJjZSxcbiAgU2VydmljZVByb3RvY29sLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQge1xuICBPZ2NBcGlFbmRwb2ludCxcbiAgV2ZzRW5kcG9pbnQsXG4gIFdtc0VuZHBvaW50LFxuICBXbXRzRW5kcG9pbnQsXG59IGZyb20gJ0BjYW1wdG9jYW1wL29nYy1jbGllbnQnXG5cbm1hcmtlcignZG93bmxvYWRzLndmcy5mZWF0dXJldHlwZS5ub3QuZm91bmQnKVxuXG5leHBvcnQgY29uc3QgRk9STUFUUyA9IHtcbiAgY3N2OiB7XG4gICAgZXh0ZW5zaW9uczogWydjc3YnXSxcbiAgICBwcmlvcml0eTogMSxcbiAgICBjb2xvcjogJyNGNkE5MjQnLFxuICAgIG1pbWVUeXBlczogWyd0ZXh0L2NzdicsICdhcHBsaWNhdGlvbi9jc3YnXSxcbiAgfSxcbiAgZXhjZWw6IHtcbiAgICBleHRlbnNpb25zOiBbXG4gICAgICAnZXhjZWwnLFxuICAgICAgJ3hsc3gnLFxuICAgICAgJ3hscycsXG4gICAgICAnbXMtZXhjZWwnLFxuICAgICAgJ29wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50JyxcbiAgICBdLFxuICAgIHByaW9yaXR5OiAyLFxuICAgIGNvbG9yOiAnI0ZGREUxMCcsXG4gICAgbWltZVR5cGVzOiBbXG4gICAgICAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJyxcbiAgICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCcsXG4gICAgXSxcbiAgfSxcbiAgZ2VvanNvbjoge1xuICAgIGV4dGVuc2lvbnM6IFsnZ2VvanNvbiddLFxuICAgIHByaW9yaXR5OiAzLFxuICAgIGNvbG9yOiAnIzI5M0M2RicsXG4gICAgbWltZVR5cGVzOiBbJ2FwcGxpY2F0aW9uL2dlbytqc29uJywgJ2FwcGxpY2F0aW9uL3ZuZC5nZW8ranNvbiddLFxuICB9LFxuICBqc29uOiB7XG4gICAgZXh0ZW5zaW9uczogWydqc29uJ10sXG4gICAgcHJpb3JpdHk6IDMsXG4gICAgY29sb3I6ICcjODREMEYwJyxcbiAgICBtaW1lVHlwZXM6IFsnYXBwbGljYXRpb24vanNvbiddLFxuICB9LFxuICBzaHA6IHtcbiAgICBleHRlbnNpb25zOiBbJ3NocCcsICdzaGFwZScsICd6aXBwZWQtc2hhcGVmaWxlJ10sXG4gICAgcHJpb3JpdHk6IDQsXG4gICAgY29sb3I6ICcjMDA5MDM2JyxcbiAgICBtaW1lVHlwZXM6IFsneC1naXMveC1zaGFwZWZpbGUnXSxcbiAgfSxcbiAgZ21sOiB7XG4gICAgZXh0ZW5zaW9uczogWydnbWwnXSxcbiAgICBwcmlvcml0eTogNSxcbiAgICBjb2xvcjogJyNFNzUxMTMnLFxuICAgIG1pbWVUeXBlczogWydhcHBsaWNhdGlvbi9nbWwreG1sJywgJ3RleHQveG1sOyBzdWJ0eXBlPWdtbCddLFxuICB9LFxuICBrbWw6IHtcbiAgICBleHRlbnNpb25zOiBbJ2ttbCcsICdrbXonXSxcbiAgICBwcmlvcml0eTogNixcbiAgICBjb2xvcjogJyNGNEI1RDAnLFxuICAgIG1pbWVUeXBlczogW1xuICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5nb29nbGUtZWFydGgua21sK3htbCcsXG4gICAgICAnYXBwbGljYXRpb24vdm5kLmdvb2dsZS1lYXJ0aC5rbXonLFxuICAgIF0sXG4gIH0sXG4gIGdwa2c6IHtcbiAgICBleHRlbnNpb25zOiBbJ2dwa2cnLCAnZ2VvcGFja2FnZSddLFxuICAgIHByaW9yaXR5OiA3LFxuICAgIGNvbG9yOiAnIzdENUQ5RicsXG4gICAgbWltZVR5cGVzOiBbJ2FwcGxpY2F0aW9uL2dlb3BhY2thZ2Urc3FsaXRlMyddLFxuICB9LFxuICB6aXA6IHtcbiAgICBleHRlbnNpb25zOiBbJ3ppcCcsICd0YXIuZ3onLCAnZ3onLCAnN3onLCAnN3ppcCddLFxuICAgIHByaW9yaXR5OiA4LFxuICAgIGNvbG9yOiAnI0IwQ0I1MicsXG4gICAgbWltZVR5cGVzOiBbXG4gICAgICAnYXBwbGljYXRpb24vemlwJyxcbiAgICAgICdhcHBsaWNhdGlvbi94LXppcCcsXG4gICAgICAnYXBwbGljYXRpb24veC1jb21wcmVzc2VkJyxcbiAgICAgICdhcHBsaWNhdGlvbi94LTd6LWNvbXByZXNzZWQnLFxuICAgICAgJ2FwcGxpY2F0aW9uL2d6aXAnLFxuICAgICAgJ2FwcGxpY2F0aW9uL3gtZ3ppcCcsXG4gICAgXSxcbiAgfSxcbiAgcGRmOiB7XG4gICAgZXh0ZW5zaW9uczogWydwZGYnXSxcbiAgICBwcmlvcml0eTogOSxcbiAgICBjb2xvcjogJyM0OTU3OUUnLFxuICAgIG1pbWVUeXBlczogWydhcHBsaWNhdGlvbi9wZGYnXSxcbiAgfSxcbiAganBnOiB7XG4gICAgZXh0ZW5zaW9uczogWydqcGcnLCAnanBlZycsICdqZmlmJywgJ3BqcGVnJywgJ3BqcCddLFxuICAgIHByaW9yaXR5OiA5LFxuICAgIGNvbG9yOiAnI0M0QTk4RicsXG4gICAgbWltZVR5cGVzOiBbJ2ltYWdlL2pwZyddLFxuICB9LFxuICBwbmc6IHtcbiAgICBleHRlbnNpb25zOiBbJ3BuZyddLFxuICAgIHByaW9yaXR5OiAxMCxcbiAgICBjb2xvcjogJyM4QjVBM0MnLFxuICAgIG1pbWVUeXBlczogWydpbWFnZS9wbmcnXSxcbiAgfSxcbiAgdGlmZjoge1xuICAgIGV4dGVuc2lvbnM6IFsndGlmZicsICd0aWYnLCAnZ2VvdGlmZicsICdnZW90aWYnXSxcbiAgICBwcmlvcml0eTogMTEsXG4gICAgY29sb3I6ICcjNkI0NDIzJyxcbiAgICBtaW1lVHlwZXM6IFsnaW1hZ2UvdGlmZiddLFxuICB9LFxuICBzdmc6IHtcbiAgICBleHRlbnNpb25zOiBbJ3N2ZyddLFxuICAgIHByaW9yaXR5OiAxMixcbiAgICBjb2xvcjogJyNFQjZEODInLFxuICAgIG1pbWVUeXBlczogWydpbWFnZS9zdmcreG1sJ10sXG4gIH0sXG4gIGR4Zjoge1xuICAgIGV4dGVuc2lvbnM6IFsnZHhmJ10sXG4gICAgcHJpb3JpdHk6IDEzLFxuICAgIGNvbG9yOiAnI0RDQ0QwMCcsXG4gICAgbWltZVR5cGVzOiBbJ2FwcGxpY2F0aW9uL3gtZHhmJywgJ2ltYWdlL3gtZHhmJ10sXG4gIH0sXG4gIGh0bWw6IHtcbiAgICBleHRlbnNpb25zOiBbJ2h0bWwnLCAnaHRtJ10sXG4gICAgcHJpb3JpdHk6IDE0LFxuICAgIGNvbG9yOiAnI0MwQzlCNicsXG4gICAgbWltZVR5cGVzOiBbJ3RleHQvaHRtbCddLFxuICB9LFxuICBmZ2I6IHtcbiAgICBleHRlbnNpb25zOiBbJ2ZnYicsICdmbGF0Z2VvYnVmJ10sXG4gICAgcHJpb3JpdHk6IDE1LFxuICAgIGNvbG9yOiAnI0E4MTExQycsXG4gICAgbWltZVR5cGVzOiBbJ2FwcGxpY2F0aW9uL2ZsYXRnZW9idWYnXSxcbiAgfSxcbiAganNvbmZnOiB7XG4gICAgZXh0ZW5zaW9uczogWydqc29uZmcnLCAnanNvbmZnYyddLFxuICAgIHByaW9yaXR5OiAxNixcbiAgICBjb2xvcjogJyMwMDlFRTAnLFxuICAgIG1pbWVUeXBlczogW1xuICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vZ2MuZmcranNvbicsXG4gICAgICAnYXBwbGljYXRpb24vdm5kLm9nYy5mZytqc29uO2NvbXBhdGliaWxpdHk9Z2VvanNvbicsXG4gICAgXSxcbiAgfSxcbiAgd2VicDoge1xuICAgIGV4dGVuc2lvbnM6IFsnd2VicCddLFxuICAgIHByaW9yaXR5OiAxNyxcbiAgICBjb2xvcjogJyM1QTlFNkYnLFxuICAgIG1pbWVUeXBlczogWydpbWFnZS93ZWJwJ10sXG4gIH0sXG59IGFzIGNvbnN0XG5cbmV4cG9ydCB0eXBlIEZpbGVGb3JtYXQgPSBrZXlvZiB0eXBlb2YgRk9STUFUU1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybWF0UHJpb3JpdHkobGlua0Zvcm1hdDogRmlsZUZvcm1hdCk6IG51bWJlciB7XG4gIGZvciAoY29uc3QgZm9ybWF0IGluIEZPUk1BVFMpIHtcbiAgICBmb3IgKGNvbnN0IGV4dCBvZiBGT1JNQVRTW2Zvcm1hdF0uZXh0ZW5zaW9ucykge1xuICAgICAgaWYgKG5ldyBSZWdFeHAoYCR7ZXh0fWAsICdpJykudGVzdChsaW5rRm9ybWF0KSkge1xuICAgICAgICBpZiAoRk9STUFUU1tmb3JtYXRdLnByaW9yaXR5ID09PSAwKSByZXR1cm4gMFxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoRk9STUFUUykubGVuZ3RoIC0gRk9STUFUU1tmb3JtYXRdLnByaW9yaXR5XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiAwXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaW5rUHJpb3JpdHkoXG4gIGxpbms6IERhdGFzZXRPbmxpbmVSZXNvdXJjZSB8IFNlcnZpY2VPbmxpbmVSZXNvdXJjZVxuKTogbnVtYmVyIHtcbiAgcmV0dXJuIGdldEZvcm1hdFByaW9yaXR5KGdldEZpbGVGb3JtYXQobGluaykpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlRm9ybWF0RnJvbVNlcnZpY2VPdXRwdXQoXG4gIHNlcnZpY2VPdXRwdXQ6IHN0cmluZ1xuKTogRmlsZUZvcm1hdCB8IG51bGwge1xuICBmdW5jdGlvbiBmb3JtYXRNYXRjaGVyKGZvcm1hdDogKHR5cGVvZiBGT1JNQVRTKVtGaWxlRm9ybWF0XSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG91dHB1dCA9IHNlcnZpY2VPdXRwdXQudG9Mb3dlckNhc2UoKVxuICAgIHJldHVybiAoXG4gICAgICBmb3JtYXQuZXh0ZW5zaW9ucy5zb21lKChleHRlbnNpb246IHN0cmluZykgPT5cbiAgICAgICAgb3V0cHV0LmluY2x1ZGVzKGV4dGVuc2lvbilcbiAgICAgICkgfHxcbiAgICAgIGZvcm1hdC5taW1lVHlwZXMuc29tZSgobWltZVR5cGU6IHN0cmluZykgPT4gb3V0cHV0LmluY2x1ZGVzKG1pbWVUeXBlKSlcbiAgICApXG4gIH1cbiAgZm9yIChjb25zdCBmb3JtYXROYW1lIGluIEZPUk1BVFMpIHtcbiAgICBpZiAoZm9ybWF0TWF0Y2hlcihGT1JNQVRTW2Zvcm1hdE5hbWVdKSkge1xuICAgICAgcmV0dXJuIGZvcm1hdE5hbWUgYXMgRmlsZUZvcm1hdFxuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmlsZUZvcm1hdChcbiAgbGluazogRGF0YXNldE9ubGluZVJlc291cmNlIHwgU2VydmljZU9ubGluZVJlc291cmNlXG4pOiBGaWxlRm9ybWF0IHtcbiAgaWYgKCdtaW1lVHlwZScgaW4gbGluaykge1xuICAgIGNvbnN0IG1pbWVUeXBlRm9ybWF0ID0gbWltZVR5cGVUb0Zvcm1hdChsaW5rLm1pbWVUeXBlKVxuICAgIGlmIChtaW1lVHlwZUZvcm1hdCAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG1pbWVUeXBlRm9ybWF0XG4gICAgfVxuICB9XG4gIGZvciAoY29uc3QgZm9ybWF0IGluIEZPUk1BVFMpIHtcbiAgICBmb3IgKGNvbnN0IGFsaWFzIG9mIEZPUk1BVFNbZm9ybWF0XS5leHRlbnNpb25zKSB7XG4gICAgICBpZiAoY2hlY2tGaWxlRm9ybWF0KGxpbmssIGFsaWFzKSkgcmV0dXJuIGZvcm1hdCBhcyBGaWxlRm9ybWF0XG4gICAgICBpZiAoaXNGb3JtYXRJblF1ZXJ5UGFyYW0obGluaywgYWxpYXMpKSByZXR1cm4gZm9ybWF0IGFzIEZpbGVGb3JtYXRcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRm9ybWF0SW5RdWVyeVBhcmFtKFxuICBsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2UgfCBTZXJ2aWNlT25saW5lUmVzb3VyY2UsXG4gIGFsaWFzOiBzdHJpbmdcbik6IGJvb2xlYW4ge1xuICBjb25zdCBxdWVyeVBhcmFtcyA9IGxpbmsudXJsLnNlYXJjaFBhcmFtc1xuICBpZiAoIXF1ZXJ5UGFyYW1zKSByZXR1cm4gZmFsc2VcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgcXVlcnlQYXJhbXMuZW50cmllcygpKSB7XG4gICAgaWYgKGtleSA9PT0gJ2Zvcm1hdCcgfHwga2V5ID09PSAnZicpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gYWxpYXNcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtaW1lVHlwZVRvRm9ybWF0KG1pbWVUeXBlOiBzdHJpbmcpOiBGaWxlRm9ybWF0IHtcbiAgZm9yIChjb25zdCBmb3JtYXQgaW4gRk9STUFUUykge1xuICAgIGZvciAoY29uc3QgbXQgb2YgRk9STUFUU1tmb3JtYXRdLm1pbWVUeXBlcykge1xuICAgICAgaWYgKG1pbWVUeXBlID09PSBtdCkgcmV0dXJuIGZvcm1hdCBhcyBGaWxlRm9ybWF0XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0ZpbGVGb3JtYXQoXG4gIGxpbms6IERhdGFzZXRPbmxpbmVSZXNvdXJjZSB8IFNlcnZpY2VPbmxpbmVSZXNvdXJjZSxcbiAgZm9ybWF0OiBGaWxlRm9ybWF0XG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICAoJ25hbWUnIGluIGxpbmsgJiZcbiAgICAgIG5ldyBSZWdFeHAoYFsuL10ke2Zvcm1hdH1gLCAnaScpLnRlc3QobGluay5uYW1lLnRvTG93ZXJDYXNlKCkpKSB8fFxuICAgICgndXJsJyBpbiBsaW5rICYmXG4gICAgICBuZXcgUmVnRXhwKGBbLi9dJHtmb3JtYXR9YCwgJ2knKS50ZXN0KGxpbmsudXJsLnRvU3RyaW5nKCkpKSB8fFxuICAgICgnbmFtZScgaW4gbGluayAmJiBsaW5rLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmb3JtYXQpKVxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRCYWRnZUNvbG9yKGxpbmtGb3JtYXQ6IEZpbGVGb3JtYXQpOiBzdHJpbmcge1xuICBmb3IgKGNvbnN0IGZvcm1hdCBpbiBGT1JNQVRTKSB7XG4gICAgZm9yIChjb25zdCBhbGlhcyBvZiBGT1JNQVRTW2Zvcm1hdF0uZXh0ZW5zaW9ucykge1xuICAgICAgaWYgKG5ldyBSZWdFeHAoYCR7YWxpYXN9YCwgJ2knKS50ZXN0KGxpbmtGb3JtYXQpKVxuICAgICAgICByZXR1cm4gRk9STUFUU1tmb3JtYXRdLmNvbG9yXG4gICAgfVxuICB9XG4gIHJldHVybiAndmFyKC0tY29sb3ItZ3JheS03MDApJyAvLyBEZWZhdWx0IGNvbG9yID9cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExpbmtJZChsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2UpOiBzdHJpbmcge1xuICBjb25zdCBocmVmID0gbGluay51cmwuaHJlZiA/PyBsaW5rLnVybFxuICByZXR1cm4gYCR7Z2V0TGlua0xhYmVsKGxpbmspXG4gICAgLnJlcGxhY2UoL8ODwqkvZywgJ2UnKVxuICAgIC5yZXBsYWNlKC/Dg8KoL2csICdlJylcbiAgICAubm9ybWFsaXplKCdORkQnKVxuICAgIC5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJyl9LSR7aHJlZn1gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaW5rTGFiZWwoXG4gIGxpbms6IERhdGFzZXRPbmxpbmVSZXNvdXJjZSB8IFNlcnZpY2VPbmxpbmVSZXNvdXJjZVxuKTogc3RyaW5nIHtcbiAgbGV0IGZvcm1hdCA9ICcnXG4gIHN3aXRjaCAobGluay50eXBlKSB7XG4gICAgY2FzZSAnc2VydmljZSc6XG4gICAgICB7XG4gICAgICAgIHN3aXRjaCAobGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wpIHtcbiAgICAgICAgICBjYXNlICd3ZnMnOlxuICAgICAgICAgICAgZm9ybWF0ID0gJ1dGUydcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgY2FzZSAnd21zJzpcbiAgICAgICAgICAgIGZvcm1hdCA9ICdXTVMnXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgJ3dtdHMnOlxuICAgICAgICAgICAgZm9ybWF0ID0gJ1dNVFMnXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgJ3Rtcyc6XG4gICAgICAgICAgICBmb3JtYXQgPSAnVE1TJ1xuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBjYXNlICdlc3JpUmVzdCc6XG4gICAgICAgICAgICBmb3JtYXQgPSAnUkVTVCdcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGJyZWFrXG4gICAgZGVmYXVsdDpcbiAgICAgIGZvcm1hdCA9IGdldEZpbGVGb3JtYXQobGluaylcbiAgfVxuICBjb25zdCBsYWJlbCA9IGxpbmsuZGVzY3JpcHRpb24gfHwgKCduYW1lJyBpbiBsaW5rID8gbGluay5uYW1lIDogJycpXG4gIHJldHVybiBmb3JtYXQgPyBgJHtsYWJlbH0gKCR7Zm9ybWF0fSlgIDogbGFiZWxcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldExheWVycyh1cmw6IHN0cmluZywgc2VydmljZVByb3RvY29sOiBTZXJ2aWNlUHJvdG9jb2wpIHtcbiAgc3dpdGNoIChzZXJ2aWNlUHJvdG9jb2wpIHtcbiAgICBjYXNlICdvZ2NGZWF0dXJlcyc6IHtcbiAgICAgIGNvbnN0IGxheWVycyA9IGF3YWl0IG5ldyBPZ2NBcGlFbmRwb2ludCh1cmwpLmFsbENvbGxlY3Rpb25zXG4gICAgICByZXR1cm4gbGF5ZXJzXG4gICAgfVxuICAgIGNhc2UgJ3dmcyc6IHtcbiAgICAgIGNvbnN0IGVuZHBvaW50V2ZzID0gYXdhaXQgbmV3IFdmc0VuZHBvaW50KHVybCkuaXNSZWFkeSgpXG4gICAgICBjb25zdCBmZWF0dXJlVHlwZXMgPSBhd2FpdCBlbmRwb2ludFdmcy5nZXRGZWF0dXJlVHlwZXMoKVxuICAgICAgY29uc3QgbGF5ZXJzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIGZlYXR1cmVUeXBlcy5tYXAoYXN5bmMgKGNvbGxlY3Rpb24pID0+IHtcbiAgICAgICAgICByZXR1cm4gYXdhaXQgZW5kcG9pbnRXZnMuZ2V0RmVhdHVyZVR5cGVGdWxsKGNvbGxlY3Rpb24ubmFtZSlcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIHJldHVybiBsYXllcnNcbiAgICB9XG4gICAgY2FzZSAnd21zJzoge1xuICAgICAgY29uc3QgZW5kcG9pbnRXbXMgPSBhd2FpdCBuZXcgV21zRW5kcG9pbnQodXJsKS5pc1JlYWR5KClcbiAgICAgIGNvbnN0IGxheWVycyA9IChcbiAgICAgICAgYXdhaXQgZW5kcG9pbnRXbXNcbiAgICAgICAgICAuZ2V0TGF5ZXJzKClcbiAgICAgICAgICAuZmxhdE1hcCh3bXNMYXllckZsYXR0ZW4pXG4gICAgICAgICAgLmZpbHRlcigobCkgPT4gbC5uYW1lKVxuICAgICAgKS5tYXAoKGNvbGxlY3Rpb24pID0+IHtcbiAgICAgICAgcmV0dXJuIGVuZHBvaW50V21zLmdldExheWVyQnlOYW1lKGNvbGxlY3Rpb24ubmFtZSlcbiAgICAgIH0pXG4gICAgICByZXR1cm4gbGF5ZXJzXG4gICAgfVxuICAgIGNhc2UgJ3dtdHMnOiB7XG4gICAgICBjb25zdCBlbmRwb2ludFdtdHMgPSBhd2FpdCBuZXcgV210c0VuZHBvaW50KHVybCkuaXNSZWFkeSgpXG4gICAgICByZXR1cm4gZW5kcG9pbnRXbXRzLmdldExheWVycygpXG4gICAgfVxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdtc0xheWVyRmxhdHRlbihsYXllckZ1bGwpIHtcbiAgY29uc3QgbGF5ZXIgPSB7XG4gICAgdGl0bGU6IGxheWVyRnVsbC50aXRsZSxcbiAgICBuYW1lOiBsYXllckZ1bGwubmFtZSxcbiAgICBhYnN0cmFjdDogbGF5ZXJGdWxsLmFic3RyYWN0LFxuICB9XG5cbiAgcmV0dXJuICdjaGlsZHJlbicgaW4gbGF5ZXJGdWxsICYmIEFycmF5LmlzQXJyYXkobGF5ZXJGdWxsLmNoaWxkcmVuKVxuICAgID8gW2xheWVyLCAuLi5sYXllckZ1bGwuY2hpbGRyZW4uZmxhdE1hcCh3bXNMYXllckZsYXR0ZW4pXVxuICAgIDogW2xheWVyXVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWltZVR5cGVGb3JGb3JtYXQoZm9ybWF0OiBGaWxlRm9ybWF0KTogc3RyaW5nIHwgbnVsbCB7XG4gIHJldHVybiBmb3JtYXQgaW4gRk9STUFUUyA/IEZPUk1BVFNbZm9ybWF0LnRvTG93ZXJDYXNlKCldLm1pbWVUeXBlc1swXSA6IG51bGxcbn1cbiJdfQ==
@@ -2,12 +2,13 @@ const ValidatorMapper = {
2
2
  title: (record) => !!record?.title,
3
3
  abstract: (record) => !!record?.abstract,
4
4
  keywords: (record) => (record?.keywords?.length ?? 0) > 0,
5
- legalConstraints: (record) => (record?.legalConstraints?.length ?? 0) > 0,
6
- contacts: (record) => !!record?.contacts?.[0]?.email,
7
- updateFrequency: (record) => !!record?.updateFrequency,
5
+ legalConstraints: (record) => !!(record?.legalConstraints?.length &&
6
+ record.legalConstraints.some((c) => c?.text?.trim().length > 0)),
7
+ contacts: (record) => !!record?.contacts?.[0]?.email &&
8
+ record.contacts[0].email !== 'missing@missing.com',
9
+ updateFrequency: (record) => !!record?.updateFrequency && record.updateFrequency !== 'unknown',
8
10
  topics: (record) => (record?.topics?.length ?? 0) > 0,
9
11
  organisation: (record) => !!record?.contacts?.[0]?.organization?.name,
10
- capabilities: (record) => record?.onlineResources?.some((resource) => resource?.url?.href.toLowerCase().includes('capabilities')),
11
12
  source: (record) => !!record?.extras?.sourcesIdentifiers,
12
13
  };
13
14
  export function getAllKeysValidator() {
@@ -23,12 +24,12 @@ function getMappersFromKind(kind) {
23
24
  'contacts',
24
25
  ];
25
26
  switch (kind) {
26
- case 'service':
27
- kindKeys = ['capabilities'];
28
- break;
29
27
  case 'reuse':
30
28
  kindKeys = ['topics', 'organisation', 'source'];
31
29
  break;
30
+ case 'service':
31
+ kindKeys = [];
32
+ break;
32
33
  case 'dataset':
33
34
  default:
34
35
  kindKeys = ['updateFrequency', 'topics', 'organisation'];
@@ -42,4 +43,4 @@ export function getQualityValidators(record, propsToValidate) {
42
43
  validator: () => ValidatorMapper[name](record),
43
44
  }));
44
45
  }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhbGl0eS1zY29yZS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMvbGliL3JlY29yZC9xdWFsaXR5LXNjb3JlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsTUFBTSxlQUFlLEdBQXFCO0lBQ3hDLEtBQUssRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLO0lBQ2xDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxRQUFRO0lBQ3hDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ3pELGdCQUFnQixFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUN6RSxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSztJQUNwRCxlQUFlLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsZUFBZTtJQUN0RCxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUNyRCxZQUFZLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxFQUFFLElBQUk7SUFDckUsWUFBWSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDdkIsTUFBTSxFQUFFLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUN6QyxRQUFRLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQzNEO0lBQ0gsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxrQkFBa0I7Q0FDaEQsQ0FBQTtBQUlWLE1BQU0sVUFBVSxtQkFBbUI7SUFDakMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFBO0FBQ3JDLENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLElBQWdCO0lBQzFDLElBQUksUUFBUSxHQUEwQixFQUFFLENBQUE7SUFDeEMsTUFBTSxXQUFXLEdBQTBCO1FBQ3pDLE9BQU87UUFDUCxVQUFVO1FBQ1YsVUFBVTtRQUNWLGtCQUFrQjtRQUNsQixVQUFVO0tBQ1gsQ0FBQTtJQUVELFFBQVEsSUFBSSxFQUFFLENBQUM7UUFDYixLQUFLLFNBQVM7WUFDWixRQUFRLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQTtZQUMzQixNQUFLO1FBQ1AsS0FBSyxPQUFPO1lBQ1YsUUFBUSxHQUFHLENBQUMsUUFBUSxFQUFFLGNBQWMsRUFBRSxRQUFRLENBQUMsQ0FBQTtZQUMvQyxNQUFLO1FBQ1AsS0FBSyxTQUFTLENBQUM7UUFDZjtZQUNFLFFBQVEsR0FBRyxDQUFDLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQTtJQUM1RCxDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQUcsV0FBVyxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUE7QUFDdEMsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FDbEMsTUFBOEIsRUFDOUIsZUFBc0M7SUFFdEMsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQ3BELGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQy9DLENBQUE7SUFFRCxPQUFPLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbEMsSUFBSTtRQUNKLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDO0tBQy9DLENBQUMsQ0FBQyxDQUFBO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENhdGFsb2dSZWNvcmQsXG4gIFJlY29yZEtpbmQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcblxudHlwZSBUVmFsaWRhdG9yTWFwcGVyID0ge1xuICBba2V5OiBzdHJpbmddOiAobWV0YWRhdGE6IFBhcnRpYWw8Q2F0YWxvZ1JlY29yZD4pID0+IGJvb2xlYW5cbn1cblxuY29uc3QgVmFsaWRhdG9yTWFwcGVyOiBUVmFsaWRhdG9yTWFwcGVyID0ge1xuICB0aXRsZTogKHJlY29yZCkgPT4gISFyZWNvcmQ/LnRpdGxlLFxuICBhYnN0cmFjdDogKHJlY29yZCkgPT4gISFyZWNvcmQ/LmFic3RyYWN0LFxuICBrZXl3b3JkczogKHJlY29yZCkgPT4gKHJlY29yZD8ua2V5d29yZHM/Lmxlbmd0aCA/PyAwKSA+IDAsXG4gIGxlZ2FsQ29uc3RyYWludHM6IChyZWNvcmQpID0+IChyZWNvcmQ/LmxlZ2FsQ29uc3RyYWludHM/Lmxlbmd0aCA/PyAwKSA+IDAsXG4gIGNvbnRhY3RzOiAocmVjb3JkKSA9PiAhIXJlY29yZD8uY29udGFjdHM/LlswXT8uZW1haWwsXG4gIHVwZGF0ZUZyZXF1ZW5jeTogKHJlY29yZCkgPT4gISFyZWNvcmQ/LnVwZGF0ZUZyZXF1ZW5jeSxcbiAgdG9waWNzOiAocmVjb3JkKSA9PiAocmVjb3JkPy50b3BpY3M/Lmxlbmd0aCA/PyAwKSA+IDAsXG4gIG9yZ2FuaXNhdGlvbjogKHJlY29yZCkgPT4gISFyZWNvcmQ/LmNvbnRhY3RzPy5bMF0/Lm9yZ2FuaXphdGlvbj8ubmFtZSxcbiAgY2FwYWJpbGl0aWVzOiAocmVjb3JkKSA9PlxuICAgIHJlY29yZD8ub25saW5lUmVzb3VyY2VzPy5zb21lKChyZXNvdXJjZSkgPT5cbiAgICAgIHJlc291cmNlPy51cmw/LmhyZWYudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnY2FwYWJpbGl0aWVzJylcbiAgICApLFxuICBzb3VyY2U6IChyZWNvcmQpID0+ICEhcmVjb3JkPy5leHRyYXM/LnNvdXJjZXNJZGVudGlmaWVycyxcbn0gYXMgY29uc3RcblxuZXhwb3J0IHR5cGUgVmFsaWRhdG9yTWFwcGVyS2V5cyA9IGtleW9mIHR5cGVvZiBWYWxpZGF0b3JNYXBwZXIgJiBzdHJpbmdcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFsbEtleXNWYWxpZGF0b3IoKSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhWYWxpZGF0b3JNYXBwZXIpXG59XG5cbmZ1bmN0aW9uIGdldE1hcHBlcnNGcm9tS2luZChraW5kOiBSZWNvcmRLaW5kKSB7XG4gIGxldCBraW5kS2V5cyA9IDxWYWxpZGF0b3JNYXBwZXJLZXlzW10+W11cbiAgY29uc3QgY29tbW9uc0tleXMgPSA8VmFsaWRhdG9yTWFwcGVyS2V5c1tdPltcbiAgICAndGl0bGUnLFxuICAgICdhYnN0cmFjdCcsXG4gICAgJ2tleXdvcmRzJyxcbiAgICAnbGVnYWxDb25zdHJhaW50cycsXG4gICAgJ2NvbnRhY3RzJyxcbiAgXVxuXG4gIHN3aXRjaCAoa2luZCkge1xuICAgIGNhc2UgJ3NlcnZpY2UnOlxuICAgICAga2luZEtleXMgPSBbJ2NhcGFiaWxpdGllcyddXG4gICAgICBicmVha1xuICAgIGNhc2UgJ3JldXNlJzpcbiAgICAgIGtpbmRLZXlzID0gWyd0b3BpY3MnLCAnb3JnYW5pc2F0aW9uJywgJ3NvdXJjZSddXG4gICAgICBicmVha1xuICAgIGNhc2UgJ2RhdGFzZXQnOlxuICAgIGRlZmF1bHQ6XG4gICAgICBraW5kS2V5cyA9IFsndXBkYXRlRnJlcXVlbmN5JywgJ3RvcGljcycsICdvcmdhbmlzYXRpb24nXVxuICB9XG5cbiAgcmV0dXJuIFsuLi5jb21tb25zS2V5cywgLi4ua2luZEtleXNdXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRRdWFsaXR5VmFsaWRhdG9ycyhcbiAgcmVjb3JkOiBQYXJ0aWFsPENhdGFsb2dSZWNvcmQ+LFxuICBwcm9wc1RvVmFsaWRhdGU6IFZhbGlkYXRvck1hcHBlcktleXNbXVxuKSB7XG4gIGNvbnN0IGZpbHRlcmVkUHJvcHMgPSBwcm9wc1RvVmFsaWRhdGUuZmlsdGVyKChwcm9wKSA9PlxuICAgIGdldE1hcHBlcnNGcm9tS2luZChyZWNvcmQua2luZCkuaW5jbHVkZXMocHJvcClcbiAgKVxuXG4gIHJldHVybiBmaWx0ZXJlZFByb3BzLm1hcCgobmFtZSkgPT4gKHtcbiAgICBuYW1lLFxuICAgIHZhbGlkYXRvcjogKCkgPT4gVmFsaWRhdG9yTWFwcGVyW25hbWVdKHJlY29yZCksXG4gIH0pKVxufVxuIl19
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhbGl0eS1zY29yZS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMvbGliL3JlY29yZC9xdWFsaXR5LXNjb3JlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsTUFBTSxlQUFlLEdBQXFCO0lBQ3hDLEtBQUssRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLO0lBQ2xDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxRQUFRO0lBQ3hDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ3pELGdCQUFnQixFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDM0IsQ0FBQyxDQUFDLENBQ0EsTUFBTSxFQUFFLGdCQUFnQixFQUFFLE1BQU07UUFDaEMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQ2hFO0lBQ0gsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDbkIsQ0FBQyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLO1FBQzlCLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLHFCQUFxQjtJQUNwRCxlQUFlLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUMxQixDQUFDLENBQUMsTUFBTSxFQUFFLGVBQWUsSUFBSSxNQUFNLENBQUMsZUFBZSxLQUFLLFNBQVM7SUFDbkUsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDckQsWUFBWSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRSxJQUFJO0lBQ3JFLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsa0JBQWtCO0NBQ2hELENBQUE7QUFJVixNQUFNLFVBQVUsbUJBQW1CO0lBQ2pDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQTtBQUNyQyxDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxJQUFnQjtJQUMxQyxJQUFJLFFBQVEsR0FBMEIsRUFBRSxDQUFBO0lBQ3hDLE1BQU0sV0FBVyxHQUEwQjtRQUN6QyxPQUFPO1FBQ1AsVUFBVTtRQUNWLFVBQVU7UUFDVixrQkFBa0I7UUFDbEIsVUFBVTtLQUNYLENBQUE7SUFFRCxRQUFRLElBQUksRUFBRSxDQUFDO1FBQ2IsS0FBSyxPQUFPO1lBQ1YsUUFBUSxHQUFHLENBQUMsUUFBUSxFQUFFLGNBQWMsRUFBRSxRQUFRLENBQUMsQ0FBQTtZQUMvQyxNQUFLO1FBQ1AsS0FBSyxTQUFTO1lBQ1osUUFBUSxHQUFHLEVBQUUsQ0FBQTtZQUNiLE1BQUs7UUFDUCxLQUFLLFNBQVMsQ0FBQztRQUNmO1lBQ0UsUUFBUSxHQUFHLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFBO0lBQzVELENBQUM7SUFFRCxPQUFPLENBQUMsR0FBRyxXQUFXLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQTtBQUN0QyxDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxNQUE4QixFQUM5QixlQUFzQztJQUV0QyxNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDcEQsa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FDL0MsQ0FBQTtJQUVELE9BQU8sYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNsQyxJQUFJO1FBQ0osU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUM7S0FDL0MsQ0FBQyxDQUFDLENBQUE7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2F0YWxvZ1JlY29yZCxcbiAgUmVjb3JkS2luZCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuXG50eXBlIFRWYWxpZGF0b3JNYXBwZXIgPSB7XG4gIFtrZXk6IHN0cmluZ106IChtZXRhZGF0YTogUGFydGlhbDxDYXRhbG9nUmVjb3JkPikgPT4gYm9vbGVhblxufVxuXG5jb25zdCBWYWxpZGF0b3JNYXBwZXI6IFRWYWxpZGF0b3JNYXBwZXIgPSB7XG4gIHRpdGxlOiAocmVjb3JkKSA9PiAhIXJlY29yZD8udGl0bGUsXG4gIGFic3RyYWN0OiAocmVjb3JkKSA9PiAhIXJlY29yZD8uYWJzdHJhY3QsXG4gIGtleXdvcmRzOiAocmVjb3JkKSA9PiAocmVjb3JkPy5rZXl3b3Jkcz8ubGVuZ3RoID8/IDApID4gMCxcbiAgbGVnYWxDb25zdHJhaW50czogKHJlY29yZCkgPT5cbiAgICAhIShcbiAgICAgIHJlY29yZD8ubGVnYWxDb25zdHJhaW50cz8ubGVuZ3RoICYmXG4gICAgICByZWNvcmQubGVnYWxDb25zdHJhaW50cy5zb21lKChjKSA9PiBjPy50ZXh0Py50cmltKCkubGVuZ3RoID4gMClcbiAgICApLFxuICBjb250YWN0czogKHJlY29yZCkgPT5cbiAgICAhIXJlY29yZD8uY29udGFjdHM/LlswXT8uZW1haWwgJiZcbiAgICByZWNvcmQuY29udGFjdHNbMF0uZW1haWwgIT09ICdtaXNzaW5nQG1pc3NpbmcuY29tJyxcbiAgdXBkYXRlRnJlcXVlbmN5OiAocmVjb3JkKSA9PlxuICAgICEhcmVjb3JkPy51cGRhdGVGcmVxdWVuY3kgJiYgcmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeSAhPT0gJ3Vua25vd24nLFxuICB0b3BpY3M6IChyZWNvcmQpID0+IChyZWNvcmQ/LnRvcGljcz8ubGVuZ3RoID8/IDApID4gMCxcbiAgb3JnYW5pc2F0aW9uOiAocmVjb3JkKSA9PiAhIXJlY29yZD8uY29udGFjdHM/LlswXT8ub3JnYW5pemF0aW9uPy5uYW1lLFxuICBzb3VyY2U6IChyZWNvcmQpID0+ICEhcmVjb3JkPy5leHRyYXM/LnNvdXJjZXNJZGVudGlmaWVycyxcbn0gYXMgY29uc3RcblxuZXhwb3J0IHR5cGUgVmFsaWRhdG9yTWFwcGVyS2V5cyA9IGtleW9mIHR5cGVvZiBWYWxpZGF0b3JNYXBwZXIgJiBzdHJpbmdcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFsbEtleXNWYWxpZGF0b3IoKSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhWYWxpZGF0b3JNYXBwZXIpXG59XG5cbmZ1bmN0aW9uIGdldE1hcHBlcnNGcm9tS2luZChraW5kOiBSZWNvcmRLaW5kKSB7XG4gIGxldCBraW5kS2V5cyA9IDxWYWxpZGF0b3JNYXBwZXJLZXlzW10+W11cbiAgY29uc3QgY29tbW9uc0tleXMgPSA8VmFsaWRhdG9yTWFwcGVyS2V5c1tdPltcbiAgICAndGl0bGUnLFxuICAgICdhYnN0cmFjdCcsXG4gICAgJ2tleXdvcmRzJyxcbiAgICAnbGVnYWxDb25zdHJhaW50cycsXG4gICAgJ2NvbnRhY3RzJyxcbiAgXVxuXG4gIHN3aXRjaCAoa2luZCkge1xuICAgIGNhc2UgJ3JldXNlJzpcbiAgICAgIGtpbmRLZXlzID0gWyd0b3BpY3MnLCAnb3JnYW5pc2F0aW9uJywgJ3NvdXJjZSddXG4gICAgICBicmVha1xuICAgIGNhc2UgJ3NlcnZpY2UnOlxuICAgICAga2luZEtleXMgPSBbXVxuICAgICAgYnJlYWtcbiAgICBjYXNlICdkYXRhc2V0JzpcbiAgICBkZWZhdWx0OlxuICAgICAga2luZEtleXMgPSBbJ3VwZGF0ZUZyZXF1ZW5jeScsICd0b3BpY3MnLCAnb3JnYW5pc2F0aW9uJ11cbiAgfVxuXG4gIHJldHVybiBbLi4uY29tbW9uc0tleXMsIC4uLmtpbmRLZXlzXVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UXVhbGl0eVZhbGlkYXRvcnMoXG4gIHJlY29yZDogUGFydGlhbDxDYXRhbG9nUmVjb3JkPixcbiAgcHJvcHNUb1ZhbGlkYXRlOiBWYWxpZGF0b3JNYXBwZXJLZXlzW11cbikge1xuICBjb25zdCBmaWx0ZXJlZFByb3BzID0gcHJvcHNUb1ZhbGlkYXRlLmZpbHRlcigocHJvcCkgPT5cbiAgICBnZXRNYXBwZXJzRnJvbUtpbmQocmVjb3JkLmtpbmQpLmluY2x1ZGVzKHByb3ApXG4gIClcblxuICByZXR1cm4gZmlsdGVyZWRQcm9wcy5tYXAoKG5hbWUpID0+ICh7XG4gICAgbmFtZSxcbiAgICB2YWxpZGF0b3I6ICgpID0+IFZhbGlkYXRvck1hcHBlcltuYW1lXShyZWNvcmQpLFxuICB9KSlcbn1cbiJdfQ==
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @returns The geometry if available, otherwise null.
3
+ */
1
4
  export function getGeometryFromGeoJSON(data) {
2
5
  if (data.type === 'FeatureCollection') {
3
6
  return data?.features?.[0]?.geometry || null;
@@ -18,4 +21,58 @@ export function getGeometryFromGeoJSON(data) {
18
21
  }
19
22
  return null;
20
23
  }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvanNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjL2xpYi91dGlscy9nZW9qc29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsSUFBNEM7SUFFNUMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLG1CQUFtQixFQUFFLENBQUM7UUFDdEMsT0FBTyxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQTtJQUM5QyxDQUFDO0lBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzVCLE9BQU8sSUFBSSxFQUFFLFFBQVEsSUFBSSxJQUFJLENBQUE7SUFDL0IsQ0FBQztJQUNELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxvQkFBb0IsRUFBRSxDQUFDO1FBQ3ZDLE9BQU8sSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQTtJQUN0QyxDQUFDO0lBQ0QsSUFDRSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVM7UUFDdkIsSUFBSSxDQUFDLElBQUksS0FBSyxPQUFPO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEtBQUssWUFBWTtRQUMxQixJQUFJLENBQUMsSUFBSSxLQUFLLGNBQWM7UUFDNUIsSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZO1FBQzFCLElBQUksQ0FBQyxJQUFJLEtBQUssaUJBQWlCLEVBQy9CLENBQUM7UUFDRCxPQUFPLElBQUksSUFBSSxJQUFJLENBQUE7SUFDckIsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZlYXR1cmUsIEZlYXR1cmVDb2xsZWN0aW9uLCBHZW9tZXRyeSB9IGZyb20gJ2dlb2pzb24nXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRHZW9tZXRyeUZyb21HZW9KU09OKFxuICBkYXRhOiBGZWF0dXJlQ29sbGVjdGlvbiB8IEZlYXR1cmUgfCBHZW9tZXRyeVxuKTogR2VvbWV0cnkge1xuICBpZiAoZGF0YS50eXBlID09PSAnRmVhdHVyZUNvbGxlY3Rpb24nKSB7XG4gICAgcmV0dXJuIGRhdGE/LmZlYXR1cmVzPy5bMF0/Lmdlb21ldHJ5IHx8IG51bGxcbiAgfVxuICBpZiAoZGF0YS50eXBlID09PSAnRmVhdHVyZScpIHtcbiAgICByZXR1cm4gZGF0YT8uZ2VvbWV0cnkgfHwgbnVsbFxuICB9XG4gIGlmIChkYXRhLnR5cGUgPT09ICdHZW9tZXRyeUNvbGxlY3Rpb24nKSB7XG4gICAgcmV0dXJuIGRhdGE/Lmdlb21ldHJpZXM/LlswXSB8fCBudWxsXG4gIH1cbiAgaWYgKFxuICAgIGRhdGEudHlwZSA9PT0gJ1BvbHlnb24nIHx8XG4gICAgZGF0YS50eXBlID09PSAnUG9pbnQnIHx8XG4gICAgZGF0YS50eXBlID09PSAnTGluZVN0cmluZycgfHxcbiAgICBkYXRhLnR5cGUgPT09ICdNdWx0aVBvbHlnb24nIHx8XG4gICAgZGF0YS50eXBlID09PSAnTXVsdGlQb2ludCcgfHxcbiAgICBkYXRhLnR5cGUgPT09ICdNdWx0aUxpbmVTdHJpbmcnXG4gICkge1xuICAgIHJldHVybiBkYXRhIHx8IG51bGxcbiAgfVxuICByZXR1cm4gbnVsbFxufVxuIl19
24
+ export function getGeometryBoundingBox(geometry) {
25
+ // use the bounding box if specified in the GeoJSON object
26
+ if (geometry.bbox) {
27
+ return geometry.bbox.length > 4
28
+ ? [geometry.bbox[0], geometry.bbox[1], geometry.bbox[3], geometry.bbox[4]]
29
+ : geometry.bbox;
30
+ }
31
+ const coordinatesReducer = (prev, coords) => [
32
+ Math.min(prev[0], coords[0]),
33
+ Math.min(prev[1], coords[1]),
34
+ Math.max(prev[2], coords[0]),
35
+ Math.max(prev[3], coords[1]),
36
+ ];
37
+ const coordinatesArrayReducer = (prev, coordsArray) => {
38
+ const bbox = coordsArray.reduce(coordinatesReducer, emptyExtent);
39
+ return [
40
+ Math.min(prev[0], bbox[0]),
41
+ Math.min(prev[1], bbox[1]),
42
+ Math.max(prev[2], bbox[2]),
43
+ Math.max(prev[3], bbox[3]),
44
+ ];
45
+ };
46
+ const emptyExtent = [Infinity, Infinity, -Infinity, -Infinity];
47
+ switch (geometry.type) {
48
+ case 'MultiPolygon':
49
+ return geometry.coordinates.reduce((prev, polygonCoords) => {
50
+ const bbox = polygonCoords.reduce(coordinatesArrayReducer, emptyExtent);
51
+ return [
52
+ Math.min(prev[0], bbox[0]),
53
+ Math.min(prev[1], bbox[1]),
54
+ Math.max(prev[2], bbox[2]),
55
+ Math.max(prev[3], bbox[3]),
56
+ ];
57
+ }, emptyExtent);
58
+ case 'GeometryCollection':
59
+ return geometry.geometries.reduce((prev, geom) => {
60
+ const bbox = getGeometryBoundingBox(geom);
61
+ return [
62
+ Math.min(prev[0], bbox[0]),
63
+ Math.min(prev[1], bbox[1]),
64
+ Math.max(prev[2], bbox[2]),
65
+ Math.max(prev[3], bbox[3]),
66
+ ];
67
+ }, emptyExtent);
68
+ case 'Polygon':
69
+ case 'MultiLineString':
70
+ return geometry.coordinates.reduce(coordinatesArrayReducer, emptyExtent);
71
+ case 'LineString':
72
+ case 'MultiPoint':
73
+ return geometry.coordinates.reduce(coordinatesReducer, emptyExtent);
74
+ case 'Point':
75
+ return coordinatesReducer(emptyExtent, geometry.coordinates);
76
+ }
77
+ }
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvanNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjL2xpYi91dGlscy9nZW9qc29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxJQUE0QztJQUU1QyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssbUJBQW1CLEVBQUUsQ0FBQztRQUN0QyxPQUFPLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLElBQUksSUFBSSxDQUFBO0lBQzlDLENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDNUIsT0FBTyxJQUFJLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQTtJQUMvQixDQUFDO0lBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLG9CQUFvQixFQUFFLENBQUM7UUFDdkMsT0FBTyxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFBO0lBQ3RDLENBQUM7SUFDRCxJQUNFLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUztRQUN2QixJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU87UUFDckIsSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZO1FBQzFCLElBQUksQ0FBQyxJQUFJLEtBQUssY0FBYztRQUM1QixJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVk7UUFDMUIsSUFBSSxDQUFDLElBQUksS0FBSyxpQkFBaUIsRUFDL0IsQ0FBQztRQUNELE9BQU8sSUFBSSxJQUFJLElBQUksQ0FBQTtJQUNyQixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUE7QUFDYixDQUFDO0FBS0QsTUFBTSxVQUFVLHNCQUFzQixDQUFDLFFBQWtCO0lBQ3ZELDBEQUEwRDtJQUMxRCxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztR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SUFBSSxFQUFFLEVBQUU7Z0JBQy9DLE1BQU0sSUFBSSxHQUFHLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUN6QyxPQUFPO29CQUNMLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDWixDQUFBO1lBQ2xCLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQTtRQUNqQixLQUFLLFNBQVMsQ0FBQztRQUNmLEtBQUssaUJBQWlCO1lBQ3BCLE9BQU8sUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsdUJBQXVCLEVBQUUsV0FBVyxDQUFDLENBQUE7UUFDMUUsS0FBSyxZQUFZLENBQUM7UUFDbEIsS0FBSyxZQUFZO1lBQ2YsT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FDaEMsa0JBQWtCLEVBQ2xCLFdBQVcsQ0FDWixDQUFBO1FBQ0gsS0FBSyxPQUFPO1lBQ1YsT0FBTyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQ2hFLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGZWF0dXJlLCBGZWF0dXJlQ29sbGVjdGlvbiwgR2VvbWV0cnksIFBvc2l0aW9uIH0gZnJvbSAnZ2VvanNvbidcblxuLyoqXG4gKiBAcmV0dXJucyBUaGUgZ2VvbWV0cnkgaWYgYXZhaWxhYmxlLCBvdGhlcndpc2UgbnVsbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEdlb21ldHJ5RnJvbUdlb0pTT04oXG4gIGRhdGE6IEZlYXR1cmVDb2xsZWN0aW9uIHwgRmVhdHVyZSB8IEdlb21ldHJ5XG4pOiBHZW9tZXRyeSB8IG51bGwge1xuICBpZiAoZGF0YS50eXBlID09PSAnRmVhdHVyZUNvbGxlY3Rpb24nKSB7XG4gICAgcmV0dXJuIGRhdGE/LmZlYXR1cmVzPy5bMF0/Lmdlb21ldHJ5IHx8IG51bGxcbiAgfVxuICBpZiAoZGF0YS50eXBlID09PSAnRmVhdHVyZScpIHtcbiAgICByZXR1cm4gZGF0YT8uZ2VvbWV0cnkgfHwgbnVsbFxuICB9XG4gIGlmIChkYXRhLnR5cGUgPT09ICdHZW9tZXRyeUNvbGxlY3Rpb24nKSB7XG4gICAgcmV0dXJuIGRhdGE/Lmdlb21ldHJpZXM/LlswXSB8fCBudWxsXG4gIH1cbiAgaWYgKFxuICAgIGRhdGEudHlwZSA9PT0gJ1BvbHlnb24nIHx8XG4gICAgZGF0YS50eXBlID09PSAnUG9pbnQnIHx8XG4gICAgZGF0YS50eXBlID09PSAnTGluZVN0cmluZycgfHxcbiAgICBkYXRhLnR5cGUgPT09ICdNdWx0aVBvbHlnb24nIHx8XG4gICAgZGF0YS50eXBlID09PSAnTXVsdGlQb2ludCcgfHxcbiAgICBkYXRhLnR5cGUgPT09ICdNdWx0aUxpbmVTdHJpbmcnXG4gICkge1xuICAgIHJldHVybiBkYXRhIHx8IG51bGxcbiAgfVxuICByZXR1cm4gbnVsbFxufVxuXG4vLyBGSVhNRTogdGhpcyB0eXBlIHNob3VsZCBiZSBtb3JlIGdlbmVyaWMgYWNyb3NzIHRoZSBwcm9qZWN0XG5leHBvcnQgdHlwZSBCb3VuZGluZ0JveCA9IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRHZW9tZXRyeUJvdW5kaW5nQm94KGdlb21ldHJ5OiBHZW9tZXRyeSk6IEJvdW5kaW5nQm94IHtcbiAgLy8gdXNlIHRoZSBib3VuZGluZyBib3ggaWYgc3BlY2lmaWVkIGluIHRoZSBHZW9KU09OIG9iamVjdFxuICBpZiAoZ2VvbWV0cnkuYmJveCkge1xuICAgIHJldHVybiBnZW9tZXRyeS5iYm94Lmxlbmd0aCA+IDRcbiAgICAgID8gW2dlb21ldHJ5LmJib3hbMF0sIGdlb21ldHJ5LmJib3hbMV0sIGdlb21ldHJ5LmJib3hbM10sIGdlb21ldHJ5LmJib3hbNF1dXG4gICAgICA6IChnZW9tZXRyeS5iYm94IGFzIEJvdW5kaW5nQm94KVxuICB9XG5cbiAgY29uc3QgY29vcmRpbmF0ZXNSZWR1Y2VyID0gKHByZXY6IEJvdW5kaW5nQm94LCBjb29yZHM6IFBvc2l0aW9uKSA9PlxuICAgIFtcbiAgICAgIE1hdGgubWluKHByZXZbMF0sIGNvb3Jkc1swXSksXG4gICAgICBNYXRoLm1pbihwcmV2WzFdLCBjb29yZHNbMV0pLFxuICAgICAgTWF0aC5tYXgocHJldlsyXSwgY29vcmRzWzBdKSxcbiAgICAgIE1hdGgubWF4KHByZXZbM10sIGNvb3Jkc1sxXSksXG4gICAgXSBhcyBCb3VuZGluZ0JveFxuICBjb25zdCBjb29yZGluYXRlc0FycmF5UmVkdWNlciA9IChcbiAgICBwcmV2OiBCb3VuZGluZ0JveCxcbiAgICBjb29yZHNBcnJheTogUG9zaXRpb25bXVxuICApID0+IHtcbiAgICBjb25zdCBiYm94ID0gY29vcmRzQXJyYXkucmVkdWNlKGNvb3JkaW5hdGVzUmVkdWNlciwgZW1wdHlFeHRlbnQpXG4gICAgcmV0dXJuIFtcbiAgICAgIE1hdGgubWluKHByZXZbMF0sIGJib3hbMF0pLFxuICAgICAgTWF0aC5taW4ocHJldlsxXSwgYmJveFsxXSksXG4gICAgICBNYXRoLm1heChwcmV2WzJdLCBiYm94WzJdKSxcbiAgICAgIE1hdGgubWF4KHByZXZbM10sIGJib3hbM10pLFxuICAgIF0gYXMgQm91bmRpbmdCb3hcbiAgfVxuICBjb25zdCBlbXB0eUV4dGVudCA9IFtJbmZpbml0eSwgSW5maW5pdHksIC1JbmZpbml0eSwgLUluZmluaXR5XSBhcyBCb3VuZGluZ0JveFxuXG4gIHN3aXRjaCAoZ2VvbWV0cnkudHlwZSkge1xuICAgIGNhc2UgJ011bHRpUG9seWdvbic6XG4gICAgICByZXR1cm4gZ2VvbWV0cnkuY29vcmRpbmF0ZXMucmVkdWNlKChwcmV2LCBwb2x5Z29uQ29vcmRzKSA9PiB7XG4gICAgICAgIGNvbnN0IGJib3ggPSBwb2x5Z29uQ29vcmRzLnJlZHVjZShjb29yZGluYXRlc0FycmF5UmVkdWNlciwgZW1wdHlFeHRlbnQpXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgTWF0aC5taW4ocHJldlswXSwgYmJveFswXSksXG4gICAgICAgICAgTWF0aC5taW4ocHJldlsxXSwgYmJveFsxXSksXG4gICAgICAgICAgTWF0aC5tYXgocHJldlsyXSwgYmJveFsyXSksXG4gICAgICAgICAgTWF0aC5tYXgocHJldlszXSwgYmJveFszXSksXG4gICAgICAgIF0gYXMgQm91bmRpbmdCb3hcbiAgICAgIH0sIGVtcHR5RXh0ZW50KVxuICAgIGNhc2UgJ0dlb21ldHJ5Q29sbGVjdGlvbic6XG4gICAgICByZXR1cm4gZ2VvbWV0cnkuZ2VvbWV0cmllcy5yZWR1Y2UoKHByZXYsIGdlb20pID0+IHtcbiAgICAgICAgY29uc3QgYmJveCA9IGdldEdlb21ldHJ5Qm91bmRpbmdCb3goZ2VvbSlcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICBNYXRoLm1pbihwcmV2WzBdLCBiYm94WzBdKSxcbiAgICAgICAgICBNYXRoLm1pbihwcmV2WzFdLCBiYm94WzFdKSxcbiAgICAgICAgICBNYXRoLm1heChwcmV2WzJdLCBiYm94WzJdKSxcbiAgICAgICAgICBNYXRoLm1heChwcmV2WzNdLCBiYm94WzNdKSxcbiAgICAgICAgXSBhcyBCb3VuZGluZ0JveFxuICAgICAgfSwgZW1wdHlFeHRlbnQpXG4gICAgY2FzZSAnUG9seWdvbic6XG4gICAgY2FzZSAnTXVsdGlMaW5lU3RyaW5nJzpcbiAgICAgIHJldHVybiBnZW9tZXRyeS5jb29yZGluYXRlcy5yZWR1Y2UoY29vcmRpbmF0ZXNBcnJheVJlZHVjZXIsIGVtcHR5RXh0ZW50KVxuICAgIGNhc2UgJ0xpbmVTdHJpbmcnOlxuICAgIGNhc2UgJ011bHRpUG9pbnQnOlxuICAgICAgcmV0dXJuIGdlb21ldHJ5LmNvb3JkaW5hdGVzLnJlZHVjZTxCb3VuZGluZ0JveD4oXG4gICAgICAgIGNvb3JkaW5hdGVzUmVkdWNlcixcbiAgICAgICAgZW1wdHlFeHRlbnRcbiAgICAgIClcbiAgICBjYXNlICdQb2ludCc6XG4gICAgICByZXR1cm4gY29vcmRpbmF0ZXNSZWR1Y2VyKGVtcHR5RXh0ZW50LCBnZW9tZXRyeS5jb29yZGluYXRlcylcbiAgfVxufVxuIl19
@@ -8,8 +8,9 @@ export * from './mobile-screen';
8
8
  export * from './no-duplicate-file-name';
9
9
  export * from './parse';
10
10
  export * from './remove-whitespace';
11
+ export * from './scroll';
11
12
  export * from './sort-by';
12
13
  export * from './strip-html';
13
14
  export * from './temporal-extent-union';
14
15
  export * from './url';
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYy9saWIvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQTtBQUMvQixjQUFjLFNBQVMsQ0FBQTtBQUN2QixjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUE7QUFDOUIsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxnQkFBZ0IsQ0FBQTtBQUM5QixjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMsMEJBQTBCLENBQUE7QUFDeEMsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxxQkFBcUIsQ0FBQTtBQUNuQyxjQUFjLFdBQVcsQ0FBQTtBQUN6QixjQUFjLGNBQWMsQ0FBQTtBQUM1QixjQUFjLHlCQUF5QixDQUFBO0FBQ3ZDLGNBQWMsT0FBTyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ieXRlcy1jb252ZXJ0J1xuZXhwb3J0ICogZnJvbSAnLi9ldmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZm9ybWF0LWZpZWxkcydcbmV4cG9ydCAqIGZyb20gJy4vZnV6enktZmlsdGVyJ1xuZXhwb3J0ICogZnJvbSAnLi9nZW9qc29uJ1xuZXhwb3J0ICogZnJvbSAnLi9pbWFnZS1yZXNpemUnXG5leHBvcnQgKiBmcm9tICcuL21vYmlsZS1zY3JlZW4nXG5leHBvcnQgKiBmcm9tICcuL25vLWR1cGxpY2F0ZS1maWxlLW5hbWUnXG5leHBvcnQgKiBmcm9tICcuL3BhcnNlJ1xuZXhwb3J0ICogZnJvbSAnLi9yZW1vdmUtd2hpdGVzcGFjZSdcbmV4cG9ydCAqIGZyb20gJy4vc29ydC1ieSdcbmV4cG9ydCAqIGZyb20gJy4vc3RyaXAtaHRtbCdcbmV4cG9ydCAqIGZyb20gJy4vdGVtcG9yYWwtZXh0ZW50LXVuaW9uJ1xuZXhwb3J0ICogZnJvbSAnLi91cmwnXG4iXX0=
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYy9saWIvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQTtBQUMvQixjQUFjLFNBQVMsQ0FBQTtBQUN2QixjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUE7QUFDOUIsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxnQkFBZ0IsQ0FBQTtBQUM5QixjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMsMEJBQTBCLENBQUE7QUFDeEMsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxxQkFBcUIsQ0FBQTtBQUNuQyxjQUFjLFVBQVUsQ0FBQTtBQUN4QixjQUFjLFdBQVcsQ0FBQTtBQUN6QixjQUFjLGNBQWMsQ0FBQTtBQUM1QixjQUFjLHlCQUF5QixDQUFBO0FBQ3ZDLGNBQWMsT0FBTyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ieXRlcy1jb252ZXJ0J1xuZXhwb3J0ICogZnJvbSAnLi9ldmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZm9ybWF0LWZpZWxkcydcbmV4cG9ydCAqIGZyb20gJy4vZnV6enktZmlsdGVyJ1xuZXhwb3J0ICogZnJvbSAnLi9nZW9qc29uJ1xuZXhwb3J0ICogZnJvbSAnLi9pbWFnZS1yZXNpemUnXG5leHBvcnQgKiBmcm9tICcuL21vYmlsZS1zY3JlZW4nXG5leHBvcnQgKiBmcm9tICcuL25vLWR1cGxpY2F0ZS1maWxlLW5hbWUnXG5leHBvcnQgKiBmcm9tICcuL3BhcnNlJ1xuZXhwb3J0ICogZnJvbSAnLi9yZW1vdmUtd2hpdGVzcGFjZSdcbmV4cG9ydCAqIGZyb20gJy4vc2Nyb2xsJ1xuZXhwb3J0ICogZnJvbSAnLi9zb3J0LWJ5J1xuZXhwb3J0ICogZnJvbSAnLi9zdHJpcC1odG1sJ1xuZXhwb3J0ICogZnJvbSAnLi90ZW1wb3JhbC1leHRlbnQtdW5pb24nXG5leHBvcnQgKiBmcm9tICcuL3VybCdcbiJdfQ==
@@ -0,0 +1,40 @@
1
+ import { NavigationEnd, Scroll } from '@angular/router';
2
+ import { filter, pairwise } from 'rxjs';
3
+ /**
4
+ * When route is changed, Angular interprets a simple query params change as "forward navigation" too.
5
+ * Using the pairwise function allows us to have both the previous and current router events, which we can
6
+ * use to effectively compare the two navigation events and see if they actually change route, or only
7
+ * the route parameters (i.e. search params stored in query params).
8
+ *
9
+ * Related to: https://github.com/angular/angular/issues/26744
10
+ */
11
+ export function handleScrollOnNavigation(router, viewportScroller) {
12
+ router.events
13
+ .pipe(filter((e) => e instanceof Scroll), pairwise())
14
+ .subscribe(([previous, current]) => {
15
+ if (current.position) {
16
+ // Backward navigation
17
+ viewportScroller.scrollToPosition(current.position);
18
+ }
19
+ else if (current.anchor) {
20
+ // Anchor navigation
21
+ viewportScroller.scrollToAnchor(current.anchor);
22
+ }
23
+ else {
24
+ // Check if routes match, or if it is only a query param change
25
+ if (previous.routerEvent instanceof NavigationEnd &&
26
+ current.routerEvent instanceof NavigationEnd &&
27
+ getBaseRoute(previous.routerEvent.urlAfterRedirects) !==
28
+ getBaseRoute(current.routerEvent.urlAfterRedirects)) {
29
+ // Routes don't match, this is actual forward navigation
30
+ // Default behavior: scroll to top
31
+ viewportScroller.scrollToPosition([0, 0]);
32
+ }
33
+ }
34
+ });
35
+ }
36
+ function getBaseRoute(url) {
37
+ // return url without query params
38
+ return url.split('?')[0];
39
+ }
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMvbGliL3V0aWxzL3Njcm9sbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQVMsYUFBYSxFQUFVLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ3RFLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFPLE1BQU0sTUFBTSxDQUFBO0FBRTVDOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsd0JBQXdCLENBQ3RDLE1BQWMsRUFDZCxnQkFBa0M7SUFFbEMsTUFBTSxDQUFDLE1BQU07U0FDVixJQUFJLENBQ0gsTUFBTSxDQUFDLENBQUMsQ0FBUSxFQUFlLEVBQUUsQ0FBQyxDQUFDLFlBQVksTUFBTSxDQUFDLEVBQ3RELFFBQVEsRUFBRSxDQUNYO1NBQ0EsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFtQixFQUFFLEVBQUU7UUFDbkQsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckIsc0JBQXNCO1lBQ3RCLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNyRCxDQUFDO2FBQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDMUIsb0JBQW9CO1lBQ3BCLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDakQsQ0FBQzthQUFNLENBQUM7WUFDTiwrREFBK0Q7WUFDL0QsSUFDRSxRQUFRLENBQUMsV0FBVyxZQUFZLGFBQWE7Z0JBQzdDLE9BQU8sQ0FBQyxXQUFXLFlBQVksYUFBYTtnQkFDNUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUM7b0JBQ2xELFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEVBQ3JELENBQUM7Z0JBQ0Qsd0RBQXdEO2dCQUN4RCxrQ0FBa0M7Z0JBQ2xDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDM0MsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQTtBQUNOLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxHQUFXO0lBQy9CLGtDQUFrQztJQUNsQyxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZpZXdwb3J0U2Nyb2xsZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBFdmVudCwgTmF2aWdhdGlvbkVuZCwgUm91dGVyLCBTY3JvbGwgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5pbXBvcnQgeyBmaWx0ZXIsIHBhaXJ3aXNlLCB0YXAgfSBmcm9tICdyeGpzJ1xuXG4vKipcbiAqIFdoZW4gcm91dGUgaXMgY2hhbmdlZCwgQW5ndWxhciBpbnRlcnByZXRzIGEgc2ltcGxlIHF1ZXJ5IHBhcmFtcyBjaGFuZ2UgYXMgXCJmb3J3YXJkIG5hdmlnYXRpb25cIiB0b28uXG4gKiBVc2luZyB0aGUgcGFpcndpc2UgZnVuY3Rpb24gYWxsb3dzIHVzIHRvIGhhdmUgYm90aCB0aGUgcHJldmlvdXMgYW5kIGN1cnJlbnQgcm91dGVyIGV2ZW50cywgd2hpY2ggd2UgY2FuXG4gKiB1c2UgdG8gZWZmZWN0aXZlbHkgY29tcGFyZSB0aGUgdHdvIG5hdmlnYXRpb24gZXZlbnRzIGFuZCBzZWUgaWYgdGhleSBhY3R1YWxseSBjaGFuZ2Ugcm91dGUsIG9yIG9ubHlcbiAqIHRoZSByb3V0ZSBwYXJhbWV0ZXJzIChpLmUuIHNlYXJjaCBwYXJhbXMgc3RvcmVkIGluIHF1ZXJ5IHBhcmFtcykuXG4gKlxuICogUmVsYXRlZCB0bzogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMjY3NDRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZVNjcm9sbE9uTmF2aWdhdGlvbihcbiAgcm91dGVyOiBSb3V0ZXIsXG4gIHZpZXdwb3J0U2Nyb2xsZXI6IFZpZXdwb3J0U2Nyb2xsZXJcbik6IHZvaWQge1xuICByb3V0ZXIuZXZlbnRzXG4gICAgLnBpcGUoXG4gICAgICBmaWx0ZXIoKGU6IEV2ZW50KTogZSBpcyBTY3JvbGwgPT4gZSBpbnN0YW5jZW9mIFNjcm9sbCksXG4gICAgICBwYWlyd2lzZSgpXG4gICAgKVxuICAgIC5zdWJzY3JpYmUoKFtwcmV2aW91cywgY3VycmVudF06IFtTY3JvbGwsIFNjcm9sbF0pID0+IHtcbiAgICAgIGlmIChjdXJyZW50LnBvc2l0aW9uKSB7XG4gICAgICAgIC8vIEJhY2t3YXJkIG5hdmlnYXRpb25cbiAgICAgICAgdmlld3BvcnRTY3JvbGxlci5zY3JvbGxUb1Bvc2l0aW9uKGN1cnJlbnQucG9zaXRpb24pXG4gICAgICB9IGVsc2UgaWYgKGN1cnJlbnQuYW5jaG9yKSB7XG4gICAgICAgIC8vIEFuY2hvciBuYXZpZ2F0aW9uXG4gICAgICAgIHZpZXdwb3J0U2Nyb2xsZXIuc2Nyb2xsVG9BbmNob3IoY3VycmVudC5hbmNob3IpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBDaGVjayBpZiByb3V0ZXMgbWF0Y2gsIG9yIGlmIGl0IGlzIG9ubHkgYSBxdWVyeSBwYXJhbSBjaGFuZ2VcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHByZXZpb3VzLnJvdXRlckV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCAmJlxuICAgICAgICAgIGN1cnJlbnQucm91dGVyRXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kICYmXG4gICAgICAgICAgZ2V0QmFzZVJvdXRlKHByZXZpb3VzLnJvdXRlckV2ZW50LnVybEFmdGVyUmVkaXJlY3RzKSAhPT1cbiAgICAgICAgICAgIGdldEJhc2VSb3V0ZShjdXJyZW50LnJvdXRlckV2ZW50LnVybEFmdGVyUmVkaXJlY3RzKVxuICAgICAgICApIHtcbiAgICAgICAgICAvLyBSb3V0ZXMgZG9uJ3QgbWF0Y2gsIHRoaXMgaXMgYWN0dWFsIGZvcndhcmQgbmF2aWdhdGlvblxuICAgICAgICAgIC8vIERlZmF1bHQgYmVoYXZpb3I6IHNjcm9sbCB0byB0b3BcbiAgICAgICAgICB2aWV3cG9ydFNjcm9sbGVyLnNjcm9sbFRvUG9zaXRpb24oWzAsIDBdKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbn1cblxuZnVuY3Rpb24gZ2V0QmFzZVJvdXRlKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gcmV0dXJuIHVybCB3aXRob3V0IHF1ZXJ5IHBhcmFtc1xuICByZXR1cm4gdXJsLnNwbGl0KCc/JylbMF1cbn1cbiJdfQ==
@@ -3,7 +3,7 @@
3
3
  "Add Layer As": "",
4
4
  "Enter to search": "",
5
5
  "button.login": "",
6
- "catalog.figures.datasets": "{count, plural, =0{Datensätze} one{Datensatz} other{Datensätze}}",
6
+ "catalog.figures.datasets": "{count, plural, =0{Ressource} one{Ressource} other{Ressourcen}}",
7
7
  "catalog.figures.organizations": "{count, plural, =0{Organisationen} one{Organisation} other{Organisationen}}",
8
8
  "chart.aggregation.average": "Durchschnitt",
9
9
  "chart.aggregation.count": "Anzahl",
@@ -221,11 +221,33 @@
221
221
  "editor.record.form.section.geographicalCoverage.label": "",
222
222
  "editor.record.form.section.metadataPointOfContact.description": "",
223
223
  "editor.record.form.section.metadataPointOfContact.label": "",
224
+ "editor.record.form.section.topics.description": "",
225
+ "editor.record.form.section.topics.label": "",
224
226
  "editor.record.form.section.useAndAccessConditions.label": "",
225
227
  "editor.record.form.temporalExtents.addDate": "Zeitpunkt",
226
228
  "editor.record.form.temporalExtents.addRange": "Zeitraum",
227
229
  "editor.record.form.temporalExtents.date": "Datum",
228
230
  "editor.record.form.temporalExtents.range": "Datumsbereich",
231
+ "editor.record.form.topics.inspire.biota": "",
232
+ "editor.record.form.topics.inspire.boundaries": "",
233
+ "editor.record.form.topics.inspire.climatology": "",
234
+ "editor.record.form.topics.inspire.economy": "",
235
+ "editor.record.form.topics.inspire.elevation": "",
236
+ "editor.record.form.topics.inspire.environnement": "",
237
+ "editor.record.form.topics.inspire.farming": "",
238
+ "editor.record.form.topics.inspire.geoscientific": "",
239
+ "editor.record.form.topics.inspire.health": "",
240
+ "editor.record.form.topics.inspire.imagery": "",
241
+ "editor.record.form.topics.inspire.intelligence": "",
242
+ "editor.record.form.topics.inspire.location": "",
243
+ "editor.record.form.topics.inspire.oceans": "",
244
+ "editor.record.form.topics.inspire.planning": "",
245
+ "editor.record.form.topics.inspire.society": "",
246
+ "editor.record.form.topics.inspire.structure": "",
247
+ "editor.record.form.topics.inspire.transportation": "",
248
+ "editor.record.form.topics.inspire.utilities": "",
249
+ "editor.record.form.topics.inspire.waters": "",
250
+ "editor.record.form.topics.placeholder": "",
229
251
  "editor.record.form.updateFrequency.planned": "Dieses Dataset wird regelmäßig aktualisiert.",
230
252
  "editor.record.importFromExternalFile.failure.body": "",
231
253
  "editor.record.importFromExternalFile.failure.title": "",
@@ -287,7 +309,8 @@
287
309
  "facets.block.title.tag.default": "Stichwort",
288
310
  "facets.block.title.th_regions_tree.default": "Regionen",
289
311
  "favorite.not.authenticated.tooltip": "<div><a href=' {link} '>Anmelden</a>, um auf diese Funktion zuzugreifen</div>",
290
- "favorite.starToggle.label": "Zu Favoriten hinzufügen",
312
+ "favorite.starToggle.add": "Zu Favoriten hinzufügen",
313
+ "favorite.starToggle.remove": "Aus Favoriten entfernen",
291
314
  "feature.catalog.attribute.code": "Code",
292
315
  "feature.catalog.attribute.definition": "Beschreibung",
293
316
  "feature.catalog.attribute.name": "Name",
@@ -367,10 +390,10 @@
367
390
  "organisations.sortBy.nameDesc": "Name Z → A",
368
391
  "organisations.sortBy.recordCountAsc": "Veröffentlichungen 0 → 9",
369
392
  "organisations.sortBy.recordCountDesc": "Veröffentlichungen 9 → 0",
370
- "organization.details.lastPublishedDatasets": "",
393
+ "organization.details.lastPublishedDatasets": "Zuletzt veröffentlichte Ressourcen",
371
394
  "organization.details.lastPublishedDatasets.searchAllButton": "",
372
395
  "organization.details.mailContact": "",
373
- "organization.header.recordCount": "{count, plural, =0{} one{} other{}}",
396
+ "organization.header.recordCount": "{count, plural, =0{Veröffentlichung} one{Veröffentlichung} other{Veröffentlichungen}}",
374
397
  "pagination.nextPage": "Nächste Seite",
375
398
  "pagination.page": "Seite",
376
399
  "pagination.pageOf": "von",
@@ -390,6 +413,16 @@
390
413
  "record.kind.service": "",
391
414
  "record.metadata.about": "Beschreibung",
392
415
  "record.metadata.api": "API",
416
+ "record.metadata.api.accessServiceProtocol.GPFDL": "",
417
+ "record.metadata.api.accessServiceProtocol.esriRest": "",
418
+ "record.metadata.api.accessServiceProtocol.maplibre-style": "",
419
+ "record.metadata.api.accessServiceProtocol.ogcFeatures": "",
420
+ "record.metadata.api.accessServiceProtocol.other": "",
421
+ "record.metadata.api.accessServiceProtocol.tms": "",
422
+ "record.metadata.api.accessServiceProtocol.wfs": "",
423
+ "record.metadata.api.accessServiceProtocol.wms": "",
424
+ "record.metadata.api.accessServiceProtocol.wmts": "",
425
+ "record.metadata.api.accessServiceProtocol.wps": "",
393
426
  "record.metadata.api.form.closeButton": "Schließen",
394
427
  "record.metadata.api.form.closeForm": "Formular schließen",
395
428
  "record.metadata.api.form.create": "Ihre Anfrage erstellen",
@@ -451,12 +484,12 @@
451
484
  "record.metadata.publication": "Veröffentlichungsdatum",
452
485
  "record.metadata.publications": "{count, plural, =0{Veröffentlichungsdatum} one{Veröffentlichungsdatum} other{Veröffentlichungen}}",
453
486
  "record.metadata.quality": "Metadatenqualität",
487
+ "record.metadata.quality.abstract.failed": "Beschreibung nicht angegeben",
488
+ "record.metadata.quality.abstract.success": "Beschreibung angegeben",
454
489
  "record.metadata.quality.capabilities.failed": "",
455
- "record.metadata.quality.capabilities.success": "",
456
- "record.metadata.quality.contact.failed": "Kontakt nicht angegeben",
457
- "record.metadata.quality.contact.success": "Kontakt angegeben",
458
- "record.metadata.quality.description.failed": "Beschreibung nicht angegeben",
459
- "record.metadata.quality.description.success": "Beschreibung angegeben",
490
+ "record.metadata.quality.capabilities.success": "Kontakt angegeben",
491
+ "record.metadata.quality.contacts.failed": "Kontakt nicht angegeben",
492
+ "record.metadata.quality.contacts.success": "",
460
493
  "record.metadata.quality.details": "Details",
461
494
  "record.metadata.quality.keywords.failed": "Schlagwörter nicht angegeben",
462
495
  "record.metadata.quality.keywords.success": "Schlagwörter angegeben",
@@ -468,8 +501,8 @@
468
501
  "record.metadata.quality.source.success": "",
469
502
  "record.metadata.quality.title.failed": "Titel nicht angegeben",
470
503
  "record.metadata.quality.title.success": "Titel angegeben",
471
- "record.metadata.quality.topic.failed": "Thema nicht angegeben",
472
- "record.metadata.quality.topic.success": "Thema angegeben",
504
+ "record.metadata.quality.topics.failed": "Thema nicht angegeben",
505
+ "record.metadata.quality.topics.success": "Thema angegeben",
473
506
  "record.metadata.quality.updateFrequency.failed": "Aktualisierungsfrequenz nicht angegeben",
474
507
  "record.metadata.quality.updateFrequency.success": "Aktualisierungsfrequenz angegeben",
475
508
  "record.metadata.related": "Entdecken Sie den Katalog",
@@ -490,6 +523,7 @@
490
523
  "record.metadata.usage": "Nutzung und Einschränkungen",
491
524
  "record.metadata.userFeedbacks": "",
492
525
  "record.metadata.userFeedbacks.anonymousUser": "",
526
+ "record.metadata.userFeedbacks.authDisabled": "",
493
527
  "record.metadata.userFeedbacks.newAnswer.buttonTitle": "",
494
528
  "record.metadata.userFeedbacks.newAnswer.placeholder": "",
495
529
  "record.metadata.userFeedbacks.newComment.placeholder": "",
@@ -500,18 +534,18 @@
500
534
  "record.tab.chart": "Diagramm",
501
535
  "record.tab.data": "Tabelle",
502
536
  "record.tab.map": "Karte",
503
- "record.was.created.time": "erstellte diesen Datensatz {time}",
537
+ "record.was.created.time": "erstellte diesen Ressource {time}",
504
538
  "records": "Datensätze",
505
539
  "results.layout.selectOne": "Layout auswählen",
506
- "results.records.hits.displayedOn": "{displayed, plural, =0{Kein Datensatz.} one{1 Datensatz} other{{displayed} Datensätze }} {hits, plural, other{angezeigt von {hits} insgesamt.}}",
540
+ "results.records.hits.displayedOn": "{displayed, plural, =0{Kein Ressource.} one{1 } other{{displayed} }} {hits, plural, other{von insgesamt {hits} angezeigt.}}",
507
541
  "results.records.hits.empty.help.html": "Vorschläge: <ul class='list-disc list-inside'><li>Versuchen Sie es mit anderen Worten</li><li>Beschränken Sie die Suchwörter</li></ul>",
508
- "results.records.hits.found": "{hits, plural, =0{Keine Dokumente entsprechen der angegebenen Suche.} one{1 Datensatz gefunden.} other{{hits} Datensätze gefunden.}}",
542
+ "results.records.hits.found": "{hits, plural, =0{Keine Ressource entsprechen der angegebenen Suche.} one{1 Ressource gefunden.} other{{hits} Ressourcen gefunden.}}",
509
543
  "results.records.hits.selected": "{ amount } ausgewählt",
510
544
  "results.showMore": "Mehr Ergebnisse anzeigen...",
511
545
  "results.sortBy.changeDate": "",
512
546
  "results.sortBy.dateStamp": "Neueste",
513
547
  "results.sortBy.popularity": "Beliebtheit",
514
- "results.sortBy.qualityScore": "Qualitätsbewertung",
548
+ "results.sortBy.qualityScore": "Fertigstellungsanzeige",
515
549
  "results.sortBy.relevancy": "Relevanz",
516
550
  "reuse.metadata.access": "",
517
551
  "search.autocomplete.error": "Vorschläge konnten nicht abgerufen werden:",
@@ -520,7 +554,7 @@
520
554
  "search.error.organizationNotFound": "",
521
555
  "search.error.receivedError": "Ein Fehler ist aufgetreten",
522
556
  "search.error.recordHasnolink": "",
523
- "search.error.recordNotFound": "Der Datensatz mit der Kennung \"{ id }\" konnte nicht gefunden werden.",
557
+ "search.error.recordNotFound": "Die Ressource mit der Kennung \"{ id }\" konnte nicht gefunden werden.",
524
558
  "search.field.any.placeholder": "Suche im katalog ...",
525
559
  "search.field.sortBy": "Sortieren nach:",
526
560
  "search.filter.into.feature.catalog": "",
@@ -547,10 +581,10 @@
547
581
  "search.filters.license.unknown": "Unbekannt oder nicht vorhanden",
548
582
  "search.filters.maximize": "Erweitern",
549
583
  "search.filters.minimize": "Minimieren",
550
- "search.filters.myRecords": "Nur meine Datensätze anzeigen",
551
- "search.filters.myRecordsHelp": "Wenn dies aktiviert ist, werden nur von mir erstellte Datensätze angezeigt; Datensätze, die von anderen erstellt wurden, werden nicht angezeigt.",
584
+ "search.filters.myRecords": "Nur meine Ressourcen anzeigen",
585
+ "search.filters.myRecordsHelp": "Wenn dies aktiviert ist, werden nur von mir erstellte Ressourcen angezeigt; Ressourcen, die von anderen erstellt wurden, werden nicht angezeigt.",
552
586
  "search.filters.organization": "",
553
- "search.filters.otherRecords": "Datensätze von einer anderen Person anzeigen",
587
+ "search.filters.otherRecords": "Ressourcen von einer anderen Person anzeigen",
554
588
  "search.filters.producerOrg": "",
555
589
  "search.filters.publicationYear": "Veröffentlichungsjahr",
556
590
  "search.filters.publisherOrg": "",
@@ -565,8 +599,8 @@
565
599
  "search.filters.summaryLabel.user": "Geändert von: ",
566
600
  "search.filters.title": "Ergebnisse filtern",
567
601
  "search.filters.topic": "Themen",
568
- "search.filters.useSpatialFilter": "Zuerst Datensätze im Interessenbereich anzeigen",
569
- "search.filters.useSpatialFilterHelp": "Wenn diese Option aktiviert ist, werden Datensätze im Bereich des Katalogs zuerst angezeigt. Datensätze außerhalb dieses Bereichs werden nicht angezeigt.",
602
+ "search.filters.useSpatialFilter": "Zuerst Ressourcen im Interessenbereich anzeigen",
603
+ "search.filters.useSpatialFilterHelp": "Wenn diese Option aktiviert ist, werden Ressourcen im Bereich des Katalogs zuerst angezeigt. Ressourcen außerhalb dieses Bereichs werden nicht angezeigt.",
570
604
  "search.filters.user": "Editor",
571
605
  "service.metadata.capabilities": "",
572
606
  "service.metadata.capabilities.abstract": "",