geonetwork-ui 2.2.0-dev.886aae61 → 2.2.0-dev.8cce3b0e

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 (365) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/gn4/atomic-operations.mjs +2 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +77 -52
  3. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.mjs +5 -3
  4. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/converter.mjs +16 -11
  5. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +23 -16
  6. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +21 -18
  7. package/esm2022/libs/api/repository/src/lib/gn4/index.mjs +3 -1
  8. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +10 -3
  9. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +14 -5
  10. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +33 -8
  11. package/esm2022/libs/api/repository/src/lib/gn4/selection/selection.service.mjs +13 -26
  12. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  13. package/esm2022/libs/common/domain/src/lib/model/search/aggregation.model.mjs +1 -1
  14. package/esm2022/libs/common/domain/src/lib/model/search/field.model.mjs +2 -0
  15. package/esm2022/libs/common/domain/src/lib/model/search/filter.model.mjs +1 -1
  16. package/esm2022/libs/common/domain/src/lib/model/search/index.mjs +2 -1
  17. package/esm2022/libs/common/domain/src/lib/model/search/search.model.mjs +1 -1
  18. package/esm2022/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.mjs +1 -1
  19. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  20. package/esm2022/libs/feature/catalog/src/lib/my-org/my-org.service.mjs +4 -10
  21. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +5 -4
  22. package/esm2022/libs/feature/editor/src/lib/record-form/record-form.component.mjs +5 -3
  23. package/esm2022/libs/feature/map/src/index.mjs +2 -1
  24. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.mjs +1 -1
  25. package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs +106 -0
  26. package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +64 -0
  27. package/esm2022/libs/feature/map/src/lib/constant/index.mjs +2 -1
  28. package/esm2022/libs/feature/map/src/lib/constant/projections.mjs +2 -0
  29. package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +23 -3
  30. package/esm2022/libs/feature/map/src/lib/geocoding/geocoding.component.mjs +93 -0
  31. package/esm2022/libs/feature/map/src/lib/geocoding.service.mjs +40 -0
  32. package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +5 -3
  33. package/esm2022/libs/feature/map/src/lib/map-context/map-context.service.mjs +11 -1
  34. package/esm2022/libs/feature/map/src/lib/utils/index.mjs +1 -3
  35. package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +60 -29
  36. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +29 -20
  37. package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +2 -2
  38. package/esm2022/libs/feature/search/src/index.mjs +4 -1
  39. package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +7 -4
  40. package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +2 -6
  41. package/esm2022/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.mjs +1 -1
  42. package/esm2022/libs/feature/search/src/lib/filter-geometry.token.mjs +4 -0
  43. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +7 -3
  44. package/esm2022/libs/feature/search/src/lib/record-url.token.mjs +4 -0
  45. package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +3 -3
  46. package/esm2022/libs/feature/search/src/lib/results-table/results-table.component.mjs +128 -0
  47. package/esm2022/libs/feature/search/src/lib/state/effects.mjs +6 -4
  48. package/esm2022/libs/feature/search/src/lib/state/search.facade.mjs +3 -2
  49. package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +41 -26
  50. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +11 -9
  51. package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +4 -4
  52. package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +1 -1
  53. package/esm2022/libs/ui/elements/src/index.mjs +3 -1
  54. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +3 -3
  55. package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +27 -0
  56. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +3 -3
  57. package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +3 -3
  58. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +35 -17
  59. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +2 -3
  60. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +9 -6
  61. package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +3 -3
  62. package/esm2022/libs/ui/elements/src/lib/thumbnail/thumbnail.component.mjs +7 -3
  63. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +12 -5
  64. package/esm2022/libs/ui/inputs/src/index.mjs +2 -1
  65. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +3 -3
  66. package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +3 -3
  67. package/esm2022/libs/ui/inputs/src/lib/checkbox/checkbox.component.mjs +3 -3
  68. package/esm2022/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.mjs +3 -3
  69. package/esm2022/libs/ui/inputs/src/lib/editable-label/editable-label.directive.mjs +46 -0
  70. package/esm2022/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.mjs +3 -3
  71. package/esm2022/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.mjs +2 -2
  72. package/esm2022/libs/ui/inputs/src/lib/text-area/text-area.component.mjs +3 -3
  73. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +12 -7
  74. package/esm2022/libs/ui/layout/src/index.mjs +3 -1
  75. package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +2 -2
  76. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.mjs +36 -0
  77. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +37 -0
  78. package/esm2022/libs/ui/search/src/index.mjs +1 -2
  79. package/esm2022/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.mjs +1 -1
  80. package/esm2022/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.mjs +1 -1
  81. package/esm2022/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.mjs +1 -1
  82. package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +1 -1
  83. package/esm2022/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.mjs +1 -1
  84. package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +9 -10
  85. package/esm2022/libs/util/i18n/src/index.mjs +1 -2
  86. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +29 -13
  87. package/esm2022/translations/de.json +106 -93
  88. package/esm2022/translations/en.json +38 -25
  89. package/esm2022/translations/es.json +17 -4
  90. package/esm2022/translations/fr.json +22 -9
  91. package/esm2022/translations/it.json +29 -16
  92. package/esm2022/translations/nl.json +17 -4
  93. package/esm2022/translations/pt.json +17 -4
  94. package/fesm2022/geonetwork-ui.mjs +1295 -808
  95. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  96. package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts +1 -0
  97. package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts.map +1 -1
  98. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +0 -1
  99. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  100. package/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.d.ts.map +1 -1
  101. package/libs/api/metadata-converter/src/lib/iso19139/converter.d.ts.map +1 -1
  102. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +5 -4
  103. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  104. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +3 -2
  105. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  106. package/libs/api/repository/src/lib/gn4/index.d.ts +2 -0
  107. package/libs/api/repository/src/lib/gn4/index.d.ts.map +1 -1
  108. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.d.ts.map +1 -1
  109. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts +1 -1
  110. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts.map +1 -1
  111. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +9 -2
  112. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  113. package/libs/api/repository/src/lib/gn4/selection/selection.service.d.ts +4 -5
  114. package/libs/api/repository/src/lib/gn4/selection/selection.service.d.ts.map +1 -1
  115. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +15 -15
  116. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  117. package/libs/common/domain/src/lib/model/search/aggregation.model.d.ts +1 -1
  118. package/libs/common/domain/src/lib/model/search/aggregation.model.d.ts.map +1 -1
  119. package/libs/common/domain/src/lib/model/search/field.model.d.ts +2 -0
  120. package/libs/common/domain/src/lib/model/search/field.model.d.ts.map +1 -0
  121. package/libs/common/domain/src/lib/model/search/filter.model.d.ts +1 -1
  122. package/libs/common/domain/src/lib/model/search/filter.model.d.ts.map +1 -1
  123. package/libs/common/domain/src/lib/model/search/index.d.ts +1 -0
  124. package/libs/common/domain/src/lib/model/search/index.d.ts.map +1 -1
  125. package/libs/common/domain/src/lib/model/search/search.model.d.ts +2 -3
  126. package/libs/common/domain/src/lib/model/search/search.model.d.ts.map +1 -1
  127. package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts +1 -0
  128. package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts.map +1 -1
  129. package/libs/common/domain/src/lib/platform.service.interface.d.ts +1 -1
  130. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  131. package/libs/feature/catalog/src/lib/my-org/my-org.service.d.ts +0 -1
  132. package/libs/feature/catalog/src/lib/my-org/my-org.service.d.ts.map +1 -1
  133. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +15 -2
  134. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  135. package/libs/feature/editor/src/lib/record-form/record-form.component.d.ts.map +1 -1
  136. package/libs/feature/map/src/index.d.ts +1 -0
  137. package/libs/feature/map/src/index.d.ts.map +1 -1
  138. package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts +22 -0
  139. package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts.map +1 -0
  140. package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts +22 -0
  141. package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts.map +1 -0
  142. package/libs/feature/map/src/lib/constant/index.d.ts +1 -0
  143. package/libs/feature/map/src/lib/constant/index.d.ts.map +1 -1
  144. package/libs/feature/map/src/lib/constant/projections.d.ts.map +1 -0
  145. package/libs/feature/map/src/lib/feature-map.module.d.ts +15 -12
  146. package/libs/feature/map/src/lib/feature-map.module.d.ts.map +1 -1
  147. package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts +25 -0
  148. package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts.map +1 -0
  149. package/libs/feature/map/src/lib/geocoding.service.d.ts +18 -0
  150. package/libs/feature/map/src/lib/geocoding.service.d.ts.map +1 -0
  151. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts +2 -0
  152. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts.map +1 -1
  153. package/libs/feature/map/src/lib/utils/index.d.ts +0 -2
  154. package/libs/feature/map/src/lib/utils/index.d.ts.map +1 -1
  155. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts +13 -11
  156. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
  157. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +1 -3
  158. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  159. package/libs/feature/search/src/index.d.ts +3 -0
  160. package/libs/feature/search/src/index.d.ts.map +1 -1
  161. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts +5 -4
  162. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts.map +1 -1
  163. package/libs/feature/search/src/lib/feature-search.module.d.ts +0 -4
  164. package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
  165. package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts +3 -2
  166. package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts.map +1 -1
  167. package/libs/feature/search/src/lib/filter-geometry.token.d.ts +4 -0
  168. package/libs/feature/search/src/lib/filter-geometry.token.d.ts.map +1 -0
  169. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +1 -1
  170. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
  171. package/libs/feature/search/src/lib/record-url.token.d.ts +3 -0
  172. package/libs/feature/search/src/lib/record-url.token.d.ts.map +1 -0
  173. package/libs/feature/search/src/lib/results-table/results-table.component.d.ts +33 -0
  174. package/libs/feature/search/src/lib/results-table/results-table.component.d.ts.map +1 -0
  175. package/libs/feature/search/src/lib/state/effects.d.ts.map +1 -1
  176. package/libs/feature/search/src/lib/state/search.facade.d.ts +1 -1
  177. package/libs/feature/search/src/lib/state/search.facade.d.ts.map +1 -1
  178. package/libs/feature/search/src/lib/utils/service/fields.d.ts +21 -8
  179. package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
  180. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  181. package/libs/ui/dataviz/src/lib/chart/chart.component.d.ts +1 -1
  182. package/libs/ui/elements/src/index.d.ts +2 -0
  183. package/libs/ui/elements/src/index.d.ts.map +1 -1
  184. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
  185. package/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.d.ts +10 -0
  186. package/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.d.ts.map +1 -0
  187. package/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.d.ts +1 -1
  188. package/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.d.ts.map +1 -1
  189. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +7 -2
  190. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
  191. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  192. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +3 -1
  193. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  194. package/libs/ui/elements/src/lib/thumbnail/thumbnail.component.d.ts +3 -2
  195. package/libs/ui/elements/src/lib/thumbnail/thumbnail.component.d.ts.map +1 -1
  196. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +3 -2
  197. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  198. package/libs/ui/inputs/src/index.d.ts +1 -0
  199. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  200. package/libs/ui/inputs/src/lib/button/button.component.d.ts +1 -1
  201. package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
  202. package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts +13 -0
  203. package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts.map +1 -0
  204. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts +1 -1
  205. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts.map +1 -1
  206. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +40 -39
  207. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  208. package/libs/ui/layout/src/index.d.ts +2 -0
  209. package/libs/ui/layout/src/index.d.ts.map +1 -1
  210. package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts +14 -0
  211. package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts.map +1 -0
  212. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts +15 -0
  213. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -0
  214. package/libs/ui/search/src/index.d.ts +0 -1
  215. package/libs/ui/search/src/index.d.ts.map +1 -1
  216. package/libs/ui/search/src/lib/ui-search.module.d.ts +15 -15
  217. package/libs/ui/search/src/lib/ui-search.module.d.ts.map +1 -1
  218. package/libs/util/i18n/src/index.d.ts +0 -1
  219. package/libs/util/i18n/src/index.d.ts.map +1 -1
  220. package/libs/util/shared/src/lib/links/link-utils.d.ts +19 -7
  221. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  222. package/package.json +4 -1
  223. package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +6 -6
  224. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +5 -3
  225. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +22 -4
  226. package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +3 -0
  227. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +112 -65
  228. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.ts +4 -2
  229. package/src/libs/api/metadata-converter/src/lib/iso19139/converter.ts +19 -12
  230. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +62 -43
  231. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +91 -59
  232. package/src/libs/api/repository/src/lib/gn4/index.ts +2 -0
  233. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +22 -2
  234. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +15 -4
  235. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +47 -8
  236. package/src/libs/api/repository/src/lib/gn4/selection/selection.service.ts +14 -38
  237. package/src/libs/common/domain/src/lib/index.ts +2 -0
  238. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +17 -18
  239. package/src/libs/common/domain/src/lib/model/search/aggregation.model.ts +1 -1
  240. package/src/libs/common/domain/src/lib/model/search/field.model.ts +1 -0
  241. package/src/libs/common/domain/src/lib/model/search/filter.model.ts +1 -1
  242. package/src/libs/common/domain/src/lib/model/search/index.ts +1 -0
  243. package/src/libs/common/domain/src/lib/model/search/search.model.ts +2 -2
  244. package/src/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.ts +1 -0
  245. package/src/libs/common/domain/src/lib/model/user/index.ts +1 -0
  246. package/src/libs/common/domain/src/lib/platform.service.interface.ts +1 -4
  247. package/src/libs/common/fixtures/src/lib/gn4/groups.fixtures.ts +1 -1
  248. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +6 -2
  249. package/src/libs/feature/catalog/src/lib/my-org/my-org.service.ts +4 -16
  250. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +8 -5
  251. package/src/libs/feature/editor/src/lib/record-form/record-form.component.ts +2 -1
  252. package/src/libs/feature/map/src/index.ts +1 -0
  253. package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.css +0 -0
  254. package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.html +21 -0
  255. package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.ts +107 -0
  256. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.css +0 -0
  257. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.html +37 -0
  258. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.ts +64 -0
  259. package/src/libs/feature/map/src/lib/constant/index.ts +1 -0
  260. package/src/libs/feature/map/src/lib/feature-map.module.ts +12 -0
  261. package/src/libs/feature/map/src/lib/geocoding/geocoding.component.css +0 -0
  262. package/src/libs/feature/map/src/lib/geocoding/geocoding.component.html +39 -0
  263. package/src/libs/feature/map/src/lib/geocoding/geocoding.component.ts +99 -0
  264. package/src/libs/feature/map/src/lib/geocoding.service.ts +59 -0
  265. package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.html +6 -2
  266. package/src/libs/feature/map/src/lib/map-context/map-context.service.ts +16 -0
  267. package/src/libs/feature/map/src/lib/utils/index.ts +0 -2
  268. package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +85 -50
  269. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +18 -3
  270. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +1 -1
  271. package/src/libs/feature/search/src/index.ts +3 -0
  272. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.html +12 -4
  273. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +2 -1
  274. package/src/libs/feature/search/src/lib/feature-search.module.ts +1 -10
  275. package/src/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.ts +4 -4
  276. package/src/libs/feature/search/src/lib/filter-geometry.token.ts +7 -0
  277. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +9 -3
  278. package/src/libs/feature/search/src/lib/record-url.token.ts +4 -0
  279. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +1 -1
  280. package/src/libs/feature/search/src/lib/results-table/results-table.component.css +0 -0
  281. package/src/libs/feature/search/src/lib/results-table/results-table.component.html +112 -0
  282. package/src/libs/feature/search/src/lib/results-table/results-table.component.ts +164 -0
  283. package/src/libs/feature/search/src/lib/state/effects.ts +5 -4
  284. package/src/libs/feature/search/src/lib/state/search.facade.ts +2 -1
  285. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +21 -16
  286. package/src/libs/feature/search/src/lib/utils/service/fields.ts +43 -34
  287. package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.html +1 -0
  288. package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.ts +1 -1
  289. package/src/libs/ui/elements/src/index.ts +2 -0
  290. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +4 -1
  291. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.css +0 -0
  292. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.html +30 -0
  293. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.ts +15 -0
  294. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.css +5 -0
  295. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.html +39 -0
  296. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.ts +58 -0
  297. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.css +54 -54
  298. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.ts +1 -0
  299. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +2 -2
  300. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.css +4 -0
  301. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +101 -45
  302. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +31 -7
  303. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +1 -2
  304. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +5 -5
  305. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +12 -4
  306. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +1 -1
  307. package/src/libs/ui/elements/src/lib/thumbnail/thumbnail.component.ts +4 -0
  308. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +5 -1
  309. package/src/libs/ui/inputs/src/index.ts +1 -0
  310. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +1 -1
  311. package/src/libs/ui/inputs/src/lib/button/button.component.css +1 -1
  312. package/src/libs/ui/inputs/src/lib/button/button.component.ts +1 -0
  313. package/src/libs/ui/inputs/src/lib/checkbox/checkbox.component.html +0 -1
  314. package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.html +1 -1
  315. package/src/libs/ui/inputs/src/lib/editable-label/editable-label.directive.ts +48 -0
  316. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.html +8 -3
  317. package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.css +1 -0
  318. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.ts +1 -0
  319. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +5 -2
  320. package/src/libs/ui/layout/src/index.ts +2 -0
  321. package/src/libs/ui/layout/src/lib/carousel/carousel.component.css +1 -1
  322. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.css +0 -0
  323. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.html +1 -0
  324. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.ts +33 -0
  325. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.css +15 -0
  326. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +54 -0
  327. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +42 -0
  328. package/src/libs/ui/search/src/index.ts +0 -1
  329. package/src/libs/ui/search/src/lib/ui-search.module.ts +2 -3
  330. package/src/libs/util/i18n/src/index.ts +0 -1
  331. package/src/libs/util/shared/src/lib/links/link-utils.ts +34 -11
  332. package/translations/de.json +106 -93
  333. package/translations/en.json +38 -25
  334. package/translations/es.json +17 -4
  335. package/translations/fr.json +22 -9
  336. package/translations/it.json +29 -16
  337. package/translations/nl.json +17 -4
  338. package/translations/pt.json +17 -4
  339. package/translations/sk.json +17 -4
  340. package/esm2022/libs/feature/map/src/lib/utils/map-utils-wms.service.mjs +0 -55
  341. package/esm2022/libs/feature/map/src/lib/utils/projections.mjs +0 -2
  342. package/esm2022/libs/ui/search/src/lib/record-table/record-table.component.mjs +0 -145
  343. package/esm2022/libs/util/i18n/src/lib/testing/test.translate.loader.mjs +0 -24
  344. package/esm2022/libs/util/i18n/src/lib/testing/test.translate.module.mjs +0 -109
  345. package/esm2022/libs/util/i18n/src/lib/testing/translations.model.mjs +0 -6
  346. package/libs/feature/map/src/lib/utils/map-utils-wms.service.d.ts +0 -17
  347. package/libs/feature/map/src/lib/utils/map-utils-wms.service.d.ts.map +0 -1
  348. package/libs/feature/map/src/lib/utils/projections.d.ts.map +0 -1
  349. package/libs/ui/search/src/lib/record-table/record-table.component.d.ts +0 -31
  350. package/libs/ui/search/src/lib/record-table/record-table.component.d.ts.map +0 -1
  351. package/libs/util/i18n/src/lib/testing/test.translate.loader.d.ts +0 -17
  352. package/libs/util/i18n/src/lib/testing/test.translate.loader.d.ts.map +0 -1
  353. package/libs/util/i18n/src/lib/testing/test.translate.module.d.ts +0 -131
  354. package/libs/util/i18n/src/lib/testing/test.translate.module.d.ts.map +0 -1
  355. package/libs/util/i18n/src/lib/testing/translations.model.d.ts +0 -21
  356. package/libs/util/i18n/src/lib/testing/translations.model.d.ts.map +0 -1
  357. package/src/libs/feature/map/src/lib/utils/map-utils-wms.service.ts +0 -58
  358. package/src/libs/ui/search/src/lib/record-table/record-table.component.css +0 -7
  359. package/src/libs/ui/search/src/lib/record-table/record-table.component.html +0 -215
  360. package/src/libs/ui/search/src/lib/record-table/record-table.component.ts +0 -149
  361. package/src/libs/util/i18n/src/lib/testing/test.translate.loader.ts +0 -26
  362. package/src/libs/util/i18n/src/lib/testing/test.translate.module.ts +0 -235
  363. package/src/libs/util/i18n/src/lib/testing/translations.model.ts +0 -28
  364. /package/libs/feature/map/src/lib/{utils → constant}/projections.d.ts +0 -0
  365. /package/src/libs/feature/map/src/lib/{utils → constant}/projections.ts +0 -0
