geonetwork-ui 2.6.0-dev.86c0fa7b5 → 2.6.0-dev.87d6e6c1b

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 (491) hide show
  1. package/README.md +2 -3
  2. package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.mjs +3 -3
  3. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +14 -11
  4. package/esm2022/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.mjs +3 -3
  5. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +4 -8
  6. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +3 -6
  7. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +4 -4
  8. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +4 -4
  9. package/esm2022/libs/api/repository/src/lib/gn4/auth/auth.service.mjs +4 -4
  10. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +17 -15
  11. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +3 -3
  12. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.mjs +8 -8
  13. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +14 -11
  14. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +17 -13
  15. package/esm2022/libs/feature/catalog/src/lib/feature-catalog.module.mjs +7 -31
  16. package/esm2022/libs/feature/catalog/src/lib/sources/sources.service.mjs +9 -8
  17. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +4 -4
  18. package/esm2022/libs/feature/dataviz/src/lib/figure/figure-container/figure-container.component.mjs +4 -5
  19. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +4 -4
  20. package/esm2022/libs/feature/editor/src/index.mjs +1 -4
  21. package/esm2022/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.mjs +5 -7
  22. package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +8 -13
  23. package/esm2022/libs/feature/editor/src/lib/components/import-record/import-record.component.mjs +5 -6
  24. package/esm2022/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.mjs +5 -4
  25. package/esm2022/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.mjs +4 -13
  26. package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +5 -5
  27. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints/form-field-constraints.component.mjs +5 -8
  28. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints-shortcuts/form-field-constraints-shortcuts.component.mjs +4 -5
  29. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.mjs +6 -10
  30. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +8 -14
  31. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.mjs +4 -15
  32. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.mjs +4 -4
  33. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.mjs +4 -4
  34. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +4 -4
  35. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +4 -4
  36. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.mjs +4 -4
  37. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +4 -4
  38. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +6 -17
  39. package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +4 -5
  40. package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +12 -30
  41. package/esm2022/libs/feature/editor/src/lib/models/index.mjs +1 -3
  42. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +5 -6
  43. package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs +11 -8
  44. package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +11 -8
  45. package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +11 -6
  46. package/esm2022/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.mjs +10 -5
  47. package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +3 -36
  48. package/esm2022/libs/feature/map/src/lib/geocoding/geocoding.component.mjs +5 -11
  49. package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +6 -6
  50. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +5 -5
  51. package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +6 -7
  52. package/esm2022/libs/feature/record/src/lib/data-view-share/data-view-share.component.mjs +4 -5
  53. package/esm2022/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.mjs +6 -7
  54. package/esm2022/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.mjs +4 -4
  55. package/esm2022/libs/feature/record/src/lib/feature-record.module.mjs +8 -22
  56. package/esm2022/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.mjs +5 -5
  57. package/esm2022/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.mjs +15 -7
  58. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +5 -4
  59. package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +4 -4
  60. package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +24 -27
  61. package/esm2022/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.mjs +3 -3
  62. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +6 -6
  63. package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +6 -6
  64. package/esm2022/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.mjs +5 -7
  65. package/esm2022/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.mjs +4 -4
  66. package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +5 -4
  67. package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +4 -5
  68. package/esm2022/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.mjs +4 -5
  69. package/esm2022/libs/ui/catalog/src/lib/organisations-result/organisations-result.component.mjs +4 -5
  70. package/esm2022/libs/ui/dataviz/src/index.mjs +1 -2
  71. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.component.mjs +4 -4
  72. package/esm2022/libs/ui/dataviz/src/lib/figure/figure.component.mjs +5 -5
  73. package/esm2022/libs/ui/elements/src/index.mjs +1 -2
  74. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +6 -6
  75. package/esm2022/libs/ui/elements/src/lib/application-banner/application-banner.component.mjs +5 -5
  76. package/esm2022/libs/ui/elements/src/lib/avatar/avatar.component.mjs +4 -3
  77. package/esm2022/libs/ui/elements/src/lib/download-item/download-item.component.mjs +4 -5
  78. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +4 -4
  79. package/esm2022/libs/ui/elements/src/lib/error/error.component.mjs +4 -5
  80. package/esm2022/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.mjs +4 -5
  81. package/esm2022/libs/ui/elements/src/lib/image-input/image-input.component.mjs +4 -5
  82. package/esm2022/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.mjs +5 -7
  83. package/esm2022/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.mjs +5 -6
  84. package/esm2022/libs/ui/elements/src/lib/kind-badge/kind-badge.component.mjs +7 -10
  85. package/esm2022/libs/ui/elements/src/lib/link-card/link-card.component.mjs +4 -5
  86. package/esm2022/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.mjs +3 -6
  87. package/esm2022/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.mjs +4 -5
  88. package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +4 -5
  89. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +6 -7
  90. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +5 -7
  91. package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +4 -5
  92. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +7 -5
  93. package/esm2022/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.mjs +6 -7
  94. package/esm2022/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.mjs +5 -4
  95. package/esm2022/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.mjs +4 -5
  96. package/esm2022/libs/ui/elements/src/lib/user-preview/user-preview.component.mjs +5 -4
  97. package/esm2022/libs/ui/inputs/src/index.mjs +1 -2
  98. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +5 -6
  99. package/esm2022/libs/ui/inputs/src/lib/checkbox/checkbox.component.mjs +4 -3
  100. package/esm2022/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.mjs +7 -6
  101. package/esm2022/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.mjs +29 -7
  102. package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +4 -5
  103. package/esm2022/libs/ui/inputs/src/lib/file-input/file-input.component.mjs +5 -7
  104. package/esm2022/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.mjs +4 -3
  105. package/esm2022/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.mjs +12 -7
  106. package/esm2022/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.mjs +4 -5
  107. package/esm2022/libs/ui/inputs/src/lib/viewport-intersector/viewport-intersector.component.mjs +3 -3
  108. package/esm2022/libs/ui/layout/src/index.mjs +1 -2
  109. package/esm2022/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.mjs +3 -2
  110. package/esm2022/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.mjs +4 -5
  111. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +4 -5
  112. package/esm2022/libs/ui/layout/src/lib/max-lines/max-lines.component.mjs +4 -5
  113. package/esm2022/libs/ui/layout/src/lib/pagination/pagination.component.mjs +4 -5
  114. package/esm2022/libs/ui/layout/src/lib/sticky-header/sticky-header.component.mjs +4 -3
  115. package/esm2022/libs/ui/layout/src/lib/truncated-text/truncated-text.component.mjs +5 -7
  116. package/esm2022/libs/ui/map/src/lib/components/map-container/map-container.component.mjs +4 -5
  117. package/esm2022/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.mjs +6 -6
  118. package/esm2022/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.mjs +3 -3
  119. package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +5 -7
  120. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +9 -10
  121. package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +23 -24
  122. package/esm2022/libs/ui/widgets/src/index.mjs +1 -2
  123. package/esm2022/libs/ui/widgets/src/lib/color-scale/color-scale.component.mjs +3 -3
  124. package/esm2022/libs/util/app-config/src/lib/app-config.mjs +1 -3
  125. package/esm2022/libs/util/i18n/src/index.mjs +2 -3
  126. package/esm2022/libs/util/i18n/src/lib/embedded.translate.loader.mjs +3 -2
  127. package/esm2022/libs/util/i18n/src/lib/i18n.constants.mjs +36 -69
  128. package/esm2022/libs/util/i18n/src/lib/i18n.interceptor.mjs +10 -9
  129. package/esm2022/libs/util/i18n/src/lib/i18n.providers.mjs +41 -0
  130. package/esm2022/libs/util/i18n/src/lib/language-codes.mjs +40 -2
  131. package/esm2022/libs/util/shared/src/index.mjs +1 -2
  132. package/esm2022/libs/util/shared/src/lib/image-fallback.directive.mjs +3 -2
  133. package/esm2022/translations/de.json +0 -16
  134. package/esm2022/translations/en.json +0 -16
  135. package/esm2022/translations/es.json +0 -16
  136. package/esm2022/translations/fr.json +0 -16
  137. package/esm2022/translations/it.json +0 -16
  138. package/esm2022/translations/nl.json +0 -16
  139. package/esm2022/translations/pt.json +0 -16
  140. package/esm2022/translations/sk.json +602 -0
  141. package/fesm2022/geonetwork-ui.mjs +10383 -10670
  142. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  143. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +4 -4
  144. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  145. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts.map +1 -1
  146. package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts.map +1 -1
  147. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  148. package/libs/api/repository/src/lib/gn4/auth/auth.service.d.ts.map +1 -1
  149. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +8 -6
  150. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  151. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  152. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.d.ts +1 -0
  153. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.d.ts.map +1 -1
  154. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.d.ts +4 -4
  155. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.d.ts.map +1 -1
  156. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +4 -3
  157. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  158. package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts +4 -8
  159. package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts.map +1 -1
  160. package/libs/feature/catalog/src/lib/sources/sources.service.d.ts +3 -3
  161. package/libs/feature/catalog/src/lib/sources/sources.service.d.ts.map +1 -1
  162. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  163. package/libs/feature/dataviz/src/lib/figure/figure-container/figure-container.component.d.ts.map +1 -1
  164. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  165. package/libs/feature/editor/src/index.d.ts +0 -3
  166. package/libs/feature/editor/src/index.d.ts.map +1 -1
  167. package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts +1 -1
  168. package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts.map +1 -1
  169. package/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.d.ts.map +1 -1
  170. package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts.map +1 -1
  171. package/libs/feature/editor/src/lib/components/import-record/import-record.component.d.ts.map +1 -1
  172. package/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.d.ts.map +1 -1
  173. package/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.d.ts.map +1 -1
  174. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts.map +1 -1
  175. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints/form-field-constraints.component.d.ts.map +1 -1
  176. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.d.ts.map +1 -1
  177. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts.map +1 -1
  178. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts.map +1 -1
  179. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.d.ts.map +1 -1
  180. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts.map +1 -1
  181. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts.map +1 -1
  182. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts.map +1 -1
  183. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.d.ts.map +1 -1
  184. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts.map +1 -1
  185. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  186. package/libs/feature/editor/src/lib/feature-editor.module.d.ts +10 -17
  187. package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
  188. package/libs/feature/editor/src/lib/models/index.d.ts +0 -2
  189. package/libs/feature/editor/src/lib/models/index.d.ts.map +1 -1
  190. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.d.ts.map +1 -1
  191. package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts.map +1 -1
  192. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts.map +1 -1
  193. package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts.map +1 -1
  194. package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts.map +1 -1
  195. package/libs/feature/map/src/lib/feature-map.module.d.ts +2 -11
  196. package/libs/feature/map/src/lib/feature-map.module.d.ts.map +1 -1
  197. package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts.map +1 -1
  198. package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts.map +1 -1
  199. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  200. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts.map +1 -1
  201. package/libs/feature/record/src/lib/feature-record.module.d.ts +8 -12
  202. package/libs/feature/record/src/lib/feature-record.module.d.ts.map +1 -1
  203. package/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.d.ts.map +1 -1
  204. package/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.d.ts.map +1 -1
  205. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  206. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts.map +1 -1
  207. package/libs/feature/search/src/lib/feature-search.module.d.ts +24 -24
  208. package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
  209. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +1 -1
  210. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
  211. package/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.d.ts +1 -2
  212. package/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.d.ts.map +1 -1
  213. package/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.d.ts.map +1 -1
  214. package/libs/feature/search/src/lib/utils/service/fields.d.ts +1 -2
  215. package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
  216. package/libs/ui/dataviz/src/index.d.ts +0 -1
  217. package/libs/ui/dataviz/src/index.d.ts.map +1 -1
  218. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts.map +1 -1
  219. package/libs/ui/dataviz/src/lib/figure/figure.component.d.ts +1 -1
  220. package/libs/ui/dataviz/src/lib/figure/figure.component.d.ts.map +1 -1
  221. package/libs/ui/elements/src/index.d.ts +0 -1
  222. package/libs/ui/elements/src/index.d.ts.map +1 -1
  223. package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts.map +1 -1
  224. package/libs/ui/elements/src/lib/avatar/avatar.component.d.ts +1 -1
  225. package/libs/ui/elements/src/lib/avatar/avatar.component.d.ts.map +1 -1
  226. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
  227. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts +1 -1
  228. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -1
  229. package/libs/ui/elements/src/lib/kind-badge/kind-badge.component.d.ts.map +1 -1
  230. package/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.d.ts.map +1 -1
  231. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
  232. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  233. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  234. package/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.d.ts.map +1 -1
  235. package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts.map +1 -1
  236. package/libs/ui/elements/src/lib/user-preview/user-preview.component.d.ts +1 -1
  237. package/libs/ui/elements/src/lib/user-preview/user-preview.component.d.ts.map +1 -1
  238. package/libs/ui/inputs/src/index.d.ts +0 -1
  239. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  240. package/libs/ui/inputs/src/lib/checkbox/checkbox.component.d.ts +1 -1
  241. package/libs/ui/inputs/src/lib/checkbox/checkbox.component.d.ts.map +1 -1
  242. package/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.d.ts +1 -1
  243. package/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.d.ts.map +1 -1
  244. package/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.d.ts +1 -1
  245. package/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.d.ts.map +1 -1
  246. package/libs/ui/inputs/src/lib/file-input/file-input.component.d.ts.map +1 -1
  247. package/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.d.ts +1 -1
  248. package/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.d.ts.map +1 -1
  249. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts.map +1 -1
  250. package/libs/ui/inputs/src/lib/viewport-intersector/viewport-intersector.component.d.ts +1 -1
  251. package/libs/ui/inputs/src/lib/viewport-intersector/viewport-intersector.component.d.ts.map +1 -1
  252. package/libs/ui/layout/src/index.d.ts +0 -1
  253. package/libs/ui/layout/src/index.d.ts.map +1 -1
  254. package/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.d.ts +1 -1
  255. package/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.d.ts.map +1 -1
  256. package/libs/ui/layout/src/lib/sticky-header/sticky-header.component.d.ts +1 -1
  257. package/libs/ui/layout/src/lib/sticky-header/sticky-header.component.d.ts.map +1 -1
  258. package/libs/ui/layout/src/lib/truncated-text/truncated-text.component.d.ts +1 -1
  259. package/libs/ui/layout/src/lib/truncated-text/truncated-text.component.d.ts.map +1 -1
  260. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -1
  261. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  262. package/libs/ui/search/src/lib/ui-search.module.d.ts +11 -11
  263. package/libs/ui/search/src/lib/ui-search.module.d.ts.map +1 -1
  264. package/libs/ui/widgets/src/index.d.ts +0 -1
  265. package/libs/ui/widgets/src/index.d.ts.map +1 -1
  266. package/libs/ui/widgets/src/lib/color-scale/color-scale.component.d.ts +1 -1
  267. package/libs/ui/widgets/src/lib/color-scale/color-scale.component.d.ts.map +1 -1
  268. package/libs/util/app-config/src/lib/app-config.d.ts +0 -1
  269. package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
  270. package/libs/util/i18n/src/index.d.ts +1 -2
  271. package/libs/util/i18n/src/index.d.ts.map +1 -1
  272. package/libs/util/i18n/src/lib/embedded.translate.loader.d.ts +1 -1
  273. package/libs/util/i18n/src/lib/embedded.translate.loader.d.ts.map +1 -1
  274. package/libs/util/i18n/src/lib/i18n.constants.d.ts +6 -16
  275. package/libs/util/i18n/src/lib/i18n.constants.d.ts.map +1 -1
  276. package/libs/util/i18n/src/lib/i18n.interceptor.d.ts +5 -5
  277. package/libs/util/i18n/src/lib/i18n.interceptor.d.ts.map +1 -1
  278. package/libs/util/i18n/src/lib/i18n.providers.d.ts +4 -0
  279. package/libs/util/i18n/src/lib/i18n.providers.d.ts.map +1 -0
  280. package/libs/util/i18n/src/lib/language-codes.d.ts +3 -29
  281. package/libs/util/i18n/src/lib/language-codes.d.ts.map +1 -1
  282. package/libs/util/shared/src/index.d.ts +0 -1
  283. package/libs/util/shared/src/index.d.ts.map +1 -1
  284. package/libs/util/shared/src/lib/image-fallback.directive.d.ts +1 -1
  285. package/libs/util/shared/src/lib/image-fallback.directive.d.ts.map +1 -1
  286. package/package.json +3 -3
  287. package/src/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.ts +2 -2
  288. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +12 -6
  289. package/src/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.ts +4 -4
  290. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +3 -7
  291. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +2 -6
  292. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +3 -3
  293. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +3 -6
  294. package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +3 -6
  295. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +13 -5
  296. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +2 -2
  297. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +8 -7
  298. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +13 -6
  299. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +13 -20
  300. package/src/libs/feature/catalog/src/lib/feature-catalog.module.ts +4 -17
  301. package/src/libs/feature/catalog/src/lib/sources/sources.service.ts +7 -3
  302. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +2 -2
  303. package/src/libs/feature/dataviz/src/lib/figure/figure-container/figure-container.component.ts +2 -2
  304. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +2 -2
  305. package/src/libs/feature/editor/src/index.ts +0 -3
  306. package/src/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.ts +3 -4
  307. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.ts +5 -16
  308. package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.ts +7 -5
  309. package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.ts +7 -2
  310. package/src/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.ts +2 -10
  311. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +3 -2
  312. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints/form-field-constraints.component.ts +3 -4
  313. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints-shortcuts/form-field-constraints-shortcuts.component.ts +2 -2
  314. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.ts +4 -11
  315. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +5 -9
  316. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.ts +2 -17
  317. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.ts +2 -2
  318. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.ts +2 -2
  319. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.ts +2 -2
  320. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +2 -2
  321. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +2 -2
  322. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.ts +2 -2
  323. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.ts +2 -2
  324. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +2 -15
  325. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.ts +2 -2
  326. package/src/libs/feature/editor/src/lib/feature-editor.module.ts +4 -17
  327. package/src/libs/feature/editor/src/lib/models/index.ts +0 -2
  328. package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.ts +2 -1
  329. package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.ts +8 -3
  330. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.ts +10 -3
  331. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.ts +8 -2
  332. package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.ts +8 -2
  333. package/src/libs/feature/map/src/lib/feature-map.module.ts +0 -17
  334. package/src/libs/feature/map/src/lib/geocoding/geocoding.component.ts +3 -8
  335. package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.ts +3 -2
  336. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +5 -4
  337. package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +2 -2
  338. package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.ts +2 -2
  339. package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts +2 -2
  340. package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.ts +2 -2
  341. package/src/libs/feature/record/src/lib/feature-record.module.ts +4 -13
  342. package/src/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.ts +4 -3
  343. package/src/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.ts +10 -4
  344. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +7 -2
  345. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +2 -2
  346. package/src/libs/feature/search/src/lib/feature-search.module.ts +13 -18
  347. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +4 -0
  348. package/src/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.ts +10 -4
  349. package/src/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.ts +2 -2
  350. package/src/libs/feature/search/src/lib/utils/service/fields.ts +4 -3
  351. package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.ts +2 -2
  352. package/src/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.ts +2 -2
  353. package/src/libs/ui/catalog/src/lib/organisations-result/organisations-result.component.ts +2 -2
  354. package/src/libs/ui/dataviz/src/index.ts +0 -1
  355. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.ts +2 -2
  356. package/src/libs/ui/dataviz/src/lib/figure/figure.component.html +0 -1
  357. package/src/libs/ui/dataviz/src/lib/figure/figure.component.ts +4 -0
  358. package/src/libs/ui/elements/src/index.ts +0 -1
  359. package/src/libs/ui/elements/src/lib/api-card/api-card.component.ts +3 -2
  360. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.html +6 -6
  361. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.ts +2 -2
  362. package/src/libs/ui/elements/src/lib/avatar/avatar.component.ts +3 -0
  363. package/src/libs/ui/elements/src/lib/download-item/download-item.component.ts +2 -2
  364. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +2 -5
  365. package/src/libs/ui/elements/src/lib/error/error.component.ts +2 -2
  366. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.ts +2 -2
  367. package/src/libs/ui/elements/src/lib/image-input/image-input.component.ts +2 -2
  368. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +5 -7
  369. package/src/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.ts +3 -3
  370. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.ts +4 -5
  371. package/src/libs/ui/elements/src/lib/link-card/link-card.component.ts +2 -2
  372. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.ts +1 -4
  373. package/src/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.ts +2 -2
  374. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.ts +2 -2
  375. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +4 -7
  376. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +3 -4
  377. package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.ts +2 -2
  378. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +4 -2
  379. package/src/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.ts +4 -4
  380. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts +7 -2
  381. package/src/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.ts +2 -2
  382. package/src/libs/ui/elements/src/lib/user-preview/user-preview.component.ts +4 -0
  383. package/src/libs/ui/inputs/src/index.ts +0 -1
  384. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +2 -2
  385. package/src/libs/ui/inputs/src/lib/checkbox/checkbox.component.ts +3 -0
  386. package/src/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.html +1 -1
  387. package/src/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.ts +4 -0
  388. package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.ts +27 -0
  389. package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.ts +2 -2
  390. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.ts +3 -4
  391. package/src/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.ts +3 -0
  392. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.ts +9 -3
  393. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.ts +2 -2
  394. package/src/libs/ui/inputs/src/lib/viewport-intersector/viewport-intersector.component.ts +1 -0
  395. package/src/libs/ui/layout/src/index.ts +0 -1
  396. package/src/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.ts +1 -0
  397. package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.ts +2 -2
  398. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +2 -2
  399. package/src/libs/ui/layout/src/lib/max-lines/max-lines.component.ts +2 -2
  400. package/src/libs/ui/layout/src/lib/pagination/pagination.component.ts +2 -2
  401. package/src/libs/ui/layout/src/lib/sticky-header/sticky-header.component.ts +3 -0
  402. package/src/libs/ui/layout/src/lib/truncated-text/truncated-text.component.ts +3 -10
  403. package/src/libs/ui/map/src/lib/components/map-container/map-container.component.ts +2 -2
  404. package/src/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.html +4 -1
  405. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +3 -4
  406. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +15 -5
  407. package/src/libs/ui/search/src/lib/ui-search.module.ts +12 -11
  408. package/src/libs/ui/widgets/src/index.ts +0 -1
  409. package/src/libs/ui/widgets/src/lib/color-scale/color-scale.component.ts +1 -0
  410. package/src/libs/util/app-config/src/lib/app-config.ts +0 -2
  411. package/src/libs/util/i18n/src/index.ts +1 -2
  412. package/src/libs/util/i18n/src/lib/embedded.translate.loader.ts +4 -3
  413. package/src/libs/util/i18n/src/lib/i18n.constants.ts +39 -71
  414. package/src/libs/util/i18n/src/lib/i18n.interceptor.ts +11 -9
  415. package/src/libs/util/i18n/src/lib/i18n.providers.ts +68 -0
  416. package/src/libs/util/i18n/src/lib/language-codes.ts +44 -1
  417. package/src/libs/util/shared/src/index.ts +0 -1
  418. package/src/libs/util/shared/src/lib/image-fallback.directive.ts +1 -0
  419. package/translations/de.json +0 -16
  420. package/translations/en.json +0 -16
  421. package/translations/es.json +0 -16
  422. package/translations/fr.json +0 -16
  423. package/translations/it.json +0 -16
  424. package/translations/nl.json +0 -16
  425. package/translations/pt.json +0 -16
  426. package/translations/sk.json +0 -16
  427. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.mjs +0 -44
  428. package/esm2022/libs/feature/editor/src/lib/components/wizard/wizard.component.mjs +0 -75
  429. package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +0 -160
  430. package/esm2022/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.mjs +0 -53
  431. package/esm2022/libs/feature/editor/src/lib/models/wizard-field.model.mjs +0 -2
  432. package/esm2022/libs/feature/editor/src/lib/models/wizard-field.type.mjs +0 -8
  433. package/esm2022/libs/feature/editor/src/lib/services/wizard.service.mjs +0 -87
  434. package/esm2022/libs/ui/dataviz/src/lib/ui-dataviz.module.mjs +0 -47
  435. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +0 -134
  436. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +0 -160
  437. package/esm2022/libs/ui/layout/src/lib/ui-layout.module.mjs +0 -23
  438. package/esm2022/libs/ui/widgets/src/lib/ui-widgets.module.mjs +0 -46
  439. package/esm2022/libs/util/i18n/src/lib/lang.service.mjs +0 -31
  440. package/esm2022/libs/util/i18n/src/lib/util-i18n.module.mjs +0 -37
  441. package/esm2022/libs/util/shared/src/lib/util-shared.module.mjs +0 -18
  442. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts +0 -14
  443. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts.map +0 -1
  444. package/libs/feature/editor/src/lib/components/wizard/wizard.component.d.ts +0 -31
  445. package/libs/feature/editor/src/lib/components/wizard/wizard.component.d.ts.map +0 -1
  446. package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts +0 -43
  447. package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts.map +0 -1
  448. package/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.d.ts +0 -17
  449. package/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.d.ts.map +0 -1
  450. package/libs/feature/editor/src/lib/models/wizard-field.model.d.ts +0 -10
  451. package/libs/feature/editor/src/lib/models/wizard-field.model.d.ts.map +0 -1
  452. package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts +0 -7
  453. package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts.map +0 -1
  454. package/libs/feature/editor/src/lib/services/wizard.service.d.ts +0 -33
  455. package/libs/feature/editor/src/lib/services/wizard.service.d.ts.map +0 -1
  456. package/libs/ui/dataviz/src/lib/ui-dataviz.module.d.ts +0 -11
  457. package/libs/ui/dataviz/src/lib/ui-dataviz.module.d.ts.map +0 -1
  458. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +0 -32
  459. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +0 -1
  460. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +0 -35
  461. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +0 -1
  462. package/libs/ui/layout/src/lib/ui-layout.module.d.ts +0 -12
  463. package/libs/ui/layout/src/lib/ui-layout.module.d.ts.map +0 -1
  464. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts +0 -15
  465. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts.map +0 -1
  466. package/libs/util/i18n/src/lib/lang.service.d.ts +0 -13
  467. package/libs/util/i18n/src/lib/lang.service.d.ts.map +0 -1
  468. package/libs/util/i18n/src/lib/util-i18n.module.d.ts +0 -12
  469. package/libs/util/i18n/src/lib/util-i18n.module.d.ts.map +0 -1
  470. package/libs/util/shared/src/lib/util-shared.module.d.ts +0 -9
  471. package/libs/util/shared/src/lib/util-shared.module.d.ts.map +0 -1
  472. package/src/libs/feature/editor/src/lib/components/wizard/wizard.component.css +0 -5
  473. package/src/libs/feature/editor/src/lib/components/wizard/wizard.component.html +0 -22
  474. package/src/libs/feature/editor/src/lib/components/wizard/wizard.component.ts +0 -93
  475. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.css +0 -31
  476. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.html +0 -62
  477. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.ts +0 -206
  478. package/src/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.css +0 -3
  479. package/src/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.html +0 -21
  480. package/src/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.ts +0 -58
  481. package/src/libs/feature/editor/src/lib/models/wizard-field.model.ts +0 -10
  482. package/src/libs/feature/editor/src/lib/models/wizard-field.type.ts +0 -6
  483. package/src/libs/feature/editor/src/lib/services/wizard.service.ts +0 -105
  484. package/src/libs/ui/dataviz/src/lib/ui-dataviz.module.ts +0 -27
  485. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +0 -74
  486. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +0 -96
  487. package/src/libs/ui/layout/src/lib/ui-layout.module.ts +0 -14
  488. package/src/libs/ui/widgets/src/lib/ui-widgets.module.ts +0 -25
  489. package/src/libs/util/i18n/src/lib/lang.service.ts +0 -23
  490. package/src/libs/util/i18n/src/lib/util-i18n.module.ts +0 -26
  491. package/src/libs/util/shared/src/lib/util-shared.module.ts +0 -10
