geonetwork-ui 2.7.0-dev.dbe423d28 → 2.7.0-dev.ed54e0aff

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 (242) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.mjs +4 -7
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +20 -20
  3. package/esm2022/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.mjs +3 -3
  4. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +3 -3
  5. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +3 -3
  6. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +4 -4
  7. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.mjs +4 -1
  8. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +9 -5
  9. package/esm2022/libs/api/repository/src/index.mjs +2 -2
  10. package/esm2022/libs/api/repository/src/lib/gn4/auth/auth.service.mjs +5 -5
  11. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/constant.mjs +4 -6
  12. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +55 -12
  13. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +3 -3
  14. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.mjs +3 -3
  15. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +3 -3
  16. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +52 -24
  17. package/esm2022/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.mjs +3 -1
  18. package/esm2022/libs/api/repository/src/lib/metadata-language.token.mjs +3 -0
  19. package/esm2022/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.mjs +1 -1
  20. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +15 -1
  21. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  22. package/esm2022/libs/feature/catalog/src/lib/sources/sources.service.mjs +3 -3
  23. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +10 -2
  24. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +2 -2
  25. package/esm2022/libs/feature/editor/src/index.mjs +2 -1
  26. package/esm2022/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.mjs +80 -0
  27. package/esm2022/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.mjs +3 -3
  28. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.mjs +55 -0
  29. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +8 -3
  30. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -1
  31. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +77 -3
  32. package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +3 -5
  33. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +31 -12
  34. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +76 -27
  35. package/esm2022/libs/feature/router/src/lib/default/state/query-params.utils.mjs +4 -3
  36. package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +3 -2
  37. package/esm2022/libs/feature/search/src/lib/state/reducer.mjs +5 -2
  38. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.component.mjs +4 -3
  39. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +3 -3
  40. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +5 -4
  41. package/esm2022/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.mjs +5 -4
  42. package/esm2022/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.mjs +4 -4
  43. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +21 -46
  44. package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +7 -7
  45. package/esm2022/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.mjs +1 -6
  46. package/esm2022/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.mjs +5 -4
  47. package/esm2022/libs/util/app-config/src/lib/app-config.mjs +5 -1
  48. package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +2 -2
  49. package/esm2022/libs/util/app-config/src/lib/model.mjs +1 -1
  50. package/esm2022/libs/util/app-config/src/lib/parse-utils.mjs +5 -4
  51. package/esm2022/libs/util/i18n/src/lib/language-codes.mjs +50 -9
  52. package/esm2022/libs/util/shared/src/index.mjs +2 -2
  53. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +12 -2
  54. package/esm2022/libs/util/shared/src/lib/record/index.mjs +3 -0
  55. package/esm2022/libs/util/shared/src/lib/record/quality-score.util.mjs +46 -0
  56. package/esm2022/libs/util/shared/src/lib/record/record.util.mjs +56 -0
  57. package/esm2022/libs/util/shared/src/lib/utils/geojson.mjs +58 -1
  58. package/esm2022/libs/util/shared/src/lib/utils/index.mjs +2 -1
  59. package/esm2022/libs/util/shared/src/lib/utils/mobile-screen.mjs +9 -0
  60. package/esm2022/translations/de.json +60 -21
  61. package/esm2022/translations/en.json +61 -22
  62. package/esm2022/translations/es.json +47 -8
  63. package/esm2022/translations/fr.json +66 -27
  64. package/esm2022/translations/it.json +60 -21
  65. package/esm2022/translations/nl.json +47 -8
  66. package/esm2022/translations/pt.json +47 -8
  67. package/esm2022/translations/sk.json +51 -12
  68. package/fesm2022/geonetwork-ui.mjs +3337 -2966
  69. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  70. package/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.d.ts.map +1 -1
  71. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +1 -1
  72. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  73. package/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.d.ts.map +1 -1
  74. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +2 -2
  75. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  76. package/libs/api/repository/src/index.d.ts +1 -1
  77. package/libs/api/repository/src/index.d.ts.map +1 -1
  78. package/libs/api/repository/src/lib/gn4/elasticsearch/constant.d.ts.map +1 -1
  79. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +1 -2
  80. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  81. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +9 -7
  82. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  83. package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts +2 -0
  84. package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts.map +1 -1
  85. package/libs/api/repository/src/lib/metadata-language.token.d.ts +5 -0
  86. package/libs/api/repository/src/lib/metadata-language.token.d.ts.map +1 -0
  87. package/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.d.ts +1 -0
  88. package/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.d.ts.map +1 -1
  89. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +5 -1
  90. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  91. package/libs/common/domain/src/lib/platform.service.interface.d.ts +2 -0
  92. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  93. package/libs/feature/catalog/src/lib/sources/sources.service.d.ts.map +1 -1
  94. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +3 -2
  95. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  96. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  97. package/libs/feature/editor/src/index.d.ts +1 -0
  98. package/libs/feature/editor/src/index.d.ts.map +1 -1
  99. package/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.d.ts +19 -0
  100. package/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.d.ts.map +1 -0
  101. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.d.ts +20 -0
  102. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.d.ts.map +1 -0
  103. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +1 -0
  104. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  105. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -0
  106. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
  107. package/libs/feature/editor/src/lib/fields.config.d.ts +8 -1
  108. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  109. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts +2 -2
  110. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
  111. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +8 -4
  112. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  113. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +12 -5
  114. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  115. package/libs/feature/router/src/lib/default/state/query-params.utils.d.ts.map +1 -1
  116. package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
  117. package/libs/feature/search/src/lib/state/reducer.d.ts.map +1 -1
  118. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts.map +1 -1
  119. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -0
  120. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
  121. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts +1 -0
  122. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts.map +1 -1
  123. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -1
  124. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +7 -7
  125. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  126. package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts.map +1 -1
  127. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts +1 -0
  128. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts.map +1 -1
  129. package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
  130. package/libs/util/app-config/src/lib/model.d.ts +2 -0
  131. package/libs/util/app-config/src/lib/model.d.ts.map +1 -1
  132. package/libs/util/app-config/src/lib/parse-utils.d.ts.map +1 -1
  133. package/libs/util/i18n/src/lib/language-codes.d.ts +91 -31
  134. package/libs/util/i18n/src/lib/language-codes.d.ts.map +1 -1
  135. package/libs/util/shared/src/index.d.ts +1 -1
  136. package/libs/util/shared/src/index.d.ts.map +1 -1
  137. package/libs/util/shared/src/lib/links/link-utils.d.ts +2 -1
  138. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  139. package/libs/util/shared/src/lib/record/index.d.ts +3 -0
  140. package/libs/util/shared/src/lib/record/index.d.ts.map +1 -0
  141. package/libs/util/shared/src/lib/record/quality-score.util.d.ts +13 -0
  142. package/libs/util/shared/src/lib/record/quality-score.util.d.ts.map +1 -0
  143. package/libs/util/shared/src/lib/record/record.util.d.ts +3 -0
  144. package/libs/util/shared/src/lib/record/record.util.d.ts.map +1 -0
  145. package/libs/util/shared/src/lib/utils/geojson.d.ts +7 -2
  146. package/libs/util/shared/src/lib/utils/geojson.d.ts.map +1 -1
  147. package/libs/util/shared/src/lib/utils/index.d.ts +1 -0
  148. package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
  149. package/libs/util/shared/src/lib/utils/mobile-screen.d.ts +2 -0
  150. package/libs/util/shared/src/lib/utils/mobile-screen.d.ts.map +1 -0
  151. package/package.json +11 -10
  152. package/src/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.ts +3 -6
  153. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/status.mapper.ts +3 -0
  154. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +47 -22
  155. package/src/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.ts +2 -2
  156. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +2 -2
  157. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +2 -2
  158. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +3 -3
  159. package/src/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.ts +3 -0
  160. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +10 -6
  161. package/src/libs/api/repository/src/index.ts +1 -1
  162. package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +4 -4
  163. package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +3 -5
  164. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +65 -14
  165. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +2 -2
  166. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +2 -2
  167. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +2 -2
  168. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +60 -39
  169. package/src/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.ts +8 -0
  170. package/src/libs/api/repository/src/lib/metadata-language.token.ts +8 -0
  171. package/src/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.ts +1 -0
  172. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +21 -1
  173. package/src/libs/common/domain/src/lib/platform.service.interface.ts +3 -0
  174. package/src/libs/common/fixtures/src/lib/editor/editor.fixtures.ts +0 -3
  175. package/src/libs/feature/catalog/src/lib/sources/sources.service.ts +2 -5
  176. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +10 -1
  177. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +3 -1
  178. package/src/libs/feature/editor/src/index.ts +1 -0
  179. package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.css +0 -0
  180. package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.html +37 -0
  181. package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.ts +90 -0
  182. package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.html +2 -1
  183. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.css +0 -0
  184. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.html +22 -0
  185. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.ts +57 -0
  186. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +6 -0
  187. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +5 -0
  188. package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -0
  189. package/src/libs/feature/editor/src/lib/fields.config.ts +85 -3
  190. package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +8 -8
  191. package/src/libs/feature/record/src/lib/data-view/data-view.component.html +2 -0
  192. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +34 -15
  193. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +2 -0
  194. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +70 -23
  195. package/src/libs/feature/router/src/lib/default/state/query-params.utils.ts +5 -2
  196. package/src/libs/feature/router/src/lib/default/state/router.facade.ts +2 -1
  197. package/src/libs/feature/search/src/lib/state/reducer.ts +4 -1
  198. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.ts +6 -1
  199. package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +4 -1
  200. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +12 -11
  201. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +7 -1
  202. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.html +4 -1
  203. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.ts +7 -1
  204. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +1 -0
  205. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +5 -1
  206. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +1 -0
  207. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +21 -58
  208. package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.ts +6 -6
  209. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts +0 -6
  210. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.html +7 -1
  211. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.ts +3 -1
  212. package/src/libs/util/app-config/src/lib/app-config.ts +4 -0
  213. package/src/libs/util/app-config/src/lib/fixtures.ts +1 -1
  214. package/src/libs/util/app-config/src/lib/model.ts +2 -0
  215. package/src/libs/util/app-config/src/lib/parse-utils.ts +4 -7
  216. package/src/libs/util/i18n/src/lib/language-codes.ts +62 -11
  217. package/src/libs/util/shared/src/index.ts +1 -1
  218. package/src/libs/util/shared/src/lib/links/link-utils.ts +11 -1
  219. package/src/libs/util/shared/src/lib/record/index.ts +2 -0
  220. package/src/libs/util/shared/src/lib/record/quality-score.util.ts +72 -0
  221. package/src/libs/util/shared/src/lib/{record.util.ts → record/record.util.ts} +1 -1
  222. package/src/libs/util/shared/src/lib/utils/geojson.ts +72 -2
  223. package/src/libs/util/shared/src/lib/utils/index.ts +1 -0
  224. package/src/libs/util/shared/src/lib/utils/mobile-screen.ts +14 -0
  225. package/translations/de.json +60 -21
  226. package/translations/en.json +61 -22
  227. package/translations/es.json +47 -8
  228. package/translations/fr.json +66 -27
  229. package/translations/it.json +60 -21
  230. package/translations/nl.json +47 -8
  231. package/translations/pt.json +47 -8
  232. package/translations/sk.json +51 -12
  233. package/esm2022/libs/api/repository/src/lib/metadata-language.mjs +0 -3
  234. package/esm2022/libs/util/app-config/src/lib/constants.mjs +0 -439
  235. package/esm2022/libs/util/shared/src/lib/record.util.mjs +0 -56
  236. package/libs/api/repository/src/lib/metadata-language.d.ts +0 -3
  237. package/libs/api/repository/src/lib/metadata-language.d.ts.map +0 -1
  238. package/libs/util/app-config/src/lib/constants.d.ts +0 -2
  239. package/libs/util/app-config/src/lib/constants.d.ts.map +0 -1
  240. package/libs/util/shared/src/lib/record.util.d.ts +0 -3
  241. package/libs/util/shared/src/lib/record.util.d.ts.map +0 -1
  242. package/src/libs/api/repository/src/lib/metadata-language.ts +0 -3
@@ -8,7 +8,7 @@ import { KindBadgeComponent } from '../kind-badge/kind-badge.component';
8
8
  import { MarkdownParserComponent } from '../markdown-parser/markdown-parser.component';
9
9
  import { MetadataQualityComponent } from '../metadata-quality/metadata-quality.component';
10
10
  import { ThumbnailComponent } from '../thumbnail/thumbnail.component';
11
- import { removeWhitespace, stripHtml } from '../../../../../../libs/util/shared/src';
11
+ import { removeWhitespace, stripHtml, } from '../../../../../../libs/util/shared/src';
12
12
  import * as i0 from "@angular/core";
