geonetwork-ui 2.6.0-dev.01d2b5fc0 → 2.6.0-dev.01f702fed

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 (387) hide show
  1. package/esm2022/libs/api/metadata-converter/src/index.mjs +2 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/base.converter.mjs +1 -1
  3. package/esm2022/libs/api/metadata-converter/src/lib/common/resource-types.mjs +17 -15
  4. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +8 -3
  5. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +3 -3
  6. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +4 -4
  7. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +2 -10
  8. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +18 -11
  9. package/esm2022/libs/api/repository/src/lib/gn4/gn4.provider.mjs +7 -1
  10. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  11. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +7 -3
  12. package/esm2022/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.mjs +2 -2
  13. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +2 -1
  14. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +7 -3
  15. package/esm2022/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.mjs +2 -3
  16. package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +1 -1
  17. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +5 -5
  18. package/esm2022/libs/feature/map/src/lib/map-state-container/map-state-container.component.mjs +2 -2
  19. package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +2 -4
  20. package/esm2022/libs/feature/record/src/index.mjs +1 -2
  21. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +3 -3
  22. package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +5 -9
  23. package/esm2022/libs/feature/record/src/lib/data-view-share/data-view-share.component.mjs +3 -3
  24. package/esm2022/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.mjs +7 -11
  25. package/esm2022/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.mjs +6 -3
  26. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +45 -14
  27. package/esm2022/libs/feature/record/src/lib/record-meta/record-meta.component.mjs +1 -1
  28. package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +8 -5
  29. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +4 -6
  30. package/esm2022/libs/feature/router/src/lib/default/constants.mjs +3 -1
  31. package/esm2022/libs/feature/router/src/lib/default/router.config.mjs +1 -1
  32. package/esm2022/libs/feature/router/src/lib/default/router.service.mjs +10 -2
  33. package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +9 -3
  34. package/esm2022/libs/feature/search/src/index.mjs +2 -2
  35. package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +8 -7
  36. package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +13 -19
  37. package/esm2022/libs/feature/search/src/lib/record-url.token.mjs +4 -2
  38. package/esm2022/libs/feature/search/src/lib/results-hits/results-hits.container.component.mjs +41 -0
  39. package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +26 -10
  40. package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +70 -1
  41. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +4 -3
  42. package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +3 -3
  43. package/esm2022/libs/ui/elements/src/index.mjs +4 -1
  44. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +27 -6
  45. package/esm2022/libs/ui/elements/src/lib/download-item/download-item.component.mjs +22 -6
  46. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +18 -7
  47. package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +3 -3
  48. package/esm2022/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.mjs +163 -0
  49. package/esm2022/libs/ui/elements/src/lib/kind-badge/kind-badge.component.mjs +51 -0
  50. package/esm2022/libs/ui/elements/src/lib/link-card/link-card.component.mjs +29 -7
  51. package/esm2022/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.mjs +3 -3
  52. package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +3 -3
  53. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +8 -5
  54. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +3 -3
  55. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +3 -2
  56. package/esm2022/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.mjs +161 -0
  57. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +22 -4
  58. package/esm2022/libs/ui/inputs/src/index.mjs +2 -2
  59. package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +2 -2
  60. package/esm2022/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.mjs +3 -3
  61. package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +3 -3
  62. package/esm2022/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.mjs +42 -0
  63. package/esm2022/libs/ui/inputs/src/lib/inline-filter/inline-filter.model.mjs +2 -0
  64. package/esm2022/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.mjs +4 -3
  65. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +8 -9
  66. package/esm2022/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.mjs +43 -3
  67. package/esm2022/libs/ui/layout/src/lib/block-list/block-list.component.mjs +48 -11
  68. package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +3 -3
  69. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +15 -3
  70. package/esm2022/libs/ui/layout/src/lib/max-lines/max-lines.component.mjs +3 -3
  71. package/esm2022/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.mjs +6 -6
  72. package/esm2022/libs/ui/layout/src/lib/ui-layout.module.mjs +4 -12
  73. package/esm2022/libs/ui/map/src/index.mjs +2 -1
  74. package/esm2022/libs/ui/map/src/lib/components/map-container/map-container.component.mjs +14 -3
  75. package/esm2022/libs/ui/map/src/lib/components/map-legend/map-legend.component.mjs +5 -1
  76. package/esm2022/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.mjs +79 -0
  77. package/esm2022/libs/ui/search/src/index.mjs +2 -1
  78. package/esm2022/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.mjs +3 -3
  79. package/esm2022/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.mjs +53 -0
  80. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +5 -4
  81. package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +11 -3
  82. package/esm2022/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.mjs +3 -3
  83. package/esm2022/libs/util/app-config/src/lib/app-config.mjs +2 -1
  84. package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +2 -1
  85. package/esm2022/libs/util/data-fetcher/src/lib/data-fetcher.mjs +6 -2
  86. package/esm2022/libs/util/data-fetcher/src/lib/model.mjs +4 -1
  87. package/esm2022/libs/util/data-fetcher/src/lib/readers/wfs.mjs +30 -2
  88. package/esm2022/libs/util/shared/src/index.mjs +2 -1
  89. package/esm2022/libs/util/shared/src/lib/gn-ui-version.mjs +6 -0
  90. package/esm2022/libs/util/shared/src/lib/links/link-classifier.service.mjs +2 -1
  91. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +33 -24
  92. package/esm2022/translations/de.json +39 -4
  93. package/esm2022/translations/en.json +40 -5
  94. package/esm2022/translations/es.json +39 -4
  95. package/esm2022/translations/fr.json +40 -5
  96. package/esm2022/translations/it.json +39 -5
  97. package/esm2022/translations/nl.json +39 -4
  98. package/esm2022/translations/pt.json +39 -4
  99. package/fesm2022/geonetwork-ui.mjs +1771 -634
  100. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  101. package/libs/api/metadata-converter/src/index.d.ts +1 -0
  102. package/libs/api/metadata-converter/src/index.d.ts.map +1 -1
  103. package/libs/api/metadata-converter/src/lib/base.converter.d.ts.map +1 -1
  104. package/libs/api/metadata-converter/src/lib/common/resource-types.d.ts +21 -0
  105. package/libs/api/metadata-converter/src/lib/common/resource-types.d.ts.map +1 -1
  106. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  107. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  108. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +1 -0
  109. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  110. package/libs/api/repository/src/lib/gn4/gn4.provider.d.ts.map +1 -1
  111. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +23 -4
  112. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  113. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  114. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  115. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +2 -2
  116. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  117. package/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.d.ts.map +1 -1
  118. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts +6 -6
  119. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts.map +1 -1
  120. 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
  121. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
  122. package/libs/feature/record/src/index.d.ts +0 -1
  123. package/libs/feature/record/src/index.d.ts.map +1 -1
  124. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +9 -1
  125. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  126. package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts +2 -3
  127. package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts.map +1 -1
  128. package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts +1 -2
  129. package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts.map +1 -1
  130. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts +2 -1
  131. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts.map +1 -1
  132. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +7 -2
  133. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  134. package/libs/feature/record/src/lib/record-meta/record-meta.component.d.ts +2 -2
  135. package/libs/feature/record/src/lib/state/mdview.effects.d.ts +3 -1
  136. package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
  137. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +7 -7
  138. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  139. package/libs/feature/router/src/lib/default/constants.d.ts +2 -0
  140. package/libs/feature/router/src/lib/default/constants.d.ts.map +1 -1
  141. package/libs/feature/router/src/lib/default/router.config.d.ts +2 -0
  142. package/libs/feature/router/src/lib/default/router.config.d.ts.map +1 -1
  143. package/libs/feature/router/src/lib/default/router.service.d.ts.map +1 -1
  144. package/libs/feature/router/src/lib/default/state/router.facade.d.ts +5 -0
  145. package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
  146. package/libs/feature/search/src/index.d.ts +1 -1
  147. package/libs/feature/search/src/index.d.ts.map +1 -1
  148. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts.map +1 -1
  149. package/libs/feature/search/src/lib/feature-search.module.d.ts +4 -2
  150. package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
  151. package/libs/feature/search/src/lib/record-url.token.d.ts +3 -1
  152. package/libs/feature/search/src/lib/record-url.token.d.ts.map +1 -1
  153. package/libs/feature/search/src/lib/results-hits/results-hits.container.component.d.ts +21 -0
  154. package/libs/feature/search/src/lib/results-hits/results-hits.container.component.d.ts.map +1 -0
  155. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts +5 -3
  156. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts.map +1 -1
  157. package/libs/feature/search/src/lib/utils/service/fields.d.ts +21 -0
  158. package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
  159. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  160. package/libs/ui/elements/src/index.d.ts +3 -0
  161. package/libs/ui/elements/src/index.d.ts.map +1 -1
  162. package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts +9 -1
  163. package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts.map +1 -1
  164. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts +8 -1
  165. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts.map +1 -1
  166. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +7 -1
  167. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
  168. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts +43 -0
  169. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -0
  170. package/libs/ui/elements/src/lib/kind-badge/kind-badge.component.d.ts +11 -0
  171. package/libs/ui/elements/src/lib/kind-badge/kind-badge.component.d.ts.map +1 -0
  172. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts +10 -2
  173. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts.map +1 -1
  174. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +2 -2
  175. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
  176. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  177. package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts +30 -0
  178. package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts.map +1 -0
  179. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +4 -1
  180. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  181. package/libs/ui/inputs/src/index.d.ts +1 -1
  182. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  183. package/libs/ui/inputs/src/lib/button/button.component.d.ts +1 -1
  184. package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
  185. package/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.d.ts +14 -0
  186. package/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.d.ts.map +1 -0
  187. package/libs/ui/inputs/src/lib/inline-filter/inline-filter.model.d.ts +6 -0
  188. package/libs/ui/inputs/src/lib/inline-filter/inline-filter.model.d.ts.map +1 -0
  189. package/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.d.ts.map +1 -1
  190. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +25 -24
  191. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  192. package/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.d.ts +10 -3
  193. package/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.d.ts.map +1 -1
  194. package/libs/ui/layout/src/lib/block-list/block-list.component.d.ts +9 -2
  195. package/libs/ui/layout/src/lib/block-list/block-list.component.d.ts.map +1 -1
  196. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts +2 -0
  197. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -1
  198. package/libs/ui/layout/src/lib/ui-layout.module.d.ts.map +1 -1
  199. package/libs/ui/map/src/index.d.ts +1 -0
  200. package/libs/ui/map/src/index.d.ts.map +1 -1
  201. package/libs/ui/map/src/lib/components/map-container/map-container.component.d.ts +4 -2
  202. package/libs/ui/map/src/lib/components/map-container/map-container.component.d.ts.map +1 -1
  203. package/libs/ui/map/src/lib/components/map-legend/map-legend.component.d.ts.map +1 -1
  204. package/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.d.ts +15 -0
  205. package/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.d.ts.map +1 -0
  206. package/libs/ui/search/src/index.d.ts +1 -0
  207. package/libs/ui/search/src/index.d.ts.map +1 -1
  208. package/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.d.ts +17 -0
  209. package/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.d.ts.map +1 -0
  210. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  211. package/libs/ui/search/src/lib/ui-search.module.d.ts +21 -19
  212. package/libs/ui/search/src/lib/ui-search.module.d.ts.map +1 -1
  213. package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
  214. package/libs/util/app-config/src/lib/fixtures.d.ts.map +1 -1
  215. package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts.map +1 -1
  216. package/libs/util/data-fetcher/src/lib/model.d.ts +3 -2
  217. package/libs/util/data-fetcher/src/lib/model.d.ts.map +1 -1
  218. package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts +1 -0
  219. package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts.map +1 -1
  220. package/libs/util/shared/src/index.d.ts +1 -0
  221. package/libs/util/shared/src/index.d.ts.map +1 -1
  222. package/libs/util/shared/src/lib/gn-ui-version.d.ts +3 -0
  223. package/libs/util/shared/src/lib/gn-ui-version.d.ts.map +1 -0
  224. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts +3 -3
  225. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts.map +1 -1
  226. package/libs/util/shared/src/lib/links/link-utils.d.ts +30 -23
  227. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  228. package/package.json +1 -1
  229. package/src/libs/api/metadata-converter/src/index.ts +1 -0
  230. package/src/libs/api/metadata-converter/src/lib/base.converter.ts +1 -4
  231. package/src/libs/api/metadata-converter/src/lib/common/resource-types.ts +29 -15
  232. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.service+eaux-usees.ts +2 -2
  233. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +2 -2
  234. package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +2 -2
  235. package/src/libs/api/metadata-converter/src/lib/fixtures/wallonie.records.service+napitswallonia.ts +2 -2
  236. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +8 -2
  237. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +2 -2
  238. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +3 -3
  239. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +1 -9
  240. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +20 -12
  241. package/src/libs/api/repository/src/lib/gn4/gn4.provider.ts +6 -0
  242. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +22 -3
  243. package/src/libs/common/fixtures/src/lib/elasticsearch/metadata-links.fixtures.ts +26 -26
  244. package/src/libs/common/fixtures/src/lib/link.fixtures.ts +2 -2
  245. package/src/libs/common/fixtures/src/lib/record-link.fixtures.ts +5 -5
  246. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +18 -2
  247. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.html +1 -0
  248. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +4 -0
  249. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +1 -0
  250. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.html +10 -8
  251. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +4 -0
  252. package/src/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.ts +1 -2
  253. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +2 -2
  254. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +2 -2
  255. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +2 -2
  256. package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +1 -3
  257. package/src/libs/feature/record/src/index.ts +0 -1
  258. package/src/libs/feature/record/src/lib/data-view/data-view.component.html +14 -10
  259. package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +2 -3
  260. package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.html +1 -1
  261. package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts +4 -5
  262. package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.html +2 -2
  263. package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.ts +1 -0
  264. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +22 -15
  265. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +41 -7
  266. package/src/libs/feature/record/src/lib/record-meta/record-meta.component.ts +2 -2
  267. package/src/libs/feature/record/src/lib/state/mdview.effects.ts +5 -3
  268. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +4 -7
  269. package/src/libs/feature/router/src/lib/default/constants.ts +2 -0
  270. package/src/libs/feature/router/src/lib/default/router.config.ts +2 -0
  271. package/src/libs/feature/router/src/lib/default/router.service.ts +10 -0
  272. package/src/libs/feature/router/src/lib/default/state/router.facade.ts +10 -1
  273. package/src/libs/feature/search/src/index.ts +1 -1
  274. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.html +1 -7
  275. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +16 -8
  276. package/src/libs/feature/search/src/lib/feature-search.module.ts +9 -10
  277. package/src/libs/feature/search/src/lib/record-url.token.ts +10 -1
  278. package/src/libs/feature/search/src/lib/results-hits/results-hits.container.component.html +16 -0
  279. package/src/libs/feature/search/src/lib/results-hits/results-hits.container.component.ts +59 -0
  280. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.css +6 -0
  281. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.html +1 -0
  282. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +24 -5
  283. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +4 -5
  284. package/src/libs/feature/search/src/lib/utils/service/fields.ts +99 -0
  285. package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.html +1 -1
  286. package/src/libs/ui/elements/src/index.ts +3 -0
  287. package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +64 -38
  288. package/src/libs/ui/elements/src/lib/api-card/api-card.component.ts +26 -2
  289. package/src/libs/ui/elements/src/lib/download-item/download-item.component.html +21 -18
  290. package/src/libs/ui/elements/src/lib/download-item/download-item.component.ts +20 -2
  291. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +42 -10
  292. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +29 -2
  293. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.html +1 -1
  294. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.css +0 -0
  295. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +156 -0
  296. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +190 -0
  297. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.css +6 -0
  298. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.html +9 -0
  299. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.ts +51 -0
  300. package/src/libs/ui/elements/src/lib/link-card/link-card.component.html +30 -29
  301. package/src/libs/ui/elements/src/lib/link-card/link-card.component.ts +28 -2
  302. package/src/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.html +3 -5
  303. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +9 -9
  304. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.css +9 -0
  305. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +20 -7
  306. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +12 -4
  307. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +3 -2
  308. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +2 -1
  309. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.css +0 -0
  310. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.html +96 -0
  311. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts +183 -0
  312. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +9 -0
  313. package/src/libs/ui/inputs/src/index.ts +1 -1
  314. package/src/libs/ui/inputs/src/lib/button/button.component.ts +2 -2
  315. package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.html +1 -1
  316. package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.html +1 -1
  317. package/src/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.html +23 -0
  318. package/src/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.ts +44 -0
  319. package/src/libs/ui/inputs/src/lib/inline-filter/inline-filter.model.ts +5 -0
  320. package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.html +6 -6
  321. package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.ts +2 -1
  322. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +3 -3
  323. package/src/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.ts +46 -2
  324. package/src/libs/ui/layout/src/lib/block-list/block-list.component.css +22 -0
  325. package/src/libs/ui/layout/src/lib/block-list/block-list.component.html +2 -2
  326. package/src/libs/ui/layout/src/lib/block-list/block-list.component.ts +43 -5
  327. package/src/libs/ui/layout/src/lib/carousel/carousel.component.css +0 -5
  328. package/src/libs/ui/layout/src/lib/carousel/carousel.component.html +1 -1
  329. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +3 -7
  330. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +13 -0
  331. package/src/libs/ui/layout/src/lib/max-lines/max-lines.component.html +1 -1
  332. package/src/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.html +17 -5
  333. package/src/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.ts +3 -3
  334. package/src/libs/ui/layout/src/lib/ui-layout.module.ts +1 -5
  335. package/src/libs/ui/map/src/index.ts +1 -0
  336. package/src/libs/ui/map/src/lib/components/map-container/map-container.component.ts +14 -0
  337. package/src/libs/ui/map/src/lib/components/map-legend/map-legend.component.ts +3 -0
  338. package/src/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.css +0 -0
  339. package/src/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.html +4 -0
  340. package/src/libs/{feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.ts → ui/map/src/lib/components/spatial-extent/spatial-extent.component.ts} +7 -8
  341. package/src/libs/ui/search/src/index.ts +1 -0
  342. package/src/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.html +1 -1
  343. package/src/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.html +24 -0
  344. package/src/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.ts +53 -0
  345. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +7 -4
  346. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +2 -1
  347. package/src/libs/ui/search/src/lib/ui-search.module.ts +5 -0
  348. package/src/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.html +4 -3
  349. package/src/libs/util/app-config/src/lib/app-config.ts +1 -0
  350. package/src/libs/util/app-config/src/lib/fixtures.ts +1 -0
  351. package/src/libs/util/data-fetcher/src/lib/data-fetcher.ts +3 -1
  352. package/src/libs/util/data-fetcher/src/lib/model.ts +11 -1
  353. package/src/libs/util/data-fetcher/src/lib/readers/wfs.ts +29 -3
  354. package/src/libs/util/shared/src/index.ts +1 -0
  355. package/src/libs/util/shared/src/lib/gn-ui-version.ts +8 -0
  356. package/src/libs/util/shared/src/lib/links/link-classifier.service.ts +12 -3
  357. package/src/libs/util/shared/src/lib/links/link-utils.ts +50 -30
  358. package/tailwind.base.config.js +3 -0
  359. package/tailwind.base.css +39 -13
  360. package/translations/de.json +39 -4
  361. package/translations/en.json +40 -5
  362. package/translations/es.json +39 -4
  363. package/translations/fr.json +40 -5
  364. package/translations/it.json +39 -5
  365. package/translations/nl.json +39 -4
  366. package/translations/pt.json +39 -4
  367. package/translations/sk.json +39 -4
  368. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.mjs +0 -79
  369. package/esm2022/libs/feature/record/src/lib/gn-ui-version.token.mjs +0 -3
  370. package/esm2022/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.mjs +0 -18
  371. package/esm2022/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.mjs +0 -16
  372. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts +0 -15
  373. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts.map +0 -1
  374. package/libs/feature/record/src/lib/gn-ui-version.token.d.ts +0 -3
  375. package/libs/feature/record/src/lib/gn-ui-version.token.d.ts.map +0 -1
  376. package/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.d.ts +0 -9
  377. package/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.d.ts.map +0 -1
  378. package/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.d.ts +0 -8
  379. package/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.d.ts.map +0 -1
  380. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.html +0 -1
  381. package/src/libs/feature/record/src/lib/gn-ui-version.token.ts +0 -3
  382. package/src/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.html +0 -4
  383. package/src/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.ts +0 -10
  384. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.css +0 -3
  385. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.html +0 -9
  386. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.ts +0 -15
  387. /package/src/libs/feature/{editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.css → search/src/lib/results-hits/results-hits.container.component.css} +0 -0
@@ -3,7 +3,7 @@ import { fromEvent, merge, of, timer } from 'rxjs';
3
3
  import { delay, map, startWith, switchMap } from 'rxjs/operators';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import { TranslateModule } from '@ngx-translate/core';
6
- import { computeMapContextDiff, FeaturesClickEventType, FeaturesHoverEventType, MapClickEventType, } from '@geospatial-sdk/core';
6
+ import { computeMapContextDiff, FeaturesClickEventType, FeaturesHoverEventType, MapClickEventType, SourceLoadErrorType, } from '@geospatial-sdk/core';
7
7
  import { applyContextDiffToMap, createMapFromContext, listen, } from '@geospatial-sdk/openlayers';
8
8
  import { BASEMAP_LAYERS, DO_NOT_USE_DEFAULT_BASEMAP, MAP_VIEW_CONSTRAINTS, } from './map-settings.token';
9
9
  import { NgIconComponent, provideIcons, provideNgIconsConfig, } from '@ng-icons/core';
@@ -48,6 +48,15 @@ export class MapContainerComponent {
48
48
  }
49
49
  return this._mapClick;
50
50
  }