@@ -21,10 +21,10 @@ import { ResultsListItemComponent } from './results-list-item/results-list-item.
21
21
  import { UiWidgetsModule } from '../../../../../libs/ui/widgets/src';
22
22
  import { UiElementsModule } from '../../../../../libs/ui/elements/src';
23
23
  import { RecordPreviewFeedComponent } from './record-preview-feed/record-preview-feed.component';
24
- import { RecordTableComponent } from './record-table/record-table.component';
25
24
  import { CommonModule } from '@angular/common';
26
25
  import { UiInputsModule } from '../../../../../libs/ui/inputs/src';
27
26
  import { MatCheckboxModule } from '@angular/material/checkbox';
27
+ import { InteractiveTableComponent } from '../../../../../libs/ui/layout/src';
28
28
  import * as i0 from "@angular/core";
29
29
  import * as i1 from "@ngx-translate/core";
30
30
  export class UiSearchModule {
@@ -39,8 +39,7 @@ export class UiSearchModule {
39
39
  ResultsHitsNumberComponent,
40
40
  ResultsListItemComponent,
41
41
  RecordPreviewFeedComponent,
42
- RecordPreviewRowComponent,
43
- RecordTableComponent], imports: [CommonModule, i1.TranslateModule, NgxDropzoneModule,
42
+ RecordPreviewRowComponent], imports: [CommonModule, i1.TranslateModule, NgxDropzoneModule,
44
43
  FacetsModule,
45
44
  FormsModule,
46
45
  ReactiveFormsModule,
@@ -51,7 +50,8 @@ export class UiSearchModule {
51
50
  UiElementsModule,
52
51
  MatIconModule,
53
52
  MatCheckboxModule,
54
- RouterLink], exports: [RecordPreviewListComponent,
53
+ RouterLink,
54
+ InteractiveTableComponent], exports: [RecordPreviewListComponent,
55
55
  RecordPreviewCardComponent,
56
56
  RecordPreviewTextComponent,
57
57
  RecordPreviewTitleComponent,
@@ -61,8 +61,7 @@ export class UiSearchModule {
61
61
  RecordPreviewComponent,
62
62
  ResultsHitsNumberComponent,
63
63
  RecordPreviewFeedComponent,
64
- RecordPreviewRowComponent,
65
- RecordTableComponent] }); }
64
+ RecordPreviewRowComponent] }); }
66
65
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: UiSearchModule, providers: [
67
66
  { provide: RESULTS_LAYOUT_CONFIG, useValue: DEFAULT_RESULTS_LAYOUT_CONFIG },
68
67
  ], imports: [CommonModule,
@@ -77,7 +76,8 @@ export class UiSearchModule {
77
76
  UiInputsModule,
78
77
  UiElementsModule,
79
78
  MatIconModule,
80
- MatCheckboxModule, FacetsModule] }); }
79
+ MatCheckboxModule,
80
+ InteractiveTableComponent, FacetsModule] }); }
81
81
  }
