geonetwork-ui 2.6.0-dev.502fa026d → 2.6.0-dev.531f5a239

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 (525) hide show
  1. package/esm2022/libs/api/metadata-converter/src/index.mjs +2 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/base.converter.mjs +1 -1
  3. package/esm2022/libs/api/metadata-converter/src/lib/common/distribution.mapper.mjs +3 -1
  4. package/esm2022/libs/api/metadata-converter/src/lib/common/resource-types.mjs +17 -15
  5. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +47 -6
  6. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
  7. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +8 -4
  8. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +5 -2
  9. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +6 -6
  10. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +5 -5
  11. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/constant.mjs +3 -1
  12. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +4 -12
  13. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +79 -16
  14. package/esm2022/libs/api/repository/src/lib/gn4/gn4.provider.mjs +7 -1
  15. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +7 -1
  16. package/esm2022/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.mjs +2 -1
  17. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  18. package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
  19. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +49 -9
  20. package/esm2022/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.mjs +2 -2
  21. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +32 -2
  22. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +29 -6
  23. package/esm2022/libs/feature/editor/src/index.mjs +2 -1
  24. package/esm2022/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.mjs +273 -0
  25. package/esm2022/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.mjs +2 -3
  26. package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +1 -1
  27. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +5 -5
  28. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +1 -1
  29. package/esm2022/libs/feature/record/src/index.mjs +2 -4
  30. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +3 -3
  31. package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +5 -9
  32. package/esm2022/libs/feature/record/src/lib/data-view-share/data-view-share.component.mjs +3 -3
  33. package/esm2022/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.mjs +7 -11
  34. package/esm2022/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.mjs +6 -3
  35. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +38 -7
  36. package/esm2022/libs/feature/record/src/lib/record-meta/record-meta.component.mjs +1 -1
  37. package/esm2022/libs/feature/record/src/lib/state/mdview.actions.mjs +3 -1
  38. package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +14 -5
  39. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +13 -15
  40. package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +7 -1
  41. package/esm2022/libs/feature/record/src/lib/state/mdview.selectors.mjs +3 -1
  42. package/esm2022/libs/feature/router/src/lib/default/constants.mjs +3 -1
  43. package/esm2022/libs/feature/router/src/lib/default/router.config.mjs +1 -1
  44. package/esm2022/libs/feature/router/src/lib/default/router.service.mjs +10 -2
  45. package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +9 -3
  46. package/esm2022/libs/feature/search/src/index.mjs +2 -2
  47. package/esm2022/libs/feature/search/src/lib/constants.mjs +4 -2
  48. package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +8 -7
  49. package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +13 -19
  50. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +5 -3
  51. package/esm2022/libs/feature/search/src/lib/record-url.token.mjs +4 -2
  52. package/esm2022/libs/feature/search/src/lib/results-hits/results-hits.container.component.mjs +41 -0
  53. package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +30 -10
  54. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +13 -10
  55. package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +70 -1
  56. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +4 -3
  57. package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +3 -3
  58. package/esm2022/libs/ui/dataviz/src/lib/chart/chart.component.mjs +5 -3
  59. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.component.mjs +11 -6
  60. package/esm2022/libs/ui/elements/src/index.mjs +6 -1
  61. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +27 -6
  62. package/esm2022/libs/ui/elements/src/lib/download-item/download-item.component.mjs +22 -6
  63. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +18 -7
  64. package/esm2022/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.mjs +55 -0
  65. package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +3 -3
  66. package/esm2022/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.mjs +122 -0
  67. package/esm2022/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.mjs +59 -0
  68. package/esm2022/libs/ui/elements/src/lib/kind-badge/kind-badge.component.mjs +68 -0
  69. package/esm2022/libs/ui/elements/src/lib/link-card/link-card.component.mjs +29 -7
  70. package/esm2022/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.mjs +3 -3
  71. package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +3 -3
  72. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +8 -5
  73. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +37 -12
  74. package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +5 -1
  75. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +3 -2
  76. package/esm2022/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.mjs +72 -0
  77. package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +17 -7
  78. package/esm2022/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.mjs +169 -0
  79. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +32 -4
  80. package/esm2022/libs/ui/inputs/src/index.mjs +3 -2
  81. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +3 -3
  82. package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +2 -2
  83. package/esm2022/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.mjs +3 -3
  84. package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +3 -3
  85. package/esm2022/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.mjs +42 -0
  86. package/esm2022/libs/ui/inputs/src/lib/inline-filter/inline-filter.model.mjs +2 -0
  87. package/esm2022/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.mjs +68 -0
  88. package/esm2022/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.mjs +4 -3
  89. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +8 -9
  90. package/esm2022/libs/ui/layout/src/index.mjs +3 -1
  91. package/esm2022/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.mjs +43 -3
  92. package/esm2022/libs/ui/layout/src/lib/block-list/block-list.component.mjs +48 -11
  93. package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +3 -3
  94. package/esm2022/libs/ui/layout/src/lib/cell-popin/cell-popin.component.mjs +110 -0
  95. package/esm2022/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.mjs +34 -13
  96. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +25 -3
  97. package/esm2022/libs/ui/layout/src/lib/max-lines/max-lines.component.mjs +3 -3
  98. package/esm2022/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.mjs +6 -6
  99. package/esm2022/libs/ui/layout/src/lib/truncated-text/truncated-text.component.mjs +73 -0
  100. package/esm2022/libs/ui/layout/src/lib/ui-layout.module.mjs +4 -12
  101. package/esm2022/libs/ui/map/src/index.mjs +2 -1
  102. package/esm2022/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.mjs +29 -4
  103. package/esm2022/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.mjs +80 -0
  104. package/esm2022/libs/ui/search/src/index.mjs +3 -1
  105. package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +4 -8
  106. package/esm2022/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.mjs +3 -3
  107. package/esm2022/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.mjs +53 -0
  108. package/esm2022/libs/ui/search/src/lib/results-list/results-layout.config.mjs +2 -2
  109. package/esm2022/libs/ui/search/src/lib/results-list/results-list.component.mjs +3 -3
  110. package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +21 -12
  111. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +39 -17
  112. package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +19 -5
  113. package/esm2022/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.mjs +3 -3
  114. package/esm2022/libs/util/app-config/src/lib/app-config.mjs +2 -1
  115. package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +2 -1
  116. package/esm2022/libs/util/i18n/src/lib/i18n.constants.mjs +42 -1
  117. package/esm2022/libs/util/i18n/src/lib/language-codes.mjs +24 -2
  118. package/esm2022/libs/util/shared/src/index.mjs +2 -1
  119. package/esm2022/libs/util/shared/src/lib/gn-ui-version.mjs +6 -0
  120. package/esm2022/libs/util/shared/src/lib/links/link-classifier.service.mjs +5 -1
  121. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +36 -24
  122. package/esm2022/translations/de.json +84 -8
  123. package/esm2022/translations/en.json +85 -9
  124. package/esm2022/translations/es.json +83 -7
  125. package/esm2022/translations/fr.json +85 -9
  126. package/esm2022/translations/it.json +83 -8
  127. package/esm2022/translations/nl.json +83 -7
  128. package/esm2022/translations/pt.json +83 -7
  129. package/fesm2022/geonetwork-ui.mjs +3810 -1392
  130. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  131. package/libs/api/metadata-converter/src/index.d.ts +1 -0
  132. package/libs/api/metadata-converter/src/index.d.ts.map +1 -1
  133. package/libs/api/metadata-converter/src/lib/base.converter.d.ts.map +1 -1
  134. package/libs/api/metadata-converter/src/lib/common/distribution.mapper.d.ts.map +1 -1
  135. package/libs/api/metadata-converter/src/lib/common/resource-types.d.ts +21 -0
  136. package/libs/api/metadata-converter/src/lib/common/resource-types.d.ts.map +1 -1
  137. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  138. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +0 -1
  139. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
  140. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts +1 -0
  141. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts.map +1 -1
  142. package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts.map +1 -1
  143. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  144. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  145. package/libs/api/repository/src/lib/gn4/elasticsearch/constant.d.ts.map +1 -1
  146. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +1 -1
  147. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  148. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +13 -2
  149. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  150. package/libs/api/repository/src/lib/gn4/gn4.provider.d.ts.map +1 -1
  151. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +2 -0
  152. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  153. package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts +1 -0
  154. package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts.map +1 -1
  155. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +27 -17
  156. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  157. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +6 -0
  158. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  159. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +12 -8
  160. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  161. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +1 -0
  162. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  163. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +6 -3
  164. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  165. package/libs/feature/editor/src/index.d.ts +1 -0
  166. package/libs/feature/editor/src/index.d.ts.map +1 -1
  167. package/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.d.ts +52 -0
  168. package/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.d.ts.map +1 -0
  169. package/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.d.ts.map +1 -1
  170. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts +6 -6
  171. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts.map +1 -1
  172. 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
  173. package/libs/feature/record/src/index.d.ts +1 -3
  174. package/libs/feature/record/src/index.d.ts.map +1 -1
  175. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +9 -1
  176. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  177. package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts +2 -3
  178. package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts.map +1 -1
  179. package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts +1 -2
  180. package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts.map +1 -1
  181. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts +2 -1
  182. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts.map +1 -1
  183. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  184. package/libs/feature/record/src/lib/record-meta/record-meta.component.d.ts +2 -2
  185. package/libs/feature/record/src/lib/state/mdview.actions.d.ts +10 -0
  186. package/libs/feature/record/src/lib/state/mdview.actions.d.ts.map +1 -1
  187. package/libs/feature/record/src/lib/state/mdview.effects.d.ts +9 -1
  188. package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
  189. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +28 -21
  190. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  191. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts +2 -0
  192. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts.map +1 -1
  193. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts +2 -0
  194. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts.map +1 -1
  195. package/libs/feature/router/src/lib/default/constants.d.ts +2 -0
  196. package/libs/feature/router/src/lib/default/constants.d.ts.map +1 -1
  197. package/libs/feature/router/src/lib/default/router.config.d.ts +2 -0
  198. package/libs/feature/router/src/lib/default/router.config.d.ts.map +1 -1
  199. package/libs/feature/router/src/lib/default/router.service.d.ts.map +1 -1
  200. package/libs/feature/router/src/lib/default/state/router.facade.d.ts +5 -0
  201. package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
  202. package/libs/feature/search/src/index.d.ts +1 -1
  203. package/libs/feature/search/src/index.d.ts.map +1 -1
  204. package/libs/feature/search/src/lib/constants.d.ts.map +1 -1
  205. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts.map +1 -1
  206. package/libs/feature/search/src/lib/feature-search.module.d.ts +4 -2
  207. package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
  208. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +2 -1
  209. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
  210. package/libs/feature/search/src/lib/record-url.token.d.ts +3 -1
  211. package/libs/feature/search/src/lib/record-url.token.d.ts.map +1 -1
  212. package/libs/feature/search/src/lib/results-hits/results-hits.container.component.d.ts +21 -0
  213. package/libs/feature/search/src/lib/results-hits/results-hits.container.component.d.ts.map +1 -0
  214. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts +5 -3
  215. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts.map +1 -1
  216. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +6 -5
  217. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
  218. package/libs/feature/search/src/lib/utils/service/fields.d.ts +21 -0
  219. package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
  220. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  221. package/libs/ui/dataviz/src/lib/chart/chart.component.d.ts +2 -1
  222. package/libs/ui/dataviz/src/lib/chart/chart.component.d.ts.map +1 -1
  223. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts +6 -1
  224. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts.map +1 -1
  225. package/libs/ui/elements/src/index.d.ts +5 -0
  226. package/libs/ui/elements/src/index.d.ts.map +1 -1
  227. package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts +9 -1
  228. package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts.map +1 -1
  229. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts +8 -1
  230. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts.map +1 -1
  231. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +7 -1
  232. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
  233. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts +15 -0
  234. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts.map +1 -0
  235. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts +36 -0
  236. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -0
  237. package/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.d.ts +14 -0
  238. package/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.d.ts.map +1 -0
  239. package/libs/ui/elements/src/lib/kind-badge/kind-badge.component.d.ts +13 -0
  240. package/libs/ui/elements/src/lib/kind-badge/kind-badge.component.d.ts.map +1 -0
  241. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts +10 -2
  242. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts.map +1 -1
  243. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +2 -2
  244. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
  245. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +3 -0
  246. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  247. package/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.d.ts.map +1 -1
  248. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  249. package/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.d.ts +27 -0
  250. package/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.d.ts.map +1 -0
  251. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts +8 -1
  252. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts.map +1 -1
  253. package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts +31 -0
  254. package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts.map +1 -0
  255. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +6 -1
  256. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  257. package/libs/ui/inputs/src/index.d.ts +2 -1
  258. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  259. package/libs/ui/inputs/src/lib/button/button.component.d.ts +1 -1
  260. package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
  261. package/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.d.ts +14 -0
  262. package/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.d.ts.map +1 -0
  263. package/libs/ui/inputs/src/lib/inline-filter/inline-filter.model.d.ts +6 -0
  264. package/libs/ui/inputs/src/lib/inline-filter/inline-filter.model.d.ts.map +1 -0
  265. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts +17 -0
  266. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts.map +1 -0
  267. package/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.d.ts.map +1 -1
  268. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +25 -24
  269. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  270. package/libs/ui/layout/src/index.d.ts +2 -0
  271. package/libs/ui/layout/src/index.d.ts.map +1 -1
  272. package/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.d.ts +10 -3
  273. package/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.d.ts.map +1 -1
  274. package/libs/ui/layout/src/lib/block-list/block-list.component.d.ts +9 -2
  275. package/libs/ui/layout/src/lib/block-list/block-list.component.d.ts.map +1 -1
  276. package/libs/ui/layout/src/lib/cell-popin/cell-popin.component.d.ts +28 -0
  277. package/libs/ui/layout/src/lib/cell-popin/cell-popin.component.d.ts.map +1 -0
  278. package/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.d.ts +15 -8
  279. package/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.d.ts.map +1 -1
  280. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts +5 -1
  281. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -1
  282. package/libs/ui/layout/src/lib/truncated-text/truncated-text.component.d.ts +22 -0
  283. package/libs/ui/layout/src/lib/truncated-text/truncated-text.component.d.ts.map +1 -0
  284. package/libs/ui/layout/src/lib/ui-layout.module.d.ts.map +1 -1
  285. package/libs/ui/map/src/index.d.ts +1 -0
  286. package/libs/ui/map/src/index.d.ts.map +1 -1
  287. package/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.d.ts +6 -2
  288. package/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.d.ts.map +1 -1
  289. package/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.d.ts +15 -0
  290. package/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.d.ts.map +1 -0
  291. package/libs/ui/search/src/index.d.ts +2 -0
  292. package/libs/ui/search/src/index.d.ts.map +1 -1
  293. package/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.d.ts +17 -0
  294. package/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.d.ts.map +1 -0
  295. package/libs/ui/search/src/lib/results-list/results-list.component.d.ts.map +1 -1
  296. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +4 -3
  297. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -1
  298. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +10 -4
  299. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  300. package/libs/ui/search/src/lib/ui-search.module.d.ts +22 -19
  301. package/libs/ui/search/src/lib/ui-search.module.d.ts.map +1 -1
  302. package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
  303. package/libs/util/app-config/src/lib/fixtures.d.ts.map +1 -1
  304. package/libs/util/i18n/src/lib/i18n.constants.d.ts +1 -0
  305. package/libs/util/i18n/src/lib/i18n.constants.d.ts.map +1 -1
  306. package/libs/util/i18n/src/lib/language-codes.d.ts +23 -1
  307. package/libs/util/i18n/src/lib/language-codes.d.ts.map +1 -1
  308. package/libs/util/shared/src/index.d.ts +1 -0
  309. package/libs/util/shared/src/index.d.ts.map +1 -1
  310. package/libs/util/shared/src/lib/gn-ui-version.d.ts +3 -0
  311. package/libs/util/shared/src/lib/gn-ui-version.d.ts.map +1 -0
  312. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts +3 -3
  313. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts.map +1 -1
  314. package/libs/util/shared/src/lib/links/link-utils.d.ts +30 -23
  315. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  316. package/package.json +2 -2
  317. package/src/libs/api/metadata-converter/src/index.ts +1 -0
  318. package/src/libs/api/metadata-converter/src/lib/base.converter.ts +1 -4
  319. package/src/libs/api/metadata-converter/src/lib/common/distribution.mapper.ts +1 -0
  320. package/src/libs/api/metadata-converter/src/lib/common/resource-types.ts +29 -15
  321. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.service+eaux-usees.ts +2 -2
  322. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +3 -3
  323. package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +2 -2
  324. package/src/libs/api/metadata-converter/src/lib/fixtures/wallonie.records.service+napitswallonia.ts +2 -2
  325. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +70 -6
  326. package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +0 -1
  327. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +13 -3
  328. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +5 -1
  329. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +10 -6
  330. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +7 -4
  331. package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +2 -0
  332. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +3 -11
  333. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +118 -16
  334. package/src/libs/api/repository/src/lib/gn4/gn4.provider.ts +6 -0
  335. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +11 -0
  336. package/src/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.ts +3 -0
  337. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +28 -11
  338. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +6 -0
  339. package/src/libs/common/fixtures/src/lib/elasticsearch/metadata-links.fixtures.ts +36 -26
  340. package/src/libs/common/fixtures/src/lib/link.fixtures.ts +16 -2
  341. package/src/libs/common/fixtures/src/lib/record-link.fixtures.ts +5 -5
  342. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +64 -1
  343. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.html +12 -9
  344. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +58 -10
  345. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +37 -0
  346. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.html +1 -0
  347. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +31 -1
  348. package/src/libs/feature/editor/src/index.ts +1 -0
  349. package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.html +120 -0
  350. package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.ts +325 -0
  351. package/src/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.ts +1 -2
  352. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +2 -2
  353. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +2 -2
  354. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +2 -2
  355. package/src/libs/feature/record/src/index.ts +1 -3
  356. package/src/libs/feature/record/src/lib/data-view/data-view.component.html +16 -10
  357. package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +2 -3
  358. package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.html +1 -1
  359. package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts +4 -5
  360. package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.html +2 -2
  361. package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.ts +1 -0
  362. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +25 -16
  363. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +40 -4
  364. package/src/libs/feature/record/src/lib/record-meta/record-meta.component.ts +2 -2
  365. package/src/libs/feature/record/src/lib/state/mdview.actions.ts +10 -0
  366. package/src/libs/feature/record/src/lib/state/mdview.effects.ts +27 -3
  367. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +21 -17
  368. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +12 -0
  369. package/src/libs/feature/record/src/lib/state/mdview.selectors.ts +9 -0
  370. package/src/libs/feature/router/src/lib/default/constants.ts +2 -0
  371. package/src/libs/feature/router/src/lib/default/router.config.ts +2 -0
  372. package/src/libs/feature/router/src/lib/default/router.service.ts +10 -0
  373. package/src/libs/feature/router/src/lib/default/state/router.facade.ts +10 -1
  374. package/src/libs/feature/search/src/index.ts +1 -1
  375. package/src/libs/feature/search/src/lib/constants.ts +3 -1
  376. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.html +1 -7
  377. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +16 -8
  378. package/src/libs/feature/search/src/lib/feature-search.module.ts +9 -10
  379. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.html +1 -1
  380. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +1 -0
  381. package/src/libs/feature/search/src/lib/record-url.token.ts +10 -1
  382. package/src/libs/feature/search/src/lib/results-hits/results-hits.container.component.css +0 -0
  383. package/src/libs/feature/search/src/lib/results-hits/results-hits.container.component.html +16 -0
  384. package/src/libs/feature/search/src/lib/results-hits/results-hits.container.component.ts +59 -0
  385. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.css +6 -0
  386. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.html +1 -0
  387. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +26 -5
  388. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +1 -0
  389. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +13 -3
  390. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +4 -5
  391. package/src/libs/feature/search/src/lib/utils/service/fields.ts +99 -0
  392. package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.html +1 -1
  393. package/src/libs/ui/dataviz/src/lib/chart/chart.component.ts +2 -1
  394. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.html +6 -3
  395. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.ts +5 -4
  396. package/src/libs/ui/elements/src/index.ts +5 -0
  397. package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +64 -38
  398. package/src/libs/ui/elements/src/lib/api-card/api-card.component.ts +26 -2
  399. package/src/libs/ui/elements/src/lib/download-item/download-item.component.html +21 -18
  400. package/src/libs/ui/elements/src/lib/download-item/download-item.component.ts +20 -2
  401. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +42 -10
  402. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +29 -2
  403. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.css +4 -0
  404. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.html +13 -0
  405. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.ts +54 -0
  406. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.html +1 -1
  407. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.css +0 -0
  408. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +83 -0
  409. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +131 -0
  410. package/src/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.html +69 -0
  411. package/src/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.ts +61 -0
  412. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.css +6 -0
  413. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.html +11 -0
  414. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.ts +70 -0
  415. package/src/libs/ui/elements/src/lib/link-card/link-card.component.html +30 -29
  416. package/src/libs/ui/elements/src/lib/link-card/link-card.component.ts +28 -2
  417. package/src/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.html +3 -5
  418. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +12 -9
  419. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.css +9 -0
  420. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +24 -7
  421. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +12 -4
  422. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +3 -2
  423. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +48 -9
  424. package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.ts +4 -0
  425. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +2 -1
  426. package/src/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.html +107 -0
  427. package/src/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.ts +83 -0
  428. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +8 -29
  429. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.ts +14 -1
  430. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.css +0 -0
  431. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.html +110 -0
  432. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts +191 -0
  433. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +14 -1
  434. package/src/libs/ui/inputs/src/index.ts +2 -1
  435. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +1 -1
  436. package/src/libs/ui/inputs/src/lib/button/button.component.ts +2 -2
  437. package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.html +1 -1
  438. package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.html +1 -1
  439. package/src/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.html +23 -0
  440. package/src/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.ts +44 -0
  441. package/src/libs/ui/inputs/src/lib/inline-filter/inline-filter.model.ts +5 -0
  442. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.css +0 -0
  443. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.html +43 -0
  444. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.ts +77 -0
  445. package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.html +7 -8
  446. package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.ts +2 -1
  447. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +3 -3
  448. package/src/libs/ui/layout/src/index.ts +2 -0
  449. package/src/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.ts +46 -2
  450. package/src/libs/ui/layout/src/lib/block-list/block-list.component.css +22 -0
  451. package/src/libs/ui/layout/src/lib/block-list/block-list.component.html +2 -2
  452. package/src/libs/ui/layout/src/lib/block-list/block-list.component.ts +43 -5
  453. package/src/libs/ui/layout/src/lib/carousel/carousel.component.css +0 -5
  454. package/src/libs/ui/layout/src/lib/carousel/carousel.component.html +1 -1
  455. package/src/libs/ui/layout/src/lib/cell-popin/cell-popin.component.html +40 -0
  456. package/src/libs/ui/layout/src/lib/cell-popin/cell-popin.component.ts +141 -0
  457. package/src/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.html +24 -8
  458. package/src/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.ts +36 -10
  459. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +4 -7
  460. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +20 -0
  461. package/src/libs/ui/layout/src/lib/max-lines/max-lines.component.html +1 -1
  462. package/src/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.html +17 -5
  463. package/src/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.ts +3 -3
  464. package/src/libs/ui/layout/src/lib/truncated-text/truncated-text.component.html +27 -0
  465. package/src/libs/ui/layout/src/lib/truncated-text/truncated-text.component.ts +91 -0
  466. package/src/libs/ui/layout/src/lib/ui-layout.module.ts +2 -6
  467. package/src/libs/ui/map/src/index.ts +1 -0
  468. package/src/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.html +3 -3
  469. package/src/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.ts +27 -3
  470. package/src/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.css +0 -0
  471. package/src/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.html +4 -0
  472. 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
  473. package/src/libs/ui/search/src/index.ts +2 -0
  474. package/src/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.html +9 -81
  475. package/src/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.html +1 -1
  476. package/src/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.html +25 -0
  477. package/src/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.ts +53 -0
  478. package/src/libs/ui/search/src/lib/results-list/results-layout.config.ts +2 -2
  479. package/src/libs/ui/search/src/lib/results-list/results-list.component.html +1 -0
  480. package/src/libs/ui/search/src/lib/results-list/results-list.component.ts +0 -1
  481. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +16 -6
  482. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +15 -11
  483. package/src/libs/ui/search/src/lib/results-table/results-table.component.css +4 -0
  484. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +31 -24
  485. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +33 -14
  486. package/src/libs/ui/search/src/lib/ui-search.module.ts +8 -0
  487. package/src/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.html +4 -3
  488. package/src/libs/util/app-config/src/lib/app-config.ts +1 -0
  489. package/src/libs/util/app-config/src/lib/fixtures.ts +1 -0
  490. package/src/libs/util/i18n/src/lib/i18n.constants.ts +42 -0
  491. package/src/libs/util/i18n/src/lib/language-codes.ts +23 -1
  492. package/src/libs/util/shared/src/index.ts +1 -0
  493. package/src/libs/util/shared/src/lib/gn-ui-version.ts +8 -0
  494. package/src/libs/util/shared/src/lib/links/link-classifier.service.ts +15 -3
  495. package/src/libs/util/shared/src/lib/links/link-utils.ts +53 -30
  496. package/tailwind.base.config.js +3 -0
  497. package/tailwind.base.css +39 -13
  498. package/translations/de.json +84 -8
  499. package/translations/en.json +85 -9
  500. package/translations/es.json +83 -7
  501. package/translations/fr.json +85 -9
  502. package/translations/it.json +83 -8
  503. package/translations/nl.json +83 -7
  504. package/translations/pt.json +83 -7
  505. package/translations/sk.json +83 -7
  506. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.mjs +0 -79
  507. package/esm2022/libs/feature/record/src/lib/gn-ui-version.token.mjs +0 -3
  508. package/esm2022/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.mjs +0 -18
  509. package/esm2022/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.mjs +0 -16
  510. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts +0 -15
  511. 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
  512. package/libs/feature/record/src/lib/gn-ui-version.token.d.ts +0 -3
  513. package/libs/feature/record/src/lib/gn-ui-version.token.d.ts.map +0 -1
  514. package/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.d.ts +0 -9
  515. package/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.d.ts.map +0 -1
  516. package/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.d.ts +0 -8
  517. package/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.d.ts.map +0 -1
  518. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.html +0 -1
  519. package/src/libs/feature/record/src/lib/gn-ui-version.token.ts +0 -3
  520. package/src/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.html +0 -4
  521. package/src/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.ts +0 -10
  522. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.css +0 -3
  523. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.html +0 -9
  524. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.ts +0 -15
  525. /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