51
+ get sourceLoadError() {
52
+ if (!this._sourceLoadError) {
53
+ this.openlayersMap.then((olMap) => {
54
+ listen(olMap, SourceLoadErrorType, (error) => this._sourceLoadError.emit(error));
55
+ });
56
+ this._sourceLoadError = new EventEmitter();
57
+ }
58
+ return this._sourceLoadError;
59
+ }
51
60
  constructor(doNotUseDefaultBasemap, basemapLayers, mapViewConstraints) {
52
61
  this.doNotUseDefaultBasemap = doNotUseDefaultBasemap;
53
62
  this.basemapLayers = basemapLayers;
@@ -108,7 +117,7 @@ export class MapContainerComponent {
108
117
  return processed;
109
118
  }
110
119
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapContainerComponent, deps: [{ token: DO_NOT_USE_DEFAULT_BASEMAP }, { token: BASEMAP_LAYERS }, { token: MAP_VIEW_CONSTRAINTS }], target: i0.ɵɵFactoryTarget.Component }); }
111
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MapContainerComponent, isStandalone: true, selector: "gn-ui-map-container", inputs: { context: "context" }, outputs: { featuresClick: "featuresClick", featuresHover: "featuresHover", mapClick: "mapClick" }, providers: [
120
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MapContainerComponent, isStandalone: true, selector: "gn-ui-map-container", inputs: { context: "context" }, outputs: { featuresClick: "featuresClick", featuresHover: "featuresHover", mapClick: "mapClick", sourceLoadError: "sourceLoadError" }, providers: [
112
121
  provideIcons({ matSwipeOutline }),
113
122
  provideNgIconsConfig({
114
123
  size: '1.5em',
@@ -140,8 +149,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
140
149
  type: Output
141
150
  }], mapClick: [{
142
151
  type: Output
152
+ }], sourceLoadError: [{
153
+ type: Output
143
154
  }], container: [{
144
155
  type: ViewChild,
145
156
  args: ['map']
146
157
  }] } });
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL21hcC9zcmMvbGliL2NvbXBvbmVudHMvbWFwLWNvbnRhaW5lci9tYXAtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbWFwL3NyYy9saWIvY29tcG9uZW50cy9tYXAtY29udGFpbmVyL21hcC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUM5RCxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQ0wscUJBQXFCLEVBR3JCLHNCQUFzQixFQUV0QixzQkFBc0IsRUFFdEIsaUJBQWlCLEdBS2xCLE1BQU0sc0JBQXNCLENBQUE7QUFDN0IsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixvQkFBb0IsRUFDcEIsTUFBTSxHQUNQLE1BQU0sNEJBQTRCLENBQUE7QUFHbkMsT0FBTyxFQUNMLGNBQWMsRUFDZCwwQkFBMEIsRUFDMUIsb0JBQW9CLEdBQ3JCLE1BQU0sc0JBQXNCLENBQUE7QUFDN0IsT0FBTyxFQUNMLGVBQWUsRUFDZixZQUFZ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Q0FyRHJCLE9BQU87c0JBQWYsS0FBSztnQkFJUSxhQUFhO3NCQUExQixNQUFNO2dCQWVPLGFBQWE7c0JBQTFCLE1BQU07Z0JBZU8sUUFBUTtzQkFBckIsTUFBTTtnQkFZVyxTQUFTO3NCQUExQixTQUFTO3VCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1lcmdlLCBPYnNlcnZhYmxlLCBvZiwgdGltZXIgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZGVsYXksIG1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQge1xuICBjb21wdXRlTWFwQ29udGV4dERpZmYsXG4gIEV4dGVudCxcbiAgRmVhdHVyZXNDbGlja0V2ZW50LFxuICBGZWF0dXJlc0NsaWNrRXZlbnRUeXBlLFxuICBGZWF0dXJlc0hvdmVyRXZlbnQsXG4gIEZlYXR1cmVzSG92ZXJFdmVudFR5cGUsXG4gIE1hcENsaWNrRXZlbnQsXG4gIE1hcENsaWNrRXZlbnRUeXBlLFxuICBNYXBDb250ZXh0LFxuICBNYXBDb250ZXh0TGF5ZXIsXG4gIE1hcENvbnRleHRMYXllclh5eixcbiAgTWFwQ29udGV4dFZpZXcsXG59IGZyb20gJ0BnZW9zcGF0aWFsLXNkay9jb3JlJ1xuaW1wb3J0IHtcbiAgYXBwbHlDb250ZXh0RGlmZlRvTWFwLFxuICBjcmVhdGVNYXBGcm9tQ29udGV4dCxcbiAgbGlzdGVuLFxufSBmcm9tICdAZ2Vvc3BhdGlhbC1zZGsvb3BlbmxheWVycydcbmltcG9ydCB0eXBlIE9sTWFwIGZyb20gJ29sL01hcCdcbmltcG9ydCB0eXBlIHsgRmVhdHVyZSB9IGZyb20gJ2dlb2pzb24nXG5pbXBvcnQge1xuICBCQVNFTUFQX0xBWUVSUyxcbiAgRE9fTk9UX1VTRV9ERUZBVUxUX0JBU0VNQVAsXG4gIE1BUF9WSUVXX0NPTlNUUkFJTlRTLFxufSBmcm9tICcuL21hcC1zZXR0aW5ncy50b2tlbidcbmltcG9ydCB7XG4gIE5nSWNvbkNvbXBvbmVudCxcbiAgcHJvdmlkZUljb25zLFxuICBwcm92aWRlTmdJY29uc0NvbmZpZyxcbn0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBtYXRTd2lwZU91dGxpbmUgfSBmcm9tICdAbmctaWNvbnMvbWF0ZXJpYWwtaWNvbnMvb3V0bGluZSdcblxuY29uc3QgREVGQVVMVF9CQVNFTUFQX0xBWUVSOiBNYXBDb250ZXh0TGF5ZXJYeXogPSB7XG4gIHR5cGU6ICd4eXonLFxuICB1cmw6IGBodHRwczovL3thLWN9LmJhc2VtYXBzLmNhcnRvY2RuLmNvbS9yYXN0ZXJ0aWxlcy92b3lhZ2VyL3t6fS97eH0ve3l9LnBuZ2AsXG4gIGF0dHJpYnV0aW9uczogYDxzcGFuPsKpIDxhIGhyZWY9XCJodHRwOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodFwiPk9wZW5TdHJlZXRNYXA8L2E+IGNvbnRyaWJ1dG9ycywgwqkgPGEgaHJlZj1cImh0dHBzOi8vY2FydG8uY29tL1wiPkNhcnRvPC9hPjwvc3Bhbj5gLFxufVxuXG5jb25zdCBERUZBVUxUX1ZJRVc6IE1hcENvbnRleHRWaWV3ID0ge1xuICBjZW50ZXI6IFswLCAxNV0sXG4gIHpvb206IDIsXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLW1hcC1jb250YWluZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFwLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21hcC1jb250YWluZXIuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBOZ0ljb25Db21wb25lbnRdLFxuICBwcm92aWRlcnM6IFtcbiAgICBwcm92aWRlSWNvbnMoeyBtYXRTd2lwZU91dGxpbmUgfSksXG4gICAgcHJvdmlkZU5nSWNvbnNDb25maWcoe1xuICAgICAgc2l6ZTogJzEuNWVtJyxcbiAgICB9KSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTWFwQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgY29udGV4dDogTWFwQ29udGV4dCB8IG51bGxcblxuICAvLyB0aGVzZSBldmVudHMgb25seSBnZXQgcmVnaXN0ZXJlZCBvbiB0aGUgbWFwIGlmIHRoZXkgYXJlIHVzZWRcbiAgX2ZlYXR1cmVzQ2xpY2s6IEV2ZW50RW1pdHRlcjxGZWF0dXJlW10+XG4gIEBPdXRwdXQoKSBnZXQgZmVhdHVyZXNDbGljaygpIHtcbiAgICBpZiAoIXRoaXMuX2ZlYXR1cmVzQ2xpY2spIHtcbiAgICAgIHRoaXMub3BlbmxheWVyc01hcC50aGVuKChvbE1hcCkgPT4ge1xuICAgICAgICBsaXN0ZW4oXG4gICAgICAgICAgb2xNYXAsXG4gICAgICAgICAgRmVhdHVyZXNDbGlja0V2ZW50VHlwZSxcbiAgICAgICAgICAoeyBmZWF0dXJlcyB9OiBGZWF0dXJlc0NsaWNrRXZlbnQpID0+XG4gICAgICAgICAgICB0aGlzLl9mZWF0dXJlc0NsaWNrLmVtaXQoZmVhdHVyZXMpXG4gICAgICAgIClcbiAgICAgIH0pXG4gICAgICB0aGlzLl9mZWF0dXJlc0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxGZWF0dXJlW10+KClcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2ZlYXR1cmVzQ2xpY2tcbiAgfVxuICBfZmVhdHVyZXNIb3ZlcjogRXZlbnRFbWl0dGVyPEZlYXR1cmVbXT5cbiAgQE91dHB1dCgpIGdldCBmZWF0dXJlc0hvdmVyKCkge1xuICAgIGlmICghdGhpcy5fZmVhdHVyZXNIb3Zlcikge1xuICAgICAgdGhpcy5vcGVubGF5ZXJzTWFwLnRoZW4oKG9sTWFwKSA9PiB7XG4gICAgICAgIGxpc3RlbihcbiAgICAgICAgICBvbE1hcCxcbiAgICAgICAgICBGZWF0dXJlc0hvdmVyRXZlbnRUeXBlLFxuICAgICAgICAgICh7IGZlYXR1cmVzIH06IEZlYXR1cmVzSG92ZXJFdmVudCkgPT5cbiAgICAgICAgICAgIHRoaXMuX2ZlYXR1cmVzSG92ZXIuZW1pdChmZWF0dXJlcylcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICAgIHRoaXMuX2ZlYXR1cmVzSG92ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEZlYXR1cmVbXT4oKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fZmVhdHVyZXNIb3ZlclxuICB9XG4gIF9tYXBDbGljazogRXZlbnRFbWl0dGVyPFtudW1iZXIsIG51bWJlcl0+XG4gIEBPdXRwdXQoKSBnZXQgbWFwQ2xpY2soKSB7XG4gICAgaWYgKCF0aGlzLl9tYXBDbGljaykge1xuICAgICAgdGhpcy5vcGVubGF5ZXJzTWFwLnRoZW4oKG9sTWFwKSA9PiB7XG4gICAgICAgIGxpc3RlbihvbE1hcCwgTWFwQ2xpY2tFdmVudFR5cGUsICh7IGNvb3JkaW5hdGUgfTogTWFwQ2xpY2tFdmVudCkgPT5cbiAgICAgICAgICB0aGlzLl9tYXBDbGljay5lbWl0KGNvb3JkaW5hdGUpXG4gICAgICAgIClcbiAgICAgIH0pXG4gICAgICB0aGlzLl9tYXBDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8W251bWJlciwgbnVtYmVyXT4oKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fbWFwQ2xpY2tcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ21hcCcpIGNvbnRhaW5lcjogRWxlbWVudFJlZlxuICBkaXNwbGF5TWVzc2FnZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj5cbiAgb2xNYXA6IE9sTWFwXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChET19OT1RfVVNFX0RFRkFVTFRfQkFTRU1BUCkgcHJpdmF0ZSBkb05vdFVzZURlZmF1bHRCYXNlbWFwOiBib29sZWFuLFxuICAgIEBJbmplY3QoQkFTRU1BUF9MQVlFUlMpIHByaXZhdGUgYmFzZW1hcExheWVyczogTWFwQ29udGV4dExheWVyW10sXG4gICAgQEluamVjdChNQVBfVklFV19DT05TVFJBSU5UUylcbiAgICBwcml2YXRlIG1hcFZpZXdDb25zdHJhaW50czoge1xuICAgICAgbWF4Wm9vbT86IG51bWJlclxuICAgICAgbWF4RXh0ZW50PzogRXh0ZW50XG4gICAgfVxuICApIHt9XG5cbiAgcHJpdmF0ZSBvbE1hcFJlc29sdmVyXG4gIG9wZW5sYXllcnNNYXAgPSBuZXcgUHJvbWlzZTxPbE1hcD4oKHJlc29sdmUpID0+IHtcbiAgICB0aGlzLm9sTWFwUmVzb2x2ZXIgPSByZXNvbHZlXG4gIH0pXG5cbiAgYXN5bmMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMub2xNYXAgPSBhd2FpdCBjcmVhdGVNYXBGcm9tQ29udGV4dChcbiAgICAgIHRoaXMucHJvY2Vzc0NvbnRleHQodGhpcy5jb250ZXh0KSxcbiAgICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnRcbiAgICApXG4gICAgdGhpcy5kaXNwbGF5TWVzc2FnZSQgPSBtZXJnZShcbiAgICAgIGZyb21FdmVudCh0aGlzLm9sTWFwLCAnbWFwbXV0ZWQnKS5waXBlKG1hcCgoKSA9PiB0cnVlKSksXG4gICAgICBmcm9tRXZlbnQodGhpcy5vbE1hcCwgJ21vdmVzdGFydCcpLnBpcGUobWFwKCgpID0+IGZhbHNlKSksXG4gICAgICBmcm9tRXZlbnQodGhpcy5vbE1hcCwgJ3NpbmdsZWNsaWNrJykucGlwZShtYXAoKCkgPT4gZmFsc2UpKVxuICAgICkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgobXV0ZWQpID0+XG4gICAgICAgIG11dGVkXG4gICAgICAgICAgPyB0aW1lcigyMDAwKS5waXBlKFxuICAgICAgICAgICAgICBtYXAoKCkgPT4gZmFsc2UpLFxuICAgICAgICAgICAgICBzdGFydFdpdGgodHJ1ZSksXG4gICAgICAgICAgICAgIGRlbGF5KDQwMClcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IG9mKGZhbHNlKVxuICAgICAgKVxuICAgIClcbiAgICB0aGlzLm9sTWFwUmVzb2x2ZXIodGhpcy5vbE1hcClcbiAgfVxuXG4gIGFzeW5jIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoJ2NvbnRleHQnIGluIGNoYW5nZXMgJiYgIWNoYW5nZXNbJ2NvbnRleHQnXS5pc0ZpcnN0Q2hhbmdlKCkpIHtcbiAgICAgIGNvbnN0IGRpZmYgPSBjb21wdXRlTWFwQ29udGV4dERpZmYoXG4gICAgICAgIHRoaXMucHJvY2Vzc0NvbnRleHQoY2hhbmdlc1snY29udGV4dCddLmN1cnJlbnRWYWx1ZSksXG4gICAgICAgIHRoaXMucHJvY2Vzc0NvbnRleHQoY2hhbmdlc1snY29udGV4dCddLnByZXZpb3VzVmFsdWUpXG4gICAgICApXG4gICAgICBhd2FpdCBhcHBseUNvbnRleHREaWZmVG9NYXAodGhpcy5vbE1hcCwgZGlmZilcbiAgICB9XG4gIH1cblxuICAvLyBUaGlzIHdpbGwgYXBwbHkgYmFzZW1hcCBsYXllcnMgJiB2aWV3IGNvbnN0cmFpbnRzXG4gIHByb2Nlc3NDb250ZXh0KGNvbnRleHQ6IE1hcENvbnRleHQpOiBNYXBDb250ZXh0IHtcbiAgICBjb25zdCBwcm9jZXNzZWQgPSBjb250ZXh0XG4gICAgICA/IHsgLi4uY29udGV4dCwgdmlldzogY29udGV4dC52aWV3ID8/IERFRkFVTFRfVklFVyB9XG4gICAgICA6IHsgbGF5ZXJzOiBbXSwgdmlldzogREVGQVVMVF9WSUVXIH1cbiAgICBpZiAodGhpcy5iYXNlbWFwTGF5ZXJzLmxlbmd0aCkge1xuICAgICAgcHJvY2Vzc2VkLmxheWVycyA9IFsuLi50aGlzLmJhc2VtYXBMYXllcnMsIC4uLnByb2Nlc3NlZC5sYXllcnNdXG4gICAgfVxuICAgIGlmICghdGhpcy5kb05vdFVzZURlZmF1bHRCYXNlbWFwKSB7XG4gICAgICBwcm9jZXNzZWQubGF5ZXJzID0gW0RFRkFVTFRfQkFTRU1BUF9MQVlFUiwgLi4ucHJvY2Vzc2VkLmxheWVyc11cbiAgICB9XG4gICAgaWYgKHRoaXMubWFwVmlld0NvbnN0cmFpbnRzLm1heFpvb20pIHtcbiAgICAgIHByb2Nlc3NlZC52aWV3ID0ge1xuICAgICAgICBtYXhab29tOiB0aGlzLm1hcFZpZXdDb25zdHJhaW50cy5tYXhab29tLFxuICAgICAgICAuLi5wcm9jZXNzZWQudmlldyxcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMubWFwVmlld0NvbnN0cmFpbnRzLm1heEV4dGVudCkge1xuICAgICAgcHJvY2Vzc2VkLnZpZXcgPSB7XG4gICAgICAgIG1heEV4dGVudDogdGhpcy5tYXBWaWV3Q29uc3RyYWludHMubWF4RXh0ZW50LFxuICAgICAgICAuLi5wcm9jZXNzZWQudmlldyxcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKFxuICAgICAgcHJvY2Vzc2VkLnZpZXcgJiZcbiAgICAgICEoJ3pvb20nIGluIHByb2Nlc3NlZC52aWV3KSAmJlxuICAgICAgISgnY2VudGVyJyBpbiBwcm9jZXNzZWQudmlldylcbiAgICApIHtcbiAgICAgIGlmICh0aGlzLm1hcFZpZXdDb25zdHJhaW50cy5tYXhFeHRlbnQpIHtcbiAgICAgICAgcHJvY2Vzc2VkLnZpZXcgPSB7XG4gICAgICAgICAgZXh0ZW50OiB0aGlzLm1hcFZpZXdDb25zdHJhaW50cy5tYXhFeHRlbnQsXG4gICAgICAgICAgLi4ucHJvY2Vzc2VkLnZpZXcsXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHByb2Nlc3NlZC52aWV3ID0geyAuLi5ERUZBVUxUX1ZJRVcsIC4uLnByb2Nlc3NlZC52aWV3IH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHByb2Nlc3NlZFxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaC1mdWxsIHctZnVsbFwiICNtYXA+PC9kaXY+XG48ZGl2XG4gIGNsYXNzPVwiYWJzb2x1dGUgaW5zZXQtMCBwLTIgcm91bmRlZCB6LTQwIHRyYW5zaXRpb24tYWxsIGZsZXggZmxleC1jb2wganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyIHRleHQtcHJpbWFyeSBmb250LXNhbnMgcG9pbnRlci1ldmVudHMtbm9uZVwiXG4gIFtuZ0NsYXNzXT1cIlxuICAgIChkaXNwbGF5TWVzc2FnZSQgfCBhc3luYykgPyAndmlzaWJsZSBvcGFjaXR5LTEwMCcgOiAnaW52aXNpYmxlIG9wYWNpdHktMCdcbiAgXCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYWJzb2x1dGUgei1bLTFdIGluc2V0LTAgYmctZ3JhZGllbnQtdG8tYiBmcm9tLXdoaXRlIHRvLXByaW1hcnktbGlnaHRlc3Qgb3BhY2l0eS02MFwiXG4gID48L2Rpdj5cbiAgPG5nLWljb25cbiAgICBjbGFzcz1cIiF3LTE2ICFoLTE2IHRleHQtWzY0cHhdIG1iLTRcIlxuICAgIG5hbWU9XCJtYXRTd2lwZU91dGxpbmVcIlxuICA+PC9uZy1pY29uPlxuICA8cCB0cmFuc2xhdGU+bWFwLm5hdmlnYXRpb24ubWVzc2FnZTwvcD5cbjwvZGl2PlxuIl19
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL21hcC9zcmMvbGliL2NvbXBvbmVudHMvbWFwLWNvbnRhaW5lci9tYXAtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbWFwL3NyYy9saWIvY29tcG9uZW50cy9tYXAtY29udGFpbmVyL21hcC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUM5RCxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQ0wscUJBQXFCLEVBR3JCLHNCQUFzQixFQUV0QixzQkFBc0IsRUFFdEIsaUJBQWlCLEVBTWpCLG1CQUFtQixHQUNwQixNQUFNLHNCQUFzQixDQUFBO0FBQzdCLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLE1BQU0sR0FDUCxNQUFNLDRCQUE0QixDQUFBO0FBR25DLE9BQU8sRUFDTCxjQUFjLEVBQ2QsMEJBQTBCLEVBQzFCLG9CQUFvQixHQUNyQixNQUFNLHNCQUFzQixDQUFBO0FBQzdCLE9BQU8sRUFDTCxlQUFlLEVBQ2YsWUFBWSxFQUNaLG9CQUFvQixHQUNyQixNQUFNLGdCQUFnQixDQUFBO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTs7OztBQUVsRSxNQUFNLHFCQUFxQixHQUF1QjtJQUNoRCxJQUFJLEVBQUUsS0FBSztJQUNYLEdBQUcsRUFBRSx5RUFBeUU7SUFDOUUsWUFBWSxFQUFFLDBJQUEwSTtDQUN6SixDQUFBO0FBRUQsTUFBTSxZQUFZLEdBQW1CO0lBQ25DLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDZixJQUFJLEVBQUUsQ0FBQztDQUNSLENBQUE7QUFnQkQsTUFBTSxPQUFPLHFCQUFxQjtJQUtoQyxJQUFjLGFBQWE7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNoQyxNQUFNLENBQ0osS0FBSyxFQUNMLHNCQUFzQixFQUN0QixDQUFDLEVBQUUsUUFBUSxFQUFzQixFQUFFLEVBQUUsQ0FDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQ3JDLENBQUE7WUFDSCxDQUFDLENBQUMsQ0FBQTtZQUNGLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQTtRQUNyRCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFBO0lBQzVCLENBQUM7SUFFRCxJQUFjLGFBQWE7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNoQyxNQUFNLENBQ0osS0FBSyxFQUNMLHNCQUFzQixFQUN0QixDQUFDLEVBQUUsUUFBUSxFQUFzQixFQUFFLEVBQUUsQ0FDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQ3JDLENBQUE7WUFDSCxDQUFDLENBQUMsQ0FBQTtZQUNGLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQTtRQUNyRCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFBO0lBQzVCLENBQUM7SUFFRCxJQUFjLFFBQVE7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNoQyxNQUFNLENBQUMsS0FBSyxFQUFFLGlCQUFpQixFQUFFLENBQUMsRUFBRSxVQUFVLEVBQWlCLEVBQUUsRUFBRSxDQUNqRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FDaEMsQ0FBQTtZQUNILENBQUMsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLFlBQVksRUFBb0IsQ0FBQTtRQUN2RCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFBO0lBQ3ZCLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2hDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxLQUEyQixFQUFFLEVBQUUsQ0FDakUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FDbEMsQ0FBQTtZQUNILENBQUMsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksWUFBWSxFQUF3QixDQUFBO1FBQ2xFLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQTtJQUM5QixDQUFDO0lBTUQsWUFDOEMsc0JBQStCLEVBQzNDLGFBQWdDLEVBRXhELGtCQUdQO1FBTjJDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBUztRQUMzQyxrQkFBYSxHQUFiLGFBQWEsQ0FBbUI7UUFFeEQsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUd6QjtRQUlILGtCQUFhLEdBQUcsSUFBSSxPQUFPLENBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUM3QyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQTtRQUM5QixDQUFDLENBQUMsQ0FBQTtJQUxDLENBQUM7SUFPSixLQUFLLENBQUMsZUFBZTtRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sb0JBQW9CLENBQ3JDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUNqQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FDN0IsQ0FBQTtRQUNELElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUMxQixTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ3ZELFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDekQsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUM1RCxDQUFDLElBQUksQ0FDSixTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNsQixLQUFLO1lBQ0gsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQ2QsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUNoQixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQ2YsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUNYO1lBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FDZCxDQUNGLENBQUE7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNoQyxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFzQjtRQUN0QyxJQUFJLFNBQVMsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUNoRSxNQUFNLElBQUksR0FBRyxxQkFBcUIsQ0FDaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQ3BELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUN0RCxDQUFBO1lBQ0QsTUFBTSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQy9DLENBQUM7SUFDSCxDQUFDO0lBRUQsb0RBQW9EO0lBQ3BELGNBQWMsQ0FBQyxPQUFtQjtRQUNoQyxNQUFNLFNBQVMsR0FBRyxPQUFPO1lBQ3ZCLENBQUMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxJQUFJLFlBQVksRUFBRTtZQUNwRCxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQTtRQUN0QyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDOUIsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNqRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQ2pDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNqRSxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEMsU0FBUyxDQUFDLElBQUksR0FBRztnQkFDZixPQUFPLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU87Z0JBQ3hDLEdBQUcsU0FBUyxDQUFDLElBQUk7YUFDbEIsQ0FBQTtRQUNILENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN0QyxTQUFTLENBQUMsSUFBSSxHQUFHO2dCQUNmLFNBQVMsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUztnQkFDNUMsR0FBRyxTQUFTLENBQUMsSUFBSTthQUNsQixDQUFBO1FBQ0gsQ0FBQztRQUNELElBQ0UsU0FBUyxDQUFDLElBQUk7WUFDZCxDQUFDLENBQUMsTUFBTSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUM7WUFDM0IsQ0FBQyxDQUFDLFFBQVEsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQzdCLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDdEMsU0FBUyxDQUFDLElBQUksR0FBRztvQkFDZixNQUFNLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVM7b0JBQ3pDLEdBQUcsU0FBUyxDQUFDLElBQUk7aUJBQ2xCLENBQUE7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sU0FBUyxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsWUFBWSxFQUFFLEdBQUcsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFBO1lBQ3pELENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUE7SUFDbEIsQ0FBQzsrR0FySlUscUJBQXFCLGtCQWdFdEIsMEJBQTBCLGFBQzFCLGNBQWMsYUFDZCxvQkFBb0I7bUdBbEVuQixxQkFBcUIseU9BUHJCO1lBQ1QsWUFBWSxDQUFDLEVBQUUsZUFBZSxFQUFFLENBQUM7WUFDakMsb0JBQW9CLENBQUM7Z0JBQ25CLElBQUksRUFBRSxPQUFPO2FBQ2QsQ0FBQztTQUNILGlKQzNFSCwwakJBZ0JBLHlERHFEWSxZQUFZLGlMQUFFLGVBQWUsc0tBQUUsZUFBZTs7NEZBUTdDLHFCQUFxQjtrQkFkakMsU0FBUzsrQkFDRSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGVBQWUsQ0FBQyxhQUM5Qzt3QkFDVCxZQUFZLENBQUMsRUFBRSxlQUFlLEVBQUUsQ0FBQzt3QkFDakMsb0JBQW9CLENBQUM7NEJBQ25CLElBQUksRUFBRSxPQUFPO3lCQUNkLENBQUM7cUJBQ0g7OzBCQWtFRSxNQUFNOzJCQUFDLDBCQUEwQjs7MEJBQ2pDLE1BQU07MkJBQUMsY0FBYzs7MEJBQ3JCLE1BQU07MkJBQUMsb0JBQW9CO3lDQWpFckIsT0FBTztzQkFBZixLQUFLO2dCQUlRLGFBQWE7c0JBQTFCLE1BQU07Z0JBZU8sYUFBYTtzQkFBMUIsTUFBTTtnQkFlTyxRQUFRO3NCQUFyQixNQUFNO2dCQVlPLGVBQWU7c0JBQTVCLE1BQU07Z0JBWVcsU0FBUztzQkFBMUIsU0FBUzt1QkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YsIHRpbWVyIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGRlbGF5LCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHtcbiAgY29tcHV0ZU1hcENvbnRleHREaWZmLFxuICBFeHRlbnQsXG4gIEZlYXR1cmVzQ2xpY2tFdmVudCxcbiAgRmVhdHVyZXNDbGlja0V2ZW50VHlwZSxcbiAgRmVhdHVyZXNIb3ZlckV2ZW50LFxuICBGZWF0dXJlc0hvdmVyRXZlbnRUeXBlLFxuICBNYXBDbGlja0V2ZW50LFxuICBNYXBDbGlja0V2ZW50VHlwZSxcbiAgTWFwQ29udGV4dCxcbiAgTWFwQ29udGV4dExheWVyLFxuICBNYXBDb250ZXh0TGF5ZXJYeXosXG4gIE1hcENvbnRleHRWaWV3LFxuICBTb3VyY2VMb2FkRXJyb3JFdmVudCxcbiAgU291cmNlTG9hZEVycm9yVHlwZSxcbn0gZnJvbSAnQGdlb3NwYXRpYWwtc2RrL2NvcmUnXG5pbXBvcnQge1xuICBhcHBseUNvbnRleHREaWZmVG9NYXAsXG4gIGNyZWF0ZU1hcEZyb21Db250ZXh0LFxuICBsaXN0ZW4sXG59IGZyb20gJ0BnZW9zcGF0aWFsLXNkay9vcGVubGF5ZXJzJ1xuaW1wb3J0IHR5cGUgT2xNYXAgZnJvbSAnb2wvTWFwJ1xuaW1wb3J0IHR5cGUgeyBGZWF0dXJlIH0gZnJvbSAnZ2VvanNvbidcbmltcG9ydCB7XG4gIEJBU0VNQVBfTEFZRVJTLFxuICBET19OT1RfVVNFX0RFRkFVTFRfQkFTRU1BUCxcbiAgTUFQX1ZJRVdfQ09OU1RSQUlOVFMsXG59IGZyb20gJy4vbWFwLXNldHRpbmdzLnRva2VuJ1xuaW1wb3J0IHtcbiAgTmdJY29uQ29tcG9uZW50LFxuICBwcm92aWRlSWNvbnMsXG4gIHByb3ZpZGVOZ0ljb25zQ29uZmlnLFxufSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IG1hdFN3aXBlT3V0bGluZSB9IGZyb20gJ0BuZy1pY29ucy9tYXRlcmlhbC1pY29ucy9vdXRsaW5lJ1xuXG5jb25zdCBERUZBVUxUX0JBU0VNQVBfTEFZRVI6IE1hcENvbnRleHRMYXllclh5eiA9IHtcbiAgdHlwZTogJ3h5eicsXG4gIHVybDogYGh0dHBzOi8ve2EtY30uYmFzZW1hcHMuY2FydG9jZG4uY29tL3Jhc3RlcnRpbGVzL3ZveWFnZXIve3p9L3t4fS97eX0ucG5nYCxcbiAgYXR0cmlidXRpb25zOiBgPHNwYW4+wqkgPGEgaHJlZj1cImh0dHA6Ly93d3cub3BlbnN0cmVldG1hcC5vcmcvY29weXJpZ2h0XCI+T3BlblN0cmVldE1hcDwvYT4gY29udHJpYnV0b3JzLCDCqSA8YSBocmVmPVwiaHR0cHM6Ly9jYXJ0by5jb20vXCI+Q2FydG88L2E+PC9zcGFuPmAsXG59XG5cbmNvbnN0IERFRkFVTFRfVklFVzogTWFwQ29udGV4dFZpZXcgPSB7XG4gIGNlbnRlcjogWzAsIDE1XSxcbiAgem9vbTogMixcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktbWFwLWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYXAtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFwLWNvbnRhaW5lci5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIE5nSWNvbkNvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHByb3ZpZGVJY29ucyh7IG1hdFN3aXBlT3V0bGluZSB9KSxcbiAgICBwcm92aWRlTmdJY29uc0NvbmZpZyh7XG4gICAgICBzaXplOiAnMS41ZW0nLFxuICAgIH0pLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBNYXBDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBjb250ZXh0OiBNYXBDb250ZXh0IHwgbnVsbFxuXG4gIC8vIHRoZXNlIGV2ZW50cyBvbmx5IGdldCByZWdpc3RlcmVkIG9uIHRoZSBtYXAgaWYgdGhleSBhcmUgdXNlZFxuICBfZmVhdHVyZXNDbGljazogRXZlbnRFbWl0dGVyPEZlYXR1cmVbXT5cbiAgQE91dHB1dCgpIGdldCBmZWF0dXJlc0NsaWNrKCkge1xuICAgIGlmICghdGhpcy5fZmVhdHVyZXNDbGljaykge1xuICAgICAgdGhpcy5vcGVubGF5ZXJzTWFwLnRoZW4oKG9sTWFwKSA9PiB7XG4gICAgICAgIGxpc3RlbihcbiAgICAgICAgICBvbE1hcCxcbiAgICAgICAgICBGZWF0dXJlc0NsaWNrRXZlbnRUeXBlLFxuICAgICAgICAgICh7IGZlYXR1cmVzIH06IEZlYXR1cmVzQ2xpY2tFdmVudCkgPT5cbiAgICAgICAgICAgIHRoaXMuX2ZlYXR1cmVzQ2xpY2suZW1pdChmZWF0dXJlcylcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICAgIHRoaXMuX2ZlYXR1cmVzQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEZlYXR1cmVbXT4oKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fZmVhdHVyZXNDbGlja1xuICB9XG4gIF9mZWF0dXJlc0hvdmVyOiBFdmVudEVtaXR0ZXI8RmVhdHVyZVtdPlxuICBAT3V0cHV0KCkgZ2V0IGZlYXR1cmVzSG92ZXIoKSB7XG4gICAgaWYgKCF0aGlzLl9mZWF0dXJlc0hvdmVyKSB7XG4gICAgICB0aGlzLm9wZW5sYXllcnNNYXAudGhlbigob2xNYXApID0+IHtcbiAgICAgICAgbGlzdGVuKFxuICAgICAgICAgIG9sTWFwLFxuICAgICAgICAgIEZlYXR1cmVzSG92ZXJFdmVudFR5cGUsXG4gICAgICAgICAgKHsgZmVhdHVyZXMgfTogRmVhdHVyZXNIb3ZlckV2ZW50KSA9PlxuICAgICAgICAgICAgdGhpcy5fZmVhdHVyZXNIb3Zlci5lbWl0KGZlYXR1cmVzKVxuICAgICAgICApXG4gICAgICB9KVxuICAgICAgdGhpcy5fZmVhdHVyZXNIb3ZlciA9IG5ldyBFdmVudEVtaXR0ZXI8RmVhdHVyZVtdPigpXG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9mZWF0dXJlc0hvdmVyXG4gIH1cbiAgX21hcENsaWNrOiBFdmVudEVtaXR0ZXI8W251bWJlciwgbnVtYmVyXT5cbiAgQE91dHB1dCgpIGdldCBtYXBDbGljaygpIHtcbiAgICBpZiAoIXRoaXMuX21hcENsaWNrKSB7XG4gICAgICB0aGlzLm9wZW5sYXllcnNNYXAudGhlbigob2xNYXApID0+IHtcbiAgICAgICAgbGlzdGVuKG9sTWFwLCBNYXBDbGlja0V2ZW50VHlwZSwgKHsgY29vcmRpbmF0ZSB9OiBNYXBDbGlja0V2ZW50KSA9PlxuICAgICAgICAgIHRoaXMuX21hcENsaWNrLmVtaXQoY29vcmRpbmF0ZSlcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICAgIHRoaXMuX21hcENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxbbnVtYmVyLCBudW1iZXJdPigpXG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9tYXBDbGlja1xuICB9XG4gIF9zb3VyY2VMb2FkRXJyb3I6IEV2ZW50RW1pdHRlcjxTb3VyY2VMb2FkRXJyb3JFdmVudD5cbiAgQE91dHB1dCgpIGdldCBzb3VyY2VMb2FkRXJyb3IoKSB7XG4gICAgaWYgKCF0aGlzLl9zb3VyY2VMb2FkRXJyb3IpIHtcbiAgICAgIHRoaXMub3BlbmxheWVyc01hcC50aGVuKChvbE1hcCkgPT4ge1xuICAgICAgICBsaXN0ZW4ob2xNYXAsIFNvdXJjZUxvYWRFcnJvclR5cGUsIChlcnJvcjogU291cmNlTG9hZEVycm9yRXZlbnQpID0+XG4gICAgICAgICAgdGhpcy5fc291cmNlTG9hZEVycm9yLmVtaXQoZXJyb3IpXG4gICAgICAgIClcbiAgICAgIH0pXG4gICAgICB0aGlzLl9zb3VyY2VMb2FkRXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPFNvdXJjZUxvYWRFcnJvckV2ZW50PigpXG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9zb3VyY2VMb2FkRXJyb3JcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ21hcCcpIGNvbnRhaW5lcjogRWxlbWVudFJlZlxuICBkaXNwbGF5TWVzc2FnZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj5cbiAgb2xNYXA6IE9sTWFwXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChET19OT1RfVVNFX0RFRkFVTFRfQkFTRU1BUCkgcHJpdmF0ZSBkb05vdFVzZURlZmF1bHRCYXNlbWFwOiBib29sZWFuLFxuICAgIEBJbmplY3QoQkFTRU1BUF9MQVlFUlMpIHByaXZhdGUgYmFzZW1hcExheWVyczogTWFwQ29udGV4dExheWVyW10sXG4gICAgQEluamVjdChNQVBfVklFV19DT05TVFJBSU5UUylcbiAgICBwcml2YXRlIG1hcFZpZXdDb25zdHJhaW50czoge1xuICAgICAgbWF4Wm9vbT86IG51bWJlclxuICAgICAgbWF4RXh0ZW50PzogRXh0ZW50XG4gICAgfVxuICApIHt9XG5cbiAgcHJpdmF0ZSBvbE1hcFJlc29sdmVyXG4gIG9wZW5sYXllcnNNYXAgPSBuZXcgUHJvbWlzZTxPbE1hcD4oKHJlc29sdmUpID0+IHtcbiAgICB0aGlzLm9sTWFwUmVzb2x2ZXIgPSByZXNvbHZlXG4gIH0pXG5cbiAgYXN5bmMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMub2xNYXAgPSBhd2FpdCBjcmVhdGVNYXBGcm9tQ29udGV4dChcbiAgICAgIHRoaXMucHJvY2Vzc0NvbnRleHQodGhpcy5jb250ZXh0KSxcbiAgICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnRcbiAgICApXG4gICAgdGhpcy5kaXNwbGF5TWVzc2FnZSQgPSBtZXJnZShcbiAgICAgIGZyb21FdmVudCh0aGlzLm9sTWFwLCAnbWFwbXV0ZWQnKS5waXBlKG1hcCgoKSA9PiB0cnVlKSksXG4gICAgICBmcm9tRXZlbnQodGhpcy5vbE1hcCwgJ21vdmVzdGFydCcpLnBpcGUobWFwKCgpID0+IGZhbHNlKSksXG4gICAgICBmcm9tRXZlbnQodGhpcy5vbE1hcCwgJ3NpbmdsZWNsaWNrJykucGlwZShtYXAoKCkgPT4gZmFsc2UpKVxuICAgICkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgobXV0ZWQpID0+XG4gICAgICAgIG11dGVkXG4gICAgICAgICAgPyB0aW1lcigyMDAwKS5waXBlKFxuICAgICAgICAgICAgICBtYXAoKCkgPT4gZmFsc2UpLFxuICAgICAgICAgICAgICBzdGFydFdpdGgodHJ1ZSksXG4gICAgICAgICAgICAgIGRlbGF5KDQwMClcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IG9mKGZhbHNlKVxuICAgICAgKVxuICAgIClcbiAgICB0aGlzLm9sTWFwUmVzb2x2ZXIodGhpcy5vbE1hcClcbiAgfVxuXG4gIGFzeW5jIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoJ2NvbnRleHQnIGluIGNoYW5nZXMgJiYgIWNoYW5nZXNbJ2NvbnRleHQnXS5pc0ZpcnN0Q2hhbmdlKCkpIHtcbiAgICAgIGNvbnN0IGRpZmYgPSBjb21wdXRlTWFwQ29udGV4dERpZmYoXG4gICAgICAgIHRoaXMucHJvY2Vzc0NvbnRleHQoY2hhbmdlc1snY29udGV4dCddLmN1cnJlbnRWYWx1ZSksXG4gICAgICAgIHRoaXMucHJvY2Vzc0NvbnRleHQoY2hhbmdlc1snY29udGV4dCddLnByZXZpb3VzVmFsdWUpXG4gICAgICApXG4gICAgICBhd2FpdCBhcHBseUNvbnRleHREaWZmVG9NYXAodGhpcy5vbE1hcCwgZGlmZilcbiAgICB9XG4gIH1cblxuICAvLyBUaGlzIHdpbGwgYXBwbHkgYmFzZW1hcCBsYXllcnMgJiB2aWV3IGNvbnN0cmFpbnRzXG4gIHByb2Nlc3NDb250ZXh0KGNvbnRleHQ6IE1hcENvbnRleHQpOiBNYXBDb250ZXh0IHtcbiAgICBjb25zdCBwcm9jZXNzZWQgPSBjb250ZXh0XG4gICAgICA/IHsgLi4uY29udGV4dCwgdmlldzogY29udGV4dC52aWV3ID8/IERFRkFVTFRfVklFVyB9XG4gICAgICA6IHsgbGF5ZXJzOiBbXSwgdmlldzogREVGQVVMVF9WSUVXIH1cbiAgICBpZiAodGhpcy5iYXNlbWFwTGF5ZXJzLmxlbmd0aCkge1xuICAgICAgcHJvY2Vzc2VkLmxheWVycyA9IFsuLi50aGlzLmJhc2VtYXBMYXllcnMsIC4uLnByb2Nlc3NlZC5sYXllcnNdXG4gICAgfVxuICAgIGlmICghdGhpcy5kb05vdFVzZURlZmF1bHRCYXNlbWFwKSB7XG4gICAgICBwcm9jZXNzZWQubGF5ZXJzID0gW0RFRkFVTFRfQkFTRU1BUF9MQVlFUiwgLi4ucHJvY2Vzc2VkLmxheWVyc11cbiAgICB9XG4gICAgaWYgKHRoaXMubWFwVmlld0NvbnN0cmFpbnRzLm1heFpvb20pIHtcbiAgICAgIHByb2Nlc3NlZC52aWV3ID0ge1xuICAgICAgICBtYXhab29tOiB0aGlzLm1hcFZpZXdDb25zdHJhaW50cy5tYXhab29tLFxuICAgICAgICAuLi5wcm9jZXNzZWQudmlldyxcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMubWFwVmlld0NvbnN0cmFpbnRzLm1heEV4dGVudCkge1xuICAgICAgcHJvY2Vzc2VkLnZpZXcgPSB7XG4gICAgICAgIG1heEV4dGVudDogdGhpcy5tYXBWaWV3Q29uc3RyYWludHMubWF4RXh0ZW50LFxuICAgICAgICAuLi5wcm9jZXNzZWQudmlldyxcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKFxuICAgICAgcHJvY2Vzc2VkLnZpZXcgJiZcbiAgICAgICEoJ3pvb20nIGluIHByb2Nlc3NlZC52aWV3KSAmJlxuICAgICAgISgnY2VudGVyJyBpbiBwcm9jZXNzZWQudmlldylcbiAgICApIHtcbiAgICAgIGlmICh0aGlzLm1hcFZpZXdDb25zdHJhaW50cy5tYXhFeHRlbnQpIHtcbiAgICAgICAgcHJvY2Vzc2VkLnZpZXcgPSB7XG4gICAgICAgICAgZXh0ZW50OiB0aGlzLm1hcFZpZXdDb25zdHJhaW50cy5tYXhFeHRlbnQsXG4gICAgICAgICAgLi4ucHJvY2Vzc2VkLnZpZXcsXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHByb2Nlc3NlZC52aWV3ID0geyAuLi5ERUZBVUxUX1ZJRVcsIC4uLnByb2Nlc3NlZC52aWV3IH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHByb2Nlc3NlZFxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaC1mdWxsIHctZnVsbFwiICNtYXA+PC9kaXY+XG48ZGl2XG4gIGNsYXNzPVwiYWJzb2x1dGUgaW5zZXQtMCBwLTIgcm91bmRlZCB6LTQwIHRyYW5zaXRpb24tYWxsIGZsZXggZmxleC1jb2wganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyIHRleHQtcHJpbWFyeSBmb250LXNhbnMgcG9pbnRlci1ldmVudHMtbm9uZVwiXG4gIFtuZ0NsYXNzXT1cIlxuICAgIChkaXNwbGF5TWVzc2FnZSQgfCBhc3luYykgPyAndmlzaWJsZSBvcGFjaXR5LTEwMCcgOiAnaW52aXNpYmxlIG9wYWNpdHktMCdcbiAgXCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYWJzb2x1dGUgei1bLTFdIGluc2V0LTAgYmctZ3JhZGllbnQtdG8tYiBmcm9tLXdoaXRlIHRvLXByaW1hcnktbGlnaHRlc3Qgb3BhY2l0eS02MFwiXG4gID48L2Rpdj5cbiAgPG5nLWljb25cbiAgICBjbGFzcz1cIiF3LTE2ICFoLTE2IHRleHQtWzY0cHhdIG1iLTRcIlxuICAgIG5hbWU9XCJtYXRTd2lwZU91dGxpbmVcIlxuICA+PC9uZy1pY29uPlxuICA8cCB0cmFuc2xhdGU+bWFwLm5hdmlnYXRpb24ubWVzc2FnZTwvcD5cbjwvZGl2PlxuIl19
@@ -16,6 +16,10 @@ export class MapLegendComponent {
16
16
  this.legendStatusChange.emit(true);
17
17
  }