82
82
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: UiSearchModule, decorators: [{
83
83
  type: NgModule,
@@ -94,7 +94,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
94
94
  ResultsListItemComponent,
95
95
  RecordPreviewFeedComponent,
96
96
  RecordPreviewRowComponent,
97
- RecordTableComponent,
98
97
  ],
99
98
  imports: [
100
99
  CommonModule,
@@ -111,6 +110,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
111
110
  MatIconModule,
112
111
  MatCheckboxModule,
113
112
  RouterLink,
113
+ InteractiveTableComponent,
114
114
  ],
115
115
  exports: [
116
116
  RecordPreviewListComponent,
@@ -124,11 +124,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
124
124
  ResultsHitsNumberComponent,
125
125
  RecordPreviewFeedComponent,
126
126
  RecordPreviewRowComponent,
127
- RecordTableComponent,
128
127
  ],
129
128
  providers: [
130
129
  { provide: RESULTS_LAYOUT_CONFIG, useValue: DEFAULT_RESULTS_LAYOUT_CONFIG },
131
130
  ],
132
131
  }]
133
132
  }] });
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktc2VhcmNoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvc2VhcmNoL3NyYy9saWIvdWktc2VhcmNoLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDL0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUE7QUFDaEcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUE7QUFDaEcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbURBQW1ELENBQUE7QUFDN0YsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUE7QUFDaEcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdURBQXVELENBQUE7QUFDbkcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUE7QUFDaEcsT0FBTyxFQUNMLDZCQUE2QixFQUM3QixxQkFBcUIsR0FDdEIsTUFBTSxzQ0FBc0MsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQTtBQUM1RSxPQUFPLEVBQUUsc0JBQXNC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QTBCO3dCQUMxQix5QkFBeUI7d0JBQ3pCLG9CQUFvQjtxQkFDckI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSw2QkFBNkIsRUFBRTtxQkFDNUU7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbidcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5pbXBvcnQgeyBVdGlsU2hhcmVkTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgTmd4RHJvcHpvbmVNb2R1bGUgfSBmcm9tICduZ3gtZHJvcHpvbmUnXG5pbXBvcnQgeyBGYWNldHNNb2R1bGUgfSBmcm9tICcuL2ZhY2V0cy9mYWNldHMubW9kdWxlJ1xuaW1wb3J0IHsgUmVjb3JkTWV0cmljQ29tcG9uZW50IH0gZnJvbSAnLi9yZWNvcmQtbWV0cmljL3JlY29yZC1tZXRyaWMuY29tcG9uZW50J1xuaW1wb3J0IHsgUmVjb3JkUHJldmlld0NhcmRDb21wb25lbnQgfSBmcm9tICcuL3JlY29yZC1wcmV2aWV3LWNhcmQvcmVjb3JkLXByZXZpZXctY2FyZC5jb21wb25lbnQnXG5pbXBvcnQgeyBSZWNvcmRQcmV2aWV3TGlzdENvbXBvbmVudCB9IGZyb20gJy4vcmVjb3JkLXByZXZpZXctbGlzdC9yZWNvcmQtcHJldmlldy1saXN0LmNvbXBvbmVudCdcbmltcG9ydCB7IFJlY29yZFByZXZpZXdSb3dDb21wb25lbnQgfSBmcm9tICcuL3JlY29yZC1wcmV2aWV3LXJvdy9yZWNvcmQtcHJldmlldy1yb3cuY29tcG9uZW50J1xuaW1wb3J0IHsgUmVjb3JkUHJldmlld1RleHRDb21wb25lbnQgfSBmcm9tICcuL3JlY29yZC1wcmV2aWV3LXRleHQvcmVjb3JkLXByZXZpZXctdGV4dC5jb21wb25lbnQnXG5pbXBvcnQgeyBSZWNvcmRQcmV2aWV3VGl0bGVDb21wb25lbnQgfSBmcm9tICcuL3JlY29yZC1wcmV2aWV3LXRpdGxlL3JlY29yZC1wcmV2aWV3LXRpdGxlLmNvbXBvbmVudCdcbmltcG9ydCB7IFJlc3VsdHNIaXRzTnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi9yZXN1bHRzLWhpdHMtbnVtYmVyL3Jlc3VsdHMtaGl0cy1udW1iZXIuY29tcG9uZW50J1xuaW1wb3J0IHtcbiAgREVGQVVMVF9SRVNVTFRTX0xBWU9VVF9DT05GSUcsXG4gIFJFU1VMVFNfTEFZT1VUX0NPTkZJRyxcbn0gZnJvbSAnLi9yZXN1bHRzLWxpc3QvcmVzdWx0cy1sYXlvdXQuY29uZmlnJ1xuaW1wb3J0IHsgUmVzdWx0c0xpc3RDb21wb25lbnQgfSBmcm9tICcuL3Jlc3VsdHMtbGlzdC9yZXN1bHRzLWxpc3QuY29tcG9uZW50J1xuaW1wb3J0IHsgUmVjb3JkUHJldmlld0NvbXBvbmVudCB9IGZyb20gJy4vcmVjb3JkLXByZXZpZXcvcmVjb3JkLXByZXZpZXcuY29tcG9uZW50J1xuaW1wb3J0IHsgVGFnSW5wdXRNb2R1bGUgfSBmcm9tICduZ3gtY2hpcHMnXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgUmVzdWx0c0xpc3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9yZXN1bHRzLWxpc3QtaXRlbS9yZXN1bHRzLWxpc3QtaXRlbS5jb21wb25lbnQnXG5pbXBvcnQgeyBVaVdpZGdldHNNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL3dpZGdldHMvc3JjJ1xuaW1wb3J0IHsgVWlFbGVtZW50c01vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjJ1xuaW1wb3J0IHsgUmVjb3JkUHJldmlld0ZlZWRDb21wb25lbnQgfSBmcm9tICcuL3JlY29yZC1wcmV2aWV3LWZlZWQvcmVjb3JkLXByZXZpZXctZmVlZC5jb21wb25lbnQnXG5pbXBvcnQgeyBSZWNvcmRUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vcmVjb3JkLXRhYmxlL3JlY29yZC10YWJsZS5jb21wb25lbnQnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBVaUlucHV0c01vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFJlY29yZFByZXZpZXdDb21wb25lbnQsXG4gICAgUmVjb3JkUHJldmlld0xpc3RDb21wb25lbnQsXG4gICAgUmVjb3JkUHJldmlld0NhcmRDb21wb25lbnQsXG4gICAgUmVjb3JkUHJldmlld1RleHRDb21wb25lbnQsXG4gICAgUmVjb3JkUHJldmlld1RpdGxlQ29tcG9uZW50LFxuICAgIFJlY29yZE1ldHJpY0NvbXBvbmVudCxcbiAgICBSZXN1bHRzTGlzdENvbXBvbmVudCxcbiAgICBSZXN1bHRzSGl0c051bWJlckNvbXBvbmVudCxcbiAgICBSZXN1bHRzTGlzdEl0ZW1Db21wb25lbnQsXG4gICAgUmVjb3JkUHJldmlld0ZlZWRDb21wb25lbnQsXG4gICAgUmVjb3JkUHJldmlld1Jvd0NvbXBvbmVudCxcbiAgICBSZWNvcmRUYWJsZUNvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUuZm9yQ2hpbGQoKSxcbiAgICBOZ3hEcm9wem9uZU1vZHVsZSxcbiAgICBGYWNldHNNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBUYWdJbnB1dE1vZHVsZSxcbiAgICBVdGlsU2hhcmVkTW9kdWxlLFxuICAgIFVpV2lkZ2V0c01vZHVsZSxcbiAgICBVaUlucHV0c01vZHVsZSxcbiAgICBVaUVsZW1lbnRzTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0Q2hlY2tib3hNb2R1bGUsXG4gICAgUm91dGVyTGluayxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFJlY29yZFByZXZpZXdMaXN0Q29tcG9uZW50LFxuICAgIFJlY29yZFByZXZpZXdDYXJkQ29tcG9uZW50LFxuICAgIFJlY29yZFByZXZpZXdUZXh0Q29tcG9uZW50LFxuICAgIFJlY29yZFByZXZpZXdUaXRsZUNvbXBvbmVudCxcbiAgICBSZWNvcmRNZXRyaWNDb21wb25lbnQsXG4gICAgUmVzdWx0c0xpc3RDb21wb25lbnQsXG4gICAgRmFjZXRzTW9kdWxlLFxuICAgIFJlY29yZFByZXZpZXdDb21wb25lbnQsXG4gICAgUmVzdWx0c0hpdHNOdW1iZXJDb21wb25lbnQsXG4gICAgUmVjb3JkUHJldmlld0ZlZWRDb21wb25lbnQsXG4gICAgUmVjb3JkUHJldmlld1Jvd0NvbXBvbmVudCxcbiAgICBSZWNvcmRUYWJsZUNvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBSRVNVTFRTX0xBWU9VVF9DT05GSUcsIHVzZVZhbHVlOiBERUZBVUxUX1JFU1VMVFNfTEFZT1VUX0NPTkZJRyB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBVaVNlYXJjaE1vZHVsZSB7fVxuIl19
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktc2VhcmNoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvc2VhcmNoL3NyYy9saWIvdWktc2VhcmNoLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDL0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUE7QUFDaEcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUE7QUFDaEcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbURBQW1ELENBQUE7QUFDN0YsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUE7QUFDaEcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdURBQXVELENBQUE7QUFDbkcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUE7QUFDaEcsT0FBTyxFQUNMLDZCQUE2QixFQUM3QixxQkFBcUIsR0FDdEIsTUFBTSxzQ0FBc0MsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQTtBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQTtBQUNsRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQzFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQTtBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUE7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDdEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUE7QUFDaEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUM5RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTs7O0FBa0Q3RSxNQUFNLE9BQU8sY0FBYzs4R0FBZCxjQUFjOytHQUFkLGNBQWMsaUJBOUN2QixzQkFBc0I7WUFDdEIsMEJBQTBCO1lBQzFCLDBCQUEwQjtZQUMxQiwwQkFBMEI7WUFDMUIsMkJBQTJCO1lBQzNCLHFCQUFxQjtZQUNyQixvQkFBb0I7WUFDcEIsMEJBQTBCO1lBQzFCLHdCQUF3QjtZQUN4QiwwQkFBMEI7WUFDMUIseUJBQXlCLGFBR3pCLFlBQVksc0JBRVosaUJBQWlCO1lBQ2pCLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIsZUFBZTtZQUNmLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLGlCQUFpQjtZQUNqQixVQUFVO1lBQ1YseUJBQXlCLGFBR3pCLDBCQUEwQjtZQUMxQiwwQkFBMEI7WUFDMUIsMEJBQTBCO1lBQzFCLDJCQUEyQjtZQUMzQixxQkFBcUI7WUFDckIsb0JBQW9CO1lBQ3BCLFlBQVk7WUFDWixzQkFBc0I7WUFDdEIsMEJBQTBCO1lBQzFCLDBCQUEwQjtZQUMxQix5QkFBeUI7K0dBTWhCLGNBQWMsYUFKZDtZQUNULEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSw2QkFBNkIsRUFBRTtTQUM1RSxZQS9CQyxZQUFZO1lBQ1osZUFBZSxDQUFDLFFBQVEsRUFBRTtZQUMxQixpQkFBaUI7WUFDakIsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsY0FBYztZQUNkLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsY0FBYztZQUNkLGdCQUFnQjtZQUNoQixhQUFhO1lBQ2IsaUJBQWlCO1lBRWpCLHlCQUF5QixFQVN6QixZQUFZOzsyRkFVSCxjQUFjO2tCQWhEMUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osc0JBQXNCO3dCQUN0QiwwQkFBMEI7d0JBQzFCLDBCQUEwQjt3QkFDMUIsMEJBQTBCO3dCQUMxQiwyQkFBMkI7d0JBQzNCLHFCQUFxQjt3QkFDckIsb0JBQW9CO3dCQUNwQiwwQkFBMEI7d0JBQzFCLHdCQUF3Qjt3QkFDeEIsMEJBQTBCO3dCQUMxQix5QkFBeUI7cUJBQzFCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGVBQWUsQ0FBQyxRQUFRLEVBQUU7d0JBQzFCLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsaUJBQWlCO3dCQUNqQixVQUFVO3dCQUNWLHlCQUF5QjtxQkFDMUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLDBCQUEwQjt3QkFDMUIsMEJBQTBCO3dCQUMxQiwwQkFBMEI7d0JBQzFCLDJCQUEyQjt3QkFDM0IscUJBQXFCO3dCQUNyQixvQkFBb0I7d0JBQ3BCLFlBQVk7d0JBQ1osc0JBQXNCO3dCQUN0QiwwQkFBMEI7d0JBQzFCLDBCQUEwQjt3QkFDMUIseUJBQXlCO3FCQUMxQjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFFLDZCQUE2QixFQUFFO3FCQUM1RTtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xuaW1wb3J0IHsgUm91dGVyTGluayB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcidcbmltcG9ydCB7IFV0aWxTaGFyZWRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBOZ3hEcm9wem9uZU1vZHVsZSB9IGZyb20gJ25neC1kcm9wem9uZSdcbmltcG9ydCB7IEZhY2V0c01vZHVsZSB9IGZyb20gJy4vZmFjZXRzL2ZhY2V0cy5tb2R1bGUnXG5pbXBvcnQgeyBSZWNvcmRNZXRyaWNDb21wb25lbnQgfSBmcm9tICcuL3JlY29yZC1tZXRyaWMvcmVjb3JkLW1ldHJpYy5jb21wb25lbnQnXG5pbXBvcnQgeyBSZWNvcmRQcmV2aWV3Q2FyZENvbXBvbmVudCB9IGZyb20gJy4vcmVjb3JkLXByZXZpZXctY2FyZC9yZWNvcmQtcHJldmlldy1jYXJkLmNvbXBvbmVudCdcbmltcG9ydCB7IFJlY29yZFByZXZpZXdMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9yZWNvcmQtcHJldmlldy1saXN0L3JlY29yZC1wcmV2aWV3LWxpc3QuY29tcG9uZW50J1xuaW1wb3J0IHsgUmVjb3JkUHJldmlld1Jvd0NvbXBvbmVudCB9IGZyb20gJy4vcmVjb3JkLXByZXZpZXctcm93L3JlY29yZC1wcmV2aWV3LXJvdy5jb21wb25lbnQnXG5pbXBvcnQgeyBSZWNvcmRQcmV2aWV3VGV4dENvbXBvbmVudCB9IGZyb20gJy4vcmVjb3JkLXByZXZpZXctdGV4dC9yZWNvcmQtcHJldmlldy10ZXh0LmNvbXBvbmVudCdcbmltcG9ydCB7IFJlY29yZFByZXZpZXdUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4vcmVjb3JkLXByZXZpZXctdGl0bGUvcmVjb3JkLXByZXZpZXctdGl0bGUuY29tcG9uZW50J1xuaW1wb3J0IHsgUmVzdWx0c0hpdHNOdW1iZXJDb21wb25lbnQgfSBmcm9tICcuL3Jlc3VsdHMtaGl0cy1udW1iZXIvcmVzdWx0cy1oaXRzLW51bWJlci5jb21wb25lbnQnXG5pbXBvcnQge1xuICBERUZBVUxUX1JFU1VMVFNfTEFZT1VUX0NPTkZJRyxcbiAgUkVTVUxUU19MQVlPVVRfQ09ORklHLFxufSBmcm9tICcuL3Jlc3VsdHMtbGlzdC9yZXN1bHRzLWxheW91dC5jb25maWcnXG5pbXBvcnQgeyBSZXN1bHRzTGlzdENvbXBvbmVudCB9IGZyb20gJy4vcmVzdWx0cy1saXN0L3Jlc3VsdHMtbGlzdC5jb21wb25lbnQnXG5pbXBvcnQgeyBSZWNvcmRQcmV2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi9yZWNvcmQtcHJldmlldy9yZWNvcmQtcHJldmlldy5jb21wb25lbnQnXG5pbXBvcnQgeyBUYWdJbnB1dE1vZHVsZSB9IGZyb20gJ25neC1jaGlwcydcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBSZXN1bHRzTGlzdEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3Jlc3VsdHMtbGlzdC1pdGVtL3Jlc3VsdHMtbGlzdC1pdGVtLmNvbXBvbmVudCdcbmltcG9ydCB7IFVpV2lkZ2V0c01vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvd2lkZ2V0cy9zcmMnXG5pbXBvcnQgeyBVaUVsZW1lbnRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMnXG5pbXBvcnQgeyBSZWNvcmRQcmV2aWV3RmVlZENvbXBvbmVudCB9IGZyb20gJy4vcmVjb3JkLXByZXZpZXctZmVlZC9yZWNvcmQtcHJldmlldy1mZWVkLmNvbXBvbmVudCdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IFVpSW5wdXRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCdcbmltcG9ydCB7IEludGVyYWN0aXZlVGFibGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMnXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFJlY29yZFByZXZpZXdDb21wb25lbnQsXG4gICAgUmVjb3JkUHJldmlld0xpc3RDb21wb25lbnQsXG4gICAgUmVjb3JkUHJldmlld0NhcmRDb21wb25lbnQsXG4gICAgUmVjb3JkUHJldmlld1RleHRDb21wb25lbnQsXG4gICAgUmVjb3JkUHJldmlld1RpdGxlQ29tcG9uZW50LFxuICAgIFJlY29yZE1ldHJpY0NvbXBvbmVudCxcbiAgICBSZXN1bHRzTGlzdENvbXBvbmVudCxcbiAgICBSZXN1bHRzSGl0c051bWJlckNvbXBvbmVudCxcbiAgICBSZXN1bHRzTGlzdEl0ZW1Db21wb25lbnQsXG4gICAgUmVjb3JkUHJldmlld0ZlZWRDb21wb25lbnQsXG4gICAgUmVjb3JkUHJldmlld1Jvd0NvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUuZm9yQ2hpbGQoKSxcbiAgICBOZ3hEcm9wem9uZU1vZHVsZSxcbiAgICBGYWNldHNNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBUYWdJbnB1dE1vZHVsZSxcbiAgICBVdGlsU2hhcmVkTW9kdWxlLFxuICAgIFVpV2lkZ2V0c01vZHVsZSxcbiAgICBVaUlucHV0c01vZHVsZSxcbiAgICBVaUVsZW1lbnRzTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0Q2hlY2tib3hNb2R1bGUsXG4gICAgUm91dGVyTGluayxcbiAgICBJbnRlcmFjdGl2ZVRhYmxlQ29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgUmVjb3JkUHJldmlld0xpc3RDb21wb25lbnQsXG4gICAgUmVjb3JkUHJldmlld0NhcmRDb21wb25lbnQsXG4gICAgUmVjb3JkUHJldmlld1RleHRDb21wb25lbnQsXG4gICAgUmVjb3JkUHJldmlld1RpdGxlQ29tcG9uZW50LFxuICAgIFJlY29yZE1ldHJpY0NvbXBvbmVudCxcbiAgICBSZXN1bHRzTGlzdENvbXBvbmVudCxcbiAgICBGYWNldHNNb2R1bGUsXG4gICAgUmVjb3JkUHJldmlld0NvbXBvbmVudCxcbiAgICBSZXN1bHRzSGl0c051bWJlckNvbXBvbmVudCxcbiAgICBSZWNvcmRQcmV2aWV3RmVlZENvbXBvbmVudCxcbiAgICBSZWNvcmRQcmV2aWV3Um93Q29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IFJFU1VMVFNfTEFZT1VUX0NPTkZJRywgdXNlVmFsdWU6IERFRkFVTFRfUkVTVUxUU19MQVlPVVRfQ09ORklHIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFVpU2VhcmNoTW9kdWxlIHt9XG4iXX0=
@@ -3,7 +3,6 @@ export * from './lib/i18n.constants';
3
3
  export * from './lib/i18n.interceptor';
