geonetwork-ui 2.5.0 → 2.6.0-dev.025a2f85d

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 (278) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/base.converter.mjs +1 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +8 -3
  3. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +3 -3
  4. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +4 -4
  5. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +2 -10
  6. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +18 -11
  7. package/esm2022/libs/api/repository/src/lib/gn4/gn4.provider.mjs +7 -1
  8. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  9. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +7 -3
  10. package/esm2022/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.mjs +2 -2
  11. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +2 -1
  12. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +7 -3
  13. package/esm2022/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.mjs +2 -3
  14. package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +1 -1
  15. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +5 -5
  16. package/esm2022/libs/feature/map/src/lib/map-state-container/map-state-container.component.mjs +2 -2
  17. package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +2 -4
  18. package/esm2022/libs/feature/record/src/index.mjs +1 -2
  19. package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +5 -9
  20. package/esm2022/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.mjs +7 -11
  21. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +45 -14
  22. package/esm2022/libs/feature/record/src/lib/record-meta/record-meta.component.mjs +1 -1
  23. package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +8 -5
  24. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +4 -6
  25. package/esm2022/libs/feature/router/src/lib/default/constants.mjs +3 -1
  26. package/esm2022/libs/feature/router/src/lib/default/router.config.mjs +1 -1
  27. package/esm2022/libs/feature/router/src/lib/default/router.service.mjs +10 -2
  28. package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +9 -3
  29. package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +8 -7
  30. package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +2 -15
  31. package/esm2022/libs/feature/search/src/lib/record-url.token.mjs +4 -2
  32. package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +26 -10
  33. package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +3 -3
  34. package/esm2022/libs/ui/elements/src/index.mjs +3 -1
  35. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +27 -6
  36. package/esm2022/libs/ui/elements/src/lib/download-item/download-item.component.mjs +22 -6
  37. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +3 -3
  38. package/esm2022/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.mjs +163 -0
  39. package/esm2022/libs/ui/elements/src/lib/link-card/link-card.component.mjs +29 -7
  40. package/esm2022/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.mjs +3 -3
  41. package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +3 -3
  42. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +8 -5
  43. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +3 -3
  44. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +3 -2
  45. package/esm2022/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.mjs +161 -0
  46. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +16 -4
  47. package/esm2022/libs/ui/inputs/src/index.mjs +1 -2
  48. package/esm2022/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.mjs +4 -3
  49. package/esm2022/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.mjs +43 -3
  50. package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +3 -3
  51. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +15 -3
  52. package/esm2022/libs/ui/map/src/index.mjs +2 -1
  53. package/esm2022/libs/ui/map/src/lib/components/map-container/map-container.component.mjs +14 -3
  54. package/esm2022/libs/ui/map/src/lib/components/map-legend/map-legend.component.mjs +5 -1
  55. package/esm2022/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.mjs +79 -0
  56. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +5 -4
  57. package/esm2022/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.mjs +3 -3
  58. package/esm2022/libs/util/data-fetcher/src/lib/data-fetcher.mjs +6 -2
  59. package/esm2022/libs/util/data-fetcher/src/lib/model.mjs +4 -1
  60. package/esm2022/libs/util/data-fetcher/src/lib/readers/wfs.mjs +30 -2
  61. package/esm2022/libs/util/shared/src/index.mjs +2 -1
  62. package/esm2022/libs/util/shared/src/lib/gn-ui-version.mjs +6 -0
  63. package/esm2022/libs/util/shared/src/lib/links/link-classifier.service.mjs +2 -1
  64. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +33 -24
  65. package/esm2022/translations/de.json +34 -3
  66. package/esm2022/translations/en.json +35 -4
  67. package/esm2022/translations/es.json +34 -3
  68. package/esm2022/translations/fr.json +36 -5
  69. package/esm2022/translations/it.json +34 -4
  70. package/esm2022/translations/nl.json +34 -3
  71. package/esm2022/translations/pt.json +34 -3
  72. package/fesm2022/geonetwork-ui.mjs +1367 -531
  73. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  74. package/libs/api/metadata-converter/src/lib/base.converter.d.ts.map +1 -1
  75. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  76. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  77. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +1 -0
  78. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  79. package/libs/api/repository/src/lib/gn4/gn4.provider.d.ts.map +1 -1
  80. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +23 -4
  81. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  82. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  83. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  84. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +2 -2
  85. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  86. package/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.d.ts.map +1 -1
  87. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts +6 -6
  88. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts.map +1 -1
  89. 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
  90. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
  91. package/libs/feature/record/src/index.d.ts +0 -1
  92. package/libs/feature/record/src/index.d.ts.map +1 -1
  93. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +9 -1
  94. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  95. package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts +2 -3
  96. package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts.map +1 -1
  97. package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts +1 -2
  98. package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts.map +1 -1
  99. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +7 -2
  100. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  101. package/libs/feature/record/src/lib/record-meta/record-meta.component.d.ts +2 -2
  102. package/libs/feature/record/src/lib/state/mdview.effects.d.ts +3 -1
  103. package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
  104. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +7 -7
  105. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  106. package/libs/feature/router/src/lib/default/constants.d.ts +2 -0
  107. package/libs/feature/router/src/lib/default/constants.d.ts.map +1 -1
  108. package/libs/feature/router/src/lib/default/router.config.d.ts +2 -0
  109. package/libs/feature/router/src/lib/default/router.config.d.ts.map +1 -1
  110. package/libs/feature/router/src/lib/default/router.service.d.ts.map +1 -1
  111. package/libs/feature/router/src/lib/default/state/router.facade.d.ts +5 -0
  112. package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
  113. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts.map +1 -1
  114. package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
  115. package/libs/feature/search/src/lib/record-url.token.d.ts +3 -1
  116. package/libs/feature/search/src/lib/record-url.token.d.ts.map +1 -1
  117. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts +5 -3
  118. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts.map +1 -1
  119. package/libs/ui/elements/src/index.d.ts +2 -0
  120. package/libs/ui/elements/src/index.d.ts.map +1 -1
  121. package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts +9 -1
  122. package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts.map +1 -1
  123. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts +8 -1
  124. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts.map +1 -1
  125. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts +43 -0
  126. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -0
  127. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts +10 -2
  128. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts.map +1 -1
  129. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +2 -2
  130. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
  131. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  132. package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts +30 -0
  133. package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts.map +1 -0
  134. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +3 -1
  135. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  136. package/libs/ui/inputs/src/index.d.ts +0 -1
  137. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  138. package/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.d.ts.map +1 -1
  139. package/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.d.ts +10 -3
  140. package/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.d.ts.map +1 -1
  141. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts +2 -0
  142. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -1
  143. package/libs/ui/map/src/index.d.ts +1 -0
  144. package/libs/ui/map/src/index.d.ts.map +1 -1
  145. package/libs/ui/map/src/lib/components/map-container/map-container.component.d.ts +4 -2
  146. package/libs/ui/map/src/lib/components/map-container/map-container.component.d.ts.map +1 -1
  147. package/libs/ui/map/src/lib/components/map-legend/map-legend.component.d.ts.map +1 -1
  148. package/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.d.ts +15 -0
  149. package/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.d.ts.map +1 -0
  150. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  151. package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts.map +1 -1
  152. package/libs/util/data-fetcher/src/lib/model.d.ts +3 -2
  153. package/libs/util/data-fetcher/src/lib/model.d.ts.map +1 -1
  154. package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts +1 -0
  155. package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts.map +1 -1
  156. package/libs/util/shared/src/index.d.ts +1 -0
  157. package/libs/util/shared/src/index.d.ts.map +1 -1
  158. package/libs/util/shared/src/lib/gn-ui-version.d.ts +3 -0
  159. package/libs/util/shared/src/lib/gn-ui-version.d.ts.map +1 -0
  160. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts +3 -3
  161. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts.map +1 -1
  162. package/libs/util/shared/src/lib/links/link-utils.d.ts +30 -23
  163. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  164. package/package.json +1 -1
  165. package/src/libs/api/metadata-converter/src/lib/base.converter.ts +1 -4
  166. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.service+eaux-usees.ts +2 -2
  167. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +2 -2
  168. package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +2 -2
  169. package/src/libs/api/metadata-converter/src/lib/fixtures/wallonie.records.service+napitswallonia.ts +2 -2
  170. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +8 -2
  171. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +2 -2
  172. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +3 -3
  173. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +1 -9
  174. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +20 -12
  175. package/src/libs/api/repository/src/lib/gn4/gn4.provider.ts +6 -0
  176. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +22 -3
  177. package/src/libs/common/fixtures/src/lib/elasticsearch/metadata-links.fixtures.ts +26 -26
  178. package/src/libs/common/fixtures/src/lib/link.fixtures.ts +2 -2
  179. package/src/libs/common/fixtures/src/lib/record-link.fixtures.ts +5 -5
  180. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +18 -2
  181. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.html +1 -0
  182. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +4 -0
  183. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +1 -0
  184. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.html +10 -8
  185. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +4 -0
  186. package/src/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.ts +1 -2
  187. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +2 -2
  188. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +2 -2
  189. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +2 -2
  190. package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +1 -3
  191. package/src/libs/feature/record/src/index.ts +0 -1
  192. package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +2 -3
  193. package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts +4 -5
  194. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +1 -0
  195. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +41 -7
  196. package/src/libs/feature/record/src/lib/record-meta/record-meta.component.ts +2 -2
  197. package/src/libs/feature/record/src/lib/state/mdview.effects.ts +5 -3
  198. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +4 -7
  199. package/src/libs/feature/router/src/lib/default/constants.ts +2 -0
  200. package/src/libs/feature/router/src/lib/default/router.config.ts +2 -0
  201. package/src/libs/feature/router/src/lib/default/router.service.ts +10 -0
  202. package/src/libs/feature/router/src/lib/default/state/router.facade.ts +10 -1
  203. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.html +1 -7
  204. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +16 -8
  205. package/src/libs/feature/search/src/lib/feature-search.module.ts +0 -8
  206. package/src/libs/feature/search/src/lib/record-url.token.ts +10 -1
  207. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.css +6 -0
  208. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.html +1 -0
  209. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +24 -5
  210. package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.html +1 -1
  211. package/src/libs/ui/elements/src/index.ts +2 -0
  212. package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +64 -38
  213. package/src/libs/ui/elements/src/lib/api-card/api-card.component.ts +26 -2
  214. package/src/libs/ui/elements/src/lib/download-item/download-item.component.html +17 -17
  215. package/src/libs/ui/elements/src/lib/download-item/download-item.component.ts +20 -2
  216. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +7 -6
  217. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +156 -0
  218. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +190 -0
  219. package/src/libs/ui/elements/src/lib/link-card/link-card.component.html +27 -29
  220. package/src/libs/ui/elements/src/lib/link-card/link-card.component.ts +33 -3
  221. package/src/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.html +1 -1
  222. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +1 -1
  223. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.css +9 -0
  224. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +13 -4
  225. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +12 -4
  226. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +4 -2
  227. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +2 -1
  228. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.css +0 -0
  229. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.html +96 -0
  230. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts +183 -0
  231. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +6 -0
  232. package/src/libs/ui/inputs/src/index.ts +0 -1
  233. package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.html +5 -5
  234. package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.ts +2 -1
  235. package/src/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.ts +46 -2
  236. package/src/libs/ui/layout/src/lib/carousel/carousel.component.css +0 -4
  237. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +3 -7
  238. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +13 -0
  239. package/src/libs/ui/map/src/index.ts +1 -0
  240. package/src/libs/ui/map/src/lib/components/map-container/map-container.component.ts +14 -0
  241. package/src/libs/ui/map/src/lib/components/map-legend/map-legend.component.ts +3 -0
  242. package/src/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.css +0 -0
  243. package/src/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.html +4 -0
  244. 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} +7 -8
  245. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +7 -4
  246. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +2 -1
  247. package/src/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.html +2 -2
  248. package/src/libs/util/data-fetcher/src/lib/data-fetcher.ts +3 -1
  249. package/src/libs/util/data-fetcher/src/lib/model.ts +11 -1
  250. package/src/libs/util/data-fetcher/src/lib/readers/wfs.ts +29 -3
  251. package/src/libs/util/shared/src/index.ts +1 -0
  252. package/src/libs/util/shared/src/lib/gn-ui-version.ts +8 -0
  253. package/src/libs/util/shared/src/lib/links/link-classifier.service.ts +12 -3
  254. package/src/libs/util/shared/src/lib/links/link-utils.ts +50 -30
  255. package/tailwind.base.css +51 -13
  256. package/translations/de.json +34 -3
  257. package/translations/en.json +35 -4
  258. package/translations/es.json +34 -3
  259. package/translations/fr.json +36 -5
  260. package/translations/it.json +34 -4
  261. package/translations/nl.json +34 -3
  262. package/translations/pt.json +34 -3
  263. package/translations/sk.json +34 -3
  264. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.mjs +0 -79
  265. package/esm2022/libs/feature/record/src/lib/gn-ui-version.token.mjs +0 -3
  266. package/esm2022/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.mjs +0 -16
  267. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts +0 -15
  268. 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
  269. package/libs/feature/record/src/lib/gn-ui-version.token.d.ts +0 -3
  270. package/libs/feature/record/src/lib/gn-ui-version.token.d.ts.map +0 -1
  271. package/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.d.ts +0 -8
  272. package/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.d.ts.map +0 -1
  273. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.html +0 -1
  274. package/src/libs/feature/record/src/lib/gn-ui-version.token.ts +0 -3
  275. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.css +0 -3
  276. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.html +0 -9
  277. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.ts +0 -15
  278. /package/src/libs/{feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.css → ui/elements/src/lib/internal-link-card/internal-link-card.component.css} +0 -0
@@ -4,16 +4,35 @@ import { CopyTextButtonComponent } from '../../../../../../libs/ui/inputs/src';
4
4
  import { TranslateModule } from '@ngx-translate/core';
5
5
  import { MatTooltipModule } from '@angular/material/tooltip';
6
6
  import { NgIcon, provideIcons } from '@ng-icons/core';
7
- import { matMoreHoriz } from '@ng-icons/material-icons/baseline';
7
+ import { iconoirSettings } from '@ng-icons/iconoir';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "@angular/common";
10
10
  import * as i2 from "@ngx-translate/core";
11
11
  import * as i3 from "@angular/material/tooltip";