13
13
  export class InternalLinkCardComponent {
14
14
  set size(value) {
@@ -49,7 +49,7 @@ export class InternalLinkCardComponent {
49
49
  provideNgIconsConfig({
50
50
  size: '1.2em',
51
51
  }),
52
- ], ngImport: i0, template: "<a\n [attr.href]=\"linkHref\"\n [target]=\"linkTarget\"\n class=\"record-card\"\n [ngClass]=\"cardClass\"\n>\n <div *ngIf=\"shouldShowThumbnail\" class=\"record-card__thumbnail\">\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 class=\"grow pt-1\" [ngClass]=\"shouldShowThumbnail ? 'sm:w-0' : ''\">\n <div class=\"flex flex-col gap-2 h-full\">\n <h4\n class=\"record-card__title\"\n data-cy=\"recordTitle\"\n [title]=\"record.title\"\n >\n {{ record.title }}\n </h4>\n <div class=\"grow\">\n <gn-ui-markdown-parser\n data-cy=\"recordAbstract\"\n [textContent]=\"abstract\"\n [whitoutStyles]=\"true\"\n class=\"record-card__abstract\"\n [title]=\"abstract\"\n ></gn-ui-markdown-parser>\n </div>\n <div class=\"record-card__footer\">\n <div\n data-cy=\"recordOrg\"\n *ngIf=\"record.ownerOrganization?.name\"\n class=\"grow flex flex-row gap-1 items-center text-primary-lighter\"\n [ngClass]=\"displayContactIconOnly ? 'justify-center' : ''\"\n >\n <ng-icon\n name=\"iconoirBank\"\n class=\"text-primary -translate-y-[0.5px] shrink-0\"\n [title]=\"record.ownerOrganization.name\"\n ></ng-icon>\n <span\n *ngIf=\"!displayContactIconOnly\"\n data-cy=\"recordOrgName\"\n class=\"line-clamp-1\"\n [title]=\"record.ownerOrganization.name\"\n >{{ record.ownerOrganization.name }}</span\n >\n </div>\n <div class=\"record-card__footer__other\">\n <div\n class=\"xs:border-r last:border-r-0 flex grow gap-4 px-4 last:pr-0\"\n >\n <gn-ui-kind-badge\n [extraClass]=\"'text-[1.2em]'\"\n [styling]=\"'gray'\"\n [kind]=\"record?.kind\"\n [contentTemplate]=\"customTemplate\"\n class=\"pt-1\"\n >\n <ng-template #customTemplate></ng-template\n ></gn-ui-kind-badge>\n <gn-ui-metadata-quality\n *ngIf=\"metadataQualityDisplay\"\n class=\"flex items-center min-w-[113px]\"\n [smaller]=\"true\"\n [metadata]=\"record\"\n [metadataQualityDisplay]=\"metadataQualityDisplay\"\n ></gn-ui-metadata-quality>\n </div>\n <div\n class=\"flex justify-center\"\n data-cy=\"recordFav\"\n [ngClass]=\"displayContactIconOnly ? 'px-1' : 'px-4'\"\n >\n <ng-container\n [ngTemplateOutlet]=\"favoriteTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: record }\"\n ></ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n</a>\n", styles: [".record-card{@apply rounded-md bg-white hover:cursor-pointer hover:bg-slate-50 overflow-hidden items-stretch flex flex-row md:gap-0 justify-between py-3 pl-3 pr-5;}.record-card.size-L{@apply w-full md:h-[208px] gap-5;}.record-card.size-M{@apply max-w-[940px] md:h-[231px] gap-4;}.record-card.size-S{@apply max-w-[572px] md:h-[315px] gap-4;}.record-card.size-XS{@apply max-w-[280px] md:h-[315px] gap-4;}.record-card:hover .record-card__title{@apply text-primary;}.record-card__thumbnail{@apply border rounded-lg overflow-hidden shrink-0;}.size-L .record-card__thumbnail{@apply w-full w-[190px] h-[184px];}.size-M .record-card__thumbnail{@apply w-full w-[138px] h-[207px];}.record-card__title{@apply text-xl font-medium text-title leading-6;}.size-L .record-card__title{@apply line-clamp-2;}.size-M .record-card__title{@apply line-clamp-2 ml-2;}.size-S .record-card__title,.size-XS .record-card__title{@apply line-clamp-3 ml-2;}.record-card__abstract{@apply text-gray-900 overflow-hidden;}.size-L .record-card__abstract{@apply line-clamp-3;}.size-M .record-card__abstract{@apply line-clamp-3 ml-2;}.size-S .record-card__abstract,.size-XS .record-card__abstract{@apply line-clamp-4 ml-2;}.record-card__footer{@apply flex sm:flex-row flex-col flex-nowrap gap-3 justify-end items-center w-full border-t pt-1 overflow-hidden;}@media (max-width: 450px){.size-S .record-card__footer{@apply flex-col items-stretch;}}.size-XS .record-card__footer{@apply flex-col items-stretch gap-2;}.record-card__footer__other{@apply flex flex-col xs:flex-row flex-nowrap gap-3 xs:border-l first:border-l-0;}.record-card__footer__other>div{@apply py-1;}@media (max-width: 450px){.size-S .record-card__footer__other,.size-S .record-card__footer__other>div{@apply border-0 px-0 py-0;}}.size-XS .record-card__footer__other,.size-XS .record-card__footer__other>div{@apply border-0;}.size-XS .record-card__footer__other>div{@apply px-0 py-0;}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { 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: KindBadgeComponent, selector: "gn-ui-kind-badge", inputs: ["styling", "contentTemplate", "kind", "extraClass"] }, { kind: "component", type: MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: ["textContent", "whitoutStyles"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }] }); }
52
+ ], ngImport: i0, template: "<a\n [attr.href]=\"linkHref\"\n [target]=\"linkTarget\"\n class=\"record-card\"\n [ngClass]=\"cardClass\"\n>\n <div *ngIf=\"shouldShowThumbnail\" class=\"record-card__thumbnail\">\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 class=\"grow pt-1\" [ngClass]=\"shouldShowThumbnail ? 'sm:w-0' : ''\">\n <div class=\"flex flex-col gap-2 h-full\">\n <h4\n class=\"record-card__title\"\n data-cy=\"recordTitle\"\n [title]=\"record.title\"\n >\n {{ record.title }}\n </h4>\n <div class=\"grow\">\n <gn-ui-markdown-parser\n data-cy=\"recordAbstract\"\n [textContent]=\"abstract\"\n [whitoutStyles]=\"true\"\n class=\"record-card__abstract\"\n [title]=\"abstract\"\n ></gn-ui-markdown-parser>\n </div>\n <div class=\"record-card__footer\">\n <div\n data-cy=\"recordOrg\"\n *ngIf=\"record.ownerOrganization?.name\"\n class=\"grow flex flex-row gap-1 items-center text-primary-lighter\"\n [ngClass]=\"displayContactIconOnly ? 'justify-center' : ''\"\n >\n <ng-icon\n name=\"iconoirBank\"\n class=\"text-primary -translate-y-[0.5px] shrink-0\"\n [title]=\"record.ownerOrganization.name\"\n ></ng-icon>\n <span\n *ngIf=\"!displayContactIconOnly\"\n data-cy=\"recordOrgName\"\n class=\"line-clamp-1\"\n [title]=\"record.ownerOrganization.name\"\n >{{ record.ownerOrganization.name }}</span\n >\n </div>\n <div class=\"record-card__footer__other\">\n <div\n class=\"xs:border-r last:border-r-0 flex grow gap-4 px-4 last:pr-0\"\n >\n <gn-ui-kind-badge\n [extraClass]=\"'text-[1.2em]'\"\n [styling]=\"'gray'\"\n [kind]=\"record?.kind\"\n [contentTemplate]=\"customTemplate\"\n class=\"pt-1\"\n >\n <ng-template #customTemplate></ng-template\n ></gn-ui-kind-badge>\n <gn-ui-metadata-quality\n *ngIf=\"metadataQualityDisplay\"\n class=\"flex items-center min-w-[113px]\"\n [smaller]=\"true\"\n [metadata]=\"record\"\n [metadataQualityDisplay]=\"metadataQualityDisplay\"\n [popoverDisplay]=\"true\"\n ></gn-ui-metadata-quality>\n </div>\n <div\n class=\"flex justify-center\"\n data-cy=\"recordFav\"\n [ngClass]=\"displayContactIconOnly ? 'px-1' : 'px-4'\"\n >\n <ng-container\n [ngTemplateOutlet]=\"favoriteTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: record }\"\n ></ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n</a>\n", styles: [".record-card{@apply rounded-md bg-white hover:cursor-pointer hover:bg-slate-50 overflow-hidden items-stretch flex flex-row md:gap-0 justify-between py-3 pl-3 pr-5;}.record-card.size-L{@apply w-full md:h-[208px] gap-5;}.record-card.size-M{@apply max-w-[940px] md:h-[231px] gap-4;}.record-card.size-S{@apply max-w-[572px] md:h-[315px] gap-4;}.record-card.size-XS{@apply max-w-[280px] md:h-[315px] gap-4;}.record-card:hover .record-card__title{@apply text-primary;}.record-card__thumbnail{@apply border rounded-lg overflow-hidden shrink-0;}.size-L .record-card__thumbnail{@apply w-full w-[190px] h-[184px];}.size-M .record-card__thumbnail{@apply w-full w-[138px] h-[207px];}.record-card__title{@apply text-xl font-medium text-title leading-6;}.size-L .record-card__title{@apply line-clamp-2;}.size-M .record-card__title{@apply line-clamp-2 ml-2;}.size-S .record-card__title,.size-XS .record-card__title{@apply line-clamp-3 ml-2;}.record-card__abstract{@apply text-gray-900 overflow-hidden;}.size-L .record-card__abstract{@apply line-clamp-3;}.size-M .record-card__abstract{@apply line-clamp-3 ml-2;}.size-S .record-card__abstract,.size-XS .record-card__abstract{@apply line-clamp-4 ml-2;}.record-card__footer{@apply flex sm:flex-row flex-col flex-nowrap gap-3 justify-end items-center w-full border-t pt-1 overflow-hidden;}@media (max-width: 450px){.size-S .record-card__footer{@apply flex-col items-stretch;}}.size-XS .record-card__footer{@apply flex-col items-stretch gap-2;}.record-card__footer__other{@apply flex flex-col xs:flex-row flex-nowrap gap-3 xs:border-l first:border-l-0;}.record-card__footer__other>div{@apply py-1;}@media (max-width: 450px){.size-S .record-card__footer__other,.size-S .record-card__footer__other>div{@apply border-0 px-0 py-0;}}.size-XS .record-card__footer__other,.size-XS .record-card__footer__other>div{@apply border-0;}.size-XS .record-card__footer__other>div{@apply px-0 py-0;}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: MetadataQualityComponent, selector: "gn-ui-metadata-quality", inputs: ["metadata", "smaller", "metadataQualityDisplay", "popoverDisplay", "propsToValidate", "forceComputeScore"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: KindBadgeComponent, selector: "gn-ui-kind-badge", inputs: ["styling", "contentTemplate", "kind", "extraClass"] }, { kind: "component", type: MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: ["textContent", "whitoutStyles"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }] }); }
53
53
  }
54
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InternalLinkCardComponent, decorators: [{
55
55
  type: Component,
@@ -70,7 +70,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
70
70
  provideNgIconsConfig({
71
71
  size: '1.2em',
72
72
  }),
73
- ], template: "<a\n [attr.href]=\"linkHref\"\n [target]=\"linkTarget\"\n class=\"record-card\"\n [ngClass]=\"cardClass\"\n>\n <div *ngIf=\"shouldShowThumbnail\" class=\"record-card__thumbnail\">\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 class=\"grow pt-1\" [ngClass]=\"shouldShowThumbnail ? 'sm:w-0' : ''\">\n <div class=\"flex flex-col gap-2 h-full\">\n <h4\n class=\"record-card__title\"\n data-cy=\"recordTitle\"\n [title]=\"record.title\"\n >\n {{ record.title }}\n </h4>\n <div class=\"grow\">\n <gn-ui-markdown-parser\n data-cy=\"recordAbstract\"\n [textContent]=\"abstract\"\n [whitoutStyles]=\"true\"\n class=\"record-card__abstract\"\n [title]=\"abstract\"\n ></gn-ui-markdown-parser>\n </div>\n <div class=\"record-card__footer\">\n <div\n data-cy=\"recordOrg\"\n *ngIf=\"record.ownerOrganization?.name\"\n class=\"grow flex flex-row gap-1 items-center text-primary-lighter\"\n [ngClass]=\"displayContactIconOnly ? 'justify-center' : ''\"\n >\n <ng-icon\n name=\"iconoirBank\"\n class=\"text-primary -translate-y-[0.5px] shrink-0\"\n [title]=\"record.ownerOrganization.name\"\n ></ng-icon>\n <span\n *ngIf=\"!displayContactIconOnly\"\n data-cy=\"recordOrgName\"\n class=\"line-clamp-1\"\n [title]=\"record.ownerOrganization.name\"\n >{{ record.ownerOrganization.name }}</span\n >\n </div>\n <div class=\"record-card__footer__other\">\n <div\n class=\"xs:border-r last:border-r-0 flex grow gap-4 px-4 last:pr-0\"\n >\n <gn-ui-kind-badge\n [extraClass]=\"'text-[1.2em]'\"\n [styling]=\"'gray'\"\n [kind]=\"record?.kind\"\n [contentTemplate]=\"customTemplate\"\n class=\"pt-1\"\n >\n <ng-template #customTemplate></ng-template\n ></gn-ui-kind-badge>\n <gn-ui-metadata-quality\n *ngIf=\"metadataQualityDisplay\"\n class=\"flex items-center min-w-[113px]\"\n [smaller]=\"true\"\n [metadata]=\"record\"\n [metadataQualityDisplay]=\"metadataQualityDisplay\"\n ></gn-ui-metadata-quality>\n </div>\n <div\n class=\"flex justify-center\"\n data-cy=\"recordFav\"\n [ngClass]=\"displayContactIconOnly ? 'px-1' : 'px-4'\"\n >\n <ng-container\n [ngTemplateOutlet]=\"favoriteTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: record }\"\n ></ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n</a>\n", styles: [".record-card{@apply rounded-md bg-white hover:cursor-pointer hover:bg-slate-50 overflow-hidden items-stretch flex flex-row md:gap-0 justify-between py-3 pl-3 pr-5;}.record-card.size-L{@apply w-full md:h-[208px] gap-5;}.record-card.size-M{@apply max-w-[940px] md:h-[231px] gap-4;}.record-card.size-S{@apply max-w-[572px] md:h-[315px] gap-4;}.record-card.size-XS{@apply max-w-[280px] md:h-[315px] gap-4;}.record-card:hover .record-card__title{@apply text-primary;}.record-card__thumbnail{@apply border rounded-lg overflow-hidden shrink-0;}.size-L .record-card__thumbnail{@apply w-full w-[190px] h-[184px];}.size-M .record-card__thumbnail{@apply w-full w-[138px] h-[207px];}.record-card__title{@apply text-xl font-medium text-title leading-6;}.size-L .record-card__title{@apply line-clamp-2;}.size-M .record-card__title{@apply line-clamp-2 ml-2;}.size-S .record-card__title,.size-XS .record-card__title{@apply line-clamp-3 ml-2;}.record-card__abstract{@apply text-gray-900 overflow-hidden;}.size-L .record-card__abstract{@apply line-clamp-3;}.size-M .record-card__abstract{@apply line-clamp-3 ml-2;}.size-S .record-card__abstract,.size-XS .record-card__abstract{@apply line-clamp-4 ml-2;}.record-card__footer{@apply flex sm:flex-row flex-col flex-nowrap gap-3 justify-end items-center w-full border-t pt-1 overflow-hidden;}@media (max-width: 450px){.size-S .record-card__footer{@apply flex-col items-stretch;}}.size-XS .record-card__footer{@apply flex-col items-stretch gap-2;}.record-card__footer__other{@apply flex flex-col xs:flex-row flex-nowrap gap-3 xs:border-l first:border-l-0;}.record-card__footer__other>div{@apply py-1;}@media (max-width: 450px){.size-S .record-card__footer__other,.size-S .record-card__footer__other>div{@apply border-0 px-0 py-0;}}.size-XS .record-card__footer__other,.size-XS .record-card__footer__other>div{@apply border-0;}.size-XS .record-card__footer__other>div{@apply px-0 py-0;}\n"] }]
73
+ ], template: "<a\n [attr.href]=\"linkHref\"\n [target]=\"linkTarget\"\n class=\"record-card\"\n [ngClass]=\"cardClass\"\n>\n <div *ngIf=\"shouldShowThumbnail\" class=\"record-card__thumbnail\">\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 class=\"grow pt-1\" [ngClass]=\"shouldShowThumbnail ? 'sm:w-0' : ''\">\n <div class=\"flex flex-col gap-2 h-full\">\n <h4\n class=\"record-card__title\"\n data-cy=\"recordTitle\"\n [title]=\"record.title\"\n >\n {{ record.title }}\n </h4>\n <div class=\"grow\">\n <gn-ui-markdown-parser\n data-cy=\"recordAbstract\"\n [textContent]=\"abstract\"\n [whitoutStyles]=\"true\"\n class=\"record-card__abstract\"\n [title]=\"abstract\"\n ></gn-ui-markdown-parser>\n </div>\n <div class=\"record-card__footer\">\n <div\n data-cy=\"recordOrg\"\n *ngIf=\"record.ownerOrganization?.name\"\n class=\"grow flex flex-row gap-1 items-center text-primary-lighter\"\n [ngClass]=\"displayContactIconOnly ? 'justify-center' : ''\"\n >\n <ng-icon\n name=\"iconoirBank\"\n class=\"text-primary -translate-y-[0.5px] shrink-0\"\n [title]=\"record.ownerOrganization.name\"\n ></ng-icon>\n <span\n *ngIf=\"!displayContactIconOnly\"\n data-cy=\"recordOrgName\"\n class=\"line-clamp-1\"\n [title]=\"record.ownerOrganization.name\"\n >{{ record.ownerOrganization.name }}</span\n >\n </div>\n <div class=\"record-card__footer__other\">\n <div\n class=\"xs:border-r last:border-r-0 flex grow gap-4 px-4 last:pr-0\"\n >\n <gn-ui-kind-badge\n [extraClass]=\"'text-[1.2em]'\"\n [styling]=\"'gray'\"\n [kind]=\"record?.kind\"\n [contentTemplate]=\"customTemplate\"\n class=\"pt-1\"\n >\n <ng-template #customTemplate></ng-template\n ></gn-ui-kind-badge>\n <gn-ui-metadata-quality\n *ngIf=\"metadataQualityDisplay\"\n class=\"flex items-center min-w-[113px]\"\n [smaller]=\"true\"\n [metadata]=\"record\"\n [metadataQualityDisplay]=\"metadataQualityDisplay\"\n [popoverDisplay]=\"true\"\n ></gn-ui-metadata-quality>\n </div>\n <div\n class=\"flex justify-center\"\n data-cy=\"recordFav\"\n [ngClass]=\"displayContactIconOnly ? 'px-1' : 'px-4'\"\n >\n <ng-container\n [ngTemplateOutlet]=\"favoriteTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: record }\"\n ></ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n</a>\n", styles: [".record-card{@apply rounded-md bg-white hover:cursor-pointer hover:bg-slate-50 overflow-hidden items-stretch flex flex-row md:gap-0 justify-between py-3 pl-3 pr-5;}.record-card.size-L{@apply w-full md:h-[208px] gap-5;}.record-card.size-M{@apply max-w-[940px] md:h-[231px] gap-4;}.record-card.size-S{@apply max-w-[572px] md:h-[315px] gap-4;}.record-card.size-XS{@apply max-w-[280px] md:h-[315px] gap-4;}.record-card:hover .record-card__title{@apply text-primary;}.record-card__thumbnail{@apply border rounded-lg overflow-hidden shrink-0;}.size-L .record-card__thumbnail{@apply w-full w-[190px] h-[184px];}.size-M .record-card__thumbnail{@apply w-full w-[138px] h-[207px];}.record-card__title{@apply text-xl font-medium text-title leading-6;}.size-L .record-card__title{@apply line-clamp-2;}.size-M .record-card__title{@apply line-clamp-2 ml-2;}.size-S .record-card__title,.size-XS .record-card__title{@apply line-clamp-3 ml-2;}.record-card__abstract{@apply text-gray-900 overflow-hidden;}.size-L .record-card__abstract{@apply line-clamp-3;}.size-M .record-card__abstract{@apply line-clamp-3 ml-2;}.size-S .record-card__abstract,.size-XS .record-card__abstract{@apply line-clamp-4 ml-2;}.record-card__footer{@apply flex sm:flex-row flex-col flex-nowrap gap-3 justify-end items-center w-full border-t pt-1 overflow-hidden;}@media (max-width: 450px){.size-S .record-card__footer{@apply flex-col items-stretch;}}.size-XS .record-card__footer{@apply flex-col items-stretch gap-2;}.record-card__footer__other{@apply flex flex-col xs:flex-row flex-nowrap gap-3 xs:border-l first:border-l-0;}.record-card__footer__other>div{@apply py-1;}@media (max-width: 450px){.size-S .record-card__footer__other,.size-S .record-card__footer__other>div{@apply border-0 px-0 py-0;}}.size-XS .record-card__footer__other,.size-XS .record-card__footer__other>div{@apply border-0;}.size-XS .record-card__footer__other>div{@apply px-0 py-0;}\n"] }]
74
74
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { record: [{
75
75
  type: Input
76
76
  }], linkTarget: [{
@@ -86,4 +86,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
86
86
  }], mdSelect: [{
87
87
  type: Output
88
88
  }] } });
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwtbGluay1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9pbnRlcm5hbC1saW5rLWNhcmQvaW50ZXJuYWwtbGluay1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9pbnRlcm5hbC1saW5rLWNhcmQvaW50ZXJuYWwtbGluay1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFdBQVcsR0FDWixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUMvQyxPQUFPLEVBQ0wsZUFBZSxFQUNmLFlBQVksRUFDWixvQkFBb0IsR0FDckIsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN2QixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTtBQUU5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQTtBQUN0RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQTtBQUN6RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTtBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0NBQXdD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bnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE5nQ2xhc3MsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBpY29ub2lyQmFuayB9IGZyb20gJ0BuZy1pY29ucy9pY29ub2lyJ1xuaW1wb3J0IHtcbiAgTmdJY29uQ29tcG9uZW50LFxuICBwcm92aWRlSWNvbnMsXG4gIHByb3ZpZGVOZ0ljb25zQ29uZmlnLFxufSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IG1hdExvY2F0aW9uU2VhcmNoaW5nT3V0bGluZSB9IGZyb20gJ0BuZy1pY29ucy9tYXRlcmlhbC1pY29ucy9vdXRsaW5lJ1xuaW1wb3J0IHsgQ2F0YWxvZ1JlY29yZCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IEtpbmRCYWRnZUNvbXBvbmVudCB9IGZyb20gJy4uL2tpbmQtYmFkZ2Uva2luZC1iYWRnZS5jb21wb25lbnQnXG5pbXBvcnQgeyBNYXJrZG93blBhcnNlckNvbXBvbmVudCB9IGZyb20gJy4uL21hcmtkb3duLXBhcnNlci9tYXJrZG93bi1wYXJzZXIuY29tcG9uZW50J1xuaW1wb3J0IHsgTWV0YWRhdGFRdWFsaXR5Q29tcG9uZW50IH0gZnJvbSAnLi4vbWV0YWRhdGEtcXVhbGl0eS9tZXRhZGF0YS1xdWFsaXR5LmNvbXBvbmVudCdcbmltcG9ydCB7IFRodW1ibmFpbENvbXBvbmVudCB9IGZyb20gJy4uL3RodW1ibmFpbC90aHVtYm5haWwuY29tcG9uZW50J1xuaW1wb3J0IHsgcmVtb3ZlV2hpdGVzcGFjZSwgc3RyaXBIdG1sIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5cbnR5cGUgQ2FyZFNpemUgPSAnTCcgfCAnTScgfCAnUycgfCAnWFMnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWludGVybmFsLWxpbmstY2FyZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0NsYXNzLFxuICAgIE5nSWYsXG4gICAgTmdJY29uQ29tcG9uZW50LFxuICAgIE1ldGFkYXRhUXVhbGl0eUNvbXBvbmVudCxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIEtpbmRCYWRnZUNvbXBvbmVudCxcbiAgICBNYXJrZG93blBhcnNlckNvbXBvbmVudCxcbiAgICBUaHVtYm5haWxDb21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHByb3ZpZGVJY29ucyh7XG4gICAgICBpY29ub2lyQmFuayxcbiAgICAgIG1hdExvY2F0aW9uU2VhcmNoaW5nT3V0bGluZSxcbiAgICB9KSxcbiAgICBwcm92aWRlTmdJY29uc0NvbmZpZyh7XG4gICAgICBzaXplOiAnMS4yZW0nLFxuICAgIH0pLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vaW50ZXJuYWwtbGluay1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW50ZXJuYWwtbGluay1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEludGVybmFsTGlua0NhcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSByZWNvcmQ6IENhdGFsb2dSZWNvcmRcbiAgQElucHV0KCkgbGlua1RhcmdldCA9ICdfYmxhbmsnXG4gIEBJbnB1dCgpIGxpbmtIcmVmOiBzdHJpbmcgPSBudWxsXG4gIEBJbnB1dCgpIG1ldGFkYXRhUXVhbGl0eURpc3BsYXk6IGJvb2xlYW5cbiAgQElucHV0KCkgZmF2b3JpdGVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IENhdGFsb2dSZWNvcmQgfT5cbiAgQElucHV0KCkgc2V0IHNpemUodmFsdWU6IENhcmRTaXplKSB7XG4gICAgdGhpcy5fc2l6ZSA9IHZhbHVlXG4gICAgdGhpcy5jYXJkQ2xhc3MgPSBgc2l6ZS0ke3ZhbHVlfWBcbiAgfVxuICBnZXQgc2l6ZSgpOiBDYXJkU2l6ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3NpemVcbiAgfVxuICBAT3V0cHV0KCkgbWRTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPENhdGFsb2dSZWNvcmQ+KClcbiAgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpXG5cbiAgYWJzdHJhY3Q6IHN0cmluZ1xuICBjYXJkQ2xhc3M6IHN0cmluZ1xuXG4gIHByaXZhdGUgX3NpemU6IENhcmRTaXplID0gJ0wnXG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hYnN0cmFjdCA9IHJlbW92ZVdoaXRlc3BhY2Uoc3RyaXBIdG1sKHRoaXMucmVjb3JkPy5hYnN0cmFjdCkpXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgZnJvbUV2ZW50KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnY2xpY2snKS5zdWJzY3JpYmUoKCkgPT5cbiAgICAgICAgdGhpcy5tZFNlbGVjdC5lbWl0KHRoaXMucmVjb3JkKVxuICAgICAgKVxuICAgIClcbiAgfVxuICBnZXQgc2hvdWxkU2hvd1RodW1ibmFpbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zaXplID09PSAnTCcgfHwgdGhpcy5zaXplID09PSAnTSdcbiAgfVxuXG4gIGdldCBkaXNwbGF5Q29udGFjdEljb25Pbmx5KCkge1xuICAgIGNvbnN0IGNhcmRXaWR0aCA9XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aFxuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnJlY29yZC5vd25lck9yZ2FuaXphdGlvbj8ubmFtZSAmJlxuICAgICAgdGhpcy5tZXRhZGF0YVF1YWxpdHlEaXNwbGF5ICYmXG4gICAgICB0aGlzLnNpemUgPT09ICdNJyAmJlxuICAgICAgY2FyZFdpZHRoIDw9IDQ5MFxuICAgIClcbiAgfVxufVxuIiwiPGFcbiAgW2F0dHIuaHJlZl09XCJsaW5rSHJlZlwiXG4gIFt0YXJnZXRdPVwibGlua1RhcmdldFwiXG4gIGNsYXNzPVwicmVjb3JkLWNhcmRcIlxuICBbbmdDbGFzc109XCJjYXJkQ2xhc3NcIlxuPlxuICA8ZGl2ICpuZ0lmPVwic2hvdWxkU2hvd1RodW1ibmFpbFwiIGNsYXNzPVwicmVjb3JkLWNhcmRfX3RodW1ibmFpbFwiPlxuICAgIDxnbi11aS10aHVtYm5haWxcbiAgICAgIGNsYXNzPVwidy1mdWxsIGgtZnVsbCBvYmplY3QtY292ZXJcIlxuICAgICAgW3RodW1ibmFpbFVybF09XCJyZWNvcmQub3ZlcnZpZXdzPy5bMF0/LnVybD8udG9TdHJpbmcoKSB8fCAnJ1wiXG4gICAgICBbZml0XT1cIidjb3ZlcidcIlxuICAgID48L2duLXVpLXRodW1ibmFpbD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJncm93IHB0LTFcIiBbbmdDbGFzc109XCJzaG91bGRTaG93VGh1bWJuYWlsID8gJ3NtOnctMCcgOiAnJ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0yIGgtZnVsbFwiPlxuICAgICAgPGg0XG4gICAgICAgIGNsYXNzPVwicmVjb3JkLWNhcmRfX3RpdGxlXCJcbiAgICAgICAgZGF0YS1jeT1cInJlY29yZFRpdGxlXCJcbiAgICAgICAgW3RpdGxlXT1cInJlY29yZC50aXRsZVwiXG4gICAgICA+XG4gICAgICAgIHt7IHJlY29yZC50aXRsZSB9fVxuICAgICAgPC9oND5cbiAgICAgIDxkaXYgY2xhc3M9XCJncm93XCI+XG4gICAgICAgIDxnbi11aS1tYXJrZG93bi1wYXJzZXJcbiAgICAgICAgICBkYXRhLWN5PVwicmVjb3JkQWJzdHJhY3RcIlxuICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJhYnN0cmFjdFwiXG4gICAgICAgICAgW3doaXRvdXRTdHlsZXNdPVwidHJ1ZVwiXG4gICAgICAgICAgY2xhc3M9XCJyZWNvcmQtY2FyZF9fYWJzdHJhY3RcIlxuICAgICAgICAgIFt0aXRsZV09XCJhYnN0cmFjdFwiXG4gICAgICAgID48L2duLXVpLW1hcmtkb3duLXBhcnNlcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInJlY29yZC1jYXJkX19mb290ZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGRhdGEtY3k9XCJyZWNvcmRPcmdcIlxuICAgICAgICAgICpuZ0lmPVwicmVjb3JkLm93bmVyT3JnYW5pemF0aW9uPy5uYW1lXCJcbiAgICAgICAgICBjbGFzcz1cImdyb3cgZmxleCBmbGV4LXJvdyBnYXAtMSBpdGVtcy1jZW50ZXIgdGV4dC1wcmltYXJ5LWxpZ2h0ZXJcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cImRpc3BsYXlDb250YWN0SWNvbk9ubHkgPyAnanVzdGlmeS1jZW50ZXInIDogJydcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWljb25cbiAgICAgICAgICAgIG5hbWU9XCJpY29ub2lyQmFua1wiXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtcHJpbWFyeSAtdHJhbnNsYXRlLXktWzAuNXB4XSBzaHJpbmstMFwiXG4gICAgICAgICAgICBbdGl0bGVdPVwicmVjb3JkLm93bmVyT3JnYW5pemF0aW9uLm5hbWVcIlxuICAgICAgICAgID48L25nLWljb24+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICpuZ0lmPVwiIWRpc3BsYXlDb250YWN0SWNvbk9ubHlcIlxuICAgICAgICAgICAgZGF0YS1jeT1cInJlY29yZE9yZ05hbWVcIlxuICAgICAgICAgICAgY2xhc3M9XCJsaW5lLWNsYW1wLTFcIlxuICAgICAgICAgICAgW3RpdGxlXT1cInJlY29yZC5vd25lck9yZ2FuaXphdGlvbi5uYW1lXCJcbiAgICAgICAgICAgID57eyByZWNvcmQub3duZXJPcmdhbml6YXRpb24ubmFtZSB9fTwvc3BhblxuICAgICAgICAgID5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZWNvcmQtY2FyZF9fZm9vdGVyX19vdGhlclwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwieHM6Ym9yZGVyLXIgbGFzdDpib3JkZXItci0wIGZsZXggZ3JvdyBnYXAtNCBweC00IGxhc3Q6cHItMFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGduLXVpLWtpbmQtYmFkZ2VcbiAgICAgICAgICAgICAgW2V4dHJhQ2xhc3NdPVwiJ3RleHQtWzEuMmVtXSdcIlxuICAgICAgICAgICAgICBbc3R5bGluZ109XCInZ3JheSdcIlxuICAgICAgICAgICAgICBba2luZF09XCJyZWNvcmQ/LmtpbmRcIlxuICAgICAgICAgICAgICBbY29udGVudFRlbXBsYXRlXT1cImN1c3RvbVRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJwdC0xXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjdXN0b21UZW1wbGF0ZT48L25nLXRlbXBsYXRlXG4gICAgICAgICAgICA+PC9nbi11aS1raW5kLWJhZGdlPlxuICAgICAgICAgICAgPGduLXVpLW1ldGFkYXRhLXF1YWxpdHlcbiAgICAgICAgICAgICAgKm5nSWY9XCJtZXRhZGF0YVF1YWxpdHlEaXNwbGF5XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBtaW4tdy1bMTEzcHhdXCJcbiAgICAgICAgICAgICAgW3NtYWxsZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIFttZXRhZGF0YV09XCJyZWNvcmRcIlxuICAgICAgICAgICAgICBbbWV0YWRhdGFRdWFsaXR5RGlzcGxheV09XCJtZXRhZGF0YVF1YWxpdHlEaXNwbGF5XCJcbiAgICAgICAgICAgID48L2duLXVpLW1ldGFkYXRhLXF1YWxpdHk+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGp1c3RpZnktY2VudGVyXCJcbiAgICAgICAgICAgIGRhdGEtY3k9XCJyZWNvcmRGYXZcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiZGlzcGxheUNvbnRhY3RJY29uT25seSA/ICdweC0xJyA6ICdweC00J1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJmYXZvcml0ZVRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiByZWNvcmQgfVwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9hPlxuIl19
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwtbGluay1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9pbnRlcm5hbC1saW5rLWNhcmQvaW50ZXJuYWwtbGluay1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9pbnRlcm5hbC1saW5rLWNhcmQvaW50ZXJuYWwtbGluay1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFdBQVcsR0FDWixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUMvQyxPQUFPLEVBQ0wsZUFBZSxFQUNmLFlBQVksRUFDWixvQkFBb0IsR0FDckIsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN2QixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTtBQUU5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQTtBQUN0RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQTtBQUN6RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTtBQUNyRSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLFNBQVMsR0FFVixNQUFNLHdDQUF3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ZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgaWNvbm9pckJhbmsgfSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcbmltcG9ydCB7XG4gIE5nSWNvbkNvbXBvbmVudCxcbiAgcHJvdmlkZUljb25zLFxuICBwcm92aWRlTmdJY29uc0NvbmZpZyxcbn0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBtYXRMb2NhdGlvblNlYXJjaGluZ091dGxpbmUgfSBmcm9tICdAbmctaWNvbnMvbWF0ZXJpYWwtaWNvbnMvb3V0bGluZSdcbmltcG9ydCB7IENhdGFsb2dSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBLaW5kQmFkZ2VDb21wb25lbnQgfSBmcm9tICcuLi9raW5kLWJhZGdlL2tpbmQtYmFkZ2UuY29tcG9uZW50J1xuaW1wb3J0IHsgTWFya2Rvd25QYXJzZXJDb21wb25lbnQgfSBmcm9tICcuLi9tYXJrZG93bi1wYXJzZXIvbWFya2Rvd24tcGFyc2VyLmNvbXBvbmVudCdcbmltcG9ydCB7IE1ldGFkYXRhUXVhbGl0eUNvbXBvbmVudCB9IGZyb20gJy4uL21ldGFkYXRhLXF1YWxpdHkvbWV0YWRhdGEtcXVhbGl0eS5jb21wb25lbnQnXG5pbXBvcnQgeyBUaHVtYm5haWxDb21wb25lbnQgfSBmcm9tICcuLi90aHVtYm5haWwvdGh1bWJuYWlsLmNvbXBvbmVudCdcbmltcG9ydCB7XG4gIHJlbW92ZVdoaXRlc3BhY2UsXG4gIHN0cmlwSHRtbCxcbiAgdHlwZSBWYWxpZGF0b3JNYXBwZXJLZXlzLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcblxudHlwZSBDYXJkU2l6ZSA9ICdMJyB8ICdNJyB8ICdTJyB8ICdYUydcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktaW50ZXJuYWwtbGluay1jYXJkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nQ2xhc3MsXG4gICAgTmdJZixcbiAgICBOZ0ljb25Db21wb25lbnQsXG4gICAgTWV0YWRhdGFRdWFsaXR5Q29tcG9uZW50LFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgS2luZEJhZGdlQ29tcG9uZW50LFxuICAgIE1hcmtkb3duUGFyc2VyQ29tcG9uZW50LFxuICAgIFRodW1ibmFpbENvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHtcbiAgICAgIGljb25vaXJCYW5rLFxuICAgICAgbWF0TG9jYXRpb25TZWFyY2hpbmdPdXRsaW5lLFxuICAgIH0pLFxuICAgIHByb3ZpZGVOZ0ljb25zQ29uZmlnKHtcbiAgICAgIHNpemU6ICcxLjJlbScsXG4gICAgfSksXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnRlcm5hbC1saW5rLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbnRlcm5hbC1saW5rLWNhcmQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgSW50ZXJuYWxMaW5rQ2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHJlY29yZDogQ2F0YWxvZ1JlY29yZFxuICBASW5wdXQoKSBsaW5rVGFyZ2V0ID0gJ19ibGFuaydcbiAgQElucHV0KCkgbGlua0hyZWY6IHN0cmluZyA9IG51bGxcbiAgQElucHV0KCkgbWV0YWRhdGFRdWFsaXR5RGlzcGxheTogYm9vbGVhblxuICBASW5wdXQoKSBmYXZvcml0ZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx7ICRpbXBsaWNpdDogQ2F0YWxvZ1JlY29yZCB9PlxuICBASW5wdXQoKSBzZXQgc2l6ZSh2YWx1ZTogQ2FyZFNpemUpIHtcbiAgICB0aGlzLl9zaXplID0gdmFsdWVcbiAgICB0aGlzLmNhcmRDbGFzcyA9IGBzaXplLSR7dmFsdWV9YFxuICB9XG4gIGdldCBzaXplKCk6IENhcmRTaXplIHtcbiAgICByZXR1cm4gdGhpcy5fc2l6ZVxuICB9XG4gIEBPdXRwdXQoKSBtZFNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8Q2F0YWxvZ1JlY29yZD4oKVxuICBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKClcblxuICBhYnN0cmFjdDogc3RyaW5nXG4gIGNhcmRDbGFzczogc3RyaW5nXG5cbiAgcHJpdmF0ZSBfc2l6ZTogQ2FyZFNpemUgPSAnTCdcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFic3RyYWN0ID0gcmVtb3ZlV2hpdGVzcGFjZShzdHJpcEh0bWwodGhpcy5yZWNvcmQ/LmFic3RyYWN0KSlcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICBmcm9tRXZlbnQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdjbGljaycpLnN1YnNjcmliZSgoKSA9PlxuICAgICAgICB0aGlzLm1kU2VsZWN0LmVtaXQodGhpcy5yZWNvcmQpXG4gICAgICApXG4gICAgKVxuICB9XG4gIGdldCBzaG91bGRTaG93VGh1bWJuYWlsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNpemUgPT09ICdMJyB8fCB0aGlzLnNpemUgPT09ICdNJ1xuICB9XG5cbiAgZ2V0IGRpc3BsYXlDb250YWN0SWNvbk9ubHkoKSB7XG4gICAgY29uc3QgY2FyZFdpZHRoID1cbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoXG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMucmVjb3JkLm93bmVyT3JnYW5pemF0aW9uPy5uYW1lICYmXG4gICAgICB0aGlzLm1ldGFkYXRhUXVhbGl0eURpc3BsYXkgJiZcbiAgICAgIHRoaXMuc2l6ZSA9PT0gJ00nICYmXG4gICAgICBjYXJkV2lkdGggPD0gNDkwXG4gICAgKVxuICB9XG59XG4iLCI8YVxuICBbYXR0ci5ocmVmXT1cImxpbmtIcmVmXCJcbiAgW3RhcmdldF09XCJsaW5rVGFyZ2V0XCJcbiAgY2xhc3M9XCJyZWNvcmQtY2FyZFwiXG4gIFtuZ0NsYXNzXT1cImNhcmRDbGFzc1wiXG4+XG4gIDxkaXYgKm5nSWY9XCJzaG91bGRTaG93VGh1bWJuYWlsXCIgY2xhc3M9XCJyZWNvcmQtY2FyZF9fdGh1bWJuYWlsXCI+XG4gICAgPGduLXVpLXRodW1ibmFpbFxuICAgICAgY2xhc3M9XCJ3LWZ1bGwgaC1mdWxsIG9iamVjdC1jb3ZlclwiXG4gICAgICBbdGh1bWJuYWlsVXJsXT1cInJlY29yZC5vdmVydmlld3M/LlswXT8udXJsPy50b1N0cmluZygpIHx8ICcnXCJcbiAgICAgIFtmaXRdPVwiJ2NvdmVyJ1wiXG4gICAgPjwvZ24tdWktdGh1bWJuYWlsPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImdyb3cgcHQtMVwiIFtuZ0NsYXNzXT1cInNob3VsZFNob3dUaHVtYm5haWwgPyAnc206dy0wJyA6ICcnXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTIgaC1mdWxsXCI+XG4gICAgICA8aDRcbiAgICAgICAgY2xhc3M9XCJyZWNvcmQtY2FyZF9fdGl0bGVcIlxuICAgICAgICBkYXRhLWN5PVwicmVjb3JkVGl0bGVcIlxuICAgICAgICBbdGl0bGVdPVwicmVjb3JkLnRpdGxlXCJcbiAgICAgID5cbiAgICAgICAge3sgcmVjb3JkLnRpdGxlIH19XG4gICAgICA8L2g0PlxuICAgICAgPGRpdiBjbGFzcz1cImdyb3dcIj5cbiAgICAgICAgPGduLXVpLW1hcmtkb3duLXBhcnNlclxuICAgICAgICAgIGRhdGEtY3k9XCJyZWNvcmRBYnN0cmFjdFwiXG4gICAgICAgICAgW3RleHRDb250ZW50XT1cImFic3RyYWN0XCJcbiAgICAgICAgICBbd2hpdG91dFN0eWxlc109XCJ0cnVlXCJcbiAgICAgICAgICBjbGFzcz1cInJlY29yZC1jYXJkX19hYnN0cmFjdFwiXG4gICAgICAgICAgW3RpdGxlXT1cImFic3RyYWN0XCJcbiAgICAgICAgPjwvZ24tdWktbWFya2Rvd24tcGFyc2VyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicmVjb3JkLWNhcmRfX2Zvb3RlclwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgZGF0YS1jeT1cInJlY29yZE9yZ1wiXG4gICAgICAgICAgKm5nSWY9XCJyZWNvcmQub3duZXJPcmdhbml6YXRpb24/Lm5hbWVcIlxuICAgICAgICAgIGNsYXNzPVwiZ3JvdyBmbGV4IGZsZXgtcm93IGdhcC0xIGl0ZW1zLWNlbnRlciB0ZXh0LXByaW1hcnktbGlnaHRlclwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwiZGlzcGxheUNvbnRhY3RJY29uT25seSA/ICdqdXN0aWZ5LWNlbnRlcicgOiAnJ1wiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctaWNvblxuICAgICAgICAgICAgbmFtZT1cImljb25vaXJCYW5rXCJcbiAgICAgICAgICAgIGNsYXNzPVwidGV4dC1wcmltYXJ5IC10cmFuc2xhdGUteS1bMC41cHhdIHNocmluay0wXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJyZWNvcmQub3duZXJPcmdhbml6YXRpb24ubmFtZVwiXG4gICAgICAgICAgPjwvbmctaWNvbj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nSWY9XCIhZGlzcGxheUNvbnRhY3RJY29uT25seVwiXG4gICAgICAgICAgICBkYXRhLWN5PVwicmVjb3JkT3JnTmFtZVwiXG4gICAgICAgICAgICBjbGFzcz1cImxpbmUtY2xhbXAtMVwiXG4gICAgICAgICAgICBbdGl0bGVdPVwicmVjb3JkLm93bmVyT3JnYW5pemF0aW9uLm5hbWVcIlxuICAgICAgICAgICAgPnt7IHJlY29yZC5vd25lck9yZ2FuaXphdGlvbi5uYW1lIH19PC9zcGFuXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJlY29yZC1jYXJkX19mb290ZXJfX290aGVyXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ4czpib3JkZXItciBsYXN0OmJvcmRlci1yLTAgZmxleCBncm93IGdhcC00IHB4LTQgbGFzdDpwci0wXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Z24tdWkta2luZC1iYWRnZVxuICAgICAgICAgICAgICBbZXh0cmFDbGFzc109XCIndGV4dC1bMS4yZW1dJ1wiXG4gICAgICAgICAgICAgIFtzdHlsaW5nXT1cIidncmF5J1wiXG4gICAgICAgICAgICAgIFtraW5kXT1cInJlY29yZD8ua2luZFwiXG4gICAgICAgICAgICAgIFtjb250ZW50VGVtcGxhdGVdPVwiY3VzdG9tVGVtcGxhdGVcIlxuICAgICAgICAgICAgICBjbGFzcz1cInB0LTFcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2N1c3RvbVRlbXBsYXRlPjwvbmctdGVtcGxhdGVcbiAgICAgICAgICAgID48L2duLXVpLWtpbmQtYmFkZ2U+XG4gICAgICAgICAgICA8Z24tdWktbWV0YWRhdGEtcXVhbGl0eVxuICAgICAgICAgICAgICAqbmdJZj1cIm1ldGFkYXRhUXVhbGl0eURpc3BsYXlcIlxuICAgICAgICAgICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG1pbi13LVsxMTNweF1cIlxuICAgICAgICAgICAgICBbc21hbGxlcl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW21ldGFkYXRhXT1cInJlY29yZFwiXG4gICAgICAgICAgICAgIFttZXRhZGF0YVF1YWxpdHlEaXNwbGF5XT1cIm1ldGFkYXRhUXVhbGl0eURpc3BsYXlcIlxuICAgICAgICAgICAgICBbcG9wb3ZlckRpc3BsYXldPVwidHJ1ZVwiXG4gICAgICAgICAgICA+PC9nbi11aS1tZXRhZGF0YS1xdWFsaXR5PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNlbnRlclwiXG4gICAgICAgICAgICBkYXRhLWN5PVwicmVjb3JkRmF2XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cImRpc3BsYXlDb250YWN0SWNvbk9ubHkgPyAncHgtMScgOiAncHgtNCdcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZmF2b3JpdGVUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogcmVjb3JkIH1cIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvYT5cbiJdfQ==
@@ -1,6 +1,7 @@
1
1
  import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