@@ -7,14 +7,13 @@ import { ButtonComponent, FilesDropDirective, TextInputComponent, UrlInputCompon
7
7
  import { downgradeImage, megabytesToBytes } from '../../../../../../libs/util/shared/src';
8
8
  import { NgIconComponent, provideIcons, provideNgIconsConfig, } from '@ng-icons/core';
9
9
  import { iconoirBin, iconoirFramePlusIn, iconoirLink, iconoirMediaImage, iconoirMediaImageXmark, iconoirPlus, } from '@ng-icons/iconoir';
10
- import { TranslateModule } from '@ngx-translate/core';
10
+ import { TranslatePipe } from '@ngx-translate/core';
11
11
  import { firstValueFrom } from 'rxjs';
12
12
  import { ImageOverlayPreviewComponent } from '../image-overlay-preview/image-overlay-preview.component';
13
13
  import * as i0 from "@angular/core";
14
14
  import * as i1 from "@angular/common/http";
15
15
  import * as i2 from "@angular/common";
16
16
  import * as i3 from "@angular/material/progress-spinner";
17
- import * as i4 from "@ngx-translate/core";
18
17
  export class ImageInputComponent {
19
18
  get altText() {
20
19
  return this._altText;
@@ -175,7 +174,7 @@ export class ImageInputComponent {
175
174
  provideNgIconsConfig({
176
175
  size: '1.5rem',
177
176
  }),
178
- ], ngImport: i0, template: "<ng-container *ngIf=\"previewUrl; then withImage; else withoutImage\">\n</ng-container>\n\n<ng-template #withImage>\n <div class=\"w-80 h-full flex flex-col gap-2\">\n <gn-ui-image-overlay-preview class=\"h-48\" [imageUrl]=\"previewUrl\">\n </gn-ui-image-overlay-preview>\n <gn-ui-text-input\n *ngIf=\"showAltTextInput\"\n [placeholder]=\"'input.image.altTextPlaceholder' | translate\"\n [value]=\"altText ?? ''\"\n (valueChange)=\"handleAltTextChange($event)\"\n extraClass=\"gn-ui-editor-textarea\"\n ></gn-ui-text-input>\n <div class=\"flex flex-row gap-2 mt-2\">\n <gn-ui-button\n type=\"gray\"\n (buttonClick)=\"handleDelete()\"\n data-cy=\"delete-image\"\n >\n <ng-icon class=\"me-1 text-primary\" name=\"iconoirBin\"></ng-icon>\n {{ 'input.image.delete' | translate }}\n </gn-ui-button>\n <gn-ui-button\n *ngIf=\"!showAltTextInput\"\n type=\"gray\"\n (buttonClick)=\"toggleAltTextInput()\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"me-1 text-primary\"></ng-icon>\n {{ 'input.image.displayAltTextInput' | translate }}\n </gn-ui-button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #withoutImage>\n <div class=\"w-full h-full flex flex-col gap-2\">\n <label\n gnUiFilesDrop\n class=\"flex-1 border-2 border-dashed rounded-lg p-6 flex flex-col items-center justify-center gap-4 transition-colors duration-100\"\n [ngClass]=\"{\n 'border-primary-lighter bg-primary-white': dragFilesOver,\n 'border-gray-300': !dragFilesOver,\n 'cursor-pointer hover:border-gray-500': !getIsActionBlocked(),\n 'cursor-not-allowed': disabled,\n }\"\n [attr.tabindex]=\"getIsActionBlocked() ? null : 0\"\n (keydown.enter)=\"fileInput.click()\"\n (dragFilesOver)=\"handleDragFilesOver($event)\"\n (dropFiles)=\"handleDropFiles($event)\"\n >\n <div\n class=\"w-14 h-14 rounded-md bg-gray-50 grid\"\n *ngIf=\"!isUploadInProgress && !imageFileError\"\n >\n <ng-icon\n *ngIf=\"!dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirMediaImage\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirFramePlusIn\"\n ></ng-icon>\n </div>\n\n <div\n *ngIf=\"isUploadInProgress && !imageFileError\"\n class=\"w-14 h-14 grid items-center justify-center relative\"\n >\n <div class=\"text-gray-100 absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"100\"\n ></mat-progress-spinner>\n </div>\n <div class=\"text-primary absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"uploadProgress\"\n ></mat-progress-spinner>\n </div>\n <span class=\"text-sm text-main font-bold\">{{ uploadProgress }}%</span>\n </div>\n\n <div class=\"w-14 h-14 rounded-md bg-gray-50 grid\" *ngIf=\"imageFileError\">\n <ng-icon\n name=\"iconoirMediaImageXmark\"\n class=\"place-self-center text-rose-500\"\n data-cy=\"imgErrorIcon\"\n ></ng-icon>\n </div>\n\n <div class=\"flex flex-col items-center gap-1\">\n <p class=\"font-medium\" data-cy=\"imgInputMsgPrimary\">\n {{ getPrimaryText() | translate }}\n </p>\n <p\n class=\"text-sm\"\n data-cy=\"imgInputMsgSecondary\"\n [class]=\"\n isUploadInProgress\n ? 'font-bold text-blue-500 cursor-pointer'\n : 'font-medium text-gray-500'\n \"\n (click)=\"handleSecondaryTextClick($event)\"\n >\n {{ getSecondaryText() | translate }}\n </p>\n </div>\n <input\n #fileInput\n accept=\"image/*\"\n type=\"file\"\n class=\"hidden\"\n (change)=\"handleFileInput($event)\"\n [disabled]=\"isUploadInProgress || disabled\"\n />\n </label>\n\n <div *ngIf=\"!showUrlInput\" class=\"flex-none mt-2\">\n <gn-ui-button\n data-cy=\"imgUrlBtn\"\n (buttonClick)=\"displayUrlInput()\"\n type=\"gray\"\n [disabled]=\"disabled\"\n [extraClass]=\"disabled && 'cursor-not-allowed'\"\n >\n <ng-icon class=\"me-1 text-primary\" name=\"iconoirLink\"></ng-icon>\n {{ 'input.image.displayUrlInput' | translate }}\n </gn-ui-button>\n </div>\n\n <gn-ui-url-input\n *ngIf=\"showUrlInput\"\n class=\"mt-3.5\"\n data-cy=\"imgUrlInput\"\n (uploadClick)=\"downloadUrl($event)\"\n [disabled]=\"isUploadInProgress || disabled\"\n >\n </gn-ui-url-input>\n </div>\n</ng-template>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "directive", type: FilesDropDirective, selector: "[gnUiFilesDrop]", outputs: ["dragFilesOver", "dropFiles"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i3.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton", "resetUrlOnChange"], outputs: ["valueChange", "uploadClick"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: ImageOverlayPreviewComponent, selector: "gn-ui-image-overlay-preview", inputs: ["imageUrl"], outputs: ["isPlaceholderShown"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
177
+ ], ngImport: i0, template: "<ng-container *ngIf=\"previewUrl; then withImage; else withoutImage\">\n</ng-container>\n\n<ng-template #withImage>\n <div class=\"w-80 h-full flex flex-col gap-2\">\n <gn-ui-image-overlay-preview class=\"h-48\" [imageUrl]=\"previewUrl\">\n </gn-ui-image-overlay-preview>\n <gn-ui-text-input\n *ngIf=\"showAltTextInput\"\n [placeholder]=\"'input.image.altTextPlaceholder' | translate\"\n [value]=\"altText ?? ''\"\n (valueChange)=\"handleAltTextChange($event)\"\n extraClass=\"gn-ui-editor-textarea\"\n ></gn-ui-text-input>\n <div class=\"flex flex-row gap-2 mt-2\">\n <gn-ui-button\n type=\"gray\"\n (buttonClick)=\"handleDelete()\"\n data-cy=\"delete-image\"\n >\n <ng-icon class=\"me-1 text-primary\" name=\"iconoirBin\"></ng-icon>\n {{ 'input.image.delete' | translate }}\n </gn-ui-button>\n <gn-ui-button\n *ngIf=\"!showAltTextInput\"\n type=\"gray\"\n (buttonClick)=\"toggleAltTextInput()\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"me-1 text-primary\"></ng-icon>\n {{ 'input.image.displayAltTextInput' | translate }}\n </gn-ui-button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #withoutImage>\n <div class=\"w-full h-full flex flex-col gap-2\">\n <label\n gnUiFilesDrop\n class=\"flex-1 border-2 border-dashed rounded-lg p-6 flex flex-col items-center justify-center gap-4 transition-colors duration-100\"\n [ngClass]=\"{\n 'border-primary-lighter bg-primary-white': dragFilesOver,\n 'border-gray-300': !dragFilesOver,\n 'cursor-pointer hover:border-gray-500': !getIsActionBlocked(),\n 'cursor-not-allowed': disabled,\n }\"\n [attr.tabindex]=\"getIsActionBlocked() ? null : 0\"\n (keydown.enter)=\"fileInput.click()\"\n (dragFilesOver)=\"handleDragFilesOver($event)\"\n (dropFiles)=\"handleDropFiles($event)\"\n >\n <div\n class=\"w-14 h-14 rounded-md bg-gray-50 grid\"\n *ngIf=\"!isUploadInProgress && !imageFileError\"\n >\n <ng-icon\n *ngIf=\"!dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirMediaImage\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirFramePlusIn\"\n ></ng-icon>\n </div>\n\n <div\n *ngIf=\"isUploadInProgress && !imageFileError\"\n class=\"w-14 h-14 grid items-center justify-center relative\"\n >\n <div class=\"text-gray-100 absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"100\"\n ></mat-progress-spinner>\n </div>\n <div class=\"text-primary absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"uploadProgress\"\n ></mat-progress-spinner>\n </div>\n <span class=\"text-sm text-main font-bold\">{{ uploadProgress }}%</span>\n </div>\n\n <div class=\"w-14 h-14 rounded-md bg-gray-50 grid\" *ngIf=\"imageFileError\">\n <ng-icon\n name=\"iconoirMediaImageXmark\"\n class=\"place-self-center text-rose-500\"\n data-cy=\"imgErrorIcon\"\n ></ng-icon>\n </div>\n\n <div class=\"flex flex-col items-center gap-1\">\n <p class=\"font-medium\" data-cy=\"imgInputMsgPrimary\">\n {{ getPrimaryText() | translate }}\n </p>\n <p\n class=\"text-sm\"\n data-cy=\"imgInputMsgSecondary\"\n [class]=\"\n isUploadInProgress\n ? 'font-bold text-blue-500 cursor-pointer'\n : 'font-medium text-gray-500'\n \"\n (click)=\"handleSecondaryTextClick($event)\"\n >\n {{ getSecondaryText() | translate }}\n </p>\n </div>\n <input\n #fileInput\n accept=\"image/*\"\n type=\"file\"\n class=\"hidden\"\n (change)=\"handleFileInput($event)\"\n [disabled]=\"isUploadInProgress || disabled\"\n />\n </label>\n\n <div *ngIf=\"!showUrlInput\" class=\"flex-none mt-2\">\n <gn-ui-button\n data-cy=\"imgUrlBtn\"\n (buttonClick)=\"displayUrlInput()\"\n type=\"gray\"\n [disabled]=\"disabled\"\n [extraClass]=\"disabled && 'cursor-not-allowed'\"\n >\n <ng-icon class=\"me-1 text-primary\" name=\"iconoirLink\"></ng-icon>\n {{ 'input.image.displayUrlInput' | translate }}\n </gn-ui-button>\n </div>\n\n <gn-ui-url-input\n *ngIf=\"showUrlInput\"\n class=\"mt-3.5\"\n data-cy=\"imgUrlInput\"\n (uploadClick)=\"downloadUrl($event)\"\n [disabled]=\"isUploadInProgress || disabled\"\n >\n </gn-ui-url-input>\n </div>\n</ng-template>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "directive", type: FilesDropDirective, selector: "[gnUiFilesDrop]", outputs: ["dragFilesOver", "dropFiles"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i3.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton", "resetUrlOnChange"], outputs: ["valueChange", "uploadClick"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: ImageOverlayPreviewComponent, selector: "gn-ui-image-overlay-preview", inputs: ["imageUrl"], outputs: ["isPlaceholderShown"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
179
178
  }
180
179
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageInputComponent, decorators: [{
181
180
  type: Component,
@@ -184,7 +183,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
184
183
  ButtonComponent,
185
184
  FilesDropDirective,
186
185
  MatProgressSpinnerModule,
187
- TranslateModule,
186
+ TranslatePipe,
188
187
  UrlInputComponent,
189
188
  TextInputComponent,
190
189
  NgIconComponent,
@@ -225,4 +224,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
225
224
  }], altTextChange: [{
226
225
  type: Output
227
226
  }] } });
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMvbGliL2ltYWdlLWlucHV0L2ltYWdlLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9pbWFnZS1pbnB1dC9pbWFnZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2pELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUM3RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDaEUsT0FBTyxFQUNMLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLGlCQUFpQixHQUNsQixNQUFNLHNDQUFzQyxDQUFBO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUN6RixPQUFPLEVBQ0wsZUFBZSxFQUNmLFlBQVksRUFDWixvQkFBb0IsR0FDckIsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN2QixPQUFPLEVBQ0wsVUFBVSxFQUNWLGtCQUFrQixFQUNsQixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLHNCQUFzQixFQUN0QixXQUFXLEdBQ1osTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDckQs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VUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcidcbmltcG9ydCB7IG1hcmtlciB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcidcbmltcG9ydCB7XG4gIEJ1dHRvbkNvbXBvbmVudCxcbiAgRmlsZXNEcm9wRGlyZWN0aXZlLFxuICBUZXh0SW5wdXRDb21wb25lbnQsXG4gIFVybElucHV0Q29tcG9uZW50LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgeyBkb3duZ3JhZGVJbWFnZSwgbWVnYWJ5dGVzVG9CeXRlcyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjJ1xuaW1wb3J0IHtcbiAgTmdJY29uQ29tcG9uZW50LFxuICBwcm92aWRlSWNvbnMsXG4gIHByb3ZpZGVOZ0ljb25zQ29uZmlnLFxufSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7XG4gIGljb25vaXJCaW4sXG4gIGljb25vaXJGcmFtZVBsdXNJbixcbiAgaWNvbm9pckxpbmssXG4gIGljb25vaXJNZWRpYUltYWdlLFxuICBpY29ub2lyTWVkaWFJbWFnZVhtYXJrLFxuICBpY29ub2lyUGx1cyxcbn0gZnJvbSAnQG5nLWljb25zL2ljb25vaXInXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgSW1hZ2VPdmVybGF5UHJldmlld0NvbXBvbmVudCB9IGZyb20gJy4uL2ltYWdlLW92ZXJsYXktcHJldmlldy9pbWFnZS1vdmVybGF5LXByZXZpZXcuY29tcG9uZW50J1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1pbWFnZS1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ltYWdlLWlucHV0LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIEZpbGVzRHJvcERpcmVjdGl2ZSxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIFVybElucHV0Q29tcG9uZW50LFxuICAgIFRleHRJbnB1dENvbXBvbmVudCxcbiAgICBOZ0ljb25Db21wb25lbnQsXG4gICAgSW1hZ2VPdmVybGF5UHJldmlld0NvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHtcbiAgICAgIGljb25vaXJNZWRpYUltYWdlLFxuICAgICAgaWNvbm9pckZyYW1lUGx1c0luLFxuICAgICAgaWNvbm9pck1lZGlhSW1hZ2VYbWFyayxcbiAgICAgIGljb25vaXJCaW4sXG4gICAgICBpY29ub2lyUGx1cyxcbiAgICAgIGljb25vaXJMaW5rLFxuICAgIH0pLFxuICAgIHByb3ZpZGVOZ0ljb25zQ29uZmlnKHtcbiAgICAgIHNpemU6ICcxLjVyZW0nLFxuICAgIH0pLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBJbWFnZUlucHV0Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSBfYWx0VGV4dD86IHN0cmluZ1xuXG4gIEBJbnB1dCgpIHByZXZpZXdVcmw/OiBzdHJpbmdcbiAgQElucHV0KClcbiAgZ2V0IGFsdFRleHQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fYWx0VGV4dFxuICB9XG4gIHNldCBhbHRUZXh0KHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodmFsdWUgIT09ICdLTycgJiYgdGhpcy5fYWx0VGV4dCA9PT0gJ0tPJykge1xuICAgICAgLy9UaGlzIGlzIGEgZGF0YXNldCByb2xsYmFjayBhZnRlciB1cGxvYWQgZXJyb3JcbiAgICAgIHRoaXMucmVzZXRFcnJvcnMoKVxuICAgIH1cbiAgICB0aGlzLl9hbHRUZXh0ID0gdmFsdWVcbiAgfVxuXG4gIEBJbnB1dCgpIG1heFNpemVNQjogbnVtYmVyXG4gIEBJbnB1dCgpIHVwbG9hZFByb2dyZXNzPzogbnVtYmVyXG4gIEBJbnB1dCgpIHVwbG9hZEVycm9yPzogYm9vbGVhblxuICBASW5wdXQoKSBkaXNhYmxlZD86IGJvb2xlYW4gPSBmYWxzZVxuICBAT3V0cHV0KCkgZmlsZUNoYW5nZTogRXZlbnRFbWl0dGVyPEZpbGU+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBPdXRwdXQoKSB1cmxDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBPdXRwdXQoKSB1cGxvYWRDYW5jZWw6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBAT3V0cHV0KCkgZGVsZXRlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgQE91dHB1dCgpIGFsdFRleHRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG5cbiAgZHJhZ0ZpbGVzT3ZlciA9IGZhbHNlXG4gIHNob3dVcmxJbnB1dCA9IGZhbHNlXG4gIGltYWdlRmlsZUVycm9yID0gdGhpcy51cGxvYWRFcnJvclxuICBzaG93QWx0VGV4dElucHV0ID0gZmFsc2VcbiAgcGVuZGluZ0FsdFRleHQ6IHN0cmluZ1xuXG4gIGdldCBpc1VwbG9hZEluUHJvZ3Jlc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMudXBsb2FkUHJvZ3Jlc3MgIT09IHVuZGVmaW5lZFxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBnZXRJc0FjdGlvbkJsb2NrZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNVcGxvYWRJblByb2dyZXNzIHx8IHRoaXMuZGlzYWJsZWRcbiAgfVxuXG4gIGdldFByaW1hcnlUZXh0KCkge1xuICAgIGlmICh0aGlzLmltYWdlRmlsZUVycm9yKSB7XG4gICAgICByZXR1cm4gbWFya2VyKCdpbnB1dC5pbWFnZS51cGxvYWRFcnJvckxhYmVsJylcbiAgICB9XG4gICAgaWYgKHRoaXMudXBsb2FkUHJvZ3Jlc3MpIHtcbiAgICAgIHJldHVybiBtYXJrZXIoJ2lucHV0LmltYWdlLnVwbG9hZFByb2dyZXNzTGFiZWwnKVxuICAgIH1cbiAgICByZXR1cm4gbWFya2VyKCdpbnB1dC5pbWFnZS5zZWxlY3RGaWxlTGFiZWwnKVxuICB9XG5cbiAgZ2V0U2Vjb25kYXJ5VGV4dCgpIHtcbiAgICBpZiAodGhpcy5pbWFnZUZpbGVFcnJvcikge1xuICAgICAgcmV0dXJuICdcXHUwMEEwJyAvLyAob25seSB0byBrZWVwIHNhbWUgc3BhY2luZywgbmV4dCBzdGVwIGlzIHRvIGhhbmRsZSBcIlJldHJ5XCIpXG4gICAgfVxuICAgIGlmICh0aGlzLnVwbG9hZFByb2dyZXNzKSB7XG4gICAgICByZXR1cm4gbWFya2VyKCdpbnB1dC5pbWFnZS51cGxvYWRQcm9ncmVzc0NhbmNlbCcpXG4gICAgfVxuICAgIHJldHVybiBtYXJrZXIoJ2lucHV0LmltYWdlLmRyb3BGaWxlTGFiZWwnKVxuICB9XG5cbiAgaGFuZGxlRHJhZ0ZpbGVzT3ZlcihkcmFnRmlsZXNPdmVyOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLnNob3dVcmxJbnB1dCkge1xuICAgICAgdGhpcy5kcmFnRmlsZXNPdmVyID0gZHJhZ0ZpbGVzT3ZlclxuICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKVxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZURyb3BGaWxlcyhmaWxlczogRmlsZVtdKSB7XG4gICAgdGhpcy5yZXNldEVycm9ycygpXG4gICAgY29uc3QgdmFsaWRGaWxlcyA9IHRoaXMuZmlsdGVyVHlwZUltYWdlKGZpbGVzKVxuICAgIGlmICh2YWxpZEZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuc2hvd1VybElucHV0ID0gZmFsc2VcbiAgICAgIHRoaXMucmVzaXplQW5kRW1pdCh2YWxpZEZpbGVzWzBdKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmltYWdlRmlsZUVycm9yID0gdHJ1ZVxuICAgICAgdGhpcy5oYW5kbGVBbHRUZXh0Q2hhbmdlKCdLTycpXG4gICAgfVxuICB9XG5cbiAgaGFuZGxlRmlsZUlucHV0KGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMucmVzZXRFcnJvcnMoKVxuICAgIGNvbnN0IGlucHV0RmlsZXMgPSBBcnJheS5mcm9tKChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuZmlsZXMpXG4gICAgY29uc3QgdmFsaWRGaWxlcyA9IHRoaXMuZmlsdGVyVHlwZUltYWdlKGlucHV0RmlsZXMpXG4gICAgaWYgKHZhbGlkRmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5yZXNpemVBbmRFbWl0KHZhbGlkRmlsZXNbMF0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW1hZ2VGaWxlRXJyb3IgPSB0cnVlXG4gICAgICB0aGlzLmhhbmRsZUFsdFRleHRDaGFuZ2UoJ0tPJylcbiAgICB9XG4gIH1cblxuICBkaXNwbGF5VXJsSW5wdXQoKSB7XG4gICAgdGhpcy51cGxvYWRDYW5jZWwuZW1pdCgpXG4gICAgdGhpcy5zaG93VXJsSW5wdXQgPSB0cnVlXG4gIH1cblxuICBhc3luYyBkb3dubG9hZFVybCh1cmw6IHN0cmluZykge1xuICAgIHRoaXMucmVzZXRFcnJvcnMoKVxuICAgIGNvbnN0IG5hbWUgPSB1cmwuc3BsaXQoJy8nKS5wb3AoKVxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICB0aGlzLmh0dHAuaGVhZCh1cmwsIHsgb2JzZXJ2ZTogJ3Jlc3BvbnNlJyB9KVxuICAgICAgKVxuICAgICAgaWYgKFxuICAgICAgICByZXNwb25zZS5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJyk/LnN0YXJ0c1dpdGgoJ2ltYWdlLycpICYmXG4gICAgICAgIHBhcnNlSW50KHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdjb250ZW50LWxlbmd0aCcpKSA8XG4gICAgICAgICAgbWVnYWJ5dGVzVG9CeXRlcyh0aGlzLm1heFNpemVNQilcbiAgICAgICkge1xuICAgICAgICB0aGlzLmh0dHAuZ2V0KHVybCwgeyByZXNwb25zZVR5cGU6ICdibG9iJyB9KS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IChibG9iKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpXG4gICAgICAgICAgICBjb25zdCBmaWxlID0gbmV3IEZpbGUoW2Jsb2JdLCBuYW1lKVxuICAgICAgICAgICAgdGhpcy5maWxlQ2hhbmdlLmVtaXQoZmlsZSlcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmltYWdlRmlsZUVycm9yID0gdHJ1ZVxuICAgICAgICAgICAgdGhpcy5oYW5kbGVBbHRUZXh0Q2hhbmdlKCdLTycpXG4gICAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpXG4gICAgICAgICAgICB0aGlzLnVybENoYW5nZS5lbWl0KHVybClcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0gY2F0Y2gge1xuICAgICAgdGhpcy5pbWFnZUZpbGVFcnJvciA9IHRydWVcbiAgICAgIHRoaXMuaGFuZGxlQWx0VGV4dENoYW5nZSgnS08nKVxuICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICB9XG5cbiAgaGFuZGxlU2Vjb25kYXJ5VGV4dENsaWNrKGV2ZW50OiBFdmVudCkge1xuICAgIGlmICh0aGlzLnVwbG9hZFByb2dyZXNzKSB7XG4gICAgICB0aGlzLmhhbmRsZUNhbmNlbFVwbG9hZCgpXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQ2FuY2VsVXBsb2FkKCkge1xuICAgIHRoaXMudXBsb2FkQ2FuY2VsLmVtaXQoKVxuICB9XG5cbiAgaGFuZGxlRGVsZXRlKCkge1xuICAgIHRoaXMuZGVsZXRlLmVtaXQoKVxuICB9XG5cbiAgcmVzZXRFcnJvcnMoKSB7XG4gICAgdGhpcy5pbWFnZUZpbGVFcnJvciA9IGZhbHNlXG4gICAgdGhpcy51cGxvYWRFcnJvciA9IGZhbHNlXG4gIH1cblxuICB0b2dnbGVBbHRUZXh0SW5wdXQoKSB7XG4gICAgdGhpcy5zaG93QWx0VGV4dElucHV0ID0gIXRoaXMuc2hvd0FsdFRleHRJbnB1dFxuICB9XG5cbiAgaGFuZGxlQWx0VGV4dENoYW5nZShhbHRUZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLmFsdFRleHRDaGFuZ2UuZW1pdChhbHRUZXh0KVxuICB9XG4gIHByaXZhdGUgZmlsdGVyVHlwZUltYWdlKGZpbGVzOiBGaWxlW10pIHtcbiAgICByZXR1cm4gZmlsZXMuZmlsdGVyKChmaWxlKSA9PiB7XG4gICAgICByZXR1cm4gZmlsZS50eXBlLnN0YXJ0c1dpdGgoJ2ltYWdlLycpXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgcmVzaXplQW5kRW1pdChpbWFnZVRvUmVzaXplOiBGaWxlKSB7XG4gICAgY29uc3QgbWF4U2l6ZUJ5dGVzID0gbWVnYWJ5dGVzVG9CeXRlcyh0aGlzLm1heFNpemVNQilcbiAgICBkb3duZ3JhZGVJbWFnZShpbWFnZVRvUmVzaXplLCBtYXhTaXplQnl0ZXMpLnRoZW4oKHJlc2l6ZWRJbWFnZSkgPT4ge1xuICAgICAgY29uc3QgZmlsZVRvRW1pdCA9IG5ldyBGaWxlKFtyZXNpemVkSW1hZ2VdLCBpbWFnZVRvUmVzaXplLm5hbWUpXG4gICAgICB0aGlzLmZpbGVDaGFuZ2UuZW1pdChmaWxlVG9FbWl0KVxuICAgIH0pXG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJwcmV2aWV3VXJsOyB0aGVuIHdpdGhJbWFnZTsgZWxzZSB3aXRob3V0SW1hZ2VcIj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3dpdGhJbWFnZT5cbiAgPGRpdiBjbGFzcz1cInctODAgaC1mdWxsIGZsZXggZmxleC1jb2wgZ2FwLTJcIj5cbiAgICA8Z24tdWktaW1hZ2Utb3ZlcmxheS1wcmV2aWV3IGNsYXNzPVwiaC00OFwiIFtpbWFnZVVybF09XCJwcmV2aWV3VXJsXCI+XG4gICAgPC9nbi11aS1pbWFnZS1vdmVybGF5LXByZXZpZXc+XG4gICAgPGduLXVpLXRleHQtaW5wdXRcbiAgICAgICpuZ0lmPVwic2hvd0FsdFRleHRJbnB1dFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiJ2lucHV0LmltYWdlLmFsdFRleHRQbGFjZWhvbGRlcicgfCB0cmFuc2xhdGVcIlxuICAgICAgW3ZhbHVlXT1cImFsdFRleHQgPz8gJydcIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cImhhbmRsZUFsdFRleHRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICBleHRyYUNsYXNzPVwiZ24tdWktZWRpdG9yLXRleHRhcmVhXCJcbiAgICA+PC9nbi11aS10ZXh0LWlucHV0PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC0yIG10LTJcIj5cbiAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgdHlwZT1cImdyYXlcIlxuICAgICAgICAoYnV0dG9uQ2xpY2spPVwiaGFuZGxlRGVsZXRlKClcIlxuICAgICAgICBkYXRhLWN5PVwiZGVsZXRlLWltYWdlXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWljb24gY2xhc3M9XCJtZS0xIHRleHQtcHJpbWFyeVwiIG5hbWU9XCJpY29ub2lyQmluXCI+PC9uZy1pY29uPlxuICAgICAgICB7eyAnaW5wdXQuaW1hZ2UuZGVsZXRlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9nbi11aS1idXR0b24+XG4gICAgICA8Z24tdWktYnV0dG9uXG4gICAgICAgICpuZ0lmPVwiIXNob3dBbHRUZXh0SW5wdXRcIlxuICAgICAgICB0eXBlPVwiZ3JheVwiXG4gICAgICAgIChidXR0b25DbGljayk9XCJ0b2dnbGVBbHRUZXh0SW5wdXQoKVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1pY29uIG5hbWU9XCJpY29ub2lyUGx1c1wiIGNsYXNzPVwibWUtMSB0ZXh0LXByaW1hcnlcIj48L25nLWljb24+XG4gICAgICAgIHt7ICdpbnB1dC5pbWFnZS5kaXNwbGF5QWx0VGV4dElucHV0JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9nbi11aS1idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN3aXRob3V0SW1hZ2U+XG4gIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgaC1mdWxsIGZsZXggZmxleC1jb2wgZ2FwLTJcIj5cbiAgICA8bGFiZWxcbiAgICAgIGduVWlGaWxlc0Ryb3BcbiAgICAgIGNsYXNzPVwiZmxleC0xIGJvcmRlci0yIGJvcmRlci1kYXNoZWQgcm91bmRlZC1sZyBwLTYgZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTQgdHJhbnNpdGlvbi1jb2xvcnMgZHVyYXRpb24tMTAwXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ2JvcmRlci1wcmltYXJ5LWxpZ2h0ZXIgYmctcHJpbWFyeS13aGl0ZSc6IGRyYWdGaWxlc092ZXIsXG4gICAgICAgICdib3JkZXItZ3JheS0zMDAnOiAhZHJhZ0ZpbGVzT3ZlcixcbiAgICAgICAgJ2N1cnNvci1wb2ludGVyIGhvdmVyOmJvcmRlci1ncmF5LTUwMCc6ICFnZXRJc0FjdGlvbkJsb2NrZWQoKSxcbiAgICAgICAgJ2N1cnNvci1ub3QtYWxsb3dlZCc6IGRpc2FibGVkLFxuICAgICAgfVwiXG4gICAgICBbYXR0ci50YWJpbmRleF09XCJnZXRJc0FjdGlvbkJsb2NrZWQoKSA/IG51bGwgOiAwXCJcbiAgICAgIChrZXlkb3duLmVudGVyKT1cImZpbGVJbnB1dC5jbGljaygpXCJcbiAgICAgIChkcmFnRmlsZXNPdmVyKT1cImhhbmRsZURyYWdGaWxlc092ZXIoJGV2ZW50KVwiXG4gICAgICAoZHJvcEZpbGVzKT1cImhhbmRsZURyb3BGaWxlcygkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidy0xNCBoLTE0IHJvdW5kZWQtbWQgYmctZ3JheS01MCBncmlkXCJcbiAgICAgICAgKm5nSWY9XCIhaXNVcGxvYWRJblByb2dyZXNzICYmICFpbWFnZUZpbGVFcnJvclwiXG4gICAgICA+XG4gICAgICAgIDxuZy1pY29uXG4gICAgICAgICAgKm5nSWY9XCIhZHJhZ0ZpbGVzT3ZlclwiXG4gICAgICAgICAgY2xhc3M9XCJwbGFjZS1zZWxmLWNlbnRlciB0ZXh0LXByaW1hcnlcIlxuICAgICAgICAgIG5hbWU9XCJpY29ub2lyTWVkaWFJbWFnZVwiXG4gICAgICAgID48L25nLWljb24+XG4gICAgICAgIDxuZy1pY29uXG4gICAgICAgICAgKm5nSWY9XCJkcmFnRmlsZXNPdmVyXCJcbiAgICAgICAgICBjbGFzcz1cInBsYWNlLXNlbGYtY2VudGVyIHRleHQtcHJpbWFyeVwiXG4gICAgICAgICAgbmFtZT1cImljb25vaXJGcmFtZVBsdXNJblwiXG4gICAgICAgID48L25nLWljb24+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cImlzVXBsb2FkSW5Qcm9ncmVzcyAmJiAhaW1hZ2VGaWxlRXJyb3JcIlxuICAgICAgICBjbGFzcz1cInctMTQgaC0xNCBncmlkIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByZWxhdGl2ZVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktMTAwIGFic29sdXRlXCI+XG4gICAgICAgICAgPG1hdC1wcm9ncmVzcy1zcGlubmVyXG4gICAgICAgICAgICBjbGFzcz1cInBsYWNlLXNlbGYtY2VudGVyXCJcbiAgICAgICAgICAgIFtkaWFtZXRlcl09XCI1NlwiXG4gICAgICAgICAgICBtb2RlPVwiZGV0ZXJtaW5hdGVcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cIjEwMFwiXG4gICAgICAgICAgPjwvbWF0LXByb2dyZXNzLXNwaW5uZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1wcmltYXJ5IGFic29sdXRlXCI+XG4gICAgICAgICAgPG1hdC1wcm9ncmVzcy1zcGlubmVyXG4gICAgICAgICAgICBjbGFzcz1cInBsYWNlLXNlbGYtY2VudGVyXCJcbiAgICAgICAgICAgIFtkaWFtZXRlcl09XCI1NlwiXG4gICAgICAgICAgICBtb2RlPVwiZGV0ZXJtaW5hdGVcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cInVwbG9hZFByb2dyZXNzXCJcbiAgICAgICAgICA+PC9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbSB0ZXh0LW1haW4gZm9udC1ib2xkXCI+e3sgdXBsb2FkUHJvZ3Jlc3MgfX0lPC9zcGFuPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3LTE0IGgtMTQgcm91bmRlZC1tZCBiZy1ncmF5LTUwIGdyaWRcIiAqbmdJZj1cImltYWdlRmlsZUVycm9yXCI+XG4gICAgICAgIDxuZy1pY29uXG4gICAgICAgICAgbmFtZT1cImljb25vaXJNZWRpYUltYWdlWG1hcmtcIlxuICAgICAgICAgIGNsYXNzPVwicGxhY2Utc2VsZi1jZW50ZXIgdGV4dC1yb3NlLTUwMFwiXG4gICAgICAgICAgZGF0YS1jeT1cImltZ0Vycm9ySWNvblwiXG4gICAgICAgID48L25nLWljb24+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGdhcC0xXCI+XG4gICAgICAgIDxwIGNsYXNzPVwiZm9udC1tZWRpdW1cIiBkYXRhLWN5PVwiaW1nSW5wdXRNc2dQcmltYXJ5XCI+XG4gICAgICAgICAge3sgZ2V0UHJpbWFyeVRleHQoKSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3A+XG4gICAgICAgIDxwXG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LXNtXCJcbiAgICAgICAgICBkYXRhLWN5PVwiaW1nSW5wdXRNc2dTZWNvbmRhcnlcIlxuICAgICAgICAgIFtjbGFzc109XCJcbiAgICAgICAgICAgIGlzVXBsb2FkSW5Qcm9ncmVzc1xuICAgICAgICAgICAgICA/ICdmb250LWJvbGQgdGV4dC1ibHVlLTUwMCBjdXJzb3ItcG9pbnRlcidcbiAgICAgICAgICAgICAgOiAnZm9udC1tZWRpdW0gdGV4dC1ncmF5LTUwMCdcbiAgICAgICAgICBcIlxuICAgICAgICAgIChjbGljayk9XCJoYW5kbGVTZWNvbmRhcnlUZXh0Q2xpY2soJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBnZXRTZWNvbmRhcnlUZXh0KCkgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgICA8aW5wdXRcbiAgICAgICAgI2ZpbGVJbnB1dFxuICAgICAgICBhY2NlcHQ9XCJpbWFnZS8qXCJcbiAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICBjbGFzcz1cImhpZGRlblwiXG4gICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlRmlsZUlucHV0KCRldmVudClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNVcGxvYWRJblByb2dyZXNzIHx8IGRpc2FibGVkXCJcbiAgICAgIC8+XG4gICAgPC9sYWJlbD5cblxuICAgIDxkaXYgKm5nSWY9XCIhc2hvd1VybElucHV0XCIgY2xhc3M9XCJmbGV4LW5vbmUgbXQtMlwiPlxuICAgICAgPGduLXVpLWJ1dHRvblxuICAgICAgICBkYXRhLWN5PVwiaW1nVXJsQnRuXCJcbiAgICAgICAgKGJ1dHRvbkNsaWNrKT1cImRpc3BsYXlVcmxJbnB1dCgpXCJcbiAgICAgICAgdHlwZT1cImdyYXlcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbZXh0cmFDbGFzc109XCJkaXNhYmxlZCAmJiAnY3Vyc29yLW5vdC1hbGxvd2VkJ1wiXG4gICAgICA+XG4gICAgICAgIDxuZy1pY29uIGNsYXNzPVwibWUtMSB0ZXh0LXByaW1hcnlcIiBuYW1lPVwiaWNvbm9pckxpbmtcIj48L25nLWljb24+XG4gICAgICAgIHt7ICdpbnB1dC5pbWFnZS5kaXNwbGF5VXJsSW5wdXQnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2duLXVpLWJ1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxnbi11aS11cmwtaW5wdXRcbiAgICAgICpuZ0lmPVwic2hvd1VybElucHV0XCJcbiAgICAgIGNsYXNzPVwibXQtMy41XCJcbiAgICAgIGRhdGEtY3k9XCJpbWdVcmxJbnB1dFwiXG4gICAgICAodXBsb2FkQ2xpY2spPVwiZG93bmxvYWRVcmwoJGV2ZW50KVwiXG4gICAgICBbZGlzYWJsZWRdPVwiaXNVcGxvYWRJblByb2dyZXNzIHx8IGRpc2FibGVkXCJcbiAgICA+XG4gICAgPC9nbi11aS11cmwtaW5wdXQ+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
227
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMvbGliL2ltYWdlLWlucHV0L2ltYWdlLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9pbWFnZS1pbnB1dC9pbWFnZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2pELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUM3RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDaEUsT0FBTyxFQUNMLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLGlCQUFpQixHQUNsQixNQUFNLHNDQUFzQyxDQUFBO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUN6RixPQUFPLEVBQ0wsZUFBZSxFQUNmLFlBQVksRUFDWixvQkFBb0IsR0FDckIsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN2QixPQUFPLEVBQ0wsVUFBVSxFQUNWLGtCQUFrQixFQUNsQixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLHNCQUFzQixFQUN0QixXQUFXLEdBQ1osTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDbkQs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QUFVO3NCQUFuQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJ1xuaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHtcbiAgQnV0dG9uQ29tcG9uZW50LFxuICBGaWxlc0Ryb3BEaXJlY3RpdmUsXG4gIFRleHRJbnB1dENvbXBvbmVudCxcbiAgVXJsSW5wdXRDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IGRvd25ncmFkZUltYWdlLCBtZWdhYnl0ZXNUb0J5dGVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5pbXBvcnQge1xuICBOZ0ljb25Db21wb25lbnQsXG4gIHByb3ZpZGVJY29ucyxcbiAgcHJvdmlkZU5nSWNvbnNDb25maWcsXG59IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHtcbiAgaWNvbm9pckJpbixcbiAgaWNvbm9pckZyYW1lUGx1c0luLFxuICBpY29ub2lyTGluayxcbiAgaWNvbm9pck1lZGlhSW1hZ2UsXG4gIGljb25vaXJNZWRpYUltYWdlWG1hcmssXG4gIGljb25vaXJQbHVzLFxufSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgSW1hZ2VPdmVybGF5UHJldmlld0NvbXBvbmVudCB9IGZyb20gJy4uL2ltYWdlLW92ZXJsYXktcHJldmlldy9pbWFnZS1vdmVybGF5LXByZXZpZXcuY29tcG9uZW50J1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1pbWFnZS1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ltYWdlLWlucHV0LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIEZpbGVzRHJvcERpcmVjdGl2ZSxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgVHJhbnNsYXRlUGlwZSxcbiAgICBVcmxJbnB1dENvbXBvbmVudCxcbiAgICBUZXh0SW5wdXRDb21wb25lbnQsXG4gICAgTmdJY29uQ29tcG9uZW50LFxuICAgIEltYWdlT3ZlcmxheVByZXZpZXdDb21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHByb3ZpZGVJY29ucyh7XG4gICAgICBpY29ub2lyTWVkaWFJbWFnZSxcbiAgICAgIGljb25vaXJGcmFtZVBsdXNJbixcbiAgICAgIGljb25vaXJNZWRpYUltYWdlWG1hcmssXG4gICAgICBpY29ub2lyQmluLFxuICAgICAgaWNvbm9pclBsdXMsXG4gICAgICBpY29ub2lyTGluayxcbiAgICB9KSxcbiAgICBwcm92aWRlTmdJY29uc0NvbmZpZyh7XG4gICAgICBzaXplOiAnMS41cmVtJyxcbiAgICB9KSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VJbnB1dENvbXBvbmVudCB7XG4gIHByaXZhdGUgX2FsdFRleHQ/OiBzdHJpbmdcblxuICBASW5wdXQoKSBwcmV2aWV3VXJsPzogc3RyaW5nXG4gIEBJbnB1dCgpXG4gIGdldCBhbHRUZXh0KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2FsdFRleHRcbiAgfVxuICBzZXQgYWx0VGV4dCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlICE9PSAnS08nICYmIHRoaXMuX2FsdFRleHQgPT09ICdLTycpIHtcbiAgICAgIC8vVGhpcyBpcyBhIGRhdGFzZXQgcm9sbGJhY2sgYWZ0ZXIgdXBsb2FkIGVycm9yXG4gICAgICB0aGlzLnJlc2V0RXJyb3JzKClcbiAgICB9XG4gICAgdGhpcy5fYWx0VGV4dCA9IHZhbHVlXG4gIH1cblxuICBASW5wdXQoKSBtYXhTaXplTUI6IG51bWJlclxuICBASW5wdXQoKSB1cGxvYWRQcm9ncmVzcz86IG51bWJlclxuICBASW5wdXQoKSB1cGxvYWRFcnJvcj86IGJvb2xlYW5cbiAgQElucHV0KCkgZGlzYWJsZWQ/OiBib29sZWFuID0gZmFsc2VcbiAgQE91dHB1dCgpIGZpbGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxGaWxlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBAT3V0cHV0KCkgdXJsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBAT3V0cHV0KCkgdXBsb2FkQ2FuY2VsOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgQE91dHB1dCgpIGRlbGV0ZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBPdXRwdXQoKSBhbHRUZXh0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuXG4gIGRyYWdGaWxlc092ZXIgPSBmYWxzZVxuICBzaG93VXJsSW5wdXQgPSBmYWxzZVxuICBpbWFnZUZpbGVFcnJvciA9IHRoaXMudXBsb2FkRXJyb3JcbiAgc2hvd0FsdFRleHRJbnB1dCA9IGZhbHNlXG4gIHBlbmRpbmdBbHRUZXh0OiBzdHJpbmdcblxuICBnZXQgaXNVcGxvYWRJblByb2dyZXNzKCkge1xuICAgIHJldHVybiB0aGlzLnVwbG9hZFByb2dyZXNzICE9PSB1bmRlZmluZWRcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgZ2V0SXNBY3Rpb25CbG9ja2VkKCkge1xuICAgIHJldHVybiB0aGlzLmlzVXBsb2FkSW5Qcm9ncmVzcyB8fCB0aGlzLmRpc2FibGVkXG4gIH1cblxuICBnZXRQcmltYXJ5VGV4dCgpIHtcbiAgICBpZiAodGhpcy5pbWFnZUZpbGVFcnJvcikge1xuICAgICAgcmV0dXJuIG1hcmtlcignaW5wdXQuaW1hZ2UudXBsb2FkRXJyb3JMYWJlbCcpXG4gICAgfVxuICAgIGlmICh0aGlzLnVwbG9hZFByb2dyZXNzKSB7XG4gICAgICByZXR1cm4gbWFya2VyKCdpbnB1dC5pbWFnZS51cGxvYWRQcm9ncmVzc0xhYmVsJylcbiAgICB9XG4gICAgcmV0dXJuIG1hcmtlcignaW5wdXQuaW1hZ2Uuc2VsZWN0RmlsZUxhYmVsJylcbiAgfVxuXG4gIGdldFNlY29uZGFyeVRleHQoKSB7XG4gICAgaWYgKHRoaXMuaW1hZ2VGaWxlRXJyb3IpIHtcbiAgICAgIHJldHVybiAnXFx1MDBBMCcgLy8gKG9ubHkgdG8ga2VlcCBzYW1lIHNwYWNpbmcsIG5leHQgc3RlcCBpcyB0byBoYW5kbGUgXCJSZXRyeVwiKVxuICAgIH1cbiAgICBpZiAodGhpcy51cGxvYWRQcm9ncmVzcykge1xuICAgICAgcmV0dXJuIG1hcmtlcignaW5wdXQuaW1hZ2UudXBsb2FkUHJvZ3Jlc3NDYW5jZWwnKVxuICAgIH1cbiAgICByZXR1cm4gbWFya2VyKCdpbnB1dC5pbWFnZS5kcm9wRmlsZUxhYmVsJylcbiAgfVxuXG4gIGhhbmRsZURyYWdGaWxlc092ZXIoZHJhZ0ZpbGVzT3ZlcjogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5zaG93VXJsSW5wdXQpIHtcbiAgICAgIHRoaXMuZHJhZ0ZpbGVzT3ZlciA9IGRyYWdGaWxlc092ZXJcbiAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKClcbiAgICB9XG4gIH1cblxuICBoYW5kbGVEcm9wRmlsZXMoZmlsZXM6IEZpbGVbXSkge1xuICAgIHRoaXMucmVzZXRFcnJvcnMoKVxuICAgIGNvbnN0IHZhbGlkRmlsZXMgPSB0aGlzLmZpbHRlclR5cGVJbWFnZShmaWxlcylcbiAgICBpZiAodmFsaWRGaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnNob3dVcmxJbnB1dCA9IGZhbHNlXG4gICAgICB0aGlzLnJlc2l6ZUFuZEVtaXQodmFsaWRGaWxlc1swXSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbWFnZUZpbGVFcnJvciA9IHRydWVcbiAgICAgIHRoaXMuaGFuZGxlQWx0VGV4dENoYW5nZSgnS08nKVxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUZpbGVJbnB1dChldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLnJlc2V0RXJyb3JzKClcbiAgICBjb25zdCBpbnB1dEZpbGVzID0gQXJyYXkuZnJvbSgoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmZpbGVzKVxuICAgIGNvbnN0IHZhbGlkRmlsZXMgPSB0aGlzLmZpbHRlclR5cGVJbWFnZShpbnB1dEZpbGVzKVxuICAgIGlmICh2YWxpZEZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMucmVzaXplQW5kRW1pdCh2YWxpZEZpbGVzWzBdKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmltYWdlRmlsZUVycm9yID0gdHJ1ZVxuICAgICAgdGhpcy5oYW5kbGVBbHRUZXh0Q2hhbmdlKCdLTycpXG4gICAgfVxuICB9XG5cbiAgZGlzcGxheVVybElucHV0KCkge1xuICAgIHRoaXMudXBsb2FkQ2FuY2VsLmVtaXQoKVxuICAgIHRoaXMuc2hvd1VybElucHV0ID0gdHJ1ZVxuICB9XG5cbiAgYXN5bmMgZG93bmxvYWRVcmwodXJsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlc2V0RXJyb3JzKClcbiAgICBjb25zdCBuYW1lID0gdXJsLnNwbGl0KCcvJykucG9wKClcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgdGhpcy5odHRwLmhlYWQodXJsLCB7IG9ic2VydmU6ICdyZXNwb25zZScgfSlcbiAgICAgIClcbiAgICAgIGlmIChcbiAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScpPy5zdGFydHNXaXRoKCdpbWFnZS8nKSAmJlxuICAgICAgICBwYXJzZUludChyZXNwb25zZS5oZWFkZXJzLmdldCgnY29udGVudC1sZW5ndGgnKSkgPFxuICAgICAgICAgIG1lZ2FieXRlc1RvQnl0ZXModGhpcy5tYXhTaXplTUIpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5odHRwLmdldCh1cmwsIHsgcmVzcG9uc2VUeXBlOiAnYmxvYicgfSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAoYmxvYikgPT4ge1xuICAgICAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKVxuICAgICAgICAgICAgY29uc3QgZmlsZSA9IG5ldyBGaWxlKFtibG9iXSwgbmFtZSlcbiAgICAgICAgICAgIHRoaXMuZmlsZUNoYW5nZS5lbWl0KGZpbGUpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pbWFnZUZpbGVFcnJvciA9IHRydWVcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQWx0VGV4dENoYW5nZSgnS08nKVxuICAgICAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKVxuICAgICAgICAgICAgdGhpcy51cmxDaGFuZ2UuZW1pdCh1cmwpXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIHRoaXMuaW1hZ2VGaWxlRXJyb3IgPSB0cnVlXG4gICAgICB0aGlzLmhhbmRsZUFsdFRleHRDaGFuZ2UoJ0tPJylcbiAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZVNlY29uZGFyeVRleHRDbGljayhldmVudDogRXZlbnQpIHtcbiAgICBpZiAodGhpcy51cGxvYWRQcm9ncmVzcykge1xuICAgICAgdGhpcy5oYW5kbGVDYW5jZWxVcGxvYWQoKVxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUNhbmNlbFVwbG9hZCgpIHtcbiAgICB0aGlzLnVwbG9hZENhbmNlbC5lbWl0KClcbiAgfVxuXG4gIGhhbmRsZURlbGV0ZSgpIHtcbiAgICB0aGlzLmRlbGV0ZS5lbWl0KClcbiAgfVxuXG4gIHJlc2V0RXJyb3JzKCkge1xuICAgIHRoaXMuaW1hZ2VGaWxlRXJyb3IgPSBmYWxzZVxuICAgIHRoaXMudXBsb2FkRXJyb3IgPSBmYWxzZVxuICB9XG5cbiAgdG9nZ2xlQWx0VGV4dElucHV0KCkge1xuICAgIHRoaXMuc2hvd0FsdFRleHRJbnB1dCA9ICF0aGlzLnNob3dBbHRUZXh0SW5wdXRcbiAgfVxuXG4gIGhhbmRsZUFsdFRleHRDaGFuZ2UoYWx0VGV4dDogc3RyaW5nKSB7XG4gICAgdGhpcy5hbHRUZXh0Q2hhbmdlLmVtaXQoYWx0VGV4dClcbiAgfVxuICBwcml2YXRlIGZpbHRlclR5cGVJbWFnZShmaWxlczogRmlsZVtdKSB7XG4gICAgcmV0dXJuIGZpbGVzLmZpbHRlcigoZmlsZSkgPT4ge1xuICAgICAgcmV0dXJuIGZpbGUudHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIHJlc2l6ZUFuZEVtaXQoaW1hZ2VUb1Jlc2l6ZTogRmlsZSkge1xuICAgIGNvbnN0IG1heFNpemVCeXRlcyA9IG1lZ2FieXRlc1RvQnl0ZXModGhpcy5tYXhTaXplTUIpXG4gICAgZG93bmdyYWRlSW1hZ2UoaW1hZ2VUb1Jlc2l6ZSwgbWF4U2l6ZUJ5dGVzKS50aGVuKChyZXNpemVkSW1hZ2UpID0+IHtcbiAgICAgIGNvbnN0IGZpbGVUb0VtaXQgPSBuZXcgRmlsZShbcmVzaXplZEltYWdlXSwgaW1hZ2VUb1Jlc2l6ZS5uYW1lKVxuICAgICAgdGhpcy5maWxlQ2hhbmdlLmVtaXQoZmlsZVRvRW1pdClcbiAgICB9KVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwicHJldmlld1VybDsgdGhlbiB3aXRoSW1hZ2U7IGVsc2Ugd2l0aG91dEltYWdlXCI+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICN3aXRoSW1hZ2U+XG4gIDxkaXYgY2xhc3M9XCJ3LTgwIGgtZnVsbCBmbGV4IGZsZXgtY29sIGdhcC0yXCI+XG4gICAgPGduLXVpLWltYWdlLW92ZXJsYXktcHJldmlldyBjbGFzcz1cImgtNDhcIiBbaW1hZ2VVcmxdPVwicHJldmlld1VybFwiPlxuICAgIDwvZ24tdWktaW1hZ2Utb3ZlcmxheS1wcmV2aWV3PlxuICAgIDxnbi11aS10ZXh0LWlucHV0XG4gICAgICAqbmdJZj1cInNob3dBbHRUZXh0SW5wdXRcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cIidpbnB1dC5pbWFnZS5hbHRUZXh0UGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgIFt2YWx1ZV09XCJhbHRUZXh0ID8/ICcnXCJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJoYW5kbGVBbHRUZXh0Q2hhbmdlKCRldmVudClcIlxuICAgICAgZXh0cmFDbGFzcz1cImduLXVpLWVkaXRvci10ZXh0YXJlYVwiXG4gICAgPjwvZ24tdWktdGV4dC1pbnB1dD5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtMiBtdC0yXCI+XG4gICAgICA8Z24tdWktYnV0dG9uXG4gICAgICAgIHR5cGU9XCJncmF5XCJcbiAgICAgICAgKGJ1dHRvbkNsaWNrKT1cImhhbmRsZURlbGV0ZSgpXCJcbiAgICAgICAgZGF0YS1jeT1cImRlbGV0ZS1pbWFnZVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1pY29uIGNsYXNzPVwibWUtMSB0ZXh0LXByaW1hcnlcIiBuYW1lPVwiaWNvbm9pckJpblwiPjwvbmctaWNvbj5cbiAgICAgICAge3sgJ2lucHV0LmltYWdlLmRlbGV0ZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvZ24tdWktYnV0dG9uPlxuICAgICAgPGduLXVpLWJ1dHRvblxuICAgICAgICAqbmdJZj1cIiFzaG93QWx0VGV4dElucHV0XCJcbiAgICAgICAgdHlwZT1cImdyYXlcIlxuICAgICAgICAoYnV0dG9uQ2xpY2spPVwidG9nZ2xlQWx0VGV4dElucHV0KClcIlxuICAgICAgPlxuICAgICAgICA8bmctaWNvbiBuYW1lPVwiaWNvbm9pclBsdXNcIiBjbGFzcz1cIm1lLTEgdGV4dC1wcmltYXJ5XCI+PC9uZy1pY29uPlxuICAgICAgICB7eyAnaW5wdXQuaW1hZ2UuZGlzcGxheUFsdFRleHRJbnB1dCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvZ24tdWktYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjd2l0aG91dEltYWdlPlxuICA8ZGl2IGNsYXNzPVwidy1mdWxsIGgtZnVsbCBmbGV4IGZsZXgtY29sIGdhcC0yXCI+XG4gICAgPGxhYmVsXG4gICAgICBnblVpRmlsZXNEcm9wXG4gICAgICBjbGFzcz1cImZsZXgtMSBib3JkZXItMiBib3JkZXItZGFzaGVkIHJvdW5kZWQtbGcgcC02IGZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC00IHRyYW5zaXRpb24tY29sb3JzIGR1cmF0aW9uLTEwMFwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdib3JkZXItcHJpbWFyeS1saWdodGVyIGJnLXByaW1hcnktd2hpdGUnOiBkcmFnRmlsZXNPdmVyLFxuICAgICAgICAnYm9yZGVyLWdyYXktMzAwJzogIWRyYWdGaWxlc092ZXIsXG4gICAgICAgICdjdXJzb3ItcG9pbnRlciBob3Zlcjpib3JkZXItZ3JheS01MDAnOiAhZ2V0SXNBY3Rpb25CbG9ja2VkKCksXG4gICAgICAgICdjdXJzb3Itbm90LWFsbG93ZWQnOiBkaXNhYmxlZCxcbiAgICAgIH1cIlxuICAgICAgW2F0dHIudGFiaW5kZXhdPVwiZ2V0SXNBY3Rpb25CbG9ja2VkKCkgPyBudWxsIDogMFwiXG4gICAgICAoa2V5ZG93bi5lbnRlcik9XCJmaWxlSW5wdXQuY2xpY2soKVwiXG4gICAgICAoZHJhZ0ZpbGVzT3Zlcik9XCJoYW5kbGVEcmFnRmlsZXNPdmVyKCRldmVudClcIlxuICAgICAgKGRyb3BGaWxlcyk9XCJoYW5kbGVEcm9wRmlsZXMoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInctMTQgaC0xNCByb3VuZGVkLW1kIGJnLWdyYXktNTAgZ3JpZFwiXG4gICAgICAgICpuZ0lmPVwiIWlzVXBsb2FkSW5Qcm9ncmVzcyAmJiAhaW1hZ2VGaWxlRXJyb3JcIlxuICAgICAgPlxuICAgICAgICA8bmctaWNvblxuICAgICAgICAgICpuZ0lmPVwiIWRyYWdGaWxlc092ZXJcIlxuICAgICAgICAgIGNsYXNzPVwicGxhY2Utc2VsZi1jZW50ZXIgdGV4dC1wcmltYXJ5XCJcbiAgICAgICAgICBuYW1lPVwiaWNvbm9pck1lZGlhSW1hZ2VcIlxuICAgICAgICA+PC9uZy1pY29uPlxuICAgICAgICA8bmctaWNvblxuICAgICAgICAgICpuZ0lmPVwiZHJhZ0ZpbGVzT3ZlclwiXG4gICAgICAgICAgY2xhc3M9XCJwbGFjZS1zZWxmLWNlbnRlciB0ZXh0LXByaW1hcnlcIlxuICAgICAgICAgIG5hbWU9XCJpY29ub2lyRnJhbWVQbHVzSW5cIlxuICAgICAgICA+PC9uZy1pY29uPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJpc1VwbG9hZEluUHJvZ3Jlc3MgJiYgIWltYWdlRmlsZUVycm9yXCJcbiAgICAgICAgY2xhc3M9XCJ3LTE0IGgtMTQgZ3JpZCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcmVsYXRpdmVcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTEwMCBhYnNvbHV0ZVwiPlxuICAgICAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lclxuICAgICAgICAgICAgY2xhc3M9XCJwbGFjZS1zZWxmLWNlbnRlclwiXG4gICAgICAgICAgICBbZGlhbWV0ZXJdPVwiNTZcIlxuICAgICAgICAgICAgbW9kZT1cImRldGVybWluYXRlXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCIxMDBcIlxuICAgICAgICAgID48L21hdC1wcm9ncmVzcy1zcGlubmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtcHJpbWFyeSBhYnNvbHV0ZVwiPlxuICAgICAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lclxuICAgICAgICAgICAgY2xhc3M9XCJwbGFjZS1zZWxmLWNlbnRlclwiXG4gICAgICAgICAgICBbZGlhbWV0ZXJdPVwiNTZcIlxuICAgICAgICAgICAgbW9kZT1cImRldGVybWluYXRlXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ1cGxvYWRQcm9ncmVzc1wiXG4gICAgICAgICAgPjwvbWF0LXByb2dyZXNzLXNwaW5uZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gdGV4dC1tYWluIGZvbnQtYm9sZFwiPnt7IHVwbG9hZFByb2dyZXNzIH19JTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwidy0xNCBoLTE0IHJvdW5kZWQtbWQgYmctZ3JheS01MCBncmlkXCIgKm5nSWY9XCJpbWFnZUZpbGVFcnJvclwiPlxuICAgICAgICA8bmctaWNvblxuICAgICAgICAgIG5hbWU9XCJpY29ub2lyTWVkaWFJbWFnZVhtYXJrXCJcbiAgICAgICAgICBjbGFzcz1cInBsYWNlLXNlbGYtY2VudGVyIHRleHQtcm9zZS01MDBcIlxuICAgICAgICAgIGRhdGEtY3k9XCJpbWdFcnJvckljb25cIlxuICAgICAgICA+PC9uZy1pY29uPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBnYXAtMVwiPlxuICAgICAgICA8cCBjbGFzcz1cImZvbnQtbWVkaXVtXCIgZGF0YS1jeT1cImltZ0lucHV0TXNnUHJpbWFyeVwiPlxuICAgICAgICAgIHt7IGdldFByaW1hcnlUZXh0KCkgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9wPlxuICAgICAgICA8cFxuICAgICAgICAgIGNsYXNzPVwidGV4dC1zbVwiXG4gICAgICAgICAgZGF0YS1jeT1cImltZ0lucHV0TXNnU2Vjb25kYXJ5XCJcbiAgICAgICAgICBbY2xhc3NdPVwiXG4gICAgICAgICAgICBpc1VwbG9hZEluUHJvZ3Jlc3NcbiAgICAgICAgICAgICAgPyAnZm9udC1ib2xkIHRleHQtYmx1ZS01MDAgY3Vyc29yLXBvaW50ZXInXG4gICAgICAgICAgICAgIDogJ2ZvbnQtbWVkaXVtIHRleHQtZ3JheS01MDAnXG4gICAgICAgICAgXCJcbiAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlU2Vjb25kYXJ5VGV4dENsaWNrKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgZ2V0U2Vjb25kYXJ5VGV4dCgpIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGlucHV0XG4gICAgICAgICNmaWxlSW5wdXRcbiAgICAgICAgYWNjZXB0PVwiaW1hZ2UvKlwiXG4gICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgY2xhc3M9XCJoaWRkZW5cIlxuICAgICAgICAoY2hhbmdlKT1cImhhbmRsZUZpbGVJbnB1dCgkZXZlbnQpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzVXBsb2FkSW5Qcm9ncmVzcyB8fCBkaXNhYmxlZFwiXG4gICAgICAvPlxuICAgIDwvbGFiZWw+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiIXNob3dVcmxJbnB1dFwiIGNsYXNzPVwiZmxleC1ub25lIG10LTJcIj5cbiAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgZGF0YS1jeT1cImltZ1VybEJ0blwiXG4gICAgICAgIChidXR0b25DbGljayk9XCJkaXNwbGF5VXJsSW5wdXQoKVwiXG4gICAgICAgIHR5cGU9XCJncmF5XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW2V4dHJhQ2xhc3NdPVwiZGlzYWJsZWQgJiYgJ2N1cnNvci1ub3QtYWxsb3dlZCdcIlxuICAgICAgPlxuICAgICAgICA8bmctaWNvbiBjbGFzcz1cIm1lLTEgdGV4dC1wcmltYXJ5XCIgbmFtZT1cImljb25vaXJMaW5rXCI+PC9uZy1pY29uPlxuICAgICAgICB7eyAnaW5wdXQuaW1hZ2UuZGlzcGxheVVybElucHV0JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9nbi11aS1idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8Z24tdWktdXJsLWlucHV0XG4gICAgICAqbmdJZj1cInNob3dVcmxJbnB1dFwiXG4gICAgICBjbGFzcz1cIm10LTMuNVwiXG4gICAgICBkYXRhLWN5PVwiaW1nVXJsSW5wdXRcIlxuICAgICAgKHVwbG9hZENsaWNrKT1cImRvd25sb2FkVXJsKCRldmVudClcIlxuICAgICAgW2Rpc2FibGVkXT1cImlzVXBsb2FkSW5Qcm9ncmVzcyB8fCBkaXNhYmxlZFwiXG4gICAgPlxuICAgIDwvZ24tdWktdXJsLWlucHV0PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1,17 +1,16 @@
1
- import { Component, Input, TemplateRef, Output, EventEmitter, ElementRef, } from '@angular/core';
1
+ import { Component, ElementRef, EventEmitter, Input, Output, TemplateRef, } from '@angular/core';
2
2
  import { NgClass, NgIf, NgTemplateOutlet } from '@angular/common';