12
12
  export class ApiCardComponent {
13
13
  constructor() {
14
+ this.sizeClassMap = {
15
+ L: 'gn-ui-card-l py-2 px-5 flex-row',
16
+ M: 'gn-ui-card-m py-2 px-5 flex-row',
17
+ S: 'gn-ui-card-s p-4 flex-col',
18
+ XS: 'gn-ui-card-xs py-2 px-5 flex-row',
19
+ };
20
+ this.cardClass = '';
14
21
  this.currentlyActive = false;
15
22
  this.openRecordApiForm = new EventEmitter();
16
23
  }
24
+ set size(value) {
25
+ this._size = value;
26
+ this.cardClass = this.sizeClassMap[value];
27
+ }
28
+ get size() {
29
+ return this._size;
30
+ }
31
+ get generatedText() {
32
+ return this.link.accessServiceProtocol === 'wfs'
33
+ ? 'datahub.search.filter.generatedByWfs'
34
+ : 'datahub.search.filter.generatedByAPI';
35
+ }
17
36
  ngOnInit() {
18
37
  this.displayApiFormButton =
19
38
  this.link.accessServiceProtocol === 'ogcFeatures' ||
@@ -31,9 +50,9 @@ export class ApiCardComponent {
31
50
  }
32
51
  }
33
52
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
34
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ApiCardComponent, isStandalone: true, selector: "gn-ui-api-card", inputs: { link: "link", currentLink: "currentLink" }, outputs: { openRecordApiForm: "openRecordApiForm" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"group flex flex-col justify-between h-40 pt-5 pb-6 px-7 rounded filter overflow-hidden cursor-default\"\n>\n <div\n class=\"font-title font-medium text-21 text-black text-ellipsis overflow-hidden break-words pb-5 h-[4.5rem]\"\n >\n {{ link.name || link.description }}\n </div>\n <div class=\"\">\n <div class=\"flex flex-row justify-between\">\n <span\n *ngIf=\"link.accessServiceProtocol !== 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n >{{ link.accessServiceProtocol }}</span\n >\n <span\n *ngIf=\"link.accessServiceProtocol === 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n translate\n >\n record.metadata.api.gpfdl</span\n >\n <div class=\"flex flex-row gap-2 items-center\">\n <gn-ui-copy-text-button\n [text]=\"link.url\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n [displayText]=\"false\"\n ></gn-ui-copy-text-button>\n <button\n *ngIf=\"displayApiFormButton\"\n type=\"button\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText,\n }\"\n [matTooltip]=\"\n !currentlyActive\n ? ('record.metadata.api.form.openForm' | translate)\n : ('record.metadata.api.form.closeForm' | translate)\n \"\n matTooltipPosition=\"above\"\n (click)=\"openRecordApiFormPanel()\"\n >\n <ng-icon\n class=\"pointer-events-none align-middle card-icon\"\n name=\"matMoreHoriz\"\n [ngClass]=\"{\n 'text-secondary opacity-100': currentlyActive,\n }\"\n ></ng-icon>\n </button>\n </div>\n </div>\n </div>\n</div>\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: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], viewProviders: [
53
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ApiCardComponent, isStandalone: true, selector: "gn-ui-api-card", inputs: { link: "link", currentLink: "currentLink", size: "size" }, outputs: { openRecordApiForm: "openRecordApiForm" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"group flex justify-between rounded filter overflow-hidden\"\n [ngClass]=\"cardClass\"\n>\n <ng-container *ngIf=\"size !== 'S'\">\n <div>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <div class=\"flex items-center\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #buttons>\n <div class=\"flex flex-row gap-2\">\n <gn-ui-copy-text-button\n [text]=\"link.url\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n [displayText]=\"false\"\n class=\"border border-gray-300 rounded-lg pt-1 px-2 h-[34px]\"\n ></gn-ui-copy-text-button>\n <button\n *ngIf=\"displayApiFormButton\"\n type=\"button\"\n class=\"gn-ui-card-icon\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText,\n }\"\n [matTooltip]=\"\n !currentlyActive\n ? ('record.metadata.api.form.openForm' | translate)\n : ('record.metadata.api.form.closeForm' | translate)\n \"\n matTooltipPosition=\"above\"\n (click)=\"openRecordApiFormPanel()\"\n >\n <ng-icon\n class=\"pointer-events-none align-middle card-icon\"\n name=\"iconoirSettings\"\n [ngClass]=\"{\n 'text-secondary opacity-100': currentlyActive,\n }\"\n ></ng-icon>\n </button>\n </div>\n</ng-template>\n\n<ng-template #content>\n <div>\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 </div>\n <div class=\"flex flex-row justify-between\">\n <div class=\"flex flex-row gap-2.5 items-center pt-1\">\n <span\n *ngIf=\"link.accessServiceProtocol !== 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n >{{ link.accessServiceProtocol }}</span\n >\n <span\n *ngIf=\"link.accessServiceProtocol === 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n translate\n >\n record.metadata.api.gpfdl</span\n >\n </div>\n <div *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </div>\n</ng-template>\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: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], viewProviders: [
35
54
  provideIcons({
36
- matMoreHoriz,
55
+ iconoirSettings,
37
56
  }),
38
57
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
39
58
  }
@@ -47,14 +66,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
47
66
  NgIcon,
48
67
  ], viewProviders: [
49
68
  provideIcons({
50
- matMoreHoriz,
69
+ iconoirSettings,
51
70
  }),
52
- ], template: "<div\n class=\"group flex flex-col justify-between h-40 pt-5 pb-6 px-7 rounded filter overflow-hidden cursor-default\"\n>\n <div\n class=\"font-title font-medium text-21 text-black text-ellipsis overflow-hidden break-words pb-5 h-[4.5rem]\"\n >\n {{ link.name || link.description }}\n </div>\n <div class=\"\">\n <div class=\"flex flex-row justify-between\">\n <span\n *ngIf=\"link.accessServiceProtocol !== 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n >{{ link.accessServiceProtocol }}</span\n >\n <span\n *ngIf=\"link.accessServiceProtocol === 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n translate\n >\n record.metadata.api.gpfdl</span\n >\n <div class=\"flex flex-row gap-2 items-center\">\n <gn-ui-copy-text-button\n [text]=\"link.url\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n [displayText]=\"false\"\n ></gn-ui-copy-text-button>\n <button\n *ngIf=\"displayApiFormButton\"\n type=\"button\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText,\n }\"\n [matTooltip]=\"\n !currentlyActive\n ? ('record.metadata.api.form.openForm' | translate)\n : ('record.metadata.api.form.closeForm' | translate)\n \"\n matTooltipPosition=\"above\"\n (click)=\"openRecordApiFormPanel()\"\n >\n <ng-icon\n class=\"pointer-events-none align-middle card-icon\"\n name=\"matMoreHoriz\"\n [ngClass]=\"{\n 'text-secondary opacity-100': currentlyActive,\n }\"\n ></ng-icon>\n </button>\n </div>\n </div>\n </div>\n</div>\n" }]
71
+ ], template: "<div\n class=\"group flex justify-between rounded filter overflow-hidden\"\n [ngClass]=\"cardClass\"\n>\n <ng-container *ngIf=\"size !== 'S'\">\n <div>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <div class=\"flex items-center\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #buttons>\n <div class=\"flex flex-row gap-2\">\n <gn-ui-copy-text-button\n [text]=\"link.url\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n [displayText]=\"false\"\n class=\"border border-gray-300 rounded-lg pt-1 px-2 h-[34px]\"\n ></gn-ui-copy-text-button>\n <button\n *ngIf=\"displayApiFormButton\"\n type=\"button\"\n class=\"gn-ui-card-icon\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText,\n }\"\n [matTooltip]=\"\n !currentlyActive\n ? ('record.metadata.api.form.openForm' | translate)\n : ('record.metadata.api.form.closeForm' | translate)\n \"\n matTooltipPosition=\"above\"\n (click)=\"openRecordApiFormPanel()\"\n >\n <ng-icon\n class=\"pointer-events-none align-middle card-icon\"\n name=\"iconoirSettings\"\n [ngClass]=\"{\n 'text-secondary opacity-100': currentlyActive,\n }\"\n ></ng-icon>\n </button>\n </div>\n</ng-template>\n\n<ng-template #content>\n <div>\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 </div>\n <div class=\"flex flex-row justify-between\">\n <div class=\"flex flex-row gap-2.5 items-center pt-1\">\n <span\n *ngIf=\"link.accessServiceProtocol !== 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n >{{ link.accessServiceProtocol }}</span\n >\n <span\n *ngIf=\"link.accessServiceProtocol === 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n translate\n >\n record.metadata.api.gpfdl</span\n >\n </div>\n <div *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </div>\n</ng-template>\n" }]
53
72
  }], propDecorators: { link: [{
54
73
  type: Input
55
74
  }], currentLink: [{
56
75
  type: Input
76
+ }], size: [{
77
+ type: Input
57
78
  }], openRecordApiForm: [{
58
79
  type: Output
59
80
  }] } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMvbGliL2FwaS1jYXJkL2FwaS1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9hcGktY2FyZC9hcGktY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFBOzs7OztBQXFCaEUsTUFBTSxPQUFPLGdCQUFnQjtJQW5CN0I7UUF1QkUsb0JBQWUsR0FBRyxLQUFLLENBQUE7UUFDYixzQkFBaUIsR0FDekIsSUFBSSxZQUFZLEVBQThCLENBQUE7S0FvQmpEO0lBbEJDLFFBQVE7UUFDTixJQUFJLENBQUMsb0JBQW9CO1lBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEtBQUssYUFBYTtnQkFDakQsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsS0FBSyxLQUFLO2dCQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixLQUFLLE9BQU8sQ0FBQTtJQUMvQyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxlQUFlO1lBQ2xCLE9BQU8sQ0FBQyxXQUFXLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO0lBQ2pFLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQTtZQUM1QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQzNFLENBQUM7SUFDSCxDQUFDOytHQXpCVSxnQkFBZ0I7bUdBQWhCLGdCQUFnQiwwTUNyQzdCLDZ6RUE2REEseUREcENJLFlBQVksaU9BQ1osdUJBQXVCLDBIQUN2QixlQUFlLGtPQUNmLGdCQUFnQiw2VEFDaEIsTUFBTSxrR0FFTztZQUNiLFlBQVksQ0FBQztnQkFDWCxZQUFZO2FBQ2IsQ0FBQztTQUNIOzs0RkFFVSxnQkFBZ0I7a0JBbkI1QixTQUFTOytCQUNFLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLHVCQUF1Qjt3QkFDdkIsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLE1BQU07cUJBQ1AsaUJBQ2M7d0JBQ2IsWUFBWSxDQUFDOzRCQUNYLFlBQVk7eUJBQ2IsQ0FBQztxQkFDSDs4QkFHUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFHSSxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBDb3B5VGV4dEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCdcbmltcG9ydCB7IE5nSWNvbiwgcHJvdmlkZUljb25zIH0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBtYXRNb3JlSG9yaXogfSBmcm9tICdAbmctaWNvbnMvbWF0ZXJpYWwtaWNvbnMvYmFzZWxpbmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWFwaS1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwaS1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXBpLWNhcmQuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBDb3B5VGV4dEJ1dHRvbkNvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBOZ0ljb24sXG4gIF0sXG4gIHZpZXdQcm92aWRlcnM6IFtcbiAgICBwcm92aWRlSWNvbnMoe1xuICAgICAgbWF0TW9yZUhvcml6LFxuICAgIH0pLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBcGlDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBsaW5rOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvblxuICBASW5wdXQoKSBjdXJyZW50TGluazogRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb25cbiAgZGlzcGxheUFwaUZvcm1CdXR0b246IGJvb2xlYW5cbiAgY3VycmVudGx5QWN0aXZlID0gZmFsc2VcbiAgQE91dHB1dCgpIG9wZW5SZWNvcmRBcGlGb3JtOiBFdmVudEVtaXR0ZXI8RGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uPigpXG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5kaXNwbGF5QXBpRm9ybUJ1dHRvbiA9XG4gICAgICB0aGlzLmxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnb2djRmVhdHVyZXMnIHx8XG4gICAgICB0aGlzLmxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnd2ZzJyB8fFxuICAgICAgdGhpcy5saW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ0dQRkRMJ1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIHRoaXMuY3VycmVudGx5QWN0aXZlID1cbiAgICAgIGNoYW5nZXMuY3VycmVudExpbmsuY3VycmVudFZhbHVlID09PSB0aGlzLmxpbmsgPyB0cnVlIDogZmFsc2VcbiAgfVxuXG4gIG9wZW5SZWNvcmRBcGlGb3JtUGFuZWwoKSB7XG4gICAgaWYgKHRoaXMuZGlzcGxheUFwaUZvcm1CdXR0b24pIHtcbiAgICAgIHRoaXMuY3VycmVudGx5QWN0aXZlID0gIXRoaXMuY3VycmVudGx5QWN0aXZlXG4gICAgICB0aGlzLm9wZW5SZWNvcmRBcGlGb3JtLmVtaXQodGhpcy5jdXJyZW50bHlBY3RpdmUgPyB0aGlzLmxpbmsgOiB1bmRlZmluZWQpXG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiZ3JvdXAgZmxleCBmbGV4LWNvbCBqdXN0aWZ5LWJldHdlZW4gaC00MCBwdC01IHBiLTYgcHgtNyByb3VuZGVkIGZpbHRlciBvdmVyZmxvdy1oaWRkZW4gY3Vyc29yLWRlZmF1bHRcIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJmb250LXRpdGxlIGZvbnQtbWVkaXVtIHRleHQtMjEgdGV4dC1ibGFjayB0ZXh0LWVsbGlwc2lzIG92ZXJmbG93LWhpZGRlbiBicmVhay13b3JkcyBwYi01IGgtWzQuNXJlbV1cIlxuICA+XG4gICAge3sgbGluay5uYW1lIHx8IGxpbmsuZGVzY3JpcHRpb24gfX1cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgIDxzcGFuXG4gICAgICAgICpuZ0lmPVwibGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgIT09ICdHUEZETCdcIlxuICAgICAgICBjbGFzcz1cImJnLXByaW1hcnktb3BhY2l0eS01MCB1cHBlcmNhc2UgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB4LTIgcHktMSB0ZXh0LTEzIGZvbnQtbWVkaXVtIGxlYWRpbmctbm9uZSB0ZXh0LXdoaXRlIHJvdW5kZWQgdGV4dC1wcmltYXJ5LWxpZ2h0ZXN0IGdyb3VwLWhvdmVyOmJnLXByaW1hcnkgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJyFiZy1wcmltYXJ5JzogY3VycmVudGx5QWN0aXZlLFxuICAgICAgICB9XCJcbiAgICAgICAgPnt7IGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sIH19PC9zcGFuXG4gICAgICA+XG4gICAgICA8c3BhblxuICAgICAgICAqbmdJZj1cImxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnR1BGREwnXCJcbiAgICAgICAgY2xhc3M9XCJiZy1wcmltYXJ5LW9wYWNpdHktNTAgdXBwZXJjYXNlIGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBweC0yIHB5LTEgdGV4dC0xMyBmb250LW1lZGl1bSBsZWFkaW5nLW5vbmUgdGV4dC13aGl0ZSByb3VuZGVkIHRleHQtcHJpbWFyeS1saWdodGVzdCBncm91cC1ob3ZlcjpiZy1wcmltYXJ5IHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICchYmctcHJpbWFyeSc6IGN1cnJlbnRseUFjdGl2ZSxcbiAgICAgICAgfVwiXG4gICAgICAgIHRyYW5zbGF0ZVxuICAgICAgPlxuICAgICAgICByZWNvcmQubWV0YWRhdGEuYXBpLmdwZmRsPC9zcGFuXG4gICAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtMiBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPGduLXVpLWNvcHktdGV4dC1idXR0b25cbiAgICAgICAgICBbdGV4dF09XCJsaW5rLnVybFwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIid0b29sdGlwLnVybC5jb3B5JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgW2Rpc3BsYXlUZXh0XT1cImZhbHNlXCJcbiAgICAgICAgPjwvZ24tdWktY29weS10ZXh0LWJ1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiZGlzcGxheUFwaUZvcm1CdXR0b25cIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICdweS0yIHB4LTQgcm91bmRlZC1yLW1kIGJnLWdyYXktNDAwIGhvdmVyOmJnLWdyYXktNjAwIGZvY3VzOmJnLWdyYXktODAwIHRleHQtd2hpdGUnOlxuICAgICAgICAgICAgICBkaXNwbGF5VGV4dCxcbiAgICAgICAgICB9XCJcbiAgICAgICAgICBbbWF0VG9vbHRpcF09XCJcbiAgICAgICAgICAgICFjdXJyZW50bHlBY3RpdmVcbiAgICAgICAgICAgICAgPyAoJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5vcGVuRm9ybScgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgICAgIDogKCdyZWNvcmQubWV0YWRhdGEuYXBpLmZvcm0uY2xvc2VGb3JtJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICBcIlxuICAgICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcbiAgICAgICAgICAoY2xpY2spPVwib3BlblJlY29yZEFwaUZvcm1QYW5lbCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1pY29uXG4gICAgICAgICAgICBjbGFzcz1cInBvaW50ZXItZXZlbnRzLW5vbmUgYWxpZ24tbWlkZGxlIGNhcmQtaWNvblwiXG4gICAgICAgICAgICBuYW1lPVwibWF0TW9yZUhvcml6XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ3RleHQtc2Vjb25kYXJ5IG9wYWNpdHktMTAwJzogY3VycmVudGx5QWN0aXZlLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgPjwvbmctaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMvbGliL2FwaS1jYXJkL2FwaS1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9hcGktY2FyZC9hcGktY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFBOzs7OztBQXVCbkQsTUFBTSxPQUFPLGdCQUFnQjtJQW5CN0I7UUF1Qm1CLGlCQUFZLEdBQTZCO1lBQ3hELENBQUMsRUFBRSxpQ0FBaUM7WUFDcEMsQ0FBQyxFQUFFLGlDQUFpQztZQUNwQyxDQUFDLEVBQUUsMkJBQTJCO1lBQzlCLEVBQUUsRUFBRSxrQ0FBa0M7U0FDdkMsQ0FBQTtRQVNELGNBQVMsR0FBRyxFQUFFLENBQUE7UUFFZCxvQkFBZSxHQUFHLEtBQUssQ0FBQTtRQUNiLHNCQUFpQixHQUN6QixJQUFJLFlBQVksRUFBOEIsQ0FBQTtLQTBCakQ7SUFyQ0MsSUFBYSxJQUFJLENBQUMsS0FBZTtRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtRQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDM0MsQ0FBQztJQUNELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQTtJQUNuQixDQUFDO0lBT0QsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixLQUFLLEtBQUs7WUFDOUMsQ0FBQyxDQUFDLHNDQUFzQztZQUN4QyxDQUFDLENBQUMsc0NBQXNDLENBQUE7SUFDNUMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsb0JBQW9CO1lBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEtBQUssYUFBYTtnQkFDakQsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsS0FBSyxLQUFLO2dCQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixLQUFLLE9BQU8sQ0FBQTtJQUMvQyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxlQUFlO1lBQ2xCLE9BQU8sQ0FBQyxXQUFXLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO0lBQ2pFLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQTtZQUM1QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQzNFLENBQUM7SUFDSCxDQUFDOytHQS9DVSxnQkFBZ0I7bUdBQWhCLGdCQUFnQix3TkN2QzdCLDY0RkF1RkEseURENURJLFlBQVksd1lBQ1osdUJBQXVCLDBIQUN2QixlQUFlLGtPQUNmLGdCQUFnQiw2VEFDaEIsTUFBTSxrR0FFTztZQUNiLFlBQVksQ0FBQztnQkFDWCxlQUFlO2FBQ2hCLENBQUM7U0FDSDs7NEZBRVUsZ0JBQWdCO2tCQW5CNUIsU0FBUzsrQkFDRSxnQkFBZ0IsbUJBR1QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWix1QkFBdUI7d0JBQ3ZCLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixNQUFNO3FCQUNQLGlCQUNjO3dCQUNiLFlBQVksQ0FBQzs0QkFDWCxlQUFlO3lCQUNoQixDQUFDO3FCQUNIOzhCQUlRLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQVFPLElBQUk7c0JBQWhCLEtBQUs7Z0JBVUksaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgQ29weVRleHRCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnXG5pbXBvcnQgeyBOZ0ljb24sIHByb3ZpZGVJY29ucyB9IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgaWNvbm9pclNldHRpbmdzIH0gZnJvbSAnQG5nLWljb25zL2ljb25vaXInXG5cbnR5cGUgQ2FyZFNpemUgPSAnTCcgfCAnTScgfCAnUycgfCAnWFMnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWFwaS1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwaS1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXBpLWNhcmQuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBDb3B5VGV4dEJ1dHRvbkNvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBOZ0ljb24sXG4gIF0sXG4gIHZpZXdQcm92aWRlcnM6IFtcbiAgICBwcm92aWRlSWNvbnMoe1xuICAgICAgaWNvbm9pclNldHRpbmdzLFxuICAgIH0pLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBcGlDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBwcml2YXRlIF9zaXplOiAnTCcgfCAnTScgfCAnUycgfCAnWFMnXG4gIEBJbnB1dCgpIGxpbms6IERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uXG4gIEBJbnB1dCgpIGN1cnJlbnRMaW5rOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvblxuICBwcml2YXRlIHJlYWRvbmx5IHNpemVDbGFzc01hcDogUmVjb3JkPENhcmRTaXplLCBzdHJpbmc+ID0ge1xuICAgIEw6ICdnbi11aS1jYXJkLWwgcHktMiBweC01IGZsZXgtcm93JyxcbiAgICBNOiAnZ24tdWktY2FyZC1tIHB5LTIgcHgtNSBmbGV4LXJvdycsXG4gICAgUzogJ2duLXVpLWNhcmQtcyBwLTQgZmxleC1jb2wnLFxuICAgIFhTOiAnZ24tdWktY2FyZC14cyBweS0yIHB4LTUgZmxleC1yb3cnLFxuICB9XG5cbiAgQElucHV0KCkgc2V0IHNpemUodmFsdWU6IENhcmRTaXplKSB7XG4gICAgdGhpcy5fc2l6ZSA9IHZhbHVlXG4gICAgdGhpcy5jYXJkQ2xhc3MgPSB0aGlzLnNpemVDbGFzc01hcFt2YWx1ZV1cbiAgfVxuICBnZXQgc2l6ZSgpOiAnTCcgfCAnTScgfCAnUycgfCAnWFMnIHtcbiAgICByZXR1cm4gdGhpcy5fc2l6ZVxuICB9XG4gIGNhcmRDbGFzcyA9ICcnXG4gIGRpc3BsYXlBcGlGb3JtQnV0dG9uOiBib29sZWFuXG4gIGN1cnJlbnRseUFjdGl2ZSA9IGZhbHNlXG4gIEBPdXRwdXQoKSBvcGVuUmVjb3JkQXBpRm9ybTogRXZlbnRFbWl0dGVyPERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbj4oKVxuXG4gIGdldCBnZW5lcmF0ZWRUZXh0KCkge1xuICAgIHJldHVybiB0aGlzLmxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnd2ZzJ1xuICAgICAgPyAnZGF0YWh1Yi5zZWFyY2guZmlsdGVyLmdlbmVyYXRlZEJ5V2ZzJ1xuICAgICAgOiAnZGF0YWh1Yi5zZWFyY2guZmlsdGVyLmdlbmVyYXRlZEJ5QVBJJ1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5kaXNwbGF5QXBpRm9ybUJ1dHRvbiA9XG4gICAgICB0aGlzLmxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnb2djRmVhdHVyZXMnIHx8XG4gICAgICB0aGlzLmxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnd2ZzJyB8fFxuICAgICAgdGhpcy5saW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ0dQRkRMJ1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIHRoaXMuY3VycmVudGx5QWN0aXZlID1cbiAgICAgIGNoYW5nZXMuY3VycmVudExpbmsuY3VycmVudFZhbHVlID09PSB0aGlzLmxpbmsgPyB0cnVlIDogZmFsc2VcbiAgfVxuXG4gIG9wZW5SZWNvcmRBcGlGb3JtUGFuZWwoKSB7XG4gICAgaWYgKHRoaXMuZGlzcGxheUFwaUZvcm1CdXR0b24pIHtcbiAgICAgIHRoaXMuY3VycmVudGx5QWN0aXZlID0gIXRoaXMuY3VycmVudGx5QWN0aXZlXG4gICAgICB0aGlzLm9wZW5SZWNvcmRBcGlGb3JtLmVtaXQodGhpcy5jdXJyZW50bHlBY3RpdmUgPyB0aGlzLmxpbmsgOiB1bmRlZmluZWQpXG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiZ3JvdXAgZmxleCBqdXN0aWZ5LWJldHdlZW4gcm91bmRlZCBmaWx0ZXIgb3ZlcmZsb3ctaGlkZGVuXCJcbiAgW25nQ2xhc3NdPVwiY2FyZENsYXNzXCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNpemUgIT09ICdTJ1wiPlxuICAgIDxkaXY+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbnNcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaXplID09PSAnUydcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2J1dHRvbnM+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC0yXCI+XG4gICAgPGduLXVpLWNvcHktdGV4dC1idXR0b25cbiAgICAgIFt0ZXh0XT1cImxpbmsudXJsXCJcbiAgICAgIFt0b29sdGlwVGV4dF09XCIndG9vbHRpcC51cmwuY29weScgfCB0cmFuc2xhdGVcIlxuICAgICAgW2Rpc3BsYXlUZXh0XT1cImZhbHNlXCJcbiAgICAgIGNsYXNzPVwiYm9yZGVyIGJvcmRlci1ncmF5LTMwMCByb3VuZGVkLWxnIHB0LTEgcHgtMiBoLVszNHB4XVwiXG4gICAgPjwvZ24tdWktY29weS10ZXh0LWJ1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdJZj1cImRpc3BsYXlBcGlGb3JtQnV0dG9uXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJnbi11aS1jYXJkLWljb25cIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAncHktMiBweC00IHJvdW5kZWQtci1tZCBiZy1ncmF5LTQwMCBob3ZlcjpiZy1ncmF5LTYwMCBmb2N1czpiZy1ncmF5LTgwMCB0ZXh0LXdoaXRlJzpcbiAgICAgICAgICBkaXNwbGF5VGV4dCxcbiAgICAgIH1cIlxuICAgICAgW21hdFRvb2x0aXBdPVwiXG4gICAgICAgICFjdXJyZW50bHlBY3RpdmVcbiAgICAgICAgICA/ICgncmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLm9wZW5Gb3JtJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICA6ICgncmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLmNsb3NlRm9ybScgfCB0cmFuc2xhdGUpXG4gICAgICBcIlxuICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxuICAgICAgKGNsaWNrKT1cIm9wZW5SZWNvcmRBcGlGb3JtUGFuZWwoKVwiXG4gICAgPlxuICAgICAgPG5nLWljb25cbiAgICAgICAgY2xhc3M9XCJwb2ludGVyLWV2ZW50cy1ub25lIGFsaWduLW1pZGRsZSBjYXJkLWljb25cIlxuICAgICAgICBuYW1lPVwiaWNvbm9pclNldHRpbmdzXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICd0ZXh0LXNlY29uZGFyeSBvcGFjaXR5LTEwMCc6IGN1cnJlbnRseUFjdGl2ZSxcbiAgICAgICAgfVwiXG4gICAgICA+PC9uZy1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudD5cbiAgPGRpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZ24tdWktY2FyZC10aXRsZVwiPlxuICAgICAge3sgbGluay5kZXNjcmlwdGlvbiB8fCBsaW5rLm5hbWUgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZ24tdWktY2FyZC1kZXRhaWxcIj5cbiAgICAgIHt7IGxpbmsubmFtZSB9fVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLTIuNSBpdGVtcy1jZW50ZXIgcHQtMVwiPlxuICAgICAgPHNwYW5cbiAgICAgICAgKm5nSWY9XCJsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCAhPT0gJ0dQRkRMJ1wiXG4gICAgICAgIGNsYXNzPVwiYmctcHJpbWFyeS1vcGFjaXR5LTUwIHVwcGVyY2FzZSBpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHgtMiBweS0xIHRleHQtMTMgZm9udC1tZWRpdW0gbGVhZGluZy1ub25lIHRleHQtd2hpdGUgcm91bmRlZCB0ZXh0LXByaW1hcnktbGlnaHRlc3QgZ3JvdXAtaG92ZXI6YmctcHJpbWFyeSB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnIWJnLXByaW1hcnknOiBjdXJyZW50bHlBY3RpdmUsXG4gICAgICAgIH1cIlxuICAgICAgICA+e3sgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgfX08L3NwYW5cbiAgICAgID5cbiAgICAgIDxzcGFuXG4gICAgICAgICpuZ0lmPVwibGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdHUEZETCdcIlxuICAgICAgICBjbGFzcz1cImJnLXByaW1hcnktb3BhY2l0eS01MCB1cHBlcmNhc2UgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB4LTIgcHktMSB0ZXh0LTEzIGZvbnQtbWVkaXVtIGxlYWRpbmctbm9uZSB0ZXh0LXdoaXRlIHJvdW5kZWQgdGV4dC1wcmltYXJ5LWxpZ2h0ZXN0IGdyb3VwLWhvdmVyOmJnLXByaW1hcnkgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJyFiZy1wcmltYXJ5JzogY3VycmVudGx5QWN0aXZlLFxuICAgICAgICB9XCJcbiAgICAgICAgdHJhbnNsYXRlXG4gICAgICA+XG4gICAgICAgIHJlY29yZC5tZXRhZGF0YS5hcGkuZ3BmZGw8L3NwYW5cbiAgICAgID5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwic2l6ZSA9PT0gJ1MnXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uc1wiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -2,21 +2,35 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from