@@ -0,0 +1,68 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, Input, TemplateRef, } from '@angular/core';
3
+ import { provideIcons } from '@ng-icons/core';
4
+ import { iconoirAppleWallet, iconoirAppleShortcuts, iconoirCode, iconoirCreditCard, } from '@ng-icons/iconoir';
5
+ import { NgIconsModule } from '@ng-icons/core';
6
+ import { TranslateModule } from '@ngx-translate/core';
7
+ import { marker } from '@biesbjerg/ngx-translate-extract-marker';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@ng-icons/core";
10
+ import * as i2 from "@angular/common";
11
+ import * as i3 from "@ngx-translate/core";
12
+ marker('record.kind.dataset');
13
+ marker('record.kind.reuse');
14
+ marker('record.kind.service');
15
+ var KindConfig;
16
+ (function (KindConfig) {
17
+ KindConfig["all"] = "iconoirAppleWallet";
18
+ KindConfig["dataset"] = "iconoirAppleShortcuts";
19
+ KindConfig["service"] = "iconoirCode";
20
+ KindConfig["reuse"] = "iconoirCreditCard";
21
+ })(KindConfig || (KindConfig = {}));
22
+ export class KindBadgeComponent {
23
+ constructor() {
24
+ this.styling = 'default';
25
+ this.hasProjectedContent = false;
26
+ }
27
+ get iconKind() {
28
+ return KindConfig[this.kind] || KindConfig.dataset;
29
+ }
30
+ get badgeClasses() {
31
+ const baseClasses = 'badge-btn text-white text-xs px-2 font-bold shrink-0 flex items-center h-6 min-h-6';
32
+ switch (this.styling) {
33
+ case 'outline':
34
+ return `${baseClasses} bg-transparent border border-white py-1.5`;
35
+ case 'default':
36
+ return `${baseClasses} bg-primary py-0.5`;
37
+ default:
38
+ return 'flex items-center';
39
+ }
40
+ }
41
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KindBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
42
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: KindBadgeComponent, isStandalone: true, selector: "gn-ui-kind-badge", inputs: { styling: "styling", contentTemplate: "contentTemplate", kind: "kind" }, ngImport: i0, template: "<div [class]=\"badgeClasses\" *ngIf=\"kind\">\n <ng-icon [name]=\"iconKind\" class=\"mr-1 text-[0.85em]\"></ng-icon>\n\n <ng-container *ngIf=\"contentTemplate; else defaultContent\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #defaultContent>\n {{ 'record.kind.' + kind | translate }}\n</ng-template>\n", styles: [":host gn-ui-badge ng-icon{font-size:1.2rem;width:1.2rem;height:1.2rem;transform:translateY(-2px)}\n"], dependencies: [{ kind: "ngmodule", type: NgIconsModule }, { kind: "component", type: i1.NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], viewProviders: [
43
+ provideIcons({
44
+ iconoirAppleWallet,
45
+ iconoirAppleShortcuts,
46
+ iconoirCode,
47
+ iconoirCreditCard,
48
+ }),
49
+ ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
50
+ }
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KindBadgeComponent, decorators: [{
52
+ type: Component,
53
+ args: [{ selector: 'gn-ui-kind-badge', viewProviders: [
54
+ provideIcons({
55
+ iconoirAppleWallet,
56
+ iconoirAppleShortcuts,
57
+ iconoirCode,
58
+ iconoirCreditCard,
59
+ }),
60
+ ], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIconsModule, CommonModule, TranslateModule], template: "<div [class]=\"badgeClasses\" *ngIf=\"kind\">\n <ng-icon [name]=\"iconKind\" class=\"mr-1 text-[0.85em]\"></ng-icon>\n\n <ng-container *ngIf=\"contentTemplate; else defaultContent\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #defaultContent>\n {{ 'record.kind.' + kind | translate }}\n</ng-template>\n", styles: [":host gn-ui-badge ng-icon{font-size:1.2rem;width:1.2rem;height:1.2rem;transform:translateY(-2px)}\n"] }]
61
+ }], propDecorators: { styling: [{
62
+ type: Input
63
+ }], contentTemplate: [{
64
+ type: Input
65
+ }], kind: [{
66
+ type: Input
67
+ }] } });
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2luZC1iYWRnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYy9saWIva2luZC1iYWRnZS9raW5kLWJhZGdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9raW5kLWJhZGdlL2tpbmQtYmFkZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFDTCxXQUFXLEdBQ1osTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzdDLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIscUJBQXFCLEVBQ3JCLFdBQVcsRUFDWCxpQkFBaUIsR0FDbEIsTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTs7Ozs7QUFFaEUsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUE7QUFDN0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUE7QUFDM0IsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUE7QUFFN0IsSUFBSyxVQUtKO0FBTEQsV0FBSyxVQUFVO0lBQ2Isd0NBQTBCLENBQUE7SUFDMUIsK0NBQWlDLENBQUE7SUFDakMscUNBQXVCLENBQUE7SUFDdkIseUNBQTJCLENBQUE7QUFDN0IsQ0FBQyxFQUxJLFVBQVUsS0FBVixVQUFVLFFBS2Q7QUFrQkQsTUFBTSxPQUFPLGtCQUFrQjtJQWhCL0I7UUFpQlcsWUFBTyxHQUFHLFNBQVMsQ0FBQTtRQUk1Qix3QkFBbUIsR0FBRyxLQUFLLENBQUE7S0FtQjVCO0lBakJDLElBQUksUUFBUTtRQUNWLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFBO0lBQ3BELENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxNQUFNLFdBQVcsR0FDZixvRkFBb0YsQ0FBQTtRQUV0RixRQUFRLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNyQixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxHQUFHLFdBQVcsNENBQTRDLENBQUE7WUFDbkUsS0FBSyxTQUFTO2dCQUNaLE9BQU8sR0FBRyxXQUFXLG9CQUFvQixDQUFBO1lBQzNDO2dCQUNFLE9BQU8sbUJBQW1CLENBQUE7UUFDOUIsQ0FBQztJQUNILENBQUM7K0dBdkJVLGtCQUFrQjttR0FBbEIsa0JBQWtCLDhKQzdDL0IsNFhBV0EsNEpEZ0NZLGFBQWEsb0pBQUUsWUFBWSx5U0FBRSxlQUFlLGlGQVZ2QztZQUNiLFlBQVksQ0FBQztnQkFDWCxrQkFBa0I7Z0JBQ2xCLHFCQUFxQjtnQkFDckIsV0FBVztnQkFDWCxpQkFBaUI7YUFDbEIsQ0FBQztTQUNIOzs0RkFLVSxrQkFBa0I7a0JBaEI5QixTQUFTOytCQUNFLGtCQUFrQixpQkFHYjt3QkFDYixZQUFZLENBQUM7NEJBQ1gsa0JBQWtCOzRCQUNsQixxQkFBcUI7NEJBQ3JCLFdBQVc7NEJBQ1gsaUJBQWlCO3lCQUNsQixDQUFDO3FCQUNILG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLGFBQWEsRUFBRSxZQUFZLEVBQUUsZUFBZSxDQUFDOzhCQUc5QyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBwcm92aWRlSWNvbnMgfSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7XG4gIGljb25vaXJBcHBsZVdhbGxldCxcbiAgaWNvbm9pckFwcGxlU2hvcnRjdXRzLFxuICBpY29ub2lyQ29kZSxcbiAgaWNvbm9pckNyZWRpdENhcmQsXG59IGZyb20gJ0BuZy1pY29ucy9pY29ub2lyJ1xuaW1wb3J0IHsgTmdJY29uc01vZHVsZSB9IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IG1hcmtlciB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcidcblxubWFya2VyKCdyZWNvcmQua2luZC5kYXRhc2V0Jylcbm1hcmtlcigncmVjb3JkLmtpbmQucmV1c2UnKVxubWFya2VyKCdyZWNvcmQua2luZC5zZXJ2aWNlJylcblxuZW51bSBLaW5kQ29uZmlnIHtcbiAgYWxsID0gJ2ljb25vaXJBcHBsZVdhbGxldCcsIC8vICh0aGlzIG9uZSBpcyBmb3IgZmlsdGVyKVxuICBkYXRhc2V0ID0gJ2ljb25vaXJBcHBsZVNob3J0Y3V0cycsXG4gIHNlcnZpY2UgPSAnaWNvbm9pckNvZGUnLFxuICByZXVzZSA9ICdpY29ub2lyQ3JlZGl0Q2FyZCcsXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWtpbmQtYmFkZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4va2luZC1iYWRnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2tpbmQtYmFkZ2UuY29tcG9uZW50LmNzcyddLFxuICB2aWV3UHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHtcbiAgICAgIGljb25vaXJBcHBsZVdhbGxldCxcbiAgICAgIGljb25vaXJBcHBsZVNob3J0Y3V0cyxcbiAgICAgIGljb25vaXJDb2RlLFxuICAgICAgaWNvbm9pckNyZWRpdENhcmQsXG4gICAgfSksXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdJY29uc01vZHVsZSwgQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBLaW5kQmFkZ2VDb21wb25lbnQge1xuICBASW5wdXQoKSBzdHlsaW5nID0gJ2RlZmF1bHQnXG4gIEBJbnB1dCgpIGNvbnRlbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj5cbiAgQElucHV0KCkga2luZDogc3RyaW5nXG5cbiAgaGFzUHJvamVjdGVkQ29udGVudCA9IGZhbHNlXG5cbiAgZ2V0IGljb25LaW5kKCkge1xuICAgIHJldHVybiBLaW5kQ29uZmlnW3RoaXMua2luZF0gfHwgS2luZENvbmZpZy5kYXRhc2V0XG4gIH1cblxuICBnZXQgYmFkZ2VDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYmFzZUNsYXNzZXMgPVxuICAgICAgJ2JhZGdlLWJ0biB0ZXh0LXdoaXRlIHRleHQteHMgcHgtMiBmb250LWJvbGQgc2hyaW5rLTAgZmxleCBpdGVtcy1jZW50ZXIgaC02IG1pbi1oLTYnXG5cbiAgICBzd2l0Y2ggKHRoaXMuc3R5bGluZykge1xuICAgICAgY2FzZSAnb3V0bGluZSc6XG4gICAgICAgIHJldHVybiBgJHtiYXNlQ2xhc3Nlc30gYmctdHJhbnNwYXJlbnQgYm9yZGVyIGJvcmRlci13aGl0ZSBweS0xLjVgXG4gICAgICBjYXNlICdkZWZhdWx0JzpcbiAgICAgICAgcmV0dXJuIGAke2Jhc2VDbGFzc2VzfSBiZy1wcmltYXJ5IHB5LTAuNWBcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnZmxleCBpdGVtcy1jZW50ZXInXG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IFtjbGFzc109XCJiYWRnZUNsYXNzZXNcIiAqbmdJZj1cImtpbmRcIj5cbiAgPG5nLWljb24gW25hbWVdPVwiaWNvbktpbmRcIiBjbGFzcz1cIm1yLTEgdGV4dC1bMC44NWVtXVwiPjwvbmctaWNvbj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGVudFRlbXBsYXRlOyBlbHNlIGRlZmF1bHRDb250ZW50XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRDb250ZW50PlxuICB7eyAncmVjb3JkLmtpbmQuJyArIGtpbmQgfCB0cmFuc2xhdGUgfX1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -2,11 +2,27 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { NgIconComponent, provideIcons, provideNgIconsConfig, } from '@ng-icons/core';
4
4
  import { matOpenInNew } from '@ng-icons/material-icons/baseline';