3
3
  import { GeoDataBadgeComponent } from '../geo-data-badge/geo-data-badge.component';
4
4
  import { KindBadgeComponent } from '../kind-badge/kind-badge.component';
5
5
  import { MarkdownParserComponent } from '../markdown-parser/markdown-parser.component';
6
6
  import { MetadataQualityComponent } from '../metadata-quality/metadata-quality.component';
7
- import { InternalLinkCardContactComponent } from '../internal-link-card-contact/internal-link-card-contact.component';
7
+ import { ThumbnailComponent } from '../thumbnail/thumbnail.component';
8
8
  import { removeWhitespace, stripHtml } from '../../../../../../libs/util/shared/src';
9
9
  import { provideIcons, provideNgIconsConfig } from '@ng-icons/core';
10
10
  import { matLocationSearchingOutline } from '@ng-icons/material-icons/outline';
11
+ import { InternalLinkCardContactComponent } from '../internal-link-card-contact/internal-link-card-contact.component';
11
12
  import { iconoirInternet } from '@ng-icons/iconoir';
12
- import { TranslateModule } from '@ngx-translate/core';
13
13
  import { fromEvent, Subscription } from 'rxjs';
14
- import { ThumbnailComponent } from '../thumbnail/thumbnail.component';
15
14
  import * as i0 from "@angular/core";