2
2
  import { TranslateModule } from '@ngx-translate/core';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import { NgIcon, provideIcons } from '@ng-icons/core';
5
- import { matCloudDownloadOutline } from '@ng-icons/material-icons/outline';
5
+ import { iconoirDownload } from '@ng-icons/iconoir';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/common";
8
8
  import * as i2 from "@ngx-translate/core";
9
9
  export class DownloadItemComponent {
10
10
  constructor() {
11
+ this.sizeClassMap = {
12
+ L: 'gn-ui-card-l py-2 px-5',
13
+ M: 'gn-ui-card-m py-2 px-5',
14
+ S: 'gn-ui-card-s p-4',
15
+ XS: 'gn-ui-card-xs py-2 px-5',
16
+ };
17
+ this.cardClass = '';
11
18
  this.exportUrl = new EventEmitter();
12
19
  }
20
+ set size(value) {
21
+ this._size = value;
22
+ this.cardClass = this.sizeClassMap[value];
23
+ }
24
+ get size() {
25
+ return this._size;
26
+ }
13
27
  openUrl() {
14
28
  this.exportUrl.emit(this.link.url.toString());
15
29
  }
16
30
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DownloadItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DownloadItemComponent, isStandalone: true, selector: "gn-ui-download-item", inputs: { link: "link", color: "color", format: "format", isFromApi: "isFromApi" }, outputs: { exportUrl: "exportUrl" }, ngImport: i0, template: "<a\n href=\"{{ link.url }}\"\n target=\"_blank\"\n class=\"group flex justify-between card-shadow px-6 py-5 cursor-pointer\"\n rel=\"noopener\"\n>\n <div class=\"grow-1 w-full overflow-hidden\">\n <div\n class=\"text-21 text-black truncate font-title w-11/12\"\n [title]=\"link.description || link.name\"\n >\n {{ link.description || link.name }}\n </div>\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]=\"color\"\n data-cy=\"download-format\"\n >{{ format || ('downloads.format.unknown' | translate) }}</span\n >\n <span\n class=\"pl-2 inline-flex items-center text-gray-800 text-sm\"\n *ngIf=\"isFromApi\"\n translate=\"\"\n >datahub.search.filter.generatedByAPI</span\n >\n </div>\n </div>\n <div class=\"shrink-1 w-14 flex flex-col justify-center items-center\">\n <ng-icon\n class=\"!w-8 !h-8 card-icon text-3xl\"\n name=\"matCloudDownloadOutline\"\n >\n </ng-icon>\n </div>\n</a>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], viewProviders: [
31
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DownloadItemComponent, isStandalone: true, selector: "gn-ui-download-item", inputs: { link: "link", color: "color", format: "format", isFromApi: "isFromApi", size: "size" }, outputs: { exportUrl: "exportUrl" }, 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 rel=\"noopener\"\n [ngClass]=\"cardClass\"\n>\n <div class=\"flex flex-col justify-between\">\n <div class=\"gn-ui-card-title\" [title]=\"link.description || link.name\">\n {{ link.description || link.name }}\n </div>\n <div class=\"gn-ui-card-detail\">\n {{ link.name }}\n </div>\n <div class=\"flex flex-row gap-2 items-center 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]=\"color\"\n data-cy=\"download-format\"\n >{{ format || ('downloads.format.unknown' | translate) }}</span\n >\n <span class=\"text-gray-800 text-xs\" *ngIf=\"isFromApi\" translate=\"\"\n >datahub.search.filter.generatedByAPI</span\n >\n </div>\n </div>\n <div class=\"flex\" [ngClass]=\"size === 'S' ? 'items-end' : 'items-center'\">\n <div class=\"gn-ui-card-icon\">\n <ng-icon\n class=\"inline-block card-icon align-middle\"\n name=\"iconoirDownload\"\n >\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: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], viewProviders: [
18
32
  provideIcons({
19
- matCloudDownloadOutline,
33
+ iconoirDownload,
20
34
  }),
21
35
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
22
36
  }
@@ -24,9 +38,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
24
38
  type: Component,