5
+ import { getBadgeColor, getFileFormat } from '../../../../../../libs/util/shared/src';
6
+ import { TranslateModule } from '@ngx-translate/core';
5
7
  import * as i0 from "@angular/core";
6
8
  import * as i1 from "@angular/common";
9
+ import * as i2 from "@ngx-translate/core";
7
10
  export class LinkCardComponent {
8
11
  constructor() {
9
- this.compact = false;
12
+ this.sizeClassMap = {
13
+ L: 'gn-ui-card-l py-2 px-5',
14
+ M: 'gn-ui-card-m py-2 px-5',
15
+ S: 'gn-ui-card-s p-4',
16
+ XS: 'gn-ui-card-xs py-2 px-5',
17
+ };
18
+ this.cardClass = '';
19
+ }
20
+ set size(value) {
21
+ this._size = value;
22
+ this.cardClass = this.sizeClassMap[value];
23
+ }
24
+ get size() {
25
+ return this._size;
10
26
  }
11
27
  get title() {
12
28
  if (this.link.name && this.link.description) {
@@ -14,25 +30,31 @@ export class LinkCardComponent {
14
30
  }
15
31
  return this.link.name || this.link.description || '';
16
32
  }
33
+ getLinkFormat(link) {
34
+ return getFileFormat(link);
35
+ }
36
+ getLinkColor(link) {
37
+ return getBadgeColor(getFileFormat(link));
38
+ }
17
39
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LinkCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
18
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LinkCardComponent, isStandalone: true, selector: "gn-ui-link-card", inputs: { link: "link", compact: "compact" }, providers: [
40
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LinkCardComponent, isStandalone: true, selector: "gn-ui-link-card", inputs: { link: "link", size: "size" }, providers: [
19
41
  provideIcons({
20
42
  matOpenInNew,
21
43
  }),
22
44
  provideNgIconsConfig({ size: '1.5em' }),
23
- ], ngImport: i0, template: "<a\n [href]=\"link.url\"\n target=\"_blank\"\n class=\"flex flex-col justify-between group grow py-5 px-5 bg-white rounded border-gray-300 filter card-shadow overflow-hidden\"\n [ngClass]=\"{ 'h-40': !compact }\"\n [title]=\"title\"\n>\n <ng-container *ngIf=\"!compact; else compactTpl\">\n <div class=\"max-h-24 overflow-hidden text-ellipsis\">\n <p\n class=\"font-title font-medium text-21 text-black break-words mb-1 line-clamp-2\"\n >\n {{ link.name }}\n </p>\n <p class=\"font-medium text-sm break-words\">\n {{ link.description }}\n </p>\n <p\n *ngIf=\"!link.name && !link.description\"\n class=\"font-medium text-sm break-words truncate\"\n >\n {{ link.url }}\n </p>\n </div>\n <div>\n <ng-icon class=\"card-icon\" name=\"matOpenInNew\"></ng-icon>\n </div>\n </ng-container>\n <ng-template #compactTpl>\n <div class=\"flex items-center justify-between gap-4\">\n <p\n class=\"overflow-hidden font-title font-medium text-21 text-black text-ellipsis whitespace-nowrap\"\n >\n {{ link.name || link.description }}\n </p>\n <ng-icon class=\"card-icon flex-shrink-0\" name=\"matOpenInNew\"></ng-icon>\n </div>\n </ng-template>\n</a>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
45
+ ], ngImport: i0, template: "<a\n [href]=\"link.url\"\n target=\"_blank\"\n class=\"group flex flex-row justify-between card-shadow cursor-pointer rounded overflow-hidden\"\n [ngClass]=\"cardClass\"\n [title]=\"title\"\n>\n <div class=\"flex flex-col justify-between flex-1 min-w-0\">\n <div class=\"gn-ui-card-title\">\n {{ link.description || link.name }}\n </div>\n <div class=\"gn-ui-card-detail\">\n {{ link.name }}\n </div>\n <p *ngIf=\"!link.name && !link.description\" class=\"gn-ui-card-title\">\n {{ link.url }}\n </p>\n <div class=\"pt-1\">\n <span\n class=\"inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded transition-opacity opacity-70 group-hover:opacity-100\"\n [style.background-color]=\"getLinkColor(link)\"\n data-cy=\"download-format\"\n >{{\n getLinkFormat(link) || ('downloads.format.unknown' | translate)\n }}</span\n >\n </div>\n </div>\n <div\n class=\"flex min-w-[32px]\"\n [ngClass]=\"size === 'S' ? 'items-end' : 'items-center'\"\n >\n <div class=\"gn-ui-card-icon\">\n <ng-icon\n class=\"inline-block card-icon align-middle\"\n name=\"matOpenInNew\"\n ></ng-icon>\n </div>\n </div>\n</a>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24
46
  }
25
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LinkCardComponent, decorators: [{
26
48
  type: Component,
27
- args: [{ selector: 'gn-ui-link-card', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, NgIconComponent], providers: [
49
+ args: [{ selector: 'gn-ui-link-card', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, NgIconComponent, TranslateModule], providers: [
28
50
  provideIcons({
29
51
  matOpenInNew,
30
52
  }),
31
53
  provideNgIconsConfig({ size: '1.5em' }),
32
- ], template: "<a\n [href]=\"link.url\"\n target=\"_blank\"\n class=\"flex flex-col justify-between group grow py-5 px-5 bg-white rounded border-gray-300 filter card-shadow overflow-hidden\"\n [ngClass]=\"{ 'h-40': !compact }\"\n [title]=\"title\"\n>\n <ng-container *ngIf=\"!compact; else compactTpl\">\n <div class=\"max-h-24 overflow-hidden text-ellipsis\">\n <p\n class=\"font-title font-medium text-21 text-black break-words mb-1 line-clamp-2\"\n >\n {{ link.name }}\n </p>\n <p class=\"font-medium text-sm break-words\">\n {{ link.description }}\n </p>\n <p\n *ngIf=\"!link.name && !link.description\"\n class=\"font-medium text-sm break-words truncate\"\n >\n {{ link.url }}\n </p>\n </div>\n <div>\n <ng-icon class=\"card-icon\" name=\"matOpenInNew\"></ng-icon>\n </div>\n </ng-container>\n <ng-template #compactTpl>\n <div class=\"flex items-center justify-between gap-4\">\n <p\n class=\"overflow-hidden font-title font-medium text-21 text-black text-ellipsis whitespace-nowrap\"\n >\n {{ link.name || link.description }}\n </p>\n <ng-icon class=\"card-icon flex-shrink-0\" name=\"matOpenInNew\"></ng-icon>\n </div>\n </ng-template>\n</a>\n" }]
54
+ ], template: "<a\n [href]=\"link.url\"\n target=\"_blank\"\n class=\"group flex flex-row justify-between card-shadow cursor-pointer rounded overflow-hidden\"\n [ngClass]=\"cardClass\"\n [title]=\"title\"\n>\n <div class=\"flex flex-col justify-between flex-1 min-w-0\">\n <div class=\"gn-ui-card-title\">\n {{ link.description || link.name }}\n </div>\n <div class=\"gn-ui-card-detail\">\n {{ link.name }}\n </div>\n <p *ngIf=\"!link.name && !link.description\" class=\"gn-ui-card-title\">\n {{ link.url }}\n </p>\n <div class=\"pt-1\">\n <span\n class=\"inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded transition-opacity opacity-70 group-hover:opacity-100\"\n [style.background-color]=\"getLinkColor(link)\"\n data-cy=\"download-format\"\n >{{\n getLinkFormat(link) || ('downloads.format.unknown' | translate)\n }}</span\n >\n </div>\n </div>\n <div\n class=\"flex min-w-[32px]\"\n [ngClass]=\"size === 'S' ? 'items-end' : 'items-center'\"\n >\n <div class=\"gn-ui-card-icon\">\n <ng-icon\n class=\"inline-block card-icon align-middle\"\n name=\"matOpenInNew\"\n ></ng-icon>\n </div>\n </div>\n</a>\n" }]
33
55
  }], propDecorators: { link: [{
34
56
  type: Input
35
- }], compact: [{
57
+ }], size: [{
36
58
  type: Input
37
59
  }] } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9saW5rLWNhcmQvbGluay1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9saW5rLWNhcmQvbGluay1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRXpFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQ0wsZUFBZSxFQUNmLFlBQVksRUFDWixvQkFBb0IsR0FDckIsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUE7OztBQWdCaEUsTUFBTSxPQUFPLGlCQUFpQjtJQWQ5QjtRQWdCVyxZQUFPLEdBQUcsS0FBSyxDQUFBO0tBUXpCO0lBTkMsSUFBSSxLQUFLO1FBQ1AsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzVDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQ3ZELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQTtJQUN0RCxDQUFDOytHQVRVLGlCQUFpQjttR0FBakIsaUJBQWlCLDRHQVBqQjtZQUNULFlBQVksQ0FBQztnQkFDWCxZQUFZO2FBQ2IsQ0FBQztZQUNGLG9CQUFvQixDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO1NBQ3hDLDBCQ3RCSCxxd0NBdUNBLHlERHZCWSxZQUFZLGlPQUFFLGVBQWU7OzRGQVE1QixpQkFBaUI7a0JBZDdCLFNBQVM7K0JBQ0UsaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQyxhQUM3Qjt3QkFDVCxZQUFZLENBQUM7NEJBQ1gsWUFBWTt5QkFDYixDQUFDO3dCQUNGLG9CQUFvQixDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO3FCQUN4Qzs4QkFHUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRGF0YXNldE9ubGluZVJlc291cmNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHtcbiAgTmdJY29uQ29tcG9uZW50LFxuICBwcm92aWRlSWNvbnMsXG4gIHByb3ZpZGVOZ0ljb25zQ29uZmlnLFxufSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IG1hdE9wZW5Jbk5ldyB9IGZyb20gJ0BuZy1pY29ucy9tYXRlcmlhbC1pY29ucy9iYXNlbGluZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktbGluay1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpbmstY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xpbmstY2FyZC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBOZ0ljb25Db21wb25lbnRdLFxuICBwcm92aWRlcnM6IFtcbiAgICBwcm92aWRlSWNvbnMoe1xuICAgICAgbWF0T3BlbkluTmV3LFxuICAgIH0pLFxuICAgIHByb3ZpZGVOZ0ljb25zQ29uZmlnKHsgc2l6ZTogJzEuNWVtJyB9KSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTGlua0NhcmRDb21wb25lbnQge1xuICBASW5wdXQoKSBsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2VcbiAgQElucHV0KCkgY29tcGFjdCA9IGZhbHNlXG5cbiAgZ2V0IHRpdGxlKCkge1xuICAgIGlmICh0aGlzLmxpbmsubmFtZSAmJiB0aGlzLmxpbmsuZGVzY3JpcHRpb24pIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLmxpbmsubmFtZX0gfCAke3RoaXMubGluay5kZXNjcmlwdGlvbn1gXG4gICAgfVxuICAgIHJldHVybiB0aGlzLmxpbmsubmFtZSB8fCB0aGlzLmxpbmsuZGVzY3JpcHRpb24gfHwgJydcbiAgfVxufVxuIiwiPGFcbiAgW2hyZWZdPVwibGluay51cmxcIlxuICB0YXJnZXQ9XCJfYmxhbmtcIlxuICBjbGFzcz1cImZsZXggZmxleC1jb2wganVzdGlmeS1iZXR3ZWVuIGdyb3VwIGdyb3cgcHktNSBweC01IGJnLXdoaXRlIHJvdW5kZWQgYm9yZGVyLWdyYXktMzAwIGZpbHRlciBjYXJkLXNoYWRvdyBvdmVyZmxvdy1oaWRkZW5cIlxuICBbbmdDbGFzc109XCJ7ICdoLTQwJzogIWNvbXBhY3QgfVwiXG4gIFt0aXRsZV09XCJ0aXRsZVwiXG4+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY29tcGFjdDsgZWxzZSBjb21wYWN0VHBsXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1heC1oLTI0IG92ZXJmbG93LWhpZGRlbiB0ZXh0LWVsbGlwc2lzXCI+XG4gICAgICA8cFxuICAgICAgICBjbGFzcz1cImZvbnQtdGl0bGUgZm9udC1tZWRpdW0gdGV4dC0yMSB0ZXh0LWJsYWNrIGJyZWFrLXdvcmRzIG1iLTEgbGluZS1jbGFtcC0yXCJcbiAgICAgID5cbiAgICAgICAge3sgbGluay5uYW1lIH19XG4gICAgICA8L3A+XG4gICAgICA8cCBjbGFzcz1cImZvbnQtbWVkaXVtIHRleHQtc20gYnJlYWstd29yZHNcIj5cbiAgICAgICAge3sgbGluay5kZXNjcmlwdGlvbiB9fVxuICAgICAgPC9wPlxuICAgICAgPHBcbiAgICAgICAgKm5nSWY9XCIhbGluay5uYW1lICYmICFsaW5rLmRlc2NyaXB0aW9uXCJcbiAgICAgICAgY2xhc3M9XCJmb250LW1lZGl1bSB0ZXh0LXNtIGJyZWFrLXdvcmRzIHRydW5jYXRlXCJcbiAgICAgID5cbiAgICAgICAge3sgbGluay51cmwgfX1cbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPG5nLWljb24gY2xhc3M9XCJjYXJkLWljb25cIiBuYW1lPVwibWF0T3BlbkluTmV3XCI+PC9uZy1pY29uPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLXRlbXBsYXRlICNjb21wYWN0VHBsPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gZ2FwLTRcIj5cbiAgICAgIDxwXG4gICAgICAgIGNsYXNzPVwib3ZlcmZsb3ctaGlkZGVuIGZvbnQtdGl0bGUgZm9udC1tZWRpdW0gdGV4dC0yMSB0ZXh0LWJsYWNrIHRleHQtZWxsaXBzaXMgd2hpdGVzcGFjZS1ub3dyYXBcIlxuICAgICAgPlxuICAgICAgICB7eyBsaW5rLm5hbWUgfHwgbGluay5kZXNjcmlwdGlvbiB9fVxuICAgICAgPC9wPlxuICAgICAgPG5nLWljb24gY2xhc3M9XCJjYXJkLWljb24gZmxleC1zaHJpbmstMFwiIG5hbWU9XCJtYXRPcGVuSW5OZXdcIj48L25nLWljb24+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2E+XG4iXX0=
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9saW5rLWNhcmQvbGluay1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9saW5rLWNhcmQvbGluay1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRXpFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQ0wsZUFBZSxFQUNmLFlBQVksRUFDWixvQkFBb0IsR0FDckIsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUNyRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7Ozs7QUFpQnJELE1BQU0sT0FBTyxpQkFBaUI7SUFkOUI7UUFpQm1CLGlCQUFZLEdBQTZCO1lBQ3hELENBQUMsRUFBRSx3QkFBd0I7WUFDM0IsQ0FBQyxFQUFFLHdCQUF3QjtZQUMzQixDQUFDLEVBQUUsa0JBQWtCO1lBQ3JCLEVBQUUsRUFBRSx5QkFBeUI7U0FDOUIsQ0FBQTtRQVNELGNBQVMsR0FBRyxFQUFFLENBQUE7S0FnQmY7SUF2QkMsSUFBYSxJQUFJLENBQUMsS0FBZTtRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtRQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDM0MsQ0FBQztJQUNELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQTtJQUNuQixDQUFDO0lBR0QsSUFBSSxLQUFLO1FBQ1AsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzVDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQ3ZELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQTtJQUN0RCxDQUFDO0lBRUQsYUFBYSxDQUFDLElBQVM7UUFDckIsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDNUIsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFTO1FBQ3BCLE9BQU8sYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQzNDLENBQUM7K0dBaENVLGlCQUFpQjttR0FBakIsaUJBQWlCLHNHQVBqQjtZQUNULFlBQVksQ0FBQztnQkFDWCxZQUFZO2FBQ2IsQ0FBQztZQUNGLG9CQUFvQixDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO1NBQ3hDLDBCQ3pCSCxrd0NBd0NBLHlERHJCWSxZQUFZLGlPQUFFLGVBQWUsNEdBQUUsZUFBZTs7NEZBUTdDLGlCQUFpQjtrQkFkN0IsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGVBQWUsQ0FBQyxhQUM5Qzt3QkFDVCxZQUFZLENBQUM7NEJBQ1gsWUFBWTt5QkFDYixDQUFDO3dCQUNGLG9CQUFvQixDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO3FCQUN4Qzs4QkFJUSxJQUFJO3NCQUFaLEtBQUs7Z0JBUU8sSUFBSTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IERhdGFzZXRPbmxpbmVSZXNvdXJjZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIE5nSWNvbkNvbXBvbmVudCxcbiAgcHJvdmlkZUljb25zLFxuICBwcm92aWRlTmdJY29uc0NvbmZpZyxcbn0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBtYXRPcGVuSW5OZXcgfSBmcm9tICdAbmctaWNvbnMvbWF0ZXJpYWwtaWNvbnMvYmFzZWxpbmUnXG5pbXBvcnQgeyBnZXRCYWRnZUNvbG9yLCBnZXRGaWxlRm9ybWF0IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuXG50eXBlIENhcmRTaXplID0gJ0wnIHwgJ00nIHwgJ1MnIHwgJ1hTJ1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktbGluay1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpbmstY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xpbmstY2FyZC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBOZ0ljb25Db21wb25lbnQsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIHByb3ZpZGVyczogW1xuICAgIHByb3ZpZGVJY29ucyh7XG4gICAgICBtYXRPcGVuSW5OZXcsXG4gICAgfSksXG4gICAgcHJvdmlkZU5nSWNvbnNDb25maWcoeyBzaXplOiAnMS41ZW0nIH0pLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBMaW5rQ2FyZENvbXBvbmVudCB7XG4gIHByaXZhdGUgX3NpemU6IENhcmRTaXplXG4gIEBJbnB1dCgpIGxpbms6IERhdGFzZXRPbmxpbmVSZXNvdXJjZVxuICBwcml2YXRlIHJlYWRvbmx5IHNpemVDbGFzc01hcDogUmVjb3JkPENhcmRTaXplLCBzdHJpbmc+ID0ge1xuICAgIEw6ICdnbi11aS1jYXJkLWwgcHktMiBweC01JyxcbiAgICBNOiAnZ24tdWktY2FyZC1tIHB5LTIgcHgtNScsXG4gICAgUzogJ2duLXVpLWNhcmQtcyBwLTQnLFxuICAgIFhTOiAnZ24tdWktY2FyZC14cyBweS0yIHB4LTUnLFxuICB9XG5cbiAgQElucHV0KCkgc2V0IHNpemUodmFsdWU6IENhcmRTaXplKSB7XG4gICAgdGhpcy5fc2l6ZSA9IHZhbHVlXG4gICAgdGhpcy5jYXJkQ2xhc3MgPSB0aGlzLnNpemVDbGFzc01hcFt2YWx1ZV1cbiAgfVxuICBnZXQgc2l6ZSgpOiBDYXJkU2l6ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3NpemVcbiAgfVxuICBjYXJkQ2xhc3MgPSAnJ1xuXG4gIGdldCB0aXRsZSgpIHtcbiAgICBpZiAodGhpcy5saW5rLm5hbWUgJiYgdGhpcy5saW5rLmRlc2NyaXB0aW9uKSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy5saW5rLm5hbWV9IHwgJHt0aGlzLmxpbmsuZGVzY3JpcHRpb259YFxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5saW5rLm5hbWUgfHwgdGhpcy5saW5rLmRlc2NyaXB0aW9uIHx8ICcnXG4gIH1cblxuICBnZXRMaW5rRm9ybWF0KGxpbms6IGFueSkge1xuICAgIHJldHVybiBnZXRGaWxlRm9ybWF0KGxpbmspXG4gIH1cblxuICBnZXRMaW5rQ29sb3IobGluazogYW55KSB7XG4gICAgcmV0dXJuIGdldEJhZGdlQ29sb3IoZ2V0RmlsZUZvcm1hdChsaW5rKSlcbiAgfVxufVxuIiwiPGFcbiAgW2hyZWZdPVwibGluay51cmxcIlxuICB0YXJnZXQ9XCJfYmxhbmtcIlxuICBjbGFzcz1cImdyb3VwIGZsZXggZmxleC1yb3cganVzdGlmeS1iZXR3ZWVuIGNhcmQtc2hhZG93IGN1cnNvci1wb2ludGVyIHJvdW5kZWQgb3ZlcmZsb3ctaGlkZGVuXCJcbiAgW25nQ2xhc3NdPVwiY2FyZENsYXNzXCJcbiAgW3RpdGxlXT1cInRpdGxlXCJcbj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wganVzdGlmeS1iZXR3ZWVuIGZsZXgtMSBtaW4tdy0wXCI+XG4gICAgPGRpdiBjbGFzcz1cImduLXVpLWNhcmQtdGl0bGVcIj5cbiAgICAgIHt7IGxpbmsuZGVzY3JpcHRpb24gfHwgbGluay5uYW1lIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImduLXVpLWNhcmQtZGV0YWlsXCI+XG4gICAgICB7eyBsaW5rLm5hbWUgfX1cbiAgICA8L2Rpdj5cbiAgICA8cCAqbmdJZj1cIiFsaW5rLm5hbWUgJiYgIWxpbmsuZGVzY3JpcHRpb25cIiBjbGFzcz1cImduLXVpLWNhcmQtdGl0bGVcIj5cbiAgICAgIHt7IGxpbmsudXJsIH19XG4gICAgPC9wPlxuICAgIDxkaXYgY2xhc3M9XCJwdC0xXCI+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBweC0yIHB5LTEgdGV4dC0xMyBmb250LW1lZGl1bSBsZWFkaW5nLW5vbmUgdGV4dC13aGl0ZSByb3VuZGVkIHRyYW5zaXRpb24tb3BhY2l0eSBvcGFjaXR5LTcwIGdyb3VwLWhvdmVyOm9wYWNpdHktMTAwXCJcbiAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZ2V0TGlua0NvbG9yKGxpbmspXCJcbiAgICAgICAgZGF0YS1jeT1cImRvd25sb2FkLWZvcm1hdFwiXG4gICAgICAgID57e1xuICAgICAgICAgIGdldExpbmtGb3JtYXQobGluaykgfHwgKCdkb3dubG9hZHMuZm9ybWF0LnVua25vd24nIHwgdHJhbnNsYXRlKVxuICAgICAgICB9fTwvc3BhblxuICAgICAgPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZmxleCBtaW4tdy1bMzJweF1cIlxuICAgIFtuZ0NsYXNzXT1cInNpemUgPT09ICdTJyA/ICdpdGVtcy1lbmQnIDogJ2l0ZW1zLWNlbnRlcidcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImduLXVpLWNhcmQtaWNvblwiPlxuICAgICAgPG5nLWljb25cbiAgICAgICAgY2xhc3M9XCJpbmxpbmUtYmxvY2sgY2FyZC1pY29uIGFsaWduLW1pZGRsZVwiXG4gICAgICAgIG5hbWU9XCJtYXRPcGVuSW5OZXdcIlxuICAgICAgPjwvbmctaWNvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2E+XG4iXX0=
@@ -4,12 +4,12 @@ import * as i0 from "@angular/core";
4
4
  import * as i1 from "@ngx-translate/core";