2
2
  import { MetadataQualityItemComponent, } from '../metadata-quality-item/metadata-quality-item.component';
3
3
  import { PopoverComponent, ProgressBarComponent, } from '../../../../../../libs/ui/widgets/src';
4
+ import { getQualityValidators, getAllKeysValidator, } from '../../../../../../libs/util/shared/src';
4
5
  import { CommonModule } from '@angular/common';
5
6
  import { TranslateDirective } from '@ngx-translate/core';
6
7
  import { NgIcon, provideIcons, provideNgIconsConfig } from '@ng-icons/core';
@@ -10,58 +11,26 @@ import * as i1 from "@angular/common";
10
11
  export class MetadataQualityComponent {
11
12
  constructor() {
12
13
  this.smaller = false;
14
+ this.popoverDisplay = true;
15
+ this.forceComputeScore = false; // Instead of returning es' quality score
13
16
  this.items = [];
14
- this.COMMON_CHECKS = {
15
- title: (metadata) => !!metadata?.title,
16
- description: (metadata) => !!metadata?.abstract,
17
- keywords: (metadata) => (metadata?.keywords?.length ?? 0) > 0,
18
- legalConstraints: (metadata) => (metadata?.legalConstraints?.length ?? 0) > 0,
19
- contact: (metadata) => !!metadata?.contacts?.[0]?.email,
20
- };
21
- this.SPECIFIC_CHECKS = {
22
- dataset: {
23
- updateFrequency: (metadata) => !!metadata?.updateFrequency,
24
- topic: (metadata) => (metadata?.topics?.length ?? 0) > 0,
25
- organisation: (metadata) => !!metadata?.contacts?.[0]?.organization?.name,
26
- },
27
- service: {
28
- capabilities: (metadata) => (metadata?.onlineResources ?? []).some((resource) => this.hasGetCapabilities(resource?.url?.href ?? '')),
29
- },
30
- reuse: {
31
- topic: (metadata) => (metadata?.topics?.length ?? 0) > 0,
32
- organisation: (metadata) => !!metadata?.contacts?.[0]?.organization?.name,
33
- source: (metadata) => !!metadata?.extras?.sourcesIdentifiers,
34
- },
35
- };
36
17
  }
37
18
  get qualityScore() {
38
- const qualityScore = this.metadata?.extras?.qualityScore;
19
+ const qualityScore = !this.forceComputeScore
20
+ ? this.metadata?.extras?.qualityScore
21
+ : this.computedQualityScore;
39
22
  return typeof qualityScore === 'number'
40
23
  ? qualityScore
41
- : this.calculatedQualityScore;
24
+ : this.computedQualityScore;
42
25
  }
43
- get calculatedQualityScore() {
26
+ get computedQualityScore() {
44
27
  return Math.round((this.items.filter(({ value }) => value).length * 100) / this.items.length);
45
28
  }
46
- add(name, value) {
47
- if (this.metadataQualityDisplay?.[name] !== false) {
48
- this.items.push({ name, value });
49
- }
50
- }
51
- hasGetCapabilities(url) {
52
- return url.toLowerCase().includes('capabilities');
53
- }
54
29
  initialize() {
55
- this.items = [];
56
- Object.entries(this.COMMON_CHECKS).forEach(([name, check]) => {
57
- this.add(name, check(this.metadata));
58
- });
59
- const datasetType = this.metadata?.kind;
60
- if (datasetType && this.SPECIFIC_CHECKS[datasetType]) {
61
- Object.entries(this.SPECIFIC_CHECKS[datasetType]).forEach(([name, check]) => {
62
- this.add(name, check(this.metadata));
63
- });
30
+ if (!this.propsToValidate) {
31
+ this.propsToValidate = getAllKeysValidator();
64
32
  }
33
+ this.items = getQualityValidators(this.metadata, this.propsToValidate).map(({ name, validator }) => ({ name, value: validator() }));
65
34
  }
66
35
  ngOnChanges(changes) {
67
36
  if (changes['metadata'] || changes['metadataQualityDisplay']) {
@@ -69,7 +38,7 @@ export class MetadataQualityComponent {
69
38
  }
70
39
  }
71
40
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataQualityComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
72
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MetadataQualityComponent, isStandalone: true, selector: "gn-ui-metadata-quality", inputs: { metadata: "metadata", smaller: "smaller", metadataQualityDisplay: "metadataQualityDisplay" }, providers: [
41
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MetadataQualityComponent, isStandalone: true, selector: "gn-ui-metadata-quality", inputs: { metadata: "metadata", smaller: "smaller", metadataQualityDisplay: "metadataQualityDisplay", popoverDisplay: "popoverDisplay", propsToValidate: "propsToValidate", forceComputeScore: "forceComputeScore" }, providers: [
73
42
  provideIcons({
74
43
  matInfoOutline,
75
44
  }),
@@ -77,7 +46,7 @@ export class MetadataQualityComponent {
77
46
  size: '1.2em',
78
47
  strokeWidth: '1.5px',
79
48
  }),
80
- ], usesOnChanges: true, ngImport: i0, template: "<div\n *ngIf=\"metadataQualityDisplay\"\n class=\"flex items-center metadata-quality min-w-0\"\n [ngClass]=\"{ 'text-xs leading-[8px] m-h-[120px]': smaller }\"\n>\n <gn-ui-progress-bar\n tabindex=\"0\"\n [value]=\"qualityScore\"\n [type]=\"'light'\"\n class=\"flex-grow\"\n ></gn-ui-progress-bar>\n <gn-ui-popover\n [content]=\"popoverItems\"\n theme=\"light-border\"\n [class]=\"smaller ? 'ml-2' : 'ml-2 mt-1'\"\n >\n <ng-icon\n name=\"matInfoOutline\"\n class=\"flex-shrink-0 text-gray-600\"\n ></ng-icon>\n </gn-ui-popover>\n</div>\n<ng-template #popoverItems>\n <div class=\"p-2 py-4\">\n <div class=\"mb-4 font-bold\" translate>record.metadata.quality.details</div>\n <gn-ui-metadata-quality-item\n *ngFor=\"let e of items\"\n [name]=\"e.name\"\n [value]=\"e.value\"\n ></gn-ui-metadata-quality-item>\n </div>\n</ng-template>\n", styles: [":host gn-ui-progress-bar{--progress-bar-font-weight: \"normal\"}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PopoverComponent, selector: "gn-ui-popover", inputs: ["content", "theme"] }, { kind: "component", type: ProgressBarComponent, selector: "gn-ui-progress-bar", inputs: ["value", "type"] }, { kind: "component", type: MetadataQualityItemComponent, selector: "gn-ui-metadata-quality-item", inputs: ["name", "value"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
49
+ ], usesOnChanges: true, ngImport: i0, template: "<div\n *ngIf=\"metadataQualityDisplay\"\n class=\"flex items-center metadata-quality min-w-0\"\n [ngClass]=\"{ 'text-xs leading-[8px] m-h-[120px]': smaller }\"\n>\n <gn-ui-progress-bar\n tabindex=\"0\"\n [value]=\"qualityScore\"\n [type]=\"'light'\"\n class=\"flex-grow\"\n ></gn-ui-progress-bar>\n <gn-ui-popover\n *ngIf=\"popoverDisplay\"\n [content]=\"popoverItems\"\n theme=\"light-border\"\n [class]=\"smaller ? 'ml-2' : 'ml-2 mt-1'\"\n >\n <ng-icon\n name=\"matInfoOutline\"\n class=\"flex-shrink-0 text-gray-600\"\n ></ng-icon>\n </gn-ui-popover>\n</div>\n<ng-template #popoverItems>\n <div class=\"p-2 py-4\">\n <div class=\"mb-4 font-bold\" translate>record.metadata.quality.details</div>\n <gn-ui-metadata-quality-item\n *ngFor=\"let e of items\"\n [name]=\"e.name\"\n [value]=\"e.value\"\n ></gn-ui-metadata-quality-item>\n </div>\n</ng-template>\n", styles: [":host gn-ui-progress-bar{--progress-bar-font-weight: \"normal\"}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PopoverComponent, selector: "gn-ui-popover", inputs: ["content", "theme"] }, { kind: "component", type: ProgressBarComponent, selector: "gn-ui-progress-bar", inputs: ["value", "type"] }, { kind: "component", type: MetadataQualityItemComponent, selector: "gn-ui-metadata-quality-item", inputs: ["name", "value"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
81
50
  }
82
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataQualityComponent, decorators: [{
83
52
  type: Component,
@@ -96,12 +65,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
96
65
  size: '1.2em',
97
66
  strokeWidth: '1.5px',
98
67
  }),
99
- ], template: "<div\n *ngIf=\"metadataQualityDisplay\"\n class=\"flex items-center metadata-quality min-w-0\"\n [ngClass]=\"{ 'text-xs leading-[8px] m-h-[120px]': smaller }\"\n>\n <gn-ui-progress-bar\n tabindex=\"0\"\n [value]=\"qualityScore\"\n [type]=\"'light'\"\n class=\"flex-grow\"\n ></gn-ui-progress-bar>\n <gn-ui-popover\n [content]=\"popoverItems\"\n theme=\"light-border\"\n [class]=\"smaller ? 'ml-2' : 'ml-2 mt-1'\"\n >\n <ng-icon\n name=\"matInfoOutline\"\n class=\"flex-shrink-0 text-gray-600\"\n ></ng-icon>\n </gn-ui-popover>\n</div>\n<ng-template #popoverItems>\n <div class=\"p-2 py-4\">\n <div class=\"mb-4 font-bold\" translate>record.metadata.quality.details</div>\n <gn-ui-metadata-quality-item\n *ngFor=\"let e of items\"\n [name]=\"e.name\"\n [value]=\"e.value\"\n ></gn-ui-metadata-quality-item>\n </div>\n</ng-template>\n", styles: [":host gn-ui-progress-bar{--progress-bar-font-weight: \"normal\"}\n"] }]
68
+ ], template: "<div\n *ngIf=\"metadataQualityDisplay\"\n class=\"flex items-center metadata-quality min-w-0\"\n [ngClass]=\"{ 'text-xs leading-[8px] m-h-[120px]': smaller }\"\n>\n <gn-ui-progress-bar\n tabindex=\"0\"\n [value]=\"qualityScore\"\n [type]=\"'light'\"\n class=\"flex-grow\"\n ></gn-ui-progress-bar>\n <gn-ui-popover\n *ngIf=\"popoverDisplay\"\n [content]=\"popoverItems\"\n theme=\"light-border\"\n [class]=\"smaller ? 'ml-2' : 'ml-2 mt-1'\"\n >\n <ng-icon\n name=\"matInfoOutline\"\n class=\"flex-shrink-0 text-gray-600\"\n ></ng-icon>\n </gn-ui-popover>\n</div>\n<ng-template #popoverItems>\n <div class=\"p-2 py-4\">\n <div class=\"mb-4 font-bold\" translate>record.metadata.quality.details</div>\n <gn-ui-metadata-quality-item\n *ngFor=\"let e of items\"\n [name]=\"e.name\"\n [value]=\"e.value\"\n ></gn-ui-metadata-quality-item>\n </div>\n</ng-template>\n", styles: [":host gn-ui-progress-bar{--progress-bar-font-weight: \"normal\"}\n"] }]
100
69
  }], propDecorators: { metadata: [{
101
70
  type: Input
102
71
  }], smaller: [{
103
72
  type: Input
104
73
  }], metadataQualityDisplay: [{
105
74
  type: Input
75
+ }], popoverDisplay: [{
76
+ type: Input
77
+ }], propsToValidate: [{
78
+ type: Input
79
+ }], forceComputeScore: [{
80
+ type: Input
106
81
  }] } });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtcXVhbGl0eS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYy9saWIvbWV0YWRhdGEtcXVhbGl0eS9tZXRhZGF0YS1xdWFsaXR5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tZXRhZGF0YS1xdWFsaXR5L21ldGFkYXRhLXF1YWxpdHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFFTCw0QkFBNEIsR0FDN0IsTUFBTSwwREFBMEQsQ0FBQTtBQUVqRSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG9CQUFvQixHQUNyQixNQUFNLHVDQUF1QyxDQUFBO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTs7O0FBOEJqRSxNQUFNLE9BQU8sd0JBQXdCO0lBeEJyQztRQTBCVyxZQUFPLEdBQUcsS0FBSyxDQUFBO1FBR3hCLFVBQUssR0FBMEIsRUFBRSxDQUFBO1FBd0JoQixrQkFBYSxHQUFrQjtZQUM5QyxLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSztZQUN0QyxXQUFXLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsUUFB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QUksWUFBWSw4VkFDWixnQkFBZ0Isd0ZBQ2hCLG9CQUFvQiwwRkFDcEIsNEJBQTRCLG1HQUM1QixrQkFBa0Isa0hBQ2xCLE1BQU07OzRGQVlHLHdCQUF3QjtrQkF4QnBDLFNBQVM7K0JBQ0Usd0JBQXdCLG1CQUdqQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsb0JBQW9CO3dCQUNwQiw0QkFBNEI7d0JBQzVCLGtCQUFrQjt3QkFDbEIsTUFBTTtxQkFDUCxhQUNVO3dCQUNULFlBQVksQ0FBQzs0QkFDWCxjQUFjO3lCQUNmLENBQUM7d0JBQ0Ysb0JBQW9CLENBQUM7NEJBQ25CLElBQUksRUFBRSxPQUFPOzRCQUNiLFdBQVcsRUFBRSxPQUFPO3lCQUNyQixDQUFDO3FCQUNIOzhCQUdRLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBNZXRhZGF0YVF1YWxpdHlJdGVtLFxuICBNZXRhZGF0YVF1YWxpdHlJdGVtQ29tcG9uZW50LFxufSBmcm9tICcuLi9tZXRhZGF0YS1xdWFsaXR5LWl0ZW0vbWV0YWRhdGEtcXVhbGl0eS1pdGVtLmNvbXBvbmVudCdcbmltcG9ydCB7IENhdGFsb2dSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQge1xuICBQb3BvdmVyQ29tcG9uZW50LFxuICBQcm9ncmVzc0JhckNvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS93aWRnZXRzL3NyYydcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IFRyYW5zbGF0ZURpcmVjdGl2ZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBOZ0ljb24sIHByb3ZpZGVJY29ucywgcHJvdmlkZU5nSWNvbnNDb25maWcgfSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IG1hdEluZm9PdXRsaW5lIH0gZnJvbSAnQG5nLWljb25zL21hdGVyaWFsLWljb25zL291dGxpbmUnXG5cbnR5cGUgUXVhbGl0eUNoZWNrcyA9IHtcbiAgW2tleTogc3RyaW5nXTogKG1ldGFkYXRhOiBQYXJ0aWFsPENhdGFsb2dSZWNvcmQ+KSA9PiBib29sZWFuXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLW1ldGFkYXRhLXF1YWxpdHknLFxuICB0ZW1wbGF0ZVVybDogJy4vbWV0YWRhdGEtcXVhbGl0eS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21ldGFkYXRhLXF1YWxpdHkuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBQb3BvdmVyQ29tcG9uZW50LFxuICAgIFByb2dyZXNzQmFyQ29tcG9uZW50LFxuICAgIE1ldGFkYXRhUXVhbGl0eUl0ZW1Db21wb25lbnQsXG4gICAgVHJhbnNsYXRlRGlyZWN0aXZlLFxuICAgIE5nSWNvbixcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHtcbiAgICAgIG1hdEluZm9PdXRsaW5lLFxuICAgIH0pLFxuICAgIHByb3ZpZGVOZ0ljb25zQ29uZmlnKHtcbiAgICAgIHNpemU6ICcxLjJlbScsXG4gICAgICBzdHJva2VXaWR0aDogJzEuNXB4JyxcbiAgICB9KSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTWV0YWRhdGFRdWFsaXR5Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgbWV0YWRhdGE6IFBhcnRpYWw8Q2F0YWxvZ1JlY29yZD5cbiAgQElucHV0KCkgc21hbGxlciA9IGZhbHNlXG4gIEBJbnB1dCgpIG1ldGFkYXRhUXVhbGl0eURpc3BsYXk6IGJvb2xlYW5cblxuICBpdGVtczogTWV0YWRhdGFRdWFsaXR5SXRlbVtdID0gW11cblxuICBnZXQgcXVhbGl0eVNjb3JlKCkge1xuICAgIGNvbnN0IHF1YWxpdHlTY29yZSA9IHRoaXMubWV0YWRhdGE/LmV4dHJhcz8ucXVhbGl0eVNjb3JlXG4gICAgcmV0dXJuIHR5cGVvZiBxdWFsaXR5U2NvcmUgPT09ICdudW1iZXInXG4gICAgICA/IHF1YWxpdHlTY29yZVxuICAgICAgOiB0aGlzLmNhbGN1bGF0ZWRRdWFsaXR5U2NvcmVcbiAgfVxuXG4gIGdldCBjYWxjdWxhdGVkUXVhbGl0eVNjb3JlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQoXG4gICAgICAodGhpcy5pdGVtcy5maWx0ZXIoKHsgdmFsdWUgfSkgPT4gdmFsdWUpLmxlbmd0aCAqIDEwMCkgLyB0aGlzLml0ZW1zLmxlbmd0aFxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgYWRkKG5hbWU6IHN0cmluZywgdmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5tZXRhZGF0YVF1YWxpdHlEaXNwbGF5Py5bbmFtZV0gIT09IGZhbHNlKSB7XG4gICAgICB0aGlzLml0ZW1zLnB1c2goeyBuYW1lLCB2YWx1ZSB9KVxuICAgIH1cbiAgfVxuICBoYXNHZXRDYXBhYmlsaXRpZXModXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdXJsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2NhcGFiaWxpdGllcycpXG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IENPTU1PTl9DSEVDS1M6IFF1YWxpdHlDaGVja3MgPSB7XG4gICAgdGl0bGU6IChtZXRhZGF0YSkgPT4gISFtZXRhZGF0YT8udGl0bGUsXG4gICAgZGVzY3JpcHRpb246IChtZXRhZGF0YSkgPT4gISFtZXRhZGF0YT8uYWJzdHJhY3QsXG4gICAga2V5d29yZHM6IChtZXRhZGF0YSkgPT4gKG1ldGFkYXRhPy5rZXl3b3Jkcz8ubGVuZ3RoID8/IDApID4gMCxcbiAgICBsZWdhbENvbnN0cmFpbnRzOiAobWV0YWRhdGEpID0+XG4gICAgICAobWV0YWRhdGE/LmxlZ2FsQ29uc3RyYWludHM/Lmxlbmd0aCA/PyAwKSA+IDAsXG4gICAgY29udGFjdDogKG1ldGFkYXRhKSA9PiAhIW1ldGFkYXRhPy5jb250YWN0cz8uWzBdPy5lbWFpbCxcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgU1BFQ0lGSUNfQ0hFQ0tTOiBSZWNvcmQ8c3RyaW5nLCBRdWFsaXR5Q2hlY2tzPiA9IHtcbiAgICBkYXRhc2V0OiB7XG4gICAgICB1cGRhdGVGcmVxdWVuY3k6IChtZXRhZGF0YSkgPT4gISFtZXRhZGF0YT8udXBkYXRlRnJlcXVlbmN5LFxuICAgICAgdG9waWM6IChtZXRhZGF0YSkgPT4gKG1ldGFkYXRhPy50b3BpY3M/Lmxlbmd0aCA/PyAwKSA+IDAsXG4gICAgICBvcmdhbmlzYXRpb246IChtZXRhZGF0YSkgPT4gISFtZXRhZGF0YT8uY29udGFjdHM/LlswXT8ub3JnYW5pemF0aW9uPy5uYW1lLFxuICAgIH0sXG4gICAgc2VydmljZToge1xuICAgICAgY2FwYWJpbGl0aWVzOiAobWV0YWRhdGEpID0+XG4gICAgICAgIChtZXRhZGF0YT8ub25saW5lUmVzb3VyY2VzID8/IFtdKS5zb21lKChyZXNvdXJjZSkgPT5cbiAgICAgICAgICB0aGlzLmhhc0dldENhcGFiaWxpdGllcyhyZXNvdXJjZT8udXJsPy5ocmVmID8/ICcnKVxuICAgICAgICApLFxuICAgIH0sXG4gICAgcmV1c2U6IHtcbiAgICAgIHRvcGljOiAobWV0YWRhdGEpID0+IChtZXRhZGF0YT8udG9waWNzPy5sZW5ndGggPz8gMCkgPiAwLFxuICAgICAgb3JnYW5pc2F0aW9uOiAobWV0YWRhdGEpID0+ICEhbWV0YWRhdGE/LmNvbnRhY3RzPy5bMF0/Lm9yZ2FuaXphdGlvbj8ubmFtZSxcbiAgICAgIHNvdXJjZTogKG1ldGFkYXRhKSA9PiAhIW1ldGFkYXRhPy5leHRyYXM/LnNvdXJjZXNJZGVudGlmaWVycyxcbiAgICB9LFxuICB9XG5cbiAgaW5pdGlhbGl6ZSgpIHtcbiAgICB0aGlzLml0ZW1zID0gW11cblxuICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuQ09NTU9OX0NIRUNLUykuZm9yRWFjaCgoW25hbWUsIGNoZWNrXSkgPT4ge1xuICAgICAgdGhpcy5hZGQobmFtZSwgY2hlY2sodGhpcy5tZXRhZGF0YSkpXG4gICAgfSlcblxuICAgIGNvbnN0IGRhdGFzZXRUeXBlID0gdGhpcy5tZXRhZGF0YT8ua2luZFxuICAgIGlmIChkYXRhc2V0VHlwZSAmJiB0aGlzLlNQRUNJRklDX0NIRUNLU1tkYXRhc2V0VHlwZV0pIHtcbiAgICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuU1BFQ0lGSUNfQ0hFQ0tTW2RhdGFzZXRUeXBlXSkuZm9yRWFjaChcbiAgICAgICAgKFtuYW1lLCBjaGVja10pID0+IHtcbiAgICAgICAgICB0aGlzLmFkZChuYW1lLCBjaGVjayh0aGlzLm1ldGFkYXRhKSlcbiAgICAgICAgfVxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snbWV0YWRhdGEnXSB8fCBjaGFuZ2VzWydtZXRhZGF0YVF1YWxpdHlEaXNwbGF5J10pIHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZSgpXG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gICpuZ0lmPVwibWV0YWRhdGFRdWFsaXR5RGlzcGxheVwiXG4gIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgbWV0YWRhdGEtcXVhbGl0eSBtaW4tdy0wXCJcbiAgW25nQ2xhc3NdPVwieyAndGV4dC14cyBsZWFkaW5nLVs4cHhdIG0taC1bMTIwcHhdJzogc21hbGxlciB9XCJcbj5cbiAgPGduLXVpLXByb2dyZXNzLWJhclxuICAgIHRhYmluZGV4PVwiMFwiXG4gICAgW3ZhbHVlXT1cInF1YWxpdHlTY29yZVwiXG4gICAgW3R5cGVdPVwiJ2xpZ2h0J1wiXG4gICAgY2xhc3M9XCJmbGV4LWdyb3dcIlxuICA+PC9nbi11aS1wcm9ncmVzcy1iYXI+XG4gIDxnbi11aS1wb3BvdmVyXG4gICAgW2NvbnRlbnRdPVwicG9wb3Zlckl0ZW1zXCJcbiAgICB0aGVtZT1cImxpZ2h0LWJvcmRlclwiXG4gICAgW2NsYXNzXT1cInNtYWxsZXIgPyAnbWwtMicgOiAnbWwtMiBtdC0xJ1wiXG4gID5cbiAgICA8bmctaWNvblxuICAgICAgbmFtZT1cIm1hdEluZm9PdXRsaW5lXCJcbiAgICAgIGNsYXNzPVwiZmxleC1zaHJpbmstMCB0ZXh0LWdyYXktNjAwXCJcbiAgICA+PC9uZy1pY29uPlxuICA8L2duLXVpLXBvcG92ZXI+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjcG9wb3Zlckl0ZW1zPlxuICA8ZGl2IGNsYXNzPVwicC0yIHB5LTRcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWItNCBmb250LWJvbGRcIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLnF1YWxpdHkuZGV0YWlsczwvZGl2PlxuICAgIDxnbi11aS1tZXRhZGF0YS1xdWFsaXR5LWl0ZW1cbiAgICAgICpuZ0Zvcj1cImxldCBlIG9mIGl0ZW1zXCJcbiAgICAgIFtuYW1lXT1cImUubmFtZVwiXG4gICAgICBbdmFsdWVdPVwiZS52YWx1ZVwiXG4gICAgPjwvZ24tdWktbWV0YWRhdGEtcXVhbGl0eS1pdGVtPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtcXVhbGl0eS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYy9saWIvbWV0YWRhdGEtcXVhbGl0eS9tZXRhZGF0YS1xdWFsaXR5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tZXRhZGF0YS1xdWFsaXR5L21ldGFkYXRhLXF1YWxpdHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFFTCw0QkFBNEIsR0FDN0IsTUFBTSwwREFBMEQsQ0FBQTtBQUVqRSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG9CQUFvQixHQUNyQixNQUFNLHVDQUF1QyxDQUFBO0FBQzlDLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsbUJBQW1CLEdBRXBCLE1BQU0sd0NBQXdDLENBQUE7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3hELE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFBOzs7QUEwQmpFLE1BQU0sT0FBTyx3QkFBd0I7SUF4QnJDO1FBMEJXLFlBQU8sR0FBRyxLQUFLLENBQUE7UUFFZixtQkFBYyxHQUFHLElBQUksQ0FBQTtRQUVyQixzQkFBaUIsR0FBRyxLQUFLLENBQUEsQ0FBQyx5Q0FBeUM7UUFFNUUsVUFBSyxHQUEwQixFQUFFLENBQUE7S0FpQ2xDO0lBL0JDLElBQUksWUFBWTtRQUNkLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQjtZQUMxQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsWUFBWTtZQUNyQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFBO1FBRTdCLE9BQU8sT0FBTyxZQUFZLEtBQUssUUFBUTtZQUNyQyxDQUFDLENBQUMsWUFBWTtZQUNkLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUE7SUFDL0IsQ0FBQztJQUVELElBQUksb0JBQW9CO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FDZixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUMzRSxDQUFBO0lBQ0gsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxlQUFlLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQTtRQUM5QyxDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxHQUFHLENBQ3hFLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FDeEQsQ0FBQTtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksT0FBTyxDQUFDLHdCQUF3QixDQUFDLEVBQUUsQ0FBQztZQUM3RCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7UUFDbkIsQ0FBQztJQUNILENBQUM7K0dBeENVLHdCQUF3QjttR0FBeEIsd0JBQXdCLDJSQVZ4QjtZQUNULFlBQVksQ0FBQztnQkFDWCxjQUFjO2FBQ2YsQ0FBQztZQUNGLG9CQUFvQixDQUFDO2dCQUNuQixJQUFJLEVBQUUsT0FBTztnQkFDYixXQUFXLEVBQUUsT0FBTzthQUNyQixDQUFDO1NBQ0gsK0NDaERILHU2QkFpQ0EsMkhEQUksWUFBWSw4VkFDWixnQkFBZ0Isd0ZBQ2hCLG9CQUFvQiwwRkFDcEIsNEJBQTRCLG1HQUM1QixrQkFBa0Isa0hBQ2xCLE1BQU07OzRGQVlHLHdCQUF3QjtrQkF4QnBDLFNBQVM7K0JBQ0Usd0JBQXdCLG1CQUdqQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsb0JBQW9CO3dCQUNwQiw0QkFBNEI7d0JBQzVCLGtCQUFrQjt3QkFDbEIsTUFBTTtxQkFDUCxhQUNVO3dCQUNULFlBQVksQ0FBQzs0QkFDWCxjQUFjO3lCQUNmLENBQUM7d0JBQ0Ysb0JBQW9CLENBQUM7NEJBQ25CLElBQUksRUFBRSxPQUFPOzRCQUNiLFdBQVcsRUFBRSxPQUFPO3lCQUNyQixDQUFDO3FCQUNIOzhCQUdRLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIE1ldGFkYXRhUXVhbGl0eUl0ZW0sXG4gIE1ldGFkYXRhUXVhbGl0eUl0ZW1Db21wb25lbnQsXG59IGZyb20gJy4uL21ldGFkYXRhLXF1YWxpdHktaXRlbS9tZXRhZGF0YS1xdWFsaXR5LWl0ZW0uY29tcG9uZW50J1xuaW1wb3J0IHsgQ2F0YWxvZ1JlY29yZCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7XG4gIFBvcG92ZXJDb21wb25lbnQsXG4gIFByb2dyZXNzQmFyQ29tcG9uZW50LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3dpZGdldHMvc3JjJ1xuaW1wb3J0IHtcbiAgZ2V0UXVhbGl0eVZhbGlkYXRvcnMsXG4gIGdldEFsbEtleXNWYWxpZGF0b3IsXG4gIHR5cGUgVmFsaWRhdG9yTWFwcGVyS2V5cyxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBUcmFuc2xhdGVEaXJlY3RpdmUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgTmdJY29uLCBwcm92aWRlSWNvbnMsIHByb3ZpZGVOZ0ljb25zQ29uZmlnIH0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBtYXRJbmZvT3V0bGluZSB9IGZyb20gJ0BuZy1pY29ucy9tYXRlcmlhbC1pY29ucy9vdXRsaW5lJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1tZXRhZGF0YS1xdWFsaXR5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21ldGFkYXRhLXF1YWxpdHkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tZXRhZGF0YS1xdWFsaXR5LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUG9wb3ZlckNvbXBvbmVudCxcbiAgICBQcm9ncmVzc0JhckNvbXBvbmVudCxcbiAgICBNZXRhZGF0YVF1YWxpdHlJdGVtQ29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZURpcmVjdGl2ZSxcbiAgICBOZ0ljb24sXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHByb3ZpZGVJY29ucyh7XG4gICAgICBtYXRJbmZvT3V0bGluZSxcbiAgICB9KSxcbiAgICBwcm92aWRlTmdJY29uc0NvbmZpZyh7XG4gICAgICBzaXplOiAnMS4yZW0nLFxuICAgICAgc3Ryb2tlV2lkdGg6ICcxLjVweCcsXG4gICAgfSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE1ldGFkYXRhUXVhbGl0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIG1ldGFkYXRhOiBDYXRhbG9nUmVjb3JkXG4gIEBJbnB1dCgpIHNtYWxsZXIgPSBmYWxzZVxuICBASW5wdXQoKSBtZXRhZGF0YVF1YWxpdHlEaXNwbGF5OiBib29sZWFuXG4gIEBJbnB1dCgpIHBvcG92ZXJEaXNwbGF5ID0gdHJ1ZVxuICBASW5wdXQoKSBwcm9wc1RvVmFsaWRhdGU/OiBWYWxpZGF0b3JNYXBwZXJLZXlzW11cbiAgQElucHV0KCkgZm9yY2VDb21wdXRlU2NvcmUgPSBmYWxzZSAvLyBJbnN0ZWFkIG9mIHJldHVybmluZyBlcycgcXVhbGl0eSBzY29yZVxuXG4gIGl0ZW1zOiBNZXRhZGF0YVF1YWxpdHlJdGVtW10gPSBbXVxuXG4gIGdldCBxdWFsaXR5U2NvcmUoKSB7XG4gICAgY29uc3QgcXVhbGl0eVNjb3JlID0gIXRoaXMuZm9yY2VDb21wdXRlU2NvcmVcbiAgICAgID8gdGhpcy5tZXRhZGF0YT8uZXh0cmFzPy5xdWFsaXR5U2NvcmVcbiAgICAgIDogdGhpcy5jb21wdXRlZFF1YWxpdHlTY29yZVxuXG4gICAgcmV0dXJuIHR5cGVvZiBxdWFsaXR5U2NvcmUgPT09ICdudW1iZXInXG4gICAgICA/IHF1YWxpdHlTY29yZVxuICAgICAgOiB0aGlzLmNvbXB1dGVkUXVhbGl0eVNjb3JlXG4gIH1cblxuICBnZXQgY29tcHV0ZWRRdWFsaXR5U2NvcmUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5yb3VuZChcbiAgICAgICh0aGlzLml0ZW1zLmZpbHRlcigoeyB2YWx1ZSB9KSA9PiB2YWx1ZSkubGVuZ3RoICogMTAwKSAvIHRoaXMuaXRlbXMubGVuZ3RoXG4gICAgKVxuICB9XG5cbiAgaW5pdGlhbGl6ZSgpIHtcbiAgICBpZiAoIXRoaXMucHJvcHNUb1ZhbGlkYXRlKSB7XG4gICAgICB0aGlzLnByb3BzVG9WYWxpZGF0ZSA9IGdldEFsbEtleXNWYWxpZGF0b3IoKVxuICAgIH1cblxuICAgIHRoaXMuaXRlbXMgPSBnZXRRdWFsaXR5VmFsaWRhdG9ycyh0aGlzLm1ldGFkYXRhLCB0aGlzLnByb3BzVG9WYWxpZGF0ZSkubWFwKFxuICAgICAgKHsgbmFtZSwgdmFsaWRhdG9yIH0pID0+ICh7IG5hbWUsIHZhbHVlOiB2YWxpZGF0b3IoKSB9KVxuICAgIClcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snbWV0YWRhdGEnXSB8fCBjaGFuZ2VzWydtZXRhZGF0YVF1YWxpdHlEaXNwbGF5J10pIHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZSgpXG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gICpuZ0lmPVwibWV0YWRhdGFRdWFsaXR5RGlzcGxheVwiXG4gIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgbWV0YWRhdGEtcXVhbGl0eSBtaW4tdy0wXCJcbiAgW25nQ2xhc3NdPVwieyAndGV4dC14cyBsZWFkaW5nLVs4cHhdIG0taC1bMTIwcHhdJzogc21hbGxlciB9XCJcbj5cbiAgPGduLXVpLXByb2dyZXNzLWJhclxuICAgIHRhYmluZGV4PVwiMFwiXG4gICAgW3ZhbHVlXT1cInF1YWxpdHlTY29yZVwiXG4gICAgW3R5cGVdPVwiJ2xpZ2h0J1wiXG4gICAgY2xhc3M9XCJmbGV4LWdyb3dcIlxuICA+PC9nbi11aS1wcm9ncmVzcy1iYXI+XG4gIDxnbi11aS1wb3BvdmVyXG4gICAgKm5nSWY9XCJwb3BvdmVyRGlzcGxheVwiXG4gICAgW2NvbnRlbnRdPVwicG9wb3Zlckl0ZW1zXCJcbiAgICB0aGVtZT1cImxpZ2h0LWJvcmRlclwiXG4gICAgW2NsYXNzXT1cInNtYWxsZXIgPyAnbWwtMicgOiAnbWwtMiBtdC0xJ1wiXG4gID5cbiAgICA8bmctaWNvblxuICAgICAgbmFtZT1cIm1hdEluZm9PdXRsaW5lXCJcbiAgICAgIGNsYXNzPVwiZmxleC1zaHJpbmstMCB0ZXh0LWdyYXktNjAwXCJcbiAgICA+PC9uZy1pY29uPlxuICA8L2duLXVpLXBvcG92ZXI+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjcG9wb3Zlckl0ZW1zPlxuICA8ZGl2IGNsYXNzPVwicC0yIHB5LTRcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWItNCBmb250LWJvbGRcIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLnF1YWxpdHkuZGV0YWlsczwvZGl2PlxuICAgIDxnbi11aS1tZXRhZGF0YS1xdWFsaXR5LWl0ZW1cbiAgICAgICpuZ0Zvcj1cImxldCBlIG9mIGl0ZW1zXCJcbiAgICAgIFtuYW1lXT1cImUubmFtZVwiXG4gICAgICBbdmFsdWVdPVwiZS52YWx1ZVwiXG4gICAgPjwvZ24tdWktbWV0YWRhdGEtcXVhbGl0eS1pdGVtPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -6,16 +6,16 @@ import { matCheck, matWarningAmber } from '@ng-icons/material-icons/baseline';