18
18
  }
19
+ else {
20
+ this.legendHTML = false;
21
+ this.legendStatusChange.emit(false);
22
+ }
19
23
  }
20
24
  }
21
25
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapLegendComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
@@ -29,4 +33,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
29
33
  }], legendStatusChange: [{
30
34
  type: Output
31
35
  }] } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWxlZ2VuZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL21hcC9zcmMvbGliL2NvbXBvbmVudHMvbWFwLWxlZ2VuZC9tYXAtbGVnZW5kLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbWFwL3NyYy9saWIvY29tcG9uZW50cy9tYXAtbGVnZW5kL21hcC1sZWdlbmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUE7QUFFdEIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDOUQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFBOztBQVV0QyxNQUFNLE9BQU8sa0JBQWtCO0lBUi9CO1FBVVksdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQTtLQWUzRDtJQVpDLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBc0I7UUFDdEMsSUFBSSxTQUFTLElBQUksT0FBTyxFQUFFLENBQUM7WUFDekIsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQTtZQUNsRCxJQUFJLFVBQVUsQ0FBQyxNQUFNLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3RELE1BQU0sZUFBZSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQzVDLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsQ0FBQTtnQkFDOUQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBQ3BCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBQ3BDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7K0dBaEJVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHdMQ3JCL0IseUVBQ0EsNElEa0JZLElBQUk7OzRGQUVILGtCQUFrQjtrQkFSOUIsU0FBUzsrQkFDRSxrQkFBa0IsY0FFaEIsSUFBSSxpQkFFRCxpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCLENBQUMsSUFBSSxDQUFDOzhCQUdOLE9BQU87c0JBQWYsS0FBSztnQkFDSSxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hcENvbnRleHQgfSBmcm9tICdAZ2Vvc3BhdGlhbC1zZGsvY29yZSdcbmltcG9ydCB7IGNyZWF0ZUxlZ2VuZEZyb21MYXllciB9IGZyb20gJ0BnZW9zcGF0aWFsLXNkay9sZWdlbmQnXG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1tYXAtbGVnZW5kJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21hcC1sZWdlbmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzdHlsZVVybHM6IFsnLi9tYXAtbGVnZW5kLmNvbXBvbmVudC5jc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW05nSWZdLFxufSlcbmV4cG9ydCBjbGFzcyBNYXBMZWdlbmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBjb250ZXh0OiBNYXBDb250ZXh0IHwgbnVsbFxuICBAT3V0cHV0KCkgbGVnZW5kU3RhdHVzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpXG4gIGxlZ2VuZEhUTUw6IEhUTUxFbGVtZW50IHwgZmFsc2VcblxuICBhc3luYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKCdjb250ZXh0JyBpbiBjaGFuZ2VzKSB7XG4gICAgICBjb25zdCBtYXBDb250ZXh0ID0gY2hhbmdlc1snY29udGV4dCddLmN1cnJlbnRWYWx1ZVxuICAgICAgaWYgKG1hcENvbnRleHQubGF5ZXJzICYmIG1hcENvbnRleHQubGF5ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgbWFwQ29udGV4dExheWVyID0gbWFwQ29udGV4dC5sYXllcnNbMF1cbiAgICAgICAgdGhpcy5sZWdlbmRIVE1MID0gYXdhaXQgY3JlYXRlTGVnZW5kRnJvbUxheWVyKG1hcENvbnRleHRMYXllcilcbiAgICAgICAgaWYgKHRoaXMubGVnZW5kSFRNTCkge1xuICAgICAgICAgIHRoaXMubGVnZW5kU3RhdHVzQ2hhbmdlLmVtaXQodHJ1ZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImxlZ2VuZEhUTUxcIiBbaW5uZXJIVE1MXT1cImxlZ2VuZEhUTUwub3V0ZXJIVE1MXCI+PC9kaXY+XG4iXX0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWxlZ2VuZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL21hcC9zcmMvbGliL2NvbXBvbmVudHMvbWFwLWxlZ2VuZC9tYXAtbGVnZW5kLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbWFwL3NyYy9saWIvY29tcG9uZW50cy9tYXAtbGVnZW5kL21hcC1sZWdlbmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUE7QUFFdEIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDOUQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFBOztBQVV0QyxNQUFNLE9BQU8sa0JBQWtCO0lBUi9CO1FBVVksdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQTtLQWtCM0Q7SUFmQyxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQXNCO1FBQ3RDLElBQUksU0FBUyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ3pCLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUFZLENBQUE7WUFDbEQsSUFBSSxVQUFVLENBQUMsTUFBTSxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN0RCxNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUM1QyxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0scUJBQXFCLENBQUMsZUFBZSxDQUFDLENBQUE7Z0JBQzlELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUNwQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUNwQyxDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFBO2dCQUN2QixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ3JDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzsrR0FuQlUsa0JBQWtCO21HQUFsQixrQkFBa0Isd0xDckIvQix5RUFDQSw0SURrQlksSUFBSTs7NEZBRUgsa0JBQWtCO2tCQVI5QixTQUFTOytCQUNFLGtCQUFrQixjQUVoQixJQUFJLGlCQUVELGlCQUFpQixDQUFDLElBQUksV0FDNUIsQ0FBQyxJQUFJLENBQUM7OEJBR04sT0FBTztzQkFBZixLQUFLO2dCQUNJLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTWFwQ29udGV4dCB9IGZyb20gJ0BnZW9zcGF0aWFsLXNkay9jb3JlJ1xuaW1wb3J0IHsgY3JlYXRlTGVnZW5kRnJvbUxheWVyIH0gZnJvbSAnQGdlb3NwYXRpYWwtc2RrL2xlZ2VuZCdcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLW1hcC1sZWdlbmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFwLWxlZ2VuZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHN0eWxlVXJsczogWycuL21hcC1sZWdlbmQuY29tcG9uZW50LmNzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbTmdJZl0sXG59KVxuZXhwb3J0IGNsYXNzIE1hcExlZ2VuZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGNvbnRleHQ6IE1hcENvbnRleHQgfCBudWxsXG4gIEBPdXRwdXQoKSBsZWdlbmRTdGF0dXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KClcbiAgbGVnZW5kSFRNTDogSFRNTEVsZW1lbnQgfCBmYWxzZVxuXG4gIGFzeW5jIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoJ2NvbnRleHQnIGluIGNoYW5nZXMpIHtcbiAgICAgIGNvbnN0IG1hcENvbnRleHQgPSBjaGFuZ2VzWydjb250ZXh0J10uY3VycmVudFZhbHVlXG4gICAgICBpZiAobWFwQ29udGV4dC5sYXllcnMgJiYgbWFwQ29udGV4dC5sYXllcnMubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBtYXBDb250ZXh0TGF5ZXIgPSBtYXBDb250ZXh0LmxheWVyc1swXVxuICAgICAgICB0aGlzLmxlZ2VuZEhUTUwgPSBhd2FpdCBjcmVhdGVMZWdlbmRGcm9tTGF5ZXIobWFwQ29udGV4dExheWVyKVxuICAgICAgICBpZiAodGhpcy5sZWdlbmRIVE1MKSB7XG4gICAgICAgICAgdGhpcy5sZWdlbmRTdGF0dXNDaGFuZ2UuZW1pdCh0cnVlKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxlZ2VuZEhUTUwgPSBmYWxzZVxuICAgICAgICB0aGlzLmxlZ2VuZFN0YXR1c0NoYW5nZS5lbWl0KGZhbHNlKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImxlZ2VuZEhUTUxcIiBbaW5uZXJIVE1MXT1cImxlZ2VuZEhUTUwub3V0ZXJIVE1MXCI+PC9kaXY+XG4iXX0=