5
5
  export class MetadataCatalogComponent {
6
6
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataCatalogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MetadataCatalogComponent, isStandalone: true, selector: "gn-ui-metadata-catalog", inputs: { sourceLabel: "sourceLabel" }, ngImport: i0, template: "<div>\n <p class=\"text-gray-700 text-xs mb-3 uppercase\" translate>\n record.metadata.catalog\n </p>\n <p class=\"text-primary font-title text-21 mb-1\">\n {{ sourceLabel }}\n </p>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MetadataCatalogComponent, isStandalone: true, selector: "gn-ui-metadata-catalog", inputs: { sourceLabel: "sourceLabel" }, ngImport: i0, template: "<div class=\"text-black\">\n <p class=\"text-base mb-3\" translate>record.metadata.catalog</p>\n <p class=\"font-title text-21 mb-1\">\n {{ sourceLabel }}\n </p>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8
8
  }
9
9
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataCatalogComponent, decorators: [{
10
10
  type: Component,
11
- args: [{ selector: 'gn-ui-metadata-catalog', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [TranslateModule], template: "<div>\n <p class=\"text-gray-700 text-xs mb-3 uppercase\" translate>\n record.metadata.catalog\n </p>\n <p class=\"text-primary font-title text-21 mb-1\">\n {{ sourceLabel }}\n </p>\n</div>\n" }]
11
+ args: [{ selector: 'gn-ui-metadata-catalog', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [TranslateModule], template: "<div class=\"text-black\">\n <p class=\"text-base mb-3\" translate>record.metadata.catalog</p>\n <p class=\"font-title text-21 mb-1\">\n {{ sourceLabel }}\n </p>\n</div>\n" }]
12
12
  }], propDecorators: { sourceLabel: [{
13
13
  type: Input
14
14
  }] } });
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtY2F0YWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYy9saWIvbWV0YWRhdGEtY2F0YWxvZy9tZXRhZGF0YS1jYXRhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tZXRhZGF0YS1jYXRhbG9nL21ldGFkYXRhLWNhdGFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBOzs7QUFVckQsTUFBTSxPQUFPLHdCQUF3QjsrR0FBeEIsd0JBQXdCO21HQUF4Qix3QkFBd0IsMEhDWHJDLDJNQVFBLHlERENZLGVBQWU7OzRGQUVkLHdCQUF3QjtrQkFScEMsU0FBUzsrQkFDRSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsZUFBZSxDQUFDOzhCQUdqQixXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktbWV0YWRhdGEtY2F0YWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZXRhZGF0YS1jYXRhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWV0YWRhdGEtY2F0YWxvZy5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgTWV0YWRhdGFDYXRhbG9nQ29tcG9uZW50IHtcbiAgQElucHV0KCkgc291cmNlTGFiZWw6IHN0cmluZ1xufVxuIiwiPGRpdj5cbiAgPHAgY2xhc3M9XCJ0ZXh0LWdyYXktNzAwIHRleHQteHMgbWItMyB1cHBlcmNhc2VcIiB0cmFuc2xhdGU+XG4gICAgcmVjb3JkLm1ldGFkYXRhLmNhdGFsb2dcbiAgPC9wPlxuICA8cCBjbGFzcz1cInRleHQtcHJpbWFyeSBmb250LXRpdGxlIHRleHQtMjEgbWItMVwiPlxuICAgIHt7IHNvdXJjZUxhYmVsIH19XG4gIDwvcD5cbjwvZGl2PlxuIl19
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtY2F0YWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYy9saWIvbWV0YWRhdGEtY2F0YWxvZy9tZXRhZGF0YS1jYXRhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tZXRhZGF0YS1jYXRhbG9nL21ldGFkYXRhLWNhdGFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBOzs7QUFVckQsTUFBTSxPQUFPLHdCQUF3QjsrR0FBeEIsd0JBQXdCO21HQUF4Qix3QkFBd0IsMEhDWHJDLG1MQU1BLHlEREdZLGVBQWU7OzRGQUVkLHdCQUF3QjtrQkFScEMsU0FBUzsrQkFDRSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsZUFBZSxDQUFDOzhCQUdqQixXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktbWV0YWRhdGEtY2F0YWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZXRhZGF0YS1jYXRhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWV0YWRhdGEtY2F0YWxvZy5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgTWV0YWRhdGFDYXRhbG9nQ29tcG9uZW50IHtcbiAgQElucHV0KCkgc291cmNlTGFiZWw6IHN0cmluZ1xufVxuIiwiPGRpdiBjbGFzcz1cInRleHQtYmxhY2tcIj5cbiAgPHAgY2xhc3M9XCJ0ZXh0LWJhc2UgbWItM1wiIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEuY2F0YWxvZzwvcD5cbiAgPHAgY2xhc3M9XCJmb250LXRpdGxlIHRleHQtMjEgbWItMVwiPlxuICAgIHt7IHNvdXJjZUxhYmVsIH19XG4gIDwvcD5cbjwvZGl2PlxuIl19
@@ -31,7 +31,7 @@ export class MetadataContactComponent {
31
31
  this.organizationClick.emit(this.shownOrganization);
32
32
  }