25
39
  args: [{ selector: 'gn-ui-download-item', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, TranslateModule, NgIcon], standalone: true, viewProviders: [
26
40
  provideIcons({
27
- matCloudDownloadOutline,
41
+ iconoirDownload,
28
42
  }),
29
- ], template: "<a\n href=\"{{ link.url }}\"\n target=\"_blank\"\n class=\"group flex justify-between card-shadow px-6 py-5 cursor-pointer\"\n rel=\"noopener\"\n>\n <div class=\"grow-1 w-full overflow-hidden\">\n <div\n class=\"text-21 text-black truncate font-title w-11/12\"\n [title]=\"link.description || link.name\"\n >\n {{ link.description || link.name }}\n </div>\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]=\"color\"\n data-cy=\"download-format\"\n >{{ format || ('downloads.format.unknown' | translate) }}</span\n >\n <span\n class=\"pl-2 inline-flex items-center text-gray-800 text-sm\"\n *ngIf=\"isFromApi\"\n translate=\"\"\n >datahub.search.filter.generatedByAPI</span\n >\n </div>\n </div>\n <div class=\"shrink-1 w-14 flex flex-col justify-center items-center\">\n <ng-icon\n class=\"!w-8 !h-8 card-icon text-3xl\"\n name=\"matCloudDownloadOutline\"\n >\n </ng-icon>\n </div>\n</a>\n" }]
43
+ ], 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 rel=\"noopener\"\n [ngClass]=\"cardClass\"\n>\n <div class=\"flex flex-col justify-between\">\n <div class=\"gn-ui-card-title\" [title]=\"link.description || link.name\">\n {{ link.description || link.name }}\n </div>\n <div class=\"gn-ui-card-detail\">\n {{ link.name }}\n </div>\n <div class=\"flex flex-row gap-2 items-center 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]=\"color\"\n data-cy=\"download-format\"\n >{{ format || ('downloads.format.unknown' | translate) }}</span\n >\n <span class=\"text-gray-800 text-xs\" *ngIf=\"isFromApi\" translate=\"\"\n >datahub.search.filter.generatedByAPI</span\n >\n </div>\n </div>\n <div class=\"flex\" [ngClass]=\"size === 'S' ? 'items-end' : 'items-center'\">\n <div class=\"gn-ui-card-icon\">\n <ng-icon\n class=\"inline-block card-icon align-middle\"\n name=\"iconoirDownload\"\n >\n </ng-icon>\n </div>\n </div>\n</a>\n" }]
30
44
  }], propDecorators: { link: [{
31
45
  type: Input
32
46
  }], color: [{
@@ -35,7 +49,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
35
49
  type: Input
36
50
  }], isFromApi: [{
37
51
  type: Input
52
+ }], size: [{
53
+ type: Input
38
54
  }], exportUrl: [{
39
55
  type: Output
40
56
  }] } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWQtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYy9saWIvZG93bmxvYWQtaXRlbS9kb3dubG9hZC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9kb3dubG9hZC1pdGVtL2Rvd25sb2FkLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUE7QUFFdEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3JELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFBOzs7O0FBZTFFLE1BQU0sT0FBTyxxQkFBcUI7SUFibEM7UUFrQlksY0FBUyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUE7S0FLakQ7SUFIQyxPQUFPO1FBQ0wsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUMvQyxDQUFDOytHQVRVLHFCQUFxQjttR0FBckIscUJBQXFCLHdNQzFCbEMsZ3JDQW9DQSx5RERsQlksWUFBWSxrSUFBRSxlQUFlLG1PQUFFLE1BQU0sa0dBRWhDO1lBQ2IsWUFBWSxDQUFDO2dCQUNYLHVCQUF1QjthQUN4QixDQUFDO1NBQ0g7OzRGQUVVLHFCQUFxQjtrQkFiakMsU0FBUzsrQkFDRSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxDQUFDLGNBQ3BDLElBQUksaUJBQ0Q7d0JBQ2IsWUFBWSxDQUFDOzRCQUNYLHVCQUF1Qjt5QkFDeEIsQ0FBQztxQkFDSDs4QkFHUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNJLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBEYXRhc2V0T25saW5lUmVzb3VyY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgTmdJY29uLCBwcm92aWRlSWNvbnMgfSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IG1hdENsb3VkRG93bmxvYWRPdXRsaW5lIH0gZnJvbSAnQG5nLWljb25zL21hdGVyaWFsLWljb25zL291dGxpbmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWRvd25sb2FkLWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZG93bmxvYWQtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Rvd25sb2FkLWl0ZW0uY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBOZ0ljb25dLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB2aWV3UHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHtcbiAgICAgIG1hdENsb3VkRG93bmxvYWRPdXRsaW5lLFxuICAgIH0pLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEb3dubG9hZEl0ZW1Db21wb25lbnQge1xuICBASW5wdXQoKSBsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2VcbiAgQElucHV0KCkgY29sb3I6IHN0cmluZ1xuICBASW5wdXQoKSBmb3JtYXQ6IHN0cmluZ1xuICBASW5wdXQoKSBpc0Zyb21BcGk6IGJvb2xlYW5cbiAgQE91dHB1dCgpIGV4cG9ydFVybCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpXG5cbiAgb3BlblVybCgpIHtcbiAgICB0aGlzLmV4cG9ydFVybC5lbWl0KHRoaXMubGluay51cmwudG9TdHJpbmcoKSlcbiAgfVxufVxuIiwiPGFcbiAgaHJlZj1cInt7IGxpbmsudXJsIH19XCJcbiAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgY2xhc3M9XCJncm91cCBmbGV4IGp1c3RpZnktYmV0d2VlbiBjYXJkLXNoYWRvdyBweC02IHB5LTUgY3Vyc29yLXBvaW50ZXJcIlxuICByZWw9XCJub29wZW5lclwiXG4+XG4gIDxkaXYgY2xhc3M9XCJncm93LTEgdy1mdWxsIG92ZXJmbG93LWhpZGRlblwiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwidGV4dC0yMSB0ZXh0LWJsYWNrIHRydW5jYXRlIGZvbnQtdGl0bGUgdy0xMS8xMlwiXG4gICAgICBbdGl0bGVdPVwibGluay5kZXNjcmlwdGlvbiB8fCBsaW5rLm5hbWVcIlxuICAgID5cbiAgICAgIHt7IGxpbmsuZGVzY3JpcHRpb24gfHwgbGluay5uYW1lIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInB0LTFcIj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwiaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB4LTIgcHktMSB0ZXh0LTEzIGZvbnQtbWVkaXVtIGxlYWRpbmctbm9uZSB0ZXh0LXdoaXRlIHJvdW5kZWQgdHJhbnNpdGlvbi1vcGFjaXR5IG9wYWNpdHktNzAgZ3JvdXAtaG92ZXI6b3BhY2l0eS0xMDBcIlxuICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJjb2xvclwiXG4gICAgICAgIGRhdGEtY3k9XCJkb3dubG9hZC1mb3JtYXRcIlxuICAgICAgICA+e3sgZm9ybWF0IHx8ICgnZG93bmxvYWRzLmZvcm1hdC51bmtub3duJyB8IHRyYW5zbGF0ZSkgfX08L3NwYW5cbiAgICAgID5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwicGwtMiBpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgdGV4dC1ncmF5LTgwMCB0ZXh0LXNtXCJcbiAgICAgICAgKm5nSWY9XCJpc0Zyb21BcGlcIlxuICAgICAgICB0cmFuc2xhdGU9XCJcIlxuICAgICAgICA+ZGF0YWh1Yi5zZWFyY2guZmlsdGVyLmdlbmVyYXRlZEJ5QVBJPC9zcGFuXG4gICAgICA+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic2hyaW5rLTEgdy0xNCBmbGV4IGZsZXgtY29sIGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlclwiPlxuICAgIDxuZy1pY29uXG4gICAgICBjbGFzcz1cIiF3LTggIWgtOCBjYXJkLWljb24gdGV4dC0zeGxcIlxuICAgICAgbmFtZT1cIm1hdENsb3VkRG93bmxvYWRPdXRsaW5lXCJcbiAgICA+XG4gICAgPC9uZy1pY29uPlxuICA8L2Rpdj5cbjwvYT5cbiJdfQ==
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWQtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYy9saWIvZG93bmxvYWQtaXRlbS9kb3dubG9hZC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9kb3dubG9hZC1pdGVtL2Rvd25sb2FkLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUE7QUFFdEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTs7OztBQWlCbkQsTUFBTSxPQUFPLHFCQUFxQjtJQWJsQztRQW1CbUIsaUJBQVksR0FBNkI7WUFDeEQsQ0FBQyxFQUFFLHdCQUF3QjtZQUMzQixDQUFDLEVBQUUsd0JBQXdCO1lBQzNCLENBQUMsRUFBRSxrQkFBa0I7WUFDckIsRUFBRSxFQUFFLHlCQUF5QjtTQUM5QixDQUFBO1FBU0QsY0FBUyxHQUFHLEVBQUUsQ0FBQTtRQUNKLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFBO0tBS2pEO0lBYkMsSUFBYSxJQUFJLENBQUMsS0FBZTtRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtRQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDM0MsQ0FBQztJQUNELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQTtJQUNuQixDQUFDO0lBSUQsT0FBTztRQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7SUFDL0MsQ0FBQzsrR0F6QlUscUJBQXFCO21HQUFyQixxQkFBcUIsc05DNUJsQyxteUNBb0NBLHlERGhCWSxZQUFZLGdPQUFFLGVBQWUsbU9BQUUsTUFBTSxrR0FFaEM7WUFDYixZQUFZLENBQUM7Z0JBQ1gsZUFBZTthQUNoQixDQUFDO1NBQ0g7OzRGQUVVLHFCQUFxQjtrQkFiakMsU0FBUzsrQkFDRSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxDQUFDLGNBQ3BDLElBQUksaUJBQ0Q7d0JBQ2IsWUFBWSxDQUFDOzRCQUNYLGVBQWU7eUJBQ2hCLENBQUM7cUJBQ0g7OEJBSVEsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFRTyxJQUFJO3NCQUFoQixLQUFLO2dCQVFJLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBEYXRhc2V0T25saW5lUmVzb3VyY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgTmdJY29uLCBwcm92aWRlSWNvbnMgfSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IGljb25vaXJEb3dubG9hZCB9IGZyb20gJ0BuZy1pY29ucy9pY29ub2lyJ1xuXG50eXBlIENhcmRTaXplID0gJ0wnIHwgJ00nIHwgJ1MnIHwgJ1hTJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1kb3dubG9hZC1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Rvd25sb2FkLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb3dubG9hZC1pdGVtLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgTmdJY29uXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdmlld1Byb3ZpZGVyczogW1xuICAgIHByb3ZpZGVJY29ucyh7XG4gICAgICBpY29ub2lyRG93bmxvYWQsXG4gICAgfSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERvd25sb2FkSXRlbUNvbXBvbmVudCB7XG4gIHByaXZhdGUgX3NpemU6ICdMJyB8ICdNJyB8ICdTJyB8ICdYUydcbiAgQElucHV0KCkgbGluazogRGF0YXNldE9ubGluZVJlc291cmNlXG4gIEBJbnB1dCgpIGNvbG9yOiBzdHJpbmdcbiAgQElucHV0KCkgZm9ybWF0OiBzdHJpbmdcbiAgQElucHV0KCkgaXNGcm9tQXBpOiBib29sZWFuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2l6ZUNsYXNzTWFwOiBSZWNvcmQ8Q2FyZFNpemUsIHN0cmluZz4gPSB7XG4gICAgTDogJ2duLXVpLWNhcmQtbCBweS0yIHB4LTUnLFxuICAgIE06ICdnbi11aS1jYXJkLW0gcHktMiBweC01JyxcbiAgICBTOiAnZ24tdWktY2FyZC1zIHAtNCcsXG4gICAgWFM6ICdnbi11aS1jYXJkLXhzIHB5LTIgcHgtNScsXG4gIH1cblxuICBASW5wdXQoKSBzZXQgc2l6ZSh2YWx1ZTogQ2FyZFNpemUpIHtcbiAgICB0aGlzLl9zaXplID0gdmFsdWVcbiAgICB0aGlzLmNhcmRDbGFzcyA9IHRoaXMuc2l6ZUNsYXNzTWFwW3ZhbHVlXVxuICB9XG4gIGdldCBzaXplKCk6ICdMJyB8ICdNJyB8ICdTJyB8ICdYUycge1xuICAgIHJldHVybiB0aGlzLl9zaXplXG4gIH1cbiAgY2FyZENsYXNzID0gJydcbiAgQE91dHB1dCgpIGV4cG9ydFVybCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpXG5cbiAgb3BlblVybCgpIHtcbiAgICB0aGlzLmV4cG9ydFVybC5lbWl0KHRoaXMubGluay51cmwudG9TdHJpbmcoKSlcbiAgfVxufVxuIiwiPGFcbiAgaHJlZj1cInt7IGxpbmsudXJsIH19XCJcbiAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgY2xhc3M9XCJncm91cCBmbGV4IGZsZXgtcm93IGp1c3RpZnktYmV0d2VlbiBjYXJkLXNoYWRvdyBjdXJzb3ItcG9pbnRlciByb3VuZGVkIG92ZXJmbG93LWhpZGRlblwiXG4gIHJlbD1cIm5vb3BlbmVyXCJcbiAgW25nQ2xhc3NdPVwiY2FyZENsYXNzXCJcbj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgPGRpdiBjbGFzcz1cImduLXVpLWNhcmQtdGl0bGVcIiBbdGl0bGVdPVwibGluay5kZXNjcmlwdGlvbiB8fCBsaW5rLm5hbWVcIj5cbiAgICAgIHt7IGxpbmsuZGVzY3JpcHRpb24gfHwgbGluay5uYW1lIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImduLXVpLWNhcmQtZGV0YWlsXCI+XG4gICAgICB7eyBsaW5rLm5hbWUgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtMiBpdGVtcy1jZW50ZXIgcHQtMVwiPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHgtMiBweS0xIHRleHQtMTMgZm9udC1tZWRpdW0gbGVhZGluZy1ub25lIHRleHQtd2hpdGUgcm91bmRlZCB0cmFuc2l0aW9uLW9wYWNpdHkgb3BhY2l0eS03MCBncm91cC1ob3ZlcjpvcGFjaXR5LTEwMFwiXG4gICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImNvbG9yXCJcbiAgICAgICAgZGF0YS1jeT1cImRvd25sb2FkLWZvcm1hdFwiXG4gICAgICAgID57eyBmb3JtYXQgfHwgKCdkb3dubG9hZHMuZm9ybWF0LnVua25vd24nIHwgdHJhbnNsYXRlKSB9fTwvc3BhblxuICAgICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWdyYXktODAwIHRleHQteHNcIiAqbmdJZj1cImlzRnJvbUFwaVwiIHRyYW5zbGF0ZT1cIlwiXG4gICAgICAgID5kYXRhaHViLnNlYXJjaC5maWx0ZXIuZ2VuZXJhdGVkQnlBUEk8L3NwYW5cbiAgICAgID5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4XCIgW25nQ2xhc3NdPVwic2l6ZSA9PT0gJ1MnID8gJ2l0ZW1zLWVuZCcgOiAnaXRlbXMtY2VudGVyJ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJnbi11aS1jYXJkLWljb25cIj5cbiAgICAgIDxuZy1pY29uXG4gICAgICAgIGNsYXNzPVwiaW5saW5lLWJsb2NrIGNhcmQtaWNvbiBhbGlnbi1taWRkbGVcIlxuICAgICAgICBuYW1lPVwiaWNvbm9pckRvd25sb2FkXCJcbiAgICAgID5cbiAgICAgIDwvbmctaWNvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2E+XG4iXX0=
@@ -94,7 +94,7 @@ export class DownloadsListComponent {
94
94
  link.accessServiceProtocol === 'ogcFeatures'));
95
95
  }
96
96
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DownloadsListComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
97
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DownloadsListComponent, isStandalone: true, selector: "gn-ui-downloads-list", inputs: { links: "links" }, ngImport: i0, template: "<div\n class=\"flex flex-wrap justify-between mt-8 mb-6 sm:mt-12 sm:mb-2\"\n *ngIf=\"links && links.length > 0\"\n>\n <p\n class=\"font-title text-[28px] text-title font-medium mr-4 pb-4 text-center sm:text-left\"\n translate\n >\n record.metadata.download\n </p>\n <div\n class=\"flex flex-wrap justify-start sm:justify-end sm:pb-4\"\n data-cy=\"download-format-filters\"\n >\n <gn-ui-button\n class=\"m-1 format-filter\"\n [extraClass]=\"\n '!px-[12px] !py-[8px] !text-[15px]' +\n (isFilterActive(format) ? ' opacity-100' : ' opacity-50')\n \"\n (buttonClick)=\"toggleFilterFormat(format)\"\n [attr.data-format]=\"format\"\n *ngFor=\"let format of visibleFormats\"\n >\n {{ getFilterFormatTitle(format) }}\n </gn-ui-button>\n </div>\n</div>\n<div class=\"mb-2 sm:mb-3\" *ngFor=\"let link of filteredLinks\">\n <gn-ui-download-item\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n ></gn-ui-download-item>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: DownloadItemComponent, selector: "gn-ui-download-item", inputs: ["link", "color", "format", "isFromApi"], outputs: ["exportUrl"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
97
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DownloadsListComponent, isStandalone: true, selector: "gn-ui-downloads-list", inputs: { links: "links" }, ngImport: i0, template: "<div\n class=\"flex flex-wrap justify-between items-center pb-4\"\n *ngIf=\"links && links.length > 0\"\n>\n <div\n class=\"font-title text-xl text-title font-medium mr-4 text-center sm:text-left\"\n translate\n >\n record.metadata.download\n </div>\n <div\n class=\"flex flex-wrap justify-start sm:justify-end\"\n data-cy=\"download-format-filters\"\n >\n <gn-ui-button\n class=\"m-1 format-filter\"\n [extraClass]=\"\n '!px-[12px] !py-[8px] !text-[15px]' +\n (isFilterActive(format) ? ' opacity-100' : ' opacity-60')\n \"\n (buttonClick)=\"toggleFilterFormat(format)\"\n [attr.data-format]=\"format\"\n *ngFor=\"let format of visibleFormats\"\n >\n {{ getFilterFormatTitle(format) }}\n </gn-ui-button>\n </div>\n</div>\n<div class=\"mb-2 sm:mb-3\" *ngFor=\"let link of filteredLinks\">\n <gn-ui-download-item\n size=\"L\"\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n ></gn-ui-download-item>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: DownloadItemComponent, selector: "gn-ui-download-item", inputs: ["link", "color", "format", "isFromApi", "size"], outputs: ["exportUrl"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
98
98
  }