6
6
  import * as i0 from "@angular/core";
7
7
  marker('record.metadata.quality.title.success');
8
8
  marker('record.metadata.quality.title.failed');
9
- marker('record.metadata.quality.description.success');
10
- marker('record.metadata.quality.description.failed');
11
- marker('record.metadata.quality.topic.success');
12
- marker('record.metadata.quality.topic.failed');
9
+ marker('record.metadata.quality.abstract.success');
10
+ marker('record.metadata.quality.abstract.failed');
11
+ marker('record.metadata.quality.topics.success');
12
+ marker('record.metadata.quality.topics.failed');
13
13
  marker('record.metadata.quality.keywords.success');
14
14
  marker('record.metadata.quality.keywords.failed');
15
15
  marker('record.metadata.quality.legalConstraints.success');
16
16
  marker('record.metadata.quality.legalConstraints.failed');
17
- marker('record.metadata.quality.contact.success');
18
- marker('record.metadata.quality.contact.failed');
17
+ marker('record.metadata.quality.contacts.success');
18
+ marker('record.metadata.quality.contacts.failed');
19
19
  marker('record.metadata.quality.updateFrequency.success');
20
20
  marker('record.metadata.quality.updateFrequency.failed');
21
21
  marker('record.metadata.quality.organisation.success');