@@ -0,0 +1,79 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import GeoJSON from 'ol/format/GeoJSON';
4
+ import { Polygon } from 'ol/geom';
5
+ import { createViewFromLayer, } from '@geospatial-sdk/core';
6
+ import { MapContainerComponent } from '../map-container/map-container.component';
7
+ import { BehaviorSubject } from 'rxjs';
8
+ import { switchMap } from 'rxjs/operators';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/common";
11
+ export class SpatialExtentComponent {
12
+ constructor() {
13
+ this.spatialExtents$ = new BehaviorSubject([]);
14
+ this.mapContext$ = this.spatialExtents$.pipe(switchMap(async (extents) => {
15
+ if (extents.length === 0) {
16
+ return null; // null extent means default view
17
+ }
18
+ const featureCollection = {
19
+ type: 'FeatureCollection',
20
+ features: [],
21
+ };
22
+ extents.forEach((extent) => {
23
+ if (extent.geometry) {
24
+ featureCollection.features.push({
25
+ type: 'Feature',
26
+ properties: {},
27
+ geometry: extent.geometry,
28
+ });
29
+ }
30
+ else if (extent.bbox?.length >= 0) {
31
+ featureCollection.features.push({
32
+ type: 'Feature',
33
+ properties: {},
34
+ geometry: this.bboxCoordsToGeometry(extent.bbox),
35
+ });
36
+ }
37
+ });
38
+ const layer = {
39
+ type: 'geojson',
40
+ data: featureCollection,
41
+ label: 'Spatial extents',
42
+ style: {
43
+ 'stroke-color': 'black',
44
+ 'stroke-width': 2,
45
+ },
46
+ };
47
+ const view = await createViewFromLayer(layer);
48
+ return {
49
+ view,
50
+ layers: [layer],
51
+ };
52
+ }));
53
+ this.error = '';
54
+ }
55
+ set spatialExtents(value) {
56
+ this.spatialExtents$.next(value);
57
+ }
58
+ bboxCoordsToGeometry(bbox) {
59
+ const geometry = new Polygon([
60
+ [
61
+ [bbox[0], bbox[1]],
62
+ [bbox[0], bbox[3]],
63
+ [bbox[2], bbox[3]],
64
+ [bbox[2], bbox[1]],
65
+ [bbox[0], bbox[1]],
66
+ ],
67
+ ]);
68
+ return new GeoJSON().writeGeometryObject(geometry);
69
+ }
70
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpatialExtentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
71
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpatialExtentComponent, isStandalone: true, selector: "gn-ui-spatial-extent", inputs: { spatialExtents: "spatialExtents" }, ngImport: i0, template: "<gn-ui-map-container\n class=\"h-full w-full\"\n [context]=\"mapContext$ | async\"\n></gn-ui-map-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: MapContainerComponent, selector: "gn-ui-map-container", inputs: ["context"], outputs: ["featuresClick", "featuresHover", "mapClick", "sourceLoadError"] }] }); }
72
+ }
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpatialExtentComponent, decorators: [{
74
+ type: Component,
75
+ args: [{ selector: 'gn-ui-spatial-extent', standalone: true, imports: [CommonModule, MapContainerComponent], template: "<gn-ui-map-container\n class=\"h-full w-full\"\n [context]=\"mapContext$ | async\"\n></gn-ui-map-container>\n" }]
76
+ }], propDecorators: { spatialExtents: [{
77
+ type: Input
78
+ }] } });
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhdGlhbC1leHRlbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9tYXAvc3JjL2xpYi9jb21wb25lbnRzL3NwYXRpYWwtZXh0ZW50L3NwYXRpYWwtZXh0ZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbWFwL3NyYy9saWIvY29tcG9uZW50cy9zcGF0aWFsLWV4dGVudC9zcGF0aWFsLWV4dGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFOUMsT0FBTyxPQUFxQyxNQUFNLG1CQUFtQixDQUFBO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDakMsT0FBTyxFQUNMLG1CQUFtQixHQUdwQixNQUFNLHNCQUFzQixDQUFBO0FBQzdCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFBO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBOzs7QUFVMUMsTUFBTSxPQUFPLHNCQUFzQjtJQVBuQztRQVdFLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQXlCLEVBQUUsQ0FBQyxDQUFBO1FBQ2pFLGdCQUFXLEdBQTJCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUM3RCxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQzFCLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxJQUFJLENBQUEsQ0FBQyxpQ0FBaUM7WUFDL0MsQ0FBQztZQUNELE1BQU0saUJBQWlCLEdBQTZCO2dCQUNsRCxJQUFJLEVBQUUsbUJBQW1CO2dCQUN6QixRQUFRLEVBQUUsRUFBRTthQUNiLENBQUE7WUFDRCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3pCLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNwQixpQkFBaUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO3dCQUM5QixJQUFJLEVBQUUsU0FBUzt3QkFDZixVQUFVLEVBQUUsRUFBRTt3QkFDZCxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7cUJBQzFCLENBQUMsQ0FBQTtnQkFDSixDQUFDO3FCQUFNLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQ3BDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7d0JBQzlCLElBQUksRUFBRSxTQUFTO3dCQUNmLFVBQVUsRUFBRSxFQUFFO3dCQUNkLFFBQVEsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztxQkFDakQsQ0FBQyxDQUFBO2dCQUNKLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQTtZQUVGLE1BQU0sS0FBSyxHQUFvQjtnQkFDN0IsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLGlCQUFpQjtnQkFDdkIsS0FBSyxFQUFFLGlCQUFpQjtnQkFDeEIsS0FBSyxFQUFFO29CQUNMLGNBQWMsRUFBRSxPQUFPO29CQUN2QixjQUFjLEVBQUUsQ0FBQztpQkFDbEI7YUFDRixDQUFBO1lBQ0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUM3QyxPQUFPO2dCQUNMLElBQUk7Z0JBQ0osTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDO2FBQ2hCLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO1FBRUQsVUFBSyxHQUFHLEVBQUUsQ0FBQTtLQWVYO0lBN0RDLElBQWEsY0FBYyxDQUFDLEtBQTZCO1FBQ3ZELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUE4Q0Qsb0JBQW9CLENBQUMsSUFBc0M7UUFDekQsTUFBTSxRQUFRLEdBQUcsSUFBSSxPQUFPLENBQUM7WUFDM0I7Z0JBQ0UsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNsQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbEIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNsQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDbkI7U0FDRixDQUFDLENBQUE7UUFFRixPQUFPLElBQUksT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDcEQsQ0FBQzsrR0E3RFUsc0JBQXNCO21HQUF0QixzQkFBc0IsOEhDdEJuQyxpSEFJQSx5RERjWSxZQUFZLG9GQUFFLHFCQUFxQjs7NEZBSWxDLHNCQUFzQjtrQkFQbEMsU0FBUzsrQkFDRSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLHFCQUFxQixDQUFDOzhCQUtqQyxjQUFjO3NCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBHZW9tZXRyeSB9IGZyb20gJ2dlb2pzb24nXG5pbXBvcnQgR2VvSlNPTiwgeyBHZW9KU09ORmVhdHVyZUNvbGxlY3Rpb24gfSBmcm9tICdvbC9mb3JtYXQvR2VvSlNPTidcbmltcG9ydCB7IFBvbHlnb24gfSBmcm9tICdvbC9nZW9tJ1xuaW1wb3J0IHtcbiAgY3JlYXRlVmlld0Zyb21MYXllcixcbiAgTWFwQ29udGV4dCxcbiAgTWFwQ29udGV4dExheWVyLFxufSBmcm9tICdAZ2Vvc3BhdGlhbC1zZGsvY29yZSdcbmltcG9ydCB7IE1hcENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL21hcC1jb250YWluZXIvbWFwLWNvbnRhaW5lci5jb21wb25lbnQnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBEYXRhc2V0U3BhdGlhbEV4dGVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktc3BhdGlhbC1leHRlbnQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXBDb250YWluZXJDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vc3BhdGlhbC1leHRlbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vc3BhdGlhbC1leHRlbnQuY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIFNwYXRpYWxFeHRlbnRDb21wb25lbnQge1xuICBASW5wdXQoKSBzZXQgc3BhdGlhbEV4dGVudHModmFsdWU6IERhdGFzZXRTcGF0aWFsRXh0ZW50W10pIHtcbiAgICB0aGlzLnNwYXRpYWxFeHRlbnRzJC5uZXh0KHZhbHVlKVxuICB9XG4gIHNwYXRpYWxFeHRlbnRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGF0YXNldFNwYXRpYWxFeHRlbnRbXT4oW10pXG4gIG1hcENvbnRleHQkOiBPYnNlcnZhYmxlPE1hcENvbnRleHQ+ID0gdGhpcy5zcGF0aWFsRXh0ZW50cyQucGlwZShcbiAgICBzd2l0Y2hNYXAoYXN5bmMgKGV4dGVudHMpID0+IHtcbiAgICAgIGlmIChleHRlbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gbnVsbCAvLyBudWxsIGV4dGVudCBtZWFucyBkZWZhdWx0IHZpZXdcbiAgICAgIH1cbiAgICAgIGNvbnN0IGZlYXR1cmVDb2xsZWN0aW9uOiBHZW9KU09ORmVhdHVyZUNvbGxlY3Rpb24gPSB7XG4gICAgICAgIHR5cGU6ICdGZWF0dXJlQ29sbGVjdGlvbicsXG4gICAgICAgIGZlYXR1cmVzOiBbXSxcbiAgICAgIH1cbiAgICAgIGV4dGVudHMuZm9yRWFjaCgoZXh0ZW50KSA9PiB7XG4gICAgICAgIGlmIChleHRlbnQuZ2VvbWV0cnkpIHtcbiAgICAgICAgICBmZWF0dXJlQ29sbGVjdGlvbi5mZWF0dXJlcy5wdXNoKHtcbiAgICAgICAgICAgIHR5cGU6ICdGZWF0dXJlJyxcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHt9LFxuICAgICAgICAgICAgZ2VvbWV0cnk6IGV4dGVudC5nZW9tZXRyeSxcbiAgICAgICAgICB9KVxuICAgICAgICB9IGVsc2UgaWYgKGV4dGVudC5iYm94Py5sZW5ndGggPj0gMCkge1xuICAgICAgICAgIGZlYXR1cmVDb2xsZWN0aW9uLmZlYXR1cmVzLnB1c2goe1xuICAgICAgICAgICAgdHlwZTogJ0ZlYXR1cmUnLFxuICAgICAgICAgICAgcHJvcGVydGllczoge30sXG4gICAgICAgICAgICBnZW9tZXRyeTogdGhpcy5iYm94Q29vcmRzVG9HZW9tZXRyeShleHRlbnQuYmJveCksXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgY29uc3QgbGF5ZXI6IE1hcENvbnRleHRMYXllciA9IHtcbiAgICAgICAgdHlwZTogJ2dlb2pzb24nLFxuICAgICAgICBkYXRhOiBmZWF0dXJlQ29sbGVjdGlvbixcbiAgICAgICAgbGFiZWw6ICdTcGF0aWFsIGV4dGVudHMnLFxuICAgICAgICBzdHlsZToge1xuICAgICAgICAgICdzdHJva2UtY29sb3InOiAnYmxhY2snLFxuICAgICAgICAgICdzdHJva2Utd2lkdGgnOiAyLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgICAgY29uc3QgdmlldyA9IGF3YWl0IGNyZWF0ZVZpZXdGcm9tTGF5ZXIobGF5ZXIpXG4gICAgICByZXR1cm4ge1xuICAgICAgICB2aWV3LFxuICAgICAgICBsYXllcnM6IFtsYXllcl0sXG4gICAgICB9XG4gICAgfSlcbiAgKVxuXG4gIGVycm9yID0gJydcblxuICBiYm94Q29vcmRzVG9HZW9tZXRyeShiYm94OiBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXSk6IEdlb21ldHJ5IHtcbiAgICBjb25zdCBnZW9tZXRyeSA9IG5ldyBQb2x5Z29uKFtcbiAgICAgIFtcbiAgICAgICAgW2Jib3hbMF0sIGJib3hbMV1dLFxuICAgICAgICBbYmJveFswXSwgYmJveFszXV0sXG4gICAgICAgIFtiYm94WzJdLCBiYm94WzNdXSxcbiAgICAgICAgW2Jib3hbMl0sIGJib3hbMV1dLFxuICAgICAgICBbYmJveFswXSwgYmJveFsxXV0sXG4gICAgICBdLFxuICAgIF0pXG5cbiAgICByZXR1cm4gbmV3IEdlb0pTT04oKS53cml0ZUdlb21ldHJ5T2JqZWN0KGdlb21ldHJ5KVxuICB9XG59XG4iLCI8Z24tdWktbWFwLWNvbnRhaW5lclxuICBjbGFzcz1cImgtZnVsbCB3LWZ1bGxcIlxuICBbY29udGV4dF09XCJtYXBDb250ZXh0JCB8IGFzeW5jXCJcbj48L2duLXVpLW1hcC1jb250YWluZXI+XG4iXX0=
@@ -16,6 +16,7 @@ export * from './lib/record-preview-text/record-preview-text.component';
16
16
  export * from './lib/record-preview-title/record-preview-title.component';
17
17
  export * from './lib/record-metric/record-metric.component';
18
18
  export * from './lib/results-list-item/results-list-item.component';
19
+ export * from './lib/results-hits-search-kind/results-hits-search-kind.component';
19
20
  export * from './lib/results-hits-number/results-hits-number.component';