33
33
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataContactComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
34
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MetadataContactComponent, isStandalone: true, selector: "gn-ui-metadata-contact", inputs: { metadata: "metadata" }, outputs: { organizationClick: "organizationClick", contactClick: "contactClick" }, ngImport: i0, template: "<div class=\"py-5 px-5 rounded bg-gray-100 text-black mb-6\">\n <div class=\"grid gap-3 overflow-hidden\">\n <div>\n <p class=\"text-sm font-medium\" translate>record.metadata.contact</p>\n </div>\n <div\n *ngIf=\"shownOrganization?.logoUrl?.href\"\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"shownOrganization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"grid gap-1\">\n <div class=\"flex\">\n <div\n class=\"text-primary font-title text-21 mr-2 cursor-pointer hover:underline\"\n (click)=\"onOrganizationClick()\"\n data-cy=\"organization-name\"\n >\n {{ shownOrganization?.name }}\n </div>\n </div>\n <div *ngIf=\"shownOrganization?.website\">\n <a\n [href]=\"shownOrganization.website\"\n target=\"_blank\"\n class=\"contact-website text-primary text-sm cursor-pointer hover:underline transition-all\"\n >{{ shownOrganization.website }}\n <ng-icon\n class=\"!w-[12px] !h-[12px] opacity-75 shrink-0\"\n name=\"matOpenInNew\"\n ></ng-icon>\n </a>\n </div>\n </div>\n <div class=\"grid gap-5 py-3 overflow-hidden\">\n <div *ngIf=\"contacts[0]?.phone\">\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matCallOutline\"\n ></ng-icon>\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">{{ contacts[0].phone }}</p>\n </div>\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.email\">\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matMailOutline\"\n ></ng-icon>\n <a\n *ngIf=\"contacts.length\"\n [href]=\"'mailto:' + contacts[0].email\"\n class=\"text-sm hover:underline ml-2\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ contacts[0].email }}</a\n >\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.firstName || contacts[0]?.lastName\">\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matPersonOutline\"\n ></ng-icon>\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">\n {{ contacts[0]?.firstName || '' }}\n {{ contacts[0]?.lastName || '' }}\n </p>\n </div>\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.address\">\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matLocationOnOutline\"\n ></ng-icon>\n <div class=\"flex flex-col ml-2\">\n <p *ngFor=\"let addressPart of address\" class=\"text-sm\">\n {{ addressPart }}\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], viewProviders: [
34
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MetadataContactComponent, isStandalone: true, selector: "gn-ui-metadata-contact", inputs: { metadata: "metadata" }, outputs: { organizationClick: "organizationClick", contactClick: "contactClick" }, ngImport: i0, template: "<div\n class=\"py-5 px-5 rounded bg-gray-100 text-black\"\n data-cy=\"metadata-organization\"\n>\n <div class=\"grid gap-3 overflow-hidden\">\n <div>\n <p class=\"text-base font-medium\" translate>record.metadata.contact</p>\n </div>\n <div\n *ngIf=\"shownOrganization?.logoUrl?.href\"\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"shownOrganization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"grid grid-cols-1 gap-1\">\n <div class=\"flex\">\n <div\n class=\"font-title text-21 mr-2 cursor-pointer hover:underline\"\n (click)=\"onOrganizationClick()\"\n data-cy=\"organization-name-link\"\n >\n {{ shownOrganization?.name }}\n </div>\n </div>\n <div *ngIf=\"shownOrganization?.website\">\n <a\n [href]=\"shownOrganization.website\"\n target=\"_blank\"\n class=\"contact-website text-sm cursor-pointer hover:underline transition-all\"\n >{{ shownOrganization.website }}\n <ng-icon\n class=\"!w-[12px] !h-[12px] opacity-75 shrink-0\"\n name=\"matOpenInNew\"\n ></ng-icon>\n </a>\n </div>\n </div>\n <div class=\"grid grid-cols-1 gap-5 py-3 overflow-hidden\">\n <div *ngIf=\"contacts[0]?.phone\">\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matCallOutline\"\n ></ng-icon>\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">{{ contacts[0].phone }}</p>\n </div>\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.email\">\n <div class=\"flex gap-2\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matMailOutline\"\n ></ng-icon>\n <a\n *ngIf=\"contacts.length\"\n [href]=\"'mailto:' + contacts[0].email\"\n class=\"break-all text-sm hover:underline\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ contacts[0].email }}</a\n >\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.firstName || contacts[0]?.lastName\">\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matPersonOutline\"\n ></ng-icon>\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">\n {{ contacts[0]?.firstName || '' }}\n {{ contacts[0]?.lastName || '' }}\n </p>\n </div>\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.address\">\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matLocationOnOutline\"\n ></ng-icon>\n <div class=\"flex flex-col ml-2\">\n <p *ngFor=\"let addressPart of address\" class=\"text-sm\">\n {{ addressPart }}\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], viewProviders: [
35
35
  provideIcons({
36
36
  matOpenInNew,
37
37
  matCallOutline,
@@ -51,7 +51,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
51
51
  matPersonOutline,
52
52
  matLocationOnOutline,
53
53
  }),