@@ -42,4 +42,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
42
42
  }], value: [{
43
43
  type: Input
44
44
  }] } });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtcXVhbGl0eS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tZXRhZGF0YS1xdWFsaXR5LWl0ZW0vbWV0YWRhdGEtcXVhbGl0eS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tZXRhZGF0YS1xdWFsaXR5LWl0ZW0vbWV0YWRhdGEtcXVhbGl0eS1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFBOztBQUU3RSxNQUFNLENBQUMsdUNBQXVDLENBQUMsQ0FBQTtBQUMvQyxNQUFNLENBQUMsc0NBQXNDLENBQUMsQ0FBQTtBQUM5QyxNQUFNLENBQUMsNkNBQTZDLENBQUMsQ0FBQTtBQUNyRCxNQUFNLENBQUMsNENBQTRDLENBQUMsQ0FBQTtBQUNwRCxNQUFNLENBQUMsdUNBQXVDLENBQUMsQ0FBQTtBQUMvQyxNQUFNLENBQUMsc0NBQXNDLENBQUMsQ0FBQTtBQUM5QyxNQUFNLENBQUMsMENBQTBDLENBQUMsQ0FBQTtBQUNsRCxNQUFNLENBQUMseUNBQXlDLENBQUMsQ0FBQTtBQUNqRCxNQUFNLENBQUMsa0RBQWtELENBQUMsQ0FBQTtBQUMxRCxNQUFNLENBQUMsaURBQWlELENBQUMsQ0FBQTtBQUN6RCxNQUFNLENBQUMseUNBQXlDLENBQUMsQ0FBQTtBQUNqRCxNQUFNLENBQUMsd0NBQXdDLENBQUMsQ0FBQTtBQUNoRCxNQUFNLENBQUMsaURBQWlELENBQUMsQ0FBQTtBQUN6RCxNQUFNLENBQUMsZ0RBQWdELENBQUMsQ0FBQTtBQUN4RCxNQUFNLENBQUMsOENBQThDLENBQUMsQ0FBQTtBQUN0RCxNQUFNLENBQUMsNkNBQTZDLENBQUMsQ0FBQTtBQUNyRCxNQUFNLENBQUMsOENBQThDLENBQUMsQ0FBQTtBQUN0RCxNQUFNLENBQUMsNkNBQTZDLENBQUMsQ0FBQTtBQUNyRCxNQUFNLENBQUMsd0NBQXdDLENBQUMsQ0FBQTtBQUNoRCxNQUFNLENBQUMsdUNBQXVDLENBQUMsQ0FBQTtBQWUvQyxNQUFNLE9BQU8sNEJBQTRCO0lBSXZDLElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQTtJQUNwRCxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTywyQkFBMkIsSUFBSSxDQUFDLElBQUksSUFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUMzQixFQUFFLENBQUE7SUFDSixDQUFDOytHQVpVLDRCQUE0QjttR0FBNUIsNEJBQTRCLGlJQ3hDekMsa0tBSUEsNENEaUNZLE1BQU0sd0dBQUUsYUFBYSx1Q0FDaEIsQ0FBQyxZQUFZLENBQUMsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQzs7NEZBRWpELDRCQUE0QjtrQkFSeEMsU0FBUzsrQkFDRSw2QkFBNkIsbUJBRXRCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxpQkFDakIsQ0FBQyxZQUFZLENBQUMsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQzs4QkFHbkQsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IG1hcmtlciB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcidcbmltcG9ydCB7IE5nSWNvbiwgcHJvdmlkZUljb25zIH0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IG1hdENoZWNrLCBtYXRXYXJuaW5nQW1iZXIgfSBmcm9tICdAbmctaWNvbnMvbWF0ZXJpYWwtaWNvbnMvYmFzZWxpbmUnXG5cbm1hcmtlcigncmVjb3JkLm1ldGFkYXRhLnF1YWxpdHkudGl0bGUuc3VjY2VzcycpXG5tYXJrZXIoJ3JlY29yZC5tZXRhZGF0YS5xdWFsaXR5LnRpdGxlLmZhaWxlZCcpXG5tYXJrZXIoJ3JlY29yZC5tZXRhZGF0YS5xdWFsaXR5LmRlc2NyaXB0aW9uLnN1Y2Nlc3MnKVxubWFya2VyKCdyZWNvcmQubWV0YWRhdGEucXVhbGl0eS5kZXNjcmlwdGlvbi5mYWlsZWQnKVxubWFya2VyKCdyZWNvcmQubWV0YWRhdGEucXVhbGl0eS50b3BpYy5zdWNjZXNzJylcbm1hcmtlcigncmVjb3JkLm1ldGFkYXRhLnF1YWxpdHkudG9waWMuZmFpbGVkJylcbm1hcmtlcigncmVjb3JkLm1ldGFkYXRhLnF1YWxpdHkua2V5d29yZHMuc3VjY2VzcycpXG5tYXJrZXIoJ3JlY29yZC5tZXRhZGF0YS5xdWFsaXR5LmtleXdvcmRzLmZhaWxlZCcpXG5tYXJrZXIoJ3JlY29yZC5tZXRhZGF0YS5xdWFsaXR5LmxlZ2FsQ29uc3RyYWludHMuc3VjY2VzcycpXG5tYXJrZXIoJ3JlY29yZC5tZXRhZGF0YS5xdWFsaXR5LmxlZ2FsQ29uc3RyYWludHMuZmFpbGVkJylcbm1hcmtlcigncmVjb3JkLm1ldGFkYXRhLnF1YWxpdHkuY29udGFjdC5zdWNjZXNzJylcbm1hcmtlcigncmVjb3JkLm1ldGFkYXRhLnF1YWxpdHkuY29udGFjdC5mYWlsZWQnKVxubWFya2VyKCdyZWNvcmQubWV0YWRhdGEucXVhbGl0eS51cGRhdGVGcmVxdWVuY3kuc3VjY2VzcycpXG5tYXJrZXIoJ3JlY29yZC5tZXRhZGF0YS5xdWFsaXR5LnVwZGF0ZUZyZXF1ZW5jeS5mYWlsZWQnKVxubWFya2VyKCdyZWNvcmQubWV0YWRhdGEucXVhbGl0eS5vcmdhbmlzYXRpb24uc3VjY2VzcycpXG5tYXJrZXIoJ3JlY29yZC5tZXRhZGF0YS5xdWFsaXR5Lm9yZ2FuaXNhdGlvbi5mYWlsZWQnKVxubWFya2VyKCdyZWNvcmQubWV0YWRhdGEucXVhbGl0eS5jYXBhYmlsaXRpZXMuc3VjY2VzcycpXG5tYXJrZXIoJ3JlY29yZC5tZXRhZGF0YS5xdWFsaXR5LmNhcGFiaWxpdGllcy5mYWlsZWQnKVxubWFya2VyKCdyZWNvcmQubWV0YWRhdGEucXVhbGl0eS5zb3VyY2Uuc3VjY2VzcycpXG5tYXJrZXIoJ3JlY29yZC5tZXRhZGF0YS5xdWFsaXR5LnNvdXJjZS5mYWlsZWQnKVxuXG5leHBvcnQgaW50ZXJmYWNlIE1ldGFkYXRhUXVhbGl0eUl0ZW0ge1xuICBuYW1lOiBzdHJpbmdcbiAgdmFsdWU6IGJvb2xlYW5cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktbWV0YWRhdGEtcXVhbGl0eS1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21ldGFkYXRhLXF1YWxpdHktaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdJY29uLCBUcmFuc2xhdGVQaXBlXSxcbiAgdmlld1Byb3ZpZGVyczogW3Byb3ZpZGVJY29ucyh7IG1hdENoZWNrLCBtYXRXYXJuaW5nQW1iZXIgfSldLFxufSlcbmV4cG9ydCBjbGFzcyBNZXRhZGF0YVF1YWxpdHlJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgTWV0YWRhdGFRdWFsaXR5SXRlbSB7XG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZ1xuICBASW5wdXQoKSB2YWx1ZTogYm9vbGVhblxuXG4gIGdldCBpY29uKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlID8gJ21hdENoZWNrJyA6ICdtYXRXYXJuaW5nQW1iZXInXG4gIH1cblxuICBnZXQgbGFiZWxLZXkoKSB7XG4gICAgcmV0dXJuIGByZWNvcmQubWV0YWRhdGEucXVhbGl0eS4ke3RoaXMubmFtZX0uJHtcbiAgICAgIHRoaXMudmFsdWUgPyAnc3VjY2VzcycgOiAnZmFpbGVkJ1xuICAgIH1gXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtbC00IGZsZXggZmxleC1yb3dcIj5cbiAgPG5nLWljb24gW25hbWVdPVwiaWNvblwiIGNsYXNzPVwibWluLXctZml0XCI+PC9uZy1pY29uPlxuICA8cCBjbGFzcz1cIm1sLTIgdGV4dFwiPnt7IGxhYmVsS2V5IHwgdHJhbnNsYXRlIH19PC9wPlxuPC9kaXY+XG4iXX0=
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtcXVhbGl0eS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tZXRhZGF0YS1xdWFsaXR5LWl0ZW0vbWV0YWRhdGEtcXVhbGl0eS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tZXRhZGF0YS1xdWFsaXR5LWl0ZW0vbWV0YWRhdGEtcXVhbGl0eS1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFBOztBQUU3RSxNQUFNLENBQUMsdUNBQXVDLENBQUMsQ0FBQTtBQUMvQyxNQUFNLENBQUMsc0NBQXNDLENBQUMsQ0FBQTtBQUM5QyxNQUFNLENBQUMsMENBQTBDLENBQUMsQ0FBQTtBQUNsRCxNQUFNLENBQUMseUNBQXlDLENBQUMsQ0FBQTtBQUNqRCxNQUFNLENBQUMsd0NBQXdDLENBQUMsQ0FBQTtBQUNoRCxNQUFNLENBQUMsdUNBQXVDLENBQUMsQ0FBQTtBQUMvQyxNQUFNLENBQUMsMENBQTBDLENBQUMsQ0FBQTtBQUNsRCxNQUFNLENBQUMseUNBQXlDLENBQUMsQ0FBQTtBQUNqRCxNQUFNLENBQUMsa0RBQWtELENBQUMsQ0FBQTtBQUMxRCxNQUFNLENBQUMsaURBQWlELENBQUMsQ0FBQTtBQUN6RCxNQUFNLENBQUMsMENBQTBDLENBQUMsQ0FBQTtBQUNsRCxNQUFNLENBQUMseUNBQXlDLENBQUMsQ0FBQTtBQUNqRCxNQUFNLENBQUMsaURBQWlELENBQUMsQ0FBQTtBQUN6RCxNQUFNLENBQUMsZ0RBQWdELENBQUMsQ0FBQTtBQUN4RCxNQUFNLENBQUMsOENBQThDLENBQUMsQ0FBQTtBQUN0RCxNQUFNLENBQUMsNkNBQTZDLENBQUMsQ0FBQTtBQUNyRCxNQUFNLENBQUMsOENBQThDLENBQUMsQ0FBQTtBQUN0RCxNQUFNLENBQUMsNkNBQTZDLENBQUMsQ0FBQTtBQUNyRCxNQUFNLENBQUMsd0NBQXdDLENBQUMsQ0FBQTtBQUNoRCxNQUFNLENBQUMsdUNBQXVDLENBQUMsQ0FBQTtBQWUvQyxNQUFNLE9BQU8sNEJBQTRCO0lBSXZDLElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQTtJQUNwRCxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTywyQkFBMkIsSUFBSSxDQUFDLElBQUksSUFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUMzQixFQUFFLENBQUE7SUFDSixDQUFDOytHQVpVLDRCQUE0QjttR0FBNUIsNEJBQTRCLGlJQ3hDekMsa0tBSUEsNENEaUNZLE1BQU0sd0dBQUUsYUFBYSx1Q0FDaEIsQ0FBQyxZQUFZLENBQUMsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQzs7NEZBRWpELDRCQUE0QjtrQkFSeEMsU0FBUzsrQkFDRSw2QkFBNkIsbUJBRXRCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxpQkFDakIsQ0FBQyxZQUFZLENBQUMsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQzs4QkFHbkQsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IG1hcmtlciB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcidcbmltcG9ydCB7IE5nSWNvbiwgcHJvdmlkZUljb25zIH0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IG1hdENoZWNrLCBtYXRXYXJuaW5nQW1iZXIgfSBmcm9tICdAbmctaWNvbnMvbWF0ZXJpYWwtaWNvbnMvYmFzZWxpbmUnXG5cbm1hcmtlcigncmVjb3JkLm1ldGFkYXRhLnF1YWxpdHkudGl0bGUuc3VjY2VzcycpXG5tYXJrZXIoJ3JlY29yZC5tZXRhZGF0YS5xdWFsaXR5LnRpdGxlLmZhaWxlZCcpXG5tYXJrZXIoJ3JlY29yZC5tZXRhZGF0YS5xdWFsaXR5LmFic3RyYWN0LnN1Y2Nlc3MnKVxubWFya2VyKCdyZWNvcmQubWV0YWRhdGEucXVhbGl0eS5hYnN0cmFjdC5mYWlsZWQnKVxubWFya2VyKCdyZWNvcmQubWV0YWRhdGEucXVhbGl0eS50b3BpY3Muc3VjY2VzcycpXG5tYXJrZXIoJ3JlY29yZC5tZXRhZGF0YS5xdWFsaXR5LnRvcGljcy5mYWlsZWQnKVxubWFya2VyKCdyZWNvcmQubWV0YWRhdGEucXVhbGl0eS5rZXl3b3Jkcy5zdWNjZXNzJylcbm1hcmtlcigncmVjb3JkLm1ldGFkYXRhLnF1YWxpdHkua2V5d29yZHMuZmFpbGVkJylcbm1hcmtlcigncmVjb3JkLm1ldGFkYXRhLnF1YWxpdHkubGVnYWxDb25zdHJhaW50cy5zdWNjZXNzJylcbm1hcmtlcigncmVjb3JkLm1ldGFkYXRhLnF1YWxpdHkubGVnYWxDb25zdHJhaW50cy5mYWlsZWQnKVxubWFya2VyKCdyZWNvcmQubWV0YWRhdGEucXVhbGl0eS5jb250YWN0cy5zdWNjZXNzJylcbm1hcmtlcigncmVjb3JkLm1ldGFkYXRhLnF1YWxpdHkuY29udGFjdHMuZmFpbGVkJylcbm1hcmtlcigncmVjb3JkLm1ldGFkYXRhLnF1YWxpdHkudXBkYXRlRnJlcXVlbmN5LnN1Y2Nlc3MnKVxubWFya2VyKCdyZWNvcmQubWV0YWRhdGEucXVhbGl0eS51cGRhdGVGcmVxdWVuY3kuZmFpbGVkJylcbm1hcmtlcigncmVjb3JkLm1ldGFkYXRhLnF1YWxpdHkub3JnYW5pc2F0aW9uLnN1Y2Nlc3MnKVxubWFya2VyKCdyZWNvcmQubWV0YWRhdGEucXVhbGl0eS5vcmdhbmlzYXRpb24uZmFpbGVkJylcbm1hcmtlcigncmVjb3JkLm1ldGFkYXRhLnF1YWxpdHkuY2FwYWJpbGl0aWVzLnN1Y2Nlc3MnKVxubWFya2VyKCdyZWNvcmQubWV0YWRhdGEucXVhbGl0eS5jYXBhYmlsaXRpZXMuZmFpbGVkJylcbm1hcmtlcigncmVjb3JkLm1ldGFkYXRhLnF1YWxpdHkuc291cmNlLnN1Y2Nlc3MnKVxubWFya2VyKCdyZWNvcmQubWV0YWRhdGEucXVhbGl0eS5zb3VyY2UuZmFpbGVkJylcblxuZXhwb3J0IGludGVyZmFjZSBNZXRhZGF0YVF1YWxpdHlJdGVtIHtcbiAgbmFtZTogc3RyaW5nXG4gIHZhbHVlOiBib29sZWFuXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLW1ldGFkYXRhLXF1YWxpdHktaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZXRhZGF0YS1xdWFsaXR5LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nSWNvbiwgVHJhbnNsYXRlUGlwZV0sXG4gIHZpZXdQcm92aWRlcnM6IFtwcm92aWRlSWNvbnMoeyBtYXRDaGVjaywgbWF0V2FybmluZ0FtYmVyIH0pXSxcbn0pXG5leHBvcnQgY2xhc3MgTWV0YWRhdGFRdWFsaXR5SXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE1ldGFkYXRhUXVhbGl0eUl0ZW0ge1xuICBASW5wdXQoKSBuYW1lOiBzdHJpbmdcbiAgQElucHV0KCkgdmFsdWU6IGJvb2xlYW5cblxuICBnZXQgaWNvbigpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSA/ICdtYXRDaGVjaycgOiAnbWF0V2FybmluZ0FtYmVyJ1xuICB9XG5cbiAgZ2V0IGxhYmVsS2V5KCkge1xuICAgIHJldHVybiBgcmVjb3JkLm1ldGFkYXRhLnF1YWxpdHkuJHt0aGlzLm5hbWV9LiR7XG4gICAgICB0aGlzLnZhbHVlID8gJ3N1Y2Nlc3MnIDogJ2ZhaWxlZCdcbiAgICB9YFxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWwtNCBmbGV4IGZsZXgtcm93XCI+XG4gIDxuZy1pY29uIFtuYW1lXT1cImljb25cIiBjbGFzcz1cIm1pbi13LWZpdFwiPjwvbmctaWNvbj5cbiAgPHAgY2xhc3M9XCJtbC0yIHRleHRcIj57eyBsYWJlbEtleSB8IHRyYW5zbGF0ZSB9fTwvcD5cbjwvZGl2PlxuIl19
@@ -89,11 +89,6 @@ export class ServiceCapabilitiesComponent {
89
89
  }
90
90
  }