20
21
  export * from './lib/results-table/results-table.component';
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksSUFBSSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUMzRSxjQUFjLDJCQUEyQixDQUFBO0FBQ3pDLGNBQWMsdUJBQXVCLENBQUE7QUFDckMsY0FBYyxnREFBZ0QsQ0FBQTtBQUM5RCxjQUFjLDhDQUE4QyxDQUFBO0FBQzVELGNBQWMsOENBQThDLENBQUE7QUFDNUQsY0FBYyx3QkFBd0IsQ0FBQTtBQUN0QyxjQUFjLDBDQUEwQyxDQUFBO0FBQ3hELGNBQWMsMkNBQTJDLENBQUE7QUFDekQsY0FBYywrQ0FBK0MsQ0FBQTtBQUM3RCxjQUFjLHlEQUF5RCxDQUFBO0FBQ3ZFLGNBQWMsdURBQXVELENBQUE7QUFDckUsY0FBYyx5REFBeUQsQ0FBQTtBQUN2RSxjQUFjLHlEQUF5RCxDQUFBO0FBQ3ZFLGNBQWMseURBQXlELENBQUE7QUFDdkUsY0FBYywyREFBMkQsQ0FBQTtBQUN6RSxjQUFjLDZDQUE2QyxDQUFBO0FBQzNELGNBQWMscURBQXFELENBQUE7QUFDbkUsY0FBYyx5REFBeUQsQ0FBQTtBQUN2RSxjQUFjLDZDQUE2QyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgRmFjZXRzTW9kdWxlIGFzIFVpRmFjZXRzTW9kdWxlIH0gZnJvbSAnLi9saWIvZmFjZXRzL2ZhY2V0cy5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9mYWNldHMvZmFjZXRzLm1vZGVsJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmFjZXRzL2ZpeHR1cmVzJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmFjZXRzL2ZhY2V0LWJsb2NrL2ZhY2V0LWJsb2NrLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZhY2V0cy9mYWNldC1saXN0L2ZhY2V0LWxpc3QuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmFjZXRzL2ZhY2V0LWl0ZW0vZmFjZXQtaXRlbS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi91aS1zZWFyY2gubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVzdWx0cy1saXN0L3Jlc3VsdHMtbGF5b3V0LmNvbmZpZydcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Jlc3VsdHMtbGlzdC9yZXN1bHRzLWxpc3QuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVjb3JkLXByZXZpZXcvcmVjb3JkLXByZXZpZXcuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVjb3JkLXByZXZpZXctZmVlZC9yZWNvcmQtcHJldmlldy1mZWVkLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JlY29yZC1wcmV2aWV3LXJvdy9yZWNvcmQtcHJldmlldy1yb3cuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVjb3JkLXByZXZpZXctY2FyZC9yZWNvcmQtcHJldmlldy1jYXJkLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JlY29yZC1wcmV2aWV3LWxpc3QvcmVjb3JkLXByZXZpZXctbGlzdC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZWNvcmQtcHJldmlldy10ZXh0L3JlY29yZC1wcmV2aWV3LXRleHQuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVjb3JkLXByZXZpZXctdGl0bGUvcmVjb3JkLXByZXZpZXctdGl0bGUuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVjb3JkLW1ldHJpYy9yZWNvcmQtbWV0cmljLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Jlc3VsdHMtbGlzdC1pdGVtL3Jlc3VsdHMtbGlzdC1pdGVtLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Jlc3VsdHMtaGl0cy1udW1iZXIvcmVzdWx0cy1oaXRzLW51bWJlci5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZXN1bHRzLXRhYmxlL3Jlc3VsdHMtdGFibGUuY29tcG9uZW50J1xuIl19
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksSUFBSSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUMzRSxjQUFjLDJCQUEyQixDQUFBO0FBQ3pDLGNBQWMsdUJBQXVCLENBQUE7QUFDckMsY0FBYyxnREFBZ0QsQ0FBQTtBQUM5RCxjQUFjLDhDQUE4QyxDQUFBO0FBQzVELGNBQWMsOENBQThDLENBQUE7QUFDNUQsY0FBYyx3QkFBd0IsQ0FBQTtBQUN0QyxjQUFjLDBDQUEwQyxDQUFBO0FBQ3hELGNBQWMsMkNBQTJDLENBQUE7QUFDekQsY0FBYywrQ0FBK0MsQ0FBQTtBQUM3RCxjQUFjLHlEQUF5RCxDQUFBO0FBQ3ZFLGNBQWMsdURBQXVELENBQUE7QUFDckUsY0FBYyx5REFBeUQsQ0FBQTtBQUN2RSxjQUFjLHlEQUF5RCxDQUFBO0FBQ3ZFLGNBQWMseURBQXlELENBQUE7QUFDdkUsY0FBYywyREFBMkQsQ0FBQTtBQUN6RSxjQUFjLDZDQUE2QyxDQUFBO0FBQzNELGNBQWMscURBQXFELENBQUE7QUFDbkUsY0FBYyxtRUFBbUUsQ0FBQTtBQUNqRixjQUFjLHlEQUF5RCxDQUFBO0FBQ3ZFLGNBQWMsNkNBQTZDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBGYWNldHNNb2R1bGUgYXMgVWlGYWNldHNNb2R1bGUgfSBmcm9tICcuL2xpYi9mYWNldHMvZmFjZXRzLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZhY2V0cy9mYWNldHMubW9kZWwnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9mYWNldHMvZml4dHVyZXMnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9mYWNldHMvZmFjZXQtYmxvY2svZmFjZXQtYmxvY2suY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmFjZXRzL2ZhY2V0LWxpc3QvZmFjZXQtbGlzdC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9mYWNldHMvZmFjZXQtaXRlbS9mYWNldC1pdGVtLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3VpLXNlYXJjaC5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZXN1bHRzLWxpc3QvcmVzdWx0cy1sYXlvdXQuY29uZmlnJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVzdWx0cy1saXN0L3Jlc3VsdHMtbGlzdC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZWNvcmQtcHJldmlldy9yZWNvcmQtcHJldmlldy5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZWNvcmQtcHJldmlldy1mZWVkL3JlY29yZC1wcmV2aWV3LWZlZWQuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVjb3JkLXByZXZpZXctcm93L3JlY29yZC1wcmV2aWV3LXJvdy5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZWNvcmQtcHJldmlldy1jYXJkL3JlY29yZC1wcmV2aWV3LWNhcmQuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVjb3JkLXByZXZpZXctbGlzdC9yZWNvcmQtcHJldmlldy1saXN0LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JlY29yZC1wcmV2aWV3LXRleHQvcmVjb3JkLXByZXZpZXctdGV4dC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZWNvcmQtcHJldmlldy10aXRsZS9yZWNvcmQtcHJldmlldy10aXRsZS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZWNvcmQtbWV0cmljL3JlY29yZC1tZXRyaWMuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVzdWx0cy1saXN0LWl0ZW0vcmVzdWx0cy1saXN0LWl0ZW0uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVzdWx0cy1oaXRzLXNlYXJjaC1raW5kL3Jlc3VsdHMtaGl0cy1zZWFyY2gta2luZC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZXN1bHRzLWhpdHMtbnVtYmVyL3Jlc3VsdHMtaGl0cy1udW1iZXIuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVzdWx0cy10YWJsZS9yZXN1bHRzLXRhYmxlLmNvbXBvbmVudCdcbiJdfQ==
@@ -4,14 +4,14 @@ import * as i1 from "@angular/common";
4
4
  import * as i2 from "@ngx-translate/core";
5
5
  export class ResultsHitsNumberComponent {
6
6
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsHitsNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResultsHitsNumberComponent, selector: "gn-ui-results-hits-number", inputs: { hits: "hits", loading: "loading" }, ngImport: i0, template: "<div *ngIf=\"!loading\" class=\"w-full\">\n <span translate [translateParams]=\"{ hits: hits }\"\n >results.records.hits.found</span\n >\n <p\n *ngIf=\"hits === 0\"\n class=\"mt-4\"\n [innerHtml]=\"'results.records.hits.empty.help.html' | translate\"\n ></p>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
7
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResultsHitsNumberComponent, selector: "gn-ui-results-hits-number", inputs: { hits: "hits", loading: "loading" }, ngImport: i0, template: "<div *ngIf=\"!loading\" class=\"w-full\">\n <span data-cy=\"resultsHitsFound\" translate [translateParams]=\"{ hits: hits }\"\n >results.records.hits.found</span\n >\n <p\n *ngIf=\"hits === 0\"\n class=\"mt-4\"\n [innerHtml]=\"'results.records.hits.empty.help.html' | translate\"\n ></p>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
8
8
  }
9
9
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsHitsNumberComponent, decorators: [{
10
10
  type: Component,
11
- args: [{ selector: 'gn-ui-results-hits-number', template: "<div *ngIf=\"!loading\" class=\"w-full\">\n <span translate [translateParams]=\"{ hits: hits }\"\n >results.records.hits.found</span\n >\n <p\n *ngIf=\"hits === 0\"\n class=\"mt-4\"\n [innerHtml]=\"'results.records.hits.empty.help.html' | translate\"\n ></p>\n</div>\n" }]
11
+ args: [{ selector: 'gn-ui-results-hits-number', template: "<div *ngIf=\"!loading\" class=\"w-full\">\n <span data-cy=\"resultsHitsFound\" translate [translateParams]=\"{ hits: hits }\"\n >results.records.hits.found</span\n >\n <p\n *ngIf=\"hits === 0\"\n class=\"mt-4\"\n [innerHtml]=\"'results.records.hits.empty.help.html' | translate\"\n ></p>\n</div>\n" }]
12
12
  }], propDecorators: { hits: [{
13
13
  type: Input
14
14
  }], loading: [{
15
15
  type: Input
16
16
  }] } });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0cy1oaXRzLW51bWJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMvbGliL3Jlc3VsdHMtaGl0cy1udW1iZXIvcmVzdWx0cy1oaXRzLW51bWJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMvbGliL3Jlc3VsdHMtaGl0cy1udW1iZXIvcmVzdWx0cy1oaXRzLW51bWJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQTs7OztBQU1oRCxNQUFNLE9BQU8sMEJBQTBCOytHQUExQiwwQkFBMEI7bUdBQTFCLDBCQUEwQiwrR0NOdkMsOFJBVUE7OzRGREphLDBCQUEwQjtrQkFKdEMsU0FBUzsrQkFDRSwyQkFBMkI7OEJBSTVCLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktcmVzdWx0cy1oaXRzLW51bWJlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXN1bHRzLWhpdHMtbnVtYmVyLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgUmVzdWx0c0hpdHNOdW1iZXJDb21wb25lbnQge1xuICBASW5wdXQoKSBoaXRzOiBudW1iZXJcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhblxufVxuIiwiPGRpdiAqbmdJZj1cIiFsb2FkaW5nXCIgY2xhc3M9XCJ3LWZ1bGxcIj5cbiAgPHNwYW4gdHJhbnNsYXRlIFt0cmFuc2xhdGVQYXJhbXNdPVwieyBoaXRzOiBoaXRzIH1cIlxuICAgID5yZXN1bHRzLnJlY29yZHMuaGl0cy5mb3VuZDwvc3BhblxuICA+XG4gIDxwXG4gICAgKm5nSWY9XCJoaXRzID09PSAwXCJcbiAgICBjbGFzcz1cIm10LTRcIlxuICAgIFtpbm5lckh0bWxdPVwiJ3Jlc3VsdHMucmVjb3Jkcy5oaXRzLmVtcHR5LmhlbHAuaHRtbCcgfCB0cmFuc2xhdGVcIlxuICA+PC9wPlxuPC9kaXY+XG4iXX0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0cy1oaXRzLW51bWJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMvbGliL3Jlc3VsdHMtaGl0cy1udW1iZXIvcmVzdWx0cy1oaXRzLW51bWJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMvbGliL3Jlc3VsdHMtaGl0cy1udW1iZXIvcmVzdWx0cy1oaXRzLW51bWJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQTs7OztBQU1oRCxNQUFNLE9BQU8sMEJBQTBCOytHQUExQiwwQkFBMEI7bUdBQTFCLDBCQUEwQiwrR0NOdkMsMlRBVUE7OzRGREphLDBCQUEwQjtrQkFKdEMsU0FBUzsrQkFDRSwyQkFBMkI7OEJBSTVCLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktcmVzdWx0cy1oaXRzLW51bWJlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXN1bHRzLWhpdHMtbnVtYmVyLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgUmVzdWx0c0hpdHNOdW1iZXJDb21wb25lbnQge1xuICBASW5wdXQoKSBoaXRzOiBudW1iZXJcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhblxufVxuIiwiPGRpdiAqbmdJZj1cIiFsb2FkaW5nXCIgY2xhc3M9XCJ3LWZ1bGxcIj5cbiAgPHNwYW4gZGF0YS1jeT1cInJlc3VsdHNIaXRzRm91bmRcIiB0cmFuc2xhdGUgW3RyYW5zbGF0ZVBhcmFtc109XCJ7IGhpdHM6IGhpdHMgfVwiXG4gICAgPnJlc3VsdHMucmVjb3Jkcy5oaXRzLmZvdW5kPC9zcGFuXG4gID5cbiAgPHBcbiAgICAqbmdJZj1cImhpdHMgPT09IDBcIlxuICAgIGNsYXNzPVwibXQtNFwiXG4gICAgW2lubmVySHRtbF09XCIncmVzdWx0cy5yZWNvcmRzLmhpdHMuZW1wdHkuaGVscC5odG1sJyB8IHRyYW5zbGF0ZVwiXG4gID48L3A+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,53 @@
1
+ import { Component, EventEmitter, Input, Output, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "../../../../inputs/src/lib/inline-filter/inline-filter.component";
5
+ import * as i3 from "../../../../elements/src/lib/kind-badge/kind-badge.component";
6
+ import * as i4 from "@ngx-translate/core";
7
+ export class ResultsHitsSearchKindComponent {
8
+ constructor() {
9
+ this.selected = [];
10
+ this.choices = [];
11
+ this.selectionChanged = new EventEmitter();
12
+ this.availableChoices = [];
13
+ }
14
+ ngOnChanges(changes) {
15
+ if (changes.choices && changes.choices.currentValue) {
16
+ this.availableChoices = this.buildFilterChoices(this.choices);
17
+ }
18
+ }
19
+ buildFilterChoices(availableValues) {
20
+ return [
21
+ ...[
22
+ {
23
+ label: 'all',
24
+ value: 'all',
25
+ },
26
+ ],
27
+ ...availableValues,
28
+ ];
29
+ }
30
+ onSelectedValues(values) {
31
+ const selectedValues = values.includes('all') ? [] : values;
32
+ this.selectionChanged.emit(selectedValues);
33
+ }
34
+ isSelectedChoice(choiceValue) {
35
+ return this.selected.includes(choiceValue);
36
+ }
37
+ isAllChoice(choiceValue) {
38
+ return this.selected.length === 0 && choiceValue === 'all';
39
+ }
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsHitsSearchKindComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
41
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResultsHitsSearchKindComponent, selector: "gn-ui-results-hits-search-kind", inputs: { selected: "selected", choices: "choices" }, outputs: { selectionChanged: "selectionChanged" }, usesOnChanges: true, ngImport: i0, template: "<gn-ui-inline-filter\n [choices]=\"availableChoices\"\n [selected]=\"selected\"\n (selectValues)=\"onSelectedValues($event)\"\n>\n <ng-template let-choice>\n <gn-ui-kind-badge\n [kind]=\"choice.value\"\n [contentTemplate]=\"customTemplate\"\n class=\"gn-ui-btn-outline rounded-md py-2 px-2 border-gray-400 cursor-pointer focus-within:text-primary-darkest focus-within:bg-gray-50 transition-colors bg-transparent hover:text-primary-darker focus:text-primary-darker active:text-primary-black\"\n [ngClass]=\"{\n '!bg-primary-lightest hover:bg-primary-lightest':\n isSelectedChoice(choice.value) || isAllChoice(choice.value),\n }\"\n >\n <ng-template #customTemplate>\n {{ 'search.filters.recordKind.' + choice.value | translate\n }}<span class=\"ml-1\" *ngIf=\"isSelectedChoice(choice.value)\"\n >({{ choice.count }})</span\n >\n </ng-template>\n </gn-ui-kind-badge>\n </ng-template>\n</gn-ui-inline-filter>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.InlineFilterComponent, selector: "gn-ui-inline-filter", inputs: ["choices", "selected"], outputs: ["selectValues"] }, { kind: "component", type: i3.KindBadgeComponent, selector: "gn-ui-kind-badge", inputs: ["contentTemplate", "kind"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
42
+ }
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsHitsSearchKindComponent, decorators: [{
44
+ type: Component,
45
+ args: [{ selector: 'gn-ui-results-hits-search-kind', template: "<gn-ui-inline-filter\n [choices]=\"availableChoices\"\n [selected]=\"selected\"\n (selectValues)=\"onSelectedValues($event)\"\n>\n <ng-template let-choice>\n <gn-ui-kind-badge\n [kind]=\"choice.value\"\n [contentTemplate]=\"customTemplate\"\n class=\"gn-ui-btn-outline rounded-md py-2 px-2 border-gray-400 cursor-pointer focus-within:text-primary-darkest focus-within:bg-gray-50 transition-colors bg-transparent hover:text-primary-darker focus:text-primary-darker active:text-primary-black\"\n [ngClass]=\"{\n '!bg-primary-lightest hover:bg-primary-lightest':\n isSelectedChoice(choice.value) || isAllChoice(choice.value),\n }\"\n >\n <ng-template #customTemplate>\n {{ 'search.filters.recordKind.' + choice.value | translate\n }}<span class=\"ml-1\" *ngIf=\"isSelectedChoice(choice.value)\"\n >({{ choice.count }})</span\n >\n </ng-template>\n </gn-ui-kind-badge>\n </ng-template>\n</gn-ui-inline-filter>\n" }]
46
+ }], propDecorators: { selected: [{
47
+ type: Input
48
+ }], choices: [{
49
+ type: Input
50
+ }], selectionChanged: [{
51
+ type: Output
52
+ }] } });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0cy1oaXRzLXNlYXJjaC1raW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvc2VhcmNoL3NyYy9saWIvcmVzdWx0cy1oaXRzLXNlYXJjaC1raW5kL3Jlc3VsdHMtaGl0cy1zZWFyY2gta2luZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMvbGliL3Jlc3VsdHMtaGl0cy1zZWFyY2gta2luZC9yZXN1bHRzLWhpdHMtc2VhcmNoLWtpbmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQTs7Ozs7O0FBT3RCLE1BQU0sT0FBTyw4QkFBOEI7SUFKM0M7UUFLVyxhQUFRLEdBQWEsRUFBRSxDQUFBO1FBQ3ZCLFlBQU8sR0FBYSxFQUFFLENBQUE7UUFDckIscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQTtRQUV6RCxxQkFBZ0IsR0FBYSxFQUFFLENBQUE7S0FpQ2hDO0lBL0JDLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUMvRCxDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQixDQUFDLGVBQXlCO1FBQzFDLE9BQU87WUFDTCxHQUFHO2dCQUNEO29CQUNFLEtBQUssRUFBRSxLQUFLO29CQUNaLEtBQUssRUFBRSxLQUFLO2lCQUNiO2FBQ0Y7WUFDRCxHQUFHLGVBQWU7U0FDbkIsQ0FBQTtJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUFnQjtRQUMvQixNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQTtRQUUzRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQzVDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxXQUFtQjtRQUNsQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQzVDLENBQUM7SUFFRCxXQUFXLENBQUMsV0FBbUI7UUFDN0IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksV0FBVyxLQUFLLEtBQUssQ0FBQTtJQUM1RCxDQUFDOytHQXJDVSw4QkFBOEI7bUdBQTlCLDhCQUE4QixvTUNkM0MsNCtCQXdCQTs7NEZEVmEsOEJBQThCO2tCQUoxQyxTQUFTOytCQUNFLGdDQUFnQzs4QkFJakMsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENob2ljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktcmVzdWx0cy1oaXRzLXNlYXJjaC1raW5kJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jlc3VsdHMtaGl0cy1zZWFyY2gta2luZC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFJlc3VsdHNIaXRzU2VhcmNoS2luZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHNlbGVjdGVkOiBzdHJpbmdbXSA9IFtdXG4gIEBJbnB1dCgpIGNob2ljZXM6IENob2ljZVtdID0gW11cbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZ1tdPigpXG5cbiAgYXZhaWxhYmxlQ2hvaWNlczogQ2hvaWNlW10gPSBbXVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlcy5jaG9pY2VzICYmIGNoYW5nZXMuY2hvaWNlcy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuYXZhaWxhYmxlQ2hvaWNlcyA9IHRoaXMuYnVpbGRGaWx0ZXJDaG9pY2VzKHRoaXMuY2hvaWNlcylcbiAgICB9XG4gIH1cblxuICBidWlsZEZpbHRlckNob2ljZXMoYXZhaWxhYmxlVmFsdWVzOiBDaG9pY2VbXSkge1xuICAgIHJldHVybiBbXG4gICAgICAuLi5bXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogJ2FsbCcsXG4gICAgICAgICAgdmFsdWU6ICdhbGwnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIC4uLmF2YWlsYWJsZVZhbHVlcyxcbiAgICBdXG4gIH1cblxuICBvblNlbGVjdGVkVmFsdWVzKHZhbHVlczogc3RyaW5nW10pIHtcbiAgICBjb25zdCBzZWxlY3RlZFZhbHVlcyA9IHZhbHVlcy5pbmNsdWRlcygnYWxsJykgPyBbXSA6IHZhbHVlc1xuXG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VkLmVtaXQoc2VsZWN0ZWRWYWx1ZXMpXG4gIH1cblxuICBpc1NlbGVjdGVkQ2hvaWNlKGNob2ljZVZhbHVlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZC5pbmNsdWRlcyhjaG9pY2VWYWx1ZSlcbiAgfVxuXG4gIGlzQWxsQ2hvaWNlKGNob2ljZVZhbHVlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZC5sZW5ndGggPT09IDAgJiYgY2hvaWNlVmFsdWUgPT09ICdhbGwnXG4gIH1cbn1cbiIsIjxnbi11aS1pbmxpbmUtZmlsdGVyXG4gIFtjaG9pY2VzXT1cImF2YWlsYWJsZUNob2ljZXNcIlxuICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWRcIlxuICAoc2VsZWN0VmFsdWVzKT1cIm9uU2VsZWN0ZWRWYWx1ZXMoJGV2ZW50KVwiXG4+XG4gIDxuZy10ZW1wbGF0ZSBsZXQtY2hvaWNlPlxuICAgIDxnbi11aS1raW5kLWJhZGdlXG4gICAgICBba2luZF09XCJjaG9pY2UudmFsdWVcIlxuICAgICAgW2NvbnRlbnRUZW1wbGF0ZV09XCJjdXN0b21UZW1wbGF0ZVwiXG4gICAgICBjbGFzcz1cImduLXVpLWJ0bi1vdXRsaW5lIHJvdW5kZWQtbWQgcHktMiBweC0yIGJvcmRlci1ncmF5LTQwMCBjdXJzb3ItcG9pbnRlciBmb2N1cy13aXRoaW46dGV4dC1wcmltYXJ5LWRhcmtlc3QgZm9jdXMtd2l0aGluOmJnLWdyYXktNTAgdHJhbnNpdGlvbi1jb2xvcnMgYmctdHJhbnNwYXJlbnQgaG92ZXI6dGV4dC1wcmltYXJ5LWRhcmtlciBmb2N1czp0ZXh0LXByaW1hcnktZGFya2VyIGFjdGl2ZTp0ZXh0LXByaW1hcnktYmxhY2tcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnIWJnLXByaW1hcnktbGlnaHRlc3QgaG92ZXI6YmctcHJpbWFyeS1saWdodGVzdCc6XG4gICAgICAgICAgaXNTZWxlY3RlZENob2ljZShjaG9pY2UudmFsdWUpIHx8IGlzQWxsQ2hvaWNlKGNob2ljZS52YWx1ZSksXG4gICAgICB9XCJcbiAgICA+XG4gICAgICA8bmctdGVtcGxhdGUgI2N1c3RvbVRlbXBsYXRlPlxuICAgICAgICB7eyAnc2VhcmNoLmZpbHRlcnMucmVjb3JkS2luZC4nICsgY2hvaWNlLnZhbHVlIHwgdHJhbnNsYXRlXG4gICAgICAgIH19PHNwYW4gY2xhc3M9XCJtbC0xXCIgKm5nSWY9XCJpc1NlbGVjdGVkQ2hvaWNlKGNob2ljZS52YWx1ZSlcIlxuICAgICAgICAgID4oe3sgY2hvaWNlLmNvdW50IH19KTwvc3BhblxuICAgICAgICA+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZ24tdWkta2luZC1iYWRnZT5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZ24tdWktaW5saW5lLWZpbHRlcj5cbiJdfQ==
@@ -106,8 +106,9 @@ export class ResultsTableComponent {
106
106
  return getBadgeColor(format);
107
107
  }
108
108
  handleRecordClick(item) {
109
- if (item?.extras?.edit || this.isDraftPage)
109
+ if ((item?.extras?.edit || this.isDraftPage) && item.kind === 'dataset') {
110
110
  this.recordClick.emit(item);
111
+ }
111
112
  }