4
4
  export * from './lib/lang.service';
5
5
  export * from './lib/file.translate.loader';
6
- export * from './lib/testing/test.translate.module';
7
6
  export * from './lib/embedded.translate.loader';
8
7
  export * from './lib/translate.loader.utils';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvaTE4bi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQTtBQUN0QyxjQUFjLHNCQUFzQixDQUFBO0FBQ3BDLGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLDZCQUE2QixDQUFBO0FBQzNDLGNBQWMscUNBQXFDLENBQUE7QUFDbkQsY0FBYyxpQ0FBaUMsQ0FBQTtBQUMvQyxjQUFjLDhCQUE4QixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbC1pMThuLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2kxOG4uY29uc3RhbnRzJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaTE4bi5pbnRlcmNlcHRvcidcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xhbmcuc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbGUudHJhbnNsYXRlLmxvYWRlcidcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Rlc3RpbmcvdGVzdC50cmFuc2xhdGUubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZW1iZWRkZWQudHJhbnNsYXRlLmxvYWRlcidcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RyYW5zbGF0ZS5sb2FkZXIudXRpbHMnXG4iXX0=
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvaTE4bi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQTtBQUN0QyxjQUFjLHNCQUFzQixDQUFBO0FBQ3BDLGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLDZCQUE2QixDQUFBO0FBQzNDLGNBQWMsaUNBQWlDLENBQUE7QUFDL0MsY0FBYyw4QkFBOEIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWwtaTE4bi5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pMThuLmNvbnN0YW50cydcbmV4cG9ydCAqIGZyb20gJy4vbGliL2kxOG4uaW50ZXJjZXB0b3InXG5leHBvcnQgKiBmcm9tICcuL2xpYi9sYW5nLnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWxlLnRyYW5zbGF0ZS5sb2FkZXInXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbWJlZGRlZC50cmFuc2xhdGUubG9hZGVyJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHJhbnNsYXRlLmxvYWRlci51dGlscydcbiJdfQ==
@@ -40,9 +40,15 @@ export const FORMATS = {
40
40
  color: '#328556',
41
41
  mimeTypes: ['x-gis/x-shapefile'],
42
42
  },