91
91
  selectLayer(layer) {
92
- if (layer === this.selectedLayer) {
93
- this.selectedLayer = null;
94
- this.layerInformation = [];
95
- return;
96
- }
97
92
  this.selectedLayer = layer;
98
93
  const filteredInfo = [];
99
94
  Object.keys(layer).map((key) => {
@@ -167,4 +162,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
167
162
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.TranslateService }], propDecorators: { apiLinks: [{
168
163
  type: Input
169
164
  }] } });
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jYXBhYmlsaXRpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMvbGliL3NlcnZpY2UtY2FwYWJpbGl0aWVzL3NlcnZpY2UtY2FwYWJpbGl0aWVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9zZXJ2aWNlLWNhcGFiaWxpdGllcy9zZXJ2aWNlLWNhcGFiaWxpdGllcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQTtBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsZ0JBQWdCLEdBQ2pCLE1BQU0scUJBQXFCLENBQUE7QUFDNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUMxRixPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQ2pFLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEdBQ3hCLE1BQU0sdUNBQXVDLENBQUE7QUFNOUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1DQUFtQyxDQUFBOzs7O0FBRTVELE1BQU0sQ0FBQyx5QkFB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LEtBQUssSUFBSSxDQUFDLGFBQWE7WUFDckMsQ0FBQyxDQUFDLHNGQUFzRjtZQUN4RixDQUFDLENBQUMsZ0JBQWdCLENBQUE7SUFDdEIsQ0FBQzsrR0FwSVUsNEJBQTRCO21HQUE1Qiw0QkFBNEIsd0hDOUR6QyxtNUlBOEdBLHlERG5FSSxZQUFZLGdRQUNaLGtCQUFrQiw2R0FDbEIsYUFBYSxrREFDYixlQUFlLCtIQUNmLGtCQUFrQiwrSkFDbEIsTUFBTSw2R0FDTixnQkFBZ0Isd0ZBQ2hCLHVCQUF1Qix1REFFVjtZQUNiLFlBQVksQ0FBQztnQkFDWCxhQUFhO2dCQUNiLGNBQWM7Z0JBQ2QsUUFBUTthQUNULENBQUM7U0FDSDs7NEZBSVUsNEJBQTRCO2tCQXZCeEMsU0FBUzsrQkFDRSw0QkFBNEIsY0FDMUIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixNQUFNO3dCQUNOLGdCQUFnQjt3QkFDaEIsdUJBQXVCO3FCQUN4QixpQkFDYzt3QkFDYixZQUFZLENBQUM7NEJBQ1gsYUFBYTs0QkFDYixjQUFjOzRCQUNkLFFBQVE7eUJBQ1QsQ0FBQztxQkFDSDtxSEFLUSxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQge1xuICBUcmFuc2xhdGVEaXJlY3RpdmUsXG4gIFRyYW5zbGF0ZVBpcGUsXG4gIFRyYW5zbGF0ZVNlcnZpY2UsXG59IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBnZXRMYXllcnMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCwgVGV4dElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgTmdJY29uLCBwcm92aWRlSWNvbnMgfSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IGljb25vaXJTZWFyY2ggfSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcbmltcG9ydCB7IG1hcmtlciB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcidcbmltcG9ydCB7IG1hdEluZm9PdXRsaW5lIH0gZnJvbSAnQG5nLWljb25zL21hdGVyaWFsLWljb25zL291dGxpbmUnXG5pbXBvcnQge1xuICBQb3BvdmVyQ29tcG9uZW50LFxuICBTcGlubmluZ0xvYWRlckNvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS93aWRnZXRzL3NyYydcbmltcG9ydCB7XG4gIFdmc0ZlYXR1cmVUeXBlRnVsbCxcbiAgV21zTGF5ZXJGdWxsLFxuICBXbXRzTGF5ZXIsXG59IGZyb20gJ0BjYW1wdG9jYW1wL29nYy1jbGllbnQnXG5pbXBvcnQgeyBtYXRDbG9zZSB9IGZyb20gJ0BuZy1pY29ucy9tYXRlcmlhbC1pY29ucy9iYXNlbGluZSdcblxubWFya2VyKGBzZXJ2aWNlLm1ldGFkYXRhLnNlYXJjaGApXG5tYXJrZXIoYHNlcnZpY2UubWV0YWRhdGEuY2FwYWJpbGl0aWVzLnRpdGxlYClcbm1hcmtlcihgc2VydmljZS5tZXRhZGF0YS5jYXBhYmlsaXRpZXMuYWJzdHJhY3RgKVxubWFya2VyKGBzZXJ2aWNlLm1ldGFkYXRhLmNhcGFiaWxpdGllcy5uYW1lYClcbm1hcmtlcihgc2VydmljZS5tZXRhZGF0YS5jYXBhYmlsaXRpZXMuZGVmYXVsdENyc2ApXG5tYXJrZXIoYHNlcnZpY2UubWV0YWRhdGEuY2FwYWJpbGl0aWVzLmF2YWlsYWJsZUNyc2ApXG5tYXJrZXIoYHNlcnZpY2UubWV0YWRhdGEuY2FwYWJpbGl0aWVzLm90aGVyQ3JzYClcbm1hcmtlcihgc2VydmljZS5tZXRhZGF0YS5jYXBhYmlsaXRpZXMub2JqZWN0Q291bnRgKVxubWFya2VyKGBzZXJ2aWNlLm1ldGFkYXRhLmNhcGFiaWxpdGllcy5nZW9tZXRyeU5hbWVgKVxubWFya2VyKGBzZXJ2aWNlLm1ldGFkYXRhLmNhcGFiaWxpdGllcy5nZW9tZXRyeVR5cGVgKVxubWFya2VyKGBzZXJ2aWNlLm1ldGFkYXRhLmNhcGFiaWxpdGllcy5rZXl3b3Jkc2ApXG5tYXJrZXIoYHNlcnZpY2UubWV0YWRhdGEuY2FwYWJpbGl0aWVzLm91dHB1dEZvcm1hdHNgKVxubWFya2VyKGBzZXJ2aWNlLm1ldGFkYXRhLmNhcGFiaWxpdGllcy5yZXNvdXJjZUxpbmtzYClcbm1hcmtlcihgc2VydmljZS5tZXRhZGF0YS5jYXBhYmlsaXRpZXMuYXR0cmlidXRpb25gKVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1zZXJ2aWNlLWNhcGFiaWxpdGllcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlRGlyZWN0aXZlLFxuICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIFRleHRJbnB1dENvbXBvbmVudCxcbiAgICBOZ0ljb24sXG4gICAgUG9wb3ZlckNvbXBvbmVudCxcbiAgICBTcGlubmluZ0xvYWRlckNvbXBvbmVudCxcbiAgXSxcbiAgdmlld1Byb3ZpZGVyczogW1xuICAgIHByb3ZpZGVJY29ucyh7XG4gICAgICBpY29ub2lyU2VhcmNoLFxuICAgICAgbWF0SW5mb091dGxpbmUsXG4gICAgICBtYXRDbG9zZSxcbiAgICB9KSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlcnZpY2UtY2FwYWJpbGl0aWVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3NlcnZpY2UtY2FwYWJpbGl0aWVzLmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBTZXJ2aWNlQ2FwYWJpbGl0aWVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgYXBpTGlua3MgPSBbXVxuICBhdmFpbGFibGVMYXllcnMgPSBbXVxuICBmaWx0ZXJlZExheWVycyA9IFtdXG4gIHNlbGVjdGVkTGF5ZXIgPSBudWxsXG4gIGxheWVySW5mb3JtYXRpb24gPSBbXVxuICBzZWFyY2hRdWVyeSA9ICcnXG4gIGxvYWRpbmcgPSBmYWxzZVxuICBzZWFyY2hBY3RpdmVcblxuICBjYXBhYmlsaXRpZXNLZXlzID0gW1xuICAgICd0aXRsZScsXG4gICAgJ2Fic3RyYWN0JyxcbiAgICAnbmFtZScsXG4gICAgJ2RlZmF1bHRDcnMnLFxuICAgICdhdmFpbGFibGVDcnMnLFxuICAgICdvdGhlckNycycsXG4gICAgJ29iamVjdENvdW50JyxcbiAgICAnZ2VvbWV0cnlOYW1lJyxcbiAgICAnZ2VvbWV0cnlUeXBlJyxcbiAgICAna2V5d29yZHMnLFxuICAgICdvdXRwdXRGb3JtYXRzJyxcbiAgICAncmVzb3VyY2VMaW5rcycsXG4gICAgJ2F0dHJpYnV0aW9uJyxcbiAgXVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubG9hZExheWVycygpXG4gIH1cblxuICBvblNlYXJjaENoYW5nZShldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50XG4gICAgdGhpcy5zZWFyY2hRdWVyeSA9IGlucHV0LnZhbHVlXG4gICAgaWYgKCFpbnB1dC52YWx1ZSkge1xuICAgICAgdGhpcy5zZWFyY2hBY3RpdmUgPSBmYWxzZVxuICAgICAgdGhpcy5maWx0ZXJlZExheWVycyA9IHRoaXMuYXZhaWxhYmxlTGF5ZXJzXG4gICAgfVxuICB9XG5cbiAgb25TZWFyY2hFbnRlcihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgIHRoaXMuc2VhcmNoQWN0aXZlID0gdHJ1ZVxuICAgICAgdGhpcy5zZWFyY2hMYXllcnMoKVxuICAgIH1cbiAgfVxuXG4gIGNsZWFyU2VhcmNoKCkge1xuICAgIHRoaXMuc2VhcmNoQWN0aXZlID0gZmFsc2VcbiAgICB0aGlzLnNlYXJjaFF1ZXJ5ID0gJydcbiAgICB0aGlzLmZpbHRlcmVkTGF5ZXJzID0gdGhpcy5hdmFpbGFibGVMYXllcnNcbiAgfVxuXG4gIGFzeW5jIGxvYWRMYXllcnMoKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5hcGlMaW5rcy5sZW5ndGggPiAwICYmXG4gICAgICB0aGlzLmFwaUxpbmtzWzBdLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCAhPT0gJ29nY0ZlYXR1cmVzJ1xuICAgICkge1xuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZVxuICAgICAgdGhpcy5hdmFpbGFibGVMYXllcnMgPSBhd2FpdCBnZXRMYXllcnMoXG4gICAgICAgIHRoaXMuYXBpTGlua3NbMF0udXJsLmhyZWYsXG4gICAgICAgIHRoaXMuYXBpTGlua3NbMF0uYWNjZXNzU2VydmljZVByb3RvY29sXG4gICAgICApXG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZVxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gICAgICB0aGlzLmZpbHRlcmVkTGF5ZXJzID0gdGhpcy5hdmFpbGFibGVMYXllcnNcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hdmFpbGFibGVMYXllcnMgPSBbXVxuICAgIH1cbiAgfVxuXG4gIHNlbGVjdExheWVyKGxheWVyOiBXZnNGZWF0dXJlVHlwZUZ1bGwgfCBXbXNMYXllckZ1bGwgfCBXbXRzTGF5ZXIpIHtcbiAgICBpZiAobGF5ZXIgPT09IHRoaXMuc2VsZWN0ZWRMYXllcikge1xuICAgICAgdGhpcy5zZWxlY3RlZExheWVyID0gbnVsbFxuICAgICAgdGhpcy5sYXllckluZm9ybWF0aW9uID0gW11cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0ZWRMYXllciA9IGxheWVyXG4gICAgY29uc3QgZmlsdGVyZWRJbmZvID0gW11cbiAgICBPYmplY3Qua2V5cyhsYXllcikubWFwKChrZXkpID0+IHtcbiAgICAgIGlmICh0aGlzLmNhcGFiaWxpdGllc0tleXMuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgIGBzZXJ2aWNlLm1ldGFkYXRhLmNhcGFiaWxpdGllcy4ke2tleX1gXG4gICAgICAgIClcbiAgICAgICAgaWYgKGtleSBpbiBsYXllciAmJiBsYXllcltrZXldPy5sZW5ndGgpIHtcbiAgICAgICAgICBmaWx0ZXJlZEluZm8ucHVzaCh7IGRpc3BsYXlOYW1lLCB2YWx1ZTogbGF5ZXJba2V5XSB9KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcblxuICAgIHRoaXMubGF5ZXJJbmZvcm1hdGlvbiA9IGZpbHRlcmVkSW5mb1xuICB9XG5cbiAgaXNMaXN0KHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKVxuICB9XG5cbiAgZ2V0RXh0cmFJbnB1dENsYXNzKCkge1xuICAgIGlmICh0aGlzLnNlYXJjaEFjdGl2ZSkge1xuICAgICAgcmV0dXJuICdoLTE0IGJvcmRlciByb3VuZGVkLWxnIGJvcmRlci1wcmltYXJ5IHRleHQtcHJpbWFyeSBmb2N1czpib3JkZXItcHJpbWFyeSBob3Zlcjpib3JkZXItcHJpbWFyeSdcbiAgICB9XG4gICAgcmV0dXJuICdoLTE0IGJvcmRlciByb3VuZGVkLWxnJ1xuICB9XG5cbiAgc2VhcmNoTGF5ZXJzKCkge1xuICAgIHRoaXMuc2VhcmNoQWN0aXZlID0gdHJ1ZVxuICAgIHRoaXMuZmlsdGVyZWRMYXllcnMgPSB0aGlzLmF2YWlsYWJsZUxheWVycy5maWx0ZXIoKGxheWVyKSA9PiB7XG4gICAgICBjb25zdCBxdWVyeSA9IHRoaXMuc2VhcmNoUXVlcnkudG9Mb3dlckNhc2UoKVxuICAgICAgaWYgKGxheWVyLnRpdGxlKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgbGF5ZXIudGl0bGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxdWVyeSkgfHxcbiAgICAgICAgICBsYXllci5hYnN0cmFjdD8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxdWVyeSlcbiAgICAgICAgKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGxheWVyLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxdWVyeSlcbiAgICAgIH1cbiAgICB9KVxuICAgIGlmICghdGhpcy5maWx0ZXJlZExheWVycy5pbmNsdWRlcyh0aGlzLnNlbGVjdGVkTGF5ZXIpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkTGF5ZXIgPSBudWxsXG4gICAgICB0aGlzLmxheWVySW5mb3JtYXRpb24gPSBbXVxuICAgIH1cbiAgfVxuXG4gIGdldEV4dHJhQ2xhc3MobGF5ZXJJdGVtKSB7XG4gICAgcmV0dXJuIGxheWVySXRlbSA9PT0gdGhpcy5zZWxlY3RlZExheWVyXG4gICAgICA/IGBoLTggcm91bmRlZC1sZyBiZy1wcmltYXJ5LWRhcmtlciB0ZXh0LXdoaXRlIGhvdmVyOnRleHQtcHJpbWFyeS1kYXJrZXIgaG92ZXI6Ymctd2hpdGVgXG4gICAgICA6IGBoLTggcm91bmRlZC1sZ2BcbiAgfVxufVxuIiwiPGRpdiBzdHlsZT1cImhlaWdodDogNjUycHhcIiBpZD1cInByZXZpZXdcIiAqbmdJZj1cImFwaUxpbmtzLmxlbmd0aCA+IDBcIj5cbiAgPGRpdiBjbGFzcz1cImJnLXByaW1hcnktb3BhY2l0eS0xMCBvdmVyZmxvdy12aXNpYmxlXCIgc3R5bGU9XCJoZWlnaHQ6IDQyMHB4XCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1sZyBweC00IGxnOm14LWF1dG9cIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnbi11aS1zZWN0aW9uLXRpdGxlIG1iLTZcIiB0cmFuc2xhdGU+XG4gICAgICAgICAgc2VydmljZS5tZXRhZGF0YS5jYXBhYmlsaXRpZXNcbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAqbmdJZj1cImxvYWRpbmdcIlxuICAgICAgICAgIGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNlbnRlciB3LWZ1bGwgaC1bMjAwcHhdIGl0ZW1zLWNlbnRlclwiXG4gICAgICAgID5cbiAgICAgICAgICA8Z24tdWktc3Bpbm5pbmctbG9hZGVyPjwvZ24tdWktc3Bpbm5pbmctbG9hZGVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIiFsb2FkaW5nXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLTVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLTE0IG1kOnctMi81IHctZnVsbCBtYi00IGZsZXggZmxleC1yb3cgcmVsYXRpdmVcIj5cbiAgICAgICAgICAgICAgPGduLXVpLXRleHQtaW5wdXRcbiAgICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbFwiXG4gICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwic2VhcmNoUXVlcnlcIlxuICAgICAgICAgICAgICAgIFtleHRyYUNsYXNzXT1cImdldEV4dHJhSW5wdXRDbGFzcygpXCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3NlcnZpY2UubWV0YWRhdGEuc2VhcmNoJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgKGlucHV0KT1cIm9uU2VhcmNoQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uU2VhcmNoRW50ZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9nbi11aS10ZXh0LWlucHV0PlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSByaWdodC0xNCBoLTE0IHctMTQgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgI2lucHV0QnRuXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cInNlYXJjaFF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgIFthcmlhLWxhYmVsXT1cIidzZXJ2aWNlLm1ldGFkYXRhLnNlYXJjaC5jbGVhcicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyU2VhcmNoKClcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoLTEyIHctMTIgYm9yZGVyLTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxuZy1pY29uIG5hbWU9XCJtYXRDbG9zZVwiPjwvbmctaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItbCBhYnNvbHV0ZSBib3JkZXItZ3JheS0yMDAgcmlnaHQtMCBoLTE0IHctMTRcIj5cbiAgICAgICAgICAgICAgICA8Z24tdWktYnV0dG9uXG4gICAgICAgICAgICAgICAgICAjaW5wdXRCdG5cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJvdXRsaW5lXCJcbiAgICAgICAgICAgICAgICAgIGV4dHJhQ2xhc3M9XCJoLTEyIHctMTIgYm9yZGVyLTAgYWJzb2x1dGUgcmlnaHQtMSB0b3AtMSBiZy13aGl0ZVwiXG4gICAgICAgICAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwic2VhcmNoTGF5ZXJzKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxuZy1pY29uIG5hbWU9XCJpY29ub2lyU2VhcmNoXCI+PC9uZy1pY29uPlxuICAgICAgICAgICAgICAgIDwvZ24tdWktYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGduLXVpLXBvcG92ZXJcbiAgICAgICAgICAgICAgW2NvbnRlbnRdPVwicG9wb3Zlckl0ZW1zXCJcbiAgICAgICAgICAgICAgdGhlbWU9XCJsaWdodFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwidy0xNCBoLTE0IGJvcmRlciBib3JkZXItZ3JheS0zMDAgcm91bmRlZC1sZyBmbGV4IGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy1pY29uIG5hbWU9XCJtYXRJbmZvT3V0bGluZVwiIGNsYXNzPVwidy02IGgtNiBwdC0wLjVcIj48L25nLWljb24+XG4gICAgICAgICAgICA8L2duLXVpLXBvcG92ZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgc3R5bGU9XCJoZWlnaHQ6IDUwMHB4XCJcbiAgICAgICAgICAgIGNsYXNzPVwiYmctd2hpdGUgc2hhZG93LXhsIHJvdW5kZWQgcC0wIGZsZXggbWQ6ZmxleC1yb3cgZmxleC1jb2xcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0yIGJnLWdyYXktMTAwIG1kOnctMS8yIG1kOmgtZnVsbCB3LWZ1bGwgaC0xLzIgcm91bmRlZC1sIG92ZXJmbG93LXktYXV0byBweS01IHByLTEgcGwtM1wiXG4gICAgICAgICAgICAgIGRhdGEtdGVzdD1cImxheWVyLWxpc3RcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8Z24tdWktYnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGxheWVySXRlbSBvZiBmaWx0ZXJlZExheWVyc1wiXG4gICAgICAgICAgICAgICAgdHlwZT1cIm91dGxpbmVcIlxuICAgICAgICAgICAgICAgIFtleHRyYUNsYXNzXT1cImdldEV4dHJhQ2xhc3MobGF5ZXJJdGVtKVwiXG4gICAgICAgICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cInNlbGVjdExheWVyKGxheWVySXRlbSlcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgbGF5ZXJJdGVtLnRpdGxlIHx8IGxheWVySXRlbS5uYW1lIH19XG4gICAgICAgICAgICAgIDwvZ24tdWktYnV0dG9uPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImZpbHRlcmVkTGF5ZXJzLmxlbmd0aCA9PT0gMFwiIGNsYXNzPVwidGV4dC1ncmF5LTgwMFwiPlxuICAgICAgICAgICAgICAgIHt7ICdzZXJ2aWNlLm1ldGFkYXRhLmZpbHRlci5ub0xheWVycycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGRhdGEtdGVzdD1cImxheWVyLWluZm9ybWF0aW9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC00IG1kOmgtZnVsbCBtZDp3LTEvMiB3LWZ1bGwgaC0xLzIgcHktNSBweC0xMCBvdmVyZmxvdy15LWF1dG9cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGF5ZXJJbmZvcm1hdGlvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC00IGJvcmRlci1iIGJvcmRlci1ncmF5LTIwMFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtc2VtaWJvbGQgdy0yNFwiPnt7IGl0ZW0uZGlzcGxheU5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzTGlzdChpdGVtLnZhbHVlKVwiPlxuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgc3ViSXRlbSBvZiBpdGVtLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGJyZWFrLXdvcmRzIG1heC13LTcyXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgc3ViSXRlbSB9fVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJyZWFrLXdvcmRzIG1heC13LTcyXCIgKm5nSWY9XCIhaXNMaXN0KGl0ZW0udmFsdWUpXCI+XG4gICAgICAgICAgICAgICAgICB7eyBpdGVtLnZhbHVlIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI3BvcG92ZXJJdGVtcz5cbiAgPGRpdiBjbGFzcz1cInAtMiBweS00XCI+XG4gICAgPGRpdiB0cmFuc2xhdGU+c2VydmljZS5tZXRhZGF0YS5maWx0ZXI8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jYXBhYmlsaXRpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMvbGliL3NlcnZpY2UtY2FwYWJpbGl0aWVzL3NlcnZpY2UtY2FwYWJpbGl0aWVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9zZXJ2aWNlLWNhcGFiaWxpdGllcy9zZXJ2aWNlLWNhcGFiaWxpdGllcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQTtBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsZ0JBQWdCLEdBQ2pCLE1BQU0scUJBQXFCLENBQUE7QUFDNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUMxRixPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQ2pFLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEdBQ3hCLE1BQU0sdUNBQXVDLENBQUE7QUFNOUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1DQUFtQyxDQUFBOzs7O0FBRTVELE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFBO0FBQ2pDLE1BQU0sQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFBO0FBQzdDLE1BQU0sQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFBO0FBQ2hELE1BQU0sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFBO0FBQzVDLE1BQU0sQ0FBQywwQ0FBMEMsQ0FBQyxDQUFBO0FBQ2xELE1BQU0sQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFBO0FBQ3BELE1BQU0sQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFBO0FBQ2hELE1BQU0sQ0FBQywyQ0FBMkMsQ0FBQyxDQUFBO0FBQ25ELE1BQU0sQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFBO0FBQ3BELE1BQU0sQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFBO0FBQ3BELE1BQU0sQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFBO0FBQ2hELE1BQU0sQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFBO0FBQ3JELE1BQU0sQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFBO0FBQ3JELE1BQU0sQ0FBQywyQ0FBMkMsQ0FBQyxDQUFBO0FBeUJuRCxNQUFNLE9BQU8sNEJBQTRCO0lBMEJ2QyxZQUNVLEdBQXNCLEVBQ3RCLGdCQUFrQztRQURsQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBM0JuQyxhQUFRLEdBQUcsRUFBRSxDQUFBO1FBQ3RCLG9CQUFlLEdBQUcsRUFBRSxDQUFBO1FBQ3BCLG1CQUFjLEdBQUcsRUFBRSxDQUFBO1FBQ25CLGtCQUFhLEdBQUcsSUFBSSxDQUFBO1FBQ3BCLHFCQUFnQixHQUFHLEVBQUUsQ0FBQTtRQUNyQixnQkFBVyxHQUFHLEVBQUUsQ0FBQTtRQUNoQixZQUFPLEdBQUcsS0FBSyxDQUFBO1FBR2YscUJBQWdCLEdBQUc7WUFDakIsT0FBTztZQUNQLFVBQVU7WUFDVixNQUFNO1lBQ04sWUFBWTtZQUNaLGNBQWM7WUFDZCxVQUFVO1lBQ1YsYUFBYTtZQUNiLGNBQWM7WUFDZCxjQUFjO1lBQ2QsVUFBVTtZQUNWLGVBQWU7WUFDZixlQUFlO1lBQ2YsYUFBYTtTQUNkLENBQUE7SUFLRSxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtJQUNuQixDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQVk7UUFDekIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQTBCLENBQUE7UUFDOUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFBO1FBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUE7WUFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFBO1FBQzVDLENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQW9CO1FBQ2hDLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQTtZQUN4QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUE7UUFDckIsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUE7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUE7UUFDckIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFBO0lBQzVDLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVTtRQUNkLElBQ0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixLQUFLLGFBQWEsRUFDeEQsQ0FBQztZQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFBO1lBQ25CLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxTQUFTLENBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FDdkMsQ0FBQTtZQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO1lBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7WUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFBO1FBQzVDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUE7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsS0FBb0Q7UUFDOUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUE7UUFDMUIsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFBO1FBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDN0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQy9DLGlDQUFpQyxHQUFHLEVBQUUsQ0FDdkMsQ0FBQTtnQkFDRCxJQUFJLEdBQUcsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDO29CQUN2QyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO2dCQUN2RCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFlBQVksQ0FBQTtJQUN0QyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQXdCO1FBQzdCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUM3QixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLE9BQU8sOEZBQThGLENBQUE7UUFDdkcsQ0FBQztRQUNELE9BQU8sd0JBQXdCLENBQUE7SUFDakMsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQTtRQUN4QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDMUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtZQUM1QyxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDaEIsT0FBTyxDQUNMLEtBQUssQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztvQkFDekMsS0FBSyxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQzlDLENBQUE7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUNqRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDdEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUE7WUFDekIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQTtRQUM1QixDQUFDO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxTQUFTO1FBQ3JCLE9BQU8sU0FBUyxLQUFLLElBQUksQ0FBQyxhQUFhO1lBQ3JDLENBQUMsQ0FBQyxzRkFBc0Y7WUFDeEYsQ0FBQyxDQUFDLGdCQUFnQixDQUFBO0lBQ3RCLENBQUM7K0dBOUhVLDRCQUE0QjttR0FBNUIsNEJBQTRCLHdIQzlEekMsbTVJQThHQSx5RERuRUksWUFBWSxnUUFDWixrQkFBa0IsNkdBQ2xCLGFBQWEsa0RBQ2IsZUFBZSwrSEFDZixrQkFBa0IsK0pBQ2xCLE1BQU0sNkdBQ04sZ0JBQWdCLHdGQUNoQix1QkFBdUIsdURBRVY7WUFDYixZQUFZLENBQUM7Z0JBQ1gsYUFBYTtnQkFDYixjQUFjO2dCQUNkLFFBQVE7YUFDVCxDQUFDO1NBQ0g7OzRGQUlVLDRCQUE0QjtrQkF2QnhDLFNBQVM7K0JBQ0UsNEJBQTRCLGNBQzFCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsTUFBTTt3QkFDTixnQkFBZ0I7d0JBQ2hCLHVCQUF1QjtxQkFDeEIsaUJBQ2M7d0JBQ2IsWUFBWSxDQUFDOzRCQUNYLGFBQWE7NEJBQ2IsY0FBYzs0QkFDZCxRQUFRO3lCQUNULENBQUM7cUJBQ0g7cUhBS1EsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHtcbiAgVHJhbnNsYXRlRGlyZWN0aXZlLFxuICBUcmFuc2xhdGVQaXBlLFxuICBUcmFuc2xhdGVTZXJ2aWNlLFxufSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgZ2V0TGF5ZXJzIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQsIFRleHRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IE5nSWNvbiwgcHJvdmlkZUljb25zIH0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBpY29ub2lyU2VhcmNoIH0gZnJvbSAnQG5nLWljb25zL2ljb25vaXInXG5pbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5pbXBvcnQgeyBtYXRJbmZvT3V0bGluZSB9IGZyb20gJ0BuZy1pY29ucy9tYXRlcmlhbC1pY29ucy9vdXRsaW5lJ1xuaW1wb3J0IHtcbiAgUG9wb3ZlckNvbXBvbmVudCxcbiAgU3Bpbm5pbmdMb2FkZXJDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvd2lkZ2V0cy9zcmMnXG5pbXBvcnQge1xuICBXZnNGZWF0dXJlVHlwZUZ1bGwsXG4gIFdtc0xheWVyRnVsbCxcbiAgV210c0xheWVyLFxufSBmcm9tICdAY2FtcHRvY2FtcC9vZ2MtY2xpZW50J1xuaW1wb3J0IHsgbWF0Q2xvc2UgfSBmcm9tICdAbmctaWNvbnMvbWF0ZXJpYWwtaWNvbnMvYmFzZWxpbmUnXG5cbm1hcmtlcihgc2VydmljZS5tZXRhZGF0YS5zZWFyY2hgKVxubWFya2VyKGBzZXJ2aWNlLm1ldGFkYXRhLmNhcGFiaWxpdGllcy50aXRsZWApXG5tYXJrZXIoYHNlcnZpY2UubWV0YWRhdGEuY2FwYWJpbGl0aWVzLmFic3RyYWN0YClcbm1hcmtlcihgc2VydmljZS5tZXRhZGF0YS5jYXBhYmlsaXRpZXMubmFtZWApXG5tYXJrZXIoYHNlcnZpY2UubWV0YWRhdGEuY2FwYWJpbGl0aWVzLmRlZmF1bHRDcnNgKVxubWFya2VyKGBzZXJ2aWNlLm1ldGFkYXRhLmNhcGFiaWxpdGllcy5hdmFpbGFibGVDcnNgKVxubWFya2VyKGBzZXJ2aWNlLm1ldGFkYXRhLmNhcGFiaWxpdGllcy5vdGhlckNyc2ApXG5tYXJrZXIoYHNlcnZpY2UubWV0YWRhdGEuY2FwYWJpbGl0aWVzLm9iamVjdENvdW50YClcbm1hcmtlcihgc2VydmljZS5tZXRhZGF0YS5jYXBhYmlsaXRpZXMuZ2VvbWV0cnlOYW1lYClcbm1hcmtlcihgc2VydmljZS5tZXRhZGF0YS5jYXBhYmlsaXRpZXMuZ2VvbWV0cnlUeXBlYClcbm1hcmtlcihgc2VydmljZS5tZXRhZGF0YS5jYXBhYmlsaXRpZXMua2V5d29yZHNgKVxubWFya2VyKGBzZXJ2aWNlLm1ldGFkYXRhLmNhcGFiaWxpdGllcy5vdXRwdXRGb3JtYXRzYClcbm1hcmtlcihgc2VydmljZS5tZXRhZGF0YS5jYXBhYmlsaXRpZXMucmVzb3VyY2VMaW5rc2ApXG5tYXJrZXIoYHNlcnZpY2UubWV0YWRhdGEuY2FwYWJpbGl0aWVzLmF0dHJpYnV0aW9uYClcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktc2VydmljZS1jYXBhYmlsaXRpZXMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRyYW5zbGF0ZURpcmVjdGl2ZSxcbiAgICBUcmFuc2xhdGVQaXBlLFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBUZXh0SW5wdXRDb21wb25lbnQsXG4gICAgTmdJY29uLFxuICAgIFBvcG92ZXJDb21wb25lbnQsXG4gICAgU3Bpbm5pbmdMb2FkZXJDb21wb25lbnQsXG4gIF0sXG4gIHZpZXdQcm92aWRlcnM6IFtcbiAgICBwcm92aWRlSWNvbnMoe1xuICAgICAgaWNvbm9pclNlYXJjaCxcbiAgICAgIG1hdEluZm9PdXRsaW5lLFxuICAgICAgbWF0Q2xvc2UsXG4gICAgfSksXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9zZXJ2aWNlLWNhcGFiaWxpdGllcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9zZXJ2aWNlLWNhcGFiaWxpdGllcy5jb21wb25lbnQuY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgU2VydmljZUNhcGFiaWxpdGllc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGFwaUxpbmtzID0gW11cbiAgYXZhaWxhYmxlTGF5ZXJzID0gW11cbiAgZmlsdGVyZWRMYXllcnMgPSBbXVxuICBzZWxlY3RlZExheWVyID0gbnVsbFxuICBsYXllckluZm9ybWF0aW9uID0gW11cbiAgc2VhcmNoUXVlcnkgPSAnJ1xuICBsb2FkaW5nID0gZmFsc2VcbiAgc2VhcmNoQWN0aXZlXG5cbiAgY2FwYWJpbGl0aWVzS2V5cyA9IFtcbiAgICAndGl0bGUnLFxuICAgICdhYnN0cmFjdCcsXG4gICAgJ25hbWUnLFxuICAgICdkZWZhdWx0Q3JzJyxcbiAgICAnYXZhaWxhYmxlQ3JzJyxcbiAgICAnb3RoZXJDcnMnLFxuICAgICdvYmplY3RDb3VudCcsXG4gICAgJ2dlb21ldHJ5TmFtZScsXG4gICAgJ2dlb21ldHJ5VHlwZScsXG4gICAgJ2tleXdvcmRzJyxcbiAgICAnb3V0cHV0Rm9ybWF0cycsXG4gICAgJ3Jlc291cmNlTGlua3MnLFxuICAgICdhdHRyaWJ1dGlvbicsXG4gIF1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmxvYWRMYXllcnMoKVxuICB9XG5cbiAgb25TZWFyY2hDaGFuZ2UoZXZlbnQ6IEV2ZW50KSB7XG4gICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudFxuICAgIHRoaXMuc2VhcmNoUXVlcnkgPSBpbnB1dC52YWx1ZVxuICAgIGlmICghaW5wdXQudmFsdWUpIHtcbiAgICAgIHRoaXMuc2VhcmNoQWN0aXZlID0gZmFsc2VcbiAgICAgIHRoaXMuZmlsdGVyZWRMYXllcnMgPSB0aGlzLmF2YWlsYWJsZUxheWVyc1xuICAgIH1cbiAgfVxuXG4gIG9uU2VhcmNoRW50ZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICB0aGlzLnNlYXJjaEFjdGl2ZSA9IHRydWVcbiAgICAgIHRoaXMuc2VhcmNoTGF5ZXJzKClcbiAgICB9XG4gIH1cblxuICBjbGVhclNlYXJjaCgpIHtcbiAgICB0aGlzLnNlYXJjaEFjdGl2ZSA9IGZhbHNlXG4gICAgdGhpcy5zZWFyY2hRdWVyeSA9ICcnXG4gICAgdGhpcy5maWx0ZXJlZExheWVycyA9IHRoaXMuYXZhaWxhYmxlTGF5ZXJzXG4gIH1cblxuICBhc3luYyBsb2FkTGF5ZXJzKCkge1xuICAgIGlmIChcbiAgICAgIHRoaXMuYXBpTGlua3MubGVuZ3RoID4gMCAmJlxuICAgICAgdGhpcy5hcGlMaW5rc1swXS5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgIT09ICdvZ2NGZWF0dXJlcydcbiAgICApIHtcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWVcbiAgICAgIHRoaXMuYXZhaWxhYmxlTGF5ZXJzID0gYXdhaXQgZ2V0TGF5ZXJzKFxuICAgICAgICB0aGlzLmFwaUxpbmtzWzBdLnVybC5ocmVmLFxuICAgICAgICB0aGlzLmFwaUxpbmtzWzBdLmFjY2Vzc1NlcnZpY2VQcm90b2NvbFxuICAgICAgKVxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2VcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICAgICAgdGhpcy5maWx0ZXJlZExheWVycyA9IHRoaXMuYXZhaWxhYmxlTGF5ZXJzXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYXZhaWxhYmxlTGF5ZXJzID0gW11cbiAgICB9XG4gIH1cblxuICBzZWxlY3RMYXllcihsYXllcjogV2ZzRmVhdHVyZVR5cGVGdWxsIHwgV21zTGF5ZXJGdWxsIHwgV210c0xheWVyKSB7XG4gICAgdGhpcy5zZWxlY3RlZExheWVyID0gbGF5ZXJcbiAgICBjb25zdCBmaWx0ZXJlZEluZm8gPSBbXVxuICAgIE9iamVjdC5rZXlzKGxheWVyKS5tYXAoKGtleSkgPT4ge1xuICAgICAgaWYgKHRoaXMuY2FwYWJpbGl0aWVzS2V5cy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgYHNlcnZpY2UubWV0YWRhdGEuY2FwYWJpbGl0aWVzLiR7a2V5fWBcbiAgICAgICAgKVxuICAgICAgICBpZiAoa2V5IGluIGxheWVyICYmIGxheWVyW2tleV0/Lmxlbmd0aCkge1xuICAgICAgICAgIGZpbHRlcmVkSW5mby5wdXNoKHsgZGlzcGxheU5hbWUsIHZhbHVlOiBsYXllcltrZXldIH0pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuXG4gICAgdGhpcy5sYXllckluZm9ybWF0aW9uID0gZmlsdGVyZWRJbmZvXG4gIH1cblxuICBpc0xpc3QodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpXG4gIH1cblxuICBnZXRFeHRyYUlucHV0Q2xhc3MoKSB7XG4gICAgaWYgKHRoaXMuc2VhcmNoQWN0aXZlKSB7XG4gICAgICByZXR1cm4gJ2gtMTQgYm9yZGVyIHJvdW5kZWQtbGcgYm9yZGVyLXByaW1hcnkgdGV4dC1wcmltYXJ5IGZvY3VzOmJvcmRlci1wcmltYXJ5IGhvdmVyOmJvcmRlci1wcmltYXJ5J1xuICAgIH1cbiAgICByZXR1cm4gJ2gtMTQgYm9yZGVyIHJvdW5kZWQtbGcnXG4gIH1cblxuICBzZWFyY2hMYXllcnMoKSB7XG4gICAgdGhpcy5zZWFyY2hBY3RpdmUgPSB0cnVlXG4gICAgdGhpcy5maWx0ZXJlZExheWVycyA9IHRoaXMuYXZhaWxhYmxlTGF5ZXJzLmZpbHRlcigobGF5ZXIpID0+IHtcbiAgICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5zZWFyY2hRdWVyeS50b0xvd2VyQ2FzZSgpXG4gICAgICBpZiAobGF5ZXIudGl0bGUpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBsYXllci50aXRsZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHF1ZXJ5KSB8fFxuICAgICAgICAgIGxheWVyLmFic3RyYWN0Py50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHF1ZXJ5KVxuICAgICAgICApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbGF5ZXIubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHF1ZXJ5KVxuICAgICAgfVxuICAgIH0pXG4gICAgaWYgKCF0aGlzLmZpbHRlcmVkTGF5ZXJzLmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWRMYXllcikpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRMYXllciA9IG51bGxcbiAgICAgIHRoaXMubGF5ZXJJbmZvcm1hdGlvbiA9IFtdXG4gICAgfVxuICB9XG5cbiAgZ2V0RXh0cmFDbGFzcyhsYXllckl0ZW0pIHtcbiAgICByZXR1cm4gbGF5ZXJJdGVtID09PSB0aGlzLnNlbGVjdGVkTGF5ZXJcbiAgICAgID8gYGgtOCByb3VuZGVkLWxnIGJnLXByaW1hcnktZGFya2VyIHRleHQtd2hpdGUgaG92ZXI6dGV4dC1wcmltYXJ5LWRhcmtlciBob3ZlcjpiZy13aGl0ZWBcbiAgICAgIDogYGgtOCByb3VuZGVkLWxnYFxuICB9XG59XG4iLCI8ZGl2IHN0eWxlPVwiaGVpZ2h0OiA2NTJweFwiIGlkPVwicHJldmlld1wiICpuZ0lmPVwiYXBpTGlua3MubGVuZ3RoID4gMFwiPlxuICA8ZGl2IGNsYXNzPVwiYmctcHJpbWFyeS1vcGFjaXR5LTEwIG92ZXJmbG93LXZpc2libGVcIiBzdHlsZT1cImhlaWdodDogNDIwcHhcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWxnIHB4LTQgbGc6bXgtYXV0b1wiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImduLXVpLXNlY3Rpb24tdGl0bGUgbWItNlwiIHRyYW5zbGF0ZT5cbiAgICAgICAgICBzZXJ2aWNlLm1ldGFkYXRhLmNhcGFiaWxpdGllc1xuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0lmPVwibG9hZGluZ1wiXG4gICAgICAgICAgY2xhc3M9XCJmbGV4IGp1c3RpZnktY2VudGVyIHctZnVsbCBoLVsyMDBweF0gaXRlbXMtY2VudGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxnbi11aS1zcGlubmluZy1sb2FkZXI+PC9nbi11aS1zcGlubmluZy1sb2FkZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWxvYWRpbmdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtNVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtMTQgbWQ6dy0yLzUgdy1mdWxsIG1iLTQgZmxleCBmbGV4LXJvdyByZWxhdGl2ZVwiPlxuICAgICAgICAgICAgICA8Z24tdWktdGV4dC1pbnB1dFxuICAgICAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsXCJcbiAgICAgICAgICAgICAgICBbKHZhbHVlKV09XCJzZWFyY2hRdWVyeVwiXG4gICAgICAgICAgICAgICAgW2V4dHJhQ2xhc3NdPVwiZ2V0RXh0cmFJbnB1dENsYXNzKClcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInc2VydmljZS5tZXRhZGF0YS5zZWFyY2gnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAoaW5wdXQpPVwib25TZWFyY2hDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25TZWFyY2hFbnRlcigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L2duLXVpLXRleHQtaW5wdXQ+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFic29sdXRlIHJpZ2h0LTE0IGgtMTQgdy0xNCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAjaW5wdXRCdG5cbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2VhcmNoUXVlcnlcIlxuICAgICAgICAgICAgICAgICAgW2FyaWEtbGFiZWxdPVwiJ3NlcnZpY2UubWV0YWRhdGEuc2VhcmNoLmNsZWFyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xlYXJTZWFyY2goKVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImgtMTIgdy0xMiBib3JkZXItMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPG5nLWljb24gbmFtZT1cIm1hdENsb3NlXCI+PC9uZy1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1sIGFic29sdXRlIGJvcmRlci1ncmF5LTIwMCByaWdodC0wIGgtMTQgdy0xNFwiPlxuICAgICAgICAgICAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgICAgICAgICAgICNpbnB1dEJ0blxuICAgICAgICAgICAgICAgICAgdHlwZT1cIm91dGxpbmVcIlxuICAgICAgICAgICAgICAgICAgZXh0cmFDbGFzcz1cImgtMTIgdy0xMiBib3JkZXItMCBhYnNvbHV0ZSByaWdodC0xIHRvcC0xIGJnLXdoaXRlXCJcbiAgICAgICAgICAgICAgICAgIChidXR0b25DbGljayk9XCJzZWFyY2hMYXllcnMoKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPG5nLWljb24gbmFtZT1cImljb25vaXJTZWFyY2hcIj48L25nLWljb24+XG4gICAgICAgICAgICAgICAgPC9nbi11aS1idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8Z24tdWktcG9wb3ZlclxuICAgICAgICAgICAgICBbY29udGVudF09XCJwb3BvdmVySXRlbXNcIlxuICAgICAgICAgICAgICB0aGVtZT1cImxpZ2h0XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ3LTE0IGgtMTQgYm9yZGVyIGJvcmRlci1ncmF5LTMwMCByb3VuZGVkLWxnIGZsZXgganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG5nLWljb24gbmFtZT1cIm1hdEluZm9PdXRsaW5lXCIgY2xhc3M9XCJ3LTYgaC02IHB0LTAuNVwiPjwvbmctaWNvbj5cbiAgICAgICAgICAgIDwvZ24tdWktcG9wb3Zlcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBzdHlsZT1cImhlaWdodDogNTAwcHhcIlxuICAgICAgICAgICAgY2xhc3M9XCJiZy13aGl0ZSBzaGFkb3cteGwgcm91bmRlZCBwLTAgZmxleCBtZDpmbGV4LXJvdyBmbGV4LWNvbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTIgYmctZ3JheS0xMDAgbWQ6dy0xLzIgbWQ6aC1mdWxsIHctZnVsbCBoLTEvMiByb3VuZGVkLWwgb3ZlcmZsb3cteS1hdXRvIHB5LTUgcHItMSBwbC0zXCJcbiAgICAgICAgICAgICAgZGF0YS10ZXN0PVwibGF5ZXItbGlzdFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgbGF5ZXJJdGVtIG9mIGZpbHRlcmVkTGF5ZXJzXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwib3V0bGluZVwiXG4gICAgICAgICAgICAgICAgW2V4dHJhQ2xhc3NdPVwiZ2V0RXh0cmFDbGFzcyhsYXllckl0ZW0pXCJcbiAgICAgICAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwic2VsZWN0TGF5ZXIobGF5ZXJJdGVtKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBsYXllckl0ZW0udGl0bGUgfHwgbGF5ZXJJdGVtLm5hbWUgfX1cbiAgICAgICAgICAgICAgPC9nbi11aS1idXR0b24+XG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZmlsdGVyZWRMYXllcnMubGVuZ3RoID09PSAwXCIgY2xhc3M9XCJ0ZXh0LWdyYXktODAwXCI+XG4gICAgICAgICAgICAgICAge3sgJ3NlcnZpY2UubWV0YWRhdGEuZmlsdGVyLm5vTGF5ZXJzJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgZGF0YS10ZXN0PVwibGF5ZXItaW5mb3JtYXRpb25cIlxuICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTQgbWQ6aC1mdWxsIG1kOnctMS8yIHctZnVsbCBoLTEvMiBweS01IHB4LTEwIG92ZXJmbG93LXktYXV0b1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsYXllckluZm9ybWF0aW9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLTQgYm9yZGVyLWIgYm9yZGVyLWdyYXktMjAwXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1zZW1pYm9sZCB3LTI0XCI+e3sgaXRlbS5kaXNwbGF5TmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNMaXN0KGl0ZW0udmFsdWUpXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzdWJJdGVtIG9mIGl0ZW0udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgYnJlYWstd29yZHMgbWF4LXctNzJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBzdWJJdGVtIH19XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnJlYWstd29yZHMgbWF4LXctNzJcIiAqbmdJZj1cIiFpc0xpc3QoaXRlbS52YWx1ZSlcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udmFsdWUgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjcG9wb3Zlckl0ZW1zPlxuICA8ZGl2IGNsYXNzPVwicC0yIHB5LTRcIj5cbiAgICA8ZGl2IHRyYW5zbGF0ZT5zZXJ2aWNlLm1ldGFkYXRhLmZpbHRlcjwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -5,13 +5,14 @@ import { NgIcon, provideIcons, provideNgIconsConfig } from '@ng-icons/core';
5
5
  import { FormsModule } from '@angular/forms';