99
99
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DownloadsListComponent, decorators: [{
100
100
  type: Component,
@@ -103,8 +103,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
103
103
  ButtonComponent,
104
104
  DownloadItemComponent,
105
105
  TranslateModule,
106
- ], template: "<div\n class=\"flex flex-wrap justify-between mt-8 mb-6 sm:mt-12 sm:mb-2\"\n *ngIf=\"links && links.length > 0\"\n>\n <p\n class=\"font-title text-[28px] text-title font-medium mr-4 pb-4 text-center sm:text-left\"\n translate\n >\n record.metadata.download\n </p>\n <div\n class=\"flex flex-wrap justify-start sm:justify-end sm:pb-4\"\n data-cy=\"download-format-filters\"\n >\n <gn-ui-button\n class=\"m-1 format-filter\"\n [extraClass]=\"\n '!px-[12px] !py-[8px] !text-[15px]' +\n (isFilterActive(format) ? ' opacity-100' : ' opacity-50')\n \"\n (buttonClick)=\"toggleFilterFormat(format)\"\n [attr.data-format]=\"format\"\n *ngFor=\"let format of visibleFormats\"\n >\n {{ getFilterFormatTitle(format) }}\n </gn-ui-button>\n </div>\n</div>\n<div class=\"mb-2 sm:mb-3\" *ngFor=\"let link of filteredLinks\">\n <gn-ui-download-item\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n ></gn-ui-download-item>\n</div>\n" }]
106
+ ], template: "<div\n class=\"flex flex-wrap justify-between items-center pb-4\"\n *ngIf=\"links && links.length > 0\"\n>\n <div\n class=\"font-title text-xl text-title font-medium mr-4 text-center sm:text-left\"\n translate\n >\n record.metadata.download\n </div>\n <div\n class=\"flex flex-wrap justify-start sm:justify-end\"\n data-cy=\"download-format-filters\"\n >\n <gn-ui-button\n class=\"m-1 format-filter\"\n [extraClass]=\"\n '!px-[12px] !py-[8px] !text-[15px]' +\n (isFilterActive(format) ? ' opacity-100' : ' opacity-60')\n \"\n (buttonClick)=\"toggleFilterFormat(format)\"\n [attr.data-format]=\"format\"\n *ngFor=\"let format of visibleFormats\"\n >\n {{ getFilterFormatTitle(format) }}\n </gn-ui-button>\n </div>\n</div>\n<div class=\"mb-2 sm:mb-3\" *ngFor=\"let link of filteredLinks\">\n <gn-ui-download-item\n size=\"L\"\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n ></gn-ui-download-item>\n</div>\n" }]
107
107
  }], ctorParameters: () => [{ type: i1.TranslateService }], propDecorators: { links: [{
108
108
  type: Input
109
109
  }] } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWRzLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMvbGliL2Rvd25sb2Fkcy1saXN0L2Rvd25sb2Fkcy1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9kb3dubG9hZHMtbGlzdC9kb3dubG9hZHMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDdkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0NBQXdDLENBQUE7QUFFckYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUN0RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQTs7OztBQUVoRixNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtBQUNuQyxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBQTtBQUV0QyxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFVLENBQUE7QUFnQmhGLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFJdEQsd0JBQW1CLEdBQW1CLENBQUMsS0FBSyxD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QTtJQUM1QixDQUFDO0lBRUQsWUFBWSxDQUFDLElBQWlDO1FBQzVDLE9BQU8sYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQzNDLENBQUM7SUFFRCxTQUFTLENBQUMsSUFBaUM7UUFDekMsT0FBTyxDQUNMLElBQUksQ0FBQyxJQUFJLEtBQUssVUFBVTtZQUN4QixDQUFDLElBQUksQ0FBQyxxQkFBcUIsS0FBSyxLQUFLO2dCQUNuQyxJQUFJLENBQUMscUJBQXFCLEtBQUssYUFBYSxDQUFDLENBQ2hELENBQUE7SUFDSCxDQUFDOytHQXBIVSxzQkFBc0I7bUdBQXRCLHNCQUFzQiw0R0M1Qm5DLDZqQ0FvQ0EseUREZEksWUFBWSxnUUFDWixlQUFlLCtIQUNmLHFCQUFxQix5SUFDckIsZUFBZTs7NEZBR04sc0JBQXNCO2tCQWJsQyxTQUFTOytCQUNFLHNCQUFzQixtQkFHZix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YscUJBQXFCO3dCQUNyQixlQUFlO3FCQUNoQjtxRkFLUSxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHsgZ2V0QmFkZ2VDb2xvciwgZ2V0RmlsZUZvcm1hdCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjJ1xuaW1wb3J0IHsgRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgRG93bmxvYWRJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vZG93bmxvYWQtaXRlbS9kb3dubG9hZC1pdGVtLmNvbXBvbmVudCdcblxubWFya2VyKCdkYXRhaHViLnNlYXJjaC5maWx0ZXIuYWxsJylcbm1hcmtlcignZGF0YWh1Yi5zZWFyY2guZmlsdGVyLm90aGVycycpXG5cbmNvbnN0IEZJTFRFUl9GT1JNQVRTID0gWydhbGwnLCAnY3N2JywgJ2V4Y2VsJywgJ2pzb24nLCAnc2hwJywgJ290aGVycyddIGFzIGNvbnN0XG50eXBlIEZpbHRlckZvcm1hdCA9ICh0eXBlb2YgRklMVEVSX0ZPUk1BVFMpW251bWJlcl1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZG93bmxvYWRzLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZG93bmxvYWRzLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb3dubG9hZHMtbGlzdC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBEb3dubG9hZEl0ZW1Db21wb25lbnQsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEb3dubG9hZHNMaXN0Q29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gIEBJbnB1dCgpIGxpbmtzOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb25bXVxuXG4gIGFjdGl2ZUZpbHRlckZvcm1hdHM6IEZpbHRlckZvcm1hdFtdID0gWydhbGwnXVxuXG4gIHByaXZhdGUgcmVtb3ZlRHVwbGljYXRlRm9ybWF0cyhcbiAgICBsaW5rczogRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uW11cbiAgKTogRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uW10ge1xuICAgIGNvbnN0IHByZWZlcnJlZExpbmtzID0gbmV3IE1hcDxzdHJpbmcsIERhdGFzZXREb3dubG9hZERpc3RyaWJ1dGlvbj4oKVxuXG4gICAgbGlua3MuZm9yRWFjaCgobGluaykgPT4ge1xuICAgICAgY29uc3QgZm9ybWF0ID0gZ2V0RmlsZUZvcm1hdChsaW5rKVxuICAgICAgY29uc3Qgd2l0aG91dE5hbWVTcGFjZSA9IChsaW5rLm5hbWUgfHwgbGluay5kZXNjcmlwdGlvbiB8fCAnJykucmVwbGFjZShcbiAgICAgICAgL14uKj86LyxcbiAgICAgICAgJydcbiAgICAgIClcbiAgICAgIGNvbnN0IHVuaXF1ZUtleSA9IGAke2Zvcm1hdH0tJHt3aXRob3V0TmFtZVNwYWNlfWBcbiAgICAgIGlmICghcHJlZmVycmVkTGlua3MuaGFzKHVuaXF1ZUtleSkpIHtcbiAgICAgICAgcHJlZmVycmVkTGlua3Muc2V0KHVuaXF1ZUtleSwgbGluaylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nTGluayA9IHByZWZlcnJlZExpbmtzLmdldCh1bmlxdWVLZXkpXG4gICAgICAgIGlmIChcbiAgICAgICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ29nY0ZlYXR1cmVzJyAmJlxuICAgICAgICAgIGV4aXN0aW5nTGluaz8uYWNjZXNzU2VydmljZVByb3RvY29sICE9PSAnb2djRmVhdHVyZXMnXG4gICAgICAgICkge1xuICAgICAgICAgIHByZWZlcnJlZExpbmtzLnNldCh1bmlxdWVLZXksIGxpbmspXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuXG4gICAgcmV0dXJuIEFycmF5LmZyb20ocHJlZmVycmVkTGlua3MudmFsdWVzKCkpXG4gIH1cblxuICBnZXQgZmlsdGVyZWRMaW5rcygpOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb25bXSB7XG4gICAgY29uc3QgZmlsdGVyZWRCeUZvcm1hdCA9IHRoaXMubGlua3MuZmlsdGVyKChsaW5rKSA9PlxuICAgICAgdGhpcy5hY3RpdmVGaWx0ZXJGb3JtYXRzLnNvbWUoKGZvcm1hdCkgPT5cbiAgICAgICAgdGhpcy5pc0xpbmtPZkZvcm1hdChsaW5rLCBmb3JtYXQpXG4gICAgICApXG4gICAgKVxuICAgIHJldHVybiB0aGlzLnJlbW92ZUR1cGxpY2F0ZUZvcm1hdHMoZmlsdGVyZWRCeUZvcm1hdClcbiAgfVxuXG4gIGdldCB2aXNpYmxlRm9ybWF0cygpOiBGaWx0ZXJGb3JtYXRbXSB7XG4gICAgcmV0dXJuIEZJTFRFUl9GT1JNQVRTLmZpbHRlcigoZm9ybWF0KSA9PlxuICAgICAgdGhpcy5saW5rcy5zb21lKChsaW5rKSA9PiB0aGlzLmlzTGlua09mRm9ybWF0KGxpbmssIGZvcm1hdCkpXG4gICAgKVxuICB9XG5cbiAgdG9nZ2xlRmlsdGVyRm9ybWF0KGZvcm1hdDogRmlsdGVyRm9ybWF0KTogdm9pZCB7XG4gICAgaWYgKGZvcm1hdCA9PT0gJ2FsbCcpIHtcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyRm9ybWF0cyA9IFsnYWxsJ11cbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAodGhpcy5pc0ZpbHRlckFjdGl2ZShmb3JtYXQpKSB7XG4gICAgICB0aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMgPSB0aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMuZmlsdGVyKFxuICAgICAgICAoZjogc3RyaW5nKSA9PiBmb3JtYXQgIT09IGZcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hY3RpdmVGaWx0ZXJGb3JtYXRzID0gW1xuICAgICAgICAuLi50aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMuZmlsdGVyKChmKSA9PiBmICE9PSAnYWxsJyksXG4gICAgICAgIGZvcm1hdCxcbiAgICAgIF1cbiAgICB9XG4gICAgaWYgKHRoaXMuYWN0aXZlRmlsdGVyRm9ybWF0cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyRm9ybWF0cyA9IFsnYWxsJ11cbiAgICB9XG4gIH1cblxuICBpc0ZpbHRlckFjdGl2ZShmaWx0ZXI6IEZpbHRlckZvcm1hdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMuaW5jbHVkZXMoZmlsdGVyKVxuICB9XG5cbiAgZ2V0RmlsdGVyRm9ybWF0VGl0bGUoZm9ybWF0OiBGaWx0ZXJGb3JtYXQpIHtcbiAgICBpZiAoZm9ybWF0ID09PSAnYWxsJyB8fCBmb3JtYXQgPT09ICdvdGhlcnMnKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoYGRhdGFodWIuc2VhcmNoLmZpbHRlci4ke2Zvcm1hdH1gKVxuICAgIH1cbiAgICByZXR1cm4gZm9ybWF0XG4gIH1cblxuICBpc0xpbmtPZkZvcm1hdChcbiAgICBsaW5rOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24sXG4gICAgZm9ybWF0OiBGaWx0ZXJGb3JtYXRcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKGZvcm1hdCA9PT0gJ2FsbCcpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIGlmIChnZXRGaWxlRm9ybWF0KGxpbmspID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gZm9ybWF0ID09PSAnb3RoZXJzJ1xuICAgIH1cbiAgICBpZiAoZm9ybWF0ID09PSAnb3RoZXJzJykge1xuICAgICAgY29uc3Qga25vd25Gb3JtYXRzID0gRklMVEVSX0ZPUk1BVFMuZmlsdGVyKFxuICAgICAgICAoZm9ybWF0KSA9PiBmb3JtYXQgIT09ICdhbGwnICYmIGZvcm1hdCAhPT0gJ290aGVycydcbiAgICAgIClcbiAgICAgIHJldHVybiBrbm93bkZvcm1hdHMuZXZlcnkoXG4gICAgICAgIChrbm93bkZvcm1hdCkgPT4gIWdldEZpbGVGb3JtYXQobGluaykuaW5jbHVkZXMoa25vd25Gb3JtYXQpXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiBnZXRGaWxlRm9ybWF0KGxpbmspLmluY2x1ZGVzKGZvcm1hdClcbiAgfVxuXG4gIGdldExpbmtGb3JtYXQobGluazogRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uKSB7XG4gICAgcmV0dXJuIGdldEZpbGVGb3JtYXQobGluaylcbiAgfVxuXG4gIGdldExpbmtDb2xvcihsaW5rOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24pIHtcbiAgICByZXR1cm4gZ2V0QmFkZ2VDb2xvcihnZXRGaWxlRm9ybWF0KGxpbmspKVxuICB9XG5cbiAgaXNGcm9tQXBpKGxpbms6IERhdGFzZXREb3dubG9hZERpc3RyaWJ1dGlvbikge1xuICAgIHJldHVybiAoXG4gICAgICBsaW5rLnR5cGUgPT09ICdkb3dubG9hZCcgJiZcbiAgICAgIChsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3dmcycgfHxcbiAgICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdvZ2NGZWF0dXJlcycpXG4gICAgKVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiZmxleCBmbGV4LXdyYXAganVzdGlmeS1iZXR3ZWVuIG10LTggbWItNiBzbTptdC0xMiBzbTptYi0yXCJcbiAgKm5nSWY9XCJsaW5rcyAmJiBsaW5rcy5sZW5ndGggPiAwXCJcbj5cbiAgPHBcbiAgICBjbGFzcz1cImZvbnQtdGl0bGUgdGV4dC1bMjhweF0gdGV4dC10aXRsZSBmb250LW1lZGl1bSBtci00IHBiLTQgdGV4dC1jZW50ZXIgc206dGV4dC1sZWZ0XCJcbiAgICB0cmFuc2xhdGVcbiAgPlxuICAgIHJlY29yZC5tZXRhZGF0YS5kb3dubG9hZFxuICA8L3A+XG4gIDxkaXZcbiAgICBjbGFzcz1cImZsZXggZmxleC13cmFwIGp1c3RpZnktc3RhcnQgc206anVzdGlmeS1lbmQgc206cGItNFwiXG4gICAgZGF0YS1jeT1cImRvd25sb2FkLWZvcm1hdC1maWx0ZXJzXCJcbiAgPlxuICAgIDxnbi11aS1idXR0b25cbiAgICAgIGNsYXNzPVwibS0xIGZvcm1hdC1maWx0ZXJcIlxuICAgICAgW2V4dHJhQ2xhc3NdPVwiXG4gICAgICAgICchcHgtWzEycHhdICFweS1bOHB4XSAhdGV4dC1bMTVweF0nICtcbiAgICAgICAgKGlzRmlsdGVyQWN0aXZlKGZvcm1hdCkgPyAnIG9wYWNpdHktMTAwJyA6ICcgb3BhY2l0eS01MCcpXG4gICAgICBcIlxuICAgICAgKGJ1dHRvbkNsaWNrKT1cInRvZ2dsZUZpbHRlckZvcm1hdChmb3JtYXQpXCJcbiAgICAgIFthdHRyLmRhdGEtZm9ybWF0XT1cImZvcm1hdFwiXG4gICAgICAqbmdGb3I9XCJsZXQgZm9ybWF0IG9mIHZpc2libGVGb3JtYXRzXCJcbiAgICA+XG4gICAgICB7eyBnZXRGaWx0ZXJGb3JtYXRUaXRsZShmb3JtYXQpIH19XG4gICAgPC9nbi11aS1idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwibWItMiBzbTptYi0zXCIgKm5nRm9yPVwibGV0IGxpbmsgb2YgZmlsdGVyZWRMaW5rc1wiPlxuICA8Z24tdWktZG93bmxvYWQtaXRlbVxuICAgIFtsaW5rXT1cImxpbmtcIlxuICAgIFtjb2xvcl09XCJnZXRMaW5rQ29sb3IobGluaylcIlxuICAgIFtmb3JtYXRdPVwiZ2V0TGlua0Zvcm1hdChsaW5rKVwiXG4gICAgW2lzRnJvbUFwaV09XCJpc0Zyb21BcGkobGluaylcIlxuICA+PC9nbi11aS1kb3dubG9hZC1pdGVtPlxuPC9kaXY+XG4iXX0=
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWRzLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMvbGliL2Rvd25sb2Fkcy1saXN0L2Rvd25sb2Fkcy1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9kb3dubG9hZHMtbGlzdC9kb3dubG9hZHMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDdkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0NBQXdDLENBQUE7QUFFckYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUN0RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQTs7OztBQUVoRixNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtBQUNuQyxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBQTtBQUV0QyxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFVLENBQUE7QUFnQmhGLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFJdEQsd0JBQW1CLEdBQW1CLENBQUMsS0FBSyxD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QTtJQUM1QixDQUFDO0lBRUQsWUFBWSxDQUFDLElBQWlDO1FBQzVDLE9BQU8sYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQzNDLENBQUM7SUFFRCxTQUFTLENBQUMsSUFBaUM7UUFDekMsT0FBTyxDQUNMLElBQUksQ0FBQyxJQUFJLEtBQUssVUFBVTtZQUN4QixDQUFDLElBQUksQ0FBQyxxQkFBcUIsS0FBSyxLQUFLO2dCQUNuQyxJQUFJLENBQUMscUJBQXFCLEtBQUssYUFBYSxDQUFDLENBQ2hELENBQUE7SUFDSCxDQUFDOytHQXBIVSxzQkFBc0I7bUdBQXRCLHNCQUFzQiw0R0M1Qm5DLHVqQ0FxQ0EseUREZkksWUFBWSxnUUFDWixlQUFlLCtIQUNmLHFCQUFxQixpSkFDckIsZUFBZTs7NEZBR04sc0JBQXNCO2tCQWJsQyxTQUFTOytCQUNFLHNCQUFzQixtQkFHZix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YscUJBQXFCO3dCQUNyQixlQUFlO3FCQUNoQjtxRkFLUSxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHsgZ2V0QmFkZ2VDb2xvciwgZ2V0RmlsZUZvcm1hdCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjJ1xuaW1wb3J0IHsgRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgRG93bmxvYWRJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vZG93bmxvYWQtaXRlbS9kb3dubG9hZC1pdGVtLmNvbXBvbmVudCdcblxubWFya2VyKCdkYXRhaHViLnNlYXJjaC5maWx0ZXIuYWxsJylcbm1hcmtlcignZGF0YWh1Yi5zZWFyY2guZmlsdGVyLm90aGVycycpXG5cbmNvbnN0IEZJTFRFUl9GT1JNQVRTID0gWydhbGwnLCAnY3N2JywgJ2V4Y2VsJywgJ2pzb24nLCAnc2hwJywgJ290aGVycyddIGFzIGNvbnN0XG50eXBlIEZpbHRlckZvcm1hdCA9ICh0eXBlb2YgRklMVEVSX0ZPUk1BVFMpW251bWJlcl1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZG93bmxvYWRzLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZG93bmxvYWRzLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb3dubG9hZHMtbGlzdC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBEb3dubG9hZEl0ZW1Db21wb25lbnQsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEb3dubG9hZHNMaXN0Q29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gIEBJbnB1dCgpIGxpbmtzOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb25bXVxuXG4gIGFjdGl2ZUZpbHRlckZvcm1hdHM6IEZpbHRlckZvcm1hdFtdID0gWydhbGwnXVxuXG4gIHByaXZhdGUgcmVtb3ZlRHVwbGljYXRlRm9ybWF0cyhcbiAgICBsaW5rczogRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uW11cbiAgKTogRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uW10ge1xuICAgIGNvbnN0IHByZWZlcnJlZExpbmtzID0gbmV3IE1hcDxzdHJpbmcsIERhdGFzZXREb3dubG9hZERpc3RyaWJ1dGlvbj4oKVxuXG4gICAgbGlua3MuZm9yRWFjaCgobGluaykgPT4ge1xuICAgICAgY29uc3QgZm9ybWF0ID0gZ2V0RmlsZUZvcm1hdChsaW5rKVxuICAgICAgY29uc3Qgd2l0aG91dE5hbWVTcGFjZSA9IChsaW5rLm5hbWUgfHwgbGluay5kZXNjcmlwdGlvbiB8fCAnJykucmVwbGFjZShcbiAgICAgICAgL14uKj86LyxcbiAgICAgICAgJydcbiAgICAgIClcbiAgICAgIGNvbnN0IHVuaXF1ZUtleSA9IGAke2Zvcm1hdH0tJHt3aXRob3V0TmFtZVNwYWNlfWBcbiAgICAgIGlmICghcHJlZmVycmVkTGlua3MuaGFzKHVuaXF1ZUtleSkpIHtcbiAgICAgICAgcHJlZmVycmVkTGlua3Muc2V0KHVuaXF1ZUtleSwgbGluaylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nTGluayA9IHByZWZlcnJlZExpbmtzLmdldCh1bmlxdWVLZXkpXG4gICAgICAgIGlmIChcbiAgICAgICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ29nY0ZlYXR1cmVzJyAmJlxuICAgICAgICAgIGV4aXN0aW5nTGluaz8uYWNjZXNzU2VydmljZVByb3RvY29sICE9PSAnb2djRmVhdHVyZXMnXG4gICAgICAgICkge1xuICAgICAgICAgIHByZWZlcnJlZExpbmtzLnNldCh1bmlxdWVLZXksIGxpbmspXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuXG4gICAgcmV0dXJuIEFycmF5LmZyb20ocHJlZmVycmVkTGlua3MudmFsdWVzKCkpXG4gIH1cblxuICBnZXQgZmlsdGVyZWRMaW5rcygpOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb25bXSB7XG4gICAgY29uc3QgZmlsdGVyZWRCeUZvcm1hdCA9IHRoaXMubGlua3MuZmlsdGVyKChsaW5rKSA9PlxuICAgICAgdGhpcy5hY3RpdmVGaWx0ZXJGb3JtYXRzLnNvbWUoKGZvcm1hdCkgPT5cbiAgICAgICAgdGhpcy5pc0xpbmtPZkZvcm1hdChsaW5rLCBmb3JtYXQpXG4gICAgICApXG4gICAgKVxuICAgIHJldHVybiB0aGlzLnJlbW92ZUR1cGxpY2F0ZUZvcm1hdHMoZmlsdGVyZWRCeUZvcm1hdClcbiAgfVxuXG4gIGdldCB2aXNpYmxlRm9ybWF0cygpOiBGaWx0ZXJGb3JtYXRbXSB7XG4gICAgcmV0dXJuIEZJTFRFUl9GT1JNQVRTLmZpbHRlcigoZm9ybWF0KSA9PlxuICAgICAgdGhpcy5saW5rcy5zb21lKChsaW5rKSA9PiB0aGlzLmlzTGlua09mRm9ybWF0KGxpbmssIGZvcm1hdCkpXG4gICAgKVxuICB9XG5cbiAgdG9nZ2xlRmlsdGVyRm9ybWF0KGZvcm1hdDogRmlsdGVyRm9ybWF0KTogdm9pZCB7XG4gICAgaWYgKGZvcm1hdCA9PT0gJ2FsbCcpIHtcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyRm9ybWF0cyA9IFsnYWxsJ11cbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAodGhpcy5pc0ZpbHRlckFjdGl2ZShmb3JtYXQpKSB7XG4gICAgICB0aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMgPSB0aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMuZmlsdGVyKFxuICAgICAgICAoZjogc3RyaW5nKSA9PiBmb3JtYXQgIT09IGZcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hY3RpdmVGaWx0ZXJGb3JtYXRzID0gW1xuICAgICAgICAuLi50aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMuZmlsdGVyKChmKSA9PiBmICE9PSAnYWxsJyksXG4gICAgICAgIGZvcm1hdCxcbiAgICAgIF1cbiAgICB9XG4gICAgaWYgKHRoaXMuYWN0aXZlRmlsdGVyRm9ybWF0cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyRm9ybWF0cyA9IFsnYWxsJ11cbiAgICB9XG4gIH1cblxuICBpc0ZpbHRlckFjdGl2ZShmaWx0ZXI6IEZpbHRlckZvcm1hdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMuaW5jbHVkZXMoZmlsdGVyKVxuICB9XG5cbiAgZ2V0RmlsdGVyRm9ybWF0VGl0bGUoZm9ybWF0OiBGaWx0ZXJGb3JtYXQpIHtcbiAgICBpZiAoZm9ybWF0ID09PSAnYWxsJyB8fCBmb3JtYXQgPT09ICdvdGhlcnMnKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoYGRhdGFodWIuc2VhcmNoLmZpbHRlci4ke2Zvcm1hdH1gKVxuICAgIH1cbiAgICByZXR1cm4gZm9ybWF0XG4gIH1cblxuICBpc0xpbmtPZkZvcm1hdChcbiAgICBsaW5rOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24sXG4gICAgZm9ybWF0OiBGaWx0ZXJGb3JtYXRcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKGZvcm1hdCA9PT0gJ2FsbCcpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIGlmIChnZXRGaWxlRm9ybWF0KGxpbmspID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gZm9ybWF0ID09PSAnb3RoZXJzJ1xuICAgIH1cbiAgICBpZiAoZm9ybWF0ID09PSAnb3RoZXJzJykge1xuICAgICAgY29uc3Qga25vd25Gb3JtYXRzID0gRklMVEVSX0ZPUk1BVFMuZmlsdGVyKFxuICAgICAgICAoZm9ybWF0KSA9PiBmb3JtYXQgIT09ICdhbGwnICYmIGZvcm1hdCAhPT0gJ290aGVycydcbiAgICAgIClcbiAgICAgIHJldHVybiBrbm93bkZvcm1hdHMuZXZlcnkoXG4gICAgICAgIChrbm93bkZvcm1hdCkgPT4gIWdldEZpbGVGb3JtYXQobGluaykuaW5jbHVkZXMoa25vd25Gb3JtYXQpXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiBnZXRGaWxlRm9ybWF0KGxpbmspLmluY2x1ZGVzKGZvcm1hdClcbiAgfVxuXG4gIGdldExpbmtGb3JtYXQobGluazogRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uKSB7XG4gICAgcmV0dXJuIGdldEZpbGVGb3JtYXQobGluaylcbiAgfVxuXG4gIGdldExpbmtDb2xvcihsaW5rOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24pIHtcbiAgICByZXR1cm4gZ2V0QmFkZ2VDb2xvcihnZXRGaWxlRm9ybWF0KGxpbmspKVxuICB9XG5cbiAgaXNGcm9tQXBpKGxpbms6IERhdGFzZXREb3dubG9hZERpc3RyaWJ1dGlvbikge1xuICAgIHJldHVybiAoXG4gICAgICBsaW5rLnR5cGUgPT09ICdkb3dubG9hZCcgJiZcbiAgICAgIChsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3dmcycgfHxcbiAgICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdvZ2NGZWF0dXJlcycpXG4gICAgKVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiZmxleCBmbGV4LXdyYXAganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBwYi00XCJcbiAgKm5nSWY9XCJsaW5rcyAmJiBsaW5rcy5sZW5ndGggPiAwXCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZm9udC10aXRsZSB0ZXh0LXhsIHRleHQtdGl0bGUgZm9udC1tZWRpdW0gbXItNCB0ZXh0LWNlbnRlciBzbTp0ZXh0LWxlZnRcIlxuICAgIHRyYW5zbGF0ZVxuICA+XG4gICAgcmVjb3JkLm1ldGFkYXRhLmRvd25sb2FkXG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBqdXN0aWZ5LXN0YXJ0IHNtOmp1c3RpZnktZW5kXCJcbiAgICBkYXRhLWN5PVwiZG93bmxvYWQtZm9ybWF0LWZpbHRlcnNcIlxuICA+XG4gICAgPGduLXVpLWJ1dHRvblxuICAgICAgY2xhc3M9XCJtLTEgZm9ybWF0LWZpbHRlclwiXG4gICAgICBbZXh0cmFDbGFzc109XCJcbiAgICAgICAgJyFweC1bMTJweF0gIXB5LVs4cHhdICF0ZXh0LVsxNXB4XScgK1xuICAgICAgICAoaXNGaWx0ZXJBY3RpdmUoZm9ybWF0KSA/ICcgb3BhY2l0eS0xMDAnIDogJyBvcGFjaXR5LTYwJylcbiAgICAgIFwiXG4gICAgICAoYnV0dG9uQ2xpY2spPVwidG9nZ2xlRmlsdGVyRm9ybWF0KGZvcm1hdClcIlxuICAgICAgW2F0dHIuZGF0YS1mb3JtYXRdPVwiZm9ybWF0XCJcbiAgICAgICpuZ0Zvcj1cImxldCBmb3JtYXQgb2YgdmlzaWJsZUZvcm1hdHNcIlxuICAgID5cbiAgICAgIHt7IGdldEZpbHRlckZvcm1hdFRpdGxlKGZvcm1hdCkgfX1cbiAgICA8L2duLXVpLWJ1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJtYi0yIHNtOm1iLTNcIiAqbmdGb3I9XCJsZXQgbGluayBvZiBmaWx0ZXJlZExpbmtzXCI+XG4gIDxnbi11aS1kb3dubG9hZC1pdGVtXG4gICAgc2l6ZT1cIkxcIlxuICAgIFtsaW5rXT1cImxpbmtcIlxuICAgIFtjb2xvcl09XCJnZXRMaW5rQ29sb3IobGluaylcIlxuICAgIFtmb3JtYXRdPVwiZ2V0TGlua0Zvcm1hdChsaW5rKVwiXG4gICAgW2lzRnJvbUFwaV09XCJpc0Zyb21BcGkobGluaylcIlxuICA+PC9nbi11aS1kb3dubG9hZC1pdGVtPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,163 @@
1
+ import { Component, Input, TemplateRef, Output, EventEmitter, ElementRef, } from '@angular/core';
2
+ import { NgClass, NgIf, NgTemplateOutlet } from '@angular/common';
3
+ import { MarkdownParserComponent } from '../markdown-parser/markdown-parser.component';
4
+ import { MetadataQualityComponent } from '../metadata-quality/metadata-quality.component';
5
+ import { ThumbnailComponent } from '../thumbnail/thumbnail.component';
6
+ import { propagateToDocumentOnly, removeWhitespace, stripHtml, } from '../../../../../../libs/util/shared/src';
7
+ import { NgIconComponent, provideIcons, provideNgIconsConfig, } from '@ng-icons/core';
8
+ import { matLocationSearchingOutline, matEmailOutline, matPhoneOutline, matLocationOnOutline, } from '@ng-icons/material-icons/outline';
9
+ import { matCode } from '@ng-icons/material-icons/baseline';
10
+ import { iconoirDatabase, iconoirMap, iconoirInternet } from '@ng-icons/iconoir';
11
+ import { TranslateModule } from '@ngx-translate/core';
12
+ import { marker } from '@biesbjerg/ngx-translate-extract-marker';
13
+ import { fromEvent, Subscription } from 'rxjs';
14
+ import * as i0 from "@angular/core";
15
+ import * as i1 from "@ngx-translate/core";
16
+ marker('record.kind.data');
17
+ marker('record.kind.reuse');
18
+ marker('record.kind.service');
19
+ export class InternalLinkCardComponent {
20
+ set size(value) {
21
+ this._size = value;
22
+ this.cardClass = this.sizeClassMap[value] || '';
23
+ this.thumbnailContainerClass = this.thumbnailSizeClassMap[value] || 'hidden';
24
+ }
25
+ get size() {
26
+ return this._size;
27
+ }
28
+ constructor(elementRef) {
29
+ this.elementRef = elementRef;
30
+ this.linkHref = null;
31
+ this.mdSelect = new EventEmitter();
32
+ this.subscription = new Subscription();
33
+ this.cardClass = '';
34
+ this.thumbnailContainerClass = '';
35
+ this._size = 'M';
36
+ this.sizeClassMap = {
37
+ L: 'min-h-[190px] md:w-[992px] py-3 px-3 flex items-start gap-5',
38
+ M: 'min-h-[140px] md:w-[570px] py-3 px-3 flex items-start gap-4',
39
+ S: 'min-h-[220px] md:w-[370px] py-3 px-3 flex gap-4',
40
+ XS: 'min-h-[108px] md:w-[570px] py-3 px-3 flex gap-4',
41
+ };
42
+ this.thumbnailSizeClassMap = {
43
+ L: 'w-[190px] h-[180px] rounded-lg overflow-hidden shrink-0',
44
+ M: 'w-[110px] h-[140px] rounded-lg overflow-hidden shrink-0',
45
+ S: 'hidden',
46
+ XS: 'hidden',
47
+ };
48
+ this.titleClassMap = {
49
+ L: 'text-xl line-clamp-2',
50
+ M: 'text-base line-clamp-2',
51
+ S: 'text-base line-clamp-3',
52
+ XS: 'text-base mt-3 line-clamp-2',
53
+ };
54
+ }
55
+ ngOnInit() {
56
+ this.abstract = removeWhitespace(stripHtml(this.record?.abstract));
57
+ this.subscription.add(fromEvent(this.elementRef.nativeElement, 'click').subscribe((event) => {
58
+ event.preventDefault();
59
+ propagateToDocumentOnly(event);
60
+ this.mdSelect.emit(this.record);
61
+ }));
62
+ }
63
+ get organization() {
64
+ return this.record.ownerOrganization;
65
+ }
66
+ get contacts() {
67
+ return ((this.record.kind === 'dataset'
68
+ ? this.record.contactsForResource
69
+ : this.record.contacts) || []);
70
+ }
71
+ getTitleClass() {
72
+ return (this.titleClassMap[this._size] +
73
+ ' ' +
74
+ (this.record.ownerOrganization?.name ? '' : 'mt-3') || '');
75
+ }
76
+ openExternalUrl(event, url) {
77
+ event.stopPropagation();
78
+ window.open(url, '_blank');
79
+ }
80
+ openMailto(event, email) {
81
+ event.stopPropagation();
82
+ window.open(`mailto:${email}`, '_blank');
83
+ }
84
+ copyToClipboard(event, text) {
85
+ event.stopPropagation();
86
+ navigator.clipboard.writeText(text);
87
+ }
88
+ get shouldShowThumbnail() {
89
+ return this.size === 'L' || this.size === 'M';
90
+ }
91
+ getKindInfo() {
92
+ if (!this.record?.kind)
93
+ return { text: '', icon: '' };
94
+ switch (this.record.kind.toLowerCase()) {
95
+ case 'dataset':
96
+ return { text: 'record.kind.data', icon: 'iconoirDatabase' };
97
+ case 'reuse':
98
+ return { text: 'record.kind.reuse', icon: 'iconoirMap' };
99
+ case 'service':
100
+ return { text: 'record.kind.service', icon: 'matCode' };
101
+ default:
102
+ return { text: '', icon: '' };
103
+ }
104
+ }
105
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InternalLinkCardComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
106
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: InternalLinkCardComponent, isStandalone: true, selector: "gn-ui-internal-link-card", inputs: { record: "record", metadataQualityDisplay: "metadataQualityDisplay", favoriteTemplate: "favoriteTemplate", linkHref: "linkHref", isGeodata: "isGeodata", size: "size" }, outputs: { mdSelect: "mdSelect" }, providers: [
107
+ provideIcons({
108
+ matLocationSearchingOutline,
109
+ matCode,
110
+ iconoirDatabase,
111
+ iconoirMap,
112
+ iconoirInternet,
113
+ matEmailOutline,
114
+ matPhoneOutline,
115
+ matLocationOnOutline,
116
+ }),
117
+ provideNgIconsConfig({
118
+ size: '1.2em',
119
+ }),
120
+ ], ngImport: i0, template: "<div\n class=\"rounded-lg group card-shadow cursor-pointer overflow-hidden hover:bg-gray-50\"\n [ngClass]=\"cardClass\"\n>\n <div class=\"flex flex-row justify-between w-full\">\n <div\n *ngIf=\"shouldShowThumbnail\"\n [ngClass]=\"thumbnailContainerClass\"\n class=\"mr-4 flex flex-col\"\n >\n <gn-ui-thumbnail\n class=\"w-full h-full object-cover\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url?.toString() || ''\"\n [fit]=\"'cover'\"\n ></gn-ui-thumbnail>\n </div>\n <div\n class=\"flex flex-col flex-1 relative\"\n [ngClass]=\"{\n 'justify-between': record.ownerOrganization?.name && size !== 'XS',\n }\"\n >\n <div class=\"flex items-center space-x-2\">\n <span\n *ngIf=\"getKindInfo().text\"\n class=\"badge-btn text-white text-xs px-2 py-0.5 font-bold shrink-0 bg-primary leading-tight flex items-center justify-evenly h-6 min-h-6\"\n >\n <ng-icon\n class=\"text-[0.9em] text-white mr-1\"\n [name]=\"getKindInfo().icon\"\n ></ng-icon>\n <span class=\"font-medium text-white text-xs\" translate>\n {{ getKindInfo().text }}\n </span>\n </span>\n <span\n *ngIf=\"isGeodata\"\n class=\"badge-btn text-black text-xs px-2 py-0.5 font-bold shrink-0 bg-primary-white leading-tight flex items-center justify-evenly h-6 min-h-6\"\n [ngClass]=\"size === 'L' ? 'w-[164px]' : 'w-8'\"\n >\n <ng-icon\n class=\"text-[0.9em] text-primary-darkest\"\n name=\"matLocationSearchingOutline\"\n ></ng-icon>\n <ng-container *ngIf=\"size === 'L'\">\n <span\n class=\"font-medium text-primary-darkest text-xs ml-1\"\n translate\n >\n record.metadata.type\n </span>\n </ng-container>\n </span>\n <div class=\"flex items-center\">\n <gn-ui-metadata-quality\n [smaller]=\"true\"\n [metadata]=\"record\"\n [metadataQualityDisplay]=\"metadataQualityDisplay\"\n ></gn-ui-metadata-quality>\n </div>\n <div class=\"absolute top-0 right-0 items-center\">\n <ng-container\n *ngIf=\"size !== 'XS'\"\n [ngTemplateOutlet]=\"favoriteTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: record }\"\n ></ng-container>\n </div>\n </div>\n <div\n class=\"font-medium text-title group-hover:text-primary overflow-hidden break-words\"\n [ngClass]=\"getTitleClass()\"\n >\n {{ record.title }}\n </div>\n <div\n *ngIf=\"size === 'L'\"\n class=\"mt-1 mb-2 font-normal text-xs text-gray-900 line-clamp-2 overflow-hidden\"\n >\n <gn-ui-markdown-parser\n [textContent]=\"abstract\"\n [whitoutStyles]=\"true\"\n ></gn-ui-markdown-parser>\n </div>\n <div\n *ngIf=\"size !== 'XS' && record.ownerOrganization?.name\"\n class=\"flex items-center justify-evenly bg-gray-50 rounded-lg h-[53px] px-2\"\n >\n <div class=\"flex items-center flex-1 min-w-0\">\n <div\n class=\"w-[45px] h-[45px] rounded-lg overflow-hidden shrink-0 mr-3\"\n >\n <gn-ui-thumbnail\n [thumbnailUrl]=\"\n record.ownerOrganization?.logoUrl?.toString() || ''\n \"\n [fit]=\"'contain'\"\n class=\"w-full h-full rounded-lg\"\n ></gn-ui-thumbnail>\n </div>\n <div *ngIf=\"organization?.name\" class=\"flex-1 w-0 overflow-hidden\">\n <div\n class=\"text-xs text-black font-normal leading-tight truncate\"\n translate\n >\n record.card.metadata.contact\n </div>\n <div class=\"text-xl text-primary-black font-medium truncate\">\n {{ organization.name }}\n </div>\n </div>\n </div>\n <div *ngIf=\"size === 'L'\" class=\"ml-2 flex space-x-2\">\n <div *ngIf=\"organization?.website\" class=\"flex\">\n <button\n [title]=\"organization.website\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest\"\n (click)=\"openExternalUrl($event, organization.website)\"\n >\n <ng-icon name=\"iconoirInternet\"></ng-icon>\n </button>\n </div>\n <div *ngIf=\"contacts[0]?.email\" class=\"flex\">\n <button\n [title]=\"contacts[0].email\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest\"\n data-cy=\"contact-email\"\n (click)=\"openMailto($event, contacts[0].email)\"\n >\n <ng-icon name=\"matEmailOutline\"></ng-icon>\n </button>\n </div>\n <div *ngIf=\"contacts[0]?.phone\" class=\"flex\">\n <button\n [title]=\"'Copy to clipboard'\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest relative group\"\n data-cy=\"contact-phone\"\n (click)=\"copyToClipboard($event, contacts[0].phone)\"\n >\n <ng-icon name=\"matPhoneOutline\"></ng-icon>\n </button>\n </div>\n <div *ngIf=\"contacts[0]?.address\" class=\"flex\">\n <button\n [title]=\"'Copy to clipboard'\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest relative group\"\n data-cy=\"contact-phone\"\n (click)=\"copyToClipboard($event, contacts[0].address)\"\n >\n <ng-icon name=\"matLocationOnOutline\"></ng-icon>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "component", type: MetadataQualityComponent, selector: "gn-ui-metadata-quality", inputs: ["metadata", "smaller", "metadataQualityDisplay"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: ["textContent", "whitoutStyles"] }] }); }
121
+ }
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InternalLinkCardComponent, decorators: [{
123
+ type: Component,
124
+ args: [{ selector: 'gn-ui-internal-link-card', standalone: true, imports: [
125
+ NgClass,
126
+ NgIf,
127
+ ThumbnailComponent,
128
+ MetadataQualityComponent,
129
+ NgTemplateOutlet,
130
+ NgIconComponent,
131
+ TranslateModule,
132
+ MarkdownParserComponent,
133
+ ], providers: [
134
+ provideIcons({
135
+ matLocationSearchingOutline,
136
+ matCode,
137
+ iconoirDatabase,
138
+ iconoirMap,
139
+ iconoirInternet,
140
+ matEmailOutline,
141
+ matPhoneOutline,
142
+ matLocationOnOutline,
143
+ }),
144
+ provideNgIconsConfig({
145
+ size: '1.2em',
146
+ }),
147
+ ], template: "<div\n class=\"rounded-lg group card-shadow cursor-pointer overflow-hidden hover:bg-gray-50\"\n [ngClass]=\"cardClass\"\n>\n <div class=\"flex flex-row justify-between w-full\">\n <div\n *ngIf=\"shouldShowThumbnail\"\n [ngClass]=\"thumbnailContainerClass\"\n class=\"mr-4 flex flex-col\"\n >\n <gn-ui-thumbnail\n class=\"w-full h-full object-cover\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url?.toString() || ''\"\n [fit]=\"'cover'\"\n ></gn-ui-thumbnail>\n </div>\n <div\n class=\"flex flex-col flex-1 relative\"\n [ngClass]=\"{\n 'justify-between': record.ownerOrganization?.name && size !== 'XS',\n }\"\n >\n <div class=\"flex items-center space-x-2\">\n <span\n *ngIf=\"getKindInfo().text\"\n class=\"badge-btn text-white text-xs px-2 py-0.5 font-bold shrink-0 bg-primary leading-tight flex items-center justify-evenly h-6 min-h-6\"\n >\n <ng-icon\n class=\"text-[0.9em] text-white mr-1\"\n [name]=\"getKindInfo().icon\"\n ></ng-icon>\n <span class=\"font-medium text-white text-xs\" translate>\n {{ getKindInfo().text }}\n </span>\n </span>\n <span\n *ngIf=\"isGeodata\"\n class=\"badge-btn text-black text-xs px-2 py-0.5 font-bold shrink-0 bg-primary-white leading-tight flex items-center justify-evenly h-6 min-h-6\"\n [ngClass]=\"size === 'L' ? 'w-[164px]' : 'w-8'\"\n >\n <ng-icon\n class=\"text-[0.9em] text-primary-darkest\"\n name=\"matLocationSearchingOutline\"\n ></ng-icon>\n <ng-container *ngIf=\"size === 'L'\">\n <span\n class=\"font-medium text-primary-darkest text-xs ml-1\"\n translate\n >\n record.metadata.type\n </span>\n </ng-container>\n </span>\n <div class=\"flex items-center\">\n <gn-ui-metadata-quality\n [smaller]=\"true\"\n [metadata]=\"record\"\n [metadataQualityDisplay]=\"metadataQualityDisplay\"\n ></gn-ui-metadata-quality>\n </div>\n <div class=\"absolute top-0 right-0 items-center\">\n <ng-container\n *ngIf=\"size !== 'XS'\"\n [ngTemplateOutlet]=\"favoriteTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: record }\"\n ></ng-container>\n </div>\n </div>\n <div\n class=\"font-medium text-title group-hover:text-primary overflow-hidden break-words\"\n [ngClass]=\"getTitleClass()\"\n >\n {{ record.title }}\n </div>\n <div\n *ngIf=\"size === 'L'\"\n class=\"mt-1 mb-2 font-normal text-xs text-gray-900 line-clamp-2 overflow-hidden\"\n >\n <gn-ui-markdown-parser\n [textContent]=\"abstract\"\n [whitoutStyles]=\"true\"\n ></gn-ui-markdown-parser>\n </div>\n <div\n *ngIf=\"size !== 'XS' && record.ownerOrganization?.name\"\n class=\"flex items-center justify-evenly bg-gray-50 rounded-lg h-[53px] px-2\"\n >\n <div class=\"flex items-center flex-1 min-w-0\">\n <div\n class=\"w-[45px] h-[45px] rounded-lg overflow-hidden shrink-0 mr-3\"\n >\n <gn-ui-thumbnail\n [thumbnailUrl]=\"\n record.ownerOrganization?.logoUrl?.toString() || ''\n \"\n [fit]=\"'contain'\"\n class=\"w-full h-full rounded-lg\"\n ></gn-ui-thumbnail>\n </div>\n <div *ngIf=\"organization?.name\" class=\"flex-1 w-0 overflow-hidden\">\n <div\n class=\"text-xs text-black font-normal leading-tight truncate\"\n translate\n >\n record.card.metadata.contact\n </div>\n <div class=\"text-xl text-primary-black font-medium truncate\">\n {{ organization.name }}\n </div>\n </div>\n </div>\n <div *ngIf=\"size === 'L'\" class=\"ml-2 flex space-x-2\">\n <div *ngIf=\"organization?.website\" class=\"flex\">\n <button\n [title]=\"organization.website\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest\"\n (click)=\"openExternalUrl($event, organization.website)\"\n >\n <ng-icon name=\"iconoirInternet\"></ng-icon>\n </button>\n </div>\n <div *ngIf=\"contacts[0]?.email\" class=\"flex\">\n <button\n [title]=\"contacts[0].email\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest\"\n data-cy=\"contact-email\"\n (click)=\"openMailto($event, contacts[0].email)\"\n >\n <ng-icon name=\"matEmailOutline\"></ng-icon>\n </button>\n </div>\n <div *ngIf=\"contacts[0]?.phone\" class=\"flex\">\n <button\n [title]=\"'Copy to clipboard'\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest relative group\"\n data-cy=\"contact-phone\"\n (click)=\"copyToClipboard($event, contacts[0].phone)\"\n >\n <ng-icon name=\"matPhoneOutline\"></ng-icon>\n </button>\n </div>\n <div *ngIf=\"contacts[0]?.address\" class=\"flex\">\n <button\n [title]=\"'Copy to clipboard'\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest relative group\"\n data-cy=\"contact-phone\"\n (click)=\"copyToClipboard($event, contacts[0].address)\"\n >\n <ng-icon name=\"matLocationOnOutline\"></ng-icon>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
148
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { record: [{
149
+ type: Input
150
+ }], metadataQualityDisplay: [{
151
+ type: Input
152
+ }], favoriteTemplate: [{
153
+ type: Input
154
+ }], linkHref: [{
155
+ type: Input
156
+ }], isGeodata: [{
157
+ type: Input
158
+ }], size: [{
159
+ type: Input
160
+ }], mdSelect: [{
161
+ type: Output
162
+ }] } });
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwtbGluay1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9pbnRlcm5hbC1saW5rLWNhcmQvaW50ZXJuYWwtbGluay1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9pbnRlcm5hbC1saW5rLWNhcmQvaW50ZXJuYWwtbGluay1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsRUFFWCxNQUFNLEVBQ04sWUFBWSxFQUNaLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQTtBQUt0QixPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ2pFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFBO0FBQ3RGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFBO0FBQ3pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQ3JFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsZ0JBQWdCLEVBQ2hCLFNBQVMsR0FDVixNQUFNLHdDQUF3QyxDQUFBO0FBQy9DLE9BQU8sRUFDTCxlQUFlLEVBQ2YsWUFBWSxFQUNaLG9CQUFvQixHQUNyQixNQUFNLGdCQUFnQixDQUFBO0FBQ3ZCLE9BQU8sRUFDTCwyQkFBMkIsRUFDM0IsZUFBZSxFQUNmLGVBQWUsRUFDZixvQkFBb0IsR0FDckIsTUFBTSxrQ0FBa0MsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsZUFBZSxF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QixJQUFJLEVBQUUsT0FBTzt5QkFDZCxDQUFDO3FCQUNIOytFQUtRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDTyxJQUFJO3NCQUFoQixLQUFLO2dCQVFJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgRWxlbWVudFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIENhdGFsb2dSZWNvcmQsXG4gIE9yZ2FuaXphdGlvbixcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgTmdDbGFzcywgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IE1hcmtkb3duUGFyc2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vbWFya2Rvd24tcGFyc2VyL21hcmtkb3duLXBhcnNlci5jb21wb25lbnQnXG5pbXBvcnQgeyBNZXRhZGF0YVF1YWxpdHlDb21wb25lbnQgfSBmcm9tICcuLi9tZXRhZGF0YS1xdWFsaXR5L21ldGFkYXRhLXF1YWxpdHkuY29tcG9uZW50J1xuaW1wb3J0IHsgVGh1bWJuYWlsQ29tcG9uZW50IH0gZnJvbSAnLi4vdGh1bWJuYWlsL3RodW1ibmFpbC5jb21wb25lbnQnXG5pbXBvcnQge1xuICBwcm9wYWdhdGVUb0RvY3VtZW50T25seSxcbiAgcmVtb3ZlV2hpdGVzcGFjZSxcbiAgc3RyaXBIdG1sLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7XG4gIE5nSWNvbkNvbXBvbmVudCxcbiAgcHJvdmlkZUljb25zLFxuICBwcm92aWRlTmdJY29uc0NvbmZpZyxcbn0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQge1xuICBtYXRMb2NhdGlvblNlYXJjaGluZ091dGxpbmUsXG4gIG1hdEVtYWlsT3V0bGluZSxcbiAgbWF0UGhvbmVPdXRsaW5lLFxuICBtYXRMb2NhdGlvbk9uT3V0bGluZSxcbn0gZnJvbSAnQG5nLWljb25zL21hdGVyaWFsLWljb25zL291dGxpbmUnXG5pbXBvcnQgeyBtYXRDb2RlIH0gZnJvbSAnQG5nLWljb25zL21hdGVyaWFsLWljb25zL2Jhc2VsaW5lJ1xuaW1wb3J0IHsgaWNvbm9pckRhdGFiYXNlLCBpY29ub2lyTWFwLCBpY29ub2lySW50ZXJuZXQgfSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnXG5cbm1hcmtlcigncmVjb3JkLmtpbmQuZGF0YScpXG5tYXJrZXIoJ3JlY29yZC5raW5kLnJldXNlJylcbm1hcmtlcigncmVjb3JkLmtpbmQuc2VydmljZScpXG5cbnR5cGUgQ2FyZFNpemUgPSAnTCcgfCAnTScgfCAnUycgfCAnWFMnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWludGVybmFsLWxpbmstY2FyZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0NsYXNzLFxuICAgIE5nSWYsXG4gICAgVGh1bWJuYWlsQ29tcG9uZW50LFxuICAgIE1ldGFkYXRhUXVhbGl0eUNvbXBvbmVudCxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIE5nSWNvbkNvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgTWFya2Rvd25QYXJzZXJDb21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHByb3ZpZGVJY29ucyh7XG4gICAgICBtYXRMb2NhdGlvblNlYXJjaGluZ091dGxpbmUsXG4gICAgICBtYXRDb2RlLFxuICAgICAgaWNvbm9pckRhdGFiYXNlLFxuICAgICAgaWNvbm9pck1hcCxcbiAgICAgIGljb25vaXJJbnRlcm5ldCxcbiAgICAgIG1hdEVtYWlsT3V0bGluZSxcbiAgICAgIG1hdFBob25lT3V0bGluZSxcbiAgICAgIG1hdExvY2F0aW9uT25PdXRsaW5lLFxuICAgIH0pLFxuICAgIHByb3ZpZGVOZ0ljb25zQ29uZmlnKHtcbiAgICAgIHNpemU6ICcxLjJlbScsXG4gICAgfSksXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnRlcm5hbC1saW5rLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbnRlcm5hbC1saW5rLWNhcmQuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBJbnRlcm5hbExpbmtDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcmVjb3JkOiBDYXRhbG9nUmVjb3JkXG4gIEBJbnB1dCgpIG1ldGFkYXRhUXVhbGl0eURpc3BsYXk6IGJvb2xlYW5cbiAgQElucHV0KCkgZmF2b3JpdGVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IENhdGFsb2dSZWNvcmQgfT5cbiAgQElucHV0KCkgbGlua0hyZWY6IHN0cmluZyA9IG51bGxcbiAgQElucHV0KCkgaXNHZW9kYXRhOiBib29sZWFuXG4gIEBJbnB1dCgpIHNldCBzaXplKHZhbHVlOiBDYXJkU2l6ZSkge1xuICAgIHRoaXMuX3NpemUgPSB2YWx1ZVxuICAgIHRoaXMuY2FyZENsYXNzID0gdGhpcy5zaXplQ2xhc3NNYXBbdmFsdWVdIHx8ICcnXG4gICAgdGhpcy50aHVtYm5haWxDb250YWluZXJDbGFzcyA9IHRoaXMudGh1bWJuYWlsU2l6ZUNsYXNzTWFwW3ZhbHVlXSB8fCAnaGlkZGVuJ1xuICB9XG4gIGdldCBzaXplKCk6IENhcmRTaXplIHtcbiAgICByZXR1cm4gdGhpcy5fc2l6ZVxuICB9XG4gIEBPdXRwdXQoKSBtZFNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8Q2F0YWxvZ1JlY29yZD4oKVxuICBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKClcblxuICBhYnN0cmFjdDogc3RyaW5nXG5cbiAgY2FyZENsYXNzID0gJydcbiAgdGh1bWJuYWlsQ29udGFpbmVyQ2xhc3MgPSAnJ1xuXG4gIHByaXZhdGUgX3NpemU6IENhcmRTaXplID0gJ00nXG5cbiAgcHJpdmF0ZSByZWFkb25seSBzaXplQ2xhc3NNYXA6IFJlY29yZDxDYXJkU2l6ZSwgc3RyaW5nPiA9IHtcbiAgICBMOiAnbWluLWgtWzE5MHB4XSBtZDp3LVs5OTJweF0gcHktMyBweC0zIGZsZXggaXRlbXMtc3RhcnQgZ2FwLTUnLFxuICAgIE06ICdtaW4taC1bMTQwcHhdIG1kOnctWzU3MHB4XSBweS0zIHB4LTMgZmxleCBpdGVtcy1zdGFydCBnYXAtNCcsXG4gICAgUzogJ21pbi1oLVsyMjBweF0gbWQ6dy1bMzcwcHhdIHB5LTMgcHgtMyBmbGV4IGdhcC00JyxcbiAgICBYUzogJ21pbi1oLVsxMDhweF0gbWQ6dy1bNTcwcHhdIHB5LTMgcHgtMyBmbGV4IGdhcC00JyxcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgdGh1bWJuYWlsU2l6ZUNsYXNzTWFwOiBSZWNvcmQ8Q2FyZFNpemUsIHN0cmluZz4gPSB7XG4gICAgTDogJ3ctWzE5MHB4XSBoLVsxODBweF0gcm91bmRlZC1sZyBvdmVyZmxvdy1oaWRkZW4gc2hyaW5rLTAnLFxuICAgIE06ICd3LVsxMTBweF0gaC1bMTQwcHhdIHJvdW5kZWQtbGcgb3ZlcmZsb3ctaGlkZGVuIHNocmluay0wJyxcbiAgICBTOiAnaGlkZGVuJyxcbiAgICBYUzogJ2hpZGRlbicsXG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHRpdGxlQ2xhc3NNYXA6IFJlY29yZDxDYXJkU2l6ZSwgc3RyaW5nPiA9IHtcbiAgICBMOiAndGV4dC14bCBsaW5lLWNsYW1wLTInLFxuICAgIE06ICd0ZXh0LWJhc2UgbGluZS1jbGFtcC0yJyxcbiAgICBTOiAndGV4dC1iYXNlIGxpbmUtY2xhbXAtMycsXG4gICAgWFM6ICd0ZXh0LWJhc2UgbXQtMyBsaW5lLWNsYW1wLTInLFxuICB9XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hYnN0cmFjdCA9IHJlbW92ZVdoaXRlc3BhY2Uoc3RyaXBIdG1sKHRoaXMucmVjb3JkPy5hYnN0cmFjdCkpXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgZnJvbUV2ZW50KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnY2xpY2snKS5zdWJzY3JpYmUoXG4gICAgICAgIChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgcHJvcGFnYXRlVG9Eb2N1bWVudE9ubHkoZXZlbnQpXG4gICAgICAgICAgdGhpcy5tZFNlbGVjdC5lbWl0KHRoaXMucmVjb3JkKVxuICAgICAgICB9XG4gICAgICApXG4gICAgKVxuICB9XG5cbiAgZ2V0IG9yZ2FuaXphdGlvbigpOiBPcmdhbml6YXRpb24ge1xuICAgIHJldHVybiB0aGlzLnJlY29yZC5vd25lck9yZ2FuaXphdGlvblxuICB9XG5cbiAgZ2V0IGNvbnRhY3RzKCkge1xuICAgIHJldHVybiAoXG4gICAgICAodGhpcy5yZWNvcmQua2luZCA9PT0gJ2RhdGFzZXQnXG4gICAgICAgID8gdGhpcy5yZWNvcmQuY29udGFjdHNGb3JSZXNvdXJjZVxuICAgICAgICA6IHRoaXMucmVjb3JkLmNvbnRhY3RzKSB8fCBbXVxuICAgIClcbiAgfVxuXG4gIGdldFRpdGxlQ2xhc3MoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMudGl0bGVDbGFzc01hcFt0aGlzLl9zaXplXSArXG4gICAgICAgICcgJyArXG4gICAgICAgICh0aGlzLnJlY29yZC5vd25lck9yZ2FuaXphdGlvbj8ubmFtZSA/ICcnIDogJ210LTMnKSB8fCAnJ1xuICAgIClcbiAgfVxuXG4gIG9wZW5FeHRlcm5hbFVybChldmVudDogRXZlbnQsIHVybDogVVJMKTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnKVxuICB9XG5cbiAgb3Blbk1haWx0byhldmVudDogRXZlbnQsIGVtYWlsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgIHdpbmRvdy5vcGVuKGBtYWlsdG86JHtlbWFpbH1gLCAnX2JsYW5rJylcbiAgfVxuXG4gIGNvcHlUb0NsaXBib2FyZChldmVudDogRXZlbnQsIHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGV4dClcbiAgfVxuXG4gIGdldCBzaG91bGRTaG93VGh1bWJuYWlsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNpemUgPT09ICdMJyB8fCB0aGlzLnNpemUgPT09ICdNJ1xuICB9XG5cbiAgZ2V0S2luZEluZm8oKTogeyB0ZXh0OiBzdHJpbmc7IGljb246IHN0cmluZyB9IHtcbiAgICBpZiAoIXRoaXMucmVjb3JkPy5raW5kKSByZXR1cm4geyB0ZXh0OiAnJywgaWNvbjogJycgfVxuXG4gICAgc3dpdGNoICh0aGlzLnJlY29yZC5raW5kLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIGNhc2UgJ2RhdGFzZXQnOlxuICAgICAgICByZXR1cm4geyB0ZXh0OiAncmVjb3JkLmtpbmQuZGF0YScsIGljb246ICdpY29ub2lyRGF0YWJhc2UnIH1cbiAgICAgIGNhc2UgJ3JldXNlJzpcbiAgICAgICAgcmV0dXJuIHsgdGV4dDogJ3JlY29yZC5raW5kLnJldXNlJywgaWNvbjogJ2ljb25vaXJNYXAnIH1cbiAgICAgIGNhc2UgJ3NlcnZpY2UnOlxuICAgICAgICByZXR1cm4geyB0ZXh0OiAncmVjb3JkLmtpbmQuc2VydmljZScsIGljb246ICdtYXRDb2RlJyB9XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4geyB0ZXh0OiAnJywgaWNvbjogJycgfVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cInJvdW5kZWQtbGcgZ3JvdXAgY2FyZC1zaGFkb3cgY3Vyc29yLXBvaW50ZXIgb3ZlcmZsb3ctaGlkZGVuIGhvdmVyOmJnLWdyYXktNTBcIlxuICBbbmdDbGFzc109XCJjYXJkQ2xhc3NcIlxuPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW4gdy1mdWxsXCI+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJzaG91bGRTaG93VGh1bWJuYWlsXCJcbiAgICAgIFtuZ0NsYXNzXT1cInRodW1ibmFpbENvbnRhaW5lckNsYXNzXCJcbiAgICAgIGNsYXNzPVwibXItNCBmbGV4IGZsZXgtY29sXCJcbiAgICA+XG4gICAgICA8Z24tdWktdGh1bWJuYWlsXG4gICAgICAgIGNsYXNzPVwidy1mdWxsIGgtZnVsbCBvYmplY3QtY292ZXJcIlxuICAgICAgICBbdGh1bWJuYWlsVXJsXT1cInJlY29yZC5vdmVydmlld3M/LlswXT8udXJsPy50b1N0cmluZygpIHx8ICcnXCJcbiAgICAgICAgW2ZpdF09XCInY292ZXInXCJcbiAgICAgID48L2duLXVpLXRodW1ibmFpbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImZsZXggZmxleC1jb2wgZmxleC0xIHJlbGF0aXZlXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ2p1c3RpZnktYmV0d2Vlbic6IHJlY29yZC5vd25lck9yZ2FuaXphdGlvbj8ubmFtZSAmJiBzaXplICE9PSAnWFMnLFxuICAgICAgfVwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtMlwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0lmPVwiZ2V0S2luZEluZm8oKS50ZXh0XCJcbiAgICAgICAgICBjbGFzcz1cImJhZGdlLWJ0biB0ZXh0LXdoaXRlIHRleHQteHMgcHgtMiBweS0wLjUgZm9udC1ib2xkIHNocmluay0wIGJnLXByaW1hcnkgbGVhZGluZy10aWdodCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWV2ZW5seSBoLTYgbWluLWgtNlwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LVswLjllbV0gdGV4dC13aGl0ZSBtci0xXCJcbiAgICAgICAgICAgIFtuYW1lXT1cImdldEtpbmRJbmZvKCkuaWNvblwiXG4gICAgICAgICAgPjwvbmctaWNvbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtbWVkaXVtIHRleHQtd2hpdGUgdGV4dC14c1wiIHRyYW5zbGF0ZT5cbiAgICAgICAgICAgIHt7IGdldEtpbmRJbmZvKCkudGV4dCB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0lmPVwiaXNHZW9kYXRhXCJcbiAgICAgICAgICBjbGFzcz1cImJhZGdlLWJ0biB0ZXh0LWJsYWNrIHRleHQteHMgcHgtMiBweS0wLjUgZm9udC1ib2xkIHNocmluay0wIGJnLXByaW1hcnktd2hpdGUgbGVhZGluZy10aWdodCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWV2ZW5seSBoLTYgbWluLWgtNlwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwic2l6ZSA9PT0gJ0wnID8gJ3ctWzE2NHB4XScgOiAndy04J1wiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LVswLjllbV0gdGV4dC1wcmltYXJ5LWRhcmtlc3RcIlxuICAgICAgICAgICAgbmFtZT1cIm1hdExvY2F0aW9uU2VhcmNoaW5nT3V0bGluZVwiXG4gICAgICAgICAgPjwvbmctaWNvbj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2l6ZSA9PT0gJ0wnXCI+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImZvbnQtbWVkaXVtIHRleHQtcHJpbWFyeS1kYXJrZXN0IHRleHQteHMgbWwtMVwiXG4gICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICByZWNvcmQubWV0YWRhdGEudHlwZVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgIDxnbi11aS1tZXRhZGF0YS1xdWFsaXR5XG4gICAgICAgICAgICBbc21hbGxlcl09XCJ0cnVlXCJcbiAgICAgICAgICAgIFttZXRhZGF0YV09XCJyZWNvcmRcIlxuICAgICAgICAgICAgW21ldGFkYXRhUXVhbGl0eURpc3BsYXldPVwibWV0YWRhdGFRdWFsaXR5RGlzcGxheVwiXG4gICAgICAgICAgPjwvZ24tdWktbWV0YWRhdGEtcXVhbGl0eT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCByaWdodC0wIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0lmPVwic2l6ZSAhPT0gJ1hTJ1wiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJmYXZvcml0ZVRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogcmVjb3JkIH1cIlxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmb250LW1lZGl1bSB0ZXh0LXRpdGxlIGdyb3VwLWhvdmVyOnRleHQtcHJpbWFyeSBvdmVyZmxvdy1oaWRkZW4gYnJlYWstd29yZHNcIlxuICAgICAgICBbbmdDbGFzc109XCJnZXRUaXRsZUNsYXNzKClcIlxuICAgICAgPlxuICAgICAgICB7eyByZWNvcmQudGl0bGUgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cInNpemUgPT09ICdMJ1wiXG4gICAgICAgIGNsYXNzPVwibXQtMSBtYi0yIGZvbnQtbm9ybWFsIHRleHQteHMgdGV4dC1ncmF5LTkwMCBsaW5lLWNsYW1wLTIgb3ZlcmZsb3ctaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAgPGduLXVpLW1hcmtkb3duLXBhcnNlclxuICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJhYnN0cmFjdFwiXG4gICAgICAgICAgW3doaXRvdXRTdHlsZXNdPVwidHJ1ZVwiXG4gICAgICAgID48L2duLXVpLW1hcmtkb3duLXBhcnNlcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cInNpemUgIT09ICdYUycgJiYgcmVjb3JkLm93bmVyT3JnYW5pemF0aW9uPy5uYW1lXCJcbiAgICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWV2ZW5seSBiZy1ncmF5LTUwIHJvdW5kZWQtbGcgaC1bNTNweF0gcHgtMlwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBmbGV4LTEgbWluLXctMFwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidy1bNDVweF0gaC1bNDVweF0gcm91bmRlZC1sZyBvdmVyZmxvdy1oaWRkZW4gc2hyaW5rLTAgbXItM1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGduLXVpLXRodW1ibmFpbFxuICAgICAgICAgICAgICBbdGh1bWJuYWlsVXJsXT1cIlxuICAgICAgICAgICAgICAgIHJlY29yZC5vd25lck9yZ2FuaXphdGlvbj8ubG9nb1VybD8udG9TdHJpbmcoKSB8fCAnJ1xuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBbZml0XT1cIidjb250YWluJ1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsIGgtZnVsbCByb3VuZGVkLWxnXCJcbiAgICAgICAgICAgID48L2duLXVpLXRodW1ibmFpbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwib3JnYW5pemF0aW9uPy5uYW1lXCIgY2xhc3M9XCJmbGV4LTEgdy0wIG92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInRleHQteHMgdGV4dC1ibGFjayBmb250LW5vcm1hbCBsZWFkaW5nLXRpZ2h0IHRydW5jYXRlXCJcbiAgICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHJlY29yZC5jYXJkLm1ldGFkYXRhLmNvbnRhY3RcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQteGwgdGV4dC1wcmltYXJ5LWJsYWNrIGZvbnQtbWVkaXVtIHRydW5jYXRlXCI+XG4gICAgICAgICAgICAgIHt7IG9yZ2FuaXphdGlvbi5uYW1lIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJzaXplID09PSAnTCdcIiBjbGFzcz1cIm1sLTIgZmxleCBzcGFjZS14LTJcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwib3JnYW5pemF0aW9uPy53ZWJzaXRlXCIgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIFt0aXRsZV09XCJvcmdhbml6YXRpb24ud2Vic2l0ZVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwidy1bNDBweF0gaC1bMzJweF0gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLVsjRDREM0Q3XSBweC1bOHB4XSBweS1bNHB4XSBob3ZlcjpiZy1wcmltYXJ5LWxpZ2h0ZXN0XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5FeHRlcm5hbFVybCgkZXZlbnQsIG9yZ2FuaXphdGlvbi53ZWJzaXRlKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy1pY29uIG5hbWU9XCJpY29ub2lySW50ZXJuZXRcIj48L25nLWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29udGFjdHNbMF0/LmVtYWlsXCIgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIFt0aXRsZV09XCJjb250YWN0c1swXS5lbWFpbFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwidy1bNDBweF0gaC1bMzJweF0gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLVsjRDREM0Q3XSBweC1bOHB4XSBweS1bNHB4XSBob3ZlcjpiZy1wcmltYXJ5LWxpZ2h0ZXN0XCJcbiAgICAgICAgICAgICAgZGF0YS1jeT1cImNvbnRhY3QtZW1haWxcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbk1haWx0bygkZXZlbnQsIGNvbnRhY3RzWzBdLmVtYWlsKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy1pY29uIG5hbWU9XCJtYXRFbWFpbE91dGxpbmVcIj48L25nLWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29udGFjdHNbMF0/LnBob25lXCIgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIFt0aXRsZV09XCInQ29weSB0byBjbGlwYm9hcmQnXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ3LVs0MHB4XSBoLVszMnB4XSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItWyNENEQzRDddIHB4LVs4cHhdIHB5LVs0cHhdIGhvdmVyOmJnLXByaW1hcnktbGlnaHRlc3QgcmVsYXRpdmUgZ3JvdXBcIlxuICAgICAgICAgICAgICBkYXRhLWN5PVwiY29udGFjdC1waG9uZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjb3B5VG9DbGlwYm9hcmQoJGV2ZW50LCBjb250YWN0c1swXS5waG9uZSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctaWNvbiBuYW1lPVwibWF0UGhvbmVPdXRsaW5lXCI+PC9uZy1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImNvbnRhY3RzWzBdPy5hZGRyZXNzXCIgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIFt0aXRsZV09XCInQ29weSB0byBjbGlwYm9hcmQnXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ3LVs0MHB4XSBoLVszMnB4XSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItWyNENEQzRDddIHB4LVs4cHhdIHB5LVs0cHhdIGhvdmVyOmJnLXByaW1hcnktbGlnaHRlc3QgcmVsYXRpdmUgZ3JvdXBcIlxuICAgICAgICAgICAgICBkYXRhLWN5PVwiY29udGFjdC1waG9uZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjb3B5VG9DbGlwYm9hcmQoJGV2ZW50LCBjb250YWN0c1swXS5hZGRyZXNzKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy1pY29uIG5hbWU9XCJtYXRMb2NhdGlvbk9uT3V0bGluZVwiPjwvbmctaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19