43
+ gml: {
44
+ extensions: ['gml'],
45
+ priority: 5,
46
+ color: '#c92bce',
47
+ mimeTypes: ['application/gml+xml', 'text/xml; subtype=gml'],
48
+ },
43
49
  kml: {
44
50
  extensions: ['kml', 'kmz'],
45
- priority: 5,
51
+ priority: 6,
46
52
  color: '#348009',
47
53
  mimeTypes: [
48
54
  'application/vnd.google-earth.kml+xml',
@@ -51,34 +57,40 @@ export const FORMATS = {
51
57
  },
52
58
  gpkg: {
53
59
  extensions: ['gpkg', 'geopackage'],
54
- priority: 6,
60
+ priority: 7,
55
61
  color: '#ea79ba',
56
62
  mimeTypes: ['application/geopackage+sqlite3'],
57
63
  },
58
64
  zip: {
59
65
  extensions: ['zip', 'tar.gz'],
60
- priority: 7,
66
+ priority: 8,
61
67
  color: '#f2bb3a',
62
68
  mimeTypes: ['application/zip', 'application/x-zip'],
63
69
  },
64
70
  pdf: {
65
71
  extensions: ['pdf'],
66
- priority: 8,
72
+ priority: 9,
67
73
  color: '#db544a',
68
74
  mimeTypes: ['application/pdf'],
69
75
  },
70
76
  jpg: {
71
77
  extensions: ['jpg', 'jpeg', 'jfif', 'pjpeg', 'pjp'],
72
- priority: 8,
78
+ priority: 9,
73
79
  color: '#673ab7',
74
80
  mimeTypes: ['image/jpg'],
75
81
  },
76
82
  svg: {
77
83
  extensions: ['svg'],
78
- priority: 9,
84
+ priority: 10,
79
85
  color: '#d98294',
80
86
  mimeTypes: ['image/svg+xml'],
81
87
  },
88
+ dxf: {
89
+ extensions: ['dxf'],
90
+ priority: 11,
91
+ color: '#de630b',
92
+ mimeTypes: ['application/x-dxf', 'image/x-dxf'],
93
+ },
82
94
  };
83
95
  export function getFormatPriority(linkFormat) {
84
96
  for (const format in FORMATS) {
@@ -95,14 +107,18 @@ export function getFormatPriority(linkFormat) {
95
107
  export function getLinkPriority(link) {
96
108
  return getFormatPriority(getFileFormat(link));
97
109
  }
98
- export function extensionToFormat(extension) {
99
- for (const format in FORMATS) {
100
- for (const alias of FORMATS[format].extensions) {
101
- if (alias === extension.toLowerCase())
102
- return format;
110
+ export function getFileFormatFromServiceOutput(serviceOutput) {
111
+ function formatMatcher(format) {
112
+ const output = serviceOutput.toLowerCase();
113
+ return (format.extensions.some((extension) => output.includes(extension)) ||
114
+ format.mimeTypes.some((mimeType) => output.includes(mimeType)));
115
+ }
116
+ for (const formatName in FORMATS) {
117
+ if (formatMatcher(FORMATS[formatName])) {
118
+ return formatName;
103
119
  }
104
120
  }
105
- return undefined;
121
+ return null;
106
122
  }
107
123
  export function getFileFormat(link) {
108
124
  if ('mimeType' in link) {
@@ -183,4 +199,4 @@ export function getLinkLabel(link) {
183
199
  export function getMimeTypeForFormat(format) {
184
200
  return format in FORMATS ? FORMATS[format.toLowerCase()].mimeTypes[0] : null;
185
201
  }
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjL2xpYi9saW5rcy9saW5rLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUdoRSxNQUFNLENBQUMscUNBQXFDLENBQUMsQ0FBQTtBQUU3QyxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUc7SUFDckIsR0FBRyxFQUFFO1FBQ0gsVUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ25CLFFBQVEsRUFBRSxDQUFDO1FBQ1gsS0FBSyxFQUFFLFNBQVM7UUFDaEIsU0FBUyxFQUFFLENBQUMsVUFBVSxFQUFFLGlCQUFpQixDQUFDO0tBQzNDO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsVUFBVSxFQUFFO1lBQ1YsT0FBTztZQUNQLEtBQUs7WUFDTCxNQUFNO1lBQ04sVUFBVTtZQUNWLCtCQUErQjtTQUNoQztRQUNELFFBQVEsRUFBRSxDQUFDO1FBQ1gsS0FBSyxFQUFFLFNBQVM7UUFDaEIsU0FBUyxFQUFFO1lBQ1QsMEJBQTBCO1lBQzFCLG1FQUFtRTtTQUNwRTtLQUNGO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ3ZCLFFBQVEsRUFBRSxDQUFDO1FBQ1gsS0FBSyxFQUFFLFNBQVM7UUFDaEIsU0FBUyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsMEJBQTBCLENBQUM7S0FDaEU7SUFDRCxJQUFJLEVBQUU7UUFDSixVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUM7UUFDcEIsUUFBUSxFQUFFLENBQUM7UUFDWCxLQUFLLEVBQUUsU0FBUztRQUNoQixTQUFTLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztLQUNoQztJQUNELEdBQUcsRUFBRTtRQUNILFVBQVUsRUFBRSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsa0JB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QUFLLFVBQVU7d0JBQ2IsTUFBTSxHQUFHLE1BQU0sQ0FBQTt3QkFDZixNQUFLO2lCQUNSO2FBQ0Y7WUFDRCxNQUFLO1FBQ1A7WUFDRSxNQUFNLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFBO0tBQy9CO0lBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFBO0lBQzNDLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssS0FBSyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO0FBQ2hELENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsTUFBa0I7SUFDckQsT0FBTyxNQUFNLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7QUFDOUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1hcmtlciB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcidcbmltcG9ydCB7IERhdGFzZXREaXN0cmlidXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5cbm1hcmtlcignZG93bmxvYWRzLndmcy5mZWF0dXJldHlwZS5ub3QuZm91bmQnKVxuXG5leHBvcnQgY29uc3QgRk9STUFUUyA9IHtcbiAgY3N2OiB7XG4gICAgZXh0ZW5zaW9uczogWydjc3YnXSxcbiAgICBwcmlvcml0eTogMSxcbiAgICBjb2xvcjogJyM1NTlkN2YnLFxuICAgIG1pbWVUeXBlczogWyd0ZXh0L2NzdicsICdhcHBsaWNhdGlvbi9jc3YnXSxcbiAgfSxcbiAgZXhjZWw6IHtcbiAgICBleHRlbnNpb25zOiBbXG4gICAgICAnZXhjZWwnLFxuICAgICAgJ3hscycsXG4gICAgICAneGxzeCcsXG4gICAgICAnbXMtZXhjZWwnLFxuICAgICAgJ29wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50JyxcbiAgICBdLFxuICAgIHByaW9yaXR5OiAyLFxuICAgIGNvbG9yOiAnIzBmNDM5NScsXG4gICAgbWltZVR5cGVzOiBbXG4gICAgICAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJyxcbiAgICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCcsXG4gICAgXSxcbiAgfSxcbiAgZ2VvanNvbjoge1xuICAgIGV4dGVuc2lvbnM6IFsnZ2VvanNvbiddLFxuICAgIHByaW9yaXR5OiAzLFxuICAgIGNvbG9yOiAnIzFlNTE4MCcsXG4gICAgbWltZVR5cGVzOiBbJ2FwcGxpY2F0aW9uL2dlbytqc29uJywgJ2FwcGxpY2F0aW9uL3ZuZC5nZW8ranNvbiddLFxuICB9LFxuICBqc29uOiB7XG4gICAgZXh0ZW5zaW9uczogWydqc29uJ10sXG4gICAgcHJpb3JpdHk6IDMsXG4gICAgY29sb3I6ICcjMWU1MTgwJyxcbiAgICBtaW1lVHlwZXM6IFsnYXBwbGljYXRpb24vanNvbiddLFxuICB9LFxuICBzaHA6IHtcbiAgICBleHRlbnNpb25zOiBbJ3NocCcsICdzaGFwZScsICd6aXBwZWQtc2hhcGVmaWxlJ10sXG4gICAgcHJpb3JpdHk6IDQsXG4gICAgY29sb3I6ICcjMzI4NTU2JyxcbiAgICBtaW1lVHlwZXM6IFsneC1naXMveC1zaGFwZWZpbGUnXSxcbiAgfSxcbiAga21sOiB7XG4gICAgZXh0ZW5zaW9uczogWydrbWwnLCAna216J10sXG4gICAgcHJpb3JpdHk6IDUsXG4gICAgY29sb3I6ICcjMzQ4MDA5JyxcbiAgICBtaW1lVHlwZXM6IFtcbiAgICAgICdhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWVhcnRoLmttbCt4bWwnLFxuICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5nb29nbGUtZWFydGgua216JyxcbiAgICBdLFxuICB9LFxuICBncGtnOiB7XG4gICAgZXh0ZW5zaW9uczogWydncGtnJywgJ2dlb3BhY2thZ2UnXSxcbiAgICBwcmlvcml0eTogNixcbiAgICBjb2xvcjogJyNlYTc5YmEnLFxuICAgIG1pbWVUeXBlczogWydhcHBsaWNhdGlvbi9nZW9wYWNrYWdlK3NxbGl0ZTMnXSxcbiAgfSxcbiAgemlwOiB7XG4gICAgZXh0ZW5zaW9uczogWyd6aXAnLCAndGFyLmd6J10sXG4gICAgcHJpb3JpdHk6IDcsXG4gICAgY29sb3I6ICcjZjJiYjNhJyxcbiAgICBtaW1lVHlwZXM6IFsnYXBwbGljYXRpb24vemlwJywgJ2FwcGxpY2F0aW9uL3gtemlwJ10sXG4gIH0sXG4gIHBkZjoge1xuICAgIGV4dGVuc2lvbnM6IFsncGRmJ10sXG4gICAgcHJpb3JpdHk6IDgsXG4gICAgY29sb3I6ICcjZGI1NDRhJyxcbiAgICBtaW1lVHlwZXM6IFsnYXBwbGljYXRpb24vcGRmJ10sXG4gIH0sXG4gIGpwZzoge1xuICAgIGV4dGVuc2lvbnM6IFsnanBnJywgJ2pwZWcnLCAnamZpZicsICdwanBlZycsICdwanAnXSxcbiAgICBwcmlvcml0eTogOCxcbiAgICBjb2xvcjogJyM2NzNhYjcnLFxuICAgIG1pbWVUeXBlczogWydpbWFnZS9qcGcnXSxcbiAgfSxcbiAgc3ZnOiB7XG4gICAgZXh0ZW5zaW9uczogWydzdmcnXSxcbiAgICBwcmlvcml0eTogOSxcbiAgICBjb2xvcjogJyNkOTgyOTQnLFxuICAgIG1pbWVUeXBlczogWydpbWFnZS9zdmcreG1sJ10sXG4gIH0sXG59IGFzIGNvbnN0XG5cbmV4cG9ydCB0eXBlIEZpbGVGb3JtYXQgPSBrZXlvZiB0eXBlb2YgRk9STUFUU1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybWF0UHJpb3JpdHkobGlua0Zvcm1hdDogRmlsZUZvcm1hdCk6IG51bWJlciB7XG4gIGZvciAoY29uc3QgZm9ybWF0IGluIEZPUk1BVFMpIHtcbiAgICBmb3IgKGNvbnN0IGV4dCBvZiBGT1JNQVRTW2Zvcm1hdF0uZXh0ZW5zaW9ucykge1xuICAgICAgaWYgKG5ldyBSZWdFeHAoYCR7ZXh0fWAsICdpJykudGVzdChsaW5rRm9ybWF0KSkge1xuICAgICAgICBpZiAoRk9STUFUU1tmb3JtYXRdLnByaW9yaXR5ID09PSAwKSByZXR1cm4gMFxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoRk9STUFUUykubGVuZ3RoIC0gRk9STUFUU1tmb3JtYXRdLnByaW9yaXR5XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiAwXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaW5rUHJpb3JpdHkobGluazogRGF0YXNldERpc3RyaWJ1dGlvbik6IG51bWJlciB7XG4gIHJldHVybiBnZXRGb3JtYXRQcmlvcml0eShnZXRGaWxlRm9ybWF0KGxpbmspKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0ZW5zaW9uVG9Gb3JtYXQoZXh0ZW5zaW9uOiBzdHJpbmcpOiBGaWxlRm9ybWF0IHtcbiAgZm9yIChjb25zdCBmb3JtYXQgaW4gRk9STUFUUykge1xuICAgIGZvciAoY29uc3QgYWxpYXMgb2YgRk9STUFUU1tmb3JtYXRdLmV4dGVuc2lvbnMpIHtcbiAgICAgIGlmIChhbGlhcyA9PT0gZXh0ZW5zaW9uLnRvTG93ZXJDYXNlKCkpIHJldHVybiBmb3JtYXQgYXMgRmlsZUZvcm1hdFxuICAgIH1cbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlRm9ybWF0KGxpbms6IERhdGFzZXREaXN0cmlidXRpb24pOiBGaWxlRm9ybWF0IHtcbiAgaWYgKCdtaW1lVHlwZScgaW4gbGluaykge1xuICAgIGNvbnN0IG1pbWVUeXBlRm9ybWF0ID0gbWltZVR5cGVUb0Zvcm1hdChsaW5rLm1pbWVUeXBlKVxuICAgIGlmIChtaW1lVHlwZUZvcm1hdCAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG1pbWVUeXBlRm9ybWF0XG4gICAgfVxuICB9XG4gIGZvciAoY29uc3QgZm9ybWF0IGluIEZPUk1BVFMpIHtcbiAgICBmb3IgKGNvbnN0IGFsaWFzIG9mIEZPUk1BVFNbZm9ybWF0XS5leHRlbnNpb25zKSB7XG4gICAgICBpZiAoY2hlY2tGaWxlRm9ybWF0KGxpbmssIGFsaWFzKSkgcmV0dXJuIGZvcm1hdCBhcyBGaWxlRm9ybWF0XG4gICAgICBpZiAoaXNGb3JtYXRJblF1ZXJ5UGFyYW0obGluaywgYWxpYXMpKSByZXR1cm4gZm9ybWF0IGFzIEZpbGVGb3JtYXRcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRm9ybWF0SW5RdWVyeVBhcmFtKFxuICBsaW5rOiBEYXRhc2V0RGlzdHJpYnV0aW9uLFxuICBhbGlhczogc3RyaW5nXG4pOiBib29sZWFuIHtcbiAgY29uc3QgcXVlcnlQYXJhbXMgPSBsaW5rLnVybC5zZWFyY2hQYXJhbXNcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgcXVlcnlQYXJhbXMuZW50cmllcygpKSB7XG4gICAgaWYgKGtleSA9PT0gJ2Zvcm1hdCcgfHwga2V5ID09PSAnZicpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gYWxpYXNcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtaW1lVHlwZVRvRm9ybWF0KG1pbWVUeXBlOiBzdHJpbmcpOiBGaWxlRm9ybWF0IHtcbiAgZm9yIChjb25zdCBmb3JtYXQgaW4gRk9STUFUUykge1xuICAgIGZvciAoY29uc3QgbXQgb2YgRk9STUFUU1tmb3JtYXRdLm1pbWVUeXBlcykge1xuICAgICAgaWYgKG1pbWVUeXBlID09PSBtdCkgcmV0dXJuIGZvcm1hdCBhcyBGaWxlRm9ybWF0XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0ZpbGVGb3JtYXQoXG4gIGxpbms6IERhdGFzZXREaXN0cmlidXRpb24sXG4gIGZvcm1hdDogRmlsZUZvcm1hdFxuKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgKCduYW1lJyBpbiBsaW5rICYmIG5ldyBSZWdFeHAoYFsuL10ke2Zvcm1hdH1gLCAnaScpLnRlc3QobGluay5uYW1lKSkgfHxcbiAgICAoJ3VybCcgaW4gbGluayAmJlxuICAgICAgbmV3IFJlZ0V4cChgWy4vXSR7Zm9ybWF0fWAsICdpJykudGVzdChsaW5rLnVybC50b1N0cmluZygpKSlcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QmFkZ2VDb2xvcihsaW5rRm9ybWF0OiBGaWxlRm9ybWF0KTogc3RyaW5nIHtcbiAgZm9yIChjb25zdCBmb3JtYXQgaW4gRk9STUFUUykge1xuICAgIGZvciAoY29uc3QgYWxpYXMgb2YgRk9STUFUU1tmb3JtYXRdLmV4dGVuc2lvbnMpIHtcbiAgICAgIGlmIChuZXcgUmVnRXhwKGAke2FsaWFzfWAsICdpJykudGVzdChsaW5rRm9ybWF0KSlcbiAgICAgICAgcmV0dXJuIEZPUk1BVFNbZm9ybWF0XS5jb2xvclxuICAgIH1cbiAgfVxuICByZXR1cm4gJ3ZhcigtLWNvbG9yLWdyYXktNzAwKScgLy8gRGVmYXVsdCBjb2xvciA/XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaW5rTGFiZWwobGluazogRGF0YXNldERpc3RyaWJ1dGlvbik6IHN0cmluZyB7XG4gIGxldCBmb3JtYXQgPSAnJ1xuICBzd2l0Y2ggKGxpbmsudHlwZSkge1xuICAgIGNhc2UgJ3NlcnZpY2UnOlxuICAgICAge1xuICAgICAgICBzd2l0Y2ggKGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sKSB7XG4gICAgICAgICAgY2FzZSAnd2ZzJzpcbiAgICAgICAgICAgIGZvcm1hdCA9ICdXRlMnXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgJ3dtcyc6XG4gICAgICAgICAgICBmb3JtYXQgPSAnV01TJ1xuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBjYXNlICd3bXRzJzpcbiAgICAgICAgICAgIGZvcm1hdCA9ICdXTVRTJ1xuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBjYXNlICdlc3JpUmVzdCc6XG4gICAgICAgICAgICBmb3JtYXQgPSAnUkVTVCdcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGJyZWFrXG4gICAgZGVmYXVsdDpcbiAgICAgIGZvcm1hdCA9IGdldEZpbGVGb3JtYXQobGluaylcbiAgfVxuICBjb25zdCBsYWJlbCA9IGxpbmsuZGVzY3JpcHRpb24gfHwgbGluay5uYW1lXG4gIHJldHVybiBmb3JtYXQgPyBgJHtsYWJlbH0gKCR7Zm9ybWF0fSlgIDogbGFiZWxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1pbWVUeXBlRm9yRm9ybWF0KGZvcm1hdDogRmlsZUZvcm1hdCk6IHN0cmluZyB8IG51bGwge1xuICByZXR1cm4gZm9ybWF0IGluIEZPUk1BVFMgPyBGT1JNQVRTW2Zvcm1hdC50b0xvd2VyQ2FzZSgpXS5taW1lVHlwZXNbMF0gOiBudWxsXG59XG4iXX0=
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjL2xpYi9saW5rcy9saW5rLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUdoRSxNQUFNLENBQUMscUNBQXFDLENBQUMsQ0FBQTtBQUU3QyxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUc7SUFDckIsR0FBRyxFQUFFO1FBQ0gsVUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ25CLFFBQVEsRUFBRSxDQUFDO1FBQ1gsS0FBSyxFQUFFLFNBQVM7UUFDaEIsU0FBUyxFQUFFLENBQUMsVUFBVSxFQUFFLGlCQUFpQixDQUFDO0tBQzNDO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsVUFBVSxFQUFFO1lBQ1YsT0FBTztZQUNQLEtBQUs7WUFDTCxNQUFNO1lBQ04sVUFBVTtZQUNWLCtCQUErQjtTQUNoQztRQUNELFFBQVEsRUFBRSxDQUFDO1FBQ1gsS0FBSyxFQUFFLFNBQVM7UUFDaEIsU0FBUyxFQUFFO1lBQ1QsMEJBQTBCO1lBQzFCLG1FQUFtRTtTQUNwRTtLQUNGO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ3ZCLFFBQVEsRUFBRSxDQUFDO1FBQ1gsS0FBSyxFQUFFLFNBQVM7UUFDaEIsU0FBUyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsMEJBQTBCLENBQUM7S0FDaEU7SUFDRCxJQUFJLEVBQUU7UUFDSixVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUM7UUFDcEIsUUFBUSxFQUFFLENBQUM7UUFDWCxLQUFLLEVBQUUsU0FBUztRQUNoQixTQUFTLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztLQUNoQztJQUNELEdBQUcsRUFBRTtRQUNILFVBQVUsRUFBRSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsa0JB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QUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7QUFDOUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1hcmtlciB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcidcbmltcG9ydCB7IERhdGFzZXREaXN0cmlidXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5cbm1hcmtlcignZG93bmxvYWRzLndmcy5mZWF0dXJldHlwZS5ub3QuZm91bmQnKVxuXG5leHBvcnQgY29uc3QgRk9STUFUUyA9IHtcbiAgY3N2OiB7XG4gICAgZXh0ZW5zaW9uczogWydjc3YnXSxcbiAgICBwcmlvcml0eTogMSxcbiAgICBjb2xvcjogJyM1NTlkN2YnLFxuICAgIG1pbWVUeXBlczogWyd0ZXh0L2NzdicsICdhcHBsaWNhdGlvbi9jc3YnXSxcbiAgfSxcbiAgZXhjZWw6IHtcbiAgICBleHRlbnNpb25zOiBbXG4gICAgICAnZXhjZWwnLFxuICAgICAgJ3hscycsXG4gICAgICAneGxzeCcsXG4gICAgICAnbXMtZXhjZWwnLFxuICAgICAgJ29wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50JyxcbiAgICBdLFxuICAgIHByaW9yaXR5OiAyLFxuICAgIGNvbG9yOiAnIzBmNDM5NScsXG4gICAgbWltZVR5cGVzOiBbXG4gICAgICAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJyxcbiAgICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCcsXG4gICAgXSxcbiAgfSxcbiAgZ2VvanNvbjoge1xuICAgIGV4dGVuc2lvbnM6IFsnZ2VvanNvbiddLFxuICAgIHByaW9yaXR5OiAzLFxuICAgIGNvbG9yOiAnIzFlNTE4MCcsXG4gICAgbWltZVR5cGVzOiBbJ2FwcGxpY2F0aW9uL2dlbytqc29uJywgJ2FwcGxpY2F0aW9uL3ZuZC5nZW8ranNvbiddLFxuICB9LFxuICBqc29uOiB7XG4gICAgZXh0ZW5zaW9uczogWydqc29uJ10sXG4gICAgcHJpb3JpdHk6IDMsXG4gICAgY29sb3I6ICcjMWU1MTgwJyxcbiAgICBtaW1lVHlwZXM6IFsnYXBwbGljYXRpb24vanNvbiddLFxuICB9LFxuICBzaHA6IHtcbiAgICBleHRlbnNpb25zOiBbJ3NocCcsICdzaGFwZScsICd6aXBwZWQtc2hhcGVmaWxlJ10sXG4gICAgcHJpb3JpdHk6IDQsXG4gICAgY29sb3I6ICcjMzI4NTU2JyxcbiAgICBtaW1lVHlwZXM6IFsneC1naXMveC1zaGFwZWZpbGUnXSxcbiAgfSxcbiAgZ21sOiB7XG4gICAgZXh0ZW5zaW9uczogWydnbWwnXSxcbiAgICBwcmlvcml0eTogNSxcbiAgICBjb2xvcjogJyNjOTJiY2UnLFxuICAgIG1pbWVUeXBlczogWydhcHBsaWNhdGlvbi9nbWwreG1sJywgJ3RleHQveG1sOyBzdWJ0eXBlPWdtbCddLFxuICB9LFxuICBrbWw6IHtcbiAgICBleHRlbnNpb25zOiBbJ2ttbCcsICdrbXonXSxcbiAgICBwcmlvcml0eTogNixcbiAgICBjb2xvcjogJyMzNDgwMDknLFxuICAgIG1pbWVUeXBlczogW1xuICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5nb29nbGUtZWFydGgua21sK3htbCcsXG4gICAgICAnYXBwbGljYXRpb24vdm5kLmdvb2dsZS1lYXJ0aC5rbXonLFxuICAgIF0sXG4gIH0sXG4gIGdwa2c6IHtcbiAgICBleHRlbnNpb25zOiBbJ2dwa2cnLCAnZ2VvcGFja2FnZSddLFxuICAgIHByaW9yaXR5OiA3LFxuICAgIGNvbG9yOiAnI2VhNzliYScsXG4gICAgbWltZVR5cGVzOiBbJ2FwcGxpY2F0aW9uL2dlb3BhY2thZ2Urc3FsaXRlMyddLFxuICB9LFxuICB6aXA6IHtcbiAgICBleHRlbnNpb25zOiBbJ3ppcCcsICd0YXIuZ3onXSxcbiAgICBwcmlvcml0eTogOCxcbiAgICBjb2xvcjogJyNmMmJiM2EnLFxuICAgIG1pbWVUeXBlczogWydhcHBsaWNhdGlvbi96aXAnLCAnYXBwbGljYXRpb24veC16aXAnXSxcbiAgfSxcbiAgcGRmOiB7XG4gICAgZXh0ZW5zaW9uczogWydwZGYnXSxcbiAgICBwcmlvcml0eTogOSxcbiAgICBjb2xvcjogJyNkYjU0NGEnLFxuICAgIG1pbWVUeXBlczogWydhcHBsaWNhdGlvbi9wZGYnXSxcbiAgfSxcbiAganBnOiB7XG4gICAgZXh0ZW5zaW9uczogWydqcGcnLCAnanBlZycsICdqZmlmJywgJ3BqcGVnJywgJ3BqcCddLFxuICAgIHByaW9yaXR5OiA5LFxuICAgIGNvbG9yOiAnIzY3M2FiNycsXG4gICAgbWltZVR5cGVzOiBbJ2ltYWdlL2pwZyddLFxuICB9LFxuICBzdmc6IHtcbiAgICBleHRlbnNpb25zOiBbJ3N2ZyddLFxuICAgIHByaW9yaXR5OiAxMCxcbiAgICBjb2xvcjogJyNkOTgyOTQnLFxuICAgIG1pbWVUeXBlczogWydpbWFnZS9zdmcreG1sJ10sXG4gIH0sXG4gIGR4Zjoge1xuICAgIGV4dGVuc2lvbnM6IFsnZHhmJ10sXG4gICAgcHJpb3JpdHk6IDExLFxuICAgIGNvbG9yOiAnI2RlNjMwYicsXG4gICAgbWltZVR5cGVzOiBbJ2FwcGxpY2F0aW9uL3gtZHhmJywgJ2ltYWdlL3gtZHhmJ10sXG4gIH0sXG59IGFzIGNvbnN0XG5cbmV4cG9ydCB0eXBlIEZpbGVGb3JtYXQgPSBrZXlvZiB0eXBlb2YgRk9STUFUU1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybWF0UHJpb3JpdHkobGlua0Zvcm1hdDogRmlsZUZvcm1hdCk6IG51bWJlciB7XG4gIGZvciAoY29uc3QgZm9ybWF0IGluIEZPUk1BVFMpIHtcbiAgICBmb3IgKGNvbnN0IGV4dCBvZiBGT1JNQVRTW2Zvcm1hdF0uZXh0ZW5zaW9ucykge1xuICAgICAgaWYgKG5ldyBSZWdFeHAoYCR7ZXh0fWAsICdpJykudGVzdChsaW5rRm9ybWF0KSkge1xuICAgICAgICBpZiAoRk9STUFUU1tmb3JtYXRdLnByaW9yaXR5ID09PSAwKSByZXR1cm4gMFxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoRk9STUFUUykubGVuZ3RoIC0gRk9STUFUU1tmb3JtYXRdLnByaW9yaXR5XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiAwXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaW5rUHJpb3JpdHkobGluazogRGF0YXNldERpc3RyaWJ1dGlvbik6IG51bWJlciB7XG4gIHJldHVybiBnZXRGb3JtYXRQcmlvcml0eShnZXRGaWxlRm9ybWF0KGxpbmspKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmlsZUZvcm1hdEZyb21TZXJ2aWNlT3V0cHV0KFxuICBzZXJ2aWNlT3V0cHV0OiBzdHJpbmdcbik6IEZpbGVGb3JtYXQgfCBudWxsIHtcbiAgZnVuY3Rpb24gZm9ybWF0TWF0Y2hlcihmb3JtYXQ6IHR5cGVvZiBGT1JNQVRTW0ZpbGVGb3JtYXRdKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgb3V0cHV0ID0gc2VydmljZU91dHB1dC50b0xvd2VyQ2FzZSgpXG4gICAgcmV0dXJuIChcbiAgICAgIGZvcm1hdC5leHRlbnNpb25zLnNvbWUoKGV4dGVuc2lvbjogc3RyaW5nKSA9PlxuICAgICAgICBvdXRwdXQuaW5jbHVkZXMoZXh0ZW5zaW9uKVxuICAgICAgKSB8fFxuICAgICAgZm9ybWF0Lm1pbWVUeXBlcy5zb21lKChtaW1lVHlwZTogc3RyaW5nKSA9PiBvdXRwdXQuaW5jbHVkZXMobWltZVR5cGUpKVxuICAgIClcbiAgfVxuICBmb3IgKGNvbnN0IGZvcm1hdE5hbWUgaW4gRk9STUFUUykge1xuICAgIGlmIChmb3JtYXRNYXRjaGVyKEZPUk1BVFNbZm9ybWF0TmFtZV0pKSB7XG4gICAgICByZXR1cm4gZm9ybWF0TmFtZSBhcyBGaWxlRm9ybWF0XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlRm9ybWF0KGxpbms6IERhdGFzZXREaXN0cmlidXRpb24pOiBGaWxlRm9ybWF0IHtcbiAgaWYgKCdtaW1lVHlwZScgaW4gbGluaykge1xuICAgIGNvbnN0IG1pbWVUeXBlRm9ybWF0ID0gbWltZVR5cGVUb0Zvcm1hdChsaW5rLm1pbWVUeXBlKVxuICAgIGlmIChtaW1lVHlwZUZvcm1hdCAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG1pbWVUeXBlRm9ybWF0XG4gICAgfVxuICB9XG4gIGZvciAoY29uc3QgZm9ybWF0IGluIEZPUk1BVFMpIHtcbiAgICBmb3IgKGNvbnN0IGFsaWFzIG9mIEZPUk1BVFNbZm9ybWF0XS5leHRlbnNpb25zKSB7XG4gICAgICBpZiAoY2hlY2tGaWxlRm9ybWF0KGxpbmssIGFsaWFzKSkgcmV0dXJuIGZvcm1hdCBhcyBGaWxlRm9ybWF0XG4gICAgICBpZiAoaXNGb3JtYXRJblF1ZXJ5UGFyYW0obGluaywgYWxpYXMpKSByZXR1cm4gZm9ybWF0IGFzIEZpbGVGb3JtYXRcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRm9ybWF0SW5RdWVyeVBhcmFtKFxuICBsaW5rOiBEYXRhc2V0RGlzdHJpYnV0aW9uLFxuICBhbGlhczogc3RyaW5nXG4pOiBib29sZWFuIHtcbiAgY29uc3QgcXVlcnlQYXJhbXMgPSBsaW5rLnVybC5zZWFyY2hQYXJhbXNcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgcXVlcnlQYXJhbXMuZW50cmllcygpKSB7XG4gICAgaWYgKGtleSA9PT0gJ2Zvcm1hdCcgfHwga2V5ID09PSAnZicpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gYWxpYXNcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtaW1lVHlwZVRvRm9ybWF0KG1pbWVUeXBlOiBzdHJpbmcpOiBGaWxlRm9ybWF0IHtcbiAgZm9yIChjb25zdCBmb3JtYXQgaW4gRk9STUFUUykge1xuICAgIGZvciAoY29uc3QgbXQgb2YgRk9STUFUU1tmb3JtYXRdLm1pbWVUeXBlcykge1xuICAgICAgaWYgKG1pbWVUeXBlID09PSBtdCkgcmV0dXJuIGZvcm1hdCBhcyBGaWxlRm9ybWF0XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0ZpbGVGb3JtYXQoXG4gIGxpbms6IERhdGFzZXREaXN0cmlidXRpb24sXG4gIGZvcm1hdDogRmlsZUZvcm1hdFxuKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgKCduYW1lJyBpbiBsaW5rICYmIG5ldyBSZWdFeHAoYFsuL10ke2Zvcm1hdH1gLCAnaScpLnRlc3QobGluay5uYW1lKSkgfHxcbiAgICAoJ3VybCcgaW4gbGluayAmJlxuICAgICAgbmV3IFJlZ0V4cChgWy4vXSR7Zm9ybWF0fWAsICdpJykudGVzdChsaW5rLnVybC50b1N0cmluZygpKSlcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QmFkZ2VDb2xvcihsaW5rRm9ybWF0OiBGaWxlRm9ybWF0KTogc3RyaW5nIHtcbiAgZm9yIChjb25zdCBmb3JtYXQgaW4gRk9STUFUUykge1xuICAgIGZvciAoY29uc3QgYWxpYXMgb2YgRk9STUFUU1tmb3JtYXRdLmV4dGVuc2lvbnMpIHtcbiAgICAgIGlmIChuZXcgUmVnRXhwKGAke2FsaWFzfWAsICdpJykudGVzdChsaW5rRm9ybWF0KSlcbiAgICAgICAgcmV0dXJuIEZPUk1BVFNbZm9ybWF0XS5jb2xvclxuICAgIH1cbiAgfVxuICByZXR1cm4gJ3ZhcigtLWNvbG9yLWdyYXktNzAwKScgLy8gRGVmYXVsdCBjb2xvciA/XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaW5rTGFiZWwobGluazogRGF0YXNldERpc3RyaWJ1dGlvbik6IHN0cmluZyB7XG4gIGxldCBmb3JtYXQgPSAnJ1xuICBzd2l0Y2ggKGxpbmsudHlwZSkge1xuICAgIGNhc2UgJ3NlcnZpY2UnOlxuICAgICAge1xuICAgICAgICBzd2l0Y2ggKGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sKSB7XG4gICAgICAgICAgY2FzZSAnd2ZzJzpcbiAgICAgICAgICAgIGZvcm1hdCA9ICdXRlMnXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgJ3dtcyc6XG4gICAgICAgICAgICBmb3JtYXQgPSAnV01TJ1xuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBjYXNlICd3bXRzJzpcbiAgICAgICAgICAgIGZvcm1hdCA9ICdXTVRTJ1xuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBjYXNlICdlc3JpUmVzdCc6XG4gICAgICAgICAgICBmb3JtYXQgPSAnUkVTVCdcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGJyZWFrXG4gICAgZGVmYXVsdDpcbiAgICAgIGZvcm1hdCA9IGdldEZpbGVGb3JtYXQobGluaylcbiAgfVxuICBjb25zdCBsYWJlbCA9IGxpbmsuZGVzY3JpcHRpb24gfHwgbGluay5uYW1lXG4gIHJldHVybiBmb3JtYXQgPyBgJHtsYWJlbH0gKCR7Zm9ybWF0fSlgIDogbGFiZWxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1pbWVUeXBlRm9yRm9ybWF0KGZvcm1hdDogRmlsZUZvcm1hdCk6IHN0cmluZyB8IG51bGwge1xuICByZXR1cm4gZm9ybWF0IGluIEZPUk1BVFMgPyBGT1JNQVRTW2Zvcm1hdC50b0xvd2VyQ2FzZSgpXS5taW1lVHlwZXNbMF0gOiBudWxsXG59XG4iXX0=