6
6
  import { of } from 'rxjs';
7
7
  import { debounceTime, distinctUntilChanged, tap } from 'rxjs/operators';
8
- import { createFuzzyFilter } from '../../../../../../libs/util/shared/src';
8
+ import { createFuzzyFilter, getIsMobile } from '../../../../../../libs/util/shared/src';
9
9
  import { iconoirSearch } from '@ng-icons/iconoir';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "@angular/common";
12
12
  import * as i2 from "@angular/forms";
13
13
  export class SearchFeatureCatalogComponent {
14
14
  constructor() {
15
+ this.isMobile$ = getIsMobile();
15
16
  this.filteredFeatureCatalogChange = new EventEmitter();
16
17
  this.filterAction = (searchTerm) => {
17
18
  of(searchTerm)
@@ -44,7 +45,7 @@ export class SearchFeatureCatalogComponent {
44
45
  return (this.filteredFeatureCatalog?.featureTypes?.reduce((total, featureType) => total + (featureType.attributes?.length || 0), 0) || 0);
45
46
  }
46
47
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchFeatureCatalogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
47
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchFeatureCatalogComponent, isStandalone: true, selector: "gn-ui-search-feature-catalog", inputs: { featureCatalog: "featureCatalog" }, outputs: { filteredFeatureCatalogChange: "filteredFeatureCatalogChange" }, ngImport: i0, template: "<div\n class=\"flex items-center justify-between p-3 mt-8 bg-white rounded-lg border-b solid border-gray-300\"\n>\n <div\n class=\"relative shrink-0\"\n *ngIf=\"featureCatalog?.featureTypes?.length > 1\"\n >\n <input\n type=\"text\"\n [placeholder]=\"'search.filter.into.feature.catalog' | translate\"\n class=\"w-[220px] h-8 pl-3 pr-10 py-2 border rounded-md\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"filterAction(searchTerm)\"\n />\n <ng-icon\n class=\"absolute right-2.5 top-1 w-6 h-6 text-black\"\n name=\"iconoirSearch\"\n ></ng-icon>\n </div>\n <div class=\"text-sm px-1 ml-auto hidden sm:inline\">\n <ng-container *ngIf=\"featureCatalog?.featureTypes?.length > 1\">\n <span\n class=\"text-sm font-medium text-gray-900\"\n data-cy=\"total-objects-label\"\n translate\n >record.feature.catalog.number.total.object</span\n ><span\n class=\"text-sm font-bold px-1 text-gray-900\"\n data-cy=\"total-objects\"\n >{{ totalObjects }}</span\n >\n <span class=\"px-1.5\">|</span>\n </ng-container>\n <span\n class=\"text-sm font-medium px-1 text-gray-900\"\n data-cy=\"total-attributes-label\"\n translate\n >record.feature.catalog.number.total.attribute</span\n ><span class=\"text-sm font-bold text-gray-900\" data-cy=\"total-attributes\">{{\n totalAttributes\n }}</span>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], viewProviders: [
48
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchFeatureCatalogComponent, isStandalone: true, selector: "gn-ui-search-feature-catalog", inputs: { featureCatalog: "featureCatalog" }, outputs: { filteredFeatureCatalogChange: "filteredFeatureCatalogChange" }, ngImport: i0, template: "<div\n class=\"flex items-center justify-between p-3 mt-8 bg-white rounded-lg border-b solid border-gray-300\"\n *ngIf=\"\n (isMobile$ | async) === false || featureCatalog?.featureTypes?.length > 1\n \"\n>\n <div\n class=\"relative shrink-0\"\n *ngIf=\"featureCatalog?.featureTypes?.length > 1\"\n >\n <input\n type=\"text\"\n [placeholder]=\"'search.filter.into.feature.catalog' | translate\"\n class=\"w-[220px] h-8 pl-3 pr-10 py-2 border rounded-md\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"filterAction(searchTerm)\"\n />\n <ng-icon\n class=\"absolute right-2.5 top-1 w-6 h-6 text-black\"\n name=\"iconoirSearch\"\n ></ng-icon>\n </div>\n <div\n *ngIf=\"(isMobile$ | async) === false\"\n class=\"text-sm px-1 ml-auto inline\"\n >\n <ng-container *ngIf=\"featureCatalog?.featureTypes?.length > 1\">\n <span\n class=\"text-sm font-medium text-gray-900\"\n data-cy=\"total-objects-label\"\n translate\n >record.feature.catalog.number.total.object</span\n ><span\n class=\"text-sm font-bold px-1 text-gray-900\"\n data-cy=\"total-objects\"\n >{{ totalObjects }}</span\n >\n <span class=\"px-1.5\">|</span>\n </ng-container>\n <span\n class=\"text-sm font-medium px-1 text-gray-900\"\n data-cy=\"total-attributes-label\"\n translate\n >record.feature.catalog.number.total.attribute</span\n ><span class=\"text-sm font-bold text-gray-900\" data-cy=\"total-attributes\">{{\n totalAttributes\n }}</span>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], viewProviders: [
48
49
  provideIcons({ iconoirSearch }),
49
50
  provideNgIconsConfig({
50
51
  size: '1.5rem',
@@ -64,10 +65,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
64
65
  provideNgIconsConfig({
65
66
  size: '1.5rem',
66
67
  }),
67
- ], template: "<div\n class=\"flex items-center justify-between p-3 mt-8 bg-white rounded-lg border-b solid border-gray-300\"\n>\n <div\n class=\"relative shrink-0\"\n *ngIf=\"featureCatalog?.featureTypes?.length > 1\"\n >\n <input\n type=\"text\"\n [placeholder]=\"'search.filter.into.feature.catalog' | translate\"\n class=\"w-[220px] h-8 pl-3 pr-10 py-2 border rounded-md\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"filterAction(searchTerm)\"\n />\n <ng-icon\n class=\"absolute right-2.5 top-1 w-6 h-6 text-black\"\n name=\"iconoirSearch\"\n ></ng-icon>\n </div>\n <div class=\"text-sm px-1 ml-auto hidden sm:inline\">\n <ng-container *ngIf=\"featureCatalog?.featureTypes?.length > 1\">\n <span\n class=\"text-sm font-medium text-gray-900\"\n data-cy=\"total-objects-label\"\n translate\n >record.feature.catalog.number.total.object</span\n ><span\n class=\"text-sm font-bold px-1 text-gray-900\"\n data-cy=\"total-objects\"\n >{{ totalObjects }}</span\n >\n <span class=\"px-1.5\">|</span>\n </ng-container>\n <span\n class=\"text-sm font-medium px-1 text-gray-900\"\n data-cy=\"total-attributes-label\"\n translate\n >record.feature.catalog.number.total.attribute</span\n ><span class=\"text-sm font-bold text-gray-900\" data-cy=\"total-attributes\">{{\n totalAttributes\n }}</span>\n </div>\n</div>\n" }]
68
+ ], template: "<div\n class=\"flex items-center justify-between p-3 mt-8 bg-white rounded-lg border-b solid border-gray-300\"\n *ngIf=\"\n (isMobile$ | async) === false || featureCatalog?.featureTypes?.length > 1\n \"\n>\n <div\n class=\"relative shrink-0\"\n *ngIf=\"featureCatalog?.featureTypes?.length > 1\"\n >\n <input\n type=\"text\"\n [placeholder]=\"'search.filter.into.feature.catalog' | translate\"\n class=\"w-[220px] h-8 pl-3 pr-10 py-2 border rounded-md\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"filterAction(searchTerm)\"\n />\n <ng-icon\n class=\"absolute right-2.5 top-1 w-6 h-6 text-black\"\n name=\"iconoirSearch\"\n ></ng-icon>\n </div>\n <div\n *ngIf=\"(isMobile$ | async) === false\"\n class=\"text-sm px-1 ml-auto inline\"\n >\n <ng-container *ngIf=\"featureCatalog?.featureTypes?.length > 1\">\n <span\n class=\"text-sm font-medium text-gray-900\"\n data-cy=\"total-objects-label\"\n translate\n >record.feature.catalog.number.total.object</span\n ><span\n class=\"text-sm font-bold px-1 text-gray-900\"\n data-cy=\"total-objects\"\n >{{ totalObjects }}</span\n >\n <span class=\"px-1.5\">|</span>\n </ng-container>\n <span\n class=\"text-sm font-medium px-1 text-gray-900\"\n data-cy=\"total-attributes-label\"\n translate\n >record.feature.catalog.number.total.attribute</span\n ><span class=\"text-sm font-bold text-gray-900\" data-cy=\"total-attributes\">{{\n totalAttributes\n }}</span>\n </div>\n</div>\n" }]
68
69
  }], propDecorators: { featureCatalog: [{
69
70
  type: Input
70
71
  }], filteredFeatureCatalogChange: [{
71
72
  type: Output
72
73
  }] } });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZlYXR1cmUtY2F0YWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMvbGliL3NlYXJjaC1mZWF0dXJlLWNhdGFsb2cvc2VhcmNoLWZlYXR1cmUtY2F0YWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMvbGliL3NlYXJjaC1mZWF0dXJlLWNhdGFsb2cvc2VhcmNoLWZlYXR1cmUtY2F0YWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDdkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUN6QixPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTs7OztBQXFCakQsTUFBTSxPQUFPLDZCQUE2QjtJQW5CMUM7UUE4QlksaUNBQTRCLEdBQ3BDLElBQUksWUFBWSxFQUF5QixDQUFBO1FBRzNDLGlCQUFZLEdBQUcsQ0FBQyxVQUFrQixFQUFRLEVBQUU7WUFDMUMsRUFBRSxDQUFDLFVBQVUsQ0FBQztpQkFDWCxJQUFJLENBQ0gsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUNqQixvQkFBb0IsRUFBRSxFQUN0QixHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNQLE1BQU0sUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxZQUFZLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUMvRCxDQUFDLFdBQVcsRUFBRSxFQUFFO29CQUNkLE1BQU0sV0FBVyxHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFBO29CQUNqRCxPQUFPLENBQ0wsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7d0JBQzdCLENBQUMsV0FBVyxDQUFDLFVBQVUsSUFBSSxXQUFXLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQ2hFLENBQUE7Z0JBQ0gsQ0FBQyxDQUNGLENBQUE7Z0JBQ0QsSUFBSSxDQUFDLHNCQUFzQixHQUFHO29CQUM1QixHQUFHLElBQUksQ0FBQyxjQUFjO29CQUN0QixZQUFZLEVBQUUsUUFBUTtpQkFDdkIsQ0FBQTtnQkFDRCxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO1lBQ3JFLENBQUMsQ0FBQyxDQUNIO2lCQUNBLFNBQVMsRUFBRSxDQUFBO1FBQ2hCLENBQUMsQ0FBQTtLQWNGO0lBakRDLElBQWEsY0FBYyxDQUFDLEtBQTRCO1FBQ3RELElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFBO1FBQzVCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUE7SUFDckMsQ0FBQztJQUNELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUE7SUFDN0IsQ0FBQztJQStCRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQTtJQUMvRCxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sQ0FDTCxJQUFJLENBQUMsc0JBQXNCLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FDL0MsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsRUFDckUsQ0FBQyxDQUNGLElBQUksQ0FBQyxDQUNQLENBQUE7SUFDSCxDQUFDOytHQW5EVSw2QkFBNkI7bUdBQTdCLDZCQUE2QixpTkM5QjFDLDQ3Q0EyQ0EseUREMUJJLFlBQVksbUlBQ1osTUFBTSw2R0FDTixrQkFBa0IsNkdBQ2xCLGFBQWEsaURBQ2IsV0FBVyxvbUJBRUU7WUFDYixZQUFZLENBQUMsRUFBRSxhQUFhLEVBQUUsQ0FBQztZQUMvQixvQkFBb0IsQ0FBQztnQkFDbkIsSUFBSSxFQUFFLFFBQVE7YUFDZixDQUFDO1NBQ0g7OzRGQUVVLDZCQUE2QjtrQkFuQnpDLFNBQVM7K0JBQ0UsOEJBQThCLGNBRzVCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLE1BQU07d0JBQ04sa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLFdBQVc7cUJBQ1osaUJBQ2M7d0JBQ2IsWUFBWSxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUM7d0JBQy9CLG9CQUFvQixDQUFDOzRCQUNuQixJQUFJLEVBQUUsUUFBUTt5QkFDZixDQUFDO3FCQUNIOzhCQUtZLGNBQWM7c0JBQTFCLEtBQUs7Z0JBUUksNEJBQTRCO3NCQUFyQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgVHJhbnNsYXRlRGlyZWN0aXZlLCBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IE5nSWNvbiwgcHJvdmlkZUljb25zLCBwcm92aWRlTmdJY29uc0NvbmZpZyB9IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgRGF0YXNldEZlYXR1cmVDYXRhbG9nIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgY3JlYXRlRnV6enlGaWx0ZXIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IGljb25vaXJTZWFyY2ggfSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktc2VhcmNoLWZlYXR1cmUtY2F0YWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtZmVhdHVyZS1jYXRhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLWZlYXR1cmUtY2F0YWxvZy5jb21wb25lbnQuY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTmdJY29uLFxuICAgIFRyYW5zbGF0ZURpcmVjdGl2ZSxcbiAgICBUcmFuc2xhdGVQaXBlLFxuICAgIEZvcm1zTW9kdWxlLFxuICBdLFxuICB2aWV3UHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHsgaWNvbm9pclNlYXJjaCB9KSxcbiAgICBwcm92aWRlTmdJY29uc0NvbmZpZyh7XG4gICAgICBzaXplOiAnMS41cmVtJyxcbiAgICB9KSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoRmVhdHVyZUNhdGFsb2dDb21wb25lbnQge1xuICBwcml2YXRlIF9mZWF0dXJlQ2F0YWxvZzogRGF0YXNldEZlYXR1cmVDYXRhbG9nXG4gIHNlYXJjaFRlcm06IGFueVxuICBASW5wdXQoKSBzZXQgZmVhdHVyZUNhdGFsb2codmFsdWU6IERhdGFzZXRGZWF0dXJlQ2F0YWxvZykge1xuICAgIHRoaXMuX2ZlYXR1cmVDYXRhbG9nID0gdmFsdWVcbiAgICB0aGlzLmZpbHRlcmVkRmVhdHVyZUNhdGFsb2cgPSB2YWx1ZVxuICB9XG4gIGdldCBmZWF0dXJlQ2F0YWxvZygpOiBEYXRhc2V0RmVhdHVyZUNhdGFsb2cge1xuICAgIHJldHVybiB0aGlzLl9mZWF0dXJlQ2F0YWxvZ1xuICB9XG5cbiAgQE91dHB1dCgpIGZpbHRlcmVkRmVhdHVyZUNhdGFsb2dDaGFuZ2UgPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8RGF0YXNldEZlYXR1cmVDYXRhbG9nPigpXG4gIGZpbHRlcmVkRmVhdHVyZUNhdGFsb2c6IERhdGFzZXRGZWF0dXJlQ2F0YWxvZ1xuXG4gIGZpbHRlckFjdGlvbiA9IChzZWFyY2hUZXJtOiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICBvZihzZWFyY2hUZXJtKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSgzMDApLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGZpbHRlcmVkID0gKHRoaXMuZmVhdHVyZUNhdGFsb2c/LmZlYXR1cmVUeXBlcyB8fCBbXSkuZmlsdGVyKFxuICAgICAgICAgICAgKGZlYXR1cmVUeXBlKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGZ1enp5RmlsdGVyID0gY3JlYXRlRnV6enlGaWx0ZXIoc2VhcmNoVGVybSlcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICBmdXp6eUZpbHRlcihmZWF0dXJlVHlwZS5uYW1lKSB8fFxuICAgICAgICAgICAgICAgIChmZWF0dXJlVHlwZS5kZWZpbml0aW9uICYmIGZ1enp5RmlsdGVyKGZlYXR1cmVUeXBlLmRlZmluaXRpb24pKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKVxuICAgICAgICAgIHRoaXMuZmlsdGVyZWRGZWF0dXJlQ2F0YWxvZyA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuZmVhdHVyZUNhdGFsb2csXG4gICAgICAgICAgICBmZWF0dXJlVHlwZXM6IGZpbHRlcmVkLFxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmZpbHRlcmVkRmVhdHVyZUNhdGFsb2dDaGFuZ2UuZW1pdCh0aGlzLmZpbHRlcmVkRmVhdHVyZUNhdGFsb2cpXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKClcbiAgfVxuXG4gIGdldCB0b3RhbE9iamVjdHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJlZEZlYXR1cmVDYXRhbG9nPy5mZWF0dXJlVHlwZXM/Lmxlbmd0aCB8fCAwXG4gIH1cblxuICBnZXQgdG90YWxBdHRyaWJ1dGVzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZmlsdGVyZWRGZWF0dXJlQ2F0YWxvZz8uZmVhdHVyZVR5cGVzPy5yZWR1Y2UoXG4gICAgICAgICh0b3RhbCwgZmVhdHVyZVR5cGUpID0+IHRvdGFsICsgKGZlYXR1cmVUeXBlLmF0dHJpYnV0ZXM/Lmxlbmd0aCB8fCAwKSxcbiAgICAgICAgMFxuICAgICAgKSB8fCAwXG4gICAgKVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHAtMyBtdC04IGJnLXdoaXRlIHJvdW5kZWQtbGcgYm9yZGVyLWIgc29saWQgYm9yZGVyLWdyYXktMzAwXCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwicmVsYXRpdmUgc2hyaW5rLTBcIlxuICAgICpuZ0lmPVwiZmVhdHVyZUNhdGFsb2c/LmZlYXR1cmVUeXBlcz8ubGVuZ3RoID4gMVwiXG4gID5cbiAgICA8aW5wdXRcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCInc2VhcmNoLmZpbHRlci5pbnRvLmZlYXR1cmUuY2F0YWxvZycgfCB0cmFuc2xhdGVcIlxuICAgICAgY2xhc3M9XCJ3LVsyMjBweF0gaC04IHBsLTMgcHItMTAgcHktMiBib3JkZXIgcm91bmRlZC1tZFwiXG4gICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFRlcm1cIlxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiZmlsdGVyQWN0aW9uKHNlYXJjaFRlcm0pXCJcbiAgICAvPlxuICAgIDxuZy1pY29uXG4gICAgICBjbGFzcz1cImFic29sdXRlIHJpZ2h0LTIuNSB0b3AtMSB3LTYgaC02IHRleHQtYmxhY2tcIlxuICAgICAgbmFtZT1cImljb25vaXJTZWFyY2hcIlxuICAgID48L25nLWljb24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwidGV4dC1zbSBweC0xIG1sLWF1dG8gaGlkZGVuIHNtOmlubGluZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmZWF0dXJlQ2F0YWxvZz8uZmVhdHVyZVR5cGVzPy5sZW5ndGggPiAxXCI+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMFwiXG4gICAgICAgIGRhdGEtY3k9XCJ0b3RhbC1vYmplY3RzLWxhYmVsXCJcbiAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgID5yZWNvcmQuZmVhdHVyZS5jYXRhbG9nLm51bWJlci50b3RhbC5vYmplY3Q8L3NwYW5cbiAgICAgID48c3BhblxuICAgICAgICBjbGFzcz1cInRleHQtc20gZm9udC1ib2xkIHB4LTEgdGV4dC1ncmF5LTkwMFwiXG4gICAgICAgIGRhdGEtY3k9XCJ0b3RhbC1vYmplY3RzXCJcbiAgICAgICAgPnt7IHRvdGFsT2JqZWN0cyB9fTwvc3BhblxuICAgICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJweC0xLjVcIj58PC9zcGFuPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW0gcHgtMSB0ZXh0LWdyYXktOTAwXCJcbiAgICAgIGRhdGEtY3k9XCJ0b3RhbC1hdHRyaWJ1dGVzLWxhYmVsXCJcbiAgICAgIHRyYW5zbGF0ZVxuICAgICAgPnJlY29yZC5mZWF0dXJlLmNhdGFsb2cubnVtYmVyLnRvdGFsLmF0dHJpYnV0ZTwvc3BhblxuICAgID48c3BhbiBjbGFzcz1cInRleHQtc20gZm9udC1ib2xkIHRleHQtZ3JheS05MDBcIiBkYXRhLWN5PVwidG90YWwtYXR0cmlidXRlc1wiPnt7XG4gICAgICB0b3RhbEF0dHJpYnV0ZXNcbiAgICB9fTwvc3Bhbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZlYXR1cmUtY2F0YWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMvbGliL3NlYXJjaC1mZWF0dXJlLWNhdGFsb2cvc2VhcmNoLWZlYXR1cmUtY2F0YWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMvbGliL3NlYXJjaC1mZWF0dXJlLWNhdGFsb2cvc2VhcmNoLWZlYXR1cmUtY2F0YWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDdkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUN6QixPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUN2RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7Ozs7QUFxQmpELE1BQU0sT0FBTyw2QkFBNkI7SUFuQjFDO1FBOEJFLGNBQVMsR0FBRyxXQUFXLEVBQUUsQ0FBQTtRQUVmLGlDQUE0QixHQUNwQyxJQUFJLFlBQVksRUFBeUIsQ0FBQTtRQUczQyxpQkFBWSxHQUFHLENBQUMsVUFBa0IsRUFBUSxFQUFFO1lBQzFDLEVBQUUsQ0FBQyxVQUFVLENBQUM7aUJBQ1gsSUFBSSxDQUNILFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsb0JBQW9CLEVBQUUsRUFDdEIsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDUCxNQUFNLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FDL0QsQ0FBQyxXQUFXLEVBQUUsRUFBRTtvQkFDZCxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQTtvQkFDakQsT0FBTyxDQUNMLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO3dCQUM3QixDQUFDLFdBQVcsQ0FBQyxVQUFVLElBQUksV0FBVyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUNoRSxDQUFBO2dCQUNILENBQUMsQ0FDRixDQUFBO2dCQUNELElBQUksQ0FBQyxzQkFBc0IsR0FBRztvQkFDNUIsR0FBRyxJQUFJLENBQUMsY0FBYztvQkFDdEIsWUFBWSxFQUFFLFFBQVE7aUJBQ3ZCLENBQUE7Z0JBQ0QsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtZQUNyRSxDQUFDLENBQUMsQ0FDSDtpQkFDQSxTQUFTLEVBQUUsQ0FBQTtRQUNoQixDQUFDLENBQUE7S0FjRjtJQW5EQyxJQUFhLGNBQWMsQ0FBQyxLQUE0QjtRQUN0RCxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQTtRQUM1QixJQUFJLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFBO0lBQ3JDLENBQUM7SUFDRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFBO0lBQzdCLENBQUM7SUFpQ0QsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsWUFBWSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUE7SUFDL0QsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLENBQ0wsSUFBSSxDQUFDLHNCQUFzQixFQUFFLFlBQVksRUFBRSxNQUFNLENBQy9DLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLEVBQ3JFLENBQUMsQ0FDRixJQUFJLENBQUMsQ0FDUCxDQUFBO0lBQ0gsQ0FBQzsrR0FyRFUsNkJBQTZCO21HQUE3Qiw2QkFBNkIsaU5DOUIxQyx5a0RBaURBLHlERGhDSSxZQUFZLHdMQUNaLE1BQU0sNkdBQ04sa0JBQWtCLDZHQUNsQixhQUFhLGlEQUNiLFdBQVcsb21CQUVFO1lBQ2IsWUFBWSxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUM7WUFDL0Isb0JBQW9CLENBQUM7Z0JBQ25CLElBQUksRUFBRSxRQUFRO2FBQ2YsQ0FBQztTQUNIOzs0RkFFVSw2QkFBNkI7a0JBbkJ6QyxTQUFTOytCQUNFLDhCQUE4QixjQUc1QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixNQUFNO3dCQUNOLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixXQUFXO3FCQUNaLGlCQUNjO3dCQUNiLFlBQVksQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDO3dCQUMvQixvQkFBb0IsQ0FBQzs0QkFDbkIsSUFBSSxFQUFFLFFBQVE7eUJBQ2YsQ0FBQztxQkFDSDs4QkFLWSxjQUFjO3NCQUExQixLQUFLO2dCQVVJLDRCQUE0QjtzQkFBckMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IFRyYW5zbGF0ZURpcmVjdGl2ZSwgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBOZ0ljb24sIHByb3ZpZGVJY29ucywgcHJvdmlkZU5nSWNvbnNDb25maWcgfSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IERhdGFzZXRGZWF0dXJlQ2F0YWxvZyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IGNyZWF0ZUZ1enp5RmlsdGVyLCBnZXRJc01vYmlsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjJ1xuaW1wb3J0IHsgaWNvbm9pclNlYXJjaCB9IGZyb20gJ0BuZy1pY29ucy9pY29ub2lyJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1zZWFyY2gtZmVhdHVyZS1jYXRhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1mZWF0dXJlLWNhdGFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtZmVhdHVyZS1jYXRhbG9nLmNvbXBvbmVudC5jc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBOZ0ljb24sXG4gICAgVHJhbnNsYXRlRGlyZWN0aXZlLFxuICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gIF0sXG4gIHZpZXdQcm92aWRlcnM6IFtcbiAgICBwcm92aWRlSWNvbnMoeyBpY29ub2lyU2VhcmNoIH0pLFxuICAgIHByb3ZpZGVOZ0ljb25zQ29uZmlnKHtcbiAgICAgIHNpemU6ICcxLjVyZW0nLFxuICAgIH0pLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hGZWF0dXJlQ2F0YWxvZ0NvbXBvbmVudCB7XG4gIHByaXZhdGUgX2ZlYXR1cmVDYXRhbG9nOiBEYXRhc2V0RmVhdHVyZUNhdGFsb2dcbiAgc2VhcmNoVGVybTogYW55XG4gIEBJbnB1dCgpIHNldCBmZWF0dXJlQ2F0YWxvZyh2YWx1ZTogRGF0YXNldEZlYXR1cmVDYXRhbG9nKSB7XG4gICAgdGhpcy5fZmVhdHVyZUNhdGFsb2cgPSB2YWx1ZVxuICAgIHRoaXMuZmlsdGVyZWRGZWF0dXJlQ2F0YWxvZyA9IHZhbHVlXG4gIH1cbiAgZ2V0IGZlYXR1cmVDYXRhbG9nKCk6IERhdGFzZXRGZWF0dXJlQ2F0YWxvZyB7XG4gICAgcmV0dXJuIHRoaXMuX2ZlYXR1cmVDYXRhbG9nXG4gIH1cblxuICBpc01vYmlsZSQgPSBnZXRJc01vYmlsZSgpXG5cbiAgQE91dHB1dCgpIGZpbHRlcmVkRmVhdHVyZUNhdGFsb2dDaGFuZ2UgPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8RGF0YXNldEZlYXR1cmVDYXRhbG9nPigpXG4gIGZpbHRlcmVkRmVhdHVyZUNhdGFsb2c6IERhdGFzZXRGZWF0dXJlQ2F0YWxvZ1xuXG4gIGZpbHRlckFjdGlvbiA9IChzZWFyY2hUZXJtOiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICBvZihzZWFyY2hUZXJtKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSgzMDApLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGZpbHRlcmVkID0gKHRoaXMuZmVhdHVyZUNhdGFsb2c/LmZlYXR1cmVUeXBlcyB8fCBbXSkuZmlsdGVyKFxuICAgICAgICAgICAgKGZlYXR1cmVUeXBlKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGZ1enp5RmlsdGVyID0gY3JlYXRlRnV6enlGaWx0ZXIoc2VhcmNoVGVybSlcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICBmdXp6eUZpbHRlcihmZWF0dXJlVHlwZS5uYW1lKSB8fFxuICAgICAgICAgICAgICAgIChmZWF0dXJlVHlwZS5kZWZpbml0aW9uICYmIGZ1enp5RmlsdGVyKGZlYXR1cmVUeXBlLmRlZmluaXRpb24pKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKVxuICAgICAgICAgIHRoaXMuZmlsdGVyZWRGZWF0dXJlQ2F0YWxvZyA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuZmVhdHVyZUNhdGFsb2csXG4gICAgICAgICAgICBmZWF0dXJlVHlwZXM6IGZpbHRlcmVkLFxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmZpbHRlcmVkRmVhdHVyZUNhdGFsb2dDaGFuZ2UuZW1pdCh0aGlzLmZpbHRlcmVkRmVhdHVyZUNhdGFsb2cpXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKClcbiAgfVxuXG4gIGdldCB0b3RhbE9iamVjdHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJlZEZlYXR1cmVDYXRhbG9nPy5mZWF0dXJlVHlwZXM/Lmxlbmd0aCB8fCAwXG4gIH1cblxuICBnZXQgdG90YWxBdHRyaWJ1dGVzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZmlsdGVyZWRGZWF0dXJlQ2F0YWxvZz8uZmVhdHVyZVR5cGVzPy5yZWR1Y2UoXG4gICAgICAgICh0b3RhbCwgZmVhdHVyZVR5cGUpID0+IHRvdGFsICsgKGZlYXR1cmVUeXBlLmF0dHJpYnV0ZXM/Lmxlbmd0aCB8fCAwKSxcbiAgICAgICAgMFxuICAgICAgKSB8fCAwXG4gICAgKVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHAtMyBtdC04IGJnLXdoaXRlIHJvdW5kZWQtbGcgYm9yZGVyLWIgc29saWQgYm9yZGVyLWdyYXktMzAwXCJcbiAgKm5nSWY9XCJcbiAgICAoaXNNb2JpbGUkIHwgYXN5bmMpID09PSBmYWxzZSB8fCBmZWF0dXJlQ2F0YWxvZz8uZmVhdHVyZVR5cGVzPy5sZW5ndGggPiAxXG4gIFwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cInJlbGF0aXZlIHNocmluay0wXCJcbiAgICAqbmdJZj1cImZlYXR1cmVDYXRhbG9nPy5mZWF0dXJlVHlwZXM/Lmxlbmd0aCA+IDFcIlxuICA+XG4gICAgPGlucHV0XG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiJ3NlYXJjaC5maWx0ZXIuaW50by5mZWF0dXJlLmNhdGFsb2cnIHwgdHJhbnNsYXRlXCJcbiAgICAgIGNsYXNzPVwidy1bMjIwcHhdIGgtOCBwbC0zIHByLTEwIHB5LTIgYm9yZGVyIHJvdW5kZWQtbWRcIlxuICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXJtXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImZpbHRlckFjdGlvbihzZWFyY2hUZXJtKVwiXG4gICAgLz5cbiAgICA8bmctaWNvblxuICAgICAgY2xhc3M9XCJhYnNvbHV0ZSByaWdodC0yLjUgdG9wLTEgdy02IGgtNiB0ZXh0LWJsYWNrXCJcbiAgICAgIG5hbWU9XCJpY29ub2lyU2VhcmNoXCJcbiAgICA+PC9uZy1pY29uPlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiKGlzTW9iaWxlJCB8IGFzeW5jKSA9PT0gZmFsc2VcIlxuICAgIGNsYXNzPVwidGV4dC1zbSBweC0xIG1sLWF1dG8gaW5saW5lXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmZWF0dXJlQ2F0YWxvZz8uZmVhdHVyZVR5cGVzPy5sZW5ndGggPiAxXCI+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMFwiXG4gICAgICAgIGRhdGEtY3k9XCJ0b3RhbC1vYmplY3RzLWxhYmVsXCJcbiAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgID5yZWNvcmQuZmVhdHVyZS5jYXRhbG9nLm51bWJlci50b3RhbC5vYmplY3Q8L3NwYW5cbiAgICAgID48c3BhblxuICAgICAgICBjbGFzcz1cInRleHQtc20gZm9udC1ib2xkIHB4LTEgdGV4dC1ncmF5LTkwMFwiXG4gICAgICAgIGRhdGEtY3k9XCJ0b3RhbC1vYmplY3RzXCJcbiAgICAgICAgPnt7IHRvdGFsT2JqZWN0cyB9fTwvc3BhblxuICAgICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJweC0xLjVcIj58PC9zcGFuPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW0gcHgtMSB0ZXh0LWdyYXktOTAwXCJcbiAgICAgIGRhdGEtY3k9XCJ0b3RhbC1hdHRyaWJ1dGVzLWxhYmVsXCJcbiAgICAgIHRyYW5zbGF0ZVxuICAgICAgPnJlY29yZC5mZWF0dXJlLmNhdGFsb2cubnVtYmVyLnRvdGFsLmF0dHJpYnV0ZTwvc3BhblxuICAgID48c3BhbiBjbGFzcz1cInRleHQtc20gZm9udC1ib2xkIHRleHQtZ3JheS05MDBcIiBkYXRhLWN5PVwidG90YWwtYXR0cmlidXRlc1wiPnt7XG4gICAgICB0b3RhbEF0dHJpYnV0ZXNcbiAgICB9fTwvc3Bhbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==