112
113
  handleDuplicate(item) {
113
114
  this.duplicateRecord.emit(item);
@@ -144,7 +145,7 @@ export class ResultsTableComponent {
144
145
  this.recordsSelectedChange.emit([[record], selected]);
145
146
  }
146
147
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsTableComponent, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }, { token: i2.DateService }], target: i0.ɵɵFactoryTarget.Component }); }
147
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResultsTableComponent, isStandalone: true, selector: "gn-ui-results-table", inputs: { records: "records", selectedRecordsIdentifiers: "selectedRecordsIdentifiers", sortOrder: "sortOrder", hasDraft: "hasDraft", canDuplicate: "canDuplicate", canDelete: "canDelete", isDraftPage: "isDraftPage", isDuplicating: "isDuplicating" }, outputs: { sortByChange: "sortByChange", recordClick: "recordClick", duplicateRecord: "duplicateRecord", deleteRecord: "deleteRecord", rollbackDraft: "rollbackDraft", recordsSelectedChange: "recordsSelectedChange" }, providers: [provideIcons({ iconoirUser, iconoirLock, matMoreVert })], viewQueries: [{ propertyName: "actionMenuButtons", predicate: ["actionMenuButton"], descendants: true, read: ElementRef }], ngImport: i0, template: "<gn-ui-interactive-table\n [items]=\"records\"\n [isDraftPage]=\"isDraftPage\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'3rem'\">\n <ng-template #cell let-item let-i=\"index\">\n <ng-icon\n name=\"iconoirLock\"\n class=\"text-purple\"\n *ngIf=\"!item.extras?.edit && !isDraftPage\"\n ></ng-icon>\n <gn-ui-checkbox\n *ngIf=\"item.extras?.edit || isDraftPage\"\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [grow]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full font-semibold\">\n <span data-cy=\"resultItemTitle\" class=\"overflow-hidden text-ellipsis\">{{\n item.title\n }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.2em 0.6em'\"\n [style.--gn-ui-badge-text-size]=\"'12px'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'9rem'\">\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2 font-medium\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0 text-xs\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'12rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.user</span>\n </ng-template>\n <ng-template #cell let-item>\n <ng-icon name=\"iconoirUser\" size=\"16px\"></ng-icon>\n <span data-cy=\"ownerInfo\" class=\"text-xs\">{{\n formatUserInfo(item.extras?.ownerInfo)\n }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'6rem'\">\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n <span class=\"text-xs\">\n {{\n (item.extras?.['isPublishedToAll']\n ? 'record.metadata.status.published'\n : 'record.metadata.status.notPublished'\n ) | translate\n }}</span\n >\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'8rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.changeDate</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex text-left w-full text-xs\">\n {{\n item.extras?.['isPublishedToAll']\n ? dateToString(item.recordUpdated)\n : '-'\n }}\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-button\n cdkOverlayOrigin\n #actionMenuButton\n (buttonClick)=\"openActionMenu(item, template)\"\n type=\"light\"\n data-test=\"record-menu-button\"\n [disabled]=\"!item.extras?.edit && !isDraftPage\"\n >\n <ng-icon\n [ngClass]=\"{\n 'text-purple-light': !item.extras?.edit && !isDraftPage,\n }\"\n name=\"matMoreVert\"\n ></ng-icon>\n </gn-ui-button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item) && !isDuplicating\"\n [canDelete]=\"canDelete(item)\"\n [isDraftPage]=\"isDraftPage\"\n (duplicate)=\"handleDuplicate(item)\"\n (delete)=\"handleDelete(item)\"\n (closeActionMenu)=\"closeActionMenu()\"\n (rollback)=\"handleRollback(item)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: i4.ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: i5.CheckboxComponent, selector: "gn-ui-checkbox", inputs: ["type", "checked", "indeterminate"], outputs: ["changed"] }, { kind: "component", type: i6.BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "component", type: InteractiveTableComponent, selector: "gn-ui-interactive-table", inputs: ["items", "isDraftPage"], outputs: ["itemClick"] }, { kind: "component", type: InteractiveTableColumnComponent, selector: "gn-ui-interactive-table-column", inputs: ["grow", "width", "sortable", "activeSort"], outputs: ["sortChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }, { kind: "directive", type: i7.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ActionMenuComponent, selector: "gn-ui-action-menu", inputs: ["canDuplicate", "canDelete", "isDraftPage"], outputs: ["duplicate", "delete", "closeActionMenu", "rollback"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }] }); }
148
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResultsTableComponent, isStandalone: true, selector: "gn-ui-results-table", inputs: { records: "records", selectedRecordsIdentifiers: "selectedRecordsIdentifiers", sortOrder: "sortOrder", hasDraft: "hasDraft", canDuplicate: "canDuplicate", canDelete: "canDelete", isDraftPage: "isDraftPage", isDuplicating: "isDuplicating" }, outputs: { sortByChange: "sortByChange", recordClick: "recordClick", duplicateRecord: "duplicateRecord", deleteRecord: "deleteRecord", rollbackDraft: "rollbackDraft", recordsSelectedChange: "recordsSelectedChange" }, providers: [provideIcons({ iconoirUser, iconoirLock, matMoreVert })], viewQueries: [{ propertyName: "actionMenuButtons", predicate: ["actionMenuButton"], descendants: true, read: ElementRef }], ngImport: i0, template: "<gn-ui-interactive-table\n [items]=\"records\"\n [isDraftPage]=\"isDraftPage\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'3rem'\">\n <ng-template #cell let-item let-i=\"index\">\n <ng-icon\n name=\"iconoirLock\"\n class=\"text-purple\"\n *ngIf=\"(!item.extras?.edit && !isDraftPage) || item.kind !== 'dataset'\"\n ></ng-icon>\n <gn-ui-checkbox\n *ngIf=\"(item.extras?.edit || isDraftPage) && item.kind === 'dataset'\"\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [grow]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full font-semibold\">\n <span data-cy=\"resultItemTitle\" class=\"overflow-hidden text-ellipsis\">{{\n item.title\n }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.2em 0.6em'\"\n [style.--gn-ui-badge-text-size]=\"'12px'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'9rem'\">\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2 font-medium\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0 text-xs\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'12rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.user</span>\n </ng-template>\n <ng-template #cell let-item>\n <ng-icon name=\"iconoirUser\" size=\"16px\"></ng-icon>\n <span data-cy=\"ownerInfo\" class=\"text-xs\">{{\n formatUserInfo(item.extras?.ownerInfo)\n }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'6rem'\">\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n <span class=\"text-xs\">\n {{\n (item.extras?.['isPublishedToAll']\n ? 'record.metadata.status.published'\n : 'record.metadata.status.notPublished'\n ) | translate\n }}</span\n >\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'8rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.changeDate</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex text-left w-full text-xs\">\n {{\n item.extras?.['isPublishedToAll']\n ? dateToString(item.recordUpdated)\n : '-'\n }}\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-button\n cdkOverlayOrigin\n #actionMenuButton\n (buttonClick)=\"openActionMenu(item, template)\"\n type=\"light\"\n data-test=\"record-menu-button\"\n [disabled]=\"\n (!item.extras?.edit && !isDraftPage) || item.kind !== 'dataset'\n \"\n >\n <ng-icon\n [ngClass]=\"{\n 'text-purple-light':\n (!item.extras?.edit && !isDraftPage) || item.kind !== 'dataset',\n }\"\n name=\"matMoreVert\"\n ></ng-icon>\n </gn-ui-button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item) && !isDuplicating\"\n [canDelete]=\"canDelete(item)\"\n [isDraftPage]=\"isDraftPage\"\n (duplicate)=\"handleDuplicate(item)\"\n (delete)=\"handleDelete(item)\"\n (closeActionMenu)=\"closeActionMenu()\"\n (rollback)=\"handleRollback(item)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: i4.ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: i5.CheckboxComponent, selector: "gn-ui-checkbox", inputs: ["type", "checked", "indeterminate"], outputs: ["changed"] }, { kind: "component", type: i6.BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "component", type: InteractiveTableComponent, selector: "gn-ui-interactive-table", inputs: ["items", "isDraftPage"], outputs: ["itemClick"] }, { kind: "component", type: InteractiveTableColumnComponent, selector: "gn-ui-interactive-table-column", inputs: ["grow", "width", "sortable", "activeSort"], outputs: ["sortChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }, { kind: "directive", type: i7.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ActionMenuComponent, selector: "gn-ui-action-menu", inputs: ["canDuplicate", "canDelete", "isDraftPage"], outputs: ["duplicate", "delete", "closeActionMenu", "rollback"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }] }); }
148
149
  }