16
15
  export class InternalLinkCardComponent {
17
16
  set size(value) {
@@ -80,7 +79,7 @@ export class InternalLinkCardComponent {
80
79
  provideNgIconsConfig({
81
80
  size: '1.2em',
82
81
  }),
83
- ], ngImport: i0, template: "<a [attr.href]=\"linkHref\" [target]=\"linkTarget\">\n <div\n class=\"group rounded-md bg-white hover:cursor-pointer hover:bg-slate-50 overflow-hidden w-full\"\n [ngClass]=\"cardClass\"\n >\n <div\n class=\"flex flex-row md:gap-0 justify-between w-full\"\n [ngClass]=\"{ 'flex-wrap md:flex-nowrap gap-3': size === 'L' }\"\n >\n <div\n *ngIf=\"shouldShowThumbnail\"\n [ngClass]=\"thumbnailContainerClass\"\n class=\"border mr-4 flex flex-col\"\n >\n <gn-ui-thumbnail\n class=\"w-full h-full object-cover\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url?.toString() || ''\"\n [fit]=\"'cover'\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"grow flex flex-col gap-3 w-0\">\n <div class=\"flex items-center gap-2\">\n <div class=\"grow flex flex-wrap items-center gap-2\">\n <gn-ui-kind-badge\n [styling]=\"'default'\"\n [kind]=\"record?.kind\"\n ></gn-ui-kind-badge>\n <gn-ui-geo-data-badge\n [showLabel]=\"size === 'L'\"\n [styling]=\"'light'\"\n [record]=\"record\"\n ></gn-ui-geo-data-badge>\n <gn-ui-metadata-quality\n class=\"flex items-center\"\n [smaller]=\"true\"\n [metadata]=\"record\"\n [metadataQualityDisplay]=\"metadataQualityDisplay\"\n ></gn-ui-metadata-quality>\n </div>\n <div *ngIf=\"size !== 'XS'\" data-cy=\"recordFav\">\n <ng-container\n [ngTemplateOutlet]=\"favoriteTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: record }\"\n ></ng-container>\n </div>\n </div>\n\n <div class=\"grow flex flex-col gap-2\">\n <div\n class=\"font-medium text-title group-hover:text-primary\"\n [title]=\"record.title\"\n >\n <h4\n class=\"mr-6 overflow-hidden\"\n [ngClass]=\"getTitleClass()\"\n data-cy=\"recordTitle\"\n [title]=\"record.title\"\n >\n {{ record.title }}\n </h4>\n </div>\n <div\n *ngIf=\"displayAbstract()\"\n class=\"mr-6 text-xs text-gray-900 overflow-hidden\"\n [ngClass]=\"getAbstractClass()\"\n data-cy=\"recordAbstract\"\n >\n <gn-ui-markdown-parser\n [textContent]=\"abstract\"\n [whitoutStyles]=\"true\"\n ></gn-ui-markdown-parser>\n </div>\n </div>\n\n <gn-ui-internal-link-card-contact\n *ngIf=\"size !== 'XS' && record.ownerOrganization?.name\"\n [record]=\"record\"\n [size]=\"size\"\n ></gn-ui-internal-link-card-contact>\n </div>\n </div>\n </div>\n</a>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MetadataQualityComponent, selector: "gn-ui-metadata-quality", inputs: ["metadata", "smaller", "metadataQualityDisplay"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: GeoDataBadgeComponent, selector: "gn-ui-geo-data-badge", inputs: ["showLabel", "styling", "record"] }, { kind: "component", type: KindBadgeComponent, selector: "gn-ui-kind-badge", inputs: ["styling", "contentTemplate", "kind"] }, { kind: "component", type: MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: ["textContent", "whitoutStyles"] }, { kind: "component", type: InternalLinkCardContactComponent, selector: "gn-ui-internal-link-card-contact", inputs: ["record", "size"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }] }); }
82
+ ], ngImport: i0, template: "<a [attr.href]=\"linkHref\" [target]=\"linkTarget\">\n <div\n class=\"group rounded-md bg-white hover:cursor-pointer hover:bg-slate-50 overflow-hidden w-full\"\n [ngClass]=\"cardClass\"\n >\n <div\n class=\"flex flex-row md:gap-0 justify-between w-full\"\n [ngClass]=\"{ 'flex-wrap md:flex-nowrap gap-3': size === 'L' }\"\n >\n <div\n *ngIf=\"shouldShowThumbnail\"\n [ngClass]=\"thumbnailContainerClass\"\n class=\"border mr-4 flex flex-col\"\n >\n <gn-ui-thumbnail\n class=\"w-full h-full object-cover\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url?.toString() || ''\"\n [fit]=\"'cover'\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"grow flex flex-col gap-3 w-0\">\n <div class=\"flex items-center gap-2\">\n <div class=\"grow flex flex-wrap items-center gap-2\">\n <gn-ui-kind-badge\n [styling]=\"'default'\"\n [kind]=\"record?.kind\"\n ></gn-ui-kind-badge>\n <gn-ui-geo-data-badge\n [showLabel]=\"size === 'L'\"\n [styling]=\"'light'\"\n [record]=\"record\"\n ></gn-ui-geo-data-badge>\n <gn-ui-metadata-quality\n class=\"flex items-center\"\n [smaller]=\"true\"\n [metadata]=\"record\"\n [metadataQualityDisplay]=\"metadataQualityDisplay\"\n ></gn-ui-metadata-quality>\n </div>\n <div *ngIf=\"size !== 'XS'\" data-cy=\"recordFav\">\n <ng-container\n [ngTemplateOutlet]=\"favoriteTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: record }\"\n ></ng-container>\n </div>\n </div>\n\n <div class=\"grow flex flex-col gap-2\">\n <div\n class=\"font-medium text-title group-hover:text-primary\"\n [title]=\"record.title\"\n >\n <h4\n class=\"mr-6 overflow-hidden\"\n [ngClass]=\"getTitleClass()\"\n data-cy=\"recordTitle\"\n [title]=\"record.title\"\n >\n {{ record.title }}\n </h4>\n </div>\n <div\n *ngIf=\"displayAbstract()\"\n class=\"mr-6 text-xs text-gray-900 overflow-hidden\"\n [ngClass]=\"getAbstractClass()\"\n data-cy=\"recordAbstract\"\n >\n <gn-ui-markdown-parser\n [textContent]=\"abstract\"\n [whitoutStyles]=\"true\"\n ></gn-ui-markdown-parser>\n </div>\n </div>\n\n <gn-ui-internal-link-card-contact\n *ngIf=\"size !== 'XS' && record.ownerOrganization?.name\"\n [record]=\"record\"\n [size]=\"size\"\n ></gn-ui-internal-link-card-contact>\n </div>\n </div>\n </div>\n</a>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MetadataQualityComponent, selector: "gn-ui-metadata-quality", inputs: ["metadata", "smaller", "metadataQualityDisplay"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: GeoDataBadgeComponent, selector: "gn-ui-geo-data-badge", inputs: ["showLabel", "styling", "record"] }, { kind: "component", type: KindBadgeComponent, selector: "gn-ui-kind-badge", inputs: ["styling", "contentTemplate", "kind"] }, { kind: "component", type: MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: ["textContent", "whitoutStyles"] }, { kind: "component", type: InternalLinkCardContactComponent, selector: "gn-ui-internal-link-card-contact", inputs: ["record", "size"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }] }); }
84
83
  }
85
84
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InternalLinkCardComponent, decorators: [{
86
85
  type: Component,
@@ -89,7 +88,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
89
88
  NgIf,
90
89
  MetadataQualityComponent,
91
90
  NgTemplateOutlet,
92
- TranslateModule,
93
91
  GeoDataBadgeComponent,
94
92
  KindBadgeComponent,
95
93
  MarkdownParserComponent,
@@ -119,4 +117,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
119
117
  }], mdSelect: [{
120
118
  type: Output
121
119
  }] } });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwtbGluay1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9pbnRlcm5hbC1saW5rLWNhcmQvaW50ZXJuYWwtbGluay1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9pbnRlcm5hbC1saW5rLWNhcmQvaW50ZXJuYWwtbGluay1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsRUFFWCxNQUFNLEVBQ04sWUFBWSxFQUNaLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQTtBQUV0QixPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFBO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFBO0FBQ3RGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFBO0FBQ3pGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9FQUFvRSxDQUFBO0FBQ3JILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUNwRixPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDbkUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ25ELE9BQU8s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QkFBaEIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNPLElBQUk7c0JBQWhCLEtBQUs7Z0JBUUksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBFbGVtZW50UmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ2F0YWxvZ1JlY29yZCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IE5nQ2xhc3MsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBHZW9EYXRhQmFkZ2VDb21wb25lbnQgfSBmcm9tICcuLi9nZW8tZGF0YS1iYWRnZS9nZW8tZGF0YS1iYWRnZS5jb21wb25lbnQnXG5pbXBvcnQgeyBLaW5kQmFkZ2VDb21wb25lbnQgfSBmcm9tICcuLi9raW5kLWJhZGdlL2tpbmQtYmFkZ2UuY29tcG9uZW50J1xuaW1wb3J0IHsgTWFya2Rvd25QYXJzZXJDb21wb25lbnQgfSBmcm9tICcuLi9tYXJrZG93bi1wYXJzZXIvbWFya2Rvd24tcGFyc2VyLmNvbXBvbmVudCdcbmltcG9ydCB7IE1ldGFkYXRhUXVhbGl0eUNvbXBvbmVudCB9IGZyb20gJy4uL21ldGFkYXRhLXF1YWxpdHkvbWV0YWRhdGEtcXVhbGl0eS5jb21wb25lbnQnXG5pbXBvcnQgeyBJbnRlcm5hbExpbmtDYXJkQ29udGFjdENvbXBvbmVudCB9IGZyb20gJy4uL2ludGVybmFsLWxpbmstY2FyZC1jb250YWN0L2ludGVybmFsLWxpbmstY2FyZC1jb250YWN0LmNvbXBvbmVudCdcbmltcG9ydCB7IHJlbW92ZVdoaXRlc3BhY2UsIHN0cmlwSHRtbCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjJ1xuaW1wb3J0IHsgcHJvdmlkZUljb25zLCBwcm92aWRlTmdJY29uc0NvbmZpZyB9IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgbWF0TG9jYXRpb25TZWFyY2hpbmdPdXRsaW5lIH0gZnJvbSAnQG5nLWljb25zL21hdGVyaWFsLWljb25zL291dGxpbmUnXG5pbXBvcnQgeyBpY29ub2lySW50ZXJuZXQgfSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBUaHVtYm5haWxDb21wb25lbnQgfSBmcm9tICcuLi90aHVtYm5haWwvdGh1bWJuYWlsLmNvbXBvbmVudCdcblxudHlwZSBDYXJkU2l6ZSA9ICdMJyB8ICdNJyB8ICdTJyB8ICdYUydcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktaW50ZXJuYWwtbGluay1jYXJkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nQ2xhc3MsXG4gICAgTmdJZixcbiAgICBNZXRhZGF0YVF1YWxpdHlDb21wb25lbnQsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgR2VvRGF0YUJhZGdlQ29tcG9uZW50LFxuICAgIEtpbmRCYWRnZUNvbXBvbmVudCxcbiAgICBNYXJrZG93blBhcnNlckNvbXBvbmVudCxcbiAgICBJbnRlcm5hbExpbmtDYXJkQ29udGFjdENvbXBvbmVudCxcbiAgICBUaHVtYm5haWxDb21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHByb3ZpZGVJY29ucyh7XG4gICAgICBpY29ub2lySW50ZXJuZXQsXG4gICAgICBtYXRMb2NhdGlvblNlYXJjaGluZ091dGxpbmUsXG4gICAgfSksXG4gICAgcHJvdmlkZU5nSWNvbnNDb25maWcoe1xuICAgICAgc2l6ZTogJzEuMmVtJyxcbiAgICB9KSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2ludGVybmFsLWxpbmstY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ludGVybmFsLWxpbmstY2FyZC5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEludGVybmFsTGlua0NhcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSByZWNvcmQ6IENhdGFsb2dSZWNvcmRcbiAgQElucHV0KCkgbGlua1RhcmdldCA9ICdfYmxhbmsnXG4gIEBJbnB1dCgpIGxpbmtIcmVmOiBzdHJpbmcgPSBudWxsXG4gIEBJbnB1dCgpIG1ldGFkYXRhUXVhbGl0eURpc3BsYXk6IGJvb2xlYW5cbiAgQElucHV0KCkgZmF2b3JpdGVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IENhdGFsb2dSZWNvcmQgfT5cbiAgQElucHV0KCkgc2V0IHNpemUodmFsdWU6IENhcmRTaXplKSB7XG4gICAgdGhpcy5fc2l6ZSA9IHZhbHVlXG4gICAgdGhpcy5jYXJkQ2xhc3MgPSB0aGlzLnNpemVDbGFzc01hcFt2YWx1ZV0gfHwgJydcbiAgICB0aGlzLnRodW1ibmFpbENvbnRhaW5lckNsYXNzID0gdGhpcy50aHVtYm5haWxTaXplQ2xhc3NNYXBbdmFsdWVdIHx8ICdoaWRkZW4nXG4gIH1cbiAgZ2V0IHNpemUoKTogQ2FyZFNpemUge1xuICAgIHJldHVybiB0aGlzLl9zaXplXG4gIH1cbiAgQE91dHB1dCgpIG1kU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxDYXRhbG9nUmVjb3JkPigpXG4gIHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKVxuXG4gIGFic3RyYWN0OiBzdHJpbmdcblxuICBjYXJkQ2xhc3MgPSAnJ1xuICB0aHVtYm5haWxDb250YWluZXJDbGFzcyA9ICcnXG5cbiAgcHJpdmF0ZSBfc2l6ZTogQ2FyZFNpemUgPSAnTSdcblxuICBwcml2YXRlIHJlYWRvbmx5IHNpemVDbGFzc01hcDogUmVjb3JkPENhcmRTaXplLCBzdHJpbmc+ID0ge1xuICAgIEw6ICdtaW4taC1bMTkwcHhdIHctZnVsbCBweS0zIHB4LTMgZmxleCBpdGVtcy1zdGFydCBnYXAtNScsXG4gICAgTTogJ21pbi1oLVsxNDBweF0gcHktMyBweC0zIGZsZXggaXRlbXMtc3RhcnQgZ2FwLTQnLFxuICAgIFM6ICdtaW4taC1bMjIwcHhdIHB5LTMgcHgtMyBmbGV4IGdhcC00JyxcbiAgICBYUzogJ21pbi1oLVsxMDhweF0gcHktMyBweC0zIGZsZXggZ2FwLTQnLFxuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSB0aHVtYm5haWxTaXplQ2xhc3NNYXA6IFJlY29yZDxDYXJkU2l6ZSwgc3RyaW5nPiA9IHtcbiAgICBMOiAndy1mdWxsIG1kOnctWzE5MHB4XSBoLVsxODBweF0gcm91bmRlZC1sZyBvdmVyZmxvdy1oaWRkZW4gc2hyaW5rLTAnLFxuICAgIE06ICd3LVsxMTBweF0gaC1bMTQwcHhdIHJvdW5kZWQtbGcgb3ZlcmZsb3ctaGlkZGVuIHNocmluay0wJyxcbiAgICBTOiAnaGlkZGVuJyxcbiAgICBYUzogJ2hpZGRlbicsXG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHRpdGxlQ2xhc3NNYXA6IFJlY29yZDxDYXJkU2l6ZSwgc3RyaW5nPiA9IHtcbiAgICBMOiAndGV4dC14bCBsaW5lLWNsYW1wLTEnLFxuICAgIE06ICd0ZXh0LWJhc2UgbGluZS1jbGFtcC0yJyxcbiAgICBTOiAndGV4dC1iYXNlIGxpbmUtY2xhbXAtMyBtbC0yJyxcbiAgICBYUzogJ3RleHQtYmFzZSBsaW5lLWNsYW1wLTEgbWwtMicsXG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFic3RyYWN0ID0gcmVtb3ZlV2hpdGVzcGFjZShzdHJpcEh0bWwodGhpcy5yZWNvcmQ/LmFic3RyYWN0KSlcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICBmcm9tRXZlbnQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdjbGljaycpLnN1YnNjcmliZSgoKSA9PlxuICAgICAgICB0aGlzLm1kU2VsZWN0LmVtaXQodGhpcy5yZWNvcmQpXG4gICAgICApXG4gICAgKVxuICB9XG5cbiAgZ2V0VGl0bGVDbGFzcygpIHtcbiAgICByZXR1cm4gdGhpcy50aXRsZUNsYXNzTWFwW3RoaXMuX3NpemVdXG4gIH1cbiAgZ2V0QWJzdHJhY3RDbGFzcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1hcmdpbkNsYXNzID0gWydTJywgJ1hTJ10uaW5jbHVkZXModGhpcy5zaXplKSA/ICdtbC0yJyA6ICcnXG4gICAgY29uc3QgY2xhbXBDbGFzcyA9XG4gICAgICB0aGlzLnNpemUgPT09ICdMJyAmJiAhdGhpcy5yZWNvcmQub3duZXJPcmdhbml6YXRpb24/Lm5hbWVcbiAgICAgICAgPyAnbGluZS1jbGFtcC02J1xuICAgICAgICA6ICdsaW5lLWNsYW1wLTInXG4gICAgcmV0dXJuIGAke2NsYW1wQ2xhc3N9ICR7bWFyZ2luQ2xhc3N9YC50cmltKClcbiAgfVxuICBkaXNwbGF5QWJzdHJhY3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuc2l6ZSA9PT0gJ0wnIHx8XG4gICAgICAoWydNJywgJ1MnXS5pbmNsdWRlcyh0aGlzLnNpemUpICYmICF0aGlzLnJlY29yZC5vd25lck9yZ2FuaXphdGlvbj8ubmFtZSlcbiAgICApXG4gIH1cblxuICBnZXQgc2hvdWxkU2hvd1RodW1ibmFpbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zaXplID09PSAnTCcgfHwgdGhpcy5zaXplID09PSAnTSdcbiAgfVxufVxuIiwiPGEgW2F0dHIuaHJlZl09XCJsaW5rSHJlZlwiIFt0YXJnZXRdPVwibGlua1RhcmdldFwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJncm91cCByb3VuZGVkLW1kIGJnLXdoaXRlIGhvdmVyOmN1cnNvci1wb2ludGVyIGhvdmVyOmJnLXNsYXRlLTUwIG92ZXJmbG93LWhpZGRlbiB3LWZ1bGxcIlxuICAgIFtuZ0NsYXNzXT1cImNhcmRDbGFzc1wiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgbWQ6Z2FwLTAganVzdGlmeS1iZXR3ZWVuIHctZnVsbFwiXG4gICAgICBbbmdDbGFzc109XCJ7ICdmbGV4LXdyYXAgbWQ6ZmxleC1ub3dyYXAgZ2FwLTMnOiBzaXplID09PSAnTCcgfVwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cInNob3VsZFNob3dUaHVtYm5haWxcIlxuICAgICAgICBbbmdDbGFzc109XCJ0aHVtYm5haWxDb250YWluZXJDbGFzc1wiXG4gICAgICAgIGNsYXNzPVwiYm9yZGVyIG1yLTQgZmxleCBmbGV4LWNvbFwiXG4gICAgICA+XG4gICAgICAgIDxnbi11aS10aHVtYm5haWxcbiAgICAgICAgICBjbGFzcz1cInctZnVsbCBoLWZ1bGwgb2JqZWN0LWNvdmVyXCJcbiAgICAgICAgICBbdGh1bWJuYWlsVXJsXT1cInJlY29yZC5vdmVydmlld3M/LlswXT8udXJsPy50b1N0cmluZygpIHx8ICcnXCJcbiAgICAgICAgICBbZml0XT1cIidjb3ZlcidcIlxuICAgICAgICA+PC9nbi11aS10aHVtYm5haWw+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJncm93IGZsZXggZmxleC1jb2wgZ2FwLTMgdy0wXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncm93IGZsZXggZmxleC13cmFwIGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgPGduLXVpLWtpbmQtYmFkZ2VcbiAgICAgICAgICAgICAgW3N0eWxpbmddPVwiJ2RlZmF1bHQnXCJcbiAgICAgICAgICAgICAgW2tpbmRdPVwicmVjb3JkPy5raW5kXCJcbiAgICAgICAgICAgID48L2duLXVpLWtpbmQtYmFkZ2U+XG4gICAgICAgICAgICA8Z24tdWktZ2VvLWRhdGEtYmFkZ2VcbiAgICAgICAgICAgICAgW3Nob3dMYWJlbF09XCJzaXplID09PSAnTCdcIlxuICAgICAgICAgICAgICBbc3R5bGluZ109XCInbGlnaHQnXCJcbiAgICAgICAgICAgICAgW3JlY29yZF09XCJyZWNvcmRcIlxuICAgICAgICAgICAgPjwvZ24tdWktZ2VvLWRhdGEtYmFkZ2U+XG4gICAgICAgICAgICA8Z24tdWktbWV0YWRhdGEtcXVhbGl0eVxuICAgICAgICAgICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgW3NtYWxsZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIFttZXRhZGF0YV09XCJyZWNvcmRcIlxuICAgICAgICAgICAgICBbbWV0YWRhdGFRdWFsaXR5RGlzcGxheV09XCJtZXRhZGF0YVF1YWxpdHlEaXNwbGF5XCJcbiAgICAgICAgICAgID48L2duLXVpLW1ldGFkYXRhLXF1YWxpdHk+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cInNpemUgIT09ICdYUydcIiBkYXRhLWN5PVwicmVjb3JkRmF2XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZhdm9yaXRlVGVtcGxhdGVcIlxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHJlY29yZCB9XCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdyb3cgZmxleCBmbGV4LWNvbCBnYXAtMlwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiZm9udC1tZWRpdW0gdGV4dC10aXRsZSBncm91cC1ob3Zlcjp0ZXh0LXByaW1hcnlcIlxuICAgICAgICAgICAgW3RpdGxlXT1cInJlY29yZC50aXRsZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGg0XG4gICAgICAgICAgICAgIGNsYXNzPVwibXItNiBvdmVyZmxvdy1oaWRkZW5cIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJnZXRUaXRsZUNsYXNzKClcIlxuICAgICAgICAgICAgICBkYXRhLWN5PVwicmVjb3JkVGl0bGVcIlxuICAgICAgICAgICAgICBbdGl0bGVdPVwicmVjb3JkLnRpdGxlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgcmVjb3JkLnRpdGxlIH19XG4gICAgICAgICAgICA8L2g0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiZGlzcGxheUFic3RyYWN0KClcIlxuICAgICAgICAgICAgY2xhc3M9XCJtci02IHRleHQteHMgdGV4dC1ncmF5LTkwMCBvdmVyZmxvdy1oaWRkZW5cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiZ2V0QWJzdHJhY3RDbGFzcygpXCJcbiAgICAgICAgICAgIGRhdGEtY3k9XCJyZWNvcmRBYnN0cmFjdFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGduLXVpLW1hcmtkb3duLXBhcnNlclxuICAgICAgICAgICAgICBbdGV4dENvbnRlbnRdPVwiYWJzdHJhY3RcIlxuICAgICAgICAgICAgICBbd2hpdG91dFN0eWxlc109XCJ0cnVlXCJcbiAgICAgICAgICAgID48L2duLXVpLW1hcmtkb3duLXBhcnNlcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGduLXVpLWludGVybmFsLWxpbmstY2FyZC1jb250YWN0XG4gICAgICAgICAgKm5nSWY9XCJzaXplICE9PSAnWFMnICYmIHJlY29yZC5vd25lck9yZ2FuaXphdGlvbj8ubmFtZVwiXG4gICAgICAgICAgW3JlY29yZF09XCJyZWNvcmRcIlxuICAgICAgICAgIFtzaXplXT1cInNpemVcIlxuICAgICAgICA+PC9nbi11aS1pbnRlcm5hbC1saW5rLWNhcmQtY29udGFjdD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvYT5cbiJdfQ==
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwtbGluay1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9pbnRlcm5hbC1saW5rLWNhcmQvaW50ZXJuYWwtbGluay1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9pbnRlcm5hbC1saW5rLWNhcmQvaW50ZXJuYWwtbGluay1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFdBQVcsR0FDWixNQUFNLGVBQWUsQ0FBQTtBQUV0QixPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFBO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFBO0FBQ3RGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFBO0FBQ3pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUNwRixPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDbkUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDOUUsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0VBQW9FLENBQUE7QUFDckgsT0FB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TyxJQUFJO3NCQUFoQixLQUFLO2dCQVFJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENhdGFsb2dSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgR2VvRGF0YUJhZGdlQ29tcG9uZW50IH0gZnJvbSAnLi4vZ2VvLWRhdGEtYmFkZ2UvZ2VvLWRhdGEtYmFkZ2UuY29tcG9uZW50J1xuaW1wb3J0IHsgS2luZEJhZGdlQ29tcG9uZW50IH0gZnJvbSAnLi4va2luZC1iYWRnZS9raW5kLWJhZGdlLmNvbXBvbmVudCdcbmltcG9ydCB7IE1hcmtkb3duUGFyc2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vbWFya2Rvd24tcGFyc2VyL21hcmtkb3duLXBhcnNlci5jb21wb25lbnQnXG5pbXBvcnQgeyBNZXRhZGF0YVF1YWxpdHlDb21wb25lbnQgfSBmcm9tICcuLi9tZXRhZGF0YS1xdWFsaXR5L21ldGFkYXRhLXF1YWxpdHkuY29tcG9uZW50J1xuaW1wb3J0IHsgVGh1bWJuYWlsQ29tcG9uZW50IH0gZnJvbSAnLi4vdGh1bWJuYWlsL3RodW1ibmFpbC5jb21wb25lbnQnXG5pbXBvcnQgeyByZW1vdmVXaGl0ZXNwYWNlLCBzdHJpcEh0bWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IHByb3ZpZGVJY29ucywgcHJvdmlkZU5nSWNvbnNDb25maWcgfSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IG1hdExvY2F0aW9uU2VhcmNoaW5nT3V0bGluZSB9IGZyb20gJ0BuZy1pY29ucy9tYXRlcmlhbC1pY29ucy9vdXRsaW5lJ1xuaW1wb3J0IHsgSW50ZXJuYWxMaW5rQ2FyZENvbnRhY3RDb21wb25lbnQgfSBmcm9tICcuLi9pbnRlcm5hbC1saW5rLWNhcmQtY29udGFjdC9pbnRlcm5hbC1saW5rLWNhcmQtY29udGFjdC5jb21wb25lbnQnXG5pbXBvcnQgeyBpY29ub2lySW50ZXJuZXQgfSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcbmltcG9ydCB7IGZyb21FdmVudCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcydcblxudHlwZSBDYXJkU2l6ZSA9ICdMJyB8ICdNJyB8ICdTJyB8ICdYUydcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktaW50ZXJuYWwtbGluay1jYXJkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nQ2xhc3MsXG4gICAgTmdJZixcbiAgICBNZXRhZGF0YVF1YWxpdHlDb21wb25lbnQsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBHZW9EYXRhQmFkZ2VDb21wb25lbnQsXG4gICAgS2luZEJhZGdlQ29tcG9uZW50LFxuICAgIE1hcmtkb3duUGFyc2VyQ29tcG9uZW50LFxuICAgIEludGVybmFsTGlua0NhcmRDb250YWN0Q29tcG9uZW50LFxuICAgIFRodW1ibmFpbENvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHtcbiAgICAgIGljb25vaXJJbnRlcm5ldCxcbiAgICAgIG1hdExvY2F0aW9uU2VhcmNoaW5nT3V0bGluZSxcbiAgICB9KSxcbiAgICBwcm92aWRlTmdJY29uc0NvbmZpZyh7XG4gICAgICBzaXplOiAnMS4yZW0nLFxuICAgIH0pLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vaW50ZXJuYWwtbGluay1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW50ZXJuYWwtbGluay1jYXJkLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgSW50ZXJuYWxMaW5rQ2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHJlY29yZDogQ2F0YWxvZ1JlY29yZFxuICBASW5wdXQoKSBsaW5rVGFyZ2V0ID0gJ19ibGFuaydcbiAgQElucHV0KCkgbGlua0hyZWY6IHN0cmluZyA9IG51bGxcbiAgQElucHV0KCkgbWV0YWRhdGFRdWFsaXR5RGlzcGxheTogYm9vbGVhblxuICBASW5wdXQoKSBmYXZvcml0ZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx7ICRpbXBsaWNpdDogQ2F0YWxvZ1JlY29yZCB9PlxuICBASW5wdXQoKSBzZXQgc2l6ZSh2YWx1ZTogQ2FyZFNpemUpIHtcbiAgICB0aGlzLl9zaXplID0gdmFsdWVcbiAgICB0aGlzLmNhcmRDbGFzcyA9IHRoaXMuc2l6ZUNsYXNzTWFwW3ZhbHVlXSB8fCAnJ1xuICAgIHRoaXMudGh1bWJuYWlsQ29udGFpbmVyQ2xhc3MgPSB0aGlzLnRodW1ibmFpbFNpemVDbGFzc01hcFt2YWx1ZV0gfHwgJ2hpZGRlbidcbiAgfVxuICBnZXQgc2l6ZSgpOiBDYXJkU2l6ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3NpemVcbiAgfVxuICBAT3V0cHV0KCkgbWRTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPENhdGFsb2dSZWNvcmQ+KClcbiAgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpXG5cbiAgYWJzdHJhY3Q6IHN0cmluZ1xuXG4gIGNhcmRDbGFzcyA9ICcnXG4gIHRodW1ibmFpbENvbnRhaW5lckNsYXNzID0gJydcblxuICBwcml2YXRlIF9zaXplOiBDYXJkU2l6ZSA9ICdNJ1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2l6ZUNsYXNzTWFwOiBSZWNvcmQ8Q2FyZFNpemUsIHN0cmluZz4gPSB7XG4gICAgTDogJ21pbi1oLVsxOTBweF0gdy1mdWxsIHB5LTMgcHgtMyBmbGV4IGl0ZW1zLXN0YXJ0IGdhcC01JyxcbiAgICBNOiAnbWluLWgtWzE0MHB4XSBweS0zIHB4LTMgZmxleCBpdGVtcy1zdGFydCBnYXAtNCcsXG4gICAgUzogJ21pbi1oLVsyMjBweF0gcHktMyBweC0zIGZsZXggZ2FwLTQnLFxuICAgIFhTOiAnbWluLWgtWzEwOHB4XSBweS0zIHB4LTMgZmxleCBnYXAtNCcsXG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHRodW1ibmFpbFNpemVDbGFzc01hcDogUmVjb3JkPENhcmRTaXplLCBzdHJpbmc+ID0ge1xuICAgIEw6ICd3LWZ1bGwgbWQ6dy1bMTkwcHhdIGgtWzE4MHB4XSByb3VuZGVkLWxnIG92ZXJmbG93LWhpZGRlbiBzaHJpbmstMCcsXG4gICAgTTogJ3ctWzExMHB4XSBoLVsxNDBweF0gcm91bmRlZC1sZyBvdmVyZmxvdy1oaWRkZW4gc2hyaW5rLTAnLFxuICAgIFM6ICdoaWRkZW4nLFxuICAgIFhTOiAnaGlkZGVuJyxcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgdGl0bGVDbGFzc01hcDogUmVjb3JkPENhcmRTaXplLCBzdHJpbmc+ID0ge1xuICAgIEw6ICd0ZXh0LXhsIGxpbmUtY2xhbXAtMScsXG4gICAgTTogJ3RleHQtYmFzZSBsaW5lLWNsYW1wLTInLFxuICAgIFM6ICd0ZXh0LWJhc2UgbGluZS1jbGFtcC0zIG1sLTInLFxuICAgIFhTOiAndGV4dC1iYXNlIGxpbmUtY2xhbXAtMSBtbC0yJyxcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYWJzdHJhY3QgPSByZW1vdmVXaGl0ZXNwYWNlKHN0cmlwSHRtbCh0aGlzLnJlY29yZD8uYWJzdHJhY3QpKVxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIGZyb21FdmVudCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2NsaWNrJykuc3Vic2NyaWJlKCgpID0+XG4gICAgICAgIHRoaXMubWRTZWxlY3QuZW1pdCh0aGlzLnJlY29yZClcbiAgICAgIClcbiAgICApXG4gIH1cblxuICBnZXRUaXRsZUNsYXNzKCkge1xuICAgIHJldHVybiB0aGlzLnRpdGxlQ2xhc3NNYXBbdGhpcy5fc2l6ZV1cbiAgfVxuICBnZXRBYnN0cmFjdENsYXNzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgbWFyZ2luQ2xhc3MgPSBbJ1MnLCAnWFMnXS5pbmNsdWRlcyh0aGlzLnNpemUpID8gJ21sLTInIDogJydcbiAgICBjb25zdCBjbGFtcENsYXNzID1cbiAgICAgIHRoaXMuc2l6ZSA9PT0gJ0wnICYmICF0aGlzLnJlY29yZC5vd25lck9yZ2FuaXphdGlvbj8ubmFtZVxuICAgICAgICA/ICdsaW5lLWNsYW1wLTYnXG4gICAgICAgIDogJ2xpbmUtY2xhbXAtMidcbiAgICByZXR1cm4gYCR7Y2xhbXBDbGFzc30gJHttYXJnaW5DbGFzc31gLnRyaW0oKVxuICB9XG4gIGRpc3BsYXlBYnN0cmFjdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5zaXplID09PSAnTCcgfHxcbiAgICAgIChbJ00nLCAnUyddLmluY2x1ZGVzKHRoaXMuc2l6ZSkgJiYgIXRoaXMucmVjb3JkLm93bmVyT3JnYW5pemF0aW9uPy5uYW1lKVxuICAgIClcbiAgfVxuXG4gIGdldCBzaG91bGRTaG93VGh1bWJuYWlsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNpemUgPT09ICdMJyB8fCB0aGlzLnNpemUgPT09ICdNJ1xuICB9XG59XG4iLCI8YSBbYXR0ci5ocmVmXT1cImxpbmtIcmVmXCIgW3RhcmdldF09XCJsaW5rVGFyZ2V0XCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImdyb3VwIHJvdW5kZWQtbWQgYmctd2hpdGUgaG92ZXI6Y3Vyc29yLXBvaW50ZXIgaG92ZXI6Ymctc2xhdGUtNTAgb3ZlcmZsb3ctaGlkZGVuIHctZnVsbFwiXG4gICAgW25nQ2xhc3NdPVwiY2FyZENsYXNzXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBtZDpnYXAtMCBqdXN0aWZ5LWJldHdlZW4gdy1mdWxsXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ2ZsZXgtd3JhcCBtZDpmbGV4LW5vd3JhcCBnYXAtMyc6IHNpemUgPT09ICdMJyB9XCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwic2hvdWxkU2hvd1RodW1ibmFpbFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInRodW1ibmFpbENvbnRhaW5lckNsYXNzXCJcbiAgICAgICAgY2xhc3M9XCJib3JkZXIgbXItNCBmbGV4IGZsZXgtY29sXCJcbiAgICAgID5cbiAgICAgICAgPGduLXVpLXRodW1ibmFpbFxuICAgICAgICAgIGNsYXNzPVwidy1mdWxsIGgtZnVsbCBvYmplY3QtY292ZXJcIlxuICAgICAgICAgIFt0aHVtYm5haWxVcmxdPVwicmVjb3JkLm92ZXJ2aWV3cz8uWzBdPy51cmw/LnRvU3RyaW5nKCkgfHwgJydcIlxuICAgICAgICAgIFtmaXRdPVwiJ2NvdmVyJ1wiXG4gICAgICAgID48L2duLXVpLXRodW1ibmFpbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImdyb3cgZmxleCBmbGV4LWNvbCBnYXAtMyB3LTBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3cgZmxleCBmbGV4LXdyYXAgaXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgICA8Z24tdWkta2luZC1iYWRnZVxuICAgICAgICAgICAgICBbc3R5bGluZ109XCInZGVmYXVsdCdcIlxuICAgICAgICAgICAgICBba2luZF09XCJyZWNvcmQ/LmtpbmRcIlxuICAgICAgICAgICAgPjwvZ24tdWkta2luZC1iYWRnZT5cbiAgICAgICAgICAgIDxnbi11aS1nZW8tZGF0YS1iYWRnZVxuICAgICAgICAgICAgICBbc2hvd0xhYmVsXT1cInNpemUgPT09ICdMJ1wiXG4gICAgICAgICAgICAgIFtzdHlsaW5nXT1cIidsaWdodCdcIlxuICAgICAgICAgICAgICBbcmVjb3JkXT1cInJlY29yZFwiXG4gICAgICAgICAgICA+PC9nbi11aS1nZW8tZGF0YS1iYWRnZT5cbiAgICAgICAgICAgIDxnbi11aS1tZXRhZGF0YS1xdWFsaXR5XG4gICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICBbc21hbGxlcl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW21ldGFkYXRhXT1cInJlY29yZFwiXG4gICAgICAgICAgICAgIFttZXRhZGF0YVF1YWxpdHlEaXNwbGF5XT1cIm1ldGFkYXRhUXVhbGl0eURpc3BsYXlcIlxuICAgICAgICAgICAgPjwvZ24tdWktbWV0YWRhdGEtcXVhbGl0eT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2l6ZSAhPT0gJ1hTJ1wiIGRhdGEtY3k9XCJyZWNvcmRGYXZcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZmF2b3JpdGVUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogcmVjb3JkIH1cIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdyBmbGV4IGZsZXgtY29sIGdhcC0yXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJmb250LW1lZGl1bSB0ZXh0LXRpdGxlIGdyb3VwLWhvdmVyOnRleHQtcHJpbWFyeVwiXG4gICAgICAgICAgICBbdGl0bGVdPVwicmVjb3JkLnRpdGxlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aDRcbiAgICAgICAgICAgICAgY2xhc3M9XCJtci02IG92ZXJmbG93LWhpZGRlblwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImdldFRpdGxlQ2xhc3MoKVwiXG4gICAgICAgICAgICAgIGRhdGEtY3k9XCJyZWNvcmRUaXRsZVwiXG4gICAgICAgICAgICAgIFt0aXRsZV09XCJyZWNvcmQudGl0bGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyByZWNvcmQudGl0bGUgfX1cbiAgICAgICAgICAgIDwvaDQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJkaXNwbGF5QWJzdHJhY3QoKVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1yLTYgdGV4dC14cyB0ZXh0LWdyYXktOTAwIG92ZXJmbG93LWhpZGRlblwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJnZXRBYnN0cmFjdENsYXNzKClcIlxuICAgICAgICAgICAgZGF0YS1jeT1cInJlY29yZEFic3RyYWN0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Z24tdWktbWFya2Rvd24tcGFyc2VyXG4gICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJhYnN0cmFjdFwiXG4gICAgICAgICAgICAgIFt3aGl0b3V0U3R5bGVzXT1cInRydWVcIlxuICAgICAgICAgICAgPjwvZ24tdWktbWFya2Rvd24tcGFyc2VyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8Z24tdWktaW50ZXJuYWwtbGluay1jYXJkLWNvbnRhY3RcbiAgICAgICAgICAqbmdJZj1cInNpemUgIT09ICdYUycgJiYgcmVjb3JkLm93bmVyT3JnYW5pemF0aW9uPy5uYW1lXCJcbiAgICAgICAgICBbcmVjb3JkXT1cInJlY29yZFwiXG4gICAgICAgICAgW3NpemVdPVwic2l6ZVwiXG4gICAgICAgID48L2duLXVpLWludGVybmFsLWxpbmstY2FyZC1jb250YWN0PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9hPlxuIl19
@@ -2,11 +2,10 @@ import { Component, Input } from '@angular/core';
2
2
  import { NgIf } from '@angular/common';
3
3
  import { ThumbnailComponent } from '../thumbnail/thumbnail.component';
4
4
  import { NgIconComponent, provideIcons } from '@ng-icons/core';
5
- import { matEmailOutline, matPhoneOutline, matLocationOnOutline, } from '@ng-icons/material-icons/outline';
5
+ import { matEmailOutline, matLocationOnOutline, matPhoneOutline, } from '@ng-icons/material-icons/outline';
6
6
  import { iconoirInternet } from '@ng-icons/iconoir';
7
- import { TranslateModule } from '@ngx-translate/core';
7
+ import { TranslateDirective } from '@ngx-translate/core';
8
8
  import * as i0 from "@angular/core";
9
- import * as i1 from "@ngx-translate/core";
10
9
  export class InternalLinkCardContactComponent {
11
10
  constructor() {
12
11
  this.size = 'M';
@@ -39,11 +38,11 @@ export class InternalLinkCardContactComponent {
39
38
  matPhoneOutline,
40
39
  matLocationOnOutline,
41
40
  }),
42
- ], ngImport: i0, template: "<div\n data-cy=\"recordOrg\"\n class=\"flex items-center justify-evenly bg-gray-50 rounded-lg h-[53px] px-2\"\n>\n <div class=\"flex items-center flex-1 min-w-0\">\n <div class=\"w-[45px] h-[45px] rounded-lg overflow-hidden shrink-0 mr-3\">\n <gn-ui-thumbnail\n [thumbnailUrl]=\"record.ownerOrganization?.logoUrl?.toString() || ''\"\n [fit]=\"'contain'\"\n class=\"w-full h-full rounded-lg\"\n ></gn-ui-thumbnail>\n </div>\n <div *ngIf=\"organization?.name\" class=\"flex-1 w-0 overflow-hidden\">\n <div\n class=\"text-xs text-black font-normal leading-tight truncate\"\n translate\n >\n record.card.metadata.contact\n </div>\n <div\n data-cy=\"recordOrgName\"\n class=\"text-xl text-primary-black font-medium truncate\"\n >\n {{ organization.name }}\n </div>\n </div>\n </div>\n <div *ngIf=\"size === 'L'\" class=\"ml-2 flex space-x-2\">\n <div *ngIf=\"organization?.website\" class=\"flex\">\n <button\n [title]=\"organization.website\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest\"\n (click)=\"openExternalUrl($event, organization.website)\"\n >\n <ng-icon name=\"iconoirInternet\"></ng-icon>\n </button>\n </div>\n <div *ngIf=\"contacts[0]?.email\" class=\"flex\">\n <button\n [title]=\"contacts[0].email\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest\"\n data-cy=\"contact-email\"\n (click)=\"openMailto($event, contacts[0].email)\"\n >\n <ng-icon name=\"matEmailOutline\"></ng-icon>\n </button>\n </div>\n <div *ngIf=\"contacts[0]?.phone\" class=\"flex\">\n <button\n [title]=\"'Copy to clipboard'\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest relative group\"\n data-cy=\"contact-phone\"\n (click)=\"copyToClipboard($event, contacts[0].phone)\"\n >\n <ng-icon name=\"matPhoneOutline\"></ng-icon>\n </button>\n </div>\n <div *ngIf=\"contacts[0]?.address\" class=\"flex\">\n <button\n [title]=\"'Copy to clipboard'\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest relative group\"\n data-cy=\"contact-phone\"\n (click)=\"copyToClipboard($event, contacts[0].address)\"\n >\n <ng-icon name=\"matLocationOnOutline\"></ng-icon>\n </button>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] }); }
41
+ ], ngImport: i0, template: "<div\n data-cy=\"recordOrg\"\n class=\"flex items-center justify-evenly bg-gray-50 rounded-lg h-[53px] px-2\"\n>\n <div class=\"flex items-center flex-1 min-w-0\">\n <div class=\"w-[45px] h-[45px] rounded-lg overflow-hidden shrink-0 mr-3\">\n <gn-ui-thumbnail\n [thumbnailUrl]=\"record.ownerOrganization?.logoUrl?.toString() || ''\"\n [fit]=\"'contain'\"\n class=\"w-full h-full rounded-lg\"\n ></gn-ui-thumbnail>\n </div>\n <div *ngIf=\"organization?.name\" class=\"flex-1 w-0 overflow-hidden\">\n <div\n class=\"text-xs text-black font-normal leading-tight truncate\"\n translate\n >\n record.card.metadata.contact\n </div>\n <div\n data-cy=\"recordOrgName\"\n class=\"text-xl text-primary-black font-medium truncate\"\n >\n {{ organization.name }}\n </div>\n </div>\n </div>\n <div *ngIf=\"size === 'L'\" class=\"ml-2 flex space-x-2\">\n <div *ngIf=\"organization?.website\" class=\"flex\">\n <button\n [title]=\"organization.website\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest\"\n (click)=\"openExternalUrl($event, organization.website)\"\n >\n <ng-icon name=\"iconoirInternet\"></ng-icon>\n </button>\n </div>\n <div *ngIf=\"contacts[0]?.email\" class=\"flex\">\n <button\n [title]=\"contacts[0].email\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest\"\n data-cy=\"contact-email\"\n (click)=\"openMailto($event, contacts[0].email)\"\n >\n <ng-icon name=\"matEmailOutline\"></ng-icon>\n </button>\n </div>\n <div *ngIf=\"contacts[0]?.phone\" class=\"flex\">\n <button\n [title]=\"'Copy to clipboard'\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest relative group\"\n data-cy=\"contact-phone\"\n (click)=\"copyToClipboard($event, contacts[0].phone)\"\n >\n <ng-icon name=\"matPhoneOutline\"></ng-icon>\n </button>\n </div>\n <div *ngIf=\"contacts[0]?.address\" class=\"flex\">\n <button\n [title]=\"'Copy to clipboard'\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest relative group\"\n data-cy=\"contact-phone\"\n (click)=\"copyToClipboard($event, contacts[0].address)\"\n >\n <ng-icon name=\"matLocationOnOutline\"></ng-icon>\n </button>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] }); }
43
42
  }
44
43
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InternalLinkCardContactComponent, decorators: [{
45
44
  type: Component,
46
- args: [{ selector: 'gn-ui-internal-link-card-contact', standalone: true, imports: [NgIf, ThumbnailComponent, NgIconComponent, TranslateModule], providers: [
45
+ args: [{ selector: 'gn-ui-internal-link-card-contact', standalone: true, imports: [NgIf, ThumbnailComponent, NgIconComponent, TranslateDirective], providers: [
47
46
  provideIcons({
48
47
  iconoirInternet,
49
48
  matEmailOutline,
@@ -56,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
56
55
  }], size: [{
57
56
  type: Input
58
57
  }] } });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwtbGluay1jYXJkLWNvbnRhY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMvbGliL2ludGVybmFsLWxpbmstY2FyZC1jb250YWN0L2ludGVybmFsLWxpbmstY2FyZC1jb250YWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9pbnRlcm5hbC1saW5rLWNhcmQtY29udGFjdC9pbnRlcm5hbC1saW5rLWNhcmQtY29udGFjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFLdEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM5RCxPQUFPLEVBQ0wsZUFBZSxFQUNmLGVBQWUsRUFDZixvQkFBb0IsR0FDckIsTUFBTSxrQ0FBa0MsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBOzs7QUFnQnJELE1BQU0sT0FBTyxnQ0FBZ0M7SUFkN0M7UUFnQlcsU0FBSSxHQUEyQixHQUFHLENBQUE7S0E0QjVDO0lBMUJDLElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQTtJQUN0QyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxDQUNMLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssU0FBUztZQUM3QixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUI7WUFDakMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUNoQyxDQUFBO0lBQ0gsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFZLEVBQUUsR0FBUTtRQUNwQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUE7UUFDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDNUIsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFZLEVBQUUsS0FBYTtRQUNwQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUE7UUFDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEtBQUssRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQzFDLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBWSxFQUFFLElBQVk7UUFDeEMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFBO1FBQ3ZCLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3JDLENBQUM7K0dBN0JVLGdDQUFnQzttR0FBaEMsZ0NBQWdDLDJIQVZoQztZQUNULFlBQVksQ0FBQztnQkFDWCxlQUFlO2dCQUNmLGVBQWU7Z0JBQ2YsZUFBZTtnQkFDZixvQkFBb0I7YUFDckIsQ0FBQztTQUNILDBCQzNCSCxvdUZBcUVBLDRDRGxEWSxJQUFJLDZGQUFFLGtCQUFrQiw0SEFBRSxlQUFlLDRHQUFFLGVBQWU7OzRGQVd6RCxnQ0FBZ0M7a0JBZDVDLFNBQVM7K0JBQ0Usa0NBQWtDLGNBQ2hDLElBQUksV0FDUCxDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsZUFBZSxDQUFDLGFBQzFEO3dCQUNULFlBQVksQ0FBQzs0QkFDWCxlQUFlOzRCQUNmLGVBQWU7NEJBQ2YsZUFBZTs0QkFDZixvQkFBb0I7eUJBQ3JCLENBQUM7cUJBQ0g7OEJBSVEsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIENhdGFsb2dSZWNvcmQsXG4gIE9yZ2FuaXphdGlvbixcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgVGh1bWJuYWlsQ29tcG9uZW50IH0gZnJvbSAnLi4vdGh1bWJuYWlsL3RodW1ibmFpbC5jb21wb25lbnQnXG5pbXBvcnQgeyBOZ0ljb25Db21wb25lbnQsIHByb3ZpZGVJY29ucyB9IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHtcbiAgbWF0RW1haWxPdXRsaW5lLFxuICBtYXRQaG9uZU91dGxpbmUsXG4gIG1hdExvY2F0aW9uT25PdXRsaW5lLFxufSBmcm9tICdAbmctaWNvbnMvbWF0ZXJpYWwtaWNvbnMvb3V0bGluZSdcbmltcG9ydCB7IGljb25vaXJJbnRlcm5ldCB9IGZyb20gJ0BuZy1pY29ucy9pY29ub2lyJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktaW50ZXJuYWwtbGluay1jYXJkLWNvbnRhY3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdJZiwgVGh1bWJuYWlsQ29tcG9uZW50LCBOZ0ljb25Db21wb25lbnQsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIHByb3ZpZGVyczogW1xuICAgIHByb3ZpZGVJY29ucyh7XG4gICAgICBpY29ub2lySW50ZXJuZXQsXG4gICAgICBtYXRFbWFpbE91dGxpbmUsXG4gICAgICBtYXRQaG9uZU91dGxpbmUsXG4gICAgICBtYXRMb2NhdGlvbk9uT3V0bGluZSxcbiAgICB9KSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2ludGVybmFsLWxpbmstY2FyZC1jb250YWN0LmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgSW50ZXJuYWxMaW5rQ2FyZENvbnRhY3RDb21wb25lbnQge1xuICBASW5wdXQoKSByZWNvcmQ6IENhdGFsb2dSZWNvcmRcbiAgQElucHV0KCkgc2l6ZTogJ0wnIHwgJ00nIHwgJ1MnIHwgJ1hTJyA9ICdNJ1xuXG4gIGdldCBvcmdhbml6YXRpb24oKTogT3JnYW5pemF0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5yZWNvcmQub3duZXJPcmdhbml6YXRpb25cbiAgfVxuXG4gIGdldCBjb250YWN0cygpIHtcbiAgICByZXR1cm4gKFxuICAgICAgKHRoaXMucmVjb3JkLmtpbmQgPT09ICdkYXRhc2V0J1xuICAgICAgICA/IHRoaXMucmVjb3JkLmNvbnRhY3RzRm9yUmVzb3VyY2VcbiAgICAgICAgOiB0aGlzLnJlY29yZC5jb250YWN0cykgfHwgW11cbiAgICApXG4gIH1cblxuICBvcGVuRXh0ZXJuYWxVcmwoZXZlbnQ6IEV2ZW50LCB1cmw6IFVSTCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJylcbiAgfVxuXG4gIG9wZW5NYWlsdG8oZXZlbnQ6IEV2ZW50LCBlbWFpbDogc3RyaW5nKTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICB3aW5kb3cub3BlbihgbWFpbHRvOiR7ZW1haWx9YCwgJ19ibGFuaycpXG4gIH1cblxuICBjb3B5VG9DbGlwYm9hcmQoZXZlbnQ6IEV2ZW50LCB0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRleHQpXG4gIH1cbn1cbiIsIjxkaXZcbiAgZGF0YS1jeT1cInJlY29yZE9yZ1wiXG4gIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1ldmVubHkgYmctZ3JheS01MCByb3VuZGVkLWxnIGgtWzUzcHhdIHB4LTJcIlxuPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZmxleC0xIG1pbi13LTBcIj5cbiAgICA8ZGl2IGNsYXNzPVwidy1bNDVweF0gaC1bNDVweF0gcm91bmRlZC1sZyBvdmVyZmxvdy1oaWRkZW4gc2hyaW5rLTAgbXItM1wiPlxuICAgICAgPGduLXVpLXRodW1ibmFpbFxuICAgICAgICBbdGh1bWJuYWlsVXJsXT1cInJlY29yZC5vd25lck9yZ2FuaXphdGlvbj8ubG9nb1VybD8udG9TdHJpbmcoKSB8fCAnJ1wiXG4gICAgICAgIFtmaXRdPVwiJ2NvbnRhaW4nXCJcbiAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgaC1mdWxsIHJvdW5kZWQtbGdcIlxuICAgICAgPjwvZ24tdWktdGh1bWJuYWlsPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJvcmdhbml6YXRpb24/Lm5hbWVcIiBjbGFzcz1cImZsZXgtMSB3LTAgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidGV4dC14cyB0ZXh0LWJsYWNrIGZvbnQtbm9ybWFsIGxlYWRpbmctdGlnaHQgdHJ1bmNhdGVcIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgID5cbiAgICAgICAgcmVjb3JkLmNhcmQubWV0YWRhdGEuY29udGFjdFxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGRhdGEtY3k9XCJyZWNvcmRPcmdOYW1lXCJcbiAgICAgICAgY2xhc3M9XCJ0ZXh0LXhsIHRleHQtcHJpbWFyeS1ibGFjayBmb250LW1lZGl1bSB0cnVuY2F0ZVwiXG4gICAgICA+XG4gICAgICAgIHt7IG9yZ2FuaXphdGlvbi5uYW1lIH19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJzaXplID09PSAnTCdcIiBjbGFzcz1cIm1sLTIgZmxleCBzcGFjZS14LTJcIj5cbiAgICA8ZGl2ICpuZ0lmPVwib3JnYW5pemF0aW9uPy53ZWJzaXRlXCIgY2xhc3M9XCJmbGV4XCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIFt0aXRsZV09XCJvcmdhbml6YXRpb24ud2Vic2l0ZVwiXG4gICAgICAgIGNsYXNzPVwidy1bNDBweF0gaC1bMzJweF0gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLVsjRDREM0Q3XSBweC1bOHB4XSBweS1bNHB4XSBob3ZlcjpiZy1wcmltYXJ5LWxpZ2h0ZXN0XCJcbiAgICAgICAgKGNsaWNrKT1cIm9wZW5FeHRlcm5hbFVybCgkZXZlbnQsIG9yZ2FuaXphdGlvbi53ZWJzaXRlKVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1pY29uIG5hbWU9XCJpY29ub2lySW50ZXJuZXRcIj48L25nLWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiY29udGFjdHNbMF0/LmVtYWlsXCIgY2xhc3M9XCJmbGV4XCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIFt0aXRsZV09XCJjb250YWN0c1swXS5lbWFpbFwiXG4gICAgICAgIGNsYXNzPVwidy1bNDBweF0gaC1bMzJweF0gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLVsjRDREM0Q3XSBweC1bOHB4XSBweS1bNHB4XSBob3ZlcjpiZy1wcmltYXJ5LWxpZ2h0ZXN0XCJcbiAgICAgICAgZGF0YS1jeT1cImNvbnRhY3QtZW1haWxcIlxuICAgICAgICAoY2xpY2spPVwib3Blbk1haWx0bygkZXZlbnQsIGNvbnRhY3RzWzBdLmVtYWlsKVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1pY29uIG5hbWU9XCJtYXRFbWFpbE91dGxpbmVcIj48L25nLWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiY29udGFjdHNbMF0/LnBob25lXCIgY2xhc3M9XCJmbGV4XCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIFt0aXRsZV09XCInQ29weSB0byBjbGlwYm9hcmQnXCJcbiAgICAgICAgY2xhc3M9XCJ3LVs0MHB4XSBoLVszMnB4XSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItWyNENEQzRDddIHB4LVs4cHhdIHB5LVs0cHhdIGhvdmVyOmJnLXByaW1hcnktbGlnaHRlc3QgcmVsYXRpdmUgZ3JvdXBcIlxuICAgICAgICBkYXRhLWN5PVwiY29udGFjdC1waG9uZVwiXG4gICAgICAgIChjbGljayk9XCJjb3B5VG9DbGlwYm9hcmQoJGV2ZW50LCBjb250YWN0c1swXS5waG9uZSlcIlxuICAgICAgPlxuICAgICAgICA8bmctaWNvbiBuYW1lPVwibWF0UGhvbmVPdXRsaW5lXCI+PC9uZy1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImNvbnRhY3RzWzBdPy5hZGRyZXNzXCIgY2xhc3M9XCJmbGV4XCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIFt0aXRsZV09XCInQ29weSB0byBjbGlwYm9hcmQnXCJcbiAgICAgICAgY2xhc3M9XCJ3LVs0MHB4XSBoLVszMnB4XSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItWyNENEQzRDddIHB4LVs4cHhdIHB5LVs0cHhdIGhvdmVyOmJnLXByaW1hcnktbGlnaHRlc3QgcmVsYXRpdmUgZ3JvdXBcIlxuICAgICAgICBkYXRhLWN5PVwiY29udGFjdC1waG9uZVwiXG4gICAgICAgIChjbGljayk9XCJjb3B5VG9DbGlwYm9hcmQoJGV2ZW50LCBjb250YWN0c1swXS5hZGRyZXNzKVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1pY29uIG5hbWU9XCJtYXRMb2NhdGlvbk9uT3V0bGluZVwiPjwvbmctaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwtbGluay1jYXJkLWNvbnRhY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMvbGliL2ludGVybmFsLWxpbmstY2FyZC1jb250YWN0L2ludGVybmFsLWxpbmstY2FyZC1jb250YWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9pbnRlcm5hbC1saW5rLWNhcmQtY29udGFjdC9pbnRlcm5hbC1saW5rLWNhcmQtY29udGFjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFLdEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM5RCxPQUFPLEVBQ0wsZUFBZSxFQUNmLG9CQUFvQixFQUNwQixlQUFlLEdBQ2hCLE1BQU0sa0NBQWtDLENBQUE7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBOztBQWdCeEQsTUFBTSxPQUFPLGdDQUFnQztJQWQ3QztRQWdCVyxTQUFJLEdBQTJCLEdBQUcsQ0FBQTtLQTRCNUM7SUExQkMsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFBO0lBQ3RDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLENBQ0wsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTO1lBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQjtZQUNqQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQ2hDLENBQUE7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQVksRUFBRSxHQUFRO1FBQ3BDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQTtRQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUM1QixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVksRUFBRSxLQUFhO1FBQ3BDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQTtRQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsS0FBSyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDMUMsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFZLEVBQUUsSUFBWTtRQUN4QyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUE7UUFDdkIsU0FBUyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDckMsQ0FBQzsrR0E3QlUsZ0NBQWdDO21HQUFoQyxnQ0FBZ0MsMkhBVmhDO1lBQ1QsWUFBWSxDQUFDO2dCQUNYLGVBQWU7Z0JBQ2YsZUFBZTtnQkFDZixlQUFlO2dCQUNmLG9CQUFvQjthQUNyQixDQUFDO1NBQ0gsMEJDM0JILG91RkFxRUEsNENEbERZLElBQUksNkZBQUUsa0JBQWtCLDRIQUFFLGVBQWUsNkdBQUUsa0JBQWtCOzs0RkFXNUQsZ0NBQWdDO2tCQWQ1QyxTQUFTOytCQUNFLGtDQUFrQyxjQUNoQyxJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixDQUFDLGFBQzdEO3dCQUNULFlBQVksQ0FBQzs0QkFDWCxlQUFlOzRCQUNmLGVBQWU7NEJBQ2YsZUFBZTs0QkFDZixvQkFBb0I7eUJBQ3JCLENBQUM7cUJBQ0g7OEJBSVEsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIENhdGFsb2dSZWNvcmQsXG4gIE9yZ2FuaXphdGlvbixcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgVGh1bWJuYWlsQ29tcG9uZW50IH0gZnJvbSAnLi4vdGh1bWJuYWlsL3RodW1ibmFpbC5jb21wb25lbnQnXG5pbXBvcnQgeyBOZ0ljb25Db21wb25lbnQsIHByb3ZpZGVJY29ucyB9IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHtcbiAgbWF0RW1haWxPdXRsaW5lLFxuICBtYXRMb2NhdGlvbk9uT3V0bGluZSxcbiAgbWF0UGhvbmVPdXRsaW5lLFxufSBmcm9tICdAbmctaWNvbnMvbWF0ZXJpYWwtaWNvbnMvb3V0bGluZSdcbmltcG9ydCB7IGljb25vaXJJbnRlcm5ldCB9IGZyb20gJ0BuZy1pY29ucy9pY29ub2lyJ1xuaW1wb3J0IHsgVHJhbnNsYXRlRGlyZWN0aXZlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktaW50ZXJuYWwtbGluay1jYXJkLWNvbnRhY3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdJZiwgVGh1bWJuYWlsQ29tcG9uZW50LCBOZ0ljb25Db21wb25lbnQsIFRyYW5zbGF0ZURpcmVjdGl2ZV0sXG4gIHByb3ZpZGVyczogW1xuICAgIHByb3ZpZGVJY29ucyh7XG4gICAgICBpY29ub2lySW50ZXJuZXQsXG4gICAgICBtYXRFbWFpbE91dGxpbmUsXG4gICAgICBtYXRQaG9uZU91dGxpbmUsXG4gICAgICBtYXRMb2NhdGlvbk9uT3V0bGluZSxcbiAgICB9KSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2ludGVybmFsLWxpbmstY2FyZC1jb250YWN0LmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgSW50ZXJuYWxMaW5rQ2FyZENvbnRhY3RDb21wb25lbnQge1xuICBASW5wdXQoKSByZWNvcmQ6IENhdGFsb2dSZWNvcmRcbiAgQElucHV0KCkgc2l6ZTogJ0wnIHwgJ00nIHwgJ1MnIHwgJ1hTJyA9ICdNJ1xuXG4gIGdldCBvcmdhbml6YXRpb24oKTogT3JnYW5pemF0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5yZWNvcmQub3duZXJPcmdhbml6YXRpb25cbiAgfVxuXG4gIGdldCBjb250YWN0cygpIHtcbiAgICByZXR1cm4gKFxuICAgICAgKHRoaXMucmVjb3JkLmtpbmQgPT09ICdkYXRhc2V0J1xuICAgICAgICA/IHRoaXMucmVjb3JkLmNvbnRhY3RzRm9yUmVzb3VyY2VcbiAgICAgICAgOiB0aGlzLnJlY29yZC5jb250YWN0cykgfHwgW11cbiAgICApXG4gIH1cblxuICBvcGVuRXh0ZXJuYWxVcmwoZXZlbnQ6IEV2ZW50LCB1cmw6IFVSTCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJylcbiAgfVxuXG4gIG9wZW5NYWlsdG8oZXZlbnQ6IEV2ZW50LCBlbWFpbDogc3RyaW5nKTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICB3aW5kb3cub3BlbihgbWFpbHRvOiR7ZW1haWx9YCwgJ19ibGFuaycpXG4gIH1cblxuICBjb3B5VG9DbGlwYm9hcmQoZXZlbnQ6IEV2ZW50LCB0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRleHQpXG4gIH1cbn1cbiIsIjxkaXZcbiAgZGF0YS1jeT1cInJlY29yZE9yZ1wiXG4gIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1ldmVubHkgYmctZ3JheS01MCByb3VuZGVkLWxnIGgtWzUzcHhdIHB4LTJcIlxuPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZmxleC0xIG1pbi13LTBcIj5cbiAgICA8ZGl2IGNsYXNzPVwidy1bNDVweF0gaC1bNDVweF0gcm91bmRlZC1sZyBvdmVyZmxvdy1oaWRkZW4gc2hyaW5rLTAgbXItM1wiPlxuICAgICAgPGduLXVpLXRodW1ibmFpbFxuICAgICAgICBbdGh1bWJuYWlsVXJsXT1cInJlY29yZC5vd25lck9yZ2FuaXphdGlvbj8ubG9nb1VybD8udG9TdHJpbmcoKSB8fCAnJ1wiXG4gICAgICAgIFtmaXRdPVwiJ2NvbnRhaW4nXCJcbiAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgaC1mdWxsIHJvdW5kZWQtbGdcIlxuICAgICAgPjwvZ24tdWktdGh1bWJuYWlsPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJvcmdhbml6YXRpb24/Lm5hbWVcIiBjbGFzcz1cImZsZXgtMSB3LTAgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidGV4dC14cyB0ZXh0LWJsYWNrIGZvbnQtbm9ybWFsIGxlYWRpbmctdGlnaHQgdHJ1bmNhdGVcIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgID5cbiAgICAgICAgcmVjb3JkLmNhcmQubWV0YWRhdGEuY29udGFjdFxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGRhdGEtY3k9XCJyZWNvcmRPcmdOYW1lXCJcbiAgICAgICAgY2xhc3M9XCJ0ZXh0LXhsIHRleHQtcHJpbWFyeS1ibGFjayBmb250LW1lZGl1bSB0cnVuY2F0ZVwiXG4gICAgICA+XG4gICAgICAgIHt7IG9yZ2FuaXphdGlvbi5uYW1lIH19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJzaXplID09PSAnTCdcIiBjbGFzcz1cIm1sLTIgZmxleCBzcGFjZS14LTJcIj5cbiAgICA8ZGl2ICpuZ0lmPVwib3JnYW5pemF0aW9uPy53ZWJzaXRlXCIgY2xhc3M9XCJmbGV4XCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIFt0aXRsZV09XCJvcmdhbml6YXRpb24ud2Vic2l0ZVwiXG4gICAgICAgIGNsYXNzPVwidy1bNDBweF0gaC1bMzJweF0gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLVsjRDREM0Q3XSBweC1bOHB4XSBweS1bNHB4XSBob3ZlcjpiZy1wcmltYXJ5LWxpZ2h0ZXN0XCJcbiAgICAgICAgKGNsaWNrKT1cIm9wZW5FeHRlcm5hbFVybCgkZXZlbnQsIG9yZ2FuaXphdGlvbi53ZWJzaXRlKVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1pY29uIG5hbWU9XCJpY29ub2lySW50ZXJuZXRcIj48L25nLWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiY29udGFjdHNbMF0/LmVtYWlsXCIgY2xhc3M9XCJmbGV4XCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIFt0aXRsZV09XCJjb250YWN0c1swXS5lbWFpbFwiXG4gICAgICAgIGNsYXNzPVwidy1bNDBweF0gaC1bMzJweF0gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLVsjRDREM0Q3XSBweC1bOHB4XSBweS1bNHB4XSBob3ZlcjpiZy1wcmltYXJ5LWxpZ2h0ZXN0XCJcbiAgICAgICAgZGF0YS1jeT1cImNvbnRhY3QtZW1haWxcIlxuICAgICAgICAoY2xpY2spPVwib3Blbk1haWx0bygkZXZlbnQsIGNvbnRhY3RzWzBdLmVtYWlsKVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1pY29uIG5hbWU9XCJtYXRFbWFpbE91dGxpbmVcIj48L25nLWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiY29udGFjdHNbMF0/LnBob25lXCIgY2xhc3M9XCJmbGV4XCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIFt0aXRsZV09XCInQ29weSB0byBjbGlwYm9hcmQnXCJcbiAgICAgICAgY2xhc3M9XCJ3LVs0MHB4XSBoLVszMnB4XSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItWyNENEQzRDddIHB4LVs4cHhdIHB5LVs0cHhdIGhvdmVyOmJnLXByaW1hcnktbGlnaHRlc3QgcmVsYXRpdmUgZ3JvdXBcIlxuICAgICAgICBkYXRhLWN5PVwiY29udGFjdC1waG9uZVwiXG4gICAgICAgIChjbGljayk9XCJjb3B5VG9DbGlwYm9hcmQoJGV2ZW50LCBjb250YWN0c1swXS5waG9uZSlcIlxuICAgICAgPlxuICAgICAgICA8bmctaWNvbiBuYW1lPVwibWF0UGhvbmVPdXRsaW5lXCI+PC9uZy1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImNvbnRhY3RzWzBdPy5hZGRyZXNzXCIgY2xhc3M9XCJmbGV4XCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIFt0aXRsZV09XCInQ29weSB0byBjbGlwYm9hcmQnXCJcbiAgICAgICAgY2xhc3M9XCJ3LVs0MHB4XSBoLVszMnB4XSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItWyNENEQzRDddIHB4LVs4cHhdIHB5LVs0cHhdIGhvdmVyOmJnLXByaW1hcnktbGlnaHRlc3QgcmVsYXRpdmUgZ3JvdXBcIlxuICAgICAgICBkYXRhLWN5PVwiY29udGFjdC1waG9uZVwiXG4gICAgICAgIChjbGljayk9XCJjb3B5VG9DbGlwYm9hcmQoJGV2ZW50LCBjb250YWN0c1swXS5hZGRyZXNzKVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1pY29uIG5hbWU9XCJtYXRMb2NhdGlvbk9uT3V0bGluZVwiPjwvbmctaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,14 +1,11 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import { ChangeDetectionStrategy, Component, Input, TemplateRef, } from '@angular/core';
3
- import { provideIcons } from '@ng-icons/core';
4
- import { iconoirAppleWallet, iconoirAppleShortcuts, iconoirCode, iconoirCreditCard, } from '@ng-icons/iconoir';
5
- import { NgIconsModule } from '@ng-icons/core';
6
- import { TranslateModule } from '@ngx-translate/core';
3
+ import { NgIconComponent, provideIcons } from '@ng-icons/core';
4
+ import { iconoirAppleShortcuts, iconoirAppleWallet, iconoirCode, iconoirCreditCard, } from '@ng-icons/iconoir';
5
+ import { TranslatePipe } from '@ngx-translate/core';
7
6
  import { marker } from '@biesbjerg/ngx-translate-extract-marker';
8
7
  import * as i0 from "@angular/core";
9
- import * as i1 from "@ng-icons/core";
10
- import * as i2 from "@angular/common";
11
- import * as i3 from "@ngx-translate/core";
8
+ import * as i1 from "@angular/common";
12
9
  marker('record.kind.dataset');
13
10
  marker('record.kind.reuse');
14
11
  marker('record.kind.service');
@@ -39,7 +36,7 @@ export class KindBadgeComponent {
39
36
  }
40
37
  }
41
38
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KindBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
42
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: KindBadgeComponent, isStandalone: true, selector: "gn-ui-kind-badge", inputs: { styling: "styling", contentTemplate: "contentTemplate", kind: "kind" }, ngImport: i0, template: "<div [class]=\"badgeClasses\" *ngIf=\"kind\">\n <ng-icon [name]=\"iconKind\" class=\"mr-1 text-[0.85em]\"></ng-icon>\n\n <ng-container *ngIf=\"contentTemplate; else defaultContent\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #defaultContent>\n {{ 'record.kind.' + kind | translate }}\n</ng-template>\n", styles: [":host gn-ui-badge ng-icon{font-size:1.2rem;width:1.2rem;height:1.2rem;transform:translateY(-2px)}\n"], dependencies: [{ kind: "ngmodule", type: NgIconsModule }, { kind: "component", type: i1.NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], viewProviders: [
39
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: KindBadgeComponent, isStandalone: true, selector: "gn-ui-kind-badge", inputs: { styling: "styling", contentTemplate: "contentTemplate", kind: "kind" }, ngImport: i0, template: "<div [class]=\"badgeClasses\" *ngIf=\"kind\">\n <ng-icon [name]=\"iconKind\" class=\"mr-1 text-[0.85em]\"></ng-icon>\n\n <ng-container *ngIf=\"contentTemplate; else defaultContent\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #defaultContent>\n {{ 'record.kind.' + kind | translate }}\n</ng-template>\n", styles: [":host gn-ui-badge ng-icon{font-size:1.2rem;width:1.2rem;height:1.2rem;transform:translateY(-2px)}\n"], dependencies: [{ kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], viewProviders: [
43
40
  provideIcons({
44
41
  iconoirAppleWallet,
45
42
  iconoirAppleShortcuts,
@@ -57,7 +54,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
57
54
  iconoirCode,
58
55
  iconoirCreditCard,
59
56
  }),
60
- ], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIconsModule, CommonModule, TranslateModule], template: "<div [class]=\"badgeClasses\" *ngIf=\"kind\">\n <ng-icon [name]=\"iconKind\" class=\"mr-1 text-[0.85em]\"></ng-icon>\n\n <ng-container *ngIf=\"contentTemplate; else defaultContent\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #defaultContent>\n {{ 'record.kind.' + kind | translate }}\n</ng-template>\n", styles: [":host gn-ui-badge ng-icon{font-size:1.2rem;width:1.2rem;height:1.2rem;transform:translateY(-2px)}\n"] }]
57
+ ], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIconComponent, CommonModule, TranslatePipe], template: "<div [class]=\"badgeClasses\" *ngIf=\"kind\">\n <ng-icon [name]=\"iconKind\" class=\"mr-1 text-[0.85em]\"></ng-icon>\n\n <ng-container *ngIf=\"contentTemplate; else defaultContent\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #defaultContent>\n {{ 'record.kind.' + kind | translate }}\n</ng-template>\n", styles: [":host gn-ui-badge ng-icon{font-size:1.2rem;width:1.2rem;height:1.2rem;transform:translateY(-2px)}\n"] }]
61
58
  }], propDecorators: { styling: [{
62
59
  type: Input
63
60
  }], contentTemplate: [{
@@ -65,4 +62,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
65
62
  }], kind: [{
66
63
  type: Input
67
64
  }] } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2luZC1iYWRnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYy9saWIva2luZC1iYWRnZS9raW5kLWJhZGdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9raW5kLWJhZGdlL2tpbmQtYmFkZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFDTCxXQUFXLEdBQ1osTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzdDLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIscUJBQXFCLEVBQ3JCLFdBQVcsRUFDWCxpQkFBaUIsR0FDbEIsTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTs7Ozs7QUFFaEUsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUE7QUFDN0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUE7QUFDM0IsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUE7QUFFN0IsSUFBSyxVQUtKO0FBTEQsV0FBSyxVQUFVO0lBQ2Isd0NBQTBCLENBQUE7SUFDMUIsK0NBQWlDLENBQUE7SUFDakMscUNBQXVCLENBQUE7SUFDdkIseUNBQTJCLENBQUE7QUFDN0IsQ0FBQyxFQUxJLFVBQVUsS0FBVixVQUFVLFFBS2Q7QUFrQkQsTUFBTSxPQUFPLGtCQUFrQjtJQWhCL0I7UUFpQlcsWUFBTyxHQUFHLFNBQVMsQ0FBQTtRQUk1Qix3QkFBbUIsR0FBRyxLQUFLLENBQUE7S0FtQjVCO0lBakJDLElBQUksUUFBUTtRQUNWLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFBO0lBQ3BELENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxNQUFNLFdBQVcsR0FDZixvRkFBb0YsQ0FBQTtRQUV0RixRQUFRLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNyQixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxHQUFHLFdBQVcsNENBQTRDLENBQUE7WUFDbkUsS0FBSyxTQUFTO2dCQUNaLE9BQU8sR0FBRyxXQUFXLG9CQUFvQixDQUFBO1lBQzNDO2dCQUNFLE9BQU8sbUJBQW1CLENBQUE7UUFDOUIsQ0FBQztJQUNILENBQUM7K0dBdkJVLGtCQUFrQjttR0FBbEIsa0JBQWtCLDhKQzdDL0IsNFhBV0EsNEpEZ0NZLGFBQWEsb0pBQUUsWUFBWSx5U0FBRSxlQUFlLGlGQVZ2QztZQUNiLFlBQVksQ0FBQztnQkFDWCxrQkFBa0I7Z0JBQ2xCLHFCQUFxQjtnQkFDckIsV0FBVztnQkFDWCxpQkFBaUI7YUFDbEIsQ0FBQztTQUNIOzs0RkFLVSxrQkFBa0I7a0JBaEI5QixTQUFTOytCQUNFLGtCQUFrQixpQkFHYjt3QkFDYixZQUFZLENBQUM7NEJBQ1gsa0JBQWtCOzRCQUNsQixxQkFBcUI7NEJBQ3JCLFdBQVc7NEJBQ1gsaUJBQWlCO3lCQUNsQixDQUFDO3FCQUNILG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLGFBQWEsRUFBRSxZQUFZLEVBQUUsZUFBZSxDQUFDOzhCQUc5QyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBwcm92aWRlSWNvbnMgfSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7XG4gIGljb25vaXJBcHBsZVdhbGxldCxcbiAgaWNvbm9pckFwcGxlU2hvcnRjdXRzLFxuICBpY29ub2lyQ29kZSxcbiAgaWNvbm9pckNyZWRpdENhcmQsXG59IGZyb20gJ0BuZy1pY29ucy9pY29ub2lyJ1xuaW1wb3J0IHsgTmdJY29uc01vZHVsZSB9IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IG1hcmtlciB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcidcblxubWFya2VyKCdyZWNvcmQua2luZC5kYXRhc2V0Jylcbm1hcmtlcigncmVjb3JkLmtpbmQucmV1c2UnKVxubWFya2VyKCdyZWNvcmQua2luZC5zZXJ2aWNlJylcblxuZW51bSBLaW5kQ29uZmlnIHtcbiAgYWxsID0gJ2ljb25vaXJBcHBsZVdhbGxldCcsIC8vICh0aGlzIG9uZSBpcyBmb3IgZmlsdGVyKVxuICBkYXRhc2V0ID0gJ2ljb25vaXJBcHBsZVNob3J0Y3V0cycsXG4gIHNlcnZpY2UgPSAnaWNvbm9pckNvZGUnLFxuICByZXVzZSA9ICdpY29ub2lyQ3JlZGl0Q2FyZCcsXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWtpbmQtYmFkZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4va2luZC1iYWRnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2tpbmQtYmFkZ2UuY29tcG9uZW50LmNzcyddLFxuICB2aWV3UHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHtcbiAgICAgIGljb25vaXJBcHBsZVdhbGxldCxcbiAgICAgIGljb25vaXJBcHBsZVNob3J0Y3V0cyxcbiAgICAgIGljb25vaXJDb2RlLFxuICAgICAgaWNvbm9pckNyZWRpdENhcmQsXG4gICAgfSksXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdJY29uc01vZHVsZSwgQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBLaW5kQmFkZ2VDb21wb25lbnQge1xuICBASW5wdXQoKSBzdHlsaW5nID0gJ2RlZmF1bHQnXG4gIEBJbnB1dCgpIGNvbnRlbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj5cbiAgQElucHV0KCkga2luZDogc3RyaW5nXG5cbiAgaGFzUHJvamVjdGVkQ29udGVudCA9IGZhbHNlXG5cbiAgZ2V0IGljb25LaW5kKCkge1xuICAgIHJldHVybiBLaW5kQ29uZmlnW3RoaXMua2luZF0gfHwgS2luZENvbmZpZy5kYXRhc2V0XG4gIH1cblxuICBnZXQgYmFkZ2VDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYmFzZUNsYXNzZXMgPVxuICAgICAgJ2JhZGdlLWJ0biB0ZXh0LXdoaXRlIHRleHQteHMgcHgtMiBmb250LWJvbGQgc2hyaW5rLTAgZmxleCBpdGVtcy1jZW50ZXIgaC02IG1pbi1oLTYnXG5cbiAgICBzd2l0Y2ggKHRoaXMuc3R5bGluZykge1xuICAgICAgY2FzZSAnb3V0bGluZSc6XG4gICAgICAgIHJldHVybiBgJHtiYXNlQ2xhc3Nlc30gYmctdHJhbnNwYXJlbnQgYm9yZGVyIGJvcmRlci13aGl0ZSBweS0xLjVgXG4gICAgICBjYXNlICdkZWZhdWx0JzpcbiAgICAgICAgcmV0dXJuIGAke2Jhc2VDbGFzc2VzfSBiZy1wcmltYXJ5IHB5LTAuNWBcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnZmxleCBpdGVtcy1jZW50ZXInXG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IFtjbGFzc109XCJiYWRnZUNsYXNzZXNcIiAqbmdJZj1cImtpbmRcIj5cbiAgPG5nLWljb24gW25hbWVdPVwiaWNvbktpbmRcIiBjbGFzcz1cIm1yLTEgdGV4dC1bMC44NWVtXVwiPjwvbmctaWNvbj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGVudFRlbXBsYXRlOyBlbHNlIGRlZmF1bHRDb250ZW50XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRDb250ZW50PlxuICB7eyAncmVjb3JkLmtpbmQuJyArIGtpbmQgfCB0cmFuc2xhdGUgfX1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2luZC1iYWRnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYy9saWIva2luZC1iYWRnZS9raW5kLWJhZGdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9raW5kLWJhZGdlL2tpbmQtYmFkZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFDTCxXQUFXLEdBQ1osTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM5RCxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGtCQUFrQixFQUNsQixXQUFXLEVBQ1gsaUJBQWlCLEdBQ2xCLE1BQU0sbUJBQW1CLENBQUE7QUFDMUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTs7O0FBRWhFLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO0FBQzdCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO0FBQzNCLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO0FBRTdCLElBQUssVUFLSjtBQUxELFdBQUssVUFBVTtJQUNiLHdDQUEwQixDQUFBO0lBQzFCLCtDQUFpQyxDQUFBO0lBQ2pDLHFDQUF1QixDQUFBO0lBQ3ZCLHlDQUEyQixDQUFBO0FBQzdCLENBQUMsRUFMSSxVQUFVLEtBQVYsVUFBVSxRQUtkO0FBa0JELE1BQU0sT0FBTyxrQkFBa0I7SUFoQi9CO1FBaUJXLFlBQU8sR0FBRyxTQUFTLENBQUE7UUFJNUIsd0JBQW1CLEdBQUcsS0FBSyxDQUFBO0tBbUI1QjtJQWpCQyxJQUFJLFFBQVE7UUFDVixPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQTtJQUNwRCxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsTUFBTSxXQUFXLEdBQ2Ysb0ZBQW9GLENBQUE7UUFFdEYsUUFBUSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckIsS0FBSyxTQUFTO2dCQUNaLE9BQU8sR0FBRyxXQUFXLDRDQUE0QyxDQUFBO1lBQ25FLEtBQUssU0FBUztnQkFDWixPQUFPLEdBQUcsV0FBVyxvQkFBb0IsQ0FBQTtZQUMzQztnQkFDRSxPQUFPLG1CQUFtQixDQUFBO1FBQzlCLENBQUM7SUFDSCxDQUFDOytHQXZCVSxrQkFBa0I7bUdBQWxCLGtCQUFrQiw4SkM1Qy9CLDRYQVdBLDZKRCtCWSxlQUFlLDRHQUFFLFlBQVkscVNBQUUsYUFBYSx1Q0FWdkM7WUFDYixZQUFZLENBQUM7Z0JBQ1gsa0JBQWtCO2dCQUNsQixxQkFBcUI7Z0JBQ3JCLFdBQVc7Z0JBQ1gsaUJBQWlCO2FBQ2xCLENBQUM7U0FDSDs7NEZBS1Usa0JBQWtCO2tCQWhCOUIsU0FBUzsrQkFDRSxrQkFBa0IsaUJBR2I7d0JBQ2IsWUFBWSxDQUFDOzRCQUNYLGtCQUFrQjs0QkFDbEIscUJBQXFCOzRCQUNyQixXQUFXOzRCQUNYLGlCQUFpQjt5QkFDbEIsQ0FBQztxQkFDSCxtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLGFBQWEsQ0FBQzs4QkFHOUMsT0FBTztzQkFBZixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTmdJY29uQ29tcG9uZW50LCBwcm92aWRlSWNvbnMgfSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7XG4gIGljb25vaXJBcHBsZVNob3J0Y3V0cyxcbiAgaWNvbm9pckFwcGxlV2FsbGV0LFxuICBpY29ub2lyQ29kZSxcbiAgaWNvbm9pckNyZWRpdENhcmQsXG59IGZyb20gJ0BuZy1pY29ucy9pY29ub2lyJ1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5cbm1hcmtlcigncmVjb3JkLmtpbmQuZGF0YXNldCcpXG5tYXJrZXIoJ3JlY29yZC5raW5kLnJldXNlJylcbm1hcmtlcigncmVjb3JkLmtpbmQuc2VydmljZScpXG5cbmVudW0gS2luZENvbmZpZyB7XG4gIGFsbCA9ICdpY29ub2lyQXBwbGVXYWxsZXQnLCAvLyAodGhpcyBvbmUgaXMgZm9yIGZpbHRlcilcbiAgZGF0YXNldCA9ICdpY29ub2lyQXBwbGVTaG9ydGN1dHMnLFxuICBzZXJ2aWNlID0gJ2ljb25vaXJDb2RlJyxcbiAgcmV1c2UgPSAnaWNvbm9pckNyZWRpdENhcmQnLFxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1raW5kLWJhZGdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2tpbmQtYmFkZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9raW5kLWJhZGdlLmNvbXBvbmVudC5jc3MnXSxcbiAgdmlld1Byb3ZpZGVyczogW1xuICAgIHByb3ZpZGVJY29ucyh7XG4gICAgICBpY29ub2lyQXBwbGVXYWxsZXQsXG4gICAgICBpY29ub2lyQXBwbGVTaG9ydGN1dHMsXG4gICAgICBpY29ub2lyQ29kZSxcbiAgICAgIGljb25vaXJDcmVkaXRDYXJkLFxuICAgIH0pLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nSWNvbkNvbXBvbmVudCwgQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgS2luZEJhZGdlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgc3R5bGluZyA9ICdkZWZhdWx0J1xuICBASW5wdXQoKSBjb250ZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+XG4gIEBJbnB1dCgpIGtpbmQ6IHN0cmluZ1xuXG4gIGhhc1Byb2plY3RlZENvbnRlbnQgPSBmYWxzZVxuXG4gIGdldCBpY29uS2luZCgpIHtcbiAgICByZXR1cm4gS2luZENvbmZpZ1t0aGlzLmtpbmRdIHx8IEtpbmRDb25maWcuZGF0YXNldFxuICB9XG5cbiAgZ2V0IGJhZGdlQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJhc2VDbGFzc2VzID1cbiAgICAgICdiYWRnZS1idG4gdGV4dC13aGl0ZSB0ZXh0LXhzIHB4LTIgZm9udC1ib2xkIHNocmluay0wIGZsZXggaXRlbXMtY2VudGVyIGgtNiBtaW4taC02J1xuXG4gICAgc3dpdGNoICh0aGlzLnN0eWxpbmcpIHtcbiAgICAgIGNhc2UgJ291dGxpbmUnOlxuICAgICAgICByZXR1cm4gYCR7YmFzZUNsYXNzZXN9IGJnLXRyYW5zcGFyZW50IGJvcmRlciBib3JkZXItd2hpdGUgcHktMS41YFxuICAgICAgY2FzZSAnZGVmYXVsdCc6XG4gICAgICAgIHJldHVybiBgJHtiYXNlQ2xhc3Nlc30gYmctcHJpbWFyeSBweS0wLjVgXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ2ZsZXggaXRlbXMtY2VudGVyJ1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBbY2xhc3NdPVwiYmFkZ2VDbGFzc2VzXCIgKm5nSWY9XCJraW5kXCI+XG4gIDxuZy1pY29uIFtuYW1lXT1cImljb25LaW5kXCIgY2xhc3M9XCJtci0xIHRleHQtWzAuODVlbV1cIj48L25nLWljb24+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRlbnRUZW1wbGF0ZTsgZWxzZSBkZWZhdWx0Q29udGVudFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0Q29udGVudD5cbiAge3sgJ3JlY29yZC5raW5kLicgKyBraW5kIHwgdHJhbnNsYXRlIH19XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -3,10 +3,9 @@ import { CommonModule } from '@angular/common';
3
3
  import { NgIconComponent, provideIcons, provideNgIconsConfig, } from '@ng-icons/core';
4
4
  import { matOpenInNew } from '@ng-icons/material-icons/baseline';
5
5
  import { getBadgeColor, getFileFormat } from '../../../../../../libs/util/shared/src';
6
- import { TranslateModule } from '@ngx-translate/core';
6
+ import { TranslatePipe } from '@ngx-translate/core';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@angular/common";
9
- import * as i2 from "@ngx-translate/core";
10
9
  export class LinkCardComponent {
11
10
  constructor() {
12
11
  this.sizeClassMap = {
@@ -42,11 +41,11 @@ export class LinkCardComponent {
42
41
  matOpenInNew,
43
42
  }),
44
43
  provideNgIconsConfig({ size: '1.5em' }),
45
- ], ngImport: i0, template: "<a\n [href]=\"link.url\"\n target=\"_blank\"\n class=\"group flex flex-row justify-between card-shadow cursor-pointer rounded overflow-hidden\"\n [ngClass]=\"cardClass\"\n [title]=\"title\"\n>\n <div class=\"flex flex-col justify-between flex-1 min-w-0\">\n <div class=\"gn-ui-card-title\">\n {{ link.description || link.name }}\n </div>\n <div class=\"gn-ui-card-detail\">\n {{ link.name }}\n </div>\n <p *ngIf=\"!link.name && !link.description\" class=\"gn-ui-card-title\">\n {{ link.url }}\n </p>\n <div class=\"pt-1\">\n <span\n class=\"inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded transition-opacity opacity-70 group-hover:opacity-100\"\n [style.background-color]=\"getLinkColor(link)\"\n data-cy=\"download-format\"\n >{{\n getLinkFormat(link) || ('downloads.format.unknown' | translate)\n }}</span\n >\n </div>\n </div>\n <div\n class=\"flex min-w-[32px]\"\n [ngClass]=\"size === 'S' ? 'items-end' : 'items-center'\"\n >\n <div class=\"gn-ui-card-icon\">\n <ng-icon\n class=\"inline-block card-icon align-middle\"\n name=\"matOpenInNew\"\n ></ng-icon>\n </div>\n </div>\n</a>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
44
+ ], ngImport: i0, template: "<a\n [href]=\"link.url\"\n target=\"_blank\"\n class=\"group flex flex-row justify-between card-shadow cursor-pointer rounded overflow-hidden\"\n [ngClass]=\"cardClass\"\n [title]=\"title\"\n>\n <div class=\"flex flex-col justify-between flex-1 min-w-0\">\n <div class=\"gn-ui-card-title\">\n {{ link.description || link.name }}\n </div>\n <div class=\"gn-ui-card-detail\">\n {{ link.name }}\n </div>\n <p *ngIf=\"!link.name && !link.description\" class=\"gn-ui-card-title\">\n {{ link.url }}\n </p>\n <div class=\"pt-1\">\n <span\n class=\"inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded transition-opacity opacity-70 group-hover:opacity-100\"\n [style.background-color]=\"getLinkColor(link)\"\n data-cy=\"download-format\"\n >{{\n getLinkFormat(link) || ('downloads.format.unknown' | translate)\n }}</span\n >\n </div>\n </div>\n <div\n class=\"flex min-w-[32px]\"\n [ngClass]=\"size === 'S' ? 'items-end' : 'items-center'\"\n >\n <div class=\"gn-ui-card-icon\">\n <ng-icon\n class=\"inline-block card-icon align-middle\"\n name=\"matOpenInNew\"\n ></ng-icon>\n </div>\n </div>\n</a>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
46
45
  }
47
46
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LinkCardComponent, decorators: [{
48
47
  type: Component,
49
- args: [{ selector: 'gn-ui-link-card', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, NgIconComponent, TranslateModule], providers: [
48
+ args: [{ selector: 'gn-ui-link-card', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, NgIconComponent, TranslatePipe], providers: [
50
49
  provideIcons({
51
50
  matOpenInNew,
52
51
  }),
@@ -57,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
57
56
  }], size: [{
58
57
  type: Input
59
58
  }] } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9saW5rLWNhcmQvbGluay1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9saW5rLWNhcmQvbGluay1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRXpFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQ0wsZUFBZSxFQUNmLFlBQVksRUFDWixvQkFBb0IsR0FDckIsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUNyRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7Ozs7QUFpQnJELE1BQU0sT0FBTyxpQkFBaUI7SUFkOUI7UUFpQm1CLGlCQUFZLEdBQTZCO1lBQ3hELENBQUMsRUFBRSx3QkFBd0I7WUFDM0IsQ0FBQyxFQUFFLHdCQUF3QjtZQUMzQixDQUFDLEVBQUUsa0JBQWtCO1lBQ3JCLEVBQUUsRUFBRSx5QkFBeUI7U0FDOUIsQ0FBQTtRQVNELGNBQVMsR0FBRyxFQUFFLENBQUE7S0FnQmY7SUF2QkMsSUFBYSxJQUFJLENBQUMsS0FBZTtRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtRQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDM0MsQ0FBQztJQUNELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQTtJQUNuQixDQUFDO0lBR0QsSUFBSSxLQUFLO1FBQ1AsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzVDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQ3ZELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQTtJQUN0RCxDQUFDO0lBRUQsYUFBYSxDQUFDLElBQVM7UUFDckIsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDNUIsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFTO1FBQ3BCLE9BQU8sYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQzNDLENBQUM7K0dBaENVLGlCQUFpQjttR0FBakIsaUJBQWlCLHNHQVBqQjtZQUNULFlBQVksQ0FBQztnQkFDWCxZQUFZO2FBQ2IsQ0FBQztZQUNGLG9CQUFvQixDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO1NBQ3hDLDBCQ3pCSCxrd0NBd0NBLHlERHJCWSxZQUFZLGlPQUFFLGVBQWUsNEdBQUUsZUFBZTs7NEZBUTdDLGlCQUFpQjtrQkFkN0IsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGVBQWUsQ0FBQyxhQUM5Qzt3QkFDVCxZQUFZLENBQUM7NEJBQ1gsWUFBWTt5QkFDYixDQUFDO3dCQUNGLG9CQUFvQixDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO3FCQUN4Qzs4QkFJUSxJQUFJO3NCQUFaLEtBQUs7Z0JBUU8sSUFBSTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IERhdGFzZXRPbmxpbmVSZXNvdXJjZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIE5nSWNvbkNvbXBvbmVudCxcbiAgcHJvdmlkZUljb25zLFxuICBwcm92aWRlTmdJY29uc0NvbmZpZyxcbn0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBtYXRPcGVuSW5OZXcgfSBmcm9tICdAbmctaWNvbnMvbWF0ZXJpYWwtaWNvbnMvYmFzZWxpbmUnXG5pbXBvcnQgeyBnZXRCYWRnZUNvbG9yLCBnZXRGaWxlRm9ybWF0IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuXG50eXBlIENhcmRTaXplID0gJ0wnIHwgJ00nIHwgJ1MnIHwgJ1hTJ1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktbGluay1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpbmstY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xpbmstY2FyZC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBOZ0ljb25Db21wb25lbnQsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIHByb3ZpZGVyczogW1xuICAgIHByb3ZpZGVJY29ucyh7XG4gICAgICBtYXRPcGVuSW5OZXcsXG4gICAgfSksXG4gICAgcHJvdmlkZU5nSWNvbnNDb25maWcoeyBzaXplOiAnMS41ZW0nIH0pLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBMaW5rQ2FyZENvbXBvbmVudCB7XG4gIHByaXZhdGUgX3NpemU6IENhcmRTaXplXG4gIEBJbnB1dCgpIGxpbms6IERhdGFzZXRPbmxpbmVSZXNvdXJjZVxuICBwcml2YXRlIHJlYWRvbmx5IHNpemVDbGFzc01hcDogUmVjb3JkPENhcmRTaXplLCBzdHJpbmc+ID0ge1xuICAgIEw6ICdnbi11aS1jYXJkLWwgcHktMiBweC01JyxcbiAgICBNOiAnZ24tdWktY2FyZC1tIHB5LTIgcHgtNScsXG4gICAgUzogJ2duLXVpLWNhcmQtcyBwLTQnLFxuICAgIFhTOiAnZ24tdWktY2FyZC14cyBweS0yIHB4LTUnLFxuICB9XG5cbiAgQElucHV0KCkgc2V0IHNpemUodmFsdWU6IENhcmRTaXplKSB7XG4gICAgdGhpcy5fc2l6ZSA9IHZhbHVlXG4gICAgdGhpcy5jYXJkQ2xhc3MgPSB0aGlzLnNpemVDbGFzc01hcFt2YWx1ZV1cbiAgfVxuICBnZXQgc2l6ZSgpOiBDYXJkU2l6ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3NpemVcbiAgfVxuICBjYXJkQ2xhc3MgPSAnJ1xuXG4gIGdldCB0aXRsZSgpIHtcbiAgICBpZiAodGhpcy5saW5rLm5hbWUgJiYgdGhpcy5saW5rLmRlc2NyaXB0aW9uKSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy5saW5rLm5hbWV9IHwgJHt0aGlzLmxpbmsuZGVzY3JpcHRpb259YFxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5saW5rLm5hbWUgfHwgdGhpcy5saW5rLmRlc2NyaXB0aW9uIHx8ICcnXG4gIH1cblxuICBnZXRMaW5rRm9ybWF0KGxpbms6IGFueSkge1xuICAgIHJldHVybiBnZXRGaWxlRm9ybWF0KGxpbmspXG4gIH1cblxuICBnZXRMaW5rQ29sb3IobGluazogYW55KSB7XG4gICAgcmV0dXJuIGdldEJhZGdlQ29sb3IoZ2V0RmlsZUZvcm1hdChsaW5rKSlcbiAgfVxufVxuIiwiPGFcbiAgW2hyZWZdPVwibGluay51cmxcIlxuICB0YXJnZXQ9XCJfYmxhbmtcIlxuICBjbGFzcz1cImdyb3VwIGZsZXggZmxleC1yb3cganVzdGlmeS1iZXR3ZWVuIGNhcmQtc2hhZG93IGN1cnNvci1wb2ludGVyIHJvdW5kZWQgb3ZlcmZsb3ctaGlkZGVuXCJcbiAgW25nQ2xhc3NdPVwiY2FyZENsYXNzXCJcbiAgW3RpdGxlXT1cInRpdGxlXCJcbj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wganVzdGlmeS1iZXR3ZWVuIGZsZXgtMSBtaW4tdy0wXCI+XG4gICAgPGRpdiBjbGFzcz1cImduLXVpLWNhcmQtdGl0bGVcIj5cbiAgICAgIHt7IGxpbmsuZGVzY3JpcHRpb24gfHwgbGluay5uYW1lIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImduLXVpLWNhcmQtZGV0YWlsXCI+XG4gICAgICB7eyBsaW5rLm5hbWUgfX1cbiAgICA8L2Rpdj5cbiAgICA8cCAqbmdJZj1cIiFsaW5rLm5hbWUgJiYgIWxpbmsuZGVzY3JpcHRpb25cIiBjbGFzcz1cImduLXVpLWNhcmQtdGl0bGVcIj5cbiAgICAgIHt7IGxpbmsudXJsIH19XG4gICAgPC9wPlxuICAgIDxkaXYgY2xhc3M9XCJwdC0xXCI+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBweC0yIHB5LTEgdGV4dC0xMyBmb250LW1lZGl1bSBsZWFkaW5nLW5vbmUgdGV4dC13aGl0ZSByb3VuZGVkIHRyYW5zaXRpb24tb3BhY2l0eSBvcGFjaXR5LTcwIGdyb3VwLWhvdmVyOm9wYWNpdHktMTAwXCJcbiAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZ2V0TGlua0NvbG9yKGxpbmspXCJcbiAgICAgICAgZGF0YS1jeT1cImRvd25sb2FkLWZvcm1hdFwiXG4gICAgICAgID57e1xuICAgICAgICAgIGdldExpbmtGb3JtYXQobGluaykgfHwgKCdkb3dubG9hZHMuZm9ybWF0LnVua25vd24nIHwgdHJhbnNsYXRlKVxuICAgICAgICB9fTwvc3BhblxuICAgICAgPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZmxleCBtaW4tdy1bMzJweF1cIlxuICAgIFtuZ0NsYXNzXT1cInNpemUgPT09ICdTJyA/ICdpdGVtcy1lbmQnIDogJ2l0ZW1zLWNlbnRlcidcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImduLXVpLWNhcmQtaWNvblwiPlxuICAgICAgPG5nLWljb25cbiAgICAgICAgY2xhc3M9XCJpbmxpbmUtYmxvY2sgY2FyZC1pY29uIGFsaWduLW1pZGRsZVwiXG4gICAgICAgIG5hbWU9XCJtYXRPcGVuSW5OZXdcIlxuICAgICAgPjwvbmctaWNvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2E+XG4iXX0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9saW5rLWNhcmQvbGluay1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9saW5rLWNhcmQvbGluay1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRXpFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQ0wsZUFBZSxFQUNmLFlBQVksRUFDWixvQkFBb0IsR0FDckIsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUNyRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUE7OztBQWlCbkQsTUFBTSxPQUFPLGlCQUFpQjtJQWQ5QjtRQWlCbUIsaUJBQVksR0FBNkI7WUFDeEQsQ0FBQyxFQUFFLHdCQUF3QjtZQUMzQixDQUFDLEVBQUUsd0JBQXdCO1lBQzNCLENBQUMsRUFBRSxrQkFBa0I7WUFDckIsRUFBRSxFQUFFLHlCQUF5QjtTQUM5QixDQUFBO1FBU0QsY0FBUyxHQUFHLEVBQUUsQ0FBQTtLQWdCZjtJQXZCQyxJQUFhLElBQUksQ0FBQyxLQUFlO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0lBQ0QsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFBO0lBQ25CLENBQUM7SUFHRCxJQUFJLEtBQUs7UUFDUCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDNUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUE7UUFDdkQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFBO0lBQ3RELENBQUM7SUFFRCxhQUFhLENBQUMsSUFBUztRQUNyQixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUM1QixDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVM7UUFDcEIsT0FBTyxhQUFhLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDM0MsQ0FBQzsrR0FoQ1UsaUJBQWlCO21HQUFqQixpQkFBaUIsc0dBUGpCO1lBQ1QsWUFBWSxDQUFDO2dCQUNYLFlBQVk7YUFDYixDQUFDO1lBQ0Ysb0JBQW9CLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7U0FDeEMsMEJDekJILGt3Q0F3Q0EseUREckJZLFlBQVksaU9BQUUsZUFBZSx3R0FBRSxhQUFhOzs0RkFRM0MsaUJBQWlCO2tCQWQ3QixTQUFTOytCQUNFLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsYUFBYSxDQUFDLGFBQzVDO3dCQUNULFlBQVksQ0FBQzs0QkFDWCxZQUFZO3lCQUNiLENBQUM7d0JBQ0Ysb0JBQW9CLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7cUJBQ3hDOzhCQUlRLElBQUk7c0JBQVosS0FBSztnQkFRTyxJQUFJO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRGF0YXNldE9ubGluZVJlc291cmNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHtcbiAgTmdJY29uQ29tcG9uZW50LFxuICBwcm92aWRlSWNvbnMsXG4gIHByb3ZpZGVOZ0ljb25zQ29uZmlnLFxufSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IG1hdE9wZW5Jbk5ldyB9IGZyb20gJ0BuZy1pY29ucy9tYXRlcmlhbC1pY29ucy9iYXNlbGluZSdcbmltcG9ydCB7IGdldEJhZGdlQ29sb3IsIGdldEZpbGVGb3JtYXQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuXG50eXBlIENhcmRTaXplID0gJ0wnIHwgJ00nIHwgJ1MnIHwgJ1hTJ1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktbGluay1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpbmstY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xpbmstY2FyZC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBOZ0ljb25Db21wb25lbnQsIFRyYW5zbGF0ZVBpcGVdLFxuICBwcm92aWRlcnM6IFtcbiAgICBwcm92aWRlSWNvbnMoe1xuICAgICAgbWF0T3BlbkluTmV3LFxuICAgIH0pLFxuICAgIHByb3ZpZGVOZ0ljb25zQ29uZmlnKHsgc2l6ZTogJzEuNWVtJyB9KSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTGlua0NhcmRDb21wb25lbnQge1xuICBwcml2YXRlIF9zaXplOiBDYXJkU2l6ZVxuICBASW5wdXQoKSBsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2VcbiAgcHJpdmF0ZSByZWFkb25seSBzaXplQ2xhc3NNYXA6IFJlY29yZDxDYXJkU2l6ZSwgc3RyaW5nPiA9IHtcbiAgICBMOiAnZ24tdWktY2FyZC1sIHB5LTIgcHgtNScsXG4gICAgTTogJ2duLXVpLWNhcmQtbSBweS0yIHB4LTUnLFxuICAgIFM6ICdnbi11aS1jYXJkLXMgcC00JyxcbiAgICBYUzogJ2duLXVpLWNhcmQteHMgcHktMiBweC01JyxcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBzaXplKHZhbHVlOiBDYXJkU2l6ZSkge1xuICAgIHRoaXMuX3NpemUgPSB2YWx1ZVxuICAgIHRoaXMuY2FyZENsYXNzID0gdGhpcy5zaXplQ2xhc3NNYXBbdmFsdWVdXG4gIH1cbiAgZ2V0IHNpemUoKTogQ2FyZFNpemUge1xuICAgIHJldHVybiB0aGlzLl9zaXplXG4gIH1cbiAgY2FyZENsYXNzID0gJydcblxuICBnZXQgdGl0bGUoKSB7XG4gICAgaWYgKHRoaXMubGluay5uYW1lICYmIHRoaXMubGluay5kZXNjcmlwdGlvbikge1xuICAgICAgcmV0dXJuIGAke3RoaXMubGluay5uYW1lfSB8ICR7dGhpcy5saW5rLmRlc2NyaXB0aW9ufWBcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubGluay5uYW1lIHx8IHRoaXMubGluay5kZXNjcmlwdGlvbiB8fCAnJ1xuICB9XG5cbiAgZ2V0TGlua0Zvcm1hdChsaW5rOiBhbnkpIHtcbiAgICByZXR1cm4gZ2V0RmlsZUZvcm1hdChsaW5rKVxuICB9XG5cbiAgZ2V0TGlua0NvbG9yKGxpbms6IGFueSkge1xuICAgIHJldHVybiBnZXRCYWRnZUNvbG9yKGdldEZpbGVGb3JtYXQobGluaykpXG4gIH1cbn1cbiIsIjxhXG4gIFtocmVmXT1cImxpbmsudXJsXCJcbiAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgY2xhc3M9XCJncm91cCBmbGV4IGZsZXgtcm93IGp1c3RpZnktYmV0d2VlbiBjYXJkLXNoYWRvdyBjdXJzb3ItcG9pbnRlciByb3VuZGVkIG92ZXJmbG93LWhpZGRlblwiXG4gIFtuZ0NsYXNzXT1cImNhcmRDbGFzc1wiXG4gIFt0aXRsZV09XCJ0aXRsZVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGp1c3RpZnktYmV0d2VlbiBmbGV4LTEgbWluLXctMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJnbi11aS1jYXJkLXRpdGxlXCI+XG4gICAgICB7eyBsaW5rLmRlc2NyaXB0aW9uIHx8IGxpbmsubmFtZSB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJnbi11aS1jYXJkLWRldGFpbFwiPlxuICAgICAge3sgbGluay5uYW1lIH19XG4gICAgPC9kaXY+XG4gICAgPHAgKm5nSWY9XCIhbGluay5uYW1lICYmICFsaW5rLmRlc2NyaXB0aW9uXCIgY2xhc3M9XCJnbi11aS1jYXJkLXRpdGxlXCI+XG4gICAgICB7eyBsaW5rLnVybCB9fVxuICAgIDwvcD5cbiAgICA8ZGl2IGNsYXNzPVwicHQtMVwiPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHgtMiBweS0xIHRleHQtMTMgZm9udC1tZWRpdW0gbGVhZGluZy1ub25lIHRleHQtd2hpdGUgcm91bmRlZCB0cmFuc2l0aW9uLW9wYWNpdHkgb3BhY2l0eS03MCBncm91cC1ob3ZlcjpvcGFjaXR5LTEwMFwiXG4gICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImdldExpbmtDb2xvcihsaW5rKVwiXG4gICAgICAgIGRhdGEtY3k9XCJkb3dubG9hZC1mb3JtYXRcIlxuICAgICAgICA+e3tcbiAgICAgICAgICBnZXRMaW5rRm9ybWF0KGxpbmspIHx8ICgnZG93bmxvYWRzLmZvcm1hdC51bmtub3duJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgfX08L3NwYW5cbiAgICAgID5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cImZsZXggbWluLXctWzMycHhdXCJcbiAgICBbbmdDbGFzc109XCJzaXplID09PSAnUycgPyAnaXRlbXMtZW5kJyA6ICdpdGVtcy1jZW50ZXInXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJnbi11aS1jYXJkLWljb25cIj5cbiAgICAgIDxuZy1pY29uXG4gICAgICAgIGNsYXNzPVwiaW5saW5lLWJsb2NrIGNhcmQtaWNvbiBhbGlnbi1taWRkbGVcIlxuICAgICAgICBuYW1lPVwibWF0T3BlbkluTmV3XCJcbiAgICAgID48L25nLWljb24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9hPlxuIl19