54
- ], template: "<div class=\"py-5 px-5 rounded bg-gray-100 text-black mb-6\">\n <div class=\"grid gap-3 overflow-hidden\">\n <div>\n <p class=\"text-sm font-medium\" translate>record.metadata.contact</p>\n </div>\n <div\n *ngIf=\"shownOrganization?.logoUrl?.href\"\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"shownOrganization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"grid gap-1\">\n <div class=\"flex\">\n <div\n class=\"text-primary font-title text-21 mr-2 cursor-pointer hover:underline\"\n (click)=\"onOrganizationClick()\"\n data-cy=\"organization-name\"\n >\n {{ shownOrganization?.name }}\n </div>\n </div>\n <div *ngIf=\"shownOrganization?.website\">\n <a\n [href]=\"shownOrganization.website\"\n target=\"_blank\"\n class=\"contact-website text-primary text-sm cursor-pointer hover:underline transition-all\"\n >{{ shownOrganization.website }}\n <ng-icon\n class=\"!w-[12px] !h-[12px] opacity-75 shrink-0\"\n name=\"matOpenInNew\"\n ></ng-icon>\n </a>\n </div>\n </div>\n <div class=\"grid gap-5 py-3 overflow-hidden\">\n <div *ngIf=\"contacts[0]?.phone\">\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matCallOutline\"\n ></ng-icon>\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">{{ contacts[0].phone }}</p>\n </div>\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.email\">\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matMailOutline\"\n ></ng-icon>\n <a\n *ngIf=\"contacts.length\"\n [href]=\"'mailto:' + contacts[0].email\"\n class=\"text-sm hover:underline ml-2\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ contacts[0].email }}</a\n >\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.firstName || contacts[0]?.lastName\">\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matPersonOutline\"\n ></ng-icon>\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">\n {{ contacts[0]?.firstName || '' }}\n {{ contacts[0]?.lastName || '' }}\n </p>\n </div>\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.address\">\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matLocationOnOutline\"\n ></ng-icon>\n <div class=\"flex flex-col ml-2\">\n <p *ngFor=\"let addressPart of address\" class=\"text-sm\">\n {{ addressPart }}\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
54
+ ], template: "<div\n class=\"py-5 px-5 rounded bg-gray-100 text-black\"\n data-cy=\"metadata-organization\"\n>\n <div class=\"grid gap-3 overflow-hidden\">\n <div>\n <p class=\"text-base font-medium\" translate>record.metadata.contact</p>\n </div>\n <div\n *ngIf=\"shownOrganization?.logoUrl?.href\"\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"shownOrganization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"grid grid-cols-1 gap-1\">\n <div class=\"flex\">\n <div\n class=\"font-title text-21 mr-2 cursor-pointer hover:underline\"\n (click)=\"onOrganizationClick()\"\n data-cy=\"organization-name-link\"\n >\n {{ shownOrganization?.name }}\n </div>\n </div>\n <div *ngIf=\"shownOrganization?.website\">\n <a\n [href]=\"shownOrganization.website\"\n target=\"_blank\"\n class=\"contact-website text-sm cursor-pointer hover:underline transition-all\"\n >{{ shownOrganization.website }}\n <ng-icon\n class=\"!w-[12px] !h-[12px] opacity-75 shrink-0\"\n name=\"matOpenInNew\"\n ></ng-icon>\n </a>\n </div>\n </div>\n <div class=\"grid grid-cols-1 gap-5 py-3 overflow-hidden\">\n <div *ngIf=\"contacts[0]?.phone\">\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matCallOutline\"\n ></ng-icon>\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">{{ contacts[0].phone }}</p>\n </div>\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.email\">\n <div class=\"flex gap-2\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matMailOutline\"\n ></ng-icon>\n <a\n *ngIf=\"contacts.length\"\n [href]=\"'mailto:' + contacts[0].email\"\n class=\"break-all text-sm hover:underline\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ contacts[0].email }}</a\n >\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.firstName || contacts[0]?.lastName\">\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matPersonOutline\"\n ></ng-icon>\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">\n {{ contacts[0]?.firstName || '' }}\n {{ contacts[0]?.lastName || '' }}\n </p>\n </div>\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.address\">\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matLocationOnOutline\"\n ></ng-icon>\n <div class=\"flex flex-col ml-2\">\n <p *ngFor=\"let addressPart of address\" class=\"text-sm\">\n {{ addressPart }}\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
55
55
  }], propDecorators: { metadata: [{
56
56
  type: Input
57
57
  }], organizationClick: [{
@@ -59,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
59
59
  }], contactClick: [{
60
60
  type: Output
61
61
  }] } });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtY29udGFjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYy9saWIvbWV0YWRhdGEtY29udGFjdC9tZXRhZGF0YS1jb250YWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tZXRhZGF0YS1jb250YWN0L21ldGFkYXRhLWNvbnRhY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUE7QUFNdEIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDckUsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNyRCxPQUFPLEVBQ0wsY0FBYyxFQUNkLFlBQVksRUFDWixnQkFBZ0IsR0FDakIsTUFBTSxtQ0FBbUMsQ0FBQTtBQUMxQyxPQUFPLEVBQ0wsY0FBYyxFQUNkLG9CQUFvQixHQUNyQixNQUFNLGtDQUFrQyxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7Ozs7QUFtQnJELE1BQU0sT0FBTyx3QkFBd0I7SUFqQnJDO1FBbUJZLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFnQixDQUFBO1FBQ3BELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQTtLQXdCeEQ7SUF0QkMsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFBO0lBQ3hDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLENBQ0wsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxTQUFTO1lBQy9CLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQjtZQUNuQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQ2xDLENBQUE7SUFDSCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPO2FBQzFDLEtBQUssQ0FBQyxHQUFHLENBQUM7YUFDVixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQzdCLE9BQU8sWUFBWSxDQUFBO0lBQ3JCLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUNyRCxDQUFDOytHQTFCVSx3QkFBd0I7bUdBQXhCLHdCQUF3Qix1TUMzQ3JDLHl2R0FnR0EseUREaEVZLFlBQVksZ1FBQUUsa0JBQWtCLDRIQUFFLE1BQU0sNEdBQUUsZUFBZSwySkFDcEQ7WUFDYixZQUFZLENBQUM7Z0JBQ1gsWUFBWTtnQkFDWixjQUFjO2dCQUNkLGNBQWM7Z0JBQ2QsZ0JBQWdCO2dCQUNoQixvQkFBb0I7YUFDckIsQ0FBQztTQUNIOzs0RkFFVSx3QkFBd0I7a0JBakJwQyxTQUFTOytCQUNFLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLGVBQWUsQ0FBQyxpQkFDckQ7d0JBQ2IsWUFBWSxDQUFDOzRCQUNYLFlBQVk7NEJBQ1osY0FBYzs0QkFDZCxjQUFjOzRCQUNkLGdCQUFnQjs0QkFDaEIsb0JBQW9CO3lCQUNyQixDQUFDO3FCQUNIOzhCQUdRLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBDYXRhbG9nUmVjb3JkLFxuICBJbmRpdmlkdWFsLFxuICBPcmdhbml6YXRpb24sXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IFRodW1ibmFpbENvbXBvbmVudCB9IGZyb20gJy4uL3RodW1ibmFpbC90aHVtYm5haWwuY29tcG9uZW50J1xuaW1wb3J0IHsgTmdJY29uLCBwcm92aWRlSWNvbnMgfSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7XG4gIG1hdE1haWxPdXRsaW5lLFxuICBtYXRPcGVuSW5OZXcsXG4gIG1hdFBlcnNvbk91dGxpbmUsXG59IGZyb20gJ0BuZy1pY29ucy9tYXRlcmlhbC1pY29ucy9iYXNlbGluZSdcbmltcG9ydCB7XG4gIG1hdENhbGxPdXRsaW5lLFxuICBtYXRMb2NhdGlvbk9uT3V0bGluZSxcbn0gZnJvbSAnQG5nLWljb25zL21hdGVyaWFsLWljb25zL291dGxpbmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1tZXRhZGF0YS1jb250YWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21ldGFkYXRhLWNvbnRhY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tZXRhZGF0YS1jb250YWN0LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRodW1ibmFpbENvbXBvbmVudCwgTmdJY29uLCBUcmFuc2xhdGVNb2R1bGVdLFxuICB2aWV3UHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHtcbiAgICAgIG1hdE9wZW5Jbk5ldyxcbiAgICAgIG1hdENhbGxPdXRsaW5lLFxuICAgICAgbWF0TWFpbE91dGxpbmUsXG4gICAgICBtYXRQZXJzb25PdXRsaW5lLFxuICAgICAgbWF0TG9jYXRpb25Pbk91dGxpbmUsXG4gICAgfSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE1ldGFkYXRhQ29udGFjdENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIG1ldGFkYXRhOiBQYXJ0aWFsPENhdGFsb2dSZWNvcmQ+XG4gIEBPdXRwdXQoKSBvcmdhbml6YXRpb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8T3JnYW5pemF0aW9uPigpXG4gIEBPdXRwdXQoKSBjb250YWN0Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEluZGl2aWR1YWw+KClcblxuICBnZXQgc2hvd25Pcmdhbml6YXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0YWRhdGEub3duZXJPcmdhbml6YXRpb25cbiAgfVxuXG4gIGdldCBjb250YWN0cygpIHtcbiAgICByZXR1cm4gKFxuICAgICAgKHRoaXMubWV0YWRhdGEua2luZCA9PT0gJ2RhdGFzZXQnXG4gICAgICAgID8gdGhpcy5tZXRhZGF0YS5jb250YWN0c0ZvclJlc291cmNlXG4gICAgICAgIDogdGhpcy5tZXRhZGF0YS5jb250YWN0cykgfHwgW11cbiAgICApXG4gIH1cblxuICBnZXQgYWRkcmVzcygpIHtcbiAgICBjb25zdCBhZGRyZXNzUGFydHMgPSB0aGlzLmNvbnRhY3RzWzBdLmFkZHJlc3NcbiAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAubWFwKChwYXJ0KSA9PiBwYXJ0LnRyaW0oKSlcbiAgICByZXR1cm4gYWRkcmVzc1BhcnRzXG4gIH1cblxuICBvbk9yZ2FuaXphdGlvbkNsaWNrKCkge1xuICAgIHRoaXMub3JnYW5pemF0aW9uQ2xpY2suZW1pdCh0aGlzLnNob3duT3JnYW5pemF0aW9uKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicHktNSBweC01IHJvdW5kZWQgYmctZ3JheS0xMDAgdGV4dC1ibGFjayBtYi02XCI+XG4gIDxkaXYgY2xhc3M9XCJncmlkIGdhcC0zIG92ZXJmbG93LWhpZGRlblwiPlxuICAgIDxkaXY+XG4gICAgICA8cCBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW1cIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLmNvbnRhY3Q8L3A+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJzaG93bk9yZ2FuaXphdGlvbj8ubG9nb1VybD8uaHJlZlwiXG4gICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGJvcmRlci1zb2xpZCBib3JkZXIgYm9yZGVyLWdyYXktMzAwIHJvdW5kZWQtbWQgYmctd2hpdGUgaC0zMiBvdmVyZmxvdy1oaWRkZW5cIlxuICAgID5cbiAgICAgIDxnbi11aS10aHVtYm5haWxcbiAgICAgICAgY2xhc3M9XCJyZWxhdGl2ZSBoLWZ1bGwgdy1mdWxsXCJcbiAgICAgICAgW3RodW1ibmFpbFVybF09XCJzaG93bk9yZ2FuaXphdGlvbi5sb2dvVXJsLmhyZWZcIlxuICAgICAgICBmaXQ9XCJjb250YWluXCJcbiAgICAgID48L2duLXVpLXRodW1ibmFpbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBnYXAtMVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwidGV4dC1wcmltYXJ5IGZvbnQtdGl0bGUgdGV4dC0yMSBtci0yIGN1cnNvci1wb2ludGVyIGhvdmVyOnVuZGVybGluZVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uT3JnYW5pemF0aW9uQ2xpY2soKVwiXG4gICAgICAgICAgZGF0YS1jeT1cIm9yZ2FuaXphdGlvbi1uYW1lXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHNob3duT3JnYW5pemF0aW9uPy5uYW1lIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwic2hvd25Pcmdhbml6YXRpb24/LndlYnNpdGVcIj5cbiAgICAgICAgPGFcbiAgICAgICAgICBbaHJlZl09XCJzaG93bk9yZ2FuaXphdGlvbi53ZWJzaXRlXCJcbiAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgIGNsYXNzPVwiY29udGFjdC13ZWJzaXRlIHRleHQtcHJpbWFyeSB0ZXh0LXNtIGN1cnNvci1wb2ludGVyIGhvdmVyOnVuZGVybGluZSB0cmFuc2l0aW9uLWFsbFwiXG4gICAgICAgICAgPnt7IHNob3duT3JnYW5pemF0aW9uLndlYnNpdGUgfX1cbiAgICAgICAgICA8bmctaWNvblxuICAgICAgICAgICAgY2xhc3M9XCIhdy1bMTJweF0gIWgtWzEycHhdIG9wYWNpdHktNzUgc2hyaW5rLTBcIlxuICAgICAgICAgICAgbmFtZT1cIm1hdE9wZW5Jbk5ld1wiXG4gICAgICAgICAgPjwvbmctaWNvbj5cbiAgICAgICAgPC9hPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImdyaWQgZ2FwLTUgcHktMyBvdmVyZmxvdy1oaWRkZW5cIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJjb250YWN0c1swXT8ucGhvbmVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICA8bmctaWNvblxuICAgICAgICAgICAgY2xhc3M9XCIhdy01ICFoLTUgIXRleHQtWzIwcHhdIG9wYWNpdHktNzUgc2hyaW5rLTBcIlxuICAgICAgICAgICAgbmFtZT1cIm1hdENhbGxPdXRsaW5lXCJcbiAgICAgICAgICA+PC9uZy1pY29uPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1sLTJcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1zbVwiPnt7IGNvbnRhY3RzWzBdLnBob25lIH19PC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImNvbnRhY3RzWzBdPy5lbWFpbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleFwiPlxuICAgICAgICAgIDxuZy1pY29uXG4gICAgICAgICAgICBjbGFzcz1cIiF3LTUgIWgtNSAhdGV4dC1bMjBweF0gb3BhY2l0eS03NSBzaHJpbmstMFwiXG4gICAgICAgICAgICBuYW1lPVwibWF0TWFpbE91dGxpbmVcIlxuICAgICAgICAgID48L25nLWljb24+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgICpuZ0lmPVwiY29udGFjdHMubGVuZ3RoXCJcbiAgICAgICAgICAgIFtocmVmXT1cIidtYWlsdG86JyArIGNvbnRhY3RzWzBdLmVtYWlsXCJcbiAgICAgICAgICAgIGNsYXNzPVwidGV4dC1zbSBob3Zlcjp1bmRlcmxpbmUgbWwtMlwiXG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgZGF0YS1jeT1cImNvbnRhY3QtZW1haWxcIlxuICAgICAgICAgICAgPnt7IGNvbnRhY3RzWzBdLmVtYWlsIH19PC9hXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImNvbnRhY3RzWzBdPy5maXJzdE5hbWUgfHwgY29udGFjdHNbMF0/Lmxhc3ROYW1lXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgICAgPG5nLWljb25cbiAgICAgICAgICAgIGNsYXNzPVwiIXctNSAhaC01ICF0ZXh0LVsyMHB4XSBvcGFjaXR5LTc1IHNocmluay0wXCJcbiAgICAgICAgICAgIG5hbWU9XCJtYXRQZXJzb25PdXRsaW5lXCJcbiAgICAgICAgICA+PC9uZy1pY29uPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1sLTJcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1zbVwiPlxuICAgICAgICAgICAgICB7eyBjb250YWN0c1swXT8uZmlyc3ROYW1lIHx8ICcnIH19XG4gICAgICAgICAgICAgIHt7IGNvbnRhY3RzWzBdPy5sYXN0TmFtZSB8fCAnJyB9fVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImNvbnRhY3RzWzBdPy5hZGRyZXNzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgICAgPG5nLWljb25cbiAgICAgICAgICAgIGNsYXNzPVwiIXctNSAhaC01ICF0ZXh0LVsyMHB4XSBvcGFjaXR5LTc1IHNocmluay0wXCJcbiAgICAgICAgICAgIG5hbWU9XCJtYXRMb2NhdGlvbk9uT3V0bGluZVwiXG4gICAgICAgICAgPjwvbmctaWNvbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtbC0yXCI+XG4gICAgICAgICAgICA8cCAqbmdGb3I9XCJsZXQgYWRkcmVzc1BhcnQgb2YgYWRkcmVzc1wiIGNsYXNzPVwidGV4dC1zbVwiPlxuICAgICAgICAgICAgICB7eyBhZGRyZXNzUGFydCB9fVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtY29udGFjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYy9saWIvbWV0YWRhdGEtY29udGFjdC9tZXRhZGF0YS1jb250YWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tZXRhZGF0YS1jb250YWN0L21ldGFkYXRhLWNvbnRhY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUE7QUFNdEIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDckUsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNyRCxPQUFPLEVBQ0wsY0FBYyxFQUNkLFlBQVksRUFDWixnQkFBZ0IsR0FDakIsTUFBTSxtQ0FBbUMsQ0FBQTtBQUMxQyxPQUFPLEVBQ0wsY0FBYyxFQUNkLG9CQUFvQixHQUNyQixNQUFNLGtDQUFrQyxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7Ozs7QUFtQnJELE1BQU0sT0FBTyx3QkFBd0I7SUFqQnJDO1FBbUJZLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFnQixDQUFBO1FBQ3BELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQTtLQXdCeEQ7SUF0QkMsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFBO0lBQ3hDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLENBQ0wsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxTQUFTO1lBQy9CLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQjtZQUNuQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQ2xDLENBQUE7SUFDSCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPO2FBQzFDLEtBQUssQ0FBQyxHQUFHLENBQUM7YUFDVixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQzdCLE9BQU8sWUFBWSxDQUFBO0lBQ3JCLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUNyRCxDQUFDOytHQTFCVSx3QkFBd0I7bUdBQXhCLHdCQUF3Qix1TUMzQ3JDLDh5R0FtR0EseUREbkVZLFlBQVksZ1FBQUUsa0JBQWtCLDRIQUFFLE1BQU0sNEdBQUUsZUFBZSwySkFDcEQ7WUFDYixZQUFZLENBQUM7Z0JBQ1gsWUFBWTtnQkFDWixjQUFjO2dCQUNkLGNBQWM7Z0JBQ2QsZ0JBQWdCO2dCQUNoQixvQkFBb0I7YUFDckIsQ0FBQztTQUNIOzs0RkFFVSx3QkFBd0I7a0JBakJwQyxTQUFTOytCQUNFLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLGVBQWUsQ0FBQyxpQkFDckQ7d0JBQ2IsWUFBWSxDQUFDOzRCQUNYLFlBQVk7NEJBQ1osY0FBYzs0QkFDZCxjQUFjOzRCQUNkLGdCQUFnQjs0QkFDaEIsb0JBQW9CO3lCQUNyQixDQUFDO3FCQUNIOzhCQUdRLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBDYXRhbG9nUmVjb3JkLFxuICBJbmRpdmlkdWFsLFxuICBPcmdhbml6YXRpb24sXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IFRodW1ibmFpbENvbXBvbmVudCB9IGZyb20gJy4uL3RodW1ibmFpbC90aHVtYm5haWwuY29tcG9uZW50J1xuaW1wb3J0IHsgTmdJY29uLCBwcm92aWRlSWNvbnMgfSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7XG4gIG1hdE1haWxPdXRsaW5lLFxuICBtYXRPcGVuSW5OZXcsXG4gIG1hdFBlcnNvbk91dGxpbmUsXG59IGZyb20gJ0BuZy1pY29ucy9tYXRlcmlhbC1pY29ucy9iYXNlbGluZSdcbmltcG9ydCB7XG4gIG1hdENhbGxPdXRsaW5lLFxuICBtYXRMb2NhdGlvbk9uT3V0bGluZSxcbn0gZnJvbSAnQG5nLWljb25zL21hdGVyaWFsLWljb25zL291dGxpbmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1tZXRhZGF0YS1jb250YWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21ldGFkYXRhLWNvbnRhY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tZXRhZGF0YS1jb250YWN0LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRodW1ibmFpbENvbXBvbmVudCwgTmdJY29uLCBUcmFuc2xhdGVNb2R1bGVdLFxuICB2aWV3UHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHtcbiAgICAgIG1hdE9wZW5Jbk5ldyxcbiAgICAgIG1hdENhbGxPdXRsaW5lLFxuICAgICAgbWF0TWFpbE91dGxpbmUsXG4gICAgICBtYXRQZXJzb25PdXRsaW5lLFxuICAgICAgbWF0TG9jYXRpb25Pbk91dGxpbmUsXG4gICAgfSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE1ldGFkYXRhQ29udGFjdENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIG1ldGFkYXRhOiBQYXJ0aWFsPENhdGFsb2dSZWNvcmQ+XG4gIEBPdXRwdXQoKSBvcmdhbml6YXRpb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8T3JnYW5pemF0aW9uPigpXG4gIEBPdXRwdXQoKSBjb250YWN0Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEluZGl2aWR1YWw+KClcblxuICBnZXQgc2hvd25Pcmdhbml6YXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0YWRhdGEub3duZXJPcmdhbml6YXRpb25cbiAgfVxuXG4gIGdldCBjb250YWN0cygpIHtcbiAgICByZXR1cm4gKFxuICAgICAgKHRoaXMubWV0YWRhdGEua2luZCA9PT0gJ2RhdGFzZXQnXG4gICAgICAgID8gdGhpcy5tZXRhZGF0YS5jb250YWN0c0ZvclJlc291cmNlXG4gICAgICAgIDogdGhpcy5tZXRhZGF0YS5jb250YWN0cykgfHwgW11cbiAgICApXG4gIH1cblxuICBnZXQgYWRkcmVzcygpIHtcbiAgICBjb25zdCBhZGRyZXNzUGFydHMgPSB0aGlzLmNvbnRhY3RzWzBdLmFkZHJlc3NcbiAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAubWFwKChwYXJ0KSA9PiBwYXJ0LnRyaW0oKSlcbiAgICByZXR1cm4gYWRkcmVzc1BhcnRzXG4gIH1cblxuICBvbk9yZ2FuaXphdGlvbkNsaWNrKCkge1xuICAgIHRoaXMub3JnYW5pemF0aW9uQ2xpY2suZW1pdCh0aGlzLnNob3duT3JnYW5pemF0aW9uKVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwicHktNSBweC01IHJvdW5kZWQgYmctZ3JheS0xMDAgdGV4dC1ibGFja1wiXG4gIGRhdGEtY3k9XCJtZXRhZGF0YS1vcmdhbml6YXRpb25cIlxuPlxuICA8ZGl2IGNsYXNzPVwiZ3JpZCBnYXAtMyBvdmVyZmxvdy1oaWRkZW5cIj5cbiAgICA8ZGl2PlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LWJhc2UgZm9udC1tZWRpdW1cIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLmNvbnRhY3Q8L3A+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJzaG93bk9yZ2FuaXphdGlvbj8ubG9nb1VybD8uaHJlZlwiXG4gICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGJvcmRlci1zb2xpZCBib3JkZXIgYm9yZGVyLWdyYXktMzAwIHJvdW5kZWQtbWQgYmctd2hpdGUgaC0zMiBvdmVyZmxvdy1oaWRkZW5cIlxuICAgID5cbiAgICAgIDxnbi11aS10aHVtYm5haWxcbiAgICAgICAgY2xhc3M9XCJyZWxhdGl2ZSBoLWZ1bGwgdy1mdWxsXCJcbiAgICAgICAgW3RodW1ibmFpbFVybF09XCJzaG93bk9yZ2FuaXphdGlvbi5sb2dvVXJsLmhyZWZcIlxuICAgICAgICBmaXQ9XCJjb250YWluXCJcbiAgICAgID48L2duLXVpLXRodW1ibmFpbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBncmlkLWNvbHMtMSBnYXAtMVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZm9udC10aXRsZSB0ZXh0LTIxIG1yLTIgY3Vyc29yLXBvaW50ZXIgaG92ZXI6dW5kZXJsaW5lXCJcbiAgICAgICAgICAoY2xpY2spPVwib25Pcmdhbml6YXRpb25DbGljaygpXCJcbiAgICAgICAgICBkYXRhLWN5PVwib3JnYW5pemF0aW9uLW5hbWUtbGlua1wiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBzaG93bk9yZ2FuaXphdGlvbj8ubmFtZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cInNob3duT3JnYW5pemF0aW9uPy53ZWJzaXRlXCI+XG4gICAgICAgIDxhXG4gICAgICAgICAgW2hyZWZdPVwic2hvd25Pcmdhbml6YXRpb24ud2Vic2l0ZVwiXG4gICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICBjbGFzcz1cImNvbnRhY3Qtd2Vic2l0ZSB0ZXh0LXNtIGN1cnNvci1wb2ludGVyIGhvdmVyOnVuZGVybGluZSB0cmFuc2l0aW9uLWFsbFwiXG4gICAgICAgICAgPnt7IHNob3duT3JnYW5pemF0aW9uLndlYnNpdGUgfX1cbiAgICAgICAgICA8bmctaWNvblxuICAgICAgICAgICAgY2xhc3M9XCIhdy1bMTJweF0gIWgtWzEycHhdIG9wYWNpdHktNzUgc2hyaW5rLTBcIlxuICAgICAgICAgICAgbmFtZT1cIm1hdE9wZW5Jbk5ld1wiXG4gICAgICAgICAgPjwvbmctaWNvbj5cbiAgICAgICAgPC9hPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTEgZ2FwLTUgcHktMyBvdmVyZmxvdy1oaWRkZW5cIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJjb250YWN0c1swXT8ucGhvbmVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICA8bmctaWNvblxuICAgICAgICAgICAgY2xhc3M9XCIhdy01ICFoLTUgIXRleHQtWzIwcHhdIG9wYWNpdHktNzUgc2hyaW5rLTBcIlxuICAgICAgICAgICAgbmFtZT1cIm1hdENhbGxPdXRsaW5lXCJcbiAgICAgICAgICA+PC9uZy1pY29uPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1sLTJcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1zbVwiPnt7IGNvbnRhY3RzWzBdLnBob25lIH19PC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImNvbnRhY3RzWzBdPy5lbWFpbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMlwiPlxuICAgICAgICAgIDxuZy1pY29uXG4gICAgICAgICAgICBjbGFzcz1cIiF3LTUgIWgtNSAhdGV4dC1bMjBweF0gb3BhY2l0eS03NSBzaHJpbmstMFwiXG4gICAgICAgICAgICBuYW1lPVwibWF0TWFpbE91dGxpbmVcIlxuICAgICAgICAgID48L25nLWljb24+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgICpuZ0lmPVwiY29udGFjdHMubGVuZ3RoXCJcbiAgICAgICAgICAgIFtocmVmXT1cIidtYWlsdG86JyArIGNvbnRhY3RzWzBdLmVtYWlsXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnJlYWstYWxsIHRleHQtc20gaG92ZXI6dW5kZXJsaW5lXCJcbiAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICBkYXRhLWN5PVwiY29udGFjdC1lbWFpbFwiXG4gICAgICAgICAgICA+e3sgY29udGFjdHNbMF0uZW1haWwgfX08L2FcbiAgICAgICAgICA+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29udGFjdHNbMF0/LmZpcnN0TmFtZSB8fCBjb250YWN0c1swXT8ubGFzdE5hbWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICA8bmctaWNvblxuICAgICAgICAgICAgY2xhc3M9XCIhdy01ICFoLTUgIXRleHQtWzIwcHhdIG9wYWNpdHktNzUgc2hyaW5rLTBcIlxuICAgICAgICAgICAgbmFtZT1cIm1hdFBlcnNvbk91dGxpbmVcIlxuICAgICAgICAgID48L25nLWljb24+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbWwtMlwiPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtXCI+XG4gICAgICAgICAgICAgIHt7IGNvbnRhY3RzWzBdPy5maXJzdE5hbWUgfHwgJycgfX1cbiAgICAgICAgICAgICAge3sgY29udGFjdHNbMF0/Lmxhc3ROYW1lIHx8ICcnIH19XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29udGFjdHNbMF0/LmFkZHJlc3NcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICA8bmctaWNvblxuICAgICAgICAgICAgY2xhc3M9XCIhdy01ICFoLTUgIXRleHQtWzIwcHhdIG9wYWNpdHktNzUgc2hyaW5rLTBcIlxuICAgICAgICAgICAgbmFtZT1cIm1hdExvY2F0aW9uT25PdXRsaW5lXCJcbiAgICAgICAgICA+PC9uZy1pY29uPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1sLTJcIj5cbiAgICAgICAgICAgIDxwICpuZ0Zvcj1cImxldCBhZGRyZXNzUGFydCBvZiBhZGRyZXNzXCIgY2xhc3M9XCJ0ZXh0LXNtXCI+XG4gICAgICAgICAgICAgIHt7IGFkZHJlc3NQYXJ0IH19XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=