149
150
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsTableComponent, decorators: [{
150
151
  type: Component,
@@ -158,7 +159,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
158
159
  ActionMenuComponent,
159
160
  NgIconComponent,
160
161
  CdkOverlayOrigin,
161
- ], providers: [provideIcons({ iconoirUser, iconoirLock, matMoreVert })], template: "<gn-ui-interactive-table\n [items]=\"records\"\n [isDraftPage]=\"isDraftPage\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'3rem'\">\n <ng-template #cell let-item let-i=\"index\">\n <ng-icon\n name=\"iconoirLock\"\n class=\"text-purple\"\n *ngIf=\"!item.extras?.edit && !isDraftPage\"\n ></ng-icon>\n <gn-ui-checkbox\n *ngIf=\"item.extras?.edit || isDraftPage\"\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [grow]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full font-semibold\">\n <span data-cy=\"resultItemTitle\" class=\"overflow-hidden text-ellipsis\">{{\n item.title\n }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.2em 0.6em'\"\n [style.--gn-ui-badge-text-size]=\"'12px'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'9rem'\">\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2 font-medium\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0 text-xs\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'12rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.user</span>\n </ng-template>\n <ng-template #cell let-item>\n <ng-icon name=\"iconoirUser\" size=\"16px\"></ng-icon>\n <span data-cy=\"ownerInfo\" class=\"text-xs\">{{\n formatUserInfo(item.extras?.ownerInfo)\n }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'6rem'\">\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n <span class=\"text-xs\">\n {{\n (item.extras?.['isPublishedToAll']\n ? 'record.metadata.status.published'\n : 'record.metadata.status.notPublished'\n ) | translate\n }}</span\n >\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'8rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.changeDate</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex text-left w-full text-xs\">\n {{\n item.extras?.['isPublishedToAll']\n ? dateToString(item.recordUpdated)\n : '-'\n }}\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-button\n cdkOverlayOrigin\n #actionMenuButton\n (buttonClick)=\"openActionMenu(item, template)\"\n type=\"light\"\n data-test=\"record-menu-button\"\n [disabled]=\"!item.extras?.edit && !isDraftPage\"\n >\n <ng-icon\n [ngClass]=\"{\n 'text-purple-light': !item.extras?.edit && !isDraftPage,\n }\"\n name=\"matMoreVert\"\n ></ng-icon>\n </gn-ui-button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item) && !isDuplicating\"\n [canDelete]=\"canDelete(item)\"\n [isDraftPage]=\"isDraftPage\"\n (duplicate)=\"handleDuplicate(item)\"\n (delete)=\"handleDelete(item)\"\n (closeActionMenu)=\"closeActionMenu()\"\n (rollback)=\"handleRollback(item)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n" }]
162
+ ], providers: [provideIcons({ iconoirUser, iconoirLock, matMoreVert })], template: "<gn-ui-interactive-table\n [items]=\"records\"\n [isDraftPage]=\"isDraftPage\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'3rem'\">\n <ng-template #cell let-item let-i=\"index\">\n <ng-icon\n name=\"iconoirLock\"\n class=\"text-purple\"\n *ngIf=\"(!item.extras?.edit && !isDraftPage) || item.kind !== 'dataset'\"\n ></ng-icon>\n <gn-ui-checkbox\n *ngIf=\"(item.extras?.edit || isDraftPage) && item.kind === 'dataset'\"\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [grow]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full font-semibold\">\n <span data-cy=\"resultItemTitle\" class=\"overflow-hidden text-ellipsis\">{{\n item.title\n }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.2em 0.6em'\"\n [style.--gn-ui-badge-text-size]=\"'12px'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'9rem'\">\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2 font-medium\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0 text-xs\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'12rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.user</span>\n </ng-template>\n <ng-template #cell let-item>\n <ng-icon name=\"iconoirUser\" size=\"16px\"></ng-icon>\n <span data-cy=\"ownerInfo\" class=\"text-xs\">{{\n formatUserInfo(item.extras?.ownerInfo)\n }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'6rem'\">\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n <span class=\"text-xs\">\n {{\n (item.extras?.['isPublishedToAll']\n ? 'record.metadata.status.published'\n : 'record.metadata.status.notPublished'\n ) | translate\n }}</span\n >\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'8rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.changeDate</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex text-left w-full text-xs\">\n {{\n item.extras?.['isPublishedToAll']\n ? dateToString(item.recordUpdated)\n : '-'\n }}\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-button\n cdkOverlayOrigin\n #actionMenuButton\n (buttonClick)=\"openActionMenu(item, template)\"\n type=\"light\"\n data-test=\"record-menu-button\"\n [disabled]=\"\n (!item.extras?.edit && !isDraftPage) || item.kind !== 'dataset'\n \"\n >\n <ng-icon\n [ngClass]=\"{\n 'text-purple-light':\n (!item.extras?.edit && !isDraftPage) || item.kind !== 'dataset',\n }\"\n name=\"matMoreVert\"\n ></ng-icon>\n </gn-ui-button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item) && !isDuplicating\"\n [canDelete]=\"canDelete(item)\"\n [isDraftPage]=\"isDraftPage\"\n (duplicate)=\"handleDuplicate(item)\"\n (delete)=\"handleDelete(item)\"\n (closeActionMenu)=\"closeActionMenu()\"\n (rollback)=\"handleRollback(item)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n" }]
162
163
  }], ctorParameters: () => [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }, { type: i2.DateService }], propDecorators: { records: [{
163
164
  type: Input
164
165
  }], selectedRecordsIdentifiers: [{
@@ -191,4 +192,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
191
192
  type: ViewChildren,
192
193
  args: ['actionMenuButton', { read: ElementRef }]
193
194
  }] } });
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0cy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMvbGliL3Jlc3VsdHMtdGFibGUvcmVzdWx0cy10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMvbGliL3Jlc3VsdHMtdGFibGUvcmVzdWx0cy10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxZQUFZLEVBQ1osZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFBO0FBTXRCLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDckYsT0FBTyxFQUNMLCtCQUErQixFQUMvQix5QkFBeUIsR0FDMUIsTUFBTSxzQ0FBc0MsQ0FBQTtBQUM3QyxPQUFPLEVBQ0wsV0FBVyxFQUVYLGNBQWMsRUFDZCxhQUFhLEVBQ2IsYUFBYSxFQUNiLGlCQUFpQixHQUNsQixNQUFNLHdDQUF3QyxDQUFBO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDNUQsT0FBTyxFQUVMLGdCQUFnQixFQUNoQixPQUFPLEdBRVIsTUFBTSxzQkFBc0IsQ0FBQTtB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RSxXQUFXLEVBQUUsQ0FBQyxDQUFDO3FLQUczRCxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxxQkFBcUI7c0JBQTlCLE1BQU07Z0JBS1AsaUJBQWlCO3NCQURoQixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGRyZW4sXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDYXRhbG9nUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHtcbiAgRmllbGRTb3J0LFxuICBTb3J0QnlGaWVsZCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvc2VhcmNoJ1xuaW1wb3J0IHsgQmFkZ2VDb21wb25lbnQsIFVpSW5wdXRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHtcbiAgSW50ZXJhY3RpdmVUYWJsZUNvbHVtbkNvbXBvbmVudCxcbiAgSW50ZXJhY3RpdmVUYWJsZUNvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjJ1xuaW1wb3J0IHtcbiAgRGF0ZVNlcnZpY2UsXG4gIEZpbGVGb3JtYXQsXG4gIGZvcm1hdFVzZXJJbmZvLFxuICBnZXRCYWRnZUNvbG9yLFxuICBnZXRGaWxlRm9ybWF0LFxuICBnZXRGb3JtYXRQcmlvcml0eSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgQWN0aW9uTWVudUNvbXBvbmVudCB9IGZyb20gJy4vYWN0aW9uLW1lbnUvYWN0aW9uLW1lbnUuY29tcG9uZW50J1xuaW1wb3J0IHsgTmdJY29uQ29tcG9uZW50LCBwcm92aWRlSWNvbnMgfSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IGljb25vaXJVc2VyLCBpY29ub2lyTG9jayB9IGZyb20gJ0BuZy1pY29ucy9pY29ub2lyJ1xuaW1wb3J0IHtcbiAgQ2RrQ29ubmVjdGVkT3ZlcmxheSxcbiAgQ2RrT3ZlcmxheU9yaWdpbixcbiAgT3ZlcmxheSxcbiAgT3ZlcmxheVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknXG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnXG5pbXBvcnQgeyBtYXRNb3JlVmVydCB9IGZyb20gJ0BuZy1pY29ucy9tYXRlcmlhbC1pY29ucy9iYXNlbGluZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktcmVzdWx0cy10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXN1bHRzLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVzdWx0cy10YWJsZS5jb21wb25lbnQuY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVWlJbnB1dHNNb2R1bGUsXG4gICAgSW50ZXJhY3RpdmVUYWJsZUNvbXBvbmVudCxcbiAgICBJbnRlcmFjdGl2ZVRhYmxlQ29sdW1uQ29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBCYWRnZUNvbXBvbmVudCxcbiAgICBBY3Rpb25NZW51Q29tcG9uZW50LFxuICAgIE5nSWNvbkNvbXBvbmVudCxcbiAgICBDZGtPdmVybGF5T3JpZ2luLFxuICBdLFxuICBwcm92aWRlcnM6IFtwcm92aWRlSWNvbnMoeyBpY29ub2lyVXNlciwgaWNvbm9pckxvY2ssIG1hdE1vcmVWZXJ0IH0pXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVzdWx0c1RhYmxlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcmVjb3JkczogQ2F0YWxvZ1JlY29yZFtdID0gW11cbiAgQElucHV0KCkgc2VsZWN0ZWRSZWNvcmRzSWRlbnRpZmllcnM6IHN0cmluZ1tdID0gW11cbiAgQElucHV0KCkgc29ydE9yZGVyOiBTb3J0QnlGaWVsZCA9IG51bGxcbiAgQElucHV0KCkgaGFzRHJhZnQ6IChyZWNvcmQ6IENhdGFsb2dSZWNvcmQpID0+IGJvb2xlYW4gPSAoKSA9PiBmYWxzZVxuICBASW5wdXQoKSBjYW5EdXBsaWNhdGU6IChyZWNvcmQ6IENhdGFsb2dSZWNvcmQpID0+IGJvb2xlYW4gPSAoKSA9PiB0cnVlXG4gIEBJbnB1dCgpIGNhbkRlbGV0ZTogKHJlY29yZDogQ2F0YWxvZ1JlY29yZCkgPT4gYm9vbGVhbiA9ICgpID0+IHRydWVcbiAgQElucHV0KCkgaXNEcmFmdFBhZ2UgPSBmYWxzZVxuICBASW5wdXQoKSBpc0R1cGxpY2F0aW5nID0gZmFsc2VcblxuICAvLyBlbWl0cyB0aGUgY29sdW1uIChmaWVsZCkgYXMgd2VsbCBhcyB0aGUgb3JkZXJcbiAgQE91dHB1dCgpIHNvcnRCeUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8W3N0cmluZywgJ2FzYycgfCAnZGVzYyddPigpXG4gIEBPdXRwdXQoKSByZWNvcmRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q2F0YWxvZ1JlY29yZD4oKVxuICBAT3V0cHV0KCkgZHVwbGljYXRlUmVjb3JkID0gbmV3IEV2ZW50RW1pdHRlcjxDYXRhbG9nUmVjb3JkPigpXG4gIEBPdXRwdXQoKSBkZWxldGVSZWNvcmQgPSBuZXcgRXZlbnRFbWl0dGVyPENhdGFsb2dSZWNvcmQ+KClcbiAgQE91dHB1dCgpIHJvbGxiYWNrRHJhZnQgPSBuZXcgRXZlbnRFbWl0dGVyPENhdGFsb2dSZWNvcmQ+KClcbiAgQE91dHB1dCgpIHJlY29yZHNTZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgW0NhdGFsb2dSZWNvcmRbXSwgYm9vbGVhbl1cbiAgPigpXG5cbiAgQFZpZXdDaGlsZHJlbignYWN0aW9uTWVudUJ1dHRvbicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBhY3Rpb25NZW51QnV0dG9ucyE6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPlxuICBwcml2YXRlIG92ZXJsYXlSZWYhOiBPdmVybGF5UmVmXG5cbiAgaXNBY3Rpb25NZW51T3BlbiA9IGZhbHNlXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBkYXRlU2VydmljZTogRGF0ZVNlcnZpY2VcbiAgKSB7fVxuXG4gIG9wZW5BY3Rpb25NZW51KGl0ZW0sIHRlbXBsYXRlKSB7XG4gICAgdGhpcy5pc0FjdGlvbk1lbnVPcGVuID0gdHJ1ZVxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5yZWNvcmRzLmluZGV4T2YoaXRlbSlcbiAgICBjb25zdCBidXR0b25FbGVtZW50ID0gdGhpcy5hY3Rpb25NZW51QnV0dG9ucy50b0FycmF5KClbaW5kZXhdXG5cbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAucG9zaXRpb24oKVxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8oYnV0dG9uRWxlbWVudClcbiAgICAgIC53aXRoRmxleGlibGVEaW1lbnNpb25zKHRydWUpXG4gICAgICAud2l0aFB1c2godHJ1ZSlcbiAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAge1xuICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgIG92ZXJsYXlYOiAnZW5kJyxcbiAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgICBvdmVybGF5WDogJ2VuZCcsXG4gICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgICAgICB9LFxuICAgICAgXSlcblxuICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoe1xuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICBiYWNrZHJvcENsYXNzOiAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnLFxuICAgICAgcG9zaXRpb25TdHJhdGVneTogcG9zaXRpb25TdHJhdGVneSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXG4gICAgfSlcblxuICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0ZW1wbGF0ZSwgdGhpcy52aWV3Q29udGFpbmVyUmVmKVxuXG4gICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpXG5cbiAgICB0aGlzLm92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmNsb3NlQWN0aW9uTWVudSgpXG4gICAgfSlcbiAgfVxuXG4gIGNsb3NlQWN0aW9uTWVudSgpIHtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLmlzQWN0aW9uTWVudU9wZW4gPSBmYWxzZVxuICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKVxuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKClcbiAgICB9XG4gIH1cblxuICBkYXRlVG9TdHJpbmcoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZVNlcnZpY2UuZm9ybWF0RGF0ZShkYXRlLCB7XG4gICAgICB5ZWFyOiAnbnVtZXJpYycsXG4gICAgICBtb250aDogJ2xvbmcnLFxuICAgICAgZGF5OiAnbnVtZXJpYycsXG4gICAgICB0aW1lWm9uZTogJ1VUQycsXG4gICAgfSlcbiAgfVxuXG4gIGdldFJlY29yZEZvcm1hdHMocmVjb3JkOiBDYXRhbG9nUmVjb3JkKTogRmlsZUZvcm1hdFtdIHtcbiAgICBpZiAocmVjb3JkLmtpbmQgPT09ICdzZXJ2aWNlJyB8fCAhKCdvbmxpbmVSZXNvdXJjZXMnIGluIHJlY29yZCkpIHtcbiAgICAgIHJldHVybiBbXVxuICAgIH1cbiAgICBjb25zdCBmb3JtYXRzID0gQXJyYXkuZnJvbShcbiAgICAgIG5ldyBTZXQoXG4gICAgICAgIHJlY29yZC5vbmxpbmVSZXNvdXJjZXMubWFwKChvbmxpbmVSZXNvdXJjZSkgPT5cbiAgICAgICAgICBnZXRGaWxlRm9ybWF0KG9ubGluZVJlc291cmNlKVxuICAgICAgICApXG4gICAgICApXG4gICAgKS5maWx0ZXIoKGZvcm1hdCkgPT4gISFmb3JtYXQpXG4gICAgZm9ybWF0cy5zb3J0KChhLCBiKSA9PiBnZXRGb3JtYXRQcmlvcml0eShiKSAtIGdldEZvcm1hdFByaW9yaXR5KGEpKVxuICAgIHJldHVybiBmb3JtYXRzXG4gIH1cblxuICBmb3JtYXRVc2VySW5mbyh1c2VySW5mbzogc3RyaW5nIHwgdW5rbm93bik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGZvcm1hdFVzZXJJbmZvKHVzZXJJbmZvKVxuICB9XG5cbiAgZ2V0QmFkZ2VDb2xvcihmb3JtYXQ6IEZpbGVGb3JtYXQpOiBzdHJpbmcge1xuICAgIHJldHVybiBnZXRCYWRnZUNvbG9yKGZvcm1hdClcbiAgfVxuXG4gIGhhbmRsZVJlY29yZENsaWNrKGl0ZW06IENhdGFsb2dSZWNvcmQpIHtcbiAgICBpZiAoaXRlbT8uZXh0cmFzPy5lZGl0IHx8IHRoaXMuaXNEcmFmdFBhZ2UpXG4gICAgICB0aGlzLnJlY29yZENsaWNrLmVtaXQoaXRlbSBhcyBDYXRhbG9nUmVjb3JkKVxuICB9XG5cbiAgaGFuZGxlRHVwbGljYXRlKGl0ZW06IHVua25vd24pIHtcbiAgICB0aGlzLmR1cGxpY2F0ZVJlY29yZC5lbWl0KGl0ZW0gYXMgQ2F0YWxvZ1JlY29yZClcbiAgfVxuXG4gIGhhbmRsZURlbGV0ZShpdGVtOiB1bmtub3duKSB7XG4gICAgdGhpcy5kZWxldGVSZWNvcmQuZW1pdChpdGVtIGFzIENhdGFsb2dSZWNvcmQpXG4gICAgdGhpcy5jbG9zZUFjdGlvbk1lbnUoKVxuICB9XG5cbiAgaGFuZGxlUm9sbGJhY2soaXRlbTogdW5rbm93bikge1xuICAgIHRoaXMucm9sbGJhY2tEcmFmdC5lbWl0KGl0ZW0gYXMgQ2F0YWxvZ1JlY29yZClcbiAgICB0aGlzLmNsb3NlQWN0aW9uTWVudSgpXG4gIH1cblxuICBzZXRTb3J0QnkoY29sOiBzdHJpbmcsIG9yZGVyOiAnYXNjJyB8ICdkZXNjJykge1xuICAgIHRoaXMuc29ydEJ5Q2hhbmdlLmVtaXQoW2NvbCwgb3JkZXJdKVxuICB9XG5cbiAgaXNTb3J0ZWRCeShjb2w6IHN0cmluZyk6ICdkZXNjJyB8ICdhc2MnIHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLnNvcnRPcmRlcikge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgY29uc3Qgc29ydEFycmF5ID0gQXJyYXkuaXNBcnJheSh0aGlzLnNvcnRPcmRlclswXSlcbiAgICAgID8gKHRoaXMuc29ydE9yZGVyIGFzIEZpZWxkU29ydFtdKVxuICAgICAgOiAoW3RoaXMuc29ydE9yZGVyXSBhcyBGaWVsZFNvcnRbXSlcbiAgICBmb3IgKGNvbnN0IHNvcnQgb2Ygc29ydEFycmF5KSB7XG4gICAgICBpZiAoc29ydFsxXSA9PT0gY29sKSB7XG4gICAgICAgIHJldHVybiBzb3J0WzBdXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBpc0NoZWNrZWQocmVjb3JkOiBDYXRhbG9nUmVjb3JkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRSZWNvcmRzSWRlbnRpZmllcnMuaW5jbHVkZXMocmVjb3JkLnVuaXF1ZUlkZW50aWZpZXIpXG4gIH1cblxuICBoYW5kbGVSZWNvcmRTZWxlY3RlZENoYW5nZShzZWxlY3RlZDogYm9vbGVhbiwgcmVjb3JkOiBDYXRhbG9nUmVjb3JkKSB7XG4gICAgdGhpcy5yZWNvcmRzU2VsZWN0ZWRDaGFuZ2UuZW1pdChbW3JlY29yZF0sIHNlbGVjdGVkXSlcbiAgfVxufVxuIiwiPGduLXVpLWludGVyYWN0aXZlLXRhYmxlXG4gIFtpdGVtc109XCJyZWNvcmRzXCJcbiAgW2lzRHJhZnRQYWdlXT1cImlzRHJhZnRQYWdlXCJcbiAgKGl0ZW1DbGljayk9XCJoYW5kbGVSZWNvcmRDbGljaygkZXZlbnQpXCJcbj5cbiAgPCEtLSBTRUxFQ1RFRCBDT0xVTU4gLS0+XG4gIDxnbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4gW3dpZHRoXT1cIiczcmVtJ1wiPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2VsbCBsZXQtaXRlbSBsZXQtaT1cImluZGV4XCI+XG4gICAgICA8bmctaWNvblxuICAgICAgICBuYW1lPVwiaWNvbm9pckxvY2tcIlxuICAgICAgICBjbGFzcz1cInRleHQtcHVycGxlXCJcbiAgICAgICAgKm5nSWY9XCIhaXRlbS5leHRyYXM/LmVkaXQgJiYgIWlzRHJhZnRQYWdlXCJcbiAgICAgID48L25nLWljb24+XG4gICAgICA8Z24tdWktY2hlY2tib3hcbiAgICAgICAgKm5nSWY9XCJpdGVtLmV4dHJhcz8uZWRpdCB8fCBpc0RyYWZ0UGFnZVwiXG4gICAgICAgIFtjaGVja2VkXT1cImlzQ2hlY2tlZChpdGVtKVwiXG4gICAgICAgIChjaGFuZ2VkKT1cImhhbmRsZVJlY29yZFNlbGVjdGVkQ2hhbmdlKCRldmVudCwgaXRlbSlcIlxuICAgICAgICBjbGFzcz1cIi1tLTJcIlxuICAgICAgICB0eXBlPVwiZGVmYXVsdFwiXG4gICAgICA+PC9nbi11aS1jaGVja2JveD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2duLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbj5cblxuICA8IS0tIFRJVExFIENPTFVNTiAtLT5cbiAgPGduLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtblxuICAgIFtzb3J0YWJsZV09XCJ0cnVlXCJcbiAgICBbZ3Jvd109XCJ0cnVlXCJcbiAgICBbYWN0aXZlU29ydF09XCJpc1NvcnRlZEJ5KCdyZXNvdXJjZVRpdGxlT2JqZWN0LmRlZmF1bHQua2V5d29yZCcpXCJcbiAgICAoc29ydENoYW5nZSk9XCJzZXRTb3J0QnkoJ3Jlc291cmNlVGl0bGVPYmplY3QuZGVmYXVsdC5rZXl3b3JkJywgJGV2ZW50KVwiXG4gID5cbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEudGl0bGU8L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LWl0ZW0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIgZ2FwLTIgbWF4LXctZnVsbCBmb250LXNlbWlib2xkXCI+XG4gICAgICAgIDxzcGFuIGRhdGEtY3k9XCJyZXN1bHRJdGVtVGl0bGVcIiBjbGFzcz1cIm92ZXJmbG93LWhpZGRlbiB0ZXh0LWVsbGlwc2lzXCI+e3tcbiAgICAgICAgICBpdGVtLnRpdGxlXG4gICAgICAgIH19PC9zcGFuPlxuICAgICAgICA8Z24tdWktYmFkZ2VcbiAgICAgICAgICAqbmdJZj1cImhhc0RyYWZ0KGl0ZW0pXCJcbiAgICAgICAgICBbc3R5bGUuLS1nbi11aS1iYWRnZS1wYWRkaW5nXT1cIicwLjJlbSAwLjZlbSdcIlxuICAgICAgICAgIFtzdHlsZS4tLWduLXVpLWJhZGdlLXRleHQtc2l6ZV09XCInMTJweCdcIlxuICAgICAgICAgIFtzdHlsZS4tLWduLXVpLWJhZGdlLXRleHQtY29sb3JdPVwiJyMzZDIwMDYnXCJcbiAgICAgICAgICBbc3R5bGUuLS1nbi11aS1iYWRnZS1iYWNrZ3JvdW5kLWNvbG9yXT1cIicjZmZiYzdiJ1wiXG4gICAgICAgICAgW3N0eWxlLi0tZ24tdWktYmFkZ2Utcm91bmRlZF09XCInNHB4J1wiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiB0cmFuc2xhdGU+ZGFzaGJvYXJkLnJlY29yZHMuaGFzRHJhZnQ8L3NwYW4+XG4gICAgICAgIDwvZ24tdWktYmFkZ2U+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2duLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbj5cblxuICA8IS0tIEZPUk1BVFMgQ09MVU1OIC0tPlxuICA8Z24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uIFt3aWR0aF09XCInOXJlbSdcIj5cbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEuZm9ybWF0czwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2VsbCBsZXQtaXRlbT5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmbGV4IGp1c3RpZnktc3RhcnQgaXRlbXMtY2VudGVyIGdhcC0yIGZvbnQtbWVkaXVtXCJcbiAgICAgICAgKm5nSWY9XCJnZXRSZWNvcmRGb3JtYXRzKGl0ZW0pIGFzIGZvcm1hdHNcIlxuICAgICAgICBbdGl0bGVdPVwiZm9ybWF0cy5qb2luKCcsICcpXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cImJhZGdlLWJ0biBtaW4tdy1bNDVweF0gdGV4dC14cyB0ZXh0LWdyYXktOTAwIHB4LTIgc2hyaW5rLTBcIlxuICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImdldEJhZGdlQ29sb3IoZm9ybWF0c1swXSlcIlxuICAgICAgICAgICpuZ0lmPVwiZm9ybWF0c1swXVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBmb3JtYXRzWzBdIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cImJhZGdlLWJ0biBtaW4tdy1bNDVweF0gdGV4dC14cyB0ZXh0LWdyYXktOTAwIHB4LTIgc2hyaW5rLTBcIlxuICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImdldEJhZGdlQ29sb3IoZm9ybWF0c1sxXSlcIlxuICAgICAgICAgICpuZ0lmPVwiZm9ybWF0c1sxXVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBmb3JtYXRzWzFdIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNocmluay0wIHRleHQteHNcIiAqbmdJZj1cImZvcm1hdHMuc2xpY2UoMikubGVuZ3RoID4gMFwiPlxuICAgICAgICAgIDxzcGFuPit7eyBmb3JtYXRzLnNsaWNlKDIpLmxlbmd0aCB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCIhZ2V0UmVjb3JkRm9ybWF0cyhpdGVtKVwiPjwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuXG4gIDwhLS0gT1dORVIgQ09MVU1OIC0tPlxuICA8Z24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uXG4gICAgW3dpZHRoXT1cIicxMnJlbSdcIlxuICAgIFtzb3J0YWJsZV09XCJ0cnVlXCJcbiAgICBbYWN0aXZlU29ydF09XCJpc1NvcnRlZEJ5KCdyZWNvcmRPd25lcicpXCJcbiAgICAoc29ydENoYW5nZSk9XCJzZXRTb3J0QnkoJ3JlY29yZE93bmVyJywgJGV2ZW50KVwiXG4gID5cbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT5zZWFyY2guZmlsdGVycy51c2VyPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNjZWxsIGxldC1pdGVtPlxuICAgICAgPG5nLWljb24gbmFtZT1cImljb25vaXJVc2VyXCIgc2l6ZT1cIjE2cHhcIj48L25nLWljb24+XG4gICAgICA8c3BhbiBkYXRhLWN5PVwib3duZXJJbmZvXCIgY2xhc3M9XCJ0ZXh0LXhzXCI+e3tcbiAgICAgICAgZm9ybWF0VXNlckluZm8oaXRlbS5leHRyYXM/Lm93bmVySW5mbylcbiAgICAgIH19PC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuXG4gIDwhLS0gU1RBVFVTIENPTFVNTiAtLT5cbiAgPGduLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbiBbd2lkdGhdPVwiJzZyZW0nXCI+XG4gICAgPG5nLXRlbXBsYXRlICNoZWFkZXI+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLnN0YXR1czwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2VsbCBsZXQtaXRlbT5cbiAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC14c1wiPlxuICAgICAgICB7e1xuICAgICAgICAgIChpdGVtLmV4dHJhcz8uWydpc1B1Ymxpc2hlZFRvQWxsJ11cbiAgICAgICAgICAgID8gJ3JlY29yZC5tZXRhZGF0YS5zdGF0dXMucHVibGlzaGVkJ1xuICAgICAgICAgICAgOiAncmVjb3JkLm1ldGFkYXRhLnN0YXR1cy5ub3RQdWJsaXNoZWQnXG4gICAgICAgICAgKSB8IHRyYW5zbGF0ZVxuICAgICAgICB9fTwvc3BhblxuICAgICAgPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuXG4gIDwhLS0gVVBEQVRFIERBVEUgQ09MVU1OIC0tPlxuICA8Z24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uXG4gICAgW3dpZHRoXT1cIic4cmVtJ1wiXG4gICAgW3NvcnRhYmxlXT1cInRydWVcIlxuICAgIFthY3RpdmVTb3J0XT1cImlzU29ydGVkQnkoJ2NoYW5nZURhdGUnKVwiXG4gICAgKHNvcnRDaGFuZ2UpPVwic2V0U29ydEJ5KCdjaGFuZ2VEYXRlJywgJGV2ZW50KVwiXG4gID5cbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT5zZWFyY2guZmlsdGVycy5jaGFuZ2VEYXRlPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNjZWxsIGxldC1pdGVtPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggdGV4dC1sZWZ0IHctZnVsbCB0ZXh0LXhzXCI+XG4gICAgICAgIHt7XG4gICAgICAgICAgaXRlbS5leHRyYXM/LlsnaXNQdWJsaXNoZWRUb0FsbCddXG4gICAgICAgICAgICA/IGRhdGVUb1N0cmluZyhpdGVtLnJlY29yZFVwZGF0ZWQpXG4gICAgICAgICAgICA6ICctJ1xuICAgICAgICB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9nbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4+XG5cbiAgPCEtLSBBQ1RJT04gTUVOVSBDT0xVTU4gLS0+XG4gIDxnbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4+XG4gICAgPG5nLXRlbXBsYXRlICNoZWFkZXI+IDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNjZWxsIGxldC1pdGVtPlxuICAgICAgPGduLXVpLWJ1dHRvblxuICAgICAgICBjZGtPdmVybGF5T3JpZ2luXG4gICAgICAgICNhY3Rpb25NZW51QnV0dG9uXG4gICAgICAgIChidXR0b25DbGljayk9XCJvcGVuQWN0aW9uTWVudShpdGVtLCB0ZW1wbGF0ZSlcIlxuICAgICAgICB0eXBlPVwibGlnaHRcIlxuICAgICAgICBkYXRhLXRlc3Q9XCJyZWNvcmQtbWVudS1idXR0b25cIlxuICAgICAgICBbZGlzYWJsZWRdPVwiIWl0ZW0uZXh0cmFzPy5lZGl0ICYmICFpc0RyYWZ0UGFnZVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1pY29uXG4gICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ3RleHQtcHVycGxlLWxpZ2h0JzogIWl0ZW0uZXh0cmFzPy5lZGl0ICYmICFpc0RyYWZ0UGFnZSxcbiAgICAgICAgICB9XCJcbiAgICAgICAgICBuYW1lPVwibWF0TW9yZVZlcnRcIlxuICAgICAgICA+PC9uZy1pY29uPlxuICAgICAgPC9nbi11aS1idXR0b24+XG4gICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICAgICAgICA8Z24tdWktYWN0aW9uLW1lbnVcbiAgICAgICAgICBbY2FuRHVwbGljYXRlXT1cImNhbkR1cGxpY2F0ZShpdGVtKSAmJiAhaXNEdXBsaWNhdGluZ1wiXG4gICAgICAgICAgW2NhbkRlbGV0ZV09XCJjYW5EZWxldGUoaXRlbSlcIlxuICAgICAgICAgIFtpc0RyYWZ0UGFnZV09XCJpc0RyYWZ0UGFnZVwiXG4gICAgICAgICAgKGR1cGxpY2F0ZSk9XCJoYW5kbGVEdXBsaWNhdGUoaXRlbSlcIlxuICAgICAgICAgIChkZWxldGUpPVwiaGFuZGxlRGVsZXRlKGl0ZW0pXCJcbiAgICAgICAgICAoY2xvc2VBY3Rpb25NZW51KT1cImNsb3NlQWN0aW9uTWVudSgpXCJcbiAgICAgICAgICAocm9sbGJhY2spPVwiaGFuZGxlUm9sbGJhY2soaXRlbSlcIlxuICAgICAgICA+XG4gICAgICAgIDwvZ24tdWktYWN0aW9uLW1lbnU+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuPC9nbi11aS1pbnRlcmFjdGl2ZS10YWJsZT5cbiJdfQ==
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0cy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMvbGliL3Jlc3VsdHMtdGFibGUvcmVzdWx0cy10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMvbGliL3Jlc3VsdHMtdGFibGUvcmVzdWx0cy10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxZQUFZLEVBQ1osZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFBO0FBTXRCLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDckYsT0FBTyxFQUNMLCtCQUErQixFQUMvQix5QkFBeUIsR0FDMUIsTUFBTSxzQ0FBc0MsQ0FBQTtBQUM3QyxPQUFPLEVBQ0wsV0FBVyxFQUVYLGNBQWMsRUFDZCxhQUFhLEVBQ2IsYUFBYSxFQUNiLGlCQUFpQixHQUNsQixNQUFNLHdDQUF3QyxDQUFBO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDNUQsT0FBTyxFQUVMLGdCQUFnQixFQUNoQixPQUFPLEdBRVIsTUFBTSxzQkFBc0IsQ0FBQTtB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Q2YsZ0JBQWdCO3FCQUNqQixhQUNVLENBQUMsWUFBWSxDQUFDLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO3FLQUczRCxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxxQkFBcUI7c0JBQTlCLE1BQU07Z0JBS1AsaUJBQWlCO3NCQURoQixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGRyZW4sXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDYXRhbG9nUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHtcbiAgRmllbGRTb3J0LFxuICBTb3J0QnlGaWVsZCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvc2VhcmNoJ1xuaW1wb3J0IHsgQmFkZ2VDb21wb25lbnQsIFVpSW5wdXRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHtcbiAgSW50ZXJhY3RpdmVUYWJsZUNvbHVtbkNvbXBvbmVudCxcbiAgSW50ZXJhY3RpdmVUYWJsZUNvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjJ1xuaW1wb3J0IHtcbiAgRGF0ZVNlcnZpY2UsXG4gIEZpbGVGb3JtYXQsXG4gIGZvcm1hdFVzZXJJbmZvLFxuICBnZXRCYWRnZUNvbG9yLFxuICBnZXRGaWxlRm9ybWF0LFxuICBnZXRGb3JtYXRQcmlvcml0eSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgQWN0aW9uTWVudUNvbXBvbmVudCB9IGZyb20gJy4vYWN0aW9uLW1lbnUvYWN0aW9uLW1lbnUuY29tcG9uZW50J1xuaW1wb3J0IHsgTmdJY29uQ29tcG9uZW50LCBwcm92aWRlSWNvbnMgfSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IGljb25vaXJVc2VyLCBpY29ub2lyTG9jayB9IGZyb20gJ0BuZy1pY29ucy9pY29ub2lyJ1xuaW1wb3J0IHtcbiAgQ2RrQ29ubmVjdGVkT3ZlcmxheSxcbiAgQ2RrT3ZlcmxheU9yaWdpbixcbiAgT3ZlcmxheSxcbiAgT3ZlcmxheVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknXG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnXG5pbXBvcnQgeyBtYXRNb3JlVmVydCB9IGZyb20gJ0BuZy1pY29ucy9tYXRlcmlhbC1pY29ucy9iYXNlbGluZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktcmVzdWx0cy10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXN1bHRzLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVzdWx0cy10YWJsZS5jb21wb25lbnQuY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVWlJbnB1dHNNb2R1bGUsXG4gICAgSW50ZXJhY3RpdmVUYWJsZUNvbXBvbmVudCxcbiAgICBJbnRlcmFjdGl2ZVRhYmxlQ29sdW1uQ29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBCYWRnZUNvbXBvbmVudCxcbiAgICBBY3Rpb25NZW51Q29tcG9uZW50LFxuICAgIE5nSWNvbkNvbXBvbmVudCxcbiAgICBDZGtPdmVybGF5T3JpZ2luLFxuICBdLFxuICBwcm92aWRlcnM6IFtwcm92aWRlSWNvbnMoeyBpY29ub2lyVXNlciwgaWNvbm9pckxvY2ssIG1hdE1vcmVWZXJ0IH0pXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVzdWx0c1RhYmxlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcmVjb3JkczogQ2F0YWxvZ1JlY29yZFtdID0gW11cbiAgQElucHV0KCkgc2VsZWN0ZWRSZWNvcmRzSWRlbnRpZmllcnM6IHN0cmluZ1tdID0gW11cbiAgQElucHV0KCkgc29ydE9yZGVyOiBTb3J0QnlGaWVsZCA9IG51bGxcbiAgQElucHV0KCkgaGFzRHJhZnQ6IChyZWNvcmQ6IENhdGFsb2dSZWNvcmQpID0+IGJvb2xlYW4gPSAoKSA9PiBmYWxzZVxuICBASW5wdXQoKSBjYW5EdXBsaWNhdGU6IChyZWNvcmQ6IENhdGFsb2dSZWNvcmQpID0+IGJvb2xlYW4gPSAoKSA9PiB0cnVlXG4gIEBJbnB1dCgpIGNhbkRlbGV0ZTogKHJlY29yZDogQ2F0YWxvZ1JlY29yZCkgPT4gYm9vbGVhbiA9ICgpID0+IHRydWVcbiAgQElucHV0KCkgaXNEcmFmdFBhZ2UgPSBmYWxzZVxuICBASW5wdXQoKSBpc0R1cGxpY2F0aW5nID0gZmFsc2VcblxuICAvLyBlbWl0cyB0aGUgY29sdW1uIChmaWVsZCkgYXMgd2VsbCBhcyB0aGUgb3JkZXJcbiAgQE91dHB1dCgpIHNvcnRCeUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8W3N0cmluZywgJ2FzYycgfCAnZGVzYyddPigpXG4gIEBPdXRwdXQoKSByZWNvcmRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q2F0YWxvZ1JlY29yZD4oKVxuICBAT3V0cHV0KCkgZHVwbGljYXRlUmVjb3JkID0gbmV3IEV2ZW50RW1pdHRlcjxDYXRhbG9nUmVjb3JkPigpXG4gIEBPdXRwdXQoKSBkZWxldGVSZWNvcmQgPSBuZXcgRXZlbnRFbWl0dGVyPENhdGFsb2dSZWNvcmQ+KClcbiAgQE91dHB1dCgpIHJvbGxiYWNrRHJhZnQgPSBuZXcgRXZlbnRFbWl0dGVyPENhdGFsb2dSZWNvcmQ+KClcbiAgQE91dHB1dCgpIHJlY29yZHNTZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgW0NhdGFsb2dSZWNvcmRbXSwgYm9vbGVhbl1cbiAgPigpXG5cbiAgQFZpZXdDaGlsZHJlbignYWN0aW9uTWVudUJ1dHRvbicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBhY3Rpb25NZW51QnV0dG9ucyE6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPlxuICBwcml2YXRlIG92ZXJsYXlSZWYhOiBPdmVybGF5UmVmXG5cbiAgaXNBY3Rpb25NZW51T3BlbiA9IGZhbHNlXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBkYXRlU2VydmljZTogRGF0ZVNlcnZpY2VcbiAgKSB7fVxuXG4gIG9wZW5BY3Rpb25NZW51KGl0ZW0sIHRlbXBsYXRlKSB7XG4gICAgdGhpcy5pc0FjdGlvbk1lbnVPcGVuID0gdHJ1ZVxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5yZWNvcmRzLmluZGV4T2YoaXRlbSlcbiAgICBjb25zdCBidXR0b25FbGVtZW50ID0gdGhpcy5hY3Rpb25NZW51QnV0dG9ucy50b0FycmF5KClbaW5kZXhdXG5cbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAucG9zaXRpb24oKVxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8oYnV0dG9uRWxlbWVudClcbiAgICAgIC53aXRoRmxleGlibGVEaW1lbnNpb25zKHRydWUpXG4gICAgICAud2l0aFB1c2godHJ1ZSlcbiAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAge1xuICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgIG92ZXJsYXlYOiAnZW5kJyxcbiAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgICBvdmVybGF5WDogJ2VuZCcsXG4gICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgICAgICB9LFxuICAgICAgXSlcblxuICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoe1xuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICBiYWNrZHJvcENsYXNzOiAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnLFxuICAgICAgcG9zaXRpb25TdHJhdGVneTogcG9zaXRpb25TdHJhdGVneSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXG4gICAgfSlcblxuICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0ZW1wbGF0ZSwgdGhpcy52aWV3Q29udGFpbmVyUmVmKVxuXG4gICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpXG5cbiAgICB0aGlzLm92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmNsb3NlQWN0aW9uTWVudSgpXG4gICAgfSlcbiAgfVxuXG4gIGNsb3NlQWN0aW9uTWVudSgpIHtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLmlzQWN0aW9uTWVudU9wZW4gPSBmYWxzZVxuICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKVxuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKClcbiAgICB9XG4gIH1cblxuICBkYXRlVG9TdHJpbmcoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZVNlcnZpY2UuZm9ybWF0RGF0ZShkYXRlLCB7XG4gICAgICB5ZWFyOiAnbnVtZXJpYycsXG4gICAgICBtb250aDogJ2xvbmcnLFxuICAgICAgZGF5OiAnbnVtZXJpYycsXG4gICAgICB0aW1lWm9uZTogJ1VUQycsXG4gICAgfSlcbiAgfVxuXG4gIGdldFJlY29yZEZvcm1hdHMocmVjb3JkOiBDYXRhbG9nUmVjb3JkKTogRmlsZUZvcm1hdFtdIHtcbiAgICBpZiAocmVjb3JkLmtpbmQgPT09ICdzZXJ2aWNlJyB8fCAhKCdvbmxpbmVSZXNvdXJjZXMnIGluIHJlY29yZCkpIHtcbiAgICAgIHJldHVybiBbXVxuICAgIH1cbiAgICBjb25zdCBmb3JtYXRzID0gQXJyYXkuZnJvbShcbiAgICAgIG5ldyBTZXQoXG4gICAgICAgIHJlY29yZC5vbmxpbmVSZXNvdXJjZXMubWFwKChvbmxpbmVSZXNvdXJjZSkgPT5cbiAgICAgICAgICBnZXRGaWxlRm9ybWF0KG9ubGluZVJlc291cmNlKVxuICAgICAgICApXG4gICAgICApXG4gICAgKS5maWx0ZXIoKGZvcm1hdCkgPT4gISFmb3JtYXQpXG4gICAgZm9ybWF0cy5zb3J0KChhLCBiKSA9PiBnZXRGb3JtYXRQcmlvcml0eShiKSAtIGdldEZvcm1hdFByaW9yaXR5KGEpKVxuICAgIHJldHVybiBmb3JtYXRzXG4gIH1cblxuICBmb3JtYXRVc2VySW5mbyh1c2VySW5mbzogc3RyaW5nIHwgdW5rbm93bik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGZvcm1hdFVzZXJJbmZvKHVzZXJJbmZvKVxuICB9XG5cbiAgZ2V0QmFkZ2VDb2xvcihmb3JtYXQ6IEZpbGVGb3JtYXQpOiBzdHJpbmcge1xuICAgIHJldHVybiBnZXRCYWRnZUNvbG9yKGZvcm1hdClcbiAgfVxuXG4gIGhhbmRsZVJlY29yZENsaWNrKGl0ZW06IENhdGFsb2dSZWNvcmQpIHtcbiAgICBpZiAoKGl0ZW0/LmV4dHJhcz8uZWRpdCB8fCB0aGlzLmlzRHJhZnRQYWdlKSAmJiBpdGVtLmtpbmQgPT09ICdkYXRhc2V0Jykge1xuICAgICAgdGhpcy5yZWNvcmRDbGljay5lbWl0KGl0ZW0gYXMgQ2F0YWxvZ1JlY29yZClcbiAgICB9XG4gIH1cblxuICBoYW5kbGVEdXBsaWNhdGUoaXRlbTogdW5rbm93bikge1xuICAgIHRoaXMuZHVwbGljYXRlUmVjb3JkLmVtaXQoaXRlbSBhcyBDYXRhbG9nUmVjb3JkKVxuICB9XG5cbiAgaGFuZGxlRGVsZXRlKGl0ZW06IHVua25vd24pIHtcbiAgICB0aGlzLmRlbGV0ZVJlY29yZC5lbWl0KGl0ZW0gYXMgQ2F0YWxvZ1JlY29yZClcbiAgICB0aGlzLmNsb3NlQWN0aW9uTWVudSgpXG4gIH1cblxuICBoYW5kbGVSb2xsYmFjayhpdGVtOiB1bmtub3duKSB7XG4gICAgdGhpcy5yb2xsYmFja0RyYWZ0LmVtaXQoaXRlbSBhcyBDYXRhbG9nUmVjb3JkKVxuICAgIHRoaXMuY2xvc2VBY3Rpb25NZW51KClcbiAgfVxuXG4gIHNldFNvcnRCeShjb2w6IHN0cmluZywgb3JkZXI6ICdhc2MnIHwgJ2Rlc2MnKSB7XG4gICAgdGhpcy5zb3J0QnlDaGFuZ2UuZW1pdChbY29sLCBvcmRlcl0pXG4gIH1cblxuICBpc1NvcnRlZEJ5KGNvbDogc3RyaW5nKTogJ2Rlc2MnIHwgJ2FzYycgfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuc29ydE9yZGVyKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICBjb25zdCBzb3J0QXJyYXkgPSBBcnJheS5pc0FycmF5KHRoaXMuc29ydE9yZGVyWzBdKVxuICAgICAgPyAodGhpcy5zb3J0T3JkZXIgYXMgRmllbGRTb3J0W10pXG4gICAgICA6IChbdGhpcy5zb3J0T3JkZXJdIGFzIEZpZWxkU29ydFtdKVxuICAgIGZvciAoY29uc3Qgc29ydCBvZiBzb3J0QXJyYXkpIHtcbiAgICAgIGlmIChzb3J0WzFdID09PSBjb2wpIHtcbiAgICAgICAgcmV0dXJuIHNvcnRbMF1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGlzQ2hlY2tlZChyZWNvcmQ6IENhdGFsb2dSZWNvcmQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFJlY29yZHNJZGVudGlmaWVycy5pbmNsdWRlcyhyZWNvcmQudW5pcXVlSWRlbnRpZmllcilcbiAgfVxuXG4gIGhhbmRsZVJlY29yZFNlbGVjdGVkQ2hhbmdlKHNlbGVjdGVkOiBib29sZWFuLCByZWNvcmQ6IENhdGFsb2dSZWNvcmQpIHtcbiAgICB0aGlzLnJlY29yZHNTZWxlY3RlZENoYW5nZS5lbWl0KFtbcmVjb3JkXSwgc2VsZWN0ZWRdKVxuICB9XG59XG4iLCI8Z24tdWktaW50ZXJhY3RpdmUtdGFibGVcbiAgW2l0ZW1zXT1cInJlY29yZHNcIlxuICBbaXNEcmFmdFBhZ2VdPVwiaXNEcmFmdFBhZ2VcIlxuICAoaXRlbUNsaWNrKT1cImhhbmRsZVJlY29yZENsaWNrKCRldmVudClcIlxuPlxuICA8IS0tIFNFTEVDVEVEIENPTFVNTiAtLT5cbiAgPGduLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbiBbd2lkdGhdPVwiJzNyZW0nXCI+XG4gICAgPG5nLXRlbXBsYXRlICNjZWxsIGxldC1pdGVtIGxldC1pPVwiaW5kZXhcIj5cbiAgICAgIDxuZy1pY29uXG4gICAgICAgIG5hbWU9XCJpY29ub2lyTG9ja1wiXG4gICAgICAgIGNsYXNzPVwidGV4dC1wdXJwbGVcIlxuICAgICAgICAqbmdJZj1cIighaXRlbS5leHRyYXM/LmVkaXQgJiYgIWlzRHJhZnRQYWdlKSB8fCBpdGVtLmtpbmQgIT09ICdkYXRhc2V0J1wiXG4gICAgICA+PC9uZy1pY29uPlxuICAgICAgPGduLXVpLWNoZWNrYm94XG4gICAgICAgICpuZ0lmPVwiKGl0ZW0uZXh0cmFzPy5lZGl0IHx8IGlzRHJhZnRQYWdlKSAmJiBpdGVtLmtpbmQgPT09ICdkYXRhc2V0J1wiXG4gICAgICAgIFtjaGVja2VkXT1cImlzQ2hlY2tlZChpdGVtKVwiXG4gICAgICAgIChjaGFuZ2VkKT1cImhhbmRsZVJlY29yZFNlbGVjdGVkQ2hhbmdlKCRldmVudCwgaXRlbSlcIlxuICAgICAgICBjbGFzcz1cIi1tLTJcIlxuICAgICAgICB0eXBlPVwiZGVmYXVsdFwiXG4gICAgICA+PC9nbi11aS1jaGVja2JveD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2duLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbj5cblxuICA8IS0tIFRJVExFIENPTFVNTiAtLT5cbiAgPGduLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtblxuICAgIFtzb3J0YWJsZV09XCJ0cnVlXCJcbiAgICBbZ3Jvd109XCJ0cnVlXCJcbiAgICBbYWN0aXZlU29ydF09XCJpc1NvcnRlZEJ5KCdyZXNvdXJjZVRpdGxlT2JqZWN0LmRlZmF1bHQua2V5d29yZCcpXCJcbiAgICAoc29ydENoYW5nZSk9XCJzZXRTb3J0QnkoJ3Jlc291cmNlVGl0bGVPYmplY3QuZGVmYXVsdC5rZXl3b3JkJywgJGV2ZW50KVwiXG4gID5cbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEudGl0bGU8L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LWl0ZW0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIgZ2FwLTIgbWF4LXctZnVsbCBmb250LXNlbWlib2xkXCI+XG4gICAgICAgIDxzcGFuIGRhdGEtY3k9XCJyZXN1bHRJdGVtVGl0bGVcIiBjbGFzcz1cIm92ZXJmbG93LWhpZGRlbiB0ZXh0LWVsbGlwc2lzXCI+e3tcbiAgICAgICAgICBpdGVtLnRpdGxlXG4gICAgICAgIH19PC9zcGFuPlxuICAgICAgICA8Z24tdWktYmFkZ2VcbiAgICAgICAgICAqbmdJZj1cImhhc0RyYWZ0KGl0ZW0pXCJcbiAgICAgICAgICBbc3R5bGUuLS1nbi11aS1iYWRnZS1wYWRkaW5nXT1cIicwLjJlbSAwLjZlbSdcIlxuICAgICAgICAgIFtzdHlsZS4tLWduLXVpLWJhZGdlLXRleHQtc2l6ZV09XCInMTJweCdcIlxuICAgICAgICAgIFtzdHlsZS4tLWduLXVpLWJhZGdlLXRleHQtY29sb3JdPVwiJyMzZDIwMDYnXCJcbiAgICAgICAgICBbc3R5bGUuLS1nbi11aS1iYWRnZS1iYWNrZ3JvdW5kLWNvbG9yXT1cIicjZmZiYzdiJ1wiXG4gICAgICAgICAgW3N0eWxlLi0tZ24tdWktYmFkZ2Utcm91bmRlZF09XCInNHB4J1wiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiB0cmFuc2xhdGU+ZGFzaGJvYXJkLnJlY29yZHMuaGFzRHJhZnQ8L3NwYW4+XG4gICAgICAgIDwvZ24tdWktYmFkZ2U+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2duLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbj5cblxuICA8IS0tIEZPUk1BVFMgQ09MVU1OIC0tPlxuICA8Z24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uIFt3aWR0aF09XCInOXJlbSdcIj5cbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEuZm9ybWF0czwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2VsbCBsZXQtaXRlbT5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmbGV4IGp1c3RpZnktc3RhcnQgaXRlbXMtY2VudGVyIGdhcC0yIGZvbnQtbWVkaXVtXCJcbiAgICAgICAgKm5nSWY9XCJnZXRSZWNvcmRGb3JtYXRzKGl0ZW0pIGFzIGZvcm1hdHNcIlxuICAgICAgICBbdGl0bGVdPVwiZm9ybWF0cy5qb2luKCcsICcpXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cImJhZGdlLWJ0biBtaW4tdy1bNDVweF0gdGV4dC14cyB0ZXh0LWdyYXktOTAwIHB4LTIgc2hyaW5rLTBcIlxuICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImdldEJhZGdlQ29sb3IoZm9ybWF0c1swXSlcIlxuICAgICAgICAgICpuZ0lmPVwiZm9ybWF0c1swXVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBmb3JtYXRzWzBdIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cImJhZGdlLWJ0biBtaW4tdy1bNDVweF0gdGV4dC14cyB0ZXh0LWdyYXktOTAwIHB4LTIgc2hyaW5rLTBcIlxuICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImdldEJhZGdlQ29sb3IoZm9ybWF0c1sxXSlcIlxuICAgICAgICAgICpuZ0lmPVwiZm9ybWF0c1sxXVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBmb3JtYXRzWzFdIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNocmluay0wIHRleHQteHNcIiAqbmdJZj1cImZvcm1hdHMuc2xpY2UoMikubGVuZ3RoID4gMFwiPlxuICAgICAgICAgIDxzcGFuPit7eyBmb3JtYXRzLnNsaWNlKDIpLmxlbmd0aCB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCIhZ2V0UmVjb3JkRm9ybWF0cyhpdGVtKVwiPjwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuXG4gIDwhLS0gT1dORVIgQ09MVU1OIC0tPlxuICA8Z24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uXG4gICAgW3dpZHRoXT1cIicxMnJlbSdcIlxuICAgIFtzb3J0YWJsZV09XCJ0cnVlXCJcbiAgICBbYWN0aXZlU29ydF09XCJpc1NvcnRlZEJ5KCdyZWNvcmRPd25lcicpXCJcbiAgICAoc29ydENoYW5nZSk9XCJzZXRTb3J0QnkoJ3JlY29yZE93bmVyJywgJGV2ZW50KVwiXG4gID5cbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT5zZWFyY2guZmlsdGVycy51c2VyPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNjZWxsIGxldC1pdGVtPlxuICAgICAgPG5nLWljb24gbmFtZT1cImljb25vaXJVc2VyXCIgc2l6ZT1cIjE2cHhcIj48L25nLWljb24+XG4gICAgICA8c3BhbiBkYXRhLWN5PVwib3duZXJJbmZvXCIgY2xhc3M9XCJ0ZXh0LXhzXCI+e3tcbiAgICAgICAgZm9ybWF0VXNlckluZm8oaXRlbS5leHRyYXM/Lm93bmVySW5mbylcbiAgICAgIH19PC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuXG4gIDwhLS0gU1RBVFVTIENPTFVNTiAtLT5cbiAgPGduLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbiBbd2lkdGhdPVwiJzZyZW0nXCI+XG4gICAgPG5nLXRlbXBsYXRlICNoZWFkZXI+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLnN0YXR1czwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2VsbCBsZXQtaXRlbT5cbiAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC14c1wiPlxuICAgICAgICB7e1xuICAgICAgICAgIChpdGVtLmV4dHJhcz8uWydpc1B1Ymxpc2hlZFRvQWxsJ11cbiAgICAgICAgICAgID8gJ3JlY29yZC5tZXRhZGF0YS5zdGF0dXMucHVibGlzaGVkJ1xuICAgICAgICAgICAgOiAncmVjb3JkLm1ldGFkYXRhLnN0YXR1cy5ub3RQdWJsaXNoZWQnXG4gICAgICAgICAgKSB8IHRyYW5zbGF0ZVxuICAgICAgICB9fTwvc3BhblxuICAgICAgPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuXG4gIDwhLS0gVVBEQVRFIERBVEUgQ09MVU1OIC0tPlxuICA8Z24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uXG4gICAgW3dpZHRoXT1cIic4cmVtJ1wiXG4gICAgW3NvcnRhYmxlXT1cInRydWVcIlxuICAgIFthY3RpdmVTb3J0XT1cImlzU29ydGVkQnkoJ2NoYW5nZURhdGUnKVwiXG4gICAgKHNvcnRDaGFuZ2UpPVwic2V0U29ydEJ5KCdjaGFuZ2VEYXRlJywgJGV2ZW50KVwiXG4gID5cbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT5zZWFyY2guZmlsdGVycy5jaGFuZ2VEYXRlPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNjZWxsIGxldC1pdGVtPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggdGV4dC1sZWZ0IHctZnVsbCB0ZXh0LXhzXCI+XG4gICAgICAgIHt7XG4gICAgICAgICAgaXRlbS5leHRyYXM/LlsnaXNQdWJsaXNoZWRUb0FsbCddXG4gICAgICAgICAgICA/IGRhdGVUb1N0cmluZyhpdGVtLnJlY29yZFVwZGF0ZWQpXG4gICAgICAgICAgICA6ICctJ1xuICAgICAgICB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9nbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4+XG5cbiAgPCEtLSBBQ1RJT04gTUVOVSBDT0xVTU4gLS0+XG4gIDxnbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4+XG4gICAgPG5nLXRlbXBsYXRlICNoZWFkZXI+IDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNjZWxsIGxldC1pdGVtPlxuICAgICAgPGduLXVpLWJ1dHRvblxuICAgICAgICBjZGtPdmVybGF5T3JpZ2luXG4gICAgICAgICNhY3Rpb25NZW51QnV0dG9uXG4gICAgICAgIChidXR0b25DbGljayk9XCJvcGVuQWN0aW9uTWVudShpdGVtLCB0ZW1wbGF0ZSlcIlxuICAgICAgICB0eXBlPVwibGlnaHRcIlxuICAgICAgICBkYXRhLXRlc3Q9XCJyZWNvcmQtbWVudS1idXR0b25cIlxuICAgICAgICBbZGlzYWJsZWRdPVwiXG4gICAgICAgICAgKCFpdGVtLmV4dHJhcz8uZWRpdCAmJiAhaXNEcmFmdFBhZ2UpIHx8IGl0ZW0ua2luZCAhPT0gJ2RhdGFzZXQnXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIDxuZy1pY29uXG4gICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ3RleHQtcHVycGxlLWxpZ2h0JzpcbiAgICAgICAgICAgICAgKCFpdGVtLmV4dHJhcz8uZWRpdCAmJiAhaXNEcmFmdFBhZ2UpIHx8IGl0ZW0ua2luZCAhPT0gJ2RhdGFzZXQnLFxuICAgICAgICAgIH1cIlxuICAgICAgICAgIG5hbWU9XCJtYXRNb3JlVmVydFwiXG4gICAgICAgID48L25nLWljb24+XG4gICAgICA8L2duLXVpLWJ1dHRvbj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjdGVtcGxhdGU+XG4gICAgICAgIDxnbi11aS1hY3Rpb24tbWVudVxuICAgICAgICAgIFtjYW5EdXBsaWNhdGVdPVwiY2FuRHVwbGljYXRlKGl0ZW0pICYmICFpc0R1cGxpY2F0aW5nXCJcbiAgICAgICAgICBbY2FuRGVsZXRlXT1cImNhbkRlbGV0ZShpdGVtKVwiXG4gICAgICAgICAgW2lzRHJhZnRQYWdlXT1cImlzRHJhZnRQYWdlXCJcbiAgICAgICAgICAoZHVwbGljYXRlKT1cImhhbmRsZUR1cGxpY2F0ZShpdGVtKVwiXG4gICAgICAgICAgKGRlbGV0ZSk9XCJoYW5kbGVEZWxldGUoaXRlbSlcIlxuICAgICAgICAgIChjbG9zZUFjdGlvbk1lbnUpPVwiY2xvc2VBY3Rpb25NZW51KClcIlxuICAgICAgICAgIChyb2xsYmFjayk9XCJoYW5kbGVSb2xsYmFjayhpdGVtKVwiXG4gICAgICAgID5cbiAgICAgICAgPC9nbi11aS1hY3Rpb24tbWVudT5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9nbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4+XG48L2duLXVpLWludGVyYWN0aXZlLXRhYmxlPlxuIl19