geonetwork-ui 2.6.0-dev.f073bbb4e → 2.7.0-dev.0d8b7bca9

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 (862) hide show
  1. package/README.md +2 -3
  2. package/esm2022/libs/api/metadata-converter/src/index.mjs +2 -1
  3. package/esm2022/libs/api/metadata-converter/src/lib/base.converter.mjs +1 -1
  4. package/esm2022/libs/api/metadata-converter/src/lib/common/distribution.mapper.mjs +3 -1
  5. package/esm2022/libs/api/metadata-converter/src/lib/common/resource-types.mjs +17 -15
  6. package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.mjs +11 -2
  7. package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.mjs +3 -3
  8. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +59 -15
  9. package/esm2022/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.mjs +3 -3
  10. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
  11. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +6 -6
  12. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +3 -3
  13. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +14 -6
  14. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +7 -7
  15. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +8 -8
  16. package/esm2022/libs/api/metadata-converter/src/lib/translate-utils.mjs +17 -0
  17. package/esm2022/libs/api/repository/src/lib/gn4/auth/auth.service.mjs +4 -4
  18. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/constant.mjs +5 -2
  19. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +21 -27
  20. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +79 -16
  21. package/esm2022/libs/api/repository/src/lib/gn4/gn4.provider.mjs +7 -1
  22. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.mjs +8 -8
  23. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +14 -11
  24. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +81 -46
  25. package/esm2022/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.mjs +2 -1
  26. package/esm2022/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.mjs +1 -1
  27. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  28. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  29. package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
  30. package/esm2022/libs/feature/catalog/src/lib/feature-catalog.module.mjs +7 -31
  31. package/esm2022/libs/feature/catalog/src/lib/sources/sources.service.mjs +9 -8
  32. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +59 -11
  33. package/esm2022/libs/feature/dataviz/src/lib/figure/figure-container/figure-container.component.mjs +4 -5
  34. package/esm2022/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.mjs +2 -2
  35. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +42 -3
  36. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +31 -8
  37. package/esm2022/libs/feature/editor/src/index.mjs +2 -4
  38. package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +2 -1
  39. package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +13 -7
  40. package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +4 -1
  41. package/esm2022/libs/feature/editor/src/lib/+state/editor.reducer.mjs +5 -1
  42. package/esm2022/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.mjs +5 -7
  43. package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +8 -13
  44. package/esm2022/libs/feature/editor/src/lib/components/import-record/import-record.component.mjs +5 -6
  45. package/esm2022/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.mjs +275 -0
  46. package/esm2022/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.mjs +5 -15
  47. package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +5 -5
  48. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints/form-field-constraints.component.mjs +5 -8
  49. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints-shortcuts/form-field-constraints-shortcuts.component.mjs +4 -5
  50. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.mjs +6 -10
  51. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +9 -14
  52. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.mjs +4 -15
  53. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.mjs +4 -4
  54. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.mjs +4 -4
  55. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +4 -4
  56. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +7 -7
  57. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.mjs +4 -4
  58. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +4 -4
  59. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +6 -17
  60. package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +4 -5
  61. package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +12 -30
  62. package/esm2022/libs/feature/editor/src/lib/models/index.mjs +1 -3
  63. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +5 -6
  64. package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs +11 -8
  65. package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +11 -8
  66. package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +11 -6
  67. package/esm2022/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.mjs +10 -5
  68. package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +3 -36
  69. package/esm2022/libs/feature/map/src/lib/geocoding/geocoding.component.mjs +5 -11
  70. package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +6 -6
  71. package/esm2022/libs/feature/record/src/index.mjs +2 -4
  72. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +50 -26
  73. package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +10 -15
  74. package/esm2022/libs/feature/record/src/lib/data-view-share/data-view-share.component.mjs +5 -6
  75. package/esm2022/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.mjs +12 -17
  76. package/esm2022/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.mjs +7 -4
  77. package/esm2022/libs/feature/record/src/lib/feature-record.module.mjs +8 -22
  78. package/esm2022/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.mjs +5 -5
  79. package/esm2022/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.mjs +15 -7
  80. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +151 -24
  81. package/esm2022/libs/feature/record/src/lib/record-meta/record-meta.component.mjs +1 -1
  82. package/esm2022/libs/feature/record/src/lib/state/mdview.actions.mjs +3 -1
  83. package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +16 -5
  84. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +13 -15
  85. package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +7 -1
  86. package/esm2022/libs/feature/record/src/lib/state/mdview.selectors.mjs +3 -1
  87. package/esm2022/libs/feature/router/src/lib/default/constants.mjs +3 -1
  88. package/esm2022/libs/feature/router/src/lib/default/router.config.mjs +1 -1
  89. package/esm2022/libs/feature/router/src/lib/default/router.service.mjs +10 -2
  90. package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +9 -3
  91. package/esm2022/libs/feature/search/src/index.mjs +2 -2
  92. package/esm2022/libs/feature/search/src/lib/constants.mjs +4 -2
  93. package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +12 -8
  94. package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +33 -42
  95. package/esm2022/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.mjs +3 -3
  96. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +8 -6
  97. package/esm2022/libs/feature/search/src/lib/record-url.token.mjs +4 -2
  98. package/esm2022/libs/feature/search/src/lib/results-hits/results-hits.container.component.mjs +44 -0
  99. package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +35 -15
  100. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +13 -10
  101. package/esm2022/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.mjs +5 -7
  102. package/esm2022/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.mjs +4 -4
  103. package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +74 -4
  104. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +4 -3
  105. package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +3 -3
  106. package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +4 -5
  107. package/esm2022/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.mjs +4 -5
  108. package/esm2022/libs/ui/catalog/src/lib/organisations-result/organisations-result.component.mjs +4 -5
  109. package/esm2022/libs/ui/dataviz/src/index.mjs +1 -2
  110. package/esm2022/libs/ui/dataviz/src/lib/chart/chart.component.mjs +5 -3
  111. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.component.mjs +14 -8
  112. package/esm2022/libs/ui/dataviz/src/lib/figure/figure.component.mjs +5 -5
  113. package/esm2022/libs/ui/elements/src/index.mjs +7 -4
  114. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +7 -7
  115. package/esm2022/libs/ui/elements/src/lib/application-banner/application-banner.component.mjs +5 -5
  116. package/esm2022/libs/ui/elements/src/lib/avatar/avatar.component.mjs +4 -3
  117. package/esm2022/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.mjs +5 -3
  118. package/esm2022/libs/ui/elements/src/lib/download-item/download-item.component.mjs +5 -6
  119. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +20 -9
  120. package/esm2022/libs/ui/elements/src/lib/error/error.component.mjs +4 -5
  121. package/esm2022/libs/ui/elements/src/lib/external-link-card/external-link-card.component.mjs +59 -0
  122. package/esm2022/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.mjs +54 -0
  123. package/esm2022/libs/ui/elements/src/lib/image-input/image-input.component.mjs +4 -5
  124. package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +3 -3
  125. package/esm2022/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.mjs +89 -0
  126. package/esm2022/libs/ui/elements/src/lib/kind-badge/kind-badge.component.mjs +70 -0
  127. package/esm2022/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.mjs +3 -6
  128. package/esm2022/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.mjs +4 -5
  129. package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +5 -6
  130. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +10 -8
  131. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +40 -17
  132. package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +8 -5
  133. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +9 -6
  134. package/esm2022/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.mjs +70 -0
  135. package/esm2022/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.mjs +170 -0
  136. package/esm2022/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.mjs +4 -5
  137. package/esm2022/libs/ui/elements/src/lib/user-preview/user-preview.component.mjs +5 -4
  138. package/esm2022/libs/ui/inputs/src/index.mjs +3 -3
  139. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +10 -13
  140. package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +2 -2
  141. package/esm2022/libs/ui/inputs/src/lib/checkbox/checkbox.component.mjs +4 -3
  142. package/esm2022/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.mjs +7 -6
  143. package/esm2022/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.mjs +29 -7
  144. package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +5 -6
  145. package/esm2022/libs/ui/inputs/src/lib/file-input/file-input.component.mjs +5 -7
  146. package/esm2022/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.mjs +43 -0
  147. package/esm2022/libs/ui/inputs/src/lib/inline-filter/inline-filter.model.mjs +2 -0
  148. package/esm2022/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.mjs +73 -0
  149. package/esm2022/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.mjs +8 -3
  150. package/esm2022/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.mjs +4 -5
  151. package/esm2022/libs/ui/inputs/src/lib/viewport-intersector/viewport-intersector.component.mjs +3 -3
  152. package/esm2022/libs/ui/layout/src/index.mjs +3 -2
  153. package/esm2022/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.mjs +44 -3
  154. package/esm2022/libs/ui/layout/src/lib/block-list/block-list.component.mjs +61 -14
  155. package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +3 -3
  156. package/esm2022/libs/ui/layout/src/lib/cell-popin/cell-popin.component.mjs +110 -0
  157. package/esm2022/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.mjs +34 -13
  158. package/esm2022/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.mjs +4 -5
  159. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +26 -5
  160. package/esm2022/libs/ui/layout/src/lib/max-lines/max-lines.component.mjs +4 -5
  161. package/esm2022/libs/ui/layout/src/lib/pagination/pagination.component.mjs +4 -5
  162. package/esm2022/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.mjs +6 -6
  163. package/esm2022/libs/ui/layout/src/lib/sticky-header/sticky-header.component.mjs +4 -3
  164. package/esm2022/libs/ui/layout/src/lib/truncated-text/truncated-text.component.mjs +71 -0
  165. package/esm2022/libs/ui/map/src/index.mjs +2 -1
  166. package/esm2022/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.mjs +29 -4
  167. package/esm2022/libs/ui/map/src/lib/components/map-container/map-container.component.mjs +4 -5
  168. package/esm2022/libs/ui/map/src/lib/components/map-legend/map-legend.component.mjs +2 -2
  169. package/esm2022/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.mjs +80 -0
  170. package/esm2022/libs/ui/search/src/index.mjs +3 -1
  171. package/esm2022/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.mjs +6 -6
  172. package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +17 -10
  173. package/esm2022/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.mjs +3 -3
  174. package/esm2022/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.mjs +53 -0
  175. package/esm2022/libs/ui/search/src/lib/results-list/results-layout.config.mjs +2 -2
  176. package/esm2022/libs/ui/search/src/lib/results-list/results-list.component.mjs +3 -3
  177. package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +24 -17
  178. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +45 -20
  179. package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +39 -26
  180. package/esm2022/libs/ui/widgets/src/index.mjs +1 -2
  181. package/esm2022/libs/ui/widgets/src/lib/color-scale/color-scale.component.mjs +3 -3
  182. package/esm2022/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.mjs +3 -3
  183. package/esm2022/libs/util/app-config/src/lib/app-config.mjs +6 -3
  184. package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +3 -1
  185. package/esm2022/libs/util/app-config/src/lib/model.mjs +1 -1
  186. package/esm2022/libs/util/i18n/src/index.mjs +2 -3
  187. package/esm2022/libs/util/i18n/src/lib/embedded.translate.loader.mjs +3 -2
  188. package/esm2022/libs/util/i18n/src/lib/i18n.constants.mjs +36 -28
  189. package/esm2022/libs/util/i18n/src/lib/i18n.interceptor.mjs +10 -9
  190. package/esm2022/libs/util/i18n/src/lib/i18n.providers.mjs +41 -0
  191. package/esm2022/libs/util/i18n/src/lib/language-codes.mjs +63 -3
  192. package/esm2022/libs/util/shared/src/index.mjs +3 -2
  193. package/esm2022/libs/util/shared/src/lib/gn-ui-version.mjs +6 -0
  194. package/esm2022/libs/util/shared/src/lib/image-fallback.directive.mjs +3 -2
  195. package/esm2022/libs/util/shared/src/lib/links/link-classifier.service.mjs +5 -1
  196. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +24 -6
  197. package/esm2022/libs/util/shared/src/lib/record.util.mjs +56 -0
  198. package/esm2022/translations/de.json +91 -24
  199. package/esm2022/translations/en.json +91 -24
  200. package/esm2022/translations/es.json +90 -23
  201. package/esm2022/translations/fr.json +92 -25
  202. package/esm2022/translations/it.json +90 -24
  203. package/esm2022/translations/nl.json +90 -23
  204. package/esm2022/translations/pt.json +90 -23
  205. package/esm2022/translations/sk.json +608 -0
  206. package/fesm2022/geonetwork-ui.mjs +11089 -8767
  207. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  208. package/libs/api/metadata-converter/src/index.d.ts +1 -0
  209. package/libs/api/metadata-converter/src/index.d.ts.map +1 -1
  210. package/libs/api/metadata-converter/src/lib/base.converter.d.ts.map +1 -1
  211. package/libs/api/metadata-converter/src/lib/common/distribution.mapper.d.ts.map +1 -1
  212. package/libs/api/metadata-converter/src/lib/common/resource-types.d.ts +21 -0
  213. package/libs/api/metadata-converter/src/lib/common/resource-types.d.ts.map +1 -1
  214. package/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.d.ts.map +1 -1
  215. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +4 -4
  216. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  217. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +0 -1
  218. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
  219. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts +1 -0
  220. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts.map +1 -1
  221. package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -1
  222. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  223. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  224. package/libs/api/metadata-converter/src/lib/translate-utils.d.ts +2 -0
  225. package/libs/api/metadata-converter/src/lib/translate-utils.d.ts.map +1 -0
  226. package/libs/api/repository/src/lib/gn4/auth/auth.service.d.ts.map +1 -1
  227. package/libs/api/repository/src/lib/gn4/elasticsearch/constant.d.ts.map +1 -1
  228. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +9 -7
  229. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  230. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +14 -3
  231. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  232. package/libs/api/repository/src/lib/gn4/gn4.provider.d.ts.map +1 -1
  233. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.d.ts +1 -0
  234. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.d.ts.map +1 -1
  235. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.d.ts +4 -4
  236. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.d.ts.map +1 -1
  237. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +9 -4
  238. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  239. package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts +1 -0
  240. package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts.map +1 -1
  241. package/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.d.ts +8 -1
  242. package/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.d.ts.map +1 -1
  243. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +26 -17
  244. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  245. package/libs/common/domain/src/lib/platform.service.interface.d.ts +2 -1
  246. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  247. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +7 -1
  248. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  249. package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts +4 -8
  250. package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts.map +1 -1
  251. package/libs/feature/catalog/src/lib/sources/sources.service.d.ts +3 -3
  252. package/libs/feature/catalog/src/lib/sources/sources.service.d.ts.map +1 -1
  253. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +14 -9
  254. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  255. package/libs/feature/dataviz/src/lib/figure/figure-container/figure-container.component.d.ts.map +1 -1
  256. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +3 -0
  257. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  258. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +6 -3
  259. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  260. package/libs/feature/editor/src/index.d.ts +1 -3
  261. package/libs/feature/editor/src/index.d.ts.map +1 -1
  262. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +8 -1
  263. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -1
  264. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +10 -12
  265. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -1
  266. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +2 -1
  267. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -1
  268. package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts.map +1 -1
  269. package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts +1 -1
  270. package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts.map +1 -1
  271. package/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.d.ts.map +1 -1
  272. package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts.map +1 -1
  273. package/libs/feature/editor/src/lib/components/import-record/import-record.component.d.ts.map +1 -1
  274. package/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.d.ts +52 -0
  275. package/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.d.ts.map +1 -0
  276. package/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.d.ts.map +1 -1
  277. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts +6 -6
  278. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts.map +1 -1
  279. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints/form-field-constraints.component.d.ts.map +1 -1
  280. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.d.ts.map +1 -1
  281. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts.map +1 -1
  282. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts.map +1 -1
  283. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.d.ts.map +1 -1
  284. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts.map +1 -1
  285. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts.map +1 -1
  286. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts.map +1 -1
  287. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.d.ts.map +1 -1
  288. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts.map +1 -1
  289. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  290. package/libs/feature/editor/src/lib/feature-editor.module.d.ts +10 -17
  291. package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
  292. package/libs/feature/editor/src/lib/models/index.d.ts +0 -2
  293. package/libs/feature/editor/src/lib/models/index.d.ts.map +1 -1
  294. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.d.ts.map +1 -1
  295. package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts.map +1 -1
  296. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts.map +1 -1
  297. package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts.map +1 -1
  298. package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts.map +1 -1
  299. package/libs/feature/map/src/lib/feature-map.module.d.ts +2 -11
  300. package/libs/feature/map/src/lib/feature-map.module.d.ts.map +1 -1
  301. package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts.map +1 -1
  302. package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts.map +1 -1
  303. package/libs/feature/record/src/index.d.ts +1 -3
  304. package/libs/feature/record/src/index.d.ts.map +1 -1
  305. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +23 -7
  306. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  307. package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts +2 -3
  308. package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts.map +1 -1
  309. package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts +1 -2
  310. package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts.map +1 -1
  311. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts +2 -1
  312. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts.map +1 -1
  313. package/libs/feature/record/src/lib/feature-record.module.d.ts +8 -12
  314. package/libs/feature/record/src/lib/feature-record.module.d.ts.map +1 -1
  315. package/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.d.ts.map +1 -1
  316. package/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.d.ts.map +1 -1
  317. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +22 -8
  318. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  319. package/libs/feature/record/src/lib/record-meta/record-meta.component.d.ts +2 -2
  320. package/libs/feature/record/src/lib/state/mdview.actions.d.ts +13 -3
  321. package/libs/feature/record/src/lib/state/mdview.actions.d.ts.map +1 -1
  322. package/libs/feature/record/src/lib/state/mdview.effects.d.ts +9 -1
  323. package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
  324. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +30 -23
  325. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  326. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts +4 -2
  327. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts.map +1 -1
  328. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts +3 -1
  329. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts.map +1 -1
  330. package/libs/feature/router/src/lib/default/constants.d.ts +2 -0
  331. package/libs/feature/router/src/lib/default/constants.d.ts.map +1 -1
  332. package/libs/feature/router/src/lib/default/router.config.d.ts +2 -0
  333. package/libs/feature/router/src/lib/default/router.config.d.ts.map +1 -1
  334. package/libs/feature/router/src/lib/default/router.service.d.ts.map +1 -1
  335. package/libs/feature/router/src/lib/default/state/router.facade.d.ts +5 -0
  336. package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
  337. package/libs/feature/search/src/index.d.ts +1 -1
  338. package/libs/feature/search/src/index.d.ts.map +1 -1
  339. package/libs/feature/search/src/lib/constants.d.ts.map +1 -1
  340. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts +2 -1
  341. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts.map +1 -1
  342. package/libs/feature/search/src/lib/feature-search.module.d.ts +24 -22
  343. package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
  344. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +2 -1
  345. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
  346. package/libs/feature/search/src/lib/record-url.token.d.ts +3 -1
  347. package/libs/feature/search/src/lib/record-url.token.d.ts.map +1 -1
  348. package/libs/feature/search/src/lib/results-hits/results-hits.container.component.d.ts +22 -0
  349. package/libs/feature/search/src/lib/results-hits/results-hits.container.component.d.ts.map +1 -0
  350. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts +5 -3
  351. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts.map +1 -1
  352. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +6 -5
  353. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
  354. package/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.d.ts +1 -2
  355. package/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.d.ts.map +1 -1
  356. package/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.d.ts.map +1 -1
  357. package/libs/feature/search/src/lib/utils/service/fields.d.ts +22 -2
  358. package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
  359. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  360. package/libs/ui/dataviz/src/index.d.ts +0 -1
  361. package/libs/ui/dataviz/src/index.d.ts.map +1 -1
  362. package/libs/ui/dataviz/src/lib/chart/chart.component.d.ts +2 -1
  363. package/libs/ui/dataviz/src/lib/chart/chart.component.d.ts.map +1 -1
  364. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts +6 -1
  365. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts.map +1 -1
  366. package/libs/ui/dataviz/src/lib/figure/figure.component.d.ts +1 -1
  367. package/libs/ui/dataviz/src/lib/figure/figure.component.d.ts.map +1 -1
  368. package/libs/ui/elements/src/index.d.ts +6 -3
  369. package/libs/ui/elements/src/index.d.ts.map +1 -1
  370. package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts.map +1 -1
  371. package/libs/ui/elements/src/lib/avatar/avatar.component.d.ts +1 -1
  372. package/libs/ui/elements/src/lib/avatar/avatar.component.d.ts.map +1 -1
  373. package/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.d.ts +2 -0
  374. package/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.d.ts.map +1 -1
  375. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts +1 -1
  376. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts.map +1 -1
  377. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +7 -1
  378. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
  379. package/libs/ui/elements/src/lib/{link-card/link-card.component.d.ts → external-link-card/external-link-card.component.d.ts} +5 -5
  380. package/libs/ui/elements/src/lib/external-link-card/external-link-card.component.d.ts.map +1 -0
  381. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts +15 -0
  382. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts.map +1 -0
  383. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts +30 -0
  384. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -0
  385. package/libs/ui/elements/src/lib/kind-badge/kind-badge.component.d.ts +14 -0
  386. package/libs/ui/elements/src/lib/kind-badge/kind-badge.component.d.ts.map +1 -0
  387. package/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.d.ts.map +1 -1
  388. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +2 -2
  389. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
  390. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +3 -0
  391. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  392. package/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.d.ts.map +1 -1
  393. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  394. package/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.d.ts +27 -0
  395. package/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.d.ts.map +1 -0
  396. package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts +31 -0
  397. package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts.map +1 -0
  398. package/libs/ui/elements/src/lib/user-preview/user-preview.component.d.ts +1 -1
  399. package/libs/ui/elements/src/lib/user-preview/user-preview.component.d.ts.map +1 -1
  400. package/libs/ui/inputs/src/index.d.ts +2 -2
  401. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  402. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts +1 -2
  403. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
  404. package/libs/ui/inputs/src/lib/button/button.component.d.ts +1 -1
  405. package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
  406. package/libs/ui/inputs/src/lib/checkbox/checkbox.component.d.ts +1 -1
  407. package/libs/ui/inputs/src/lib/checkbox/checkbox.component.d.ts.map +1 -1
  408. package/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.d.ts +1 -1
  409. package/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.d.ts.map +1 -1
  410. package/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.d.ts +1 -1
  411. package/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.d.ts.map +1 -1
  412. package/libs/ui/inputs/src/lib/file-input/file-input.component.d.ts.map +1 -1
  413. package/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.d.ts +14 -0
  414. package/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.d.ts.map +1 -0
  415. package/libs/ui/inputs/src/lib/inline-filter/inline-filter.model.d.ts +6 -0
  416. package/libs/ui/inputs/src/lib/inline-filter/inline-filter.model.d.ts.map +1 -0
  417. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts +17 -0
  418. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts.map +1 -0
  419. package/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.d.ts +2 -1
  420. package/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.d.ts.map +1 -1
  421. package/libs/ui/inputs/src/lib/viewport-intersector/viewport-intersector.component.d.ts +1 -1
  422. package/libs/ui/inputs/src/lib/viewport-intersector/viewport-intersector.component.d.ts.map +1 -1
  423. package/libs/ui/layout/src/index.d.ts +2 -1
  424. package/libs/ui/layout/src/index.d.ts.map +1 -1
  425. package/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.d.ts +10 -3
  426. package/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.d.ts.map +1 -1
  427. package/libs/ui/layout/src/lib/block-list/block-list.component.d.ts +11 -3
  428. package/libs/ui/layout/src/lib/block-list/block-list.component.d.ts.map +1 -1
  429. package/libs/ui/layout/src/lib/cell-popin/cell-popin.component.d.ts +28 -0
  430. package/libs/ui/layout/src/lib/cell-popin/cell-popin.component.d.ts.map +1 -0
  431. package/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.d.ts +15 -8
  432. package/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.d.ts.map +1 -1
  433. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts +5 -1
  434. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -1
  435. package/libs/ui/layout/src/lib/sticky-header/sticky-header.component.d.ts +1 -1
  436. package/libs/ui/layout/src/lib/sticky-header/sticky-header.component.d.ts.map +1 -1
  437. package/libs/ui/layout/src/lib/truncated-text/truncated-text.component.d.ts +22 -0
  438. package/libs/ui/layout/src/lib/truncated-text/truncated-text.component.d.ts.map +1 -0
  439. package/libs/ui/map/src/index.d.ts +1 -0
  440. package/libs/ui/map/src/index.d.ts.map +1 -1
  441. package/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.d.ts +6 -2
  442. package/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.d.ts.map +1 -1
  443. package/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.d.ts +15 -0
  444. package/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.d.ts.map +1 -0
  445. package/libs/ui/search/src/index.d.ts +2 -0
  446. package/libs/ui/search/src/index.d.ts.map +1 -1
  447. package/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.d.ts +2 -0
  448. package/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.d.ts.map +1 -1
  449. package/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.d.ts +17 -0
  450. package/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.d.ts.map +1 -0
  451. package/libs/ui/search/src/lib/results-list/results-list.component.d.ts.map +1 -1
  452. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +4 -3
  453. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -1
  454. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +10 -4
  455. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  456. package/libs/ui/search/src/lib/ui-search.module.d.ts +22 -19
  457. package/libs/ui/search/src/lib/ui-search.module.d.ts.map +1 -1
  458. package/libs/ui/widgets/src/index.d.ts +0 -1
  459. package/libs/ui/widgets/src/index.d.ts.map +1 -1
  460. package/libs/ui/widgets/src/lib/color-scale/color-scale.component.d.ts +1 -1
  461. package/libs/ui/widgets/src/lib/color-scale/color-scale.component.d.ts.map +1 -1
  462. package/libs/util/app-config/src/lib/app-config.d.ts +0 -1
  463. package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
  464. package/libs/util/app-config/src/lib/fixtures.d.ts.map +1 -1
  465. package/libs/util/app-config/src/lib/model.d.ts +2 -0
  466. package/libs/util/app-config/src/lib/model.d.ts.map +1 -1
  467. package/libs/util/i18n/src/index.d.ts +1 -2
  468. package/libs/util/i18n/src/index.d.ts.map +1 -1
  469. package/libs/util/i18n/src/lib/embedded.translate.loader.d.ts +1 -1
  470. package/libs/util/i18n/src/lib/embedded.translate.loader.d.ts.map +1 -1
  471. package/libs/util/i18n/src/lib/i18n.constants.d.ts +6 -15
  472. package/libs/util/i18n/src/lib/i18n.constants.d.ts.map +1 -1
  473. package/libs/util/i18n/src/lib/i18n.interceptor.d.ts +5 -5
  474. package/libs/util/i18n/src/lib/i18n.interceptor.d.ts.map +1 -1
  475. package/libs/util/i18n/src/lib/i18n.providers.d.ts +4 -0
  476. package/libs/util/i18n/src/lib/i18n.providers.d.ts.map +1 -0
  477. package/libs/util/i18n/src/lib/language-codes.d.ts +15 -19
  478. package/libs/util/i18n/src/lib/language-codes.d.ts.map +1 -1
  479. package/libs/util/shared/src/index.d.ts +2 -1
  480. package/libs/util/shared/src/index.d.ts.map +1 -1
  481. package/libs/util/shared/src/lib/gn-ui-version.d.ts +3 -0
  482. package/libs/util/shared/src/lib/gn-ui-version.d.ts.map +1 -0
  483. package/libs/util/shared/src/lib/image-fallback.directive.d.ts +1 -1
  484. package/libs/util/shared/src/lib/image-fallback.directive.d.ts.map +1 -1
  485. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts +3 -3
  486. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts.map +1 -1
  487. package/libs/util/shared/src/lib/links/link-utils.d.ts +15 -7
  488. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  489. package/libs/util/shared/src/lib/record.util.d.ts +3 -0
  490. package/libs/util/shared/src/lib/record.util.d.ts.map +1 -0
  491. package/package.json +4 -4
  492. package/src/libs/api/metadata-converter/src/index.ts +1 -0
  493. package/src/libs/api/metadata-converter/src/lib/base.converter.ts +1 -4
  494. package/src/libs/api/metadata-converter/src/lib/common/distribution.mapper.ts +1 -0
  495. package/src/libs/api/metadata-converter/src/lib/common/resource-types.ts +29 -15
  496. package/src/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.ts +10 -1
  497. package/src/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.ts +2 -2
  498. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.service+eaux-usees.ts +2 -2
  499. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +3 -3
  500. package/src/libs/api/metadata-converter/src/lib/fixtures/metadata-for-i18n.records.ts +4240 -0
  501. package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +2 -2
  502. package/src/libs/api/metadata-converter/src/lib/fixtures/wallonie.records.service+napitswallonia.ts +2 -2
  503. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +81 -11
  504. package/src/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.ts +4 -4
  505. package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +0 -1
  506. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +11 -5
  507. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +2 -2
  508. package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +14 -8
  509. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +12 -8
  510. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +8 -7
  511. package/src/libs/api/metadata-converter/src/lib/translate-utils.ts +17 -0
  512. package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +3 -6
  513. package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +4 -1
  514. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +17 -17
  515. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +119 -16
  516. package/src/libs/api/repository/src/lib/gn4/gn4.provider.ts +6 -0
  517. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +8 -7
  518. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +13 -6
  519. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +102 -69
  520. package/src/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.ts +3 -0
  521. package/src/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.ts +10 -1
  522. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +27 -11
  523. package/src/libs/common/domain/src/lib/platform.service.interface.ts +4 -1
  524. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +11 -1
  525. package/src/libs/common/fixtures/src/lib/elasticsearch/metadata-links.fixtures.ts +36 -26
  526. package/src/libs/common/fixtures/src/lib/link.fixtures.ts +16 -2
  527. package/src/libs/common/fixtures/src/lib/record-link.fixtures.ts +5 -5
  528. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +114 -1
  529. package/src/libs/feature/catalog/src/lib/feature-catalog.module.ts +4 -17
  530. package/src/libs/feature/catalog/src/lib/sources/sources.service.ts +7 -3
  531. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.html +12 -9
  532. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +70 -13
  533. package/src/libs/feature/dataviz/src/lib/figure/figure-container/figure-container.component.ts +2 -2
  534. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +49 -1
  535. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.html +1 -0
  536. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +33 -3
  537. package/src/libs/feature/editor/src/index.ts +1 -3
  538. package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +9 -1
  539. package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +23 -12
  540. package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +13 -1
  541. package/src/libs/feature/editor/src/lib/+state/editor.reducer.ts +9 -1
  542. package/src/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.ts +3 -4
  543. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.ts +5 -16
  544. package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.ts +7 -5
  545. package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.html +120 -0
  546. package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.ts +331 -0
  547. package/src/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.ts +3 -12
  548. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +5 -4
  549. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints/form-field-constraints.component.ts +3 -4
  550. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints-shortcuts/form-field-constraints-shortcuts.component.ts +2 -2
  551. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.ts +4 -11
  552. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +6 -9
  553. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.ts +2 -17
  554. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.ts +2 -2
  555. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.ts +2 -2
  556. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.ts +2 -2
  557. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +2 -2
  558. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +2 -2
  559. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +4 -4
  560. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.ts +2 -2
  561. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.ts +2 -2
  562. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +2 -15
  563. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.ts +2 -2
  564. package/src/libs/feature/editor/src/lib/feature-editor.module.ts +4 -17
  565. package/src/libs/feature/editor/src/lib/models/index.ts +0 -2
  566. package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.ts +2 -1
  567. package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.ts +8 -3
  568. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.ts +10 -3
  569. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.ts +8 -2
  570. package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.ts +8 -2
  571. package/src/libs/feature/map/src/lib/feature-map.module.ts +0 -17
  572. package/src/libs/feature/map/src/lib/geocoding/geocoding.component.ts +3 -8
  573. package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.ts +3 -2
  574. package/src/libs/feature/record/src/index.ts +1 -3
  575. package/src/libs/feature/record/src/lib/data-view/data-view.component.html +19 -11
  576. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +56 -30
  577. package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +4 -5
  578. package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.html +1 -1
  579. package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.ts +2 -2
  580. package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts +6 -7
  581. package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.html +2 -2
  582. package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.ts +3 -2
  583. package/src/libs/feature/record/src/lib/feature-record.module.ts +4 -13
  584. package/src/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.ts +4 -3
  585. package/src/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.ts +10 -4
  586. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +43 -13
  587. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +189 -25
  588. package/src/libs/feature/record/src/lib/record-meta/record-meta.component.ts +2 -2
  589. package/src/libs/feature/record/src/lib/state/mdview.actions.ts +12 -2
  590. package/src/libs/feature/record/src/lib/state/mdview.effects.ts +31 -3
  591. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +23 -19
  592. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +14 -2
  593. package/src/libs/feature/record/src/lib/state/mdview.selectors.ts +9 -0
  594. package/src/libs/feature/router/src/lib/default/constants.ts +2 -0
  595. package/src/libs/feature/router/src/lib/default/router.config.ts +2 -0
  596. package/src/libs/feature/router/src/lib/default/router.service.ts +10 -0
  597. package/src/libs/feature/router/src/lib/default/state/router.facade.ts +10 -1
  598. package/src/libs/feature/search/src/index.ts +1 -1
  599. package/src/libs/feature/search/src/lib/constants.ts +3 -1
  600. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.html +2 -7
  601. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +16 -7
  602. package/src/libs/feature/search/src/lib/feature-search.module.ts +17 -23
  603. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.html +1 -1
  604. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +5 -0
  605. package/src/libs/feature/search/src/lib/record-url.token.ts +10 -1
  606. package/src/libs/feature/search/src/lib/results-hits/results-hits.container.component.html +17 -0
  607. package/src/libs/feature/search/src/lib/results-hits/results-hits.container.component.ts +60 -0
  608. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.css +6 -0
  609. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.html +1 -0
  610. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +26 -5
  611. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +1 -0
  612. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +13 -3
  613. package/src/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.ts +10 -4
  614. package/src/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.ts +2 -2
  615. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +4 -5
  616. package/src/libs/feature/search/src/lib/utils/service/fields.ts +103 -3
  617. package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.html +1 -1
  618. package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.ts +2 -2
  619. package/src/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.ts +2 -2
  620. package/src/libs/ui/catalog/src/lib/organisations-result/organisations-result.component.ts +2 -2
  621. package/src/libs/ui/dataviz/src/index.ts +0 -1
  622. package/src/libs/ui/dataviz/src/lib/chart/chart.component.ts +2 -1
  623. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.html +6 -3
  624. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.ts +12 -6
  625. package/src/libs/ui/dataviz/src/lib/figure/figure.component.html +0 -1
  626. package/src/libs/ui/dataviz/src/lib/figure/figure.component.ts +4 -0
  627. package/src/libs/ui/elements/src/index.ts +6 -3
  628. package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +4 -4
  629. package/src/libs/ui/elements/src/lib/api-card/api-card.component.ts +3 -2
  630. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.html +6 -6
  631. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.ts +2 -2
  632. package/src/libs/ui/elements/src/lib/avatar/avatar.component.ts +3 -0
  633. package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.html +6 -2
  634. package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.ts +5 -1
  635. package/src/libs/ui/elements/src/lib/download-item/download-item.component.html +8 -5
  636. package/src/libs/ui/elements/src/lib/download-item/download-item.component.ts +4 -4
  637. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +42 -11
  638. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +28 -4
  639. package/src/libs/ui/elements/src/lib/error/error.component.ts +2 -2
  640. package/src/libs/ui/elements/src/lib/{link-card/link-card.component.html → external-link-card/external-link-card.component.html} +5 -2
  641. package/src/libs/ui/elements/src/lib/{link-card/link-card.component.ts → external-link-card/external-link-card.component.ts} +9 -13
  642. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.css +4 -0
  643. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.html +13 -0
  644. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.ts +54 -0
  645. package/src/libs/ui/elements/src/lib/image-input/image-input.component.ts +2 -2
  646. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.html +1 -1
  647. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +87 -0
  648. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.scss +115 -0
  649. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +98 -0
  650. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.css +6 -0
  651. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.html +15 -0
  652. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.ts +72 -0
  653. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.ts +1 -4
  654. package/src/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.html +3 -5
  655. package/src/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.ts +2 -2
  656. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +12 -9
  657. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.ts +2 -2
  658. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.css +9 -0
  659. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +24 -7
  660. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +11 -6
  661. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +20 -21
  662. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +51 -13
  663. package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.ts +6 -2
  664. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +6 -3
  665. package/src/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.html +107 -0
  666. package/src/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.ts +82 -0
  667. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.css +0 -0
  668. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.html +110 -0
  669. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts +196 -0
  670. package/src/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.ts +2 -2
  671. package/src/libs/ui/elements/src/lib/user-preview/user-preview.component.ts +4 -0
  672. package/src/libs/ui/inputs/src/index.ts +2 -2
  673. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +3 -3
  674. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +6 -9
  675. package/src/libs/ui/inputs/src/lib/button/button.component.ts +2 -2
  676. package/src/libs/ui/inputs/src/lib/checkbox/checkbox.component.ts +3 -0
  677. package/src/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.html +1 -1
  678. package/src/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.ts +4 -0
  679. package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.html +1 -1
  680. package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.ts +27 -0
  681. package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.html +1 -1
  682. package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.ts +2 -2
  683. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.ts +3 -4
  684. package/src/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.html +23 -0
  685. package/src/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.ts +47 -0
  686. package/src/libs/ui/inputs/src/lib/inline-filter/inline-filter.model.ts +5 -0
  687. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.css +0 -0
  688. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.html +43 -0
  689. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.ts +83 -0
  690. package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.css +0 -1
  691. package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.html +11 -8
  692. package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.ts +4 -1
  693. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.ts +2 -2
  694. package/src/libs/ui/inputs/src/lib/viewport-intersector/viewport-intersector.component.ts +1 -0
  695. package/src/libs/ui/layout/src/index.ts +2 -1
  696. package/src/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.ts +47 -2
  697. package/src/libs/ui/layout/src/lib/block-list/block-list.component.css +22 -0
  698. package/src/libs/ui/layout/src/lib/block-list/block-list.component.html +2 -3
  699. package/src/libs/ui/layout/src/lib/block-list/block-list.component.ts +57 -9
  700. package/src/libs/ui/layout/src/lib/carousel/carousel.component.css +0 -1
  701. package/src/libs/ui/layout/src/lib/carousel/carousel.component.html +1 -1
  702. package/src/libs/ui/layout/src/lib/cell-popin/cell-popin.component.html +40 -0
  703. package/src/libs/ui/layout/src/lib/cell-popin/cell-popin.component.ts +141 -0
  704. package/src/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.html +24 -8
  705. package/src/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.ts +36 -10
  706. package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.ts +2 -2
  707. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +4 -7
  708. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +22 -2
  709. package/src/libs/ui/layout/src/lib/max-lines/max-lines.component.html +1 -1
  710. package/src/libs/ui/layout/src/lib/max-lines/max-lines.component.ts +2 -2
  711. package/src/libs/ui/layout/src/lib/pagination/pagination.component.ts +2 -2
  712. package/src/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.html +17 -5
  713. package/src/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.ts +3 -3
  714. package/src/libs/ui/layout/src/lib/sticky-header/sticky-header.component.ts +3 -0
  715. package/src/libs/ui/layout/src/lib/truncated-text/truncated-text.component.html +27 -0
  716. package/src/libs/ui/layout/src/lib/truncated-text/truncated-text.component.ts +84 -0
  717. package/src/libs/ui/map/src/index.ts +1 -0
  718. package/src/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.html +3 -3
  719. package/src/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.ts +27 -3
  720. package/src/libs/ui/map/src/lib/components/map-container/map-container.component.ts +2 -2
  721. package/src/libs/ui/map/src/lib/components/map-legend/map-legend.component.ts +1 -1
  722. package/src/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.css +0 -0
  723. package/src/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.html +4 -0
  724. package/src/libs/{feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.ts → ui/map/src/lib/components/spatial-extent/spatial-extent.component.ts} +8 -8
  725. package/src/libs/ui/search/src/index.ts +2 -0
  726. package/src/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.html +4 -1
  727. package/src/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.html +9 -81
  728. package/src/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.ts +14 -1
  729. package/src/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.html +1 -1
  730. package/src/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.html +25 -0
  731. package/src/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.ts +53 -0
  732. package/src/libs/ui/search/src/lib/results-list/results-layout.config.ts +2 -2
  733. package/src/libs/ui/search/src/lib/results-list/results-list.component.html +1 -0
  734. package/src/libs/ui/search/src/lib/results-list/results-list.component.ts +0 -1
  735. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +16 -6
  736. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +18 -15
  737. package/src/libs/ui/search/src/lib/results-table/results-table.component.css +4 -0
  738. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +29 -24
  739. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +49 -17
  740. package/src/libs/ui/search/src/lib/ui-search.module.ts +19 -10
  741. package/src/libs/ui/widgets/src/index.ts +0 -1
  742. package/src/libs/ui/widgets/src/lib/color-scale/color-scale.component.ts +1 -0
  743. package/src/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.html +4 -3
  744. package/src/libs/util/app-config/src/lib/app-config.ts +6 -2
  745. package/src/libs/util/app-config/src/lib/fixtures.ts +2 -0
  746. package/src/libs/util/app-config/src/lib/model.ts +2 -0
  747. package/src/libs/util/i18n/src/index.ts +1 -2
  748. package/src/libs/util/i18n/src/lib/embedded.translate.loader.ts +4 -3
  749. package/src/libs/util/i18n/src/lib/i18n.constants.ts +39 -29
  750. package/src/libs/util/i18n/src/lib/i18n.interceptor.ts +11 -9
  751. package/src/libs/util/i18n/src/lib/i18n.providers.ts +68 -0
  752. package/src/libs/util/i18n/src/lib/language-codes.ts +67 -2
  753. package/src/libs/util/shared/src/index.ts +2 -1
  754. package/src/libs/util/shared/src/lib/gn-ui-version.ts +8 -0
  755. package/src/libs/util/shared/src/lib/image-fallback.directive.ts +1 -0
  756. package/src/libs/util/shared/src/lib/links/link-classifier.service.ts +15 -3
  757. package/src/libs/util/shared/src/lib/links/link-utils.ts +42 -12
  758. package/src/libs/util/shared/src/lib/record.util.ts +114 -0
  759. package/tailwind.base.config.js +3 -0
  760. package/tailwind.base.css +24 -26
  761. package/translations/de.json +91 -24
  762. package/translations/en.json +91 -24
  763. package/translations/es.json +90 -23
  764. package/translations/fr.json +92 -25
  765. package/translations/it.json +90 -24
  766. package/translations/nl.json +90 -23
  767. package/translations/pt.json +90 -23
  768. package/translations/sk.json +90 -23
  769. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.mjs +0 -79
  770. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.mjs +0 -44
  771. package/esm2022/libs/feature/editor/src/lib/components/wizard/wizard.component.mjs +0 -75
  772. package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +0 -160
  773. package/esm2022/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.mjs +0 -53
  774. package/esm2022/libs/feature/editor/src/lib/models/wizard-field.model.mjs +0 -2
  775. package/esm2022/libs/feature/editor/src/lib/models/wizard-field.type.mjs +0 -8
  776. package/esm2022/libs/feature/editor/src/lib/services/wizard.service.mjs +0 -87
  777. package/esm2022/libs/feature/record/src/lib/gn-ui-version.token.mjs +0 -3
  778. package/esm2022/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.mjs +0 -18
  779. package/esm2022/libs/ui/dataviz/src/lib/ui-dataviz.module.mjs +0 -47
  780. package/esm2022/libs/ui/elements/src/lib/link-card/link-card.component.mjs +0 -60
  781. package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +0 -46
  782. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +0 -106
  783. package/esm2022/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.mjs +0 -16
  784. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +0 -161
  785. package/esm2022/libs/ui/layout/src/lib/ui-layout.module.mjs +0 -31
  786. package/esm2022/libs/ui/widgets/src/lib/ui-widgets.module.mjs +0 -46
  787. package/esm2022/libs/util/i18n/src/lib/lang.service.mjs +0 -31
  788. package/esm2022/libs/util/i18n/src/lib/util-i18n.module.mjs +0 -37
  789. package/esm2022/libs/util/shared/src/lib/util-shared.module.mjs +0 -18
  790. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts +0 -15
  791. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts.map +0 -1
  792. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts +0 -14
  793. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts.map +0 -1
  794. package/libs/feature/editor/src/lib/components/wizard/wizard.component.d.ts +0 -31
  795. package/libs/feature/editor/src/lib/components/wizard/wizard.component.d.ts.map +0 -1
  796. package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts +0 -43
  797. package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts.map +0 -1
  798. package/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.d.ts +0 -17
  799. package/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.d.ts.map +0 -1
  800. package/libs/feature/editor/src/lib/models/wizard-field.model.d.ts +0 -10
  801. package/libs/feature/editor/src/lib/models/wizard-field.model.d.ts.map +0 -1
  802. package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts +0 -7
  803. package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts.map +0 -1
  804. package/libs/feature/editor/src/lib/services/wizard.service.d.ts +0 -33
  805. package/libs/feature/editor/src/lib/services/wizard.service.d.ts.map +0 -1
  806. package/libs/feature/record/src/lib/gn-ui-version.token.d.ts +0 -3
  807. package/libs/feature/record/src/lib/gn-ui-version.token.d.ts.map +0 -1
  808. package/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.d.ts +0 -9
  809. package/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.d.ts.map +0 -1
  810. package/libs/ui/dataviz/src/lib/ui-dataviz.module.d.ts +0 -11
  811. package/libs/ui/dataviz/src/lib/ui-dataviz.module.d.ts.map +0 -1
  812. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts.map +0 -1
  813. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts +0 -12
  814. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts.map +0 -1
  815. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +0 -27
  816. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +0 -1
  817. package/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.d.ts +0 -8
  818. package/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.d.ts.map +0 -1
  819. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +0 -34
  820. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +0 -1
  821. package/libs/ui/layout/src/lib/ui-layout.module.d.ts +0 -12
  822. package/libs/ui/layout/src/lib/ui-layout.module.d.ts.map +0 -1
  823. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts +0 -15
  824. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts.map +0 -1
  825. package/libs/util/i18n/src/lib/lang.service.d.ts +0 -13
  826. package/libs/util/i18n/src/lib/lang.service.d.ts.map +0 -1
  827. package/libs/util/i18n/src/lib/util-i18n.module.d.ts +0 -12
  828. package/libs/util/i18n/src/lib/util-i18n.module.d.ts.map +0 -1
  829. package/libs/util/shared/src/lib/util-shared.module.d.ts +0 -9
  830. package/libs/util/shared/src/lib/util-shared.module.d.ts.map +0 -1
  831. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.html +0 -1
  832. package/src/libs/feature/editor/src/lib/components/wizard/wizard.component.css +0 -5
  833. package/src/libs/feature/editor/src/lib/components/wizard/wizard.component.html +0 -22
  834. package/src/libs/feature/editor/src/lib/components/wizard/wizard.component.ts +0 -93
  835. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.css +0 -31
  836. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.html +0 -62
  837. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.ts +0 -206
  838. package/src/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.css +0 -3
  839. package/src/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.html +0 -21
  840. package/src/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.ts +0 -58
  841. package/src/libs/feature/editor/src/lib/models/wizard-field.model.ts +0 -10
  842. package/src/libs/feature/editor/src/lib/models/wizard-field.type.ts +0 -6
  843. package/src/libs/feature/editor/src/lib/services/wizard.service.ts +0 -105
  844. package/src/libs/feature/record/src/lib/gn-ui-version.token.ts +0 -3
  845. package/src/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.html +0 -4
  846. package/src/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.ts +0 -10
  847. package/src/libs/ui/dataviz/src/lib/ui-dataviz.module.ts +0 -27
  848. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +0 -30
  849. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.ts +0 -48
  850. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +0 -61
  851. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.css +0 -3
  852. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.html +0 -9
  853. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.ts +0 -15
  854. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +0 -96
  855. package/src/libs/ui/layout/src/lib/ui-layout.module.ts +0 -18
  856. package/src/libs/ui/widgets/src/lib/ui-widgets.module.ts +0 -25
  857. package/src/libs/util/i18n/src/lib/lang.service.ts +0 -23
  858. package/src/libs/util/i18n/src/lib/util-i18n.module.ts +0 -26
  859. package/src/libs/util/shared/src/lib/util-shared.module.ts +0 -10
  860. /package/src/libs/feature/editor/src/lib/components/{record-form/form-field/form-field-map-container/form-field-map-container.component.css → multilingual-panel/multilingual-panel.component.css} +0 -0
  861. /package/src/libs/{ui/elements/src/lib/link-card/link-card.component.css → feature/search/src/lib/results-hits/results-hits.container.component.css} +0 -0
  862. /package/src/libs/ui/elements/src/lib/{related-record-card/related-record-card.component.css → external-link-card/external-link-card.component.css} +0 -0
@@ -4,22 +4,23 @@ import { ElasticsearchService } from '../elasticsearch';
4
4
  import { getAsArray, getAsUrl, mapOrganization, selectFallback, selectField, selectTranslatedField, } from '../../../../../../../libs/api/metadata-converter/src';
5
5
  import { combineLatest, of, switchMap, takeLast } from 'rxjs';
6
6
  import { filter, map, shareReplay, startWith, tap, withLatestFrom, } from 'rxjs/operators';
7
- import { LangService } from '../../../../../../../libs/util/i18n/src';
7
+ import { getLocalizedIndexKey } from '../../../../../../../libs/util/i18n/src';
8
8
  import { PlatformServiceInterface } from '../../../../../../../libs/common/domain/src/lib/platform.service.interface';
9
9
  import { coerce, satisfies, valid } from 'semver';
10
+ import { TranslateService } from '@ngx-translate/core';
10
11
  import * as i0 from "@angular/core";
11
12
  import * as i1 from "../elasticsearch";
12
13
  import * as i2 from "../../../../../../../libs/data-access/gn4/src";
13
14
  import * as i3 from "../../../../../../../libs/common/domain/src/lib/platform.service.interface";
14
- import * as i4 from "../../../../../../../libs/util/i18n/src";
15
+ import * as i4 from "@ngx-translate/core";
15
16
  const IMAGE_URL = '/geonetwork/images/harvesting/';
16
17
  export class OrganizationsFromMetadataService {
17
- constructor(esService, searchApiService, groupsApiService, platformService, langService) {
18
+ constructor(esService, searchApiService, groupsApiService, platformService, translateService) {
18
19
  this.esService = esService;
19
20
  this.searchApiService = searchApiService;
20
21
  this.groupsApiService = groupsApiService;
21
22
  this.platformService = platformService;
22
- this.langService = langService;
23
+ this.translateService = translateService;
23
24
  this.groups$ = of(true).pipe(switchMap(() => this.groupsApiService.getGroups()), shareReplay());
24
25
  this.organisationsAggs$ = this.platformService.getApiVersion().pipe(switchMap((version) => this.searchApiService.search('bucket', null, JSON.stringify(this.getAggregationSearchRequest(version)))), filter((response) => !!response.aggregations.contact.org), tap((response) => response.aggregations.contact.org.buckets.forEach((r) => (r.doc_count =
25
26
  response.aggregations.orgForResource.buckets.find((org) => org.key === r.key)?.doc_count || r.doc_count))), map((response) => response.aggregations.contact.org.buckets), shareReplay());
@@ -41,7 +42,9 @@ export class OrganizationsFromMetadataService {
41
42
  ]).pipe(map(([organisations, groups]) => {
42
43
  return !groups ? organisations : this.mapWithGroups(organisations, groups);
43
44
  }), shareReplay());
44
- this.lang3 = this.langService.gnLang;
45
+ }
46
+ get langIndex() {
47
+ return getLocalizedIndexKey(this.translateService.currentLang);
45
48
  }
46
49
  equalsNormalizedStrings(str1, str2, replaceSpecialChars = true) {
47
50
  if (!str1 || !str2)
@@ -160,11 +163,11 @@ export class OrganizationsFromMetadataService {
160
163
  }));
161
164
  }
162
165
  addOrganizationToRecordFromSource(source, record) {
163
- const contacts = getAsArray(selectFallback(selectTranslatedField(source, 'contactObject', this.lang3), selectField(source, 'contact')));
164
- const resourceContacts = getAsArray(selectFallback(selectTranslatedField(source, 'contactForResourceObject', this.lang3), selectField(source, 'contactForResource')));
166
+ const contacts = getAsArray(selectFallback(selectTranslatedField(source, 'contactObject', this.langIndex), selectField(source, 'contact')));
167
+ const resourceContacts = getAsArray(selectFallback(selectTranslatedField(source, 'contactForResourceObject', this.langIndex), selectField(source, 'contactForResource')));
165
168
  const allContactOrgs = resourceContacts
166
169
  .concat(contacts)
167
- .map((contact) => mapOrganization(contact, this.lang3));
170
+ .map((contact) => mapOrganization(contact, this.langIndex));
168
171
  if (!allContactOrgs.length)
169
172
  return of(record);
170
173
  const ownerOrganization = allContactOrgs[0];
@@ -186,10 +189,10 @@ export class OrganizationsFromMetadataService {
186
189
  };
187
190
  }));
188
191
  }
189
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OrganizationsFromMetadataService, deps: [{ token: i1.ElasticsearchService }, { token: i2.SearchApiService }, { token: i2.GroupsApiService }, { token: i3.PlatformServiceInterface }, { token: i4.LangService }], target: i0.ɵɵFactoryTarget.Injectable }); }
192
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OrganizationsFromMetadataService, deps: [{ token: i1.ElasticsearchService }, { token: i2.SearchApiService }, { token: i2.GroupsApiService }, { token: i3.PlatformServiceInterface }, { token: i4.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
190
193
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OrganizationsFromMetadataService }); }
191
194
  }
192
195
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OrganizationsFromMetadataService, decorators: [{
193
196
  type: Injectable
194
- }], ctorParameters: () => [{ type: i1.ElasticsearchService }, { type: i2.SearchApiService }, { type: i2.GroupsApiService }, { type: i3.PlatformServiceInterface }, { type: i4.LangService }] });
195
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnYW5pemF0aW9ucy1mcm9tLW1ldGFkYXRhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9yZXBvc2l0b3J5L3NyYy9saWIvZ240L29yZ2FuaXphdGlvbnMvb3JnYW5pemF0aW9ucy1mcm9tLW1ldGFkYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLGdCQUFnQixHQUNqQixNQUFNLCtDQUErQyxDQUFBO0FBVXRELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3ZELE9BQU8sRUFDTCxVQUFVLEVBQ1YsUUFBUSxFQUNSLGVBQWUsRUFFZixjQUFjLEVBQ2QsV0FBVyxFQUNYLHFCQUFxQixHQUV0QixNQUFNLHNEQUFzRCxDQUFBO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDekUsT0FBTyxFQUNMLE1BQU0sRUFDTixHQUFHLEVBQ0gsV0FBVyxFQUNYLFNBQVMsRUFDVCxHQUFHLEVBQ0gsY0FBYyxHQUNmLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQ3JFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRFQUE0RSxDQUFBO0FBQ3JILE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLFFBQVEsQ0FBQTs7Ozs7O0FBRWpELE1BQU0sU0FBUyxHQUFHLGdDQUFnQyxDQUFBO0FBcUJsRCxNQUFNLE9BQU8sZ0NBQWdDO0lBMEQzQyxZQUNVLFNBQStCLEVBQy9CLGdCQUFrQyxFQUNsQyxnQkFBa0MsRUFDbEMsZUFBeUMsRUFD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QUMsQ0FBQTtZQUNwRSxPQUFPO2dCQUNMLEdBQUcsTUFBTTtnQkFDVCxpQkFBaUIsRUFBRTtvQkFDakIsT0FBTztvQkFDUCxHQUFHLGlCQUFpQjtvQkFDcEIsR0FBRyxrQkFBa0I7aUJBQ3RCO2FBQ0YsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUNILENBQUE7SUFDSCxDQUFDOytHQW5SVSxnQ0FBZ0M7bUhBQWhDLGdDQUFnQzs7NEZBQWhDLGdDQUFnQztrQkFENUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgR3JvdXBBcGlNb2RlbCxcbiAgR3JvdXBzQXBpU2VydmljZSxcbiAgU2VhcmNoQXBpU2VydmljZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9nbjQvc3JjJ1xuaW1wb3J0IHtcbiAgRmllbGRGaWx0ZXJCeVZhbHVlcyxcbiAgRmllbGRGaWx0ZXJzLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9zZWFyY2gnXG5pbXBvcnQge1xuICBDYXRhbG9nUmVjb3JkLFxuICBPcmdhbml6YXRpb24sXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IE9yZ2FuaXphdGlvbnNTZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvb3JnYW5pemF0aW9ucy5zZXJ2aWNlLmludGVyZmFjZSdcbmltcG9ydCB7IEVsYXN0aWNzZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi4vZWxhc3RpY3NlYXJjaCdcbmltcG9ydCB7XG4gIGdldEFzQXJyYXksXG4gIGdldEFzVXJsLFxuICBtYXBPcmdhbml6YXRpb24sXG4gIE1ldGFkYXRhT2JqZWN0LFxuICBzZWxlY3RGYWxsYmFjayxcbiAgc2VsZWN0RmllbGQsXG4gIHNlbGVjdFRyYW5zbGF0ZWRGaWVsZCxcbiAgU291cmNlV2l0aFVua25vd25Qcm9wcyxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcGkvbWV0YWRhdGEtY29udmVydGVyL3NyYydcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mLCBzd2l0Y2hNYXAsIHRha2VMYXN0IH0gZnJvbSAncnhqcydcbmltcG9ydCB7XG4gIGZpbHRlcixcbiAgbWFwLFxuICBzaGFyZVJlcGxheSxcbiAgc3RhcnRXaXRoLFxuICB0YXAsXG4gIHdpdGhMYXRlc3RGcm9tLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IExhbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2kxOG4vc3JjJ1xuaW1wb3J0IHsgUGxhdGZvcm1TZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvcGxhdGZvcm0uc2VydmljZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBjb2VyY2UsIHNhdGlzZmllcywgdmFsaWQgfSBmcm9tICdzZW12ZXInXG5cbmNvbnN0IElNQUdFX1VSTCA9ICcvZ2VvbmV0d29yay9pbWFnZXMvaGFydmVzdGluZy8nXG5cbnR5cGUgRVNCdWNrZXQgPSB7XG4gIGtleTogc3RyaW5nXG4gIGRvY19jb3VudDogbnVtYmVyXG59XG5pbnRlcmZhY2UgT3JnYW5pemF0aW9uQWdnc0J1Y2tldCBleHRlbmRzIEVTQnVja2V0IHtcbiAgbWFpbDoge1xuICAgIGJ1Y2tldHM6IEVTQnVja2V0W11cbiAgfVxuICBsb2dvVXJsOiB7XG4gICAgYnVja2V0czogRVNCdWNrZXRbXVxuICB9XG59XG5pbnRlcmZhY2UgSW5jb21wbGV0ZU9yZ2FuaXphdGlvbiB7XG4gIG5hbWU6IHN0cmluZ1xuICBlbWFpbHM6IHN0cmluZ1tdXG4gIHJlY29yZENvdW50OiBudW1iZXJcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9yZ2FuaXphdGlvbnNGcm9tTWV0YWRhdGFTZXJ2aWNlXG4gIGltcGxlbWVudHMgT3JnYW5pemF0aW9uc1NlcnZpY2VJbnRlcmZhY2VcbntcbiAgcHJpdmF0ZSBncm91cHMkOiBPYnNlcnZhYmxlPEdyb3VwQXBpTW9kZWxbXT4gPSBvZih0cnVlKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmdyb3Vwc0FwaVNlcnZpY2UuZ2V0R3JvdXBzKCkpLFxuICAgIHNoYXJlUmVwbGF5KClcbiAgKVxuICBwcml2YXRlIG9yZ2FuaXNhdGlvbnNBZ2dzJDogT2JzZXJ2YWJsZTxPcmdhbml6YXRpb25BZ2dzQnVja2V0W10+ID1cbiAgICB0aGlzLnBsYXRmb3JtU2VydmljZS5nZXRBcGlWZXJzaW9uKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgodmVyc2lvbikgPT5cbiAgICAgICAgdGhpcy5zZWFyY2hBcGlTZXJ2aWNlLnNlYXJjaChcbiAgICAgICAgICAnYnVja2V0JyxcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuZ2V0QWdncmVnYXRpb25TZWFyY2hSZXF1ZXN0KHZlcnNpb24pKVxuICAgICAgICApXG4gICAgICApLFxuICAgICAgZmlsdGVyKChyZXNwb25zZSkgPT4gISFyZXNwb25zZS5hZ2dyZWdhdGlvbnMuY29udGFjdC5vcmcpLFxuICAgICAgdGFwKChyZXNwb25zZSkgPT5cbiAgICAgICAgcmVzcG9uc2UuYWdncmVnYXRpb25zLmNvbnRhY3Qub3JnLmJ1Y2tldHMuZm9yRWFjaChcbiAgICAgICAgICAocikgPT5cbiAgICAgICAgICAgIChyLmRvY19jb3VudCA9XG4gICAgICAgICAgICAgIHJlc3BvbnNlLmFnZ3JlZ2F0aW9ucy5vcmdGb3JSZXNvdXJjZS5idWNrZXRzLmZpbmQoXG4gICAgICAgICAgICAgICAgKG9yZykgPT4gb3JnLmtleSA9PT0gci5rZXlcbiAgICAgICAgICAgICAgKT8uZG9jX2NvdW50IHx8IHIuZG9jX2NvdW50KVxuICAgICAgICApXG4gICAgICApLFxuICAgICAgbWFwKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuYWdncmVnYXRpb25zLmNvbnRhY3Qub3JnLmJ1Y2tldHMpLFxuICAgICAgc2hhcmVSZXBsYXkoKVxuICAgIClcbiAgcHJpdmF0ZSBvcmdhbmlzYXRpb25zV2l0aG91dEdyb3VwcyQ6IE9ic2VydmFibGU8SW5jb21wbGV0ZU9yZ2FuaXphdGlvbltdPiA9XG4gICAgdGhpcy5vcmdhbmlzYXRpb25zQWdncyQucGlwZShcbiAgICAgIG1hcCgoYnVja2V0cykgPT5cbiAgICAgICAgYnVja2V0cy5tYXAoKGJ1Y2tldCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGxvZ29VcmwgPSBidWNrZXQubG9nb1VybC5idWNrZXRzPy5bMF0/LmtleVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuYW1lOiBidWNrZXQua2V5LFxuICAgICAgICAgICAgZW1haWxzOiBidWNrZXQubWFpbC5idWNrZXRzXG4gICAgICAgICAgICAgIC5tYXAoKGJ1Y2tldCkgPT4gYnVja2V0LmtleSlcbiAgICAgICAgICAgICAgLmZpbHRlcigobWFpbCkgPT4gISFtYWlsKSxcbiAgICAgICAgICAgIHJlY29yZENvdW50OiBidWNrZXQuZG9jX2NvdW50LFxuICAgICAgICAgICAgLi4uKGxvZ29VcmwgJiYgeyBsb2dvVXJsOiBnZXRBc1VybChsb2dvVXJsKSB9KSxcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKVxuICBvcmdhbmlzYXRpb25zQ291bnQkID0gdGhpcy5vcmdhbmlzYXRpb25zQWdncyQucGlwZShcbiAgICBtYXAoKG9yZ2FuaXNhdGlvbnMpID0+IG9yZ2FuaXNhdGlvbnMubGVuZ3RoKVxuICApXG4gIG9yZ2FuaXNhdGlvbnMkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5vcmdhbmlzYXRpb25zV2l0aG91dEdyb3VwcyQsXG4gICAgdGhpcy5ncm91cHMkLnBpcGUoc3RhcnRXaXRoKG51bGwpKSxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtvcmdhbmlzYXRpb25zLCBncm91cHNdKSA9PiB7XG4gICAgICByZXR1cm4gIWdyb3VwcyA/IG9yZ2FuaXNhdGlvbnMgOiB0aGlzLm1hcFdpdGhHcm91cHMob3JnYW5pc2F0aW9ucywgZ3JvdXBzKVxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KClcbiAgKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZXNTZXJ2aWNlOiBFbGFzdGljc2VhcmNoU2VydmljZSxcbiAgICBwcml2YXRlIHNlYXJjaEFwaVNlcnZpY2U6IFNlYXJjaEFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBncm91cHNBcGlTZXJ2aWNlOiBHcm91cHNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGxhdGZvcm1TZXJ2aWNlOiBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2UsXG4gICAgcHJpdmF0ZSBsYW5nU2VydmljZTogTGFuZ1NlcnZpY2VcbiAgKSB7fVxuXG4gIHByaXZhdGUgbGFuZzMgPSB0aGlzLmxhbmdTZXJ2aWNlLmduTGFuZ1xuXG4gIGVxdWFsc05vcm1hbGl6ZWRTdHJpbmdzKFxuICAgIHN0cjE6IHN0cmluZyxcbiAgICBzdHIyOiBzdHJpbmcsXG4gICAgcmVwbGFjZVNwZWNpYWxDaGFycyA9IHRydWVcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKCFzdHIxIHx8ICFzdHIyKSByZXR1cm4gZmFsc2VcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5ub3JtYWxpemVTdHJpbmcoc3RyMSwgcmVwbGFjZVNwZWNpYWxDaGFycykgPT09XG4gICAgICB0aGlzLm5vcm1hbGl6ZVN0cmluZyhzdHIyLCByZXBsYWNlU3BlY2lhbENoYXJzKVxuICAgIClcbiAgfVxuXG4gIG5vcm1hbGl6ZVN0cmluZyhzdHI6IHN0cmluZywgcmVwbGFjZVNwZWNpYWxDaGFycyA9IHRydWUpOiBzdHJpbmcge1xuICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZShzdHI6IHN0cmluZykge1xuICAgICAgcmV0dXJuIHN0clxuICAgICAgICAubm9ybWFsaXplKCdORkQnKSAvLyBkZWNvbXBvc2UgZ3JhcGhlbWVzIHRvIHJlbW92ZSBhY2NlbnRzIGZyb20gbGV0dGVyc1xuICAgICAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpIC8vIHJlbW92ZSBhY2NlbnQgY2hhcmFjdGVyc1xuICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgIH1cbiAgICBpZiAocmVwbGFjZVNwZWNpYWxDaGFycykge1xuICAgICAgcmV0dXJuIG5vcm1hbGl6ZShzdHIpLnJlcGxhY2UoL1teYS16MC05XS9nLCAnJykgLy8gcmVwbGFjZSBhbGwgZXhjZXB0IGxldHRlcnMgJiBudW1iZXJzXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBub3JtYWxpemUoc3RyKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWdncmVnYXRpb25TZWFyY2hSZXF1ZXN0KGduVmVyc2lvbjogc3RyaW5nKSB7XG4gICAgY29uc3Qgc2VtVmVyc2lvbiA9IHZhbGlkKGNvZXJjZShnblZlcnNpb24pKVxuICAgIHJldHVybiB0aGlzLmVzU2VydmljZS5nZXRTZWFyY2hSZXF1ZXN0Qm9keSh7XG4gICAgICBjb250YWN0OiB7XG4gICAgICAgIG5lc3RlZDoge1xuICAgICAgICAgIHBhdGg6ICdjb250YWN0Rm9yUmVzb3VyY2UnLFxuICAgICAgICB9LFxuICAgICAgICBhZ2dzOiB7XG4gICAgICAgICAgb3JnOiB7XG4gICAgICAgICAgICB0ZXJtczoge1xuICAgICAgICAgICAgICBmaWVsZDpcbiAgICAgICAgICAgICAgICBzZW1WZXJzaW9uID09PSAnNC4yLjInXG4gICAgICAgICAgICAgICAgICA/ICdjb250YWN0Rm9yUmVzb3VyY2Uub3JnYW5pc2F0aW9uJ1xuICAgICAgICAgICAgICAgICAgOiAnY29udGFjdEZvclJlc291cmNlLm9yZ2FuaXNhdGlvbk9iamVjdC5kZWZhdWx0LmtleXdvcmQnLFxuICAgICAgICAgICAgICBleGNsdWRlOiAnJyxcbiAgICAgICAgICAgICAgc2l6ZTogNTAwMCxcbiAgICAgICAgICAgICAgb3JkZXI6IHsgX2tleTogJ2FzYycgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhZ2dzOiB7XG4gICAgICAgICAgICAgIG1haWw6IHtcbiAgICAgICAgICAgICAgICB0ZXJtczoge1xuICAgICAgICAgICAgICAgICAgc2l6ZTogNTAsXG4gICAgICAgICAgICAgICAgICBleGNsdWRlOiAnJyxcbiAgICAgICAgICAgICAgICAgIGZpZWxkOiBzYXRpc2ZpZXMoc2VtVmVyc2lvbiwgJzQuMi4yIC0gNC4yLjQnKVxuICAgICAgICAgICAgICAgICAgICA/ICdjb250YWN0Rm9yUmVzb3VyY2UuZW1haWwua2V5d29yZCdcbiAgICAgICAgICAgICAgICAgICAgOiAnY29udGFjdEZvclJlc291cmNlLmVtYWlsJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBsb2dvVXJsOiB7XG4gICAgICAgICAgICAgICAgdGVybXM6IHtcbiAgICAgICAgICAgICAgICAgIHNpemU6IDEsXG4gICAgICAgICAgICAgICAgICBleGNsdWRlOiAnJyxcbiAgICAgICAgICAgICAgICAgIGZpZWxkOiAnY29udGFjdEZvclJlc291cmNlLmxvZ28ua2V5d29yZCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBvcmdGb3JSZXNvdXJjZToge1xuICAgICAgICB0ZXJtczoge1xuICAgICAgICAgIHNpemU6IDUwMDAsXG4gICAgICAgICAgZXhjbHVkZTogJycsXG4gICAgICAgICAgZmllbGQ6XG4gICAgICAgICAgICBzZW1WZXJzaW9uID09PSAnNC4yLjInXG4gICAgICAgICAgICAgID8gJ09yZ0ZvclJlc291cmNlJ1xuICAgICAgICAgICAgICA6ICdPcmdGb3JSZXNvdXJjZU9iamVjdC5kZWZhdWx0JyxcbiAgICAgICAgICBvcmRlcjoge1xuICAgICAgICAgICAgX2tleTogJ2FzYycsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgbWFwV2l0aEdyb3VwcyhcbiAgICBvcmdhbmlzYXRpb25zOiBJbmNvbXBsZXRlT3JnYW5pemF0aW9uW10sXG4gICAgZ3JvdXBzOiBHcm91cEFwaU1vZGVsW11cbiAgKTogT3JnYW5pemF0aW9uW10ge1xuICAgIHJldHVybiBvcmdhbmlzYXRpb25zLm1hcCgob3JnYW5pc2F0aW9uKSA9PiB7XG4gICAgICBjb25zdCBncm91cCA9XG4gICAgICAgIGdyb3Vwcy5maW5kKChncm91cCkgPT5cbiAgICAgICAgICB0aGlzLmVxdWFsc05vcm1hbGl6ZWRTdHJpbmdzKFxuICAgICAgICAgICAgZ3JvdXAubGFiZWxbJ2VuZyddID8gZ3JvdXAubGFiZWxbJ2VuZyddIDogZ3JvdXAubmFtZSxcbiAgICAgICAgICAgIG9yZ2FuaXNhdGlvbi5uYW1lXG4gICAgICAgICAgKVxuICAgICAgICApID8/XG4gICAgICAgIGdyb3Vwc1xuICAgICAgICAgIC5maWx0ZXIoKGdyb3VwKSA9PiAhIWdyb3VwLmVtYWlsKVxuICAgICAgICAgIC5maW5kKChncm91cCkgPT5cbiAgICAgICAgICAgIG9yZ2FuaXNhdGlvbi5lbWFpbHNcbiAgICAgICAgICAgICAgLm1hcCgobWFpbCkgPT4gdGhpcy5ub3JtYWxpemVTdHJpbmcobWFpbCwgZmFsc2UpKVxuICAgICAgICAgICAgICAuaW5jbHVkZXModGhpcy5ub3JtYWxpemVTdHJpbmcoZ3JvdXAuZW1haWwsIGZhbHNlKSlcbiAgICAgICAgICApXG4gICAgICBjb25zdCB7IGVtYWlscywgLi4uZnVsbE9yZyB9ID0gb3JnYW5pc2F0aW9uXG4gICAgICBpZiAoIWdyb3VwKSByZXR1cm4gZnVsbE9yZ1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uZnVsbE9yZyxcbiAgICAgICAgZW1haWw6IGVtYWlsc1swXSxcbiAgICAgICAgLi4uKGdyb3VwLmRlc2NyaXB0aW9uICYmIHsgZGVzY3JpcHRpb246IGdyb3VwLmRlc2NyaXB0aW9uIH0pLFxuICAgICAgICAuLi4oZ3JvdXAubG9nbyAmJiB7IGxvZ29Vcmw6IGdldEFzVXJsKGAke0lNQUdFX1VSTH0ke2dyb3VwLmxvZ299YCkgfSksXG4gICAgICAgIC4uLihncm91cC53ZWJzaXRlICYmIHsgd2Vic2l0ZTogZ2V0QXNVcmwoZ3JvdXAud2Vic2l0ZSkgfSksXG4gICAgICAgIC4uLihncm91cC5lbWFpbCAmJiB7IGVtYWlsOiBncm91cC5lbWFpbCB9KSxcbiAgICAgIH0gYXMgT3JnYW5pemF0aW9uXG4gICAgfSlcbiAgfVxuXG4gIGdldEZpbHRlcnNGb3JPcmdzKG9yZ2FuaXNhdGlvbnM6IE9yZ2FuaXphdGlvbltdKTogT2JzZXJ2YWJsZTxGaWVsZEZpbHRlcnM+IHtcbiAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybVNlcnZpY2UuZ2V0QXBpVmVyc2lvbigpLnBpcGUoXG4gICAgICBtYXAoKGduVmVyc2lvbikgPT4ge1xuICAgICAgICBjb25zdCBmaWVsZE5hbWUgPSBnblZlcnNpb24uc3RhcnRzV2l0aCgnNC4yLjInKVxuICAgICAgICAgID8gJ09yZ0ZvclJlc291cmNlJ1xuICAgICAgICAgIDogJ09yZ0ZvclJlc291cmNlT2JqZWN0LmRlZmF1bHQnXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgW2ZpZWxkTmFtZV06IG9yZ2FuaXNhdGlvbnMucmVkdWNlKFxuICAgICAgICAgICAgKHByZXYsIGN1cnIpID0+ICh7IC4uLnByZXYsIFtjdXJyLm5hbWVdOiB0cnVlIH0pLFxuICAgICAgICAgICAge31cbiAgICAgICAgICApLFxuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGdldE9yZ3NGcm9tRmlsdGVycyhmaWx0ZXJzOiBGaWVsZEZpbHRlcnMpOiBPYnNlcnZhYmxlPE9yZ2FuaXphdGlvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMucGxhdGZvcm1TZXJ2aWNlLmdldEFwaVZlcnNpb24oKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChnblZlcnNpb24pID0+IHtcbiAgICAgICAgY29uc3QgZmllbGROYW1lID0gZ25WZXJzaW9uLnN0YXJ0c1dpdGgoJzQuMi4yJylcbiAgICAgICAgICA/ICdPcmdGb3JSZXNvdXJjZSdcbiAgICAgICAgICA6ICdPcmdGb3JSZXNvdXJjZU9iamVjdC5kZWZhdWx0J1xuXG4gICAgICAgIGlmICghKGZpZWxkTmFtZSBpbiBmaWx0ZXJzKSkgcmV0dXJuIG9mKFtdKVxuXG4gICAgICAgIHJldHVybiB0aGlzLm9yZ2FuaXNhdGlvbnMkLnBpcGUoXG4gICAgICAgICAgbWFwKChvcmdzOiBJbmNvbXBsZXRlT3JnYW5pemF0aW9uW10pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9yZ05hbWVzID0gT2JqZWN0LmtleXMoXG4gICAgICAgICAgICAgIGZpbHRlcnNbZmllbGROYW1lXSBhcyBGaWVsZEZpbHRlckJ5VmFsdWVzXG4gICAgICAgICAgICApXG4gICAgICAgICAgICByZXR1cm4gb3JnTmFtZXMubWFwKChuYW1lKSA9PlxuICAgICAgICAgICAgICBvcmdzLmZpbmQoXG4gICAgICAgICAgICAgICAgKG9yZzogT3JnYW5pemF0aW9uIHwgSW5jb21wbGV0ZU9yZ2FuaXphdGlvbikgPT5cbiAgICAgICAgICAgICAgICAgIG9yZy5uYW1lID09PSBuYW1lXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGFkZE9yZ2FuaXphdGlvblRvUmVjb3JkRnJvbVNvdXJjZShcbiAgICBzb3VyY2U6IE1ldGFkYXRhT2JqZWN0LFxuICAgIHJlY29yZDogQ2F0YWxvZ1JlY29yZFxuICApOiBPYnNlcnZhYmxlPENhdGFsb2dSZWNvcmQ+IHtcbiAgICBjb25zdCBjb250YWN0czogU291cmNlV2l0aFVua25vd25Qcm9wc1tdID0gZ2V0QXNBcnJheShcbiAgICAgIHNlbGVjdEZhbGxiYWNrKFxuICAgICAgICBzZWxlY3RUcmFuc2xhdGVkRmllbGQoc291cmNlLCAnY29udGFjdE9iamVjdCcsIHRoaXMubGFuZzMpLFxuICAgICAgICBzZWxlY3RGaWVsZChzb3VyY2UsICdjb250YWN0JylcbiAgICAgIClcbiAgICApXG4gICAgY29uc3QgcmVzb3VyY2VDb250YWN0czogU291cmNlV2l0aFVua25vd25Qcm9wc1tdID0gZ2V0QXNBcnJheShcbiAgICAgIHNlbGVjdEZhbGxiYWNrKFxuICAgICAgICBzZWxlY3RUcmFuc2xhdGVkRmllbGQoc291cmNlLCAnY29udGFjdEZvclJlc291cmNlT2JqZWN0JywgdGhpcy5sYW5nMyksXG4gICAgICAgIHNlbGVjdEZpZWxkKHNvdXJjZSwgJ2NvbnRhY3RGb3JSZXNvdXJjZScpXG4gICAgICApXG4gICAgKVxuICAgIGNvbnN0IGFsbENvbnRhY3RPcmdzID0gcmVzb3VyY2VDb250YWN0c1xuICAgICAgLmNvbmNhdChjb250YWN0cylcbiAgICAgIC5tYXAoKGNvbnRhY3QpID0+IG1hcE9yZ2FuaXphdGlvbihjb250YWN0LCB0aGlzLmxhbmczKSlcblxuICAgIGlmICghYWxsQ29udGFjdE9yZ3MubGVuZ3RoKSByZXR1cm4gb2YocmVjb3JkKVxuXG4gICAgY29uc3Qgb3duZXJPcmdhbml6YXRpb24gPSBhbGxDb250YWN0T3Jnc1swXVxuXG4gICAgLy8gcmVhZCB0aGUgb3duZXIgZ3JvdXAgYXMgd2VsbCB0byBoYXZlIGEgZmFsbGJhY2sgbG9nb1xuICAgIGNvbnN0IGdyb3VwSWQgPSBzZWxlY3RGaWVsZChzb3VyY2UsICdncm91cE93bmVyJylcbiAgICBjb25zdCBncm91cCQgPSB0aGlzLmdyb3VwcyQucGlwZShcbiAgICAgIG1hcCgoZ3JvdXBzKSA9PlxuICAgICAgICBncm91cHMuZmluZCgoZ3JvdXApID0+IHtcbiAgICAgICAgICByZXR1cm4gZ3JvdXAuaWQgPT09IE51bWJlcihncm91cElkKVxuICAgICAgICB9KVxuICAgICAgKVxuICAgIClcblxuICAgIHJldHVybiB0aGlzLm9yZ2FuaXNhdGlvbnMkLnBpcGUoXG4gICAgICB0YWtlTGFzdCgxKSxcbiAgICAgIHdpdGhMYXRlc3RGcm9tKGdyb3VwJCksXG4gICAgICBtYXAoKFtvcmdhbmlzYXRpb25zLCBncm91cF06IFtPcmdhbml6YXRpb25bXSwgR3JvdXBBcGlNb2RlbF0pID0+IHtcbiAgICAgICAgY29uc3QgcmVjb3JkT3JnYW5pc2F0aW9uID0gb3JnYW5pc2F0aW9ucy5maWx0ZXIoXG4gICAgICAgICAgKG9yZykgPT4gb3JnLm5hbWUgPT09IG93bmVyT3JnYW5pemF0aW9uLm5hbWVcbiAgICAgICAgKVswXVxuICAgICAgICBjb25zdCBsb2dvVXJsID0gZ3JvdXA/LmxvZ28gJiYgZ2V0QXNVcmwoYCR7SU1BR0VfVVJMfSR7Z3JvdXAubG9nb31gKVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnJlY29yZCxcbiAgICAgICAgICBvd25lck9yZ2FuaXphdGlvbjoge1xuICAgICAgICAgICAgbG9nb1VybCxcbiAgICAgICAgICAgIC4uLm93bmVyT3JnYW5pemF0aW9uLFxuICAgICAgICAgICAgLi4ucmVjb3JkT3JnYW5pc2F0aW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICB9XG59XG4iXX0=
197
+ }], ctorParameters: () => [{ type: i1.ElasticsearchService }, { type: i2.SearchApiService }, { type: i2.GroupsApiService }, { type: i3.PlatformServiceInterface }, { type: i4.TranslateService }] });
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnYW5pemF0aW9ucy1mcm9tLW1ldGFkYXRhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9yZXBvc2l0b3J5L3NyYy9saWIvZ240L29yZ2FuaXphdGlvbnMvb3JnYW5pemF0aW9ucy1mcm9tLW1ldGFkYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLGdCQUFnQixHQUNqQixNQUFNLCtDQUErQyxDQUFBO0FBVXRELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3ZELE9BQU8sRUFDTCxVQUFVLEVBQ1YsUUFBUSxFQUNSLGVBQWUsRUFFZixjQUFjLEVBQ2QsV0FBVyxFQUNYLHFCQUFxQixHQUV0QixNQUFNLHNEQUFzRCxDQUFBO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDekUsT0FBTyxFQUNMLE1BQU0sRUFDTixHQUFHLEVBQ0gsV0FBVyxFQUNYLFNBQVMsRUFDVCxHQUFHLEVBQ0gsY0FBYyxHQUNmLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDOUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEVBQTRFLENBQUE7QUFDckgsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBOzs7Ozs7QUFFdEQsTUFBTSxTQUFTLEdBQUcsZ0NBQWdDLENBQUE7QUFxQmxELE1BQU0sT0FBTyxnQ0FBZ0M7SUEwRDNDLFlBQ1Us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QyxDQUFBO1lBQ0osTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLElBQUksSUFBSSxRQUFRLENBQUMsR0FBRyxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7WUFDcEUsT0FBTztnQkFDTCxHQUFHLE1BQU07Z0JBQ1QsaUJBQWlCLEVBQUU7b0JBQ2pCLE9BQU87b0JBQ1AsR0FBRyxpQkFBaUI7b0JBQ3BCLEdBQUcsa0JBQWtCO2lCQUN0QjthQUNGLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQzsrR0F6UlUsZ0NBQWdDO21IQUFoQyxnQ0FBZ0M7OzRGQUFoQyxnQ0FBZ0M7a0JBRDVDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIEdyb3VwQXBpTW9kZWwsXG4gIEdyb3Vwc0FwaVNlcnZpY2UsXG4gIFNlYXJjaEFwaVNlcnZpY2UsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3MvZ240L3NyYydcbmltcG9ydCB7XG4gIEZpZWxkRmlsdGVyQnlWYWx1ZXMsXG4gIEZpZWxkRmlsdGVycyxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvc2VhcmNoJ1xuaW1wb3J0IHtcbiAgQ2F0YWxvZ1JlY29yZCxcbiAgT3JnYW5pemF0aW9uLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBPcmdhbml6YXRpb25zU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL29yZ2FuaXphdGlvbnMuc2VydmljZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBFbGFzdGljc2VhcmNoU2VydmljZSB9IGZyb20gJy4uL2VsYXN0aWNzZWFyY2gnXG5pbXBvcnQge1xuICBnZXRBc0FycmF5LFxuICBnZXRBc1VybCxcbiAgbWFwT3JnYW5pemF0aW9uLFxuICBNZXRhZGF0YU9iamVjdCxcbiAgc2VsZWN0RmFsbGJhY2ssXG4gIHNlbGVjdEZpZWxkLFxuICBzZWxlY3RUcmFuc2xhdGVkRmllbGQsXG4gIFNvdXJjZVdpdGhVbmtub3duUHJvcHMsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL21ldGFkYXRhLWNvbnZlcnRlci9zcmMnXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwLCB0YWtlTGFzdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQge1xuICBmaWx0ZXIsXG4gIG1hcCxcbiAgc2hhcmVSZXBsYXksXG4gIHN0YXJ0V2l0aCxcbiAgdGFwLFxuICB3aXRoTGF0ZXN0RnJvbSxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBnZXRMb2NhbGl6ZWRJbmRleEtleSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9pMThuL3NyYydcbmltcG9ydCB7IFBsYXRmb3JtU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL3BsYXRmb3JtLnNlcnZpY2UuaW50ZXJmYWNlJ1xuaW1wb3J0IHsgY29lcmNlLCBzYXRpc2ZpZXMsIHZhbGlkIH0gZnJvbSAnc2VtdmVyJ1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5cbmNvbnN0IElNQUdFX1VSTCA9ICcvZ2VvbmV0d29yay9pbWFnZXMvaGFydmVzdGluZy8nXG5cbnR5cGUgRVNCdWNrZXQgPSB7XG4gIGtleTogc3RyaW5nXG4gIGRvY19jb3VudDogbnVtYmVyXG59XG5pbnRlcmZhY2UgT3JnYW5pemF0aW9uQWdnc0J1Y2tldCBleHRlbmRzIEVTQnVja2V0IHtcbiAgbWFpbDoge1xuICAgIGJ1Y2tldHM6IEVTQnVja2V0W11cbiAgfVxuICBsb2dvVXJsOiB7XG4gICAgYnVja2V0czogRVNCdWNrZXRbXVxuICB9XG59XG5pbnRlcmZhY2UgSW5jb21wbGV0ZU9yZ2FuaXphdGlvbiB7XG4gIG5hbWU6IHN0cmluZ1xuICBlbWFpbHM6IHN0cmluZ1tdXG4gIHJlY29yZENvdW50OiBudW1iZXJcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9yZ2FuaXphdGlvbnNGcm9tTWV0YWRhdGFTZXJ2aWNlXG4gIGltcGxlbWVudHMgT3JnYW5pemF0aW9uc1NlcnZpY2VJbnRlcmZhY2VcbntcbiAgcHJpdmF0ZSBncm91cHMkOiBPYnNlcnZhYmxlPEdyb3VwQXBpTW9kZWxbXT4gPSBvZih0cnVlKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmdyb3Vwc0FwaVNlcnZpY2UuZ2V0R3JvdXBzKCkpLFxuICAgIHNoYXJlUmVwbGF5KClcbiAgKVxuICBwcml2YXRlIG9yZ2FuaXNhdGlvbnNBZ2dzJDogT2JzZXJ2YWJsZTxPcmdhbml6YXRpb25BZ2dzQnVja2V0W10+ID1cbiAgICB0aGlzLnBsYXRmb3JtU2VydmljZS5nZXRBcGlWZXJzaW9uKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgodmVyc2lvbikgPT5cbiAgICAgICAgdGhpcy5zZWFyY2hBcGlTZXJ2aWNlLnNlYXJjaChcbiAgICAgICAgICAnYnVja2V0JyxcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuZ2V0QWdncmVnYXRpb25TZWFyY2hSZXF1ZXN0KHZlcnNpb24pKVxuICAgICAgICApXG4gICAgICApLFxuICAgICAgZmlsdGVyKChyZXNwb25zZSkgPT4gISFyZXNwb25zZS5hZ2dyZWdhdGlvbnMuY29udGFjdC5vcmcpLFxuICAgICAgdGFwKChyZXNwb25zZSkgPT5cbiAgICAgICAgcmVzcG9uc2UuYWdncmVnYXRpb25zLmNvbnRhY3Qub3JnLmJ1Y2tldHMuZm9yRWFjaChcbiAgICAgICAgICAocikgPT5cbiAgICAgICAgICAgIChyLmRvY19jb3VudCA9XG4gICAgICAgICAgICAgIHJlc3BvbnNlLmFnZ3JlZ2F0aW9ucy5vcmdGb3JSZXNvdXJjZS5idWNrZXRzLmZpbmQoXG4gICAgICAgICAgICAgICAgKG9yZykgPT4gb3JnLmtleSA9PT0gci5rZXlcbiAgICAgICAgICAgICAgKT8uZG9jX2NvdW50IHx8IHIuZG9jX2NvdW50KVxuICAgICAgICApXG4gICAgICApLFxuICAgICAgbWFwKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuYWdncmVnYXRpb25zLmNvbnRhY3Qub3JnLmJ1Y2tldHMpLFxuICAgICAgc2hhcmVSZXBsYXkoKVxuICAgIClcbiAgcHJpdmF0ZSBvcmdhbmlzYXRpb25zV2l0aG91dEdyb3VwcyQ6IE9ic2VydmFibGU8SW5jb21wbGV0ZU9yZ2FuaXphdGlvbltdPiA9XG4gICAgdGhpcy5vcmdhbmlzYXRpb25zQWdncyQucGlwZShcbiAgICAgIG1hcCgoYnVja2V0cykgPT5cbiAgICAgICAgYnVja2V0cy5tYXAoKGJ1Y2tldCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGxvZ29VcmwgPSBidWNrZXQubG9nb1VybC5idWNrZXRzPy5bMF0/LmtleVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuYW1lOiBidWNrZXQua2V5LFxuICAgICAgICAgICAgZW1haWxzOiBidWNrZXQubWFpbC5idWNrZXRzXG4gICAgICAgICAgICAgIC5tYXAoKGJ1Y2tldCkgPT4gYnVja2V0LmtleSlcbiAgICAgICAgICAgICAgLmZpbHRlcigobWFpbCkgPT4gISFtYWlsKSxcbiAgICAgICAgICAgIHJlY29yZENvdW50OiBidWNrZXQuZG9jX2NvdW50LFxuICAgICAgICAgICAgLi4uKGxvZ29VcmwgJiYgeyBsb2dvVXJsOiBnZXRBc1VybChsb2dvVXJsKSB9KSxcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKVxuICBvcmdhbmlzYXRpb25zQ291bnQkID0gdGhpcy5vcmdhbmlzYXRpb25zQWdncyQucGlwZShcbiAgICBtYXAoKG9yZ2FuaXNhdGlvbnMpID0+IG9yZ2FuaXNhdGlvbnMubGVuZ3RoKVxuICApXG4gIG9yZ2FuaXNhdGlvbnMkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5vcmdhbmlzYXRpb25zV2l0aG91dEdyb3VwcyQsXG4gICAgdGhpcy5ncm91cHMkLnBpcGUoc3RhcnRXaXRoKG51bGwpKSxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtvcmdhbmlzYXRpb25zLCBncm91cHNdKSA9PiB7XG4gICAgICByZXR1cm4gIWdyb3VwcyA/IG9yZ2FuaXNhdGlvbnMgOiB0aGlzLm1hcFdpdGhHcm91cHMob3JnYW5pc2F0aW9ucywgZ3JvdXBzKVxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KClcbiAgKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZXNTZXJ2aWNlOiBFbGFzdGljc2VhcmNoU2VydmljZSxcbiAgICBwcml2YXRlIHNlYXJjaEFwaVNlcnZpY2U6IFNlYXJjaEFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBncm91cHNBcGlTZXJ2aWNlOiBHcm91cHNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGxhdGZvcm1TZXJ2aWNlOiBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge31cblxuICBwcml2YXRlIGdldCBsYW5nSW5kZXgoKSB7XG4gICAgcmV0dXJuIGdldExvY2FsaXplZEluZGV4S2V5KHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZylcbiAgfVxuXG4gIGVxdWFsc05vcm1hbGl6ZWRTdHJpbmdzKFxuICAgIHN0cjE6IHN0cmluZyxcbiAgICBzdHIyOiBzdHJpbmcsXG4gICAgcmVwbGFjZVNwZWNpYWxDaGFycyA9IHRydWVcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKCFzdHIxIHx8ICFzdHIyKSByZXR1cm4gZmFsc2VcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5ub3JtYWxpemVTdHJpbmcoc3RyMSwgcmVwbGFjZVNwZWNpYWxDaGFycykgPT09XG4gICAgICB0aGlzLm5vcm1hbGl6ZVN0cmluZyhzdHIyLCByZXBsYWNlU3BlY2lhbENoYXJzKVxuICAgIClcbiAgfVxuXG4gIG5vcm1hbGl6ZVN0cmluZyhzdHI6IHN0cmluZywgcmVwbGFjZVNwZWNpYWxDaGFycyA9IHRydWUpOiBzdHJpbmcge1xuICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZShzdHI6IHN0cmluZykge1xuICAgICAgcmV0dXJuIHN0clxuICAgICAgICAubm9ybWFsaXplKCdORkQnKSAvLyBkZWNvbXBvc2UgZ3JhcGhlbWVzIHRvIHJlbW92ZSBhY2NlbnRzIGZyb20gbGV0dGVyc1xuICAgICAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpIC8vIHJlbW92ZSBhY2NlbnQgY2hhcmFjdGVyc1xuICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgIH1cbiAgICBpZiAocmVwbGFjZVNwZWNpYWxDaGFycykge1xuICAgICAgcmV0dXJuIG5vcm1hbGl6ZShzdHIpLnJlcGxhY2UoL1teYS16MC05XS9nLCAnJykgLy8gcmVwbGFjZSBhbGwgZXhjZXB0IGxldHRlcnMgJiBudW1iZXJzXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBub3JtYWxpemUoc3RyKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWdncmVnYXRpb25TZWFyY2hSZXF1ZXN0KGduVmVyc2lvbjogc3RyaW5nKSB7XG4gICAgY29uc3Qgc2VtVmVyc2lvbiA9IHZhbGlkKGNvZXJjZShnblZlcnNpb24pKVxuICAgIHJldHVybiB0aGlzLmVzU2VydmljZS5nZXRTZWFyY2hSZXF1ZXN0Qm9keSh7XG4gICAgICBjb250YWN0OiB7XG4gICAgICAgIG5lc3RlZDoge1xuICAgICAgICAgIHBhdGg6ICdjb250YWN0Rm9yUmVzb3VyY2UnLFxuICAgICAgICB9LFxuICAgICAgICBhZ2dzOiB7XG4gICAgICAgICAgb3JnOiB7XG4gICAgICAgICAgICB0ZXJtczoge1xuICAgICAgICAgICAgICBmaWVsZDpcbiAgICAgICAgICAgICAgICBzZW1WZXJzaW9uID09PSAnNC4yLjInXG4gICAgICAgICAgICAgICAgICA/ICdjb250YWN0Rm9yUmVzb3VyY2Uub3JnYW5pc2F0aW9uJ1xuICAgICAgICAgICAgICAgICAgOiAnY29udGFjdEZvclJlc291cmNlLm9yZ2FuaXNhdGlvbk9iamVjdC5kZWZhdWx0LmtleXdvcmQnLFxuICAgICAgICAgICAgICBleGNsdWRlOiAnJyxcbiAgICAgICAgICAgICAgc2l6ZTogNTAwMCxcbiAgICAgICAgICAgICAgb3JkZXI6IHsgX2tleTogJ2FzYycgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhZ2dzOiB7XG4gICAgICAgICAgICAgIG1haWw6IHtcbiAgICAgICAgICAgICAgICB0ZXJtczoge1xuICAgICAgICAgICAgICAgICAgc2l6ZTogNTAsXG4gICAgICAgICAgICAgICAgICBleGNsdWRlOiAnJyxcbiAgICAgICAgICAgICAgICAgIGZpZWxkOiBzYXRpc2ZpZXMoc2VtVmVyc2lvbiwgJzQuMi4yIC0gNC4yLjQnKVxuICAgICAgICAgICAgICAgICAgICA/ICdjb250YWN0Rm9yUmVzb3VyY2UuZW1haWwua2V5d29yZCdcbiAgICAgICAgICAgICAgICAgICAgOiAnY29udGFjdEZvclJlc291cmNlLmVtYWlsJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBsb2dvVXJsOiB7XG4gICAgICAgICAgICAgICAgdGVybXM6IHtcbiAgICAgICAgICAgICAgICAgIHNpemU6IDEsXG4gICAgICAgICAgICAgICAgICBleGNsdWRlOiAnJyxcbiAgICAgICAgICAgICAgICAgIGZpZWxkOiAnY29udGFjdEZvclJlc291cmNlLmxvZ28ua2V5d29yZCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBvcmdGb3JSZXNvdXJjZToge1xuICAgICAgICB0ZXJtczoge1xuICAgICAgICAgIHNpemU6IDUwMDAsXG4gICAgICAgICAgZXhjbHVkZTogJycsXG4gICAgICAgICAgZmllbGQ6XG4gICAgICAgICAgICBzZW1WZXJzaW9uID09PSAnNC4yLjInXG4gICAgICAgICAgICAgID8gJ09yZ0ZvclJlc291cmNlJ1xuICAgICAgICAgICAgICA6ICdPcmdGb3JSZXNvdXJjZU9iamVjdC5kZWZhdWx0JyxcbiAgICAgICAgICBvcmRlcjoge1xuICAgICAgICAgICAgX2tleTogJ2FzYycsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgbWFwV2l0aEdyb3VwcyhcbiAgICBvcmdhbmlzYXRpb25zOiBJbmNvbXBsZXRlT3JnYW5pemF0aW9uW10sXG4gICAgZ3JvdXBzOiBHcm91cEFwaU1vZGVsW11cbiAgKTogT3JnYW5pemF0aW9uW10ge1xuICAgIHJldHVybiBvcmdhbmlzYXRpb25zLm1hcCgob3JnYW5pc2F0aW9uKSA9PiB7XG4gICAgICBjb25zdCBncm91cCA9XG4gICAgICAgIGdyb3Vwcy5maW5kKChncm91cCkgPT5cbiAgICAgICAgICB0aGlzLmVxdWFsc05vcm1hbGl6ZWRTdHJpbmdzKFxuICAgICAgICAgICAgZ3JvdXAubGFiZWxbJ2VuZyddID8gZ3JvdXAubGFiZWxbJ2VuZyddIDogZ3JvdXAubmFtZSxcbiAgICAgICAgICAgIG9yZ2FuaXNhdGlvbi5uYW1lXG4gICAgICAgICAgKVxuICAgICAgICApID8/XG4gICAgICAgIGdyb3Vwc1xuICAgICAgICAgIC5maWx0ZXIoKGdyb3VwKSA9PiAhIWdyb3VwLmVtYWlsKVxuICAgICAgICAgIC5maW5kKChncm91cCkgPT5cbiAgICAgICAgICAgIG9yZ2FuaXNhdGlvbi5lbWFpbHNcbiAgICAgICAgICAgICAgLm1hcCgobWFpbCkgPT4gdGhpcy5ub3JtYWxpemVTdHJpbmcobWFpbCwgZmFsc2UpKVxuICAgICAgICAgICAgICAuaW5jbHVkZXModGhpcy5ub3JtYWxpemVTdHJpbmcoZ3JvdXAuZW1haWwsIGZhbHNlKSlcbiAgICAgICAgICApXG4gICAgICBjb25zdCB7IGVtYWlscywgLi4uZnVsbE9yZyB9ID0gb3JnYW5pc2F0aW9uXG4gICAgICBpZiAoIWdyb3VwKSByZXR1cm4gZnVsbE9yZ1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uZnVsbE9yZyxcbiAgICAgICAgZW1haWw6IGVtYWlsc1swXSxcbiAgICAgICAgLi4uKGdyb3VwLmRlc2NyaXB0aW9uICYmIHsgZGVzY3JpcHRpb246IGdyb3VwLmRlc2NyaXB0aW9uIH0pLFxuICAgICAgICAuLi4oZ3JvdXAubG9nbyAmJiB7IGxvZ29Vcmw6IGdldEFzVXJsKGAke0lNQUdFX1VSTH0ke2dyb3VwLmxvZ299YCkgfSksXG4gICAgICAgIC4uLihncm91cC53ZWJzaXRlICYmIHsgd2Vic2l0ZTogZ2V0QXNVcmwoZ3JvdXAud2Vic2l0ZSkgfSksXG4gICAgICAgIC4uLihncm91cC5lbWFpbCAmJiB7IGVtYWlsOiBncm91cC5lbWFpbCB9KSxcbiAgICAgIH0gYXMgT3JnYW5pemF0aW9uXG4gICAgfSlcbiAgfVxuXG4gIGdldEZpbHRlcnNGb3JPcmdzKG9yZ2FuaXNhdGlvbnM6IE9yZ2FuaXphdGlvbltdKTogT2JzZXJ2YWJsZTxGaWVsZEZpbHRlcnM+IHtcbiAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybVNlcnZpY2UuZ2V0QXBpVmVyc2lvbigpLnBpcGUoXG4gICAgICBtYXAoKGduVmVyc2lvbikgPT4ge1xuICAgICAgICBjb25zdCBmaWVsZE5hbWUgPSBnblZlcnNpb24uc3RhcnRzV2l0aCgnNC4yLjInKVxuICAgICAgICAgID8gJ09yZ0ZvclJlc291cmNlJ1xuICAgICAgICAgIDogJ09yZ0ZvclJlc291cmNlT2JqZWN0LmRlZmF1bHQnXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgW2ZpZWxkTmFtZV06IG9yZ2FuaXNhdGlvbnMucmVkdWNlKFxuICAgICAgICAgICAgKHByZXYsIGN1cnIpID0+ICh7IC4uLnByZXYsIFtjdXJyLm5hbWVdOiB0cnVlIH0pLFxuICAgICAgICAgICAge31cbiAgICAgICAgICApLFxuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGdldE9yZ3NGcm9tRmlsdGVycyhmaWx0ZXJzOiBGaWVsZEZpbHRlcnMpOiBPYnNlcnZhYmxlPE9yZ2FuaXphdGlvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMucGxhdGZvcm1TZXJ2aWNlLmdldEFwaVZlcnNpb24oKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChnblZlcnNpb24pID0+IHtcbiAgICAgICAgY29uc3QgZmllbGROYW1lID0gZ25WZXJzaW9uLnN0YXJ0c1dpdGgoJzQuMi4yJylcbiAgICAgICAgICA/ICdPcmdGb3JSZXNvdXJjZSdcbiAgICAgICAgICA6ICdPcmdGb3JSZXNvdXJjZU9iamVjdC5kZWZhdWx0J1xuXG4gICAgICAgIGlmICghKGZpZWxkTmFtZSBpbiBmaWx0ZXJzKSkgcmV0dXJuIG9mKFtdKVxuXG4gICAgICAgIHJldHVybiB0aGlzLm9yZ2FuaXNhdGlvbnMkLnBpcGUoXG4gICAgICAgICAgbWFwKChvcmdzOiBJbmNvbXBsZXRlT3JnYW5pemF0aW9uW10pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9yZ05hbWVzID0gT2JqZWN0LmtleXMoXG4gICAgICAgICAgICAgIGZpbHRlcnNbZmllbGROYW1lXSBhcyBGaWVsZEZpbHRlckJ5VmFsdWVzXG4gICAgICAgICAgICApXG4gICAgICAgICAgICByZXR1cm4gb3JnTmFtZXMubWFwKChuYW1lKSA9PlxuICAgICAgICAgICAgICBvcmdzLmZpbmQoXG4gICAgICAgICAgICAgICAgKG9yZzogT3JnYW5pemF0aW9uIHwgSW5jb21wbGV0ZU9yZ2FuaXphdGlvbikgPT5cbiAgICAgICAgICAgICAgICAgIG9yZy5uYW1lID09PSBuYW1lXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGFkZE9yZ2FuaXphdGlvblRvUmVjb3JkRnJvbVNvdXJjZShcbiAgICBzb3VyY2U6IE1ldGFkYXRhT2JqZWN0LFxuICAgIHJlY29yZDogQ2F0YWxvZ1JlY29yZFxuICApOiBPYnNlcnZhYmxlPENhdGFsb2dSZWNvcmQ+IHtcbiAgICBjb25zdCBjb250YWN0czogU291cmNlV2l0aFVua25vd25Qcm9wc1tdID0gZ2V0QXNBcnJheShcbiAgICAgIHNlbGVjdEZhbGxiYWNrKFxuICAgICAgICBzZWxlY3RUcmFuc2xhdGVkRmllbGQoc291cmNlLCAnY29udGFjdE9iamVjdCcsIHRoaXMubGFuZ0luZGV4KSxcbiAgICAgICAgc2VsZWN0RmllbGQoc291cmNlLCAnY29udGFjdCcpXG4gICAgICApXG4gICAgKVxuICAgIGNvbnN0IHJlc291cmNlQ29udGFjdHM6IFNvdXJjZVdpdGhVbmtub3duUHJvcHNbXSA9IGdldEFzQXJyYXkoXG4gICAgICBzZWxlY3RGYWxsYmFjayhcbiAgICAgICAgc2VsZWN0VHJhbnNsYXRlZEZpZWxkKFxuICAgICAgICAgIHNvdXJjZSxcbiAgICAgICAgICAnY29udGFjdEZvclJlc291cmNlT2JqZWN0JyxcbiAgICAgICAgICB0aGlzLmxhbmdJbmRleFxuICAgICAgICApLFxuICAgICAgICBzZWxlY3RGaWVsZChzb3VyY2UsICdjb250YWN0Rm9yUmVzb3VyY2UnKVxuICAgICAgKVxuICAgIClcbiAgICBjb25zdCBhbGxDb250YWN0T3JncyA9IHJlc291cmNlQ29udGFjdHNcbiAgICAgIC5jb25jYXQoY29udGFjdHMpXG4gICAgICAubWFwKChjb250YWN0KSA9PiBtYXBPcmdhbml6YXRpb24oY29udGFjdCwgdGhpcy5sYW5nSW5kZXgpKVxuXG4gICAgaWYgKCFhbGxDb250YWN0T3Jncy5sZW5ndGgpIHJldHVybiBvZihyZWNvcmQpXG5cbiAgICBjb25zdCBvd25lck9yZ2FuaXphdGlvbiA9IGFsbENvbnRhY3RPcmdzWzBdXG5cbiAgICAvLyByZWFkIHRoZSBvd25lciBncm91cCBhcyB3ZWxsIHRvIGhhdmUgYSBmYWxsYmFjayBsb2dvXG4gICAgY29uc3QgZ3JvdXBJZCA9IHNlbGVjdEZpZWxkKHNvdXJjZSwgJ2dyb3VwT3duZXInKVxuICAgIGNvbnN0IGdyb3VwJCA9IHRoaXMuZ3JvdXBzJC5waXBlKFxuICAgICAgbWFwKChncm91cHMpID0+XG4gICAgICAgIGdyb3Vwcy5maW5kKChncm91cCkgPT4ge1xuICAgICAgICAgIHJldHVybiBncm91cC5pZCA9PT0gTnVtYmVyKGdyb3VwSWQpXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKVxuXG4gICAgcmV0dXJuIHRoaXMub3JnYW5pc2F0aW9ucyQucGlwZShcbiAgICAgIHRha2VMYXN0KDEpLFxuICAgICAgd2l0aExhdGVzdEZyb20oZ3JvdXAkKSxcbiAgICAgIG1hcCgoW29yZ2FuaXNhdGlvbnMsIGdyb3VwXTogW09yZ2FuaXphdGlvbltdLCBHcm91cEFwaU1vZGVsXSkgPT4ge1xuICAgICAgICBjb25zdCByZWNvcmRPcmdhbmlzYXRpb24gPSBvcmdhbmlzYXRpb25zLmZpbHRlcihcbiAgICAgICAgICAob3JnKSA9PiBvcmcubmFtZSA9PT0gb3duZXJPcmdhbml6YXRpb24ubmFtZVxuICAgICAgICApWzBdXG4gICAgICAgIGNvbnN0IGxvZ29VcmwgPSBncm91cD8ubG9nbyAmJiBnZXRBc1VybChgJHtJTUFHRV9VUkx9JHtncm91cC5sb2dvfWApXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucmVjb3JkLFxuICAgICAgICAgIG93bmVyT3JnYW5pemF0aW9uOiB7XG4gICAgICAgICAgICBsb2dvVXJsLFxuICAgICAgICAgICAgLi4ub3duZXJPcmdhbml6YXRpb24sXG4gICAgICAgICAgICAuLi5yZWNvcmRPcmdhbmlzYXRpb24sXG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gIH1cbn1cbiJdfQ==
@@ -3,25 +3,29 @@ import { catchError, filter, map, mergeMap, shareReplay, tap, } from 'rxjs/opera
3
3
  import { MeApiService, RecordsApiService, RegistriesApiService, SiteApiService, ToolsApiService, UserfeedbackApiService, UsersApiService, } from '../../../../../../../libs/data-access/gn4/src';
4
4
  import { Gn4PlatformMapper } from './gn4-platform.mapper';
5
5
  import { ltr } from 'semver';
6
- import { LangService } from '../../../../../../../libs/util/i18n/src';
7
6
  import { HttpClient, HttpEventType } from '@angular/common/http';
8
7
  import { noDuplicateFileName } from '../../../../../../../libs/util/shared/src';
9
8
  import { combineLatest, forkJoin, of, switchMap, throwError, } from 'rxjs';
9
+ import { TranslateService } from '@ngx-translate/core';
10
+ import { getLang3FromLang2 } from '../../../../../../../libs/util/i18n/src';
10
11
  import * as i0 from "@angular/core";
11
12
  import * as i1 from "../../../../../../../libs/data-access/gn4/src";
12
13
  import * as i2 from "./gn4-platform.mapper";
13
- import * as i3 from "../../../../../../../libs/util/i18n/src";
14
+ import * as i3 from "@ngx-translate/core";
14
15
  import * as i4 from "@angular/common/http";
15
16
  const minApiVersion = '4.2.2';
16
17
  export class Gn4PlatformService {
17
- constructor(siteApiService, meApi, usersApi, mapper, toolsApiService, registriesApiService, langService, userfeedbackApiService, httpClient, recordsApiService) {
18
+ get lang3() {
19
+ return getLang3FromLang2(this.translateService.currentLang);
20
+ }
21
+ constructor(siteApiService, meApi, usersApi, mapper, toolsApiService, registriesApiService, translateService, userfeedbackApiService, httpClient, recordsApiService) {
18
22
  this.siteApiService = siteApiService;
19
23
  this.meApi = meApi;
20
24
  this.usersApi = usersApi;
21
25
  this.mapper = mapper;
22
26
  this.toolsApiService = toolsApiService;
23
27
  this.registriesApiService = registriesApiService;
24
- this.langService = langService;
28
+ this.translateService = translateService;
25
29
  this.userfeedbackApiService = userfeedbackApiService;
26
30
  this.httpClient = httpClient;
27
31
  this.recordsApiService = recordsApiService;
@@ -38,6 +42,9 @@ export class Gn4PlatformService {
38
42
  throw new Error(`Gn4 API version is not compatible.\nMinimum: ${minApiVersion}\nYour version: ${version}`);
39
43
  }
40
44
  }), shareReplay(1));
45
+ this.allowEditHarvestedMd$ = this.settings$.pipe(map((info) => {
46
+ return info['system/harvester/enableEditing'];
47
+ }), shareReplay(1));
41
48
  /**
42
49
  * A map of already loaded thesauri (groups of keywords); the key is a URI
43
50
  * @private
@@ -58,6 +65,9 @@ export class Gn4PlatformService {
58
65
  getApiVersion() {
59
66
  return this.apiVersion$;
60
67
  }
68
+ getAllowEditHarvestedMd() {
69
+ return this.allowEditHarvestedMd$;
70
+ }
61
71
  getMe() {
62
72
  return this.me$;
63
73
  }
@@ -95,22 +105,22 @@ export class Gn4PlatformService {
95
105
  keywordTypes.map((keywordType) => {
96
106
  selectedThesauri.push(...thesaurus.filter((thes) => thes.dname === keywordType));
97
107
  });
98
- return this.registriesApiService.searchKeywords(query, this.langService.iso3, 10, 0, null, selectedThesauri.map((thes) => thes.key), null, `*${query}*`);
108
+ return this.registriesApiService.searchKeywords(query, this.lang3, 10, 0, null, selectedThesauri.map((thes) => thes.key), null, `*${query}*`);
99
109
  }));
100
110
  return combineLatest([keywords$, this.allThesaurus$]).pipe(map(([keywords, thesaurus]) => {
101
- return this.mapper.keywordsFromApi(keywords, thesaurus, this.langService.iso3);
111
+ return this.mapper.keywordsFromApi(keywords, thesaurus, this.lang3);
102
112
  }));
103
113
  }
104
114
  getKeywordsByUri(uri) {
105
115
  if (this.keywordsByThesauri[uri]) {
106
116
  return this.keywordsByThesauri[uri];
107
117
  }
108
- const keywords$ = this.registriesApiService.searchKeywords(null, this.langService.iso3, 1000, 0, null, null, null, `${uri}*`);
118
+ const keywords$ = this.registriesApiService.searchKeywords(null, this.lang3, 1000, 0, null, null, null, `${uri}*`);
109
119
  this.keywordsByThesauri[uri] = combineLatest([
110
120
  keywords$,
111
121
  this.allThesaurus$,
112
122
  ]).pipe(map(([keywords, thesaurus]) => {
113
- return this.mapper.keywordsFromApi(keywords, thesaurus, this.langService.iso3);
123
+ return this.mapper.keywordsFromApi(keywords, thesaurus, this.lang3);
114
124
  }), shareReplay(1));
115
125
  return this.keywordsByThesauri[uri];
116
126
  }
@@ -120,8 +130,8 @@ export class Gn4PlatformService {
120
130
  if (!thesauri.find((thes) => thes.key === strippedThesaurusId))
121
131
  return of([]);
122
132
  return this.registriesApiService
123
- .searchKeywords(query, this.langService.iso3, 100, 0, null, [strippedThesaurusId], null)
124
- .pipe(map((keywords) => this.mapper.keywordsFromApi(keywords, thesauri, this.langService.iso3)));
133
+ .searchKeywords(query, this.lang3, 100, 0, null, [strippedThesaurusId], null)
134
+ .pipe(map((keywords) => this.mapper.keywordsFromApi(keywords, thesauri, this.lang3)));
125
135
  }));
126
136
  }
127
137
  getUserFeedbacks(uuid) {
@@ -153,9 +163,13 @@ export class Gn4PlatformService {
153
163
  ...(Array.isArray(onlines) ? onlines : []),
154
164
  ...(Array.isArray(thumbnails) ? thumbnails : []),
155
165
  ].map((resource) => Object.values(resource.url)[0]);
156
- const fileToDelete = attachments
157
- .filter((attachment) => !urlsToKeep.includes(attachment.url))
158
- .map((attachment) => attachment.filename);
166
+ const fileToDelete = attachments.reduce((acc, attachment) => {
167
+ if (!urlsToKeep.includes(attachment.url) &&
168
+ attachment.filename !== 'datavizConfig.json') {
169
+ acc.push(attachment.filename);
170
+ }
171
+ return acc;
172
+ }, []);
159
173
  return fileToDelete;
160
174
  }), mergeMap((filesToDelete) => filesToDelete.length
161
175
  ? forkJoin(filesToDelete.map((filename) => this.recordsApiService.delResource(record.uniqueIdentifier, filename))).pipe(map(() => undefined))
@@ -164,44 +178,65 @@ export class Gn4PlatformService {
164
178
  throw error;
165
179
  }));
166
180
  }
167
- attachFileToRecord(recordUuid, file) {
181
+ uploadFile(recordUuid, file) {
168
182
  let sizeBytes = -1;
169
- // Check if the resource already exists on the server and rename it if that's the case
170
- return this.getRecordAttachments(recordUuid).pipe(map((recordAttachement) => recordAttachement.map((r) => r.fileName)), switchMap((fileNames) => {
171
- const fileName = noDuplicateFileName(file.name, fileNames);
172
- const fileCopy = new File([file], fileName, { type: file.type });
173
- return this.recordsApiService
174
- .putResource(recordUuid, fileCopy, 'public', undefined, 'events', true)
175
- .pipe(map((event) => {
176
- if (event.type === HttpEventType.UploadProgress) {
177
- sizeBytes = event.total;
178
- return {
179
- type: 'progress',
180
- progress: event.total
181
- ? Math.round((100 * event.loaded) / event.total)
182
- : 0,
183
- };
184
- }
185
- if (event.type === HttpEventType.Response) {
186
- return {
187
- type: 'success',
188
- attachment: {
189
- url: new URL(event.body.url),
190
- fileName: event.body.filename,
191
- },
192
- sizeBytes,
193
- };
194
- }
195
- return undefined;
196
- }), filter((event) => !!event));
197
- }), catchError((error) => {
183
+ return this.recordsApiService
184
+ .putResource(recordUuid, file, 'public', undefined, 'events', true)
185
+ .pipe(map((event) => {
186
+ if (event.type === HttpEventType.UploadProgress) {
187
+ sizeBytes = event.total;
188
+ return {
189
+ type: 'progress',
190
+ progress: event.total
191
+ ? Math.round((100 * event.loaded) / event.total)
192
+ : 0,
193
+ };
194
+ }
195
+ if (event.type === HttpEventType.Response) {
196
+ return {
197
+ type: 'success',
198
+ attachment: {
199
+ url: new URL(event.body.url),
200
+ fileName: event.body.filename,
201
+ },
202
+ sizeBytes,
203
+ };
204
+ }
205
+ return undefined;
206
+ }), filter((event) => !!event), catchError((error) => {
198
207
  return throwError(() => new Error(error.error?.message ?? error.message));
199
208
  }));
200
209
  }
201
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Gn4PlatformService, deps: [{ token: i1.SiteApiService }, { token: i1.MeApiService }, { token: i1.UsersApiService }, { token: i2.Gn4PlatformMapper }, { token: i1.ToolsApiService }, { token: i1.RegistriesApiService }, { token: i3.LangService }, { token: i1.UserfeedbackApiService }, { token: i4.HttpClient }, { token: i1.RecordsApiService }], target: i0.ɵɵFactoryTarget.Injectable }); }
210
+ getFileContent(url) {
211
+ return this.httpClient.get(url.toString(), { responseType: 'text' }).pipe(map((text) => {
212
+ const parsed = JSON.parse(text);
213
+ if (typeof parsed === 'object') {
214
+ return parsed;
215
+ }
216
+ const decoded = atob(parsed);
217
+ return JSON.parse(decoded);
218
+ }));
219
+ }
220
+ attachFileToRecord(recordUuid, file, removeDuplicate = false) {
221
+ return this.getRecordAttachments(recordUuid).pipe(map((recordAttachments) => recordAttachments.map((r) => r.fileName)), switchMap((fileNames) => {
222
+ const fileName = file.name;
223
+ if (removeDuplicate && fileNames.includes(file.name)) {
224
+ return this.recordsApiService.delResource(recordUuid, fileName).pipe(switchMap(() => {
225
+ const fileCopy = new File([file], fileName, { type: file.type });
226
+ return this.uploadFile(recordUuid, fileCopy);
227
+ }));
228
+ }
229
+ else {
230
+ const finalFileName = noDuplicateFileName(fileName, fileNames);
231
+ const fileCopy = new File([file], finalFileName, { type: file.type });
232
+ return this.uploadFile(recordUuid, fileCopy);
233
+ }
234
+ }));
235
+ }
236
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Gn4PlatformService, deps: [{ token: i1.SiteApiService }, { token: i1.MeApiService }, { token: i1.UsersApiService }, { token: i2.Gn4PlatformMapper }, { token: i1.ToolsApiService }, { token: i1.RegistriesApiService }, { token: i3.TranslateService }, { token: i1.UserfeedbackApiService }, { token: i4.HttpClient }, { token: i1.RecordsApiService }], target: i0.ɵɵFactoryTarget.Injectable }); }
202
237
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Gn4PlatformService }); }
203
238
  }
204
239
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Gn4PlatformService, decorators: [{
205
240
  type: Injectable
206
- }], ctorParameters: () => [{ type: i1.SiteApiService }, { type: i1.MeApiService }, { type: i1.UsersApiService }, { type: i2.Gn4PlatformMapper }, { type: i1.ToolsApiService }, { type: i1.RegistriesApiService }, { type: i3.LangService }, { type: i1.UserfeedbackApiService }, { type: i4.HttpClient }, { type: i1.RecordsApiService }] });
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ240LXBsYXRmb3JtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9yZXBvc2l0b3J5L3NyYy9saWIvZ240L3BsYXRmb3JtL2duNC1wbGF0Zm9ybS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUNMLFVBQVUsRUFDVixNQUFNLEVBQ04sR0FBRyxFQUNILFFBQVEsRUFDUixXQUFXLEVBQ1gsR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUNMLFlBQVksRUFDWixpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxlQUFlLEVBQ2Ysc0JBQXNCLEVBQ3RCLGVBQWUsR0FDaEIsTUFBTSwrQ0FBK0MsQ0FBQTtBQVl0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQzVCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBTWhFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFBO0FBQy9FLE9BQU8sRUFDTCxhQUFhLEVBQ2IsUUFBUSxFQUVSLEVBQUUsRUFDRixTQUFTLEVBQ1QsVUFBVSxHQUNYLE1BQU0sTUFBTSxDQUFBOzs7Ozs7QUFFYixNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUE7QUFHN0IsTUFBTSxPQUFPLGtCQUFrQjtJQXVDN0IsWUFDVSxjQUE4QixFQUM5QixLQUFtQixFQUNuQixRQUF5QixFQUN6QixNQUF5QixFQUN6QixlQUFnQyxFQUNoQyxvQkFBMEMsRUFDMUMsV0FBd0IsRUFDeEIs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QUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQzs0QkFDaEQsQ0FBQyxDQUFDLENBQUM7cUJBQ1MsQ0FBQTtnQkFDbEIsQ0FBQztnQkFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUMxQyxPQUFPO3dCQUNMLElBQUksRUFBRSxTQUFTO3dCQUNmLFVBQVUsRUFBRTs0QkFDVixHQUFHLEVBQUUsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7NEJBQzVCLFFBQVEsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVE7eUJBQzlCO3dCQUNELFNBQVM7cUJBQ0ssQ0FBQTtnQkFDbEIsQ0FBQztnQkFDRCxPQUFPLFNBQVMsQ0FBQTtZQUNsQixDQUFDLENBQUMsRUFDRixNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FDM0IsQ0FBQTtRQUNMLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLE9BQU8sVUFBVSxDQUNmLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FDdkQsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUNILENBQUE7SUFDSCxDQUFDOytHQTVWVSxrQkFBa0I7bUhBQWxCLGtCQUFrQjs7NEZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgY2F0Y2hFcnJvcixcbiAgZmlsdGVyLFxuICBtYXAsXG4gIG1lcmdlTWFwLFxuICBzaGFyZVJlcGxheSxcbiAgdGFwLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7XG4gIE1lQXBpU2VydmljZSxcbiAgUmVjb3Jkc0FwaVNlcnZpY2UsXG4gIFJlZ2lzdHJpZXNBcGlTZXJ2aWNlLFxuICBTaXRlQXBpU2VydmljZSxcbiAgVG9vbHNBcGlTZXJ2aWNlLFxuICBVc2VyZmVlZGJhY2tBcGlTZXJ2aWNlLFxuICBVc2Vyc0FwaVNlcnZpY2UsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3MvZ240L3NyYydcbmltcG9ydCB7XG4gIFBsYXRmb3JtU2VydmljZUludGVyZmFjZSxcbiAgVXBsb2FkRXZlbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL3BsYXRmb3JtLnNlcnZpY2UuaW50ZXJmYWNlJ1xuaW1wb3J0IHsgVXNlck1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvdXNlci91c2VyLm1vZGVsJ1xuaW1wb3J0IHtcbiAgQ2F0YWxvZ1JlY29yZCxcbiAgS2V5d29yZCxcbiAgT3JnYW5pemF0aW9uLFxuICBVc2VyRmVlZGJhY2ssXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IEduNFBsYXRmb3JtTWFwcGVyIH0gZnJvbSAnLi9nbjQtcGxhdGZvcm0ubWFwcGVyJ1xuaW1wb3J0IHsgbHRyIH0gZnJvbSAnc2VtdmVyJ1xuaW1wb3J0IHsgTGFuZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvaTE4bi9zcmMnXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXZlbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQge1xuICBLZXl3b3JkQXBpUmVzcG9uc2UsXG4gIFRoZXNhdXJ1c0FwaVJlc3BvbnNlLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjJ1xuaW1wb3J0IHsgS2V5d29yZFR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC90aGVzYXVydXMnXG5pbXBvcnQgeyBub0R1cGxpY2F0ZUZpbGVOYW1lIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5pbXBvcnQge1xuICBjb21iaW5lTGF0ZXN0LFxuICBmb3JrSm9pbixcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHN3aXRjaE1hcCxcbiAgdGhyb3dFcnJvcixcbn0gZnJvbSAncnhqcydcblxuY29uc3QgbWluQXBpVmVyc2lvbiA9ICc0LjIuMidcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEduNFBsYXRmb3JtU2VydmljZSBpbXBsZW1lbnRzIFBsYXRmb3JtU2VydmljZUludGVyZmFjZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHlwZSA9ICdHZW9OZXR3b3JrJ1xuICBwcml2YXRlIHJlYWRvbmx5IG1lJDogT2JzZXJ2YWJsZTxVc2VyTW9kZWw+XG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlcnMkOiBPYnNlcnZhYmxlPFVzZXJNb2RlbFtdPlxuICBwcml2YXRlIHJlYWRvbmx5IGlzVXNlckFub255bW91cyQ6IE9ic2VydmFibGU8Ym9vbGVhbj5cblxuICBwcml2YXRlIGtleVRyYW5zbGF0aW9ucyQgPSB0aGlzLnRvb2xzQXBpU2VydmljZVxuICAgIC5nZXRUcmFuc2xhdGlvbnNQYWNrYWdlMSgnZ251aScpXG4gICAgLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgY29uc29sZS53YXJuKCdFcnJvciB3aGlsZSBsb2FkaW5nIGdudWkgbGFuZ3VhZ2UgcGFja2FnZScpXG4gICAgICAgIHJldHVybiBvZih7fSlcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApXG5cbiAgcHJpdmF0ZSBzZXR0aW5ncyQgPSBvZih0cnVlKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnNpdGVBcGlTZXJ2aWNlLmdldFNpdGVPclBvcnRhbERlc2NyaXB0aW9uKCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gIClcblxuICBwcml2YXRlIHJlYWRvbmx5IGFwaVZlcnNpb24kID0gdGhpcy5zZXR0aW5ncyQucGlwZShcbiAgICBtYXAoKGluZm8pID0+IGluZm9bJ3N5c3RlbS9wbGF0Zm9ybS92ZXJzaW9uJ10gYXMgc3RyaW5nKSxcbiAgICB0YXAoKHZlcnNpb24pID0+IHtcbiAgICAgIGlmIChsdHIodmVyc2lvbiwgbWluQXBpVmVyc2lvbikpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBHbjQgQVBJIHZlcnNpb24gaXMgbm90IGNvbXBhdGlibGUuXFxuTWluaW11bTogJHttaW5BcGlWZXJzaW9ufVxcbllvdXIgdmVyc2lvbjogJHt2ZXJzaW9ufWBcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gIClcblxuICAvKipcbiAgICogQSBtYXAgb2YgYWxyZWFkeSBsb2FkZWQgdGhlc2F1cmkgKGdyb3VwcyBvZiBrZXl3b3Jkcyk7IHRoZSBrZXkgaXMgYSBVUklcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUga2V5d29yZHNCeVRoZXNhdXJpOiBSZWNvcmQ8c3RyaW5nLCBPYnNlcnZhYmxlPEtleXdvcmRbXT4+ID0ge31cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNpdGVBcGlTZXJ2aWNlOiBTaXRlQXBpU2VydmljZSxcbiAgICBwcml2YXRlIG1lQXBpOiBNZUFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2Vyc0FwaTogVXNlcnNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWFwcGVyOiBHbjRQbGF0Zm9ybU1hcHBlcixcbiAgICBwcml2YXRlIHRvb2xzQXBpU2VydmljZTogVG9vbHNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVnaXN0cmllc0FwaVNlcnZpY2U6IFJlZ2lzdHJpZXNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgbGFuZ1NlcnZpY2U6IExhbmdTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlcmZlZWRiYWNrQXBpU2VydmljZTogVXNlcmZlZWRiYWNrQXBpU2VydmljZSxcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSByZWNvcmRzQXBpU2VydmljZTogUmVjb3Jkc0FwaVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5tZSQgPSB0aGlzLm1lQXBpLmdldE1lKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoYXBpVXNlcikgPT4gdGhpcy5tYXBwZXIudXNlckZyb21NZUFwaShhcGlVc2VyKSksXG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICAgKVxuXG4gICAgdGhpcy5pc1VzZXJBbm9ueW1vdXMkID0gdGhpcy5tZSQucGlwZShcbiAgICAgIG1hcCgodXNlcikgPT4gIXVzZXIgfHwgISgnaWQnIGluIHVzZXIpKVxuICAgIClcblxuICAgIHRoaXMudXNlcnMkID0gdGhpcy51c2Vyc0FwaS5nZXRVc2VycygpLnBpcGUoXG4gICAgICBtYXAoKHVzZXJzKSA9PiB1c2Vycy5tYXAoKHVzZXIpID0+IHRoaXMubWFwcGVyLnVzZXJGcm9tQXBpKHVzZXIpKSksXG4gICAgICBzaGFyZVJlcGxheSgpXG4gICAgKVxuICB9XG5cbiAgZ2V0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnR5cGVcbiAgfVxuXG4gIGdldEFwaVZlcnNpb24oKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5hcGlWZXJzaW9uJFxuICB9XG5cbiAgZ2V0TWUoKTogT2JzZXJ2YWJsZTxVc2VyTW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5tZSRcbiAgfVxuXG4gIGlzQW5vbnltb3VzKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmlzVXNlckFub255bW91cyRcbiAgfVxuXG4gIGdldE9yZ2FuaXphdGlvbnMoKTogT2JzZXJ2YWJsZTxPcmdhbml6YXRpb25bXT4ge1xuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxuXG4gIGdldFVzZXJzQnlPcmdhbml6YXRpb24ob3JnYW5pc2F0aW9uOiBPcmdhbml6YXRpb24pOiBPYnNlcnZhYmxlPFVzZXJNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG5cbiAgZ2V0VXNlcnMoKTogT2JzZXJ2YWJsZTxVc2VyTW9kZWxbXT4ge1xuICAgIHJldHVybiB0aGlzLnVzZXJzJFxuICB9XG5cbiAgdHJhbnNsYXRlS2V5KGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAvLyBpZiB0aGUga2V5IGlzIGEgVVJJLCB1c2UgdGhlIHJlZ2lzdHJpZXMgQVBJIHRvIGxvb2sgZm9yIHRoZSB0cmFuc2xhdGlvblxuICAgIGlmIChrZXkubWF0Y2goL15odHRwcz86XFwvXFwvLykpIHtcbiAgICAgIC8vIHRoZSB0aGVzYXVydXMgVVJJIGlzIGluZmVycmVkIGJ5IHJlbW92aW5nIGEgcGFydCBvZiB0aGUga2V5d29yZCBVUklcbiAgICAgIC8vIHRoaXMgaXMgbm90IGV4YWN0IHNjaWVuY2UgYnV0IGl0J3MgT0ssIHdlJ2xsIHN0aWxsIGVuZCB1cCBsb2FkaW5nIGEgYnVuY2ggb2Yga2V5d29yZHMgYXQgb25jZSBhbnl3YXlcbiAgICAgIGNvbnN0IHRoZXNhdXJ1c1VyaSA9IGtleS5yZXBsYWNlKC9cXC8oW14vXSspJC8sICcvJylcbiAgICAgIHJldHVybiB0aGlzLmdldEtleXdvcmRzQnlVcmkodGhlc2F1cnVzVXJpKS5waXBlKFxuICAgICAgICBtYXAoKHRoZXNhdXJ1cykgPT4ge1xuICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGVzYXVydXMpIHtcbiAgICAgICAgICAgIGlmIChpdGVtLmtleSA9PT0ga2V5KSByZXR1cm4gaXRlbS5sYWJlbFxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4ga2V5XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiB0aGlzLmtleVRyYW5zbGF0aW9ucyQucGlwZShtYXAoKHRyYW5zbGF0aW9ucykgPT4gdHJhbnNsYXRpb25zW2tleV0pKVxuICB9XG5cbiAgcHJpdmF0ZSBhbGxUaGVzYXVydXMkID0gdGhpcy5odHRwQ2xpZW50XG4gICAgLmdldChcbiAgICAgIGAke3RoaXMucmVnaXN0cmllc0FwaVNlcnZpY2UuY29uZmlndXJhdGlvbi5iYXNlUGF0aH0vdGhlc2F1cnVzP19jb250ZW50X3R5cGU9anNvbmBcbiAgICApXG4gICAgLnBpcGUoXG4gICAgICBtYXAoKHRoZXNhdXJ1cykgPT4ge1xuICAgICAgICByZXR1cm4gdGhlc2F1cnVzWzBdIGFzIFRoZXNhdXJ1c0FwaVJlc3BvbnNlW11cbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApXG5cbiAgc2VhcmNoS2V5d29yZHMoXG4gICAgcXVlcnk6IHN0cmluZyxcbiAgICBrZXl3b3JkVHlwZXM6IEtleXdvcmRUeXBlW11cbiAgKTogT2JzZXJ2YWJsZTxLZXl3b3JkW10+IHtcbiAgICBjb25zdCBrZXl3b3JkcyQ6IE9ic2VydmFibGU8S2V5d29yZEFwaVJlc3BvbnNlW10+ID0gdGhpcy5hbGxUaGVzYXVydXMkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKHRoZXNhdXJ1cykgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZFRoZXNhdXJpID0gW11cbiAgICAgICAga2V5d29yZFR5cGVzLm1hcCgoa2V5d29yZFR5cGUpID0+IHtcbiAgICAgICAgICBzZWxlY3RlZFRoZXNhdXJpLnB1c2goXG4gICAgICAgICAgICAuLi50aGVzYXVydXMuZmlsdGVyKCh0aGVzKSA9PiB0aGVzLmRuYW1lID09PSBrZXl3b3JkVHlwZSlcbiAgICAgICAgICApXG4gICAgICAgIH0pXG5cbiAgICAgICAgcmV0dXJuIHRoaXMucmVnaXN0cmllc0FwaVNlcnZpY2Uuc2VhcmNoS2V5d29yZHMoXG4gICAgICAgICAgcXVlcnksXG4gICAgICAgICAgdGhpcy5sYW5nU2VydmljZS5pc28zLFxuICAgICAgICAgIDEwLFxuICAgICAgICAgIDAsXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBzZWxlY3RlZFRoZXNhdXJpLm1hcCgodGhlcykgPT4gdGhlcy5rZXkpLFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgYCoke3F1ZXJ5fSpgXG4gICAgICAgICkgYXMgT2JzZXJ2YWJsZTxLZXl3b3JkQXBpUmVzcG9uc2VbXT5cbiAgICAgIH0pXG4gICAgKVxuXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW2tleXdvcmRzJCwgdGhpcy5hbGxUaGVzYXVydXMkXSkucGlwZShcbiAgICAgIG1hcCgoW2tleXdvcmRzLCB0aGVzYXVydXNdKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hcHBlci5rZXl3b3Jkc0Zyb21BcGkoXG4gICAgICAgICAga2V5d29yZHMsXG4gICAgICAgICAgdGhlc2F1cnVzLFxuICAgICAgICAgIHRoaXMubGFuZ1NlcnZpY2UuaXNvM1xuICAgICAgICApXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGdldEtleXdvcmRzQnlVcmkodXJpOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEtleXdvcmRbXT4ge1xuICAgIGlmICh0aGlzLmtleXdvcmRzQnlUaGVzYXVyaVt1cmldKSB7XG4gICAgICByZXR1cm4gdGhpcy5rZXl3b3Jkc0J5VGhlc2F1cmlbdXJpXVxuICAgIH1cbiAgICBjb25zdCBrZXl3b3JkcyQgPSB0aGlzLnJlZ2lzdHJpZXNBcGlTZXJ2aWNlLnNlYXJjaEtleXdvcmRzKFxuICAgICAgbnVsbCxcbiAgICAgIHRoaXMubGFuZ1NlcnZpY2UuaXNvMyxcbiAgICAgIDEwMDAsXG4gICAgICAwLFxuICAgICAgbnVsbCxcbiAgICAgIG51bGwsXG4gICAgICBudWxsLFxuICAgICAgYCR7dXJpfSpgXG4gICAgKSBhcyBPYnNlcnZhYmxlPEtleXdvcmRBcGlSZXNwb25zZVtdPlxuXG4gICAgdGhpcy5rZXl3b3Jkc0J5VGhlc2F1cmlbdXJpXSA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAga2V5d29yZHMkLFxuICAgICAgdGhpcy5hbGxUaGVzYXVydXMkLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtrZXl3b3JkcywgdGhlc2F1cnVzXSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXBwZXIua2V5d29yZHNGcm9tQXBpKFxuICAgICAgICAgIGtleXdvcmRzLFxuICAgICAgICAgIHRoZXNhdXJ1cyxcbiAgICAgICAgICB0aGlzLmxhbmdTZXJ2aWNlLmlzbzNcbiAgICAgICAgKVxuICAgICAgfSksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgIClcblxuICAgIHJldHVybiB0aGlzLmtleXdvcmRzQnlUaGVzYXVyaVt1cmldXG4gIH1cblxuICBzZWFyY2hLZXl3b3Jkc0luVGhlc2F1cnVzKHF1ZXJ5OiBzdHJpbmcsIHRoZXNhdXJ1c0lkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hbGxUaGVzYXVydXMkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKHRoZXNhdXJpKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0cmlwcGVkVGhlc2F1cnVzSWQgPSB0aGVzYXVydXNJZC5yZXBsYWNlKFxuICAgICAgICAgICdnZW9uZXR3b3JrLnRoZXNhdXJ1cy4nLFxuICAgICAgICAgICcnXG4gICAgICAgIClcbiAgICAgICAgaWYgKCF0aGVzYXVyaS5maW5kKCh0aGVzKSA9PiB0aGVzLmtleSA9PT0gc3RyaXBwZWRUaGVzYXVydXNJZCkpXG4gICAgICAgICAgcmV0dXJuIG9mKFtdKVxuICAgICAgICByZXR1cm4gdGhpcy5yZWdpc3RyaWVzQXBpU2VydmljZVxuICAgICAgICAgIC5zZWFyY2hLZXl3b3JkcyhcbiAgICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgICAgdGhpcy5sYW5nU2VydmljZS5pc28zLFxuICAgICAgICAgICAgMTAwLFxuICAgICAgICAgICAgMCxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICBbc3RyaXBwZWRUaGVzYXVydXNJZF0sXG4gICAgICAgICAgICBudWxsXG4gICAgICAgICAgKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChrZXl3b3JkczogS2V5d29yZEFwaVJlc3BvbnNlW10pID0+XG4gICAgICAgICAgICAgIHRoaXMubWFwcGVyLmtleXdvcmRzRnJvbUFwaShcbiAgICAgICAgICAgICAgICBrZXl3b3JkcyxcbiAgICAgICAgICAgICAgICB0aGVzYXVyaSxcbiAgICAgICAgICAgICAgICB0aGlzLmxhbmdTZXJ2aWNlLmlzbzNcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgZ2V0VXNlckZlZWRiYWNrcyh1dWlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFVzZXJGZWVkYmFja1tdPiB7XG4gICAgcmV0dXJuIHRoaXMudXNlcmZlZWRiYWNrQXBpU2VydmljZS5nZXRVc2VyQ29tbWVudHModXVpZCkucGlwZShcbiAgICAgIG1hcCgodXNlckZlZWRiYWNrcykgPT5cbiAgICAgICAgdXNlckZlZWRiYWNrcy5tYXAodGhpcy5tYXBwZXIudXNlckZlZWRiYWNrc0Zyb21BcGkpXG4gICAgICApLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgdXNlciBmZWVkYmFja3M6JywgZXJyb3IpXG4gICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIHBvc3RVc2VyRmVlZGJhY2tzKHVzZXJGZWVkYmFjazogVXNlckZlZWRiYWNrKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgbWFwcGVkVXNlckZlZWRCYWNrID0gdGhpcy5tYXBwZXIudXNlckZlZWRiYWNrc1RvQXBpKHVzZXJGZWVkYmFjaylcbiAgICByZXR1cm4gdGhpcy51c2VyZmVlZGJhY2tBcGlTZXJ2aWNlLm5ld1VzZXJGZWVkYmFjayhtYXBwZWRVc2VyRmVlZEJhY2spLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gdW5kZWZpbmVkKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHBvc3RpbmcgdXNlciBmZWVkYmFjazonLCBlcnJvcilcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgZ2V0UmVjb3JkQXR0YWNobWVudHMocmVjb3JkVXVpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMucmVjb3Jkc0FwaVNlcnZpY2UuZ2V0QWxsUmVzb3VyY2VzKHJlY29yZFV1aWQpLnBpcGUoXG4gICAgICBtYXAoKHJlc291cmNlcykgPT5cbiAgICAgICAgcmVzb3VyY2VzLm1hcCgocikgPT4gKHtcbiAgICAgICAgICB1cmw6IG5ldyBVUkwoci51cmwpLFxuICAgICAgICAgIGZpbGVOYW1lOiByLmZpbGVuYW1lLFxuICAgICAgICB9KSlcbiAgICAgIClcbiAgICApXG4gIH1cblxuICBjbGVhblJlY29yZEF0dGFjaG1lbnRzKHJlY29yZDogQ2F0YWxvZ1JlY29yZCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMucmVjb3Jkc0FwaVNlcnZpY2UuZ2V0QXNzb2NpYXRlZFJlc291cmNlcyhyZWNvcmQudW5pcXVlSWRlbnRpZmllciksXG4gICAgICB0aGlzLnJlY29yZHNBcGlTZXJ2aWNlLmdldEFsbFJlc291cmNlcyhyZWNvcmQudW5pcXVlSWRlbnRpZmllciksXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2Fzc29jaWF0ZWQsIGF0dGFjaG1lbnRzXSkgPT4ge1xuICAgICAgICBjb25zdCB7IG9ubGluZXMgPSBbXSwgdGh1bWJuYWlscyA9IFtdIH0gPSBhc3NvY2lhdGVkXG5cbiAgICAgICAgY29uc3QgdXJsc1RvS2VlcCA9IFtcbiAgICAgICAgICAuLi4oQXJyYXkuaXNBcnJheShvbmxpbmVzKSA/IG9ubGluZXMgOiBbXSksXG4gICAgICAgICAgLi4uKEFycmF5LmlzQXJyYXkodGh1bWJuYWlscykgPyB0aHVtYm5haWxzIDogW10pLFxuICAgICAgICBdLm1hcCgocmVzb3VyY2UpID0+IE9iamVjdC52YWx1ZXMocmVzb3VyY2UudXJsKVswXSlcblxuICAgICAgICBjb25zdCBmaWxlVG9EZWxldGUgPSBhdHRhY2htZW50c1xuICAgICAgICAgIC5maWx0ZXIoKGF0dGFjaG1lbnQpID0+ICF1cmxzVG9LZWVwLmluY2x1ZGVzKGF0dGFjaG1lbnQudXJsKSlcbiAgICAgICAgICAubWFwKChhdHRhY2htZW50KSA9PiBhdHRhY2htZW50LmZpbGVuYW1lKVxuXG4gICAgICAgIHJldHVybiBmaWxlVG9EZWxldGVcbiAgICAgIH0pLFxuICAgICAgbWVyZ2VNYXAoKGZpbGVzVG9EZWxldGUpID0+XG4gICAgICAgIGZpbGVzVG9EZWxldGUubGVuZ3RoXG4gICAgICAgICAgPyBmb3JrSm9pbihcbiAgICAgICAgICAgICAgZmlsZXNUb0RlbGV0ZS5tYXAoKGZpbGVuYW1lKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMucmVjb3Jkc0FwaVNlcnZpY2UuZGVsUmVzb3VyY2UoXG4gICAgICAgICAgICAgICAgICByZWNvcmQudW5pcXVlSWRlbnRpZmllcixcbiAgICAgICAgICAgICAgICAgIGZpbGVuYW1lXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLnBpcGUobWFwKCgpID0+IHVuZGVmaW5lZCkpXG4gICAgICAgICAgOiBvZih1bmRlZmluZWQpXG4gICAgICApLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igd2hpbGUgY2xlYW5pbmcgYXR0YWNobWVudHM6JywgZXJyb3IpXG4gICAgICAgIHRocm93IGVycm9yXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGF0dGFjaEZpbGVUb1JlY29yZChyZWNvcmRVdWlkOiBzdHJpbmcsIGZpbGU6IEZpbGUpOiBPYnNlcnZhYmxlPFVwbG9hZEV2ZW50PiB7XG4gICAgbGV0IHNpemVCeXRlcyA9IC0xXG5cbiAgICAvLyBDaGVjayBpZiB0aGUgcmVzb3VyY2UgYWxyZWFkeSBleGlzdHMgb24gdGhlIHNlcnZlciBhbmQgcmVuYW1lIGl0IGlmIHRoYXQncyB0aGUgY2FzZVxuICAgIHJldHVybiB0aGlzLmdldFJlY29yZEF0dGFjaG1lbnRzKHJlY29yZFV1aWQpLnBpcGUoXG4gICAgICBtYXAoKHJlY29yZEF0dGFjaGVtZW50KSA9PiByZWNvcmRBdHRhY2hlbWVudC5tYXAoKHIpID0+IHIuZmlsZU5hbWUpKSxcbiAgICAgIHN3aXRjaE1hcCgoZmlsZU5hbWVzKSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbGVOYW1lID0gbm9EdXBsaWNhdGVGaWxlTmFtZShmaWxlLm5hbWUsIGZpbGVOYW1lcylcblxuICAgICAgICBjb25zdCBmaWxlQ29weSA9IG5ldyBGaWxlKFtmaWxlXSwgZmlsZU5hbWUsIHsgdHlwZTogZmlsZS50eXBlIH0pXG5cbiAgICAgICAgcmV0dXJuIHRoaXMucmVjb3Jkc0FwaVNlcnZpY2VcbiAgICAgICAgICAucHV0UmVzb3VyY2UoXG4gICAgICAgICAgICByZWNvcmRVdWlkLFxuICAgICAgICAgICAgZmlsZUNvcHksXG4gICAgICAgICAgICAncHVibGljJyxcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdldmVudHMnLFxuICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgIClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgICAgICBzaXplQnl0ZXMgPSBldmVudC50b3RhbFxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiAncHJvZ3Jlc3MnLFxuICAgICAgICAgICAgICAgICAgcHJvZ3Jlc3M6IGV2ZW50LnRvdGFsXG4gICAgICAgICAgICAgICAgICAgID8gTWF0aC5yb3VuZCgoMTAwICogZXZlbnQubG9hZGVkKSAvIGV2ZW50LnRvdGFsKVxuICAgICAgICAgICAgICAgICAgICA6IDAsXG4gICAgICAgICAgICAgICAgfSBhcyBVcGxvYWRFdmVudFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcbiAgICAgICAgICAgICAgICAgIGF0dGFjaG1lbnQ6IHtcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBuZXcgVVJMKGV2ZW50LmJvZHkudXJsKSxcbiAgICAgICAgICAgICAgICAgICAgZmlsZU5hbWU6IGV2ZW50LmJvZHkuZmlsZW5hbWUsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgc2l6ZUJ5dGVzLFxuICAgICAgICAgICAgICAgIH0gYXMgVXBsb2FkRXZlbnRcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGZpbHRlcigoZXZlbnQpID0+ICEhZXZlbnQpXG4gICAgICAgICAgKVxuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihcbiAgICAgICAgICAoKSA9PiBuZXcgRXJyb3IoZXJyb3IuZXJyb3I/Lm1lc3NhZ2UgPz8gZXJyb3IubWVzc2FnZSlcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICApXG4gIH1cbn1cbiJdfQ==
241
+ }], ctorParameters: () => [{ type: i1.SiteApiService }, { type: i1.MeApiService }, { type: i1.UsersApiService }, { type: i2.Gn4PlatformMapper }, { type: i1.ToolsApiService }, { type: i1.RegistriesApiService }, { type: i3.TranslateService }, { type: i1.UserfeedbackApiService }, { type: i4.HttpClient }, { type: i1.RecordsApiService }] });
242
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ240LXBsYXRmb3JtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9yZXBvc2l0b3J5L3NyYy9saWIvZ240L3BsYXRmb3JtL2duNC1wbGF0Zm9ybS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUNMLFVBQVUsRUFDVixNQUFNLEVBQ04sR0FBRyxFQUNILFFBQVEsRUFDUixXQUFXLEVBQ1gsR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUNMLFlBQVksRUFDWixpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxlQUFlLEVBQ2Ysc0JBQXNCLEVBQ3RCLGVBQWUsR0FDaEIsTUFBTSwrQ0FBK0MsQ0FBQTtBQVl0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQzVCLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFNaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkNBQTJDLENBQUE7QUFDL0UsT0FBTyxFQUNMLGFBQWEsRUFDYixRQUFRLEVBRVIsRUFBRSxFQUNGLFNBQVMsRUFDVCxVQUFVLEdBQ1gsTUFBTSxNQUFNLENBQUE7QUFDYixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTs7Ozs7O0FBRzNFLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQTtBQUc3QixNQUFNLE9BQU8sa0JBQWtCO0lBOEM3QixJQUFZLEtBQUs7UUFDZixPQUFPLGlCQUFpQixDQUFDLElBQUksQ0FBQyxn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UyxDQUFDLENBQUE7Z0JBQzlELE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO2dCQUNyRSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1lBQzlDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQzsrR0EzWFUsa0JBQWtCO21IQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIGNhdGNoRXJyb3IsXG4gIGZpbHRlcixcbiAgbWFwLFxuICBtZXJnZU1hcCxcbiAgc2hhcmVSZXBsYXksXG4gIHRhcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQge1xuICBNZUFwaVNlcnZpY2UsXG4gIFJlY29yZHNBcGlTZXJ2aWNlLFxuICBSZWdpc3RyaWVzQXBpU2VydmljZSxcbiAgU2l0ZUFwaVNlcnZpY2UsXG4gIFRvb2xzQXBpU2VydmljZSxcbiAgVXNlcmZlZWRiYWNrQXBpU2VydmljZSxcbiAgVXNlcnNBcGlTZXJ2aWNlLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL2duNC9zcmMnXG5pbXBvcnQge1xuICBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2UsXG4gIFVwbG9hZEV2ZW50LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9wbGF0Zm9ybS5zZXJ2aWNlLmludGVyZmFjZSdcbmltcG9ydCB7IFVzZXJNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3VzZXIvdXNlci5tb2RlbCdcbmltcG9ydCB7XG4gIENhdGFsb2dSZWNvcmQsXG4gIEtleXdvcmQsXG4gIE9yZ2FuaXphdGlvbixcbiAgVXNlckZlZWRiYWNrLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBHbjRQbGF0Zm9ybU1hcHBlciB9IGZyb20gJy4vZ240LXBsYXRmb3JtLm1hcHBlcidcbmltcG9ydCB7IGx0ciB9IGZyb20gJ3NlbXZlcidcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFdmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcbmltcG9ydCB7XG4gIEtleXdvcmRBcGlSZXNwb25zZSxcbiAgVGhlc2F1cnVzQXBpUmVzcG9uc2UsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL21ldGFkYXRhLWNvbnZlcnRlci9zcmMnXG5pbXBvcnQgeyBLZXl3b3JkVHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3RoZXNhdXJ1cydcbmltcG9ydCB7IG5vRHVwbGljYXRlRmlsZU5hbWUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7XG4gIGNvbWJpbmVMYXRlc3QsXG4gIGZvcmtKb2luLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgc3dpdGNoTWFwLFxuICB0aHJvd0Vycm9yLFxufSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBnZXRMYW5nM0Zyb21MYW5nMiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9pMThuL3NyYydcbmltcG9ydCB7IERhdGF2aXpDb25maWdNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL2RhdGF2aXovZGF0YXZpei1jb25maWd1cmF0aW9uLm1vZGVsJ1xuXG5jb25zdCBtaW5BcGlWZXJzaW9uID0gJzQuMi4yJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgR240UGxhdGZvcm1TZXJ2aWNlIGltcGxlbWVudHMgUGxhdGZvcm1TZXJ2aWNlSW50ZXJmYWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSB0eXBlID0gJ0dlb05ldHdvcmsnXG4gIHByaXZhdGUgcmVhZG9ubHkgbWUkOiBPYnNlcnZhYmxlPFVzZXJNb2RlbD5cbiAgcHJpdmF0ZSByZWFkb25seSB1c2VycyQ6IE9ic2VydmFibGU8VXNlck1vZGVsW10+XG4gIHByaXZhdGUgcmVhZG9ubHkgaXNVc2VyQW5vbnltb3VzJDogT2JzZXJ2YWJsZTxib29sZWFuPlxuXG4gIHByaXZhdGUga2V5VHJhbnNsYXRpb25zJCA9IHRoaXMudG9vbHNBcGlTZXJ2aWNlXG4gICAgLmdldFRyYW5zbGF0aW9uc1BhY2thZ2UxKCdnbnVpJylcbiAgICAucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0Vycm9yIHdoaWxlIGxvYWRpbmcgZ251aSBsYW5ndWFnZSBwYWNrYWdlJylcbiAgICAgICAgcmV0dXJuIG9mKHt9KVxuICAgICAgfSksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgIClcblxuICBwcml2YXRlIHNldHRpbmdzJCA9IG9mKHRydWUpLnBpcGUoXG4gICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuc2l0ZUFwaVNlcnZpY2UuZ2V0U2l0ZU9yUG9ydGFsRGVzY3JpcHRpb24oKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgYXBpVmVyc2lvbiQgPSB0aGlzLnNldHRpbmdzJC5waXBlKFxuICAgIG1hcCgoaW5mbykgPT4gaW5mb1snc3lzdGVtL3BsYXRmb3JtL3ZlcnNpb24nXSBhcyBzdHJpbmcpLFxuICAgIHRhcCgodmVyc2lvbikgPT4ge1xuICAgICAgaWYgKGx0cih2ZXJzaW9uLCBtaW5BcGlWZXJzaW9uKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEduNCBBUEkgdmVyc2lvbiBpcyBub3QgY29tcGF0aWJsZS5cXG5NaW5pbXVtOiAke21pbkFwaVZlcnNpb259XFxuWW91ciB2ZXJzaW9uOiAke3ZlcnNpb259YFxuICAgICAgICApXG4gICAgICB9XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgYWxsb3dFZGl0SGFydmVzdGVkTWQkID0gdGhpcy5zZXR0aW5ncyQucGlwZShcbiAgICBtYXAoKGluZm8pID0+IHtcbiAgICAgIHJldHVybiBpbmZvWydzeXN0ZW0vaGFydmVzdGVyL2VuYWJsZUVkaXRpbmcnXSBhcyBib29sZWFuXG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKVxuXG4gIC8qKlxuICAgKiBBIG1hcCBvZiBhbHJlYWR5IGxvYWRlZCB0aGVzYXVyaSAoZ3JvdXBzIG9mIGtleXdvcmRzKTsgdGhlIGtleSBpcyBhIFVSSVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBrZXl3b3Jkc0J5VGhlc2F1cmk6IFJlY29yZDxzdHJpbmcsIE9ic2VydmFibGU8S2V5d29yZFtdPj4gPSB7fVxuXG4gIHByaXZhdGUgZ2V0IGxhbmczKCkge1xuICAgIHJldHVybiBnZXRMYW5nM0Zyb21MYW5nMih0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcpXG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNpdGVBcGlTZXJ2aWNlOiBTaXRlQXBpU2VydmljZSxcbiAgICBwcml2YXRlIG1lQXBpOiBNZUFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2Vyc0FwaTogVXNlcnNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWFwcGVyOiBHbjRQbGF0Zm9ybU1hcHBlcixcbiAgICBwcml2YXRlIHRvb2xzQXBpU2VydmljZTogVG9vbHNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVnaXN0cmllc0FwaVNlcnZpY2U6IFJlZ2lzdHJpZXNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJmZWVkYmFja0FwaVNlcnZpY2U6IFVzZXJmZWVkYmFja0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgcmVjb3Jkc0FwaVNlcnZpY2U6IFJlY29yZHNBcGlTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMubWUkID0gdGhpcy5tZUFwaS5nZXRNZSgpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGFwaVVzZXIpID0+IHRoaXMubWFwcGVyLnVzZXJGcm9tTWVBcGkoYXBpVXNlcikpLFxuICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KVxuICAgIClcblxuICAgIHRoaXMuaXNVc2VyQW5vbnltb3VzJCA9IHRoaXMubWUkLnBpcGUoXG4gICAgICBtYXAoKHVzZXIpID0+ICF1c2VyIHx8ICEoJ2lkJyBpbiB1c2VyKSlcbiAgICApXG5cbiAgICB0aGlzLnVzZXJzJCA9IHRoaXMudXNlcnNBcGkuZ2V0VXNlcnMoKS5waXBlKFxuICAgICAgbWFwKCh1c2VycykgPT4gdXNlcnMubWFwKCh1c2VyKSA9PiB0aGlzLm1hcHBlci51c2VyRnJvbUFwaSh1c2VyKSkpLFxuICAgICAgc2hhcmVSZXBsYXkoKVxuICAgIClcbiAgfVxuXG4gIGdldFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50eXBlXG4gIH1cblxuICBnZXRBcGlWZXJzaW9uKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuYXBpVmVyc2lvbiRcbiAgfVxuXG4gIGdldEFsbG93RWRpdEhhcnZlc3RlZE1kKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmFsbG93RWRpdEhhcnZlc3RlZE1kJFxuICB9XG5cbiAgZ2V0TWUoKTogT2JzZXJ2YWJsZTxVc2VyTW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5tZSRcbiAgfVxuXG4gIGlzQW5vbnltb3VzKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmlzVXNlckFub255bW91cyRcbiAgfVxuXG4gIGdldE9yZ2FuaXphdGlvbnMoKTogT2JzZXJ2YWJsZTxPcmdhbml6YXRpb25bXT4ge1xuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxuXG4gIGdldFVzZXJzQnlPcmdhbml6YXRpb24ob3JnYW5pc2F0aW9uOiBPcmdhbml6YXRpb24pOiBPYnNlcnZhYmxlPFVzZXJNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG5cbiAgZ2V0VXNlcnMoKTogT2JzZXJ2YWJsZTxVc2VyTW9kZWxbXT4ge1xuICAgIHJldHVybiB0aGlzLnVzZXJzJFxuICB9XG5cbiAgdHJhbnNsYXRlS2V5KGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAvLyBpZiB0aGUga2V5IGlzIGEgVVJJLCB1c2UgdGhlIHJlZ2lzdHJpZXMgQVBJIHRvIGxvb2sgZm9yIHRoZSB0cmFuc2xhdGlvblxuICAgIGlmIChrZXkubWF0Y2goL15odHRwcz86XFwvXFwvLykpIHtcbiAgICAgIC8vIHRoZSB0aGVzYXVydXMgVVJJIGlzIGluZmVycmVkIGJ5IHJlbW92aW5nIGEgcGFydCBvZiB0aGUga2V5d29yZCBVUklcbiAgICAgIC8vIHRoaXMgaXMgbm90IGV4YWN0IHNjaWVuY2UgYnV0IGl0J3MgT0ssIHdlJ2xsIHN0aWxsIGVuZCB1cCBsb2FkaW5nIGEgYnVuY2ggb2Yga2V5d29yZHMgYXQgb25jZSBhbnl3YXlcbiAgICAgIGNvbnN0IHRoZXNhdXJ1c1VyaSA9IGtleS5yZXBsYWNlKC9cXC8oW14vXSspJC8sICcvJylcbiAgICAgIHJldHVybiB0aGlzLmdldEtleXdvcmRzQnlVcmkodGhlc2F1cnVzVXJpKS5waXBlKFxuICAgICAgICBtYXAoKHRoZXNhdXJ1cykgPT4ge1xuICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGVzYXVydXMpIHtcbiAgICAgICAgICAgIGlmIChpdGVtLmtleSA9PT0ga2V5KSByZXR1cm4gaXRlbS5sYWJlbFxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4ga2V5XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiB0aGlzLmtleVRyYW5zbGF0aW9ucyQucGlwZShtYXAoKHRyYW5zbGF0aW9ucykgPT4gdHJhbnNsYXRpb25zW2tleV0pKVxuICB9XG5cbiAgcHJpdmF0ZSBhbGxUaGVzYXVydXMkID0gdGhpcy5odHRwQ2xpZW50XG4gICAgLmdldChcbiAgICAgIGAke3RoaXMucmVnaXN0cmllc0FwaVNlcnZpY2UuY29uZmlndXJhdGlvbi5iYXNlUGF0aH0vdGhlc2F1cnVzP19jb250ZW50X3R5cGU9anNvbmBcbiAgICApXG4gICAgLnBpcGUoXG4gICAgICBtYXAoKHRoZXNhdXJ1cykgPT4ge1xuICAgICAgICByZXR1cm4gdGhlc2F1cnVzWzBdIGFzIFRoZXNhdXJ1c0FwaVJlc3BvbnNlW11cbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApXG5cbiAgc2VhcmNoS2V5d29yZHMoXG4gICAgcXVlcnk6IHN0cmluZyxcbiAgICBrZXl3b3JkVHlwZXM6IEtleXdvcmRUeXBlW11cbiAgKTogT2JzZXJ2YWJsZTxLZXl3b3JkW10+IHtcbiAgICBjb25zdCBrZXl3b3JkcyQ6IE9ic2VydmFibGU8S2V5d29yZEFwaVJlc3BvbnNlW10+ID0gdGhpcy5hbGxUaGVzYXVydXMkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKHRoZXNhdXJ1cykgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZFRoZXNhdXJpID0gW11cbiAgICAgICAga2V5d29yZFR5cGVzLm1hcCgoa2V5d29yZFR5cGUpID0+IHtcbiAgICAgICAgICBzZWxlY3RlZFRoZXNhdXJpLnB1c2goXG4gICAgICAgICAgICAuLi50aGVzYXVydXMuZmlsdGVyKCh0aGVzKSA9PiB0aGVzLmRuYW1lID09PSBrZXl3b3JkVHlwZSlcbiAgICAgICAgICApXG4gICAgICAgIH0pXG5cbiAgICAgICAgcmV0dXJuIHRoaXMucmVnaXN0cmllc0FwaVNlcnZpY2Uuc2VhcmNoS2V5d29yZHMoXG4gICAgICAgICAgcXVlcnksXG4gICAgICAgICAgdGhpcy5sYW5nMyxcbiAgICAgICAgICAxMCxcbiAgICAgICAgICAwLFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgc2VsZWN0ZWRUaGVzYXVyaS5tYXAoKHRoZXMpID0+IHRoZXMua2V5KSxcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIGAqJHtxdWVyeX0qYFxuICAgICAgICApIGFzIE9ic2VydmFibGU8S2V5d29yZEFwaVJlc3BvbnNlW10+XG4gICAgICB9KVxuICAgIClcblxuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtrZXl3b3JkcyQsIHRoaXMuYWxsVGhlc2F1cnVzJF0pLnBpcGUoXG4gICAgICBtYXAoKFtrZXl3b3JkcywgdGhlc2F1cnVzXSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXBwZXIua2V5d29yZHNGcm9tQXBpKGtleXdvcmRzLCB0aGVzYXVydXMsIHRoaXMubGFuZzMpXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGdldEtleXdvcmRzQnlVcmkodXJpOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEtleXdvcmRbXT4ge1xuICAgIGlmICh0aGlzLmtleXdvcmRzQnlUaGVzYXVyaVt1cmldKSB7XG4gICAgICByZXR1cm4gdGhpcy5rZXl3b3Jkc0J5VGhlc2F1cmlbdXJpXVxuICAgIH1cbiAgICBjb25zdCBrZXl3b3JkcyQgPSB0aGlzLnJlZ2lzdHJpZXNBcGlTZXJ2aWNlLnNlYXJjaEtleXdvcmRzKFxuICAgICAgbnVsbCxcbiAgICAgIHRoaXMubGFuZzMsXG4gICAgICAxMDAwLFxuICAgICAgMCxcbiAgICAgIG51bGwsXG4gICAgICBudWxsLFxuICAgICAgbnVsbCxcbiAgICAgIGAke3VyaX0qYFxuICAgICkgYXMgT2JzZXJ2YWJsZTxLZXl3b3JkQXBpUmVzcG9uc2VbXT5cblxuICAgIHRoaXMua2V5d29yZHNCeVRoZXNhdXJpW3VyaV0gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIGtleXdvcmRzJCxcbiAgICAgIHRoaXMuYWxsVGhlc2F1cnVzJCxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChba2V5d29yZHMsIHRoZXNhdXJ1c10pID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwcGVyLmtleXdvcmRzRnJvbUFwaShrZXl3b3JkcywgdGhlc2F1cnVzLCB0aGlzLmxhbmczKVxuICAgICAgfSksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgIClcblxuICAgIHJldHVybiB0aGlzLmtleXdvcmRzQnlUaGVzYXVyaVt1cmldXG4gIH1cblxuICBzZWFyY2hLZXl3b3Jkc0luVGhlc2F1cnVzKHF1ZXJ5OiBzdHJpbmcsIHRoZXNhdXJ1c0lkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hbGxUaGVzYXVydXMkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKHRoZXNhdXJpKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0cmlwcGVkVGhlc2F1cnVzSWQgPSB0aGVzYXVydXNJZC5yZXBsYWNlKFxuICAgICAgICAgICdnZW9uZXR3b3JrLnRoZXNhdXJ1cy4nLFxuICAgICAgICAgICcnXG4gICAgICAgIClcbiAgICAgICAgaWYgKCF0aGVzYXVyaS5maW5kKCh0aGVzKSA9PiB0aGVzLmtleSA9PT0gc3RyaXBwZWRUaGVzYXVydXNJZCkpXG4gICAgICAgICAgcmV0dXJuIG9mKFtdKVxuICAgICAgICByZXR1cm4gdGhpcy5yZWdpc3RyaWVzQXBpU2VydmljZVxuICAgICAgICAgIC5zZWFyY2hLZXl3b3JkcyhcbiAgICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgICAgdGhpcy5sYW5nMyxcbiAgICAgICAgICAgIDEwMCxcbiAgICAgICAgICAgIDAsXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgW3N0cmlwcGVkVGhlc2F1cnVzSWRdLFxuICAgICAgICAgICAgbnVsbFxuICAgICAgICAgIClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgoa2V5d29yZHM6IEtleXdvcmRBcGlSZXNwb25zZVtdKSA9PlxuICAgICAgICAgICAgICB0aGlzLm1hcHBlci5rZXl3b3Jkc0Zyb21BcGkoa2V5d29yZHMsIHRoZXNhdXJpLCB0aGlzLmxhbmczKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgZ2V0VXNlckZlZWRiYWNrcyh1dWlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFVzZXJGZWVkYmFja1tdPiB7XG4gICAgcmV0dXJuIHRoaXMudXNlcmZlZWRiYWNrQXBpU2VydmljZS5nZXRVc2VyQ29tbWVudHModXVpZCkucGlwZShcbiAgICAgIG1hcCgodXNlckZlZWRiYWNrcykgPT5cbiAgICAgICAgdXNlckZlZWRiYWNrcy5tYXAodGhpcy5tYXBwZXIudXNlckZlZWRiYWNrc0Zyb21BcGkpXG4gICAgICApLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgdXNlciBmZWVkYmFja3M6JywgZXJyb3IpXG4gICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIHBvc3RVc2VyRmVlZGJhY2tzKHVzZXJGZWVkYmFjazogVXNlckZlZWRiYWNrKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgbWFwcGVkVXNlckZlZWRCYWNrID0gdGhpcy5tYXBwZXIudXNlckZlZWRiYWNrc1RvQXBpKHVzZXJGZWVkYmFjaylcbiAgICByZXR1cm4gdGhpcy51c2VyZmVlZGJhY2tBcGlTZXJ2aWNlLm5ld1VzZXJGZWVkYmFjayhtYXBwZWRVc2VyRmVlZEJhY2spLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gdW5kZWZpbmVkKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHBvc3RpbmcgdXNlciBmZWVkYmFjazonLCBlcnJvcilcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgZ2V0UmVjb3JkQXR0YWNobWVudHMocmVjb3JkVXVpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMucmVjb3Jkc0FwaVNlcnZpY2UuZ2V0QWxsUmVzb3VyY2VzKHJlY29yZFV1aWQpLnBpcGUoXG4gICAgICBtYXAoKHJlc291cmNlcykgPT5cbiAgICAgICAgcmVzb3VyY2VzLm1hcCgocikgPT4gKHtcbiAgICAgICAgICB1cmw6IG5ldyBVUkwoci51cmwpLFxuICAgICAgICAgIGZpbGVOYW1lOiByLmZpbGVuYW1lLFxuICAgICAgICB9KSlcbiAgICAgIClcbiAgICApXG4gIH1cblxuICBjbGVhblJlY29yZEF0dGFjaG1lbnRzKHJlY29yZDogQ2F0YWxvZ1JlY29yZCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMucmVjb3Jkc0FwaVNlcnZpY2UuZ2V0QXNzb2NpYXRlZFJlc291cmNlcyhyZWNvcmQudW5pcXVlSWRlbnRpZmllciksXG4gICAgICB0aGlzLnJlY29yZHNBcGlTZXJ2aWNlLmdldEFsbFJlc291cmNlcyhyZWNvcmQudW5pcXVlSWRlbnRpZmllciksXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2Fzc29jaWF0ZWQsIGF0dGFjaG1lbnRzXSkgPT4ge1xuICAgICAgICBjb25zdCB7IG9ubGluZXMgPSBbXSwgdGh1bWJuYWlscyA9IFtdIH0gPSBhc3NvY2lhdGVkXG5cbiAgICAgICAgY29uc3QgdXJsc1RvS2VlcCA9IFtcbiAgICAgICAgICAuLi4oQXJyYXkuaXNBcnJheShvbmxpbmVzKSA/IG9ubGluZXMgOiBbXSksXG4gICAgICAgICAgLi4uKEFycmF5LmlzQXJyYXkodGh1bWJuYWlscykgPyB0aHVtYm5haWxzIDogW10pLFxuICAgICAgICBdLm1hcCgocmVzb3VyY2UpID0+IE9iamVjdC52YWx1ZXMocmVzb3VyY2UudXJsKVswXSlcbiAgICAgICAgY29uc3QgZmlsZVRvRGVsZXRlID0gYXR0YWNobWVudHMucmVkdWNlPHN0cmluZ1tdPigoYWNjLCBhdHRhY2htZW50KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXVybHNUb0tlZXAuaW5jbHVkZXMoYXR0YWNobWVudC51cmwpICYmXG4gICAgICAgICAgICBhdHRhY2htZW50LmZpbGVuYW1lICE9PSAnZGF0YXZpekNvbmZpZy5qc29uJ1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgYWNjLnB1c2goYXR0YWNobWVudC5maWxlbmFtZSlcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgICB9LCBbXSlcblxuICAgICAgICByZXR1cm4gZmlsZVRvRGVsZXRlXG4gICAgICB9KSxcbiAgICAgIG1lcmdlTWFwKChmaWxlc1RvRGVsZXRlKSA9PlxuICAgICAgICBmaWxlc1RvRGVsZXRlLmxlbmd0aFxuICAgICAgICAgID8gZm9ya0pvaW4oXG4gICAgICAgICAgICAgIGZpbGVzVG9EZWxldGUubWFwKChmaWxlbmFtZSkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnJlY29yZHNBcGlTZXJ2aWNlLmRlbFJlc291cmNlKFxuICAgICAgICAgICAgICAgICAgcmVjb3JkLnVuaXF1ZUlkZW50aWZpZXIsXG4gICAgICAgICAgICAgICAgICBmaWxlbmFtZVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKS5waXBlKG1hcCgoKSA9PiB1bmRlZmluZWQpKVxuICAgICAgICAgIDogb2YodW5kZWZpbmVkKVxuICAgICAgKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHdoaWxlIGNsZWFuaW5nIGF0dGFjaG1lbnRzOicsIGVycm9yKVxuICAgICAgICB0aHJvdyBlcnJvclxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBwcml2YXRlIHVwbG9hZEZpbGUocmVjb3JkVXVpZDogc3RyaW5nLCBmaWxlOiBGaWxlKTogT2JzZXJ2YWJsZTxVcGxvYWRFdmVudD4ge1xuICAgIGxldCBzaXplQnl0ZXMgPSAtMVxuICAgIHJldHVybiB0aGlzLnJlY29yZHNBcGlTZXJ2aWNlXG4gICAgICAucHV0UmVzb3VyY2UocmVjb3JkVXVpZCwgZmlsZSwgJ3B1YmxpYycsIHVuZGVmaW5lZCwgJ2V2ZW50cycsIHRydWUpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChldmVudCkgPT4ge1xuICAgICAgICAgIGlmIChldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzKSB7XG4gICAgICAgICAgICBzaXplQnl0ZXMgPSBldmVudC50b3RhbFxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3Byb2dyZXNzJyxcbiAgICAgICAgICAgICAgcHJvZ3Jlc3M6IGV2ZW50LnRvdGFsXG4gICAgICAgICAgICAgICAgPyBNYXRoLnJvdW5kKCgxMDAgKiBldmVudC5sb2FkZWQpIC8gZXZlbnQudG90YWwpXG4gICAgICAgICAgICAgICAgOiAwLFxuICAgICAgICAgICAgfSBhcyBVcGxvYWRFdmVudFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5SZXNwb25zZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgICBhdHRhY2htZW50OiB7XG4gICAgICAgICAgICAgICAgdXJsOiBuZXcgVVJMKGV2ZW50LmJvZHkudXJsKSxcbiAgICAgICAgICAgICAgICBmaWxlTmFtZTogZXZlbnQuYm9keS5maWxlbmFtZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgc2l6ZUJ5dGVzLFxuICAgICAgICAgICAgfSBhcyBVcGxvYWRFdmVudFxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICAgIH0pLFxuICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiAhIWV2ZW50KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihcbiAgICAgICAgICAgICgpID0+IG5ldyBFcnJvcihlcnJvci5lcnJvcj8ubWVzc2FnZSA/PyBlcnJvci5tZXNzYWdlKVxuICAgICAgICAgIClcbiAgICAgICAgfSlcbiAgICAgIClcbiAgfVxuXG4gIGdldEZpbGVDb250ZW50KHVybDogVVJMIHwgc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldCh1cmwudG9TdHJpbmcoKSwgeyByZXNwb25zZVR5cGU6ICd0ZXh0JyB9KS5waXBlKFxuICAgICAgbWFwKCh0ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UodGV4dClcblxuICAgICAgICBpZiAodHlwZW9mIHBhcnNlZCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICByZXR1cm4gcGFyc2VkXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWNvZGVkID0gYXRvYihwYXJzZWQpXG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKGRlY29kZWQpXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGF0dGFjaEZpbGVUb1JlY29yZChcbiAgICByZWNvcmRVdWlkOiBzdHJpbmcsXG4gICAgZmlsZTogRmlsZSxcbiAgICByZW1vdmVEdXBsaWNhdGUgPSBmYWxzZVxuICApOiBPYnNlcnZhYmxlPFVwbG9hZEV2ZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVjb3JkQXR0YWNobWVudHMocmVjb3JkVXVpZCkucGlwZShcbiAgICAgIG1hcCgocmVjb3JkQXR0YWNobWVudHMpID0+IHJlY29yZEF0dGFjaG1lbnRzLm1hcCgocikgPT4gci5maWxlTmFtZSkpLFxuICAgICAgc3dpdGNoTWFwKChmaWxlTmFtZXMpID0+IHtcbiAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBmaWxlLm5hbWVcblxuICAgICAgICBpZiAocmVtb3ZlRHVwbGljYXRlICYmIGZpbGVOYW1lcy5pbmNsdWRlcyhmaWxlLm5hbWUpKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucmVjb3Jkc0FwaVNlcnZpY2UuZGVsUmVzb3VyY2UocmVjb3JkVXVpZCwgZmlsZU5hbWUpLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBmaWxlQ29weSA9IG5ldyBGaWxlKFtmaWxlXSwgZmlsZU5hbWUsIHsgdHlwZTogZmlsZS50eXBlIH0pXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnVwbG9hZEZpbGUocmVjb3JkVXVpZCwgZmlsZUNvcHkpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBmaW5hbEZpbGVOYW1lID0gbm9EdXBsaWNhdGVGaWxlTmFtZShmaWxlTmFtZSwgZmlsZU5hbWVzKVxuICAgICAgICAgIGNvbnN0IGZpbGVDb3B5ID0gbmV3IEZpbGUoW2ZpbGVdLCBmaW5hbEZpbGVOYW1lLCB7IHR5cGU6IGZpbGUudHlwZSB9KVxuICAgICAgICAgIHJldHVybiB0aGlzLnVwbG9hZEZpbGUocmVjb3JkVXVpZCwgZmlsZUNvcHkpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICB9XG59XG4iXX0=
@@ -7,6 +7,7 @@ export class Gn4SettingsService {
7
7
  constructor(siteApiService) {
8
8
  this.siteApiService = siteApiService;
9
9
  this.identicon$ = this.getSettingsSetValueByKey('system/users/identicon');
10
+ this.allowEditHarvested$ = this.getSettingsSetValueByKey('system/harvester/enableEditing');
10
11
  }
11
12
  getSettingsSetValueByKey(key) {
12
13
  return this.siteApiService.getSettingsSet(null, [key]).pipe(map((v) => v[key]), shareReplay({ bufferSize: 1, refCount: true }));
@@ -20,4 +21,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
20
21
  providedIn: 'root',
21
22
  }]
22
23
  }], ctorParameters: () => [{ type: i1.SiteApiService }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ240LXNldHRpbmdzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9yZXBvc2l0b3J5L3NyYy9saWIvZ240L3NldHRpbmdzL2duNC1zZXR0aW5ncy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQzlFLE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7OztBQU1qRCxNQUFNLE9BQU8sa0JBQWtCO0lBSzdCLFlBQW9CLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUozQyxlQUFVLEdBQXVCLElBQUksQ0FBQyx3QkFBd0IsQ0FDbkUsd0JBQXdCLENBQ3pCLENBQUE7SUFFb0QsQ0FBQztJQUU5Qyx3QkFBd0IsQ0FBQyxHQUFXO1FBQzFDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3pELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQ2xCLFdBQVcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQy9DLENBQUE7SUFDSCxDQUFDOytHQVpVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFNpdGVBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9nbjQvc3JjJ1xuaW1wb3J0IHsgbWFwLCBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBHbjRTZXR0aW5nc1NlcnZpY2Uge1xuICBwdWJsaWMgaWRlbnRpY29uJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5nZXRTZXR0aW5nc1NldFZhbHVlQnlLZXkoXG4gICAgJ3N5c3RlbS91c2Vycy9pZGVudGljb24nXG4gIClcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNpdGVBcGlTZXJ2aWNlOiBTaXRlQXBpU2VydmljZSkge31cblxuICBwcml2YXRlIGdldFNldHRpbmdzU2V0VmFsdWVCeUtleShrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnNpdGVBcGlTZXJ2aWNlLmdldFNldHRpbmdzU2V0KG51bGwsIFtrZXldKS5waXBlKFxuICAgICAgbWFwKCh2KSA9PiB2W2tleV0pLFxuICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KVxuICAgIClcbiAgfVxufVxuIl19
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ240LXNldHRpbmdzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9yZXBvc2l0b3J5L3NyYy9saWIvZ240L3NldHRpbmdzL2duNC1zZXR0aW5ncy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQzlFLE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7OztBQU1qRCxNQUFNLE9BQU8sa0JBQWtCO0lBUTdCLFlBQW9CLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQVAzQyxlQUFVLEdBQXVCLElBQUksQ0FBQyx3QkFBd0IsQ0FDbkUsd0JBQXdCLENBQ3pCLENBQUE7UUFFTSx3QkFBbUIsR0FDeEIsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGdDQUFnQyxDQUFDLENBQUE7SUFFWixDQUFDO0lBRTlDLHdCQUF3QixDQUFDLEdBQVc7UUFDMUMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDekQsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDbEIsV0FBVyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FDL0MsQ0FBQTtJQUNILENBQUM7K0dBZlUsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7NEZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgU2l0ZUFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL2duNC9zcmMnXG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEduNFNldHRpbmdzU2VydmljZSB7XG4gIHB1YmxpYyBpZGVudGljb24kOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLmdldFNldHRpbmdzU2V0VmFsdWVCeUtleShcbiAgICAnc3lzdGVtL3VzZXJzL2lkZW50aWNvbidcbiAgKVxuXG4gIHB1YmxpYyBhbGxvd0VkaXRIYXJ2ZXN0ZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID1cbiAgICB0aGlzLmdldFNldHRpbmdzU2V0VmFsdWVCeUtleSgnc3lzdGVtL2hhcnZlc3Rlci9lbmFibGVFZGl0aW5nJylcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNpdGVBcGlTZXJ2aWNlOiBTaXRlQXBpU2VydmljZSkge31cblxuICBwcml2YXRlIGdldFNldHRpbmdzU2V0VmFsdWVCeUtleShrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnNpdGVBcGlTZXJ2aWNlLmdldFNldHRpbmdzU2V0KG51bGwsIFtrZXldKS5waXBlKFxuICAgICAgbWFwKCh2KSA9PiB2W2tleV0pLFxuICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KVxuICAgIClcbiAgfVxufVxuIl19
@@ -6,4 +6,4 @@ export const CHART_TYPE_VALUES = [
6
6
  'scatter',
7
7
  'pie',
8
8
  ];
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXZpei1jb25maWd1cmF0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvZGF0YXZpei9kYXRhdml6LWNvbmZpZ3VyYXRpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDL0IsS0FBSztJQUNMLGdCQUFnQjtJQUNoQixNQUFNO0lBQ04sbUJBQW1CO0lBQ25CLFNBQVM7SUFDVCxLQUFLO0NBQ0csQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEFnZ3JlZ2F0aW9uVHlwZXMgPSAnY291bnQnIHwgJ3N1bScgfCAnbWluJyB8ICdtYXgnIHwgJ2F2ZXJhZ2UnXG5cbmV4cG9ydCBjb25zdCBDSEFSVF9UWVBFX1ZBTFVFUyA9IFtcbiAgJ2JhcicsXG4gICdiYXItaG9yaXpvbnRhbCcsXG4gICdsaW5lJyxcbiAgJ2xpbmUtaW50ZXJwb2xhdGVkJyxcbiAgJ3NjYXR0ZXInLFxuICAncGllJyxcbl0gYXMgY29uc3RcblxuZXhwb3J0IHR5cGUgSW5wdXRDaGFydFR5cGUgPSAodHlwZW9mIENIQVJUX1RZUEVfVkFMVUVTKVtudW1iZXJdXG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YXZpekNvbmZpZ3VyYXRpb25Nb2RlbCB7XG4gIHhQcm9wZXJ0eTogc3RyaW5nXG4gIHlQcm9wZXJ0eTogc3RyaW5nXG4gIGFnZ3JlZ2F0aW9uOiBBZ2dyZWdhdGlvblR5cGVzXG4gIGNoYXJ0VHlwZTogSW5wdXRDaGFydFR5cGVcbn1cbiJdfQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXZpei1jb25maWd1cmF0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvZGF0YXZpei9kYXRhdml6LWNvbmZpZ3VyYXRpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDL0IsS0FBSztJQUNMLGdCQUFnQjtJQUNoQixNQUFNO0lBQ04sbUJBQW1CO0lBQ25CLFNBQVM7SUFDVCxLQUFLO0NBQ0csQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFzZXRPbmxpbmVSZXNvdXJjZSB9IGZyb20gJy4uL3JlY29yZCdcblxuZXhwb3J0IHR5cGUgQWdncmVnYXRpb25UeXBlcyA9ICdjb3VudCcgfCAnc3VtJyB8ICdtaW4nIHwgJ21heCcgfCAnYXZlcmFnZSdcblxuZXhwb3J0IGNvbnN0IENIQVJUX1RZUEVfVkFMVUVTID0gW1xuICAnYmFyJyxcbiAgJ2Jhci1ob3Jpem9udGFsJyxcbiAgJ2xpbmUnLFxuICAnbGluZS1pbnRlcnBvbGF0ZWQnLFxuICAnc2NhdHRlcicsXG4gICdwaWUnLFxuXSBhcyBjb25zdFxuXG5leHBvcnQgdHlwZSBJbnB1dENoYXJ0VHlwZSA9ICh0eXBlb2YgQ0hBUlRfVFlQRV9WQUxVRVMpW251bWJlcl1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhdml6Q2hhcnRDb25maWdNb2RlbCB7XG4gIHhQcm9wZXJ0eTogc3RyaW5nXG4gIHlQcm9wZXJ0eTogc3RyaW5nXG4gIGFnZ3JlZ2F0aW9uOiBBZ2dyZWdhdGlvblR5cGVzXG4gIGNoYXJ0VHlwZTogSW5wdXRDaGFydFR5cGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhdml6Q29uZmlnTW9kZWwge1xuICB2aWV3OiBzdHJpbmdcbiAgc291cmNlOiBEYXRhc2V0T25saW5lUmVzb3VyY2VcbiAgY2hhcnRDb25maWc/OiBEYXRhdml6Q2hhcnRDb25maWdNb2RlbFxuICBzdHlsZVRNU0luZGV4OiBudW1iZXJcbn1cbiJdfQ==