geonetwork-ui 2.2.0-dev.f866474c → 2.3.0-dev.139106e0

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 (717) hide show
  1. package/esm2022/index.mjs +2 -1
  2. package/esm2022/libs/api/metadata-converter/src/index.mjs +5 -5
  3. package/esm2022/libs/api/metadata-converter/src/lib/base.converter.mjs +14 -0
  4. package/esm2022/libs/api/metadata-converter/src/lib/find-converter.mjs +15 -0
  5. package/esm2022/libs/api/metadata-converter/src/lib/gn4/atomic-operations.mjs +29 -2
  6. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.converter.mjs +52 -0
  7. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +103 -62
  8. package/esm2022/libs/api/metadata-converter/src/lib/gn4/index.mjs +4 -0
  9. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
  10. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/index.mjs +2 -0
  11. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.mjs +123 -0
  12. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +116 -0
  13. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +138 -0
  14. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/index.mjs +2 -0
  15. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +242 -0
  16. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +102 -74
  17. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/individual-name.mjs +18 -0
  18. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.mjs +14 -0
  19. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/role.mapper.mjs +48 -0
  20. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.mjs +18 -0
  21. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/update-frequency.mapper.mjs +64 -0
  22. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +116 -79
  23. package/esm2022/libs/api/metadata-converter/src/lib/xml-utils.mjs +76 -14
  24. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +2 -2
  25. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +4 -4
  26. package/esm2022/libs/api/repository/src/lib/gn4/index.mjs +3 -1
  27. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +10 -3
  28. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +14 -5
  29. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +33 -8
  30. package/esm2022/libs/api/repository/src/lib/gn4/selection/selection.service.mjs +13 -26
  31. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  32. package/esm2022/libs/common/domain/src/lib/model/search/aggregation.model.mjs +1 -1
  33. package/esm2022/libs/common/domain/src/lib/model/search/field.model.mjs +2 -0
  34. package/esm2022/libs/common/domain/src/lib/model/search/filter.model.mjs +1 -1
  35. package/esm2022/libs/common/domain/src/lib/model/search/index.mjs +2 -1
  36. package/esm2022/libs/common/domain/src/lib/model/search/search.model.mjs +1 -1
  37. package/esm2022/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.mjs +1 -1
  38. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  39. package/esm2022/libs/data-access/gn4/src/openapi/api/records.api.service.mjs +35 -7
  40. package/esm2022/libs/data-access/gn4/src/openapi/model/models.mjs +1 -2
  41. package/esm2022/libs/feature/catalog/src/lib/my-org/my-org.service.mjs +4 -10
  42. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +6 -5
  43. package/esm2022/libs/feature/editor/src/index.mjs +7 -2
  44. package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +8 -0
  45. package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +26 -0
  46. package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +34 -0
  47. package/esm2022/libs/feature/editor/src/lib/+state/editor.models.mjs +2 -0
  48. package/esm2022/libs/feature/editor/src/lib/+state/editor.reducer.mjs +42 -0
  49. package/esm2022/libs/feature/editor/src/lib/+state/editor.selectors.mjs +13 -0
  50. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-array/form-field-array.component.mjs +11 -0
  51. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-file/form-field-file.component.mjs +28 -0
  52. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-object/form-field-object.component.mjs +11 -0
  53. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.mjs +45 -0
  54. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.mjs +50 -0
  55. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +11 -0
  56. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extent/form-field-temporal-extent.component.mjs +11 -0
  57. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +107 -0
  58. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.mjs +2 -0
  59. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +10 -0
  60. package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +29 -0
  61. package/esm2022/libs/feature/editor/src/lib/expressions.mjs +13 -0
  62. package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +21 -9
  63. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +34 -0
  64. package/esm2022/libs/feature/editor/src/lib/models/fields.model.mjs +2 -0
  65. package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +24 -46
  66. package/esm2022/libs/feature/map/src/index.mjs +2 -1
  67. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.mjs +7 -3
  68. package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs +106 -0
  69. package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +72 -0
  70. package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +64 -0
  71. package/esm2022/libs/feature/map/src/lib/constant/index.mjs +2 -1
  72. package/esm2022/libs/feature/map/src/lib/constant/projections.mjs +2 -0
  73. package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +29 -5
  74. package/esm2022/libs/feature/map/src/lib/geocoding/geocoding.component.mjs +93 -0
  75. package/esm2022/libs/feature/map/src/lib/geocoding.service.mjs +40 -0
  76. package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +12 -5
  77. package/esm2022/libs/feature/map/src/lib/map-context/map-context.model.mjs +2 -1
  78. package/esm2022/libs/feature/map/src/lib/map-context/map-context.service.mjs +61 -24
  79. package/esm2022/libs/feature/map/src/lib/utils/index.mjs +1 -3
  80. package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +63 -69
  81. package/esm2022/libs/feature/notifications/src/index.mjs +4 -0
  82. package/esm2022/libs/feature/notifications/src/lib/feature-notifications.module.mjs +18 -0
  83. package/esm2022/libs/feature/notifications/src/lib/notification.model.mjs +2 -0
  84. package/esm2022/libs/feature/notifications/src/lib/notifications-container/notifications-container.component.mjs +49 -0
  85. package/esm2022/libs/feature/notifications/src/lib/notifications.service.mjs +29 -0
  86. package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +13 -13
  87. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +34 -21
  88. package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +2 -2
  89. package/esm2022/libs/feature/router/src/lib/default/index.mjs +2 -1
  90. package/esm2022/libs/feature/router/src/lib/default/router.service.mjs +1 -1
  91. package/esm2022/libs/feature/search/src/index.mjs +4 -1
  92. package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +7 -4
  93. package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +2 -6
  94. package/esm2022/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.mjs +1 -1
  95. package/esm2022/libs/feature/search/src/lib/filter-geometry.token.mjs +4 -0
  96. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +7 -3
  97. package/esm2022/libs/feature/search/src/lib/record-url.token.mjs +4 -0
  98. package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +3 -3
  99. package/esm2022/libs/feature/search/src/lib/results-table/results-table.component.mjs +128 -0
  100. package/esm2022/libs/feature/search/src/lib/state/effects.mjs +6 -4
  101. package/esm2022/libs/feature/search/src/lib/state/search.facade.mjs +3 -2
  102. package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +41 -26
  103. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +11 -9
  104. package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +4 -4
  105. package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +3 -3
  106. package/esm2022/libs/ui/elements/src/index.mjs +15 -12
  107. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +3 -3
  108. package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +27 -0
  109. package/esm2022/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.mjs +45 -0
  110. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +17 -0
  111. package/esm2022/libs/ui/elements/src/lib/max-lines/max-lines.component.mjs +5 -3
  112. package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +3 -3
  113. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +47 -16
  114. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +3 -4
  115. package/esm2022/libs/ui/elements/src/lib/notification/notification.component.mjs +34 -0
  116. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +9 -6
  117. package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +3 -3
  118. package/esm2022/libs/ui/elements/src/lib/thumbnail/thumbnail.component.mjs +9 -4
  119. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +20 -7
  120. package/esm2022/libs/ui/inputs/src/index.mjs +2 -2
  121. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +3 -3
  122. package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +10 -9
  123. package/esm2022/libs/ui/inputs/src/lib/checkbox/checkbox.component.mjs +3 -3
  124. package/esm2022/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.mjs +3 -3
  125. package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +3 -3
  126. package/esm2022/libs/ui/inputs/src/lib/editable-label/editable-label.directive.mjs +46 -0
  127. package/esm2022/libs/ui/inputs/src/lib/files-drop/files-drop.directive.mjs +59 -0
  128. package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +183 -0
  129. package/esm2022/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.mjs +3 -3
  130. package/esm2022/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.mjs +2 -2
  131. package/esm2022/libs/ui/inputs/src/lib/text-area/text-area.component.mjs +3 -3
  132. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +19 -27
  133. package/esm2022/libs/ui/layout/src/index.mjs +6 -3
  134. package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +3 -3
  135. package/esm2022/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.mjs +18 -0
  136. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.mjs +36 -0
  137. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +37 -0
  138. package/esm2022/libs/ui/search/src/index.mjs +1 -2
  139. package/esm2022/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.mjs +1 -1
  140. package/esm2022/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.mjs +1 -1
  141. package/esm2022/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.mjs +1 -1
  142. package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +1 -1
  143. package/esm2022/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.mjs +1 -1
  144. package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +9 -10
  145. package/esm2022/libs/ui/widgets/src/lib/badge/badge.component.mjs +3 -3
  146. package/esm2022/libs/util/i18n/src/index.mjs +1 -2
  147. package/esm2022/libs/util/i18n/src/lib/i18n.constants.mjs +18 -1
  148. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +29 -13
  149. package/esm2022/libs/util/shared/src/lib/utils/bytes-convert.mjs +4 -0
  150. package/esm2022/libs/util/shared/src/lib/utils/image-resize.mjs +60 -0
  151. package/esm2022/libs/util/shared/src/lib/utils/index.mjs +8 -5
  152. package/esm2022/libs/util/shared/src/lib/utils/temporal-extent-union.mjs +32 -0
  153. package/esm2022/translations/de.json +151 -109
  154. package/esm2022/translations/en.json +83 -41
  155. package/esm2022/translations/es.json +61 -19
  156. package/esm2022/translations/fr.json +77 -35
  157. package/esm2022/translations/it.json +78 -36
  158. package/esm2022/translations/nl.json +62 -20
  159. package/esm2022/translations/pt.json +61 -19
  160. package/fesm2022/geonetwork-ui.mjs +6072 -3926
  161. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  162. package/index.d.ts +1 -0
  163. package/index.d.ts.map +1 -1
  164. package/index.ts +1 -0
  165. package/libs/api/metadata-converter/src/index.d.ts +4 -4
  166. package/libs/api/metadata-converter/src/index.d.ts.map +1 -1
  167. package/libs/api/metadata-converter/src/lib/{metadata-base.mapper.d.ts → base.converter.d.ts} +3 -3
  168. package/libs/api/metadata-converter/src/lib/base.converter.d.ts.map +1 -0
  169. package/libs/api/metadata-converter/src/lib/find-converter.d.ts +3 -0
  170. package/libs/api/metadata-converter/src/lib/find-converter.d.ts.map +1 -0
  171. package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts +3 -0
  172. package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts.map +1 -1
  173. package/libs/api/metadata-converter/src/lib/gn4/{gn4.metadata.mapper.d.ts → gn4.converter.d.ts} +5 -5
  174. package/libs/api/metadata-converter/src/lib/gn4/gn4.converter.d.ts.map +1 -0
  175. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +0 -1
  176. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  177. package/libs/api/metadata-converter/src/lib/gn4/index.d.ts +4 -0
  178. package/libs/api/metadata-converter/src/lib/gn4/index.d.ts.map +1 -0
  179. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +4 -5
  180. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
  181. package/libs/api/metadata-converter/src/lib/iso19115-3/index.d.ts +2 -0
  182. package/libs/api/metadata-converter/src/lib/iso19115-3/index.d.ts.map +1 -0
  183. package/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.d.ts +9 -0
  184. package/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.d.ts.map +1 -0
  185. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts +20 -0
  186. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts.map +1 -0
  187. package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts +21 -0
  188. package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts.map +1 -0
  189. package/libs/api/metadata-converter/src/lib/iso19139/index.d.ts +2 -0
  190. package/libs/api/metadata-converter/src/lib/iso19139/index.d.ts.map +1 -0
  191. package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts +11 -0
  192. package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -0
  193. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +39 -10
  194. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  195. package/libs/api/metadata-converter/src/lib/iso19139/utils/individual-name.d.ts +8 -0
  196. package/libs/api/metadata-converter/src/lib/iso19139/utils/individual-name.d.ts.map +1 -0
  197. package/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.d.ts +3 -0
  198. package/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.d.ts.map +1 -0
  199. package/libs/api/metadata-converter/src/lib/iso19139/utils/role.mapper.d.ts.map +1 -0
  200. package/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.d.ts.map +1 -0
  201. package/libs/api/metadata-converter/src/lib/iso19139/utils/update-frequency.mapper.d.ts.map +1 -0
  202. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +43 -6
  203. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  204. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts +14 -1
  205. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts.map +1 -1
  206. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  207. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +2 -2
  208. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  209. package/libs/api/repository/src/lib/gn4/index.d.ts +2 -0
  210. package/libs/api/repository/src/lib/gn4/index.d.ts.map +1 -1
  211. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.d.ts.map +1 -1
  212. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts +1 -1
  213. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts.map +1 -1
  214. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +9 -2
  215. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  216. package/libs/api/repository/src/lib/gn4/selection/selection.service.d.ts +4 -5
  217. package/libs/api/repository/src/lib/gn4/selection/selection.service.d.ts.map +1 -1
  218. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +36 -20
  219. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  220. package/libs/common/domain/src/lib/model/search/aggregation.model.d.ts +1 -1
  221. package/libs/common/domain/src/lib/model/search/aggregation.model.d.ts.map +1 -1
  222. package/libs/common/domain/src/lib/model/search/field.model.d.ts +2 -0
  223. package/libs/common/domain/src/lib/model/search/field.model.d.ts.map +1 -0
  224. package/libs/common/domain/src/lib/model/search/filter.model.d.ts +1 -1
  225. package/libs/common/domain/src/lib/model/search/filter.model.d.ts.map +1 -1
  226. package/libs/common/domain/src/lib/model/search/index.d.ts +1 -0
  227. package/libs/common/domain/src/lib/model/search/index.d.ts.map +1 -1
  228. package/libs/common/domain/src/lib/model/search/search.model.d.ts +2 -3
  229. package/libs/common/domain/src/lib/model/search/search.model.d.ts.map +1 -1
  230. package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts +1 -0
  231. package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts.map +1 -1
  232. package/libs/common/domain/src/lib/platform.service.interface.d.ts +1 -1
  233. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  234. package/libs/data-access/gn4/src/openapi/api/records.api.service.d.ts +9 -5
  235. package/libs/data-access/gn4/src/openapi/api/records.api.service.d.ts.map +1 -1
  236. package/libs/data-access/gn4/src/openapi/model/models.d.ts +0 -1
  237. package/libs/data-access/gn4/src/openapi/model/models.d.ts.map +1 -1
  238. package/libs/feature/catalog/src/lib/my-org/my-org.service.d.ts +0 -1
  239. package/libs/feature/catalog/src/lib/my-org/my-org.service.d.ts.map +1 -1
  240. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +15 -2
  241. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  242. package/libs/feature/editor/src/index.d.ts +6 -1
  243. package/libs/feature/editor/src/index.d.ts.map +1 -1
  244. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +23 -0
  245. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -0
  246. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +15 -0
  247. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -0
  248. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +22 -0
  249. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -0
  250. package/libs/feature/editor/src/lib/+state/editor.models.d.ts +2 -0
  251. package/libs/feature/editor/src/lib/+state/editor.models.d.ts.map +1 -0
  252. package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts +18 -0
  253. package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts.map +1 -0
  254. package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts +15 -0
  255. package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts.map +1 -0
  256. package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-array/form-field-array.component.d.ts +1 -1
  257. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-array/form-field-array.component.d.ts.map +1 -0
  258. package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-file/form-field-file.component.d.ts +1 -1
  259. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-file/form-field-file.component.d.ts.map +1 -0
  260. package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-object/form-field-object.component.d.ts +1 -1
  261. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-object/form-field-object.component.d.ts.map +1 -0
  262. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts +16 -0
  263. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts.map +1 -0
  264. package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-simple/form-field-simple.component.d.ts +2 -2
  265. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.d.ts.map +1 -0
  266. package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts +1 -1
  267. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts.map +1 -0
  268. package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-temporal-extent/form-field-temporal-extent.component.d.ts +1 -1
  269. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extent/form-field-temporal-extent.component.d.ts.map +1 -0
  270. package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field.component.d.ts +8 -3
  271. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -0
  272. package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field.model.d.ts +0 -1
  273. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.d.ts.map +1 -0
  274. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -0
  275. package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts +16 -0
  276. package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts.map +1 -0
  277. package/libs/feature/editor/src/lib/expressions.d.ts +4 -0
  278. package/libs/feature/editor/src/lib/expressions.d.ts.map +1 -0
  279. package/libs/feature/editor/src/lib/feature-editor.module.d.ts +4 -2
  280. package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
  281. package/libs/feature/editor/src/lib/fields.config.d.ts +3 -0
  282. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -0
  283. package/libs/feature/editor/src/lib/models/fields.model.d.ts +15 -0
  284. package/libs/feature/editor/src/lib/models/fields.model.d.ts.map +1 -0
  285. package/libs/feature/editor/src/lib/services/editor.service.d.ts +3 -13
  286. package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
  287. package/libs/feature/map/src/index.d.ts +1 -0
  288. package/libs/feature/map/src/index.d.ts.map +1 -1
  289. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts.map +1 -1
  290. package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts +22 -0
  291. package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts.map +1 -0
  292. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts +23 -0
  293. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts.map +1 -0
  294. package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts +22 -0
  295. package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts.map +1 -0
  296. package/libs/feature/map/src/lib/constant/index.d.ts +1 -0
  297. package/libs/feature/map/src/lib/constant/index.d.ts.map +1 -1
  298. package/libs/feature/map/src/lib/constant/projections.d.ts.map +1 -0
  299. package/libs/feature/map/src/lib/feature-map.module.d.ts +16 -12
  300. package/libs/feature/map/src/lib/feature-map.module.d.ts.map +1 -1
  301. package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts +25 -0
  302. package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts.map +1 -0
  303. package/libs/feature/map/src/lib/geocoding.service.d.ts +18 -0
  304. package/libs/feature/map/src/lib/geocoding.service.d.ts.map +1 -0
  305. package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts +2 -0
  306. package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts.map +1 -1
  307. package/libs/feature/map/src/lib/map-context/map-context.model.d.ts +10 -5
  308. package/libs/feature/map/src/lib/map-context/map-context.model.d.ts.map +1 -1
  309. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts +2 -0
  310. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts.map +1 -1
  311. package/libs/feature/map/src/lib/utils/index.d.ts +0 -2
  312. package/libs/feature/map/src/lib/utils/index.d.ts.map +1 -1
  313. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts +13 -12
  314. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
  315. package/libs/feature/notifications/src/index.d.ts +4 -0
  316. package/libs/feature/notifications/src/index.d.ts.map +1 -0
  317. package/libs/feature/notifications/src/lib/feature-notifications.module.d.ts +7 -0
  318. package/libs/feature/notifications/src/lib/feature-notifications.module.d.ts.map +1 -0
  319. package/libs/feature/notifications/src/lib/notification.model.d.ts +7 -0
  320. package/libs/feature/notifications/src/lib/notification.model.d.ts.map +1 -0
  321. package/libs/feature/notifications/src/lib/notifications-container/notifications-container.component.d.ts +12 -0
  322. package/libs/feature/notifications/src/lib/notifications-container/notifications-container.component.d.ts.map +1 -0
  323. package/libs/feature/notifications/src/lib/notifications.service.d.ts +15 -0
  324. package/libs/feature/notifications/src/lib/notifications.service.d.ts.map +1 -0
  325. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +1 -3
  326. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  327. package/libs/feature/router/src/lib/default/index.d.ts +1 -0
  328. package/libs/feature/router/src/lib/default/index.d.ts.map +1 -1
  329. package/libs/feature/router/src/lib/default/router.service.d.ts +1 -1
  330. package/libs/feature/router/src/lib/default/router.service.d.ts.map +1 -1
  331. package/libs/feature/search/src/index.d.ts +3 -0
  332. package/libs/feature/search/src/index.d.ts.map +1 -1
  333. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts +5 -4
  334. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts.map +1 -1
  335. package/libs/feature/search/src/lib/feature-search.module.d.ts +0 -4
  336. package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
  337. package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts +3 -2
  338. package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts.map +1 -1
  339. package/libs/feature/search/src/lib/filter-geometry.token.d.ts +4 -0
  340. package/libs/feature/search/src/lib/filter-geometry.token.d.ts.map +1 -0
  341. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +1 -1
  342. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
  343. package/libs/feature/search/src/lib/record-url.token.d.ts +3 -0
  344. package/libs/feature/search/src/lib/record-url.token.d.ts.map +1 -0
  345. package/libs/feature/search/src/lib/results-table/results-table.component.d.ts +33 -0
  346. package/libs/feature/search/src/lib/results-table/results-table.component.d.ts.map +1 -0
  347. package/libs/feature/search/src/lib/state/effects.d.ts.map +1 -1
  348. package/libs/feature/search/src/lib/state/search.facade.d.ts +1 -1
  349. package/libs/feature/search/src/lib/state/search.facade.d.ts.map +1 -1
  350. package/libs/feature/search/src/lib/utils/service/fields.d.ts +21 -8
  351. package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
  352. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  353. package/libs/ui/dataviz/src/lib/chart/chart.component.d.ts +1 -1
  354. package/libs/ui/elements/src/index.d.ts +14 -11
  355. package/libs/ui/elements/src/index.d.ts.map +1 -1
  356. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
  357. package/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.d.ts +10 -0
  358. package/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.d.ts.map +1 -0
  359. package/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.d.ts +13 -0
  360. package/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.d.ts.map +1 -0
  361. package/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.d.ts +8 -0
  362. package/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.d.ts.map +1 -0
  363. package/libs/ui/elements/src/lib/max-lines/max-lines.component.d.ts.map +1 -1
  364. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +16 -5
  365. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
  366. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  367. package/libs/ui/elements/src/lib/notification/notification.component.d.ts +13 -0
  368. package/libs/ui/elements/src/lib/notification/notification.component.d.ts.map +1 -0
  369. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +3 -1
  370. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  371. package/libs/ui/elements/src/lib/thumbnail/thumbnail.component.d.ts +3 -2
  372. package/libs/ui/elements/src/lib/thumbnail/thumbnail.component.d.ts.map +1 -1
  373. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +10 -8
  374. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  375. package/libs/ui/inputs/src/index.d.ts +1 -1
  376. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  377. package/libs/ui/inputs/src/lib/button/button.component.d.ts +1 -1
  378. package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
  379. package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts +13 -0
  380. package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts.map +1 -0
  381. package/libs/ui/inputs/src/lib/files-drop/files-drop.directive.d.ts +14 -0
  382. package/libs/ui/inputs/src/lib/files-drop/files-drop.directive.d.ts.map +1 -0
  383. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts +44 -0
  384. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts.map +1 -0
  385. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts +1 -1
  386. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts.map +1 -1
  387. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +33 -39
  388. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  389. package/libs/ui/layout/src/index.d.ts +5 -2
  390. package/libs/ui/layout/src/index.d.ts.map +1 -1
  391. package/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.d.ts +8 -0
  392. package/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.d.ts.map +1 -0
  393. package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts +14 -0
  394. package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts.map +1 -0
  395. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts +15 -0
  396. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -0
  397. package/libs/ui/search/src/index.d.ts +0 -1
  398. package/libs/ui/search/src/index.d.ts.map +1 -1
  399. package/libs/ui/search/src/lib/ui-search.module.d.ts +15 -15
  400. package/libs/ui/search/src/lib/ui-search.module.d.ts.map +1 -1
  401. package/libs/util/i18n/src/index.d.ts +0 -1
  402. package/libs/util/i18n/src/index.d.ts.map +1 -1
  403. package/libs/util/i18n/src/lib/i18n.constants.d.ts +17 -0
  404. package/libs/util/i18n/src/lib/i18n.constants.d.ts.map +1 -1
  405. package/libs/util/shared/src/lib/links/link-utils.d.ts +19 -7
  406. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  407. package/libs/util/shared/src/lib/utils/bytes-convert.d.ts +2 -0
  408. package/libs/util/shared/src/lib/utils/bytes-convert.d.ts.map +1 -0
  409. package/libs/util/shared/src/lib/utils/image-resize.d.ts +3 -0
  410. package/libs/util/shared/src/lib/utils/image-resize.d.ts.map +1 -0
  411. package/libs/util/shared/src/lib/utils/index.d.ts +7 -4
  412. package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
  413. package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts +5 -0
  414. package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts.map +1 -0
  415. package/package.json +5 -2
  416. package/src/libs/api/metadata-converter/src/index.ts +4 -4
  417. package/src/libs/api/metadata-converter/src/lib/{metadata-base.mapper.ts → base.converter.ts} +2 -2
  418. package/src/libs/api/metadata-converter/src/lib/find-converter.ts +16 -0
  419. package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +94 -12
  420. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +67 -12
  421. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +260 -29
  422. package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +580 -0
  423. package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +33 -1
  424. package/src/libs/api/metadata-converter/src/lib/gn4/{gn4.metadata.mapper.ts → gn4.converter.ts} +9 -5
  425. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +149 -77
  426. package/src/libs/api/metadata-converter/src/lib/gn4/index.ts +3 -0
  427. package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +4 -5
  428. package/src/libs/api/metadata-converter/src/lib/iso19115-3/index.ts +1 -0
  429. package/src/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.ts +176 -0
  430. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +329 -0
  431. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +513 -0
  432. package/src/libs/api/metadata-converter/src/lib/iso19139/index.ts +1 -0
  433. package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +327 -0
  434. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +230 -134
  435. package/src/libs/api/metadata-converter/src/lib/iso19139/utils/individual-name.ts +20 -0
  436. package/src/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.ts +16 -0
  437. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +338 -178
  438. package/src/libs/api/metadata-converter/src/lib/xml-utils.ts +84 -16
  439. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +1 -1
  440. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +2 -2
  441. package/src/libs/api/repository/src/lib/gn4/index.ts +2 -0
  442. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +22 -2
  443. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +15 -4
  444. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +47 -8
  445. package/src/libs/api/repository/src/lib/gn4/selection/selection.service.ts +14 -38
  446. package/src/libs/common/domain/src/lib/index.ts +2 -0
  447. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +45 -24
  448. package/src/libs/common/domain/src/lib/model/search/aggregation.model.ts +1 -1
  449. package/src/libs/common/domain/src/lib/model/search/field.model.ts +1 -0
  450. package/src/libs/common/domain/src/lib/model/search/filter.model.ts +1 -1
  451. package/src/libs/common/domain/src/lib/model/search/index.ts +1 -0
  452. package/src/libs/common/domain/src/lib/model/search/search.model.ts +2 -2
  453. package/src/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.ts +1 -0
  454. package/src/libs/common/domain/src/lib/model/user/index.ts +1 -0
  455. package/src/libs/common/domain/src/lib/platform.service.interface.ts +1 -4
  456. package/src/libs/common/fixtures/src/lib/elasticsearch/full-response.ts +1 -1
  457. package/src/libs/common/fixtures/src/lib/gn4/groups.fixtures.ts +1 -1
  458. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +52 -10
  459. package/src/libs/data-access/gn4/src/openapi/api/records.api.service.ts +43 -12
  460. package/src/libs/data-access/gn4/src/openapi/model/models.ts +0 -1
  461. package/src/libs/data-access/gn4/src/spec.yaml +1 -1
  462. package/src/libs/feature/catalog/src/lib/my-org/my-org.service.ts +4 -16
  463. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +9 -6
  464. package/src/libs/feature/editor/src/index.ts +6 -1
  465. package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +24 -0
  466. package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +49 -0
  467. package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +37 -0
  468. package/src/libs/feature/editor/src/lib/+state/editor.models.ts +1 -0
  469. package/src/libs/feature/editor/src/lib/+state/editor.reducer.ts +68 -0
  470. package/src/libs/feature/editor/src/lib/+state/editor.selectors.ts +39 -0
  471. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.html +8 -0
  472. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.ts +70 -0
  473. package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-array/form-field-array.component.ts +1 -0
  474. package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-file/form-field-file.component.ts +4 -1
  475. package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-object/form-field-object.component.ts +1 -0
  476. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.html +20 -0
  477. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.ts +44 -0
  478. package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-simple/form-field-simple.component.ts +4 -1
  479. package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +1 -0
  480. package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-temporal-extent/form-field-temporal-extent.component.ts +1 -0
  481. package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field.component.html +28 -4
  482. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +121 -0
  483. package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field.model.ts +0 -1
  484. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.css +0 -0
  485. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.html +11 -0
  486. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.ts +30 -0
  487. package/src/libs/feature/editor/src/lib/expressions.ts +16 -0
  488. package/src/libs/feature/editor/src/lib/feature-editor.module.ts +16 -5
  489. package/src/libs/feature/editor/src/lib/fields.config.ts +35 -0
  490. package/src/libs/feature/editor/src/lib/models/fields.model.ts +29 -0
  491. package/src/libs/feature/editor/src/lib/services/editor.service.ts +39 -67
  492. package/src/libs/feature/map/src/index.ts +1 -0
  493. package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.ts +5 -1
  494. package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.css +0 -0
  495. package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.html +21 -0
  496. package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.ts +107 -0
  497. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.css +0 -0
  498. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.html +36 -0
  499. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.ts +80 -0
  500. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.css +0 -0
  501. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.html +37 -0
  502. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.ts +64 -0
  503. package/src/libs/feature/map/src/lib/constant/index.ts +1 -0
  504. package/src/libs/feature/map/src/lib/feature-map.module.ts +14 -0
  505. package/src/libs/feature/map/src/lib/geocoding/geocoding.component.css +0 -0
  506. package/src/libs/feature/map/src/lib/geocoding/geocoding.component.html +39 -0
  507. package/src/libs/feature/map/src/lib/geocoding/geocoding.component.ts +99 -0
  508. package/src/libs/feature/map/src/lib/geocoding.service.ts +59 -0
  509. package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.html +14 -2
  510. package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.ts +5 -0
  511. package/src/libs/feature/map/src/lib/map-context/map-context.model.ts +10 -3
  512. package/src/libs/feature/map/src/lib/map-context/map-context.service.ts +72 -28
  513. package/src/libs/feature/map/src/lib/utils/index.ts +0 -2
  514. package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +87 -96
  515. package/src/libs/feature/notifications/src/index.ts +3 -0
  516. package/src/libs/feature/notifications/src/lib/feature-notifications.module.ts +10 -0
  517. package/src/libs/feature/notifications/src/lib/notification.model.ts +6 -0
  518. package/src/libs/feature/notifications/src/lib/notifications-container/notifications-container.component.css +0 -0
  519. package/src/libs/feature/notifications/src/lib/notifications-container/notifications-container.component.html +17 -0
  520. package/src/libs/feature/notifications/src/lib/notifications-container/notifications-container.component.ts +44 -0
  521. package/src/libs/feature/notifications/src/lib/notifications.service.ts +27 -0
  522. package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +12 -12
  523. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +23 -4
  524. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +1 -1
  525. package/src/libs/feature/router/src/lib/default/index.ts +1 -0
  526. package/src/libs/feature/router/src/lib/default/router.service.ts +1 -1
  527. package/src/libs/feature/search/src/index.ts +3 -0
  528. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.html +13 -4
  529. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +2 -1
  530. package/src/libs/feature/search/src/lib/feature-search.module.ts +1 -10
  531. package/src/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.ts +4 -4
  532. package/src/libs/feature/search/src/lib/filter-geometry.token.ts +7 -0
  533. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +9 -3
  534. package/src/libs/feature/search/src/lib/record-url.token.ts +4 -0
  535. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +1 -1
  536. package/src/libs/feature/search/src/lib/results-table/results-table.component.css +0 -0
  537. package/src/libs/feature/search/src/lib/results-table/results-table.component.html +112 -0
  538. package/src/libs/feature/search/src/lib/results-table/results-table.component.ts +164 -0
  539. package/src/libs/feature/search/src/lib/state/effects.ts +5 -4
  540. package/src/libs/feature/search/src/lib/state/search.facade.ts +2 -1
  541. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +21 -16
  542. package/src/libs/feature/search/src/lib/utils/service/fields.ts +43 -34
  543. package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.html +1 -0
  544. package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.ts +1 -1
  545. package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.html +5 -5
  546. package/src/libs/ui/elements/src/index.ts +14 -11
  547. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +4 -1
  548. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.css +0 -0
  549. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.html +30 -0
  550. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.ts +15 -0
  551. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.css +0 -0
  552. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.html +18 -0
  553. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.ts +45 -0
  554. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.css +264 -0
  555. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.html +1 -0
  556. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.ts +17 -0
  557. package/src/libs/ui/elements/src/lib/max-lines/max-lines.component.html +5 -1
  558. package/src/libs/ui/elements/src/lib/max-lines/max-lines.component.ts +1 -0
  559. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +3 -3
  560. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.css +4 -0
  561. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +212 -68
  562. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +51 -10
  563. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +2 -3
  564. package/src/libs/ui/elements/src/lib/notification/notification.component.css +0 -0
  565. package/src/libs/ui/elements/src/lib/notification/notification.component.html +52 -0
  566. package/src/libs/ui/elements/src/lib/notification/notification.component.ts +31 -0
  567. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +6 -6
  568. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +12 -4
  569. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +1 -1
  570. package/src/libs/ui/elements/src/lib/thumbnail/thumbnail.component.html +2 -2
  571. package/src/libs/ui/elements/src/lib/thumbnail/thumbnail.component.ts +9 -3
  572. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +8 -1
  573. package/src/libs/ui/inputs/src/index.ts +1 -1
  574. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +1 -1
  575. package/src/libs/ui/inputs/src/lib/button/button.component.css +0 -5
  576. package/src/libs/ui/inputs/src/lib/button/button.component.html +0 -1
  577. package/src/libs/ui/inputs/src/lib/button/button.component.ts +8 -7
  578. package/src/libs/ui/inputs/src/lib/checkbox/checkbox.component.html +0 -1
  579. package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.html +2 -2
  580. package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.html +3 -1
  581. package/src/libs/ui/inputs/src/lib/editable-label/editable-label.directive.ts +48 -0
  582. package/src/libs/ui/inputs/src/lib/files-drop/files-drop.directive.ts +45 -0
  583. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.css +0 -0
  584. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.html +146 -0
  585. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.ts +193 -0
  586. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.css +3 -0
  587. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.html +8 -3
  588. package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.css +1 -0
  589. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.ts +1 -0
  590. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +8 -21
  591. package/src/libs/ui/layout/src/index.ts +5 -2
  592. package/src/libs/ui/layout/src/lib/carousel/carousel.component.css +1 -1
  593. package/src/libs/ui/layout/src/lib/carousel/carousel.component.html +1 -0
  594. package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.css +0 -0
  595. package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.html +18 -0
  596. package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.ts +16 -0
  597. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.css +0 -0
  598. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.html +1 -0
  599. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.ts +33 -0
  600. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.css +15 -0
  601. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +54 -0
  602. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +42 -0
  603. package/src/libs/ui/search/src/index.ts +0 -1
  604. package/src/libs/ui/search/src/lib/ui-search.module.ts +2 -3
  605. package/src/libs/ui/widgets/src/lib/badge/badge.component.html +3 -1
  606. package/src/libs/util/i18n/src/index.ts +0 -1
  607. package/src/libs/util/i18n/src/lib/i18n.constants.ts +18 -0
  608. package/src/libs/util/shared/src/lib/links/link-utils.ts +34 -11
  609. package/src/libs/util/shared/src/lib/utils/bytes-convert.ts +3 -0
  610. package/src/libs/util/shared/src/lib/utils/image-resize.ts +72 -0
  611. package/src/libs/util/shared/src/lib/utils/index.ts +7 -4
  612. package/src/libs/util/shared/src/lib/utils/temporal-extent-union.ts +32 -0
  613. package/tailwind.base.css +80 -15
  614. package/translations/de.json +151 -109
  615. package/translations/en.json +83 -41
  616. package/translations/es.json +61 -19
  617. package/translations/fr.json +77 -35
  618. package/translations/it.json +78 -36
  619. package/translations/nl.json +62 -20
  620. package/translations/pt.json +61 -19
  621. package/translations/sk.json +139 -97
  622. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.mjs +0 -48
  623. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/codelists/role.mapper.mjs +0 -48
  624. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/codelists/status.mapper.mjs +0 -18
  625. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/codelists/update-frequency.mapper.mjs +0 -64
  626. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/converter.mjs +0 -122
  627. package/esm2022/libs/api/metadata-converter/src/lib/metadata-base.mapper.mjs +0 -14
  628. package/esm2022/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.mjs +0 -13
  629. package/esm2022/libs/feature/editor/src/lib/record-form/record-form.component.mjs +0 -24
  630. package/esm2022/libs/feature/map/src/lib/utils/map-utils-wms.service.mjs +0 -55
  631. package/esm2022/libs/feature/map/src/lib/utils/projections.mjs +0 -2
  632. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field-array/form-field-array.component.mjs +0 -11
  633. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field-file/form-field-file.component.mjs +0 -27
  634. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field-object/form-field-object.component.mjs +0 -11
  635. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field-rich/form-field-rich.component.mjs +0 -27
  636. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field-simple/form-field-simple.component.mjs +0 -49
  637. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +0 -11
  638. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field-temporal-extent/form-field-temporal-extent.component.mjs +0 -11
  639. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field.component.mjs +0 -74
  640. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field.model.mjs +0 -2
  641. package/esm2022/libs/ui/inputs/src/lib/form-field/index.mjs +0 -10
  642. package/esm2022/libs/ui/search/src/lib/record-table/record-table.component.mjs +0 -145
  643. package/esm2022/libs/util/i18n/src/lib/testing/test.translate.loader.mjs +0 -24
  644. package/esm2022/libs/util/i18n/src/lib/testing/test.translate.module.mjs +0 -109
  645. package/esm2022/libs/util/i18n/src/lib/testing/translations.model.mjs +0 -6
  646. package/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.d.ts.map +0 -1
  647. package/libs/api/metadata-converter/src/lib/iso19139/codelists/role.mapper.d.ts.map +0 -1
  648. package/libs/api/metadata-converter/src/lib/iso19139/codelists/status.mapper.d.ts.map +0 -1
  649. package/libs/api/metadata-converter/src/lib/iso19139/codelists/update-frequency.mapper.d.ts.map +0 -1
  650. package/libs/api/metadata-converter/src/lib/iso19139/converter.d.ts +0 -4
  651. package/libs/api/metadata-converter/src/lib/iso19139/converter.d.ts.map +0 -1
  652. package/libs/api/metadata-converter/src/lib/metadata-base.mapper.d.ts.map +0 -1
  653. package/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.d.ts +0 -18
  654. package/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.d.ts.map +0 -1
  655. package/libs/feature/editor/src/lib/record-form/record-form.component.d.ts +0 -11
  656. package/libs/feature/editor/src/lib/record-form/record-form.component.d.ts.map +0 -1
  657. package/libs/feature/map/src/lib/utils/map-utils-wms.service.d.ts +0 -17
  658. package/libs/feature/map/src/lib/utils/map-utils-wms.service.d.ts.map +0 -1
  659. package/libs/feature/map/src/lib/utils/projections.d.ts.map +0 -1
  660. package/libs/ui/inputs/src/lib/form-field/form-field-array/form-field-array.component.d.ts.map +0 -1
  661. package/libs/ui/inputs/src/lib/form-field/form-field-file/form-field-file.component.d.ts.map +0 -1
  662. package/libs/ui/inputs/src/lib/form-field/form-field-object/form-field-object.component.d.ts.map +0 -1
  663. package/libs/ui/inputs/src/lib/form-field/form-field-rich/form-field-rich.component.d.ts +0 -11
  664. package/libs/ui/inputs/src/lib/form-field/form-field-rich/form-field-rich.component.d.ts.map +0 -1
  665. package/libs/ui/inputs/src/lib/form-field/form-field-simple/form-field-simple.component.d.ts.map +0 -1
  666. package/libs/ui/inputs/src/lib/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts.map +0 -1
  667. package/libs/ui/inputs/src/lib/form-field/form-field-temporal-extent/form-field-temporal-extent.component.d.ts.map +0 -1
  668. package/libs/ui/inputs/src/lib/form-field/form-field.component.d.ts.map +0 -1
  669. package/libs/ui/inputs/src/lib/form-field/form-field.model.d.ts.map +0 -1
  670. package/libs/ui/inputs/src/lib/form-field/index.d.ts.map +0 -1
  671. package/libs/ui/search/src/lib/record-table/record-table.component.d.ts +0 -31
  672. package/libs/ui/search/src/lib/record-table/record-table.component.d.ts.map +0 -1
  673. package/libs/util/i18n/src/lib/testing/test.translate.loader.d.ts +0 -17
  674. package/libs/util/i18n/src/lib/testing/test.translate.loader.d.ts.map +0 -1
  675. package/libs/util/i18n/src/lib/testing/test.translate.module.d.ts +0 -131
  676. package/libs/util/i18n/src/lib/testing/test.translate.module.d.ts.map +0 -1
  677. package/libs/util/i18n/src/lib/testing/translations.model.d.ts +0 -21
  678. package/libs/util/i18n/src/lib/testing/translations.model.d.ts.map +0 -1
  679. package/src/libs/api/metadata-converter/src/lib/iso19139/converter.ts +0 -187
  680. package/src/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.ts +0 -18
  681. package/src/libs/feature/editor/src/lib/record-form/record-form.component.html +0 -8
  682. package/src/libs/feature/editor/src/lib/record-form/record-form.component.ts +0 -23
  683. package/src/libs/feature/map/src/lib/utils/map-utils-wms.service.ts +0 -58
  684. package/src/libs/ui/inputs/src/lib/form-field/form-field-rich/form-field-rich.component.html +0 -11
  685. package/src/libs/ui/inputs/src/lib/form-field/form-field-rich/form-field-rich.component.ts +0 -15
  686. package/src/libs/ui/inputs/src/lib/form-field/form-field.component.ts +0 -78
  687. package/src/libs/ui/search/src/lib/record-table/record-table.component.css +0 -7
  688. package/src/libs/ui/search/src/lib/record-table/record-table.component.html +0 -215
  689. package/src/libs/ui/search/src/lib/record-table/record-table.component.ts +0 -149
  690. package/src/libs/util/i18n/src/lib/testing/test.translate.loader.ts +0 -26
  691. package/src/libs/util/i18n/src/lib/testing/test.translate.module.ts +0 -235
  692. package/src/libs/util/i18n/src/lib/testing/translations.model.ts +0 -28
  693. /package/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/role.mapper.d.ts +0 -0
  694. /package/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/status.mapper.d.ts +0 -0
  695. /package/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/update-frequency.mapper.d.ts +0 -0
  696. /package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/index.d.ts +0 -0
  697. /package/libs/feature/map/src/lib/{utils → constant}/projections.d.ts +0 -0
  698. /package/src/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/role.mapper.ts +0 -0
  699. /package/src/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/status.mapper.ts +0 -0
  700. /package/src/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/update-frequency.mapper.ts +0 -0
  701. /package/src/libs/feature/editor/src/lib/{record-form/record-form.component.css → components/overview-upload/overview-upload.component.css} +0 -0
  702. /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-array/form-field-array.component.css +0 -0
  703. /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-array/form-field-array.component.html +0 -0
  704. /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-file/form-field-file.component.css +0 -0
  705. /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-file/form-field-file.component.html +0 -0
  706. /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-object/form-field-object.component.css +0 -0
  707. /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-object/form-field-object.component.html +0 -0
  708. /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-rich/form-field-rich.component.css +0 -0
  709. /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-simple/form-field-simple.component.css +0 -0
  710. /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-simple/form-field-simple.component.html +0 -0
  711. /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-spatial-extent/form-field-spatial-extent.component.css +0 -0
  712. /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +0 -0
  713. /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-temporal-extent/form-field-temporal-extent.component.css +0 -0
  714. /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-temporal-extent/form-field-temporal-extent.component.html +0 -0
  715. /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field.component.css +0 -0
  716. /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/index.ts +0 -0
  717. /package/src/libs/feature/map/src/lib/{utils → constant}/projections.ts +0 -0
@@ -0,0 +1,93 @@
1
+ import { Component } from '@angular/core';
2
+ import { catchError, from, Subject, takeUntil } from 'rxjs';
3
+ import { debounceTime, switchMap } from 'rxjs/operators';
4
+ import { MapManagerService } from '../manager/map-manager.service';
5
+ import { fromLonLat } from 'ol/proj';
6
+ import { Polygon } from 'ol/geom';
7
+ import { GeocodingService } from '../geocoding.service';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../manager/map-manager.service";
10
+ import * as i2 from "../geocoding.service";
11
+ import * as i3 from "@angular/common";
12
+ import * as i4 from "../../../../../ui/inputs/src/lib/search-input/search-input.component";
13
+ import * as i5 from "@ngx-translate/core";
14
+ export class GeocodingComponent {
15
+ constructor(mapManager, geocodingService) {
16
+ this.mapManager = mapManager;
17
+ this.geocodingService = geocodingService;
18
+ this.searchText = '';
19
+ this.results = [];
20
+ this.searchTextChanged = new Subject();
21
+ this.destroy$ = new Subject();
22
+ this.errorMessage = null;
23
+ this.searchTextChanged
24
+ .pipe(debounceTime(300), switchMap((searchText) => {
25
+ return from(this.geocodingService.query(searchText)).pipe(catchError((error) => {
26
+ this.errorMessage =
27
+ 'An error occurred while searching. Please try again.';
28
+ console.error(error);
29
+ return [];
30
+ }));
31
+ }), takeUntil(this.destroy$))
32
+ .subscribe((results) => {
33
+ this.results = results;
34
+ });
35
+ }
36
+ ngOnDestroy() {
37
+ this.destroy$.next();
38
+ this.destroy$.complete();
39
+ }
40
+ onSearchChange(searchText) {
41
+ if (!searchText) {
42
+ this.clearSearch();
43
+ return;
44
+ }
45
+ else {
46
+ this.searchTextChanged.next(searchText);
47
+ }
48
+ }
49
+ clearSearch() {
50
+ this.searchText = '';
51
+ this.results = [];
52
+ this.errorMessage = null;
53
+ }
54
+ zoomToLocation(result) {
55
+ const map = this.mapManager.map;
56
+ const view = map.getView();
57
+ const geometry = result.geom;
58
+ if (geometry.type === 'Point') {
59
+ this.zoomToPoint(geometry.coordinates, view);
60
+ }
61
+ else if (geometry.type === 'Polygon') {
62
+ this.zoomToPolygon(geometry.coordinates, view);
63
+ }
64
+ else {
65
+ console.error(`Unsupported geometry type: ${geometry.type}`);
66
+ }
67
+ }
68
+ zoomToPoint(pointCoords, view) {
69
+ const transformedCoords = fromLonLat(pointCoords);
70
+ view.setCenter(transformedCoords);
71
+ view.setZoom(12);
72
+ }
73
+ zoomToPolygon(polygonCoords, view) {
74
+ const transformedCoords = polygonCoords[0].map((coord) => fromLonLat(coord));
75
+ const polygon = new Polygon([transformedCoords]);
76
+ view.fit(polygon, {
77
+ duration: 100,
78
+ maxZoom: 12,
79
+ });
80
+ }
81
+ onEnterPress() {
82
+ if (this.results && this.results.length > 0) {
83
+ this.zoomToLocation(this.results[0]);
84
+ }
85
+ }
86
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: GeocodingComponent, deps: [{ token: i1.MapManagerService }, { token: i2.GeocodingService }], target: i0.ɵɵFactoryTarget.Component }); }
87
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: GeocodingComponent, selector: "gn-ui-geocoding", ngImport: i0, template: "<gn-ui-search-input\n [(value)]=\"searchText\"\n (valueChange)=\"onSearchChange($event)\"\n (keyup.enter)=\"onEnterPress()\"\n [placeholder]=\"'map.geocoding.placeholder' | translate\"\n>\n</gn-ui-search-input>\n<ul\n class=\"bg-gray-50 border border-gray-200 w-full mt-2 shadow-sm rounded-lg\"\n *ngIf=\"results && results.length\"\n>\n <li\n *ngFor=\"let result of results\"\n (click)=\"zoomToLocation(result)\"\n class=\"flex items-center pl-8 pr-4 py-2 border-b border-gray-200 relative cursor-pointer hover:bg-blue-100 hover:text-gray-800 transition duration-300 ease-in-out\"\n >\n <svg\n class=\"stroke-current text-blue-500 absolute w-5 h-5 left-3 top-3\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z\"\n />\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M15 11a3 3 0 11-6 0 3 3 0 016 0z\"\n />\n </svg>\n <span class=\"font-sans font-semibold ml-4\">{{ result.label }}</span>\n </li>\n</ul>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.SearchInputComponent, selector: "gn-ui-search-input", inputs: ["value", "placeholder"], outputs: ["valueChange"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] }); }
88
+ }
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: GeocodingComponent, decorators: [{
90
+ type: Component,
91
+ args: [{ selector: 'gn-ui-geocoding', template: "<gn-ui-search-input\n [(value)]=\"searchText\"\n (valueChange)=\"onSearchChange($event)\"\n (keyup.enter)=\"onEnterPress()\"\n [placeholder]=\"'map.geocoding.placeholder' | translate\"\n>\n</gn-ui-search-input>\n<ul\n class=\"bg-gray-50 border border-gray-200 w-full mt-2 shadow-sm rounded-lg\"\n *ngIf=\"results && results.length\"\n>\n <li\n *ngFor=\"let result of results\"\n (click)=\"zoomToLocation(result)\"\n class=\"flex items-center pl-8 pr-4 py-2 border-b border-gray-200 relative cursor-pointer hover:bg-blue-100 hover:text-gray-800 transition duration-300 ease-in-out\"\n >\n <svg\n class=\"stroke-current text-blue-500 absolute w-5 h-5 left-3 top-3\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z\"\n />\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M15 11a3 3 0 11-6 0 3 3 0 016 0z\"\n />\n </svg>\n <span class=\"font-sans font-semibold ml-4\">{{ result.label }}</span>\n </li>\n</ul>\n" }]
92
+ }], ctorParameters: function () { return [{ type: i1.MapManagerService }, { type: i2.GeocodingService }]; } });
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvY29kaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9nZW9jb2RpbmcvZ2VvY29kaW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9nZW9jb2RpbmcvZ2VvY29kaW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUE7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDcEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUNqQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTs7Ozs7OztBQU92RCxNQUFNLE9BQU8sa0JBQWtCO0lBTzdCLFlBQ1UsVUFBNkIsRUFDN0IsZ0JBQWtDO1FBRGxDLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzdCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFSNUMsZUFBVSxHQUFHLEVBQUUsQ0FBQTtRQUNmLFlBQU8sR0FBVSxFQUFFLENBQUE7UUFDbkIsc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQTtRQUN6QyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQTtRQUM5QixpQkFBWSxHQUFrQixJQUFJLENBQUE7UUFNaEMsSUFBSSxDQUFDLGlCQUFpQjthQUNu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QUFDO0lBRUQsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDM0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7U0FDckM7SUFDSCxDQUFDOzhHQXBGVSxrQkFBa0I7a0dBQWxCLGtCQUFrQix1RENiL0Isa3lDQXVDQTs7MkZEMUJhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmcm9tLCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IE1hcE1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vbWFuYWdlci9tYXAtbWFuYWdlci5zZXJ2aWNlJ1xuaW1wb3J0IHsgZnJvbUxvbkxhdCB9IGZyb20gJ29sL3Byb2onXG5pbXBvcnQgeyBQb2x5Z29uIH0gZnJvbSAnb2wvZ2VvbSdcbmltcG9ydCB7IEdlb2NvZGluZ1NlcnZpY2UgfSBmcm9tICcuLi9nZW9jb2Rpbmcuc2VydmljZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZ2VvY29kaW5nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dlb2NvZGluZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dlb2NvZGluZy5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdlb2NvZGluZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHNlYXJjaFRleHQgPSAnJ1xuICByZXN1bHRzOiBhbnlbXSA9IFtdXG4gIHNlYXJjaFRleHRDaGFuZ2VkID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpXG4gIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKVxuICBlcnJvck1lc3NhZ2U6IHN0cmluZyB8IG51bGwgPSBudWxsXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBtYXBNYW5hZ2VyOiBNYXBNYW5hZ2VyU2VydmljZSxcbiAgICBwcml2YXRlIGdlb2NvZGluZ1NlcnZpY2U6IEdlb2NvZGluZ1NlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5zZWFyY2hUZXh0Q2hhbmdlZFxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSgzMDApLFxuICAgICAgICBzd2l0Y2hNYXAoKHNlYXJjaFRleHQpID0+IHtcbiAgICAgICAgICByZXR1cm4gZnJvbSh0aGlzLmdlb2NvZGluZ1NlcnZpY2UucXVlcnkoc2VhcmNoVGV4dCkpLnBpcGUoXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9XG4gICAgICAgICAgICAgICAgJ0FuIGVycm9yIG9jY3VycmVkIHdoaWxlIHNlYXJjaGluZy4gUGxlYXNlIHRyeSBhZ2Fpbi4nXG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpXG4gICAgICAgICAgICAgIHJldHVybiBbXVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdHMpID0+IHtcbiAgICAgICAgdGhpcy5yZXN1bHRzID0gcmVzdWx0c1xuICAgICAgfSlcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpXG4gIH1cblxuICBvblNlYXJjaENoYW5nZShzZWFyY2hUZXh0OiBzdHJpbmcpIHtcbiAgICBpZiAoIXNlYXJjaFRleHQpIHtcbiAgICAgIHRoaXMuY2xlYXJTZWFyY2goKVxuICAgICAgcmV0dXJuXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VhcmNoVGV4dENoYW5nZWQubmV4dChzZWFyY2hUZXh0KVxuICAgIH1cbiAgfVxuXG4gIGNsZWFyU2VhcmNoKCkge1xuICAgIHRoaXMuc2VhcmNoVGV4dCA9ICcnXG4gICAgdGhpcy5yZXN1bHRzID0gW11cbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IG51bGxcbiAgfVxuXG4gIHpvb21Ub0xvY2F0aW9uKHJlc3VsdDogYW55KSB7XG4gICAgY29uc3QgbWFwID0gdGhpcy5tYXBNYW5hZ2VyLm1hcFxuICAgIGNvbnN0IHZpZXcgPSBtYXAuZ2V0VmlldygpXG4gICAgY29uc3QgZ2VvbWV0cnkgPSByZXN1bHQuZ2VvbVxuXG4gICAgaWYgKGdlb21ldHJ5LnR5cGUgPT09ICdQb2ludCcpIHtcbiAgICAgIHRoaXMuem9vbVRvUG9pbnQoZ2VvbWV0cnkuY29vcmRpbmF0ZXMsIHZpZXcpXG4gICAgfSBlbHNlIGlmIChnZW9tZXRyeS50eXBlID09PSAnUG9seWdvbicpIHtcbiAgICAgIHRoaXMuem9vbVRvUG9seWdvbihnZW9tZXRyeS5jb29yZGluYXRlcywgdmlldylcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcihgVW5zdXBwb3J0ZWQgZ2VvbWV0cnkgdHlwZTogJHtnZW9tZXRyeS50eXBlfWApXG4gICAgfVxuICB9XG5cbiAgem9vbVRvUG9pbnQocG9pbnRDb29yZHM6IFtudW1iZXIsIG51bWJlcl0sIHZpZXc6IGFueSkge1xuICAgIGNvbnN0IHRyYW5zZm9ybWVkQ29vcmRzID0gZnJvbUxvbkxhdChwb2ludENvb3JkcylcbiAgICB2aWV3LnNldENlbnRlcih0cmFuc2Zvcm1lZENvb3JkcylcbiAgICB2aWV3LnNldFpvb20oMTIpXG4gIH1cblxuICB6b29tVG9Qb2x5Z29uKHBvbHlnb25Db29yZHM6IFtbbnVtYmVyLCBudW1iZXJdW11dLCB2aWV3OiBhbnkpIHtcbiAgICBjb25zdCB0cmFuc2Zvcm1lZENvb3JkcyA9IHBvbHlnb25Db29yZHNbMF0ubWFwKChjb29yZCkgPT4gZnJvbUxvbkxhdChjb29yZCkpXG4gICAgY29uc3QgcG9seWdvbiA9IG5ldyBQb2x5Z29uKFt0cmFuc2Zvcm1lZENvb3Jkc10pXG4gICAgdmlldy5maXQocG9seWdvbiwge1xuICAgICAgZHVyYXRpb246IDEwMCxcbiAgICAgIG1heFpvb206IDEyLFxuICAgIH0pXG4gIH1cblxuICBvbkVudGVyUHJlc3MoKSB7XG4gICAgaWYgKHRoaXMucmVzdWx0cyAmJiB0aGlzLnJlc3VsdHMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy56b29tVG9Mb2NhdGlvbih0aGlzLnJlc3VsdHNbMF0pXG4gICAgfVxuICB9XG59XG4iLCI8Z24tdWktc2VhcmNoLWlucHV0XG4gIFsodmFsdWUpXT1cInNlYXJjaFRleHRcIlxuICAodmFsdWVDaGFuZ2UpPVwib25TZWFyY2hDaGFuZ2UoJGV2ZW50KVwiXG4gIChrZXl1cC5lbnRlcik9XCJvbkVudGVyUHJlc3MoKVwiXG4gIFtwbGFjZWhvbGRlcl09XCInbWFwLmdlb2NvZGluZy5wbGFjZWhvbGRlcicgfCB0cmFuc2xhdGVcIlxuPlxuPC9nbi11aS1zZWFyY2gtaW5wdXQ+XG48dWxcbiAgY2xhc3M9XCJiZy1ncmF5LTUwIGJvcmRlciBib3JkZXItZ3JheS0yMDAgdy1mdWxsIG10LTIgc2hhZG93LXNtIHJvdW5kZWQtbGdcIlxuICAqbmdJZj1cInJlc3VsdHMgJiYgcmVzdWx0cy5sZW5ndGhcIlxuPlxuICA8bGlcbiAgICAqbmdGb3I9XCJsZXQgcmVzdWx0IG9mIHJlc3VsdHNcIlxuICAgIChjbGljayk9XCJ6b29tVG9Mb2NhdGlvbihyZXN1bHQpXCJcbiAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHBsLTggcHItNCBweS0yIGJvcmRlci1iIGJvcmRlci1ncmF5LTIwMCByZWxhdGl2ZSBjdXJzb3ItcG9pbnRlciBob3ZlcjpiZy1ibHVlLTEwMCBob3Zlcjp0ZXh0LWdyYXktODAwIHRyYW5zaXRpb24gZHVyYXRpb24tMzAwIGVhc2UtaW4tb3V0XCJcbiAgPlxuICAgIDxzdmdcbiAgICAgIGNsYXNzPVwic3Ryb2tlLWN1cnJlbnQgdGV4dC1ibHVlLTUwMCBhYnNvbHV0ZSB3LTUgaC01IGxlZnQtMyB0b3AtM1wiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcbiAgICAgICAgZD1cIk0xNy42NTcgMTYuNjU3TDEzLjQxNCAyMC45YTEuOTk4IDEuOTk4IDAgMDEtMi44MjcgMGwtNC4yNDQtNC4yNDNhOCA4IDAgMTExMS4zMTQgMHpcIlxuICAgICAgLz5cbiAgICAgIDxwYXRoXG4gICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxuICAgICAgICBkPVwiTTE1IDExYTMgMyAwIDExLTYgMCAzIDMgMCAwMTYgMHpcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgICA8c3BhbiBjbGFzcz1cImZvbnQtc2FucyBmb250LXNlbWlib2xkIG1sLTRcIj57eyByZXN1bHQubGFiZWwgfX08L3NwYW4+XG4gIDwvbGk+XG48L3VsPlxuIl19
@@ -0,0 +1,40 @@
1
+ import { Injectable, Inject, InjectionToken } from '@angular/core';
2
+ import { queryGeoadmin, queryGeonames, queryDataGouvFr, } from '@geospatial-sdk/geocoding';
3
+ import { from, throwError } from 'rxjs';
4
+ import { catchError } from 'rxjs/operators';
5
+ import * as i0 from "@angular/core";
6
+ export const GEOCODING_PROVIDER = new InjectionToken('geocoding-provider');
7
+ export class GeocodingService {
8
+ constructor(provider) {
9
+ this.provider = provider;
10
+ }
11
+ query(text) {
12
+ let queryObservable;
13
+ switch (this.provider[0]) {
14
+ case 'geoadmin':
15
+ queryObservable = from(queryGeoadmin(text, this.provider[1]));
16
+ break;
17
+ case 'geonames':
18
+ queryObservable = from(queryGeonames(text, this.provider[1]));
19
+ break;
20
+ case 'data-gouv-fr':
21
+ queryObservable = from(queryDataGouvFr(text, this.provider[1]));
22
+ break;
23
+ default:
24
+ return throwError(() => new Error(`Unsupported geocoding provider: ${this.provider[0]}`));
25
+ }
26
+ return queryObservable.pipe(catchError((error) => throwError(error)));
27
+ }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: GeocodingService, deps: [{ token: GEOCODING_PROVIDER }], target: i0.ɵɵFactoryTarget.Injectable }); }
29
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: GeocodingService, providedIn: 'root' }); }
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: GeocodingService, decorators: [{
32
+ type: Injectable,
33
+ args: [{
34
+ providedIn: 'root',
35
+ }]
36
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
37
+ type: Inject,
38
+ args: [GEOCODING_PROVIDER]
39
+ }] }]; } });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvY29kaW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbWFwL3NyYy9saWIvZ2VvY29kaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xFLE9BQU8sRUFDTCxhQUFhLEVBR2IsYUFBYSxFQUdiLGVBQWUsR0FDaEIsTUFBTSwyQkFBMkIsQ0FBQTtBQUNsQyxPQUFPLEVBQUUsSUFBSSxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7O0FBVTNDLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUNsRCxvQkFBb0IsQ0FDckIsQ0FBQTtBQUtELE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsWUFDc0MsUUFBMkI7UUFBM0IsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7SUFDOUQsQ0FBQztJQUVKLEtBQUssQ0FBQyxJQUFZO1FBQ2hCLElBQUksZUFBOEMsQ0FBQTtRQUNsRCxRQUFRLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDeEIsS0FBSyxVQUFVO2dCQUNiLGVBQWUsR0FBRyxJQUFJLENBQ3BCLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQW9CLENBQUMsQ0FDekQsQ0FBQTtnQkFDRCxNQUFLO1lBQ1AsS0FBSyxVQUFVO2dCQUNiLGVBQWUsR0FBRyxJQUFJLENBQ3BCLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQW9CLENBQUMsQ0FDekQsQ0FBQTtnQkFDRCxNQUFLO1lBQ1AsS0FBSyxjQUFjO2dCQUNqQixlQUFlLEdBQUcsSUFBSSxDQUNwQixlQUFlLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFzQixDQUFDLENBQzdELENBQUE7Z0JBQ0QsTUFBSztZQUNQO2dCQUNFLE9BQU8sVUFBVSxDQUNmLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLG1DQUFtQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FDdkUsQ0FBQTtTQUNKO1FBQ0QsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN2RSxDQUFDOzhHQTdCVSxnQkFBZ0Isa0JBRWpCLGtCQUFrQjtrSEFGakIsZ0JBQWdCLGNBRmYsTUFBTTs7MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBR0ksTUFBTTsyQkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIHF1ZXJ5R2VvYWRtaW4sXG4gIEdlb2FkbWluT3B0aW9ucyxcbiAgR2VvY29kaW5nUmVzdWx0LFxuICBxdWVyeUdlb25hbWVzLFxuICBHZW9uYW1lc09wdGlvbnMsXG4gIERhdGFHb3V2RnJPcHRpb25zLFxuICBxdWVyeURhdGFHb3V2RnIsXG59IGZyb20gJ0BnZW9zcGF0aWFsLXNkay9nZW9jb2RpbmcnXG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxudHlwZSBHZW9hZG1pbkdlb2NvZGluZ1Byb3ZpZGVyID0gWydnZW9hZG1pbicsIEdlb2FkbWluT3B0aW9uc11cbnR5cGUgR2VvbmFtZXNHZW9jb2RpbmdQcm92aWRlciA9IFsnZ2VvbmFtZXMnLCBHZW9uYW1lc09wdGlvbnNdXG50eXBlIERhdGFHb3V2RnJHZW9jb2RpbmdQcm92aWRlciA9IFsnZGF0YS1nb3V2LWZyJywgRGF0YUdvdXZGck9wdGlvbnNdXG5leHBvcnQgdHlwZSBHZW9jb2RpbmdQcm92aWRlciA9XG4gIHwgR2VvYWRtaW5HZW9jb2RpbmdQcm92aWRlclxuICB8IEdlb25hbWVzR2VvY29kaW5nUHJvdmlkZXJcbiAgfCBEYXRhR291dkZyR2VvY29kaW5nUHJvdmlkZXJcblxuZXhwb3J0IGNvbnN0IEdFT0NPRElOR19QUk9WSURFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxHZW9jb2RpbmdQcm92aWRlcj4oXG4gICdnZW9jb2RpbmctcHJvdmlkZXInXG4pXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBHZW9jb2RpbmdTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChHRU9DT0RJTkdfUFJPVklERVIpIHByaXZhdGUgcHJvdmlkZXI6IEdlb2NvZGluZ1Byb3ZpZGVyXG4gICkge31cblxuICBxdWVyeSh0ZXh0OiBzdHJpbmcpOiBPYnNlcnZhYmxlPEdlb2NvZGluZ1Jlc3VsdFtdPiB7XG4gICAgbGV0IHF1ZXJ5T2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxHZW9jb2RpbmdSZXN1bHRbXT5cbiAgICBzd2l0Y2ggKHRoaXMucHJvdmlkZXJbMF0pIHtcbiAgICAgIGNhc2UgJ2dlb2FkbWluJzpcbiAgICAgICAgcXVlcnlPYnNlcnZhYmxlID0gZnJvbShcbiAgICAgICAgICBxdWVyeUdlb2FkbWluKHRleHQsIHRoaXMucHJvdmlkZXJbMV0gYXMgR2VvYWRtaW5PcHRpb25zKVxuICAgICAgICApXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdnZW9uYW1lcyc6XG4gICAgICAgIHF1ZXJ5T2JzZXJ2YWJsZSA9IGZyb20oXG4gICAgICAgICAgcXVlcnlHZW9uYW1lcyh0ZXh0LCB0aGlzLnByb3ZpZGVyWzFdIGFzIEdlb25hbWVzT3B0aW9ucylcbiAgICAgICAgKVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnZGF0YS1nb3V2LWZyJzpcbiAgICAgICAgcXVlcnlPYnNlcnZhYmxlID0gZnJvbShcbiAgICAgICAgICBxdWVyeURhdGFHb3V2RnIodGV4dCwgdGhpcy5wcm92aWRlclsxXSBhcyBEYXRhR291dkZyT3B0aW9ucylcbiAgICAgICAgKVxuICAgICAgICBicmVha1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoXG4gICAgICAgICAgKCkgPT4gbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBnZW9jb2RpbmcgcHJvdmlkZXI6ICR7dGhpcy5wcm92aWRlclswXX1gKVxuICAgICAgICApXG4gICAgfVxuICAgIHJldHVybiBxdWVyeU9ic2VydmFibGUucGlwZShjYXRjaEVycm9yKChlcnJvcikgPT4gdGhyb3dFcnJvcihlcnJvcikpKVxuICB9XG59XG4iXX0=
@@ -7,21 +7,28 @@ import * as i3 from "../../../../../ui/layout/src/lib/expandable-panel-button/ex
7
7
  import * as i4 from "@angular/material/icon";
8
8
  import * as i5 from "@angular/material/tabs";
9
9
  import * as i6 from "@ngx-translate/core";
10
- import * as i7 from "../add-layer-from-catalog/add-layer-from-catalog.component";
11
- import * as i8 from "../add-layer-from-wms/add-layer-from-wms.component";
10
+ import * as i7 from "../add-layer-from-ogc-api/add-layer-from-ogc-api.component";
11
+ import * as i8 from "../add-layer-from-catalog/add-layer-from-catalog.component";
12
+ import * as i9 from "../add-layer-from-wms/add-layer-from-wms.component";
13
+ import * as i10 from "../add-layer-from-file/add-layer-from-file.component";
14
+ import * as i11 from "../add-layer-from-wfs/add-layer-from-wfs.component";
12
15
  export class LayersPanelComponent {
13
16
  constructor(mapFacade) {
14
17
  this.mapFacade = mapFacade;
15
18
  this.layers$ = this.mapFacade.layers$;
19
+ this.ogcUrl = '';
16
20
  }
17
21
  deleteLayer(index) {
18
22
  this.mapFacade.removeLayer(index);
19
23
  }
24
+ addLayer(layer) {
25
+ this.mapFacade.addLayer(layer);
26
+ }
20
27
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: LayersPanelComponent, deps: [{ token: i1.MapFacade }], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: LayersPanelComponent, selector: "gn-ui-layers-panel", ngImport: i0, template: "<div\n class=\"bg-white rounded shadow shadow-lg relative h-full w-[400px] overflow-hidden\"\n>\n <div class=\"p-3 border-b border-gray-300 flex items-center\">\n <mat-icon class=\"material-symbols-outlined mr-2\">layers</mat-icon>\n <span translate>map.layers.list</span>\n </div>\n <div class=\"flex flex-col px-4 divide-y divide-y-gray-50\">\n <div\n *ngFor=\"let layer of layers$ | async; let index = index\"\n class=\"flex flex-row py-3\"\n >\n <mat-icon class=\"material-symbols-outlined -ml-2 mr-2 shrink-0\"\n >chevron_right</mat-icon\n >\n <span class=\"mr-2 grow\">{{ layer.title }}</span>\n <a\n href\n class=\"underline text-sm text-red-700 hover:text-red-900\"\n (click)=\"deleteLayer(index)\"\n >\n delete\n </a>\n </div>\n </div>\n <gn-ui-expandable-panel-button [titleTemplate]=\"addLayerTitle\">\n <mat-tab-group animationDuration=\"200ms\" class=\"h-full\">\n <mat-tab [label]=\"'map.add.layer.catalog' | translate\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-catalog></gn-ui-add-layer-from-catalog>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wms' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wms></gn-ui-add-layer-from-wms>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wfs' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3 h-full\">Add from WFS</div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.file' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3 h-full\">Add from file</div>\n </mat-tab>\n </mat-tab-group>\n </gn-ui-expandable-panel-button>\n</div>\n\n<ng-template #addLayerTitle>\n <mat-icon class=\"material-symbols-outlined mr-4\">add_circle</mat-icon>\n <span translate>map.add.layer</span>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.ExpandablePanelButtonComponent, selector: "gn-ui-expandable-panel-button", inputs: ["titleTemplate", "collapsed"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i5.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i6.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i7.AddLayerFromCatalogComponent, selector: "gn-ui-add-layer-from-catalog" }, { kind: "component", type: i8.AddLayerFromWmsComponent, selector: "gn-ui-add-layer-from-wms" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: LayersPanelComponent, selector: "gn-ui-layers-panel", ngImport: i0, template: "<div\n class=\"bg-white rounded shadow shadow-lg relative h-full w-[400px] overflow-hidden\"\n>\n <div class=\"p-3 border-b border-gray-300 flex items-center\">\n <mat-icon class=\"material-symbols-outlined mr-2\">layers</mat-icon>\n <span translate>map.layers.list</span>\n </div>\n <div class=\"flex flex-col px-4 divide-y divide-y-gray-50\">\n <div\n *ngFor=\"let layer of layers$ | async; let index = index\"\n class=\"flex flex-row py-3\"\n >\n <mat-icon class=\"material-symbols-outlined -ml-2 mr-2 shrink-0\"\n >chevron_right</mat-icon\n >\n <span class=\"mr-2 grow\">{{ layer.title }}</span>\n <a\n href\n class=\"underline text-sm text-red-700 hover:text-red-900\"\n (click)=\"deleteLayer(index)\"\n >\n delete\n </a>\n </div>\n </div>\n <gn-ui-expandable-panel-button [titleTemplate]=\"addLayerTitle\">\n <mat-tab-group animationDuration=\"200ms\" class=\"h-full\">\n <mat-tab [label]=\"'map.add.layer.catalog' | translate\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-catalog></gn-ui-add-layer-from-catalog>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wms' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wms></gn-ui-add-layer-from-wms>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wfs' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wfs></gn-ui-add-layer-from-wfs>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.ogc.api' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-ogc-api\n [ogcUrl]=\"ogcUrl\"\n (layerAdded)=\"addLayer($event)\"\n ></gn-ui-add-layer-from-ogc-api>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.file' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-file></gn-ui-add-layer-from-file>\n </div>\n </mat-tab>\n </mat-tab-group>\n </gn-ui-expandable-panel-button>\n</div>\n\n<ng-template #addLayerTitle>\n <mat-icon class=\"material-symbols-outlined mr-4\">add_circle</mat-icon>\n <span translate>map.add.layer</span>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.ExpandablePanelButtonComponent, selector: "gn-ui-expandable-panel-button", inputs: ["titleTemplate", "collapsed"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i5.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i6.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i7.AddLayerFromOgcApiComponent, selector: "gn-ui-add-layer-from-ogc-api", inputs: ["ogcUrl"], outputs: ["layerAdded"] }, { kind: "component", type: i8.AddLayerFromCatalogComponent, selector: "gn-ui-add-layer-from-catalog" }, { kind: "component", type: i9.AddLayerFromWmsComponent, selector: "gn-ui-add-layer-from-wms" }, { kind: "component", type: i10.AddLayerFromFileComponent, selector: "gn-ui-add-layer-from-file" }, { kind: "component", type: i11.AddLayerFromWfsComponent, selector: "gn-ui-add-layer-from-wfs" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
22
29
  }
23
30
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: LayersPanelComponent, decorators: [{
24
31
  type: Component,
25
- args: [{ selector: 'gn-ui-layers-panel', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"bg-white rounded shadow shadow-lg relative h-full w-[400px] overflow-hidden\"\n>\n <div class=\"p-3 border-b border-gray-300 flex items-center\">\n <mat-icon class=\"material-symbols-outlined mr-2\">layers</mat-icon>\n <span translate>map.layers.list</span>\n </div>\n <div class=\"flex flex-col px-4 divide-y divide-y-gray-50\">\n <div\n *ngFor=\"let layer of layers$ | async; let index = index\"\n class=\"flex flex-row py-3\"\n >\n <mat-icon class=\"material-symbols-outlined -ml-2 mr-2 shrink-0\"\n >chevron_right</mat-icon\n >\n <span class=\"mr-2 grow\">{{ layer.title }}</span>\n <a\n href\n class=\"underline text-sm text-red-700 hover:text-red-900\"\n (click)=\"deleteLayer(index)\"\n >\n delete\n </a>\n </div>\n </div>\n <gn-ui-expandable-panel-button [titleTemplate]=\"addLayerTitle\">\n <mat-tab-group animationDuration=\"200ms\" class=\"h-full\">\n <mat-tab [label]=\"'map.add.layer.catalog' | translate\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-catalog></gn-ui-add-layer-from-catalog>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wms' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wms></gn-ui-add-layer-from-wms>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wfs' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3 h-full\">Add from WFS</div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.file' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3 h-full\">Add from file</div>\n </mat-tab>\n </mat-tab-group>\n </gn-ui-expandable-panel-button>\n</div>\n\n<ng-template #addLayerTitle>\n <mat-icon class=\"material-symbols-outlined mr-4\">add_circle</mat-icon>\n <span translate>map.add.layer</span>\n</ng-template>\n" }]
32
+ args: [{ selector: 'gn-ui-layers-panel', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"bg-white rounded shadow shadow-lg relative h-full w-[400px] overflow-hidden\"\n>\n <div class=\"p-3 border-b border-gray-300 flex items-center\">\n <mat-icon class=\"material-symbols-outlined mr-2\">layers</mat-icon>\n <span translate>map.layers.list</span>\n </div>\n <div class=\"flex flex-col px-4 divide-y divide-y-gray-50\">\n <div\n *ngFor=\"let layer of layers$ | async; let index = index\"\n class=\"flex flex-row py-3\"\n >\n <mat-icon class=\"material-symbols-outlined -ml-2 mr-2 shrink-0\"\n >chevron_right</mat-icon\n >\n <span class=\"mr-2 grow\">{{ layer.title }}</span>\n <a\n href\n class=\"underline text-sm text-red-700 hover:text-red-900\"\n (click)=\"deleteLayer(index)\"\n >\n delete\n </a>\n </div>\n </div>\n <gn-ui-expandable-panel-button [titleTemplate]=\"addLayerTitle\">\n <mat-tab-group animationDuration=\"200ms\" class=\"h-full\">\n <mat-tab [label]=\"'map.add.layer.catalog' | translate\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-catalog></gn-ui-add-layer-from-catalog>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wms' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wms></gn-ui-add-layer-from-wms>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wfs' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wfs></gn-ui-add-layer-from-wfs>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.ogc.api' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-ogc-api\n [ogcUrl]=\"ogcUrl\"\n (layerAdded)=\"addLayer($event)\"\n ></gn-ui-add-layer-from-ogc-api>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.file' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-file></gn-ui-add-layer-from-file>\n </div>\n </mat-tab>\n </mat-tab-group>\n </gn-ui-expandable-panel-button>\n</div>\n\n<ng-template #addLayerTitle>\n <mat-icon class=\"material-symbols-outlined mr-4\">add_circle</mat-icon>\n <span translate>map.add.layer</span>\n</ng-template>\n" }]
26
33
  }], ctorParameters: function () { return [{ type: i1.MapFacade }]; } });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXJzLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9sYXllcnMtcGFuZWwvbGF5ZXJzLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9sYXllcnMtcGFuZWwvbGF5ZXJzLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFBOzs7Ozs7Ozs7O0FBUWhELE1BQU0sT0FBTyxvQkFBb0I7SUFFL0IsWUFBb0IsU0FBb0I7UUFBcEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUR4QyxZQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUE7SUFDVyxDQUFDO0lBRTVDLFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ25DLENBQUM7OEdBTlUsb0JBQW9CO2tHQUFwQixvQkFBb0IsMERDVGpDLHk0REFtREE7OzJGRDFDYSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0Usb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hcEZhY2FkZSB9IGZyb20gJy4uLytzdGF0ZS9tYXAuZmFjYWRlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1sYXllcnMtcGFuZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGF5ZXJzLXBhbmVsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbGF5ZXJzLXBhbmVsLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBMYXllcnNQYW5lbENvbXBvbmVudCB7XG4gIGxheWVycyQgPSB0aGlzLm1hcEZhY2FkZS5sYXllcnMkXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbWFwRmFjYWRlOiBNYXBGYWNhZGUpIHt9XG5cbiAgZGVsZXRlTGF5ZXIoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMubWFwRmFjYWRlLnJlbW92ZUxheWVyKGluZGV4KVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiYmctd2hpdGUgcm91bmRlZCBzaGFkb3cgc2hhZG93LWxnIHJlbGF0aXZlIGgtZnVsbCB3LVs0MDBweF0gb3ZlcmZsb3ctaGlkZGVuXCJcbj5cbiAgPGRpdiBjbGFzcz1cInAtMyBib3JkZXItYiBib3JkZXItZ3JheS0zMDAgZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIG1yLTJcIj5sYXllcnM8L21hdC1pY29uPlxuICAgIDxzcGFuIHRyYW5zbGF0ZT5tYXAubGF5ZXJzLmxpc3Q8L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBweC00IGRpdmlkZS15IGRpdmlkZS15LWdyYXktNTBcIj5cbiAgICA8ZGl2XG4gICAgICAqbmdGb3I9XCJsZXQgbGF5ZXIgb2YgbGF5ZXJzJCB8IGFzeW5jOyBsZXQgaW5kZXggPSBpbmRleFwiXG4gICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgcHktM1wiXG4gICAgPlxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCAtbWwtMiBtci0yIHNocmluay0wXCJcbiAgICAgICAgPmNoZXZyb25fcmlnaHQ8L21hdC1pY29uXG4gICAgICA+XG4gICAgICA8c3BhbiBjbGFzcz1cIm1yLTIgZ3Jvd1wiPnt7IGxheWVyLnRpdGxlIH19PC9zcGFuPlxuICAgICAgPGFcbiAgICAgICAgaHJlZlxuICAgICAgICBjbGFzcz1cInVuZGVybGluZSB0ZXh0LXNtIHRleHQtcmVkLTcwMCBob3Zlcjp0ZXh0LXJlZC05MDBcIlxuICAgICAgICAoY2xpY2spPVwiZGVsZXRlTGF5ZXIoaW5kZXgpXCJcbiAgICAgID5cbiAgICAgICAgZGVsZXRlXG4gICAgICA8L2E+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8Z24tdWktZXhwYW5kYWJsZS1wYW5lbC1idXR0b24gW3RpdGxlVGVtcGxhdGVdPVwiYWRkTGF5ZXJUaXRsZVwiPlxuICAgIDxtYXQtdGFiLWdyb3VwIGFuaW1hdGlvbkR1cmF0aW9uPVwiMjAwbXNcIiBjbGFzcz1cImgtZnVsbFwiPlxuICAgICAgPG1hdC10YWIgW2xhYmVsXT1cIidtYXAuYWRkLmxheWVyLmNhdGFsb2cnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwLTNcIj5cbiAgICAgICAgICA8Z24tdWktYWRkLWxheWVyLWZyb20tY2F0YWxvZz48L2duLXVpLWFkZC1sYXllci1mcm9tLWNhdGFsb2c+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtdGFiPlxuICAgICAgPG1hdC10YWIgW2xhYmVsXT1cIidtYXAuYWRkLmxheWVyLndtcycgfCB0cmFuc2xhdGVcIiBib2R5Q2xhc3M9XCJoLWZ1bGxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtM1wiPlxuICAgICAgICAgIDxnbi11aS1hZGQtbGF5ZXItZnJvbS13bXM+PC9nbi11aS1hZGQtbGF5ZXItZnJvbS13bXM+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtdGFiPlxuICAgICAgPG1hdC10YWIgW2xhYmVsXT1cIidtYXAuYWRkLmxheWVyLndmcycgfCB0cmFuc2xhdGVcIiBib2R5Q2xhc3M9XCJoLWZ1bGxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtMyBoLWZ1bGxcIj5BZGQgZnJvbSBXRlM8L2Rpdj5cbiAgICAgIDwvbWF0LXRhYj5cbiAgICAgIDxtYXQtdGFiIFtsYWJlbF09XCInbWFwLmFkZC5sYXllci5maWxlJyB8IHRyYW5zbGF0ZVwiIGJvZHlDbGFzcz1cImgtZnVsbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicC0zIGgtZnVsbFwiPkFkZCBmcm9tIGZpbGU8L2Rpdj5cbiAgICAgIDwvbWF0LXRhYj5cbiAgICA8L21hdC10YWItZ3JvdXA+XG4gIDwvZ24tdWktZXhwYW5kYWJsZS1wYW5lbC1idXR0b24+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNhZGRMYXllclRpdGxlPlxuICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIG1yLTRcIj5hZGRfY2lyY2xlPC9tYXQtaWNvbj5cbiAgPHNwYW4gdHJhbnNsYXRlPm1hcC5hZGQubGF5ZXI8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuIl19
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXJzLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9sYXllcnMtcGFuZWwvbGF5ZXJzLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9sYXllcnMtcGFuZWwvbGF5ZXJzLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFBOzs7Ozs7Ozs7Ozs7O0FBUWhELE1BQU0sT0FBTyxvQkFBb0I7SUFHL0IsWUFBb0IsU0FBb0I7UUFBcEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUZ4QyxZQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUE7UUFDaEMsV0FBTSxHQUFHLEVBQUUsQ0FBQTtJQUNnQyxDQUFDO0lBRTVDLFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ25DLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBSztRQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hDLENBQUM7OEdBWFUsb0JBQW9CO2tHQUFwQixvQkFBb0IsMERDVGpDLG96RUErREE7OzJGRHREYSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0Usb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hcEZhY2FkZSB9IGZyb20gJy4uLytzdGF0ZS9tYXAuZmFjYWRlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1sYXllcnMtcGFuZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGF5ZXJzLXBhbmVsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbGF5ZXJzLXBhbmVsLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBMYXllcnNQYW5lbENvbXBvbmVudCB7XG4gIGxheWVycyQgPSB0aGlzLm1hcEZhY2FkZS5sYXllcnMkXG4gIG9nY1VybCA9ICcnXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbWFwRmFjYWRlOiBNYXBGYWNhZGUpIHt9XG5cbiAgZGVsZXRlTGF5ZXIoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMubWFwRmFjYWRlLnJlbW92ZUxheWVyKGluZGV4KVxuICB9XG5cbiAgYWRkTGF5ZXIobGF5ZXIpIHtcbiAgICB0aGlzLm1hcEZhY2FkZS5hZGRMYXllcihsYXllcilcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImJnLXdoaXRlIHJvdW5kZWQgc2hhZG93IHNoYWRvdy1sZyByZWxhdGl2ZSBoLWZ1bGwgdy1bNDAwcHhdIG92ZXJmbG93LWhpZGRlblwiXG4+XG4gIDxkaXYgY2xhc3M9XCJwLTMgYm9yZGVyLWIgYm9yZGVyLWdyYXktMzAwIGZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgPG1hdC1pY29uIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBtci0yXCI+bGF5ZXJzPC9tYXQtaWNvbj5cbiAgICA8c3BhbiB0cmFuc2xhdGU+bWFwLmxheWVycy5saXN0PC9zcGFuPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgcHgtNCBkaXZpZGUteSBkaXZpZGUteS1ncmF5LTUwXCI+XG4gICAgPGRpdlxuICAgICAgKm5nRm9yPVwibGV0IGxheWVyIG9mIGxheWVycyQgfCBhc3luYzsgbGV0IGluZGV4ID0gaW5kZXhcIlxuICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IHB5LTNcIlxuICAgID5cbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgLW1sLTIgbXItMiBzaHJpbmstMFwiXG4gICAgICAgID5jaGV2cm9uX3JpZ2h0PC9tYXQtaWNvblxuICAgICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJtci0yIGdyb3dcIj57eyBsYXllci50aXRsZSB9fTwvc3Bhbj5cbiAgICAgIDxhXG4gICAgICAgIGhyZWZcbiAgICAgICAgY2xhc3M9XCJ1bmRlcmxpbmUgdGV4dC1zbSB0ZXh0LXJlZC03MDAgaG92ZXI6dGV4dC1yZWQtOTAwXCJcbiAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUxheWVyKGluZGV4KVwiXG4gICAgICA+XG4gICAgICAgIGRlbGV0ZVxuICAgICAgPC9hPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGduLXVpLWV4cGFuZGFibGUtcGFuZWwtYnV0dG9uIFt0aXRsZVRlbXBsYXRlXT1cImFkZExheWVyVGl0bGVcIj5cbiAgICA8bWF0LXRhYi1ncm91cCBhbmltYXRpb25EdXJhdGlvbj1cIjIwMG1zXCIgY2xhc3M9XCJoLWZ1bGxcIj5cbiAgICAgIDxtYXQtdGFiIFtsYWJlbF09XCInbWFwLmFkZC5sYXllci5jYXRhbG9nJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicC0zXCI+XG4gICAgICAgICAgPGduLXVpLWFkZC1sYXllci1mcm9tLWNhdGFsb2c+PC9nbi11aS1hZGQtbGF5ZXItZnJvbS1jYXRhbG9nPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LXRhYj5cbiAgICAgIDxtYXQtdGFiIFtsYWJlbF09XCInbWFwLmFkZC5sYXllci53bXMnIHwgdHJhbnNsYXRlXCIgYm9keUNsYXNzPVwiaC1mdWxsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwLTNcIj5cbiAgICAgICAgICA8Z24tdWktYWRkLWxheWVyLWZyb20td21zPjwvZ24tdWktYWRkLWxheWVyLWZyb20td21zPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LXRhYj5cbiAgICAgIDxtYXQtdGFiIFtsYWJlbF09XCInbWFwLmFkZC5sYXllci53ZnMnIHwgdHJhbnNsYXRlXCIgYm9keUNsYXNzPVwiaC1mdWxsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwLTNcIj5cbiAgICAgICAgICA8Z24tdWktYWRkLWxheWVyLWZyb20td2ZzPjwvZ24tdWktYWRkLWxheWVyLWZyb20td2ZzPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LXRhYj5cbiAgICAgIDxtYXQtdGFiIFtsYWJlbF09XCInbWFwLmFkZC5sYXllci5vZ2MuYXBpJyB8IHRyYW5zbGF0ZVwiIGJvZHlDbGFzcz1cImgtZnVsbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicC0zXCI+XG4gICAgICAgICAgPGduLXVpLWFkZC1sYXllci1mcm9tLW9nYy1hcGlcbiAgICAgICAgICAgIFtvZ2NVcmxdPVwib2djVXJsXCJcbiAgICAgICAgICAgIChsYXllckFkZGVkKT1cImFkZExheWVyKCRldmVudClcIlxuICAgICAgICAgID48L2duLXVpLWFkZC1sYXllci1mcm9tLW9nYy1hcGk+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtdGFiPlxuICAgICAgPG1hdC10YWIgW2xhYmVsXT1cIidtYXAuYWRkLmxheWVyLmZpbGUnIHwgdHJhbnNsYXRlXCIgYm9keUNsYXNzPVwiaC1mdWxsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwLTNcIj5cbiAgICAgICAgICA8Z24tdWktYWRkLWxheWVyLWZyb20tZmlsZT48L2duLXVpLWFkZC1sYXllci1mcm9tLWZpbGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtdGFiPlxuICAgIDwvbWF0LXRhYi1ncm91cD5cbiAgPC9nbi11aS1leHBhbmRhYmxlLXBhbmVsLWJ1dHRvbj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2FkZExheWVyVGl0bGU+XG4gIDxtYXQtaWNvbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgbXItNFwiPmFkZF9jaXJjbGU8L21hdC1pY29uPlxuICA8c3BhbiB0cmFuc2xhdGU+bWFwLmFkZC5sYXllcjwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -5,5 +5,6 @@ export var MapContextLayerTypeEnum;
5
5
  MapContextLayerTypeEnum["WMTS"] = "wmts";
6
6
  MapContextLayerTypeEnum["WFS"] = "wfs";
7
7
  MapContextLayerTypeEnum["GEOJSON"] = "geojson";
8
+ MapContextLayerTypeEnum["OGCAPI"] = "ogcapi";
8
9
  })(MapContextLayerTypeEnum || (MapContextLayerTypeEnum = {}));
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWNvbnRleHQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbWFwL3NyYy9saWIvbWFwLWNvbnRleHQvbWFwLWNvbnRleHQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsTUFBTSxDQUFOLElBQVksdUJBTVg7QUFORCxXQUFZLHVCQUF1QjtJQUNqQyxzQ0FBVyxDQUFBO0lBQ1gsc0NBQVcsQ0FBQTtJQUNYLHdDQUFhLENBQUE7SUFDYixzQ0FBVyxDQUFBO0lBQ1gsOENBQW1CLENBQUE7QUFDckIsQ0FBQyxFQU5XLHVCQUF1QixLQUF2Qix1QkFBdUIsUUFNbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZlYXR1cmVDb2xsZWN0aW9uIH0gZnJvbSAnZ2VvanNvbidcbmltcG9ydCB7IENvb3JkaW5hdGUgfSBmcm9tICdvbC9jb29yZGluYXRlJ1xuaW1wb3J0IHR5cGUgeyBFeHRlbnQgfSBmcm9tICdvbC9leHRlbnQnXG5pbXBvcnQgeyBPcHRpb25zIH0gZnJvbSAnb2wvc291cmNlL1dNVFMnXG5cbmV4cG9ydCBlbnVtIE1hcENvbnRleHRMYXllclR5cGVFbnVtIHtcbiAgWFlaID0gJ3h5eicsXG4gIFdNUyA9ICd3bXMnLFxuICBXTVRTID0gJ3dtdHMnLFxuICBXRlMgPSAnd2ZzJyxcbiAgR0VPSlNPTiA9ICdnZW9qc29uJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBDb250ZXh0TW9kZWwge1xuICBsYXllcnM6IE1hcENvbnRleHRMYXllck1vZGVsW11cbiAgdmlldz86IE1hcENvbnRleHRWaWV3TW9kZWxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBDb250ZXh0TGF5ZXJXbXNNb2RlbCB7XG4gIHR5cGU6ICd3bXMnXG4gIHVybDogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcENvbnRleHRMYXllcldtdHNNb2RlbCB7XG4gIHR5cGU6ICd3bXRzJ1xuICBvcHRpb25zOiBPcHRpb25zXG4gIGV4dGVudD86IEV4dGVudFxufVxuXG5pbnRlcmZhY2UgTWFwQ29udGV4dExheWVyV2ZzTW9kZWwge1xuICB0eXBlOiAnd2ZzJ1xuICB1cmw6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbn1cblxuaW50ZXJmYWNlIExheWVyWHl6TW9kZWwge1xuICB0eXBlOiAneHl6J1xuICBuYW1lPzogc3RyaW5nXG59XG5pbnRlcmZhY2UgTGF5ZXJYeXpNb2RlbFdpdGhVcmwgZXh0ZW5kcyBMYXllclh5ek1vZGVsIHtcbiAgdXJsOiBzdHJpbmdcbiAgdXJscz86IG5ldmVyXG59XG5pbnRlcmZhY2UgTGF5ZXJYeXpNb2RlbFdpdGhVcmxzIGV4dGVuZHMgTGF5ZXJYeXpNb2RlbCB7XG4gIHVybHM6IHN0cmluZ1tdXG4gIHVybD86IG5ldmVyXG59XG5leHBvcnQgdHlwZSBNYXBDb250ZXh0TGF5ZXJYeXpNb2RlbCA9XG4gIHwgTGF5ZXJYeXpNb2RlbFdpdGhVcmxcbiAgfCBMYXllclh5ek1vZGVsV2l0aFVybHNcblxuaW50ZXJmYWNlIExheWVyR2VvanNvbiB7XG4gIHR5cGU6ICdnZW9qc29uJ1xufVxuaW50ZXJmYWNlIExheWVyR2VvanNvbldpdGhVcmwgZXh0ZW5kcyBMYXllckdlb2pzb24ge1xuICB1cmw6IHN0cmluZ1xuICBkYXRhPzogbmV2ZXJcbn1cbmludGVyZmFjZSBMYXllckdlb2pzb25XaXRoRGF0YSBleHRlbmRzIExheWVyR2VvanNvbiB7XG4gIGRhdGE6IEZlYXR1cmVDb2xsZWN0aW9uIHwgc3RyaW5nXG4gIHVybD86IG5ldmVyXG59XG5leHBvcnQgdHlwZSBNYXBDb250ZXh0TGF5ZXJHZW9qc29uTW9kZWwgPVxuICB8IExheWVyR2VvanNvbldpdGhVcmxcbiAgfCBMYXllckdlb2pzb25XaXRoRGF0YVxuXG5leHBvcnQgdHlwZSBNYXBDb250ZXh0TGF5ZXJNb2RlbCA9XG4gIHwgTWFwQ29udGV4dExheWVyV21zTW9kZWxcbiAgfCBNYXBDb250ZXh0TGF5ZXJXbXRzTW9kZWxcbiAgfCBNYXBDb250ZXh0TGF5ZXJXZnNNb2RlbFxuICB8IE1hcENvbnRleHRMYXllclh5ek1vZGVsXG4gIHwgTWFwQ29udGV4dExheWVyR2VvanNvbk1vZGVsXG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFwQ29udGV4dFZpZXdNb2RlbCB7XG4gIGNlbnRlcj86IENvb3JkaW5hdGUgLy8gZXhwcmVzc2VkIGluIGxvbmcvbGF0IChFUFNHOjQzMjYpXG4gIHpvb20/OiBudW1iZXJcbiAgZXh0ZW50PzogRXh0ZW50IC8vIGV4cHJlc3NlZCBpbiBsb25nL2xhdCAoRVBTRzo0MzI2KVxuICBtYXhab29tPzogbnVtYmVyXG4gIG1heEV4dGVudD86IEV4dGVudCAvLyBleHByZXNzZWQgaW4gbG9uZy9sYXQgKEVQU0c6NDMyNilcbn1cbiJdfQ==
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWNvbnRleHQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbWFwL3NyYy9saWIvbWFwLWNvbnRleHQvbWFwLWNvbnRleHQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxDQUFOLElBQVksdUJBT1g7QUFQRCxXQUFZLHVCQUF1QjtJQUNqQyxzQ0FBVyxDQUFBO0lBQ1gsc0NBQVcsQ0FBQTtJQUNYLHdDQUFhLENBQUE7SUFDYixzQ0FBVyxDQUFBO0lBQ1gsOENBQW1CLENBQUE7SUFDbkIsNENBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQVBXLHVCQUF1QixLQUF2Qix1QkFBdUIsUUFPbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZlYXR1cmVDb2xsZWN0aW9uIH0gZnJvbSAnZ2VvanNvbidcbmltcG9ydCB7IENvb3JkaW5hdGUgfSBmcm9tICdvbC9jb29yZGluYXRlJ1xuaW1wb3J0IHR5cGUgeyBFeHRlbnQgfSBmcm9tICdvbC9leHRlbnQnXG5cbmV4cG9ydCBlbnVtIE1hcENvbnRleHRMYXllclR5cGVFbnVtIHtcbiAgWFlaID0gJ3h5eicsXG4gIFdNUyA9ICd3bXMnLFxuICBXTVRTID0gJ3dtdHMnLFxuICBXRlMgPSAnd2ZzJyxcbiAgR0VPSlNPTiA9ICdnZW9qc29uJyxcbiAgT0dDQVBJID0gJ29nY2FwaScsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFwQ29udGV4dE1vZGVsIHtcbiAgbGF5ZXJzOiBNYXBDb250ZXh0TGF5ZXJNb2RlbFtdXG4gIHZpZXc/OiBNYXBDb250ZXh0Vmlld01vZGVsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFwQ29udGV4dExheWVyV21zTW9kZWwge1xuICB0eXBlOiAnd21zJ1xuICB1cmw6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBDb250ZXh0TGF5ZXJXbXRzTW9kZWwge1xuICB0eXBlOiAnd210cydcbiAgdXJsOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG59XG5cbmludGVyZmFjZSBNYXBDb250ZXh0TGF5ZXJXZnNNb2RlbCB7XG4gIHR5cGU6ICd3ZnMnXG4gIHVybDogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcENvbnRleHRMYXllck9nY2FwaU1vZGVsIHtcbiAgdHlwZTogJ29nY2FwaSdcbiAgdXJsOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG59XG5cbmludGVyZmFjZSBMYXllclh5ek1vZGVsIHtcbiAgdHlwZTogJ3h5eidcbiAgbmFtZT86IHN0cmluZ1xufVxuaW50ZXJmYWNlIExheWVyWHl6TW9kZWxXaXRoVXJsIGV4dGVuZHMgTGF5ZXJYeXpNb2RlbCB7XG4gIHVybDogc3RyaW5nXG4gIHVybHM/OiBuZXZlclxufVxuaW50ZXJmYWNlIExheWVyWHl6TW9kZWxXaXRoVXJscyBleHRlbmRzIExheWVyWHl6TW9kZWwge1xuICB1cmxzOiBzdHJpbmdbXVxuICB1cmw/OiBuZXZlclxufVxuZXhwb3J0IHR5cGUgTWFwQ29udGV4dExheWVyWHl6TW9kZWwgPVxuICB8IExheWVyWHl6TW9kZWxXaXRoVXJsXG4gIHwgTGF5ZXJYeXpNb2RlbFdpdGhVcmxzXG5cbmludGVyZmFjZSBMYXllckdlb2pzb24ge1xuICB0eXBlOiAnZ2VvanNvbidcbn1cbmludGVyZmFjZSBMYXllckdlb2pzb25XaXRoVXJsIGV4dGVuZHMgTGF5ZXJHZW9qc29uIHtcbiAgdXJsOiBzdHJpbmdcbiAgZGF0YT86IG5ldmVyXG59XG5pbnRlcmZhY2UgTGF5ZXJHZW9qc29uV2l0aERhdGEgZXh0ZW5kcyBMYXllckdlb2pzb24ge1xuICBkYXRhOiBGZWF0dXJlQ29sbGVjdGlvbiB8IHN0cmluZ1xuICB1cmw/OiBuZXZlclxufVxuZXhwb3J0IHR5cGUgTWFwQ29udGV4dExheWVyR2VvanNvbk1vZGVsID1cbiAgfCBMYXllckdlb2pzb25XaXRoVXJsXG4gIHwgTGF5ZXJHZW9qc29uV2l0aERhdGFcblxuZXhwb3J0IHR5cGUgTWFwQ29udGV4dExheWVyTW9kZWwgPVxuICB8IE1hcENvbnRleHRMYXllcldtc01vZGVsXG4gIHwgTWFwQ29udGV4dExheWVyV210c01vZGVsXG4gIHwgTWFwQ29udGV4dExheWVyV2ZzTW9kZWxcbiAgfCBNYXBDb250ZXh0TGF5ZXJYeXpNb2RlbFxuICB8IE1hcENvbnRleHRMYXllckdlb2pzb25Nb2RlbFxuICB8IE1hcENvbnRleHRMYXllck9nY2FwaU1vZGVsXG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFwQ29udGV4dFZpZXdNb2RlbCB7XG4gIGNlbnRlcj86IENvb3JkaW5hdGUgLy8gZXhwcmVzc2VkIGluIGxvbmcvbGF0IChFUFNHOjQzMjYpXG4gIHpvb20/OiBudW1iZXJcbiAgZXh0ZW50PzogRXh0ZW50IC8vIGV4cHJlc3NlZCBpbiBsb25nL2xhdCAoRVBTRzo0MzI2KVxuICBtYXhab29tPzogbnVtYmVyXG4gIG1heEV4dGVudD86IEV4dGVudCAvLyBleHByZXNzZWQgaW4gbG9uZy9sYXQgKEVQU0c6NDMyNilcbn1cbiJdfQ==
@@ -12,7 +12,7 @@ import { MapUtilsService } from '../utils/map-utils.service';
12
12
  import { bbox as bboxStrategy } from 'ol/loadingstrategy';
13
13
  import { fromLonLat } from 'ol/proj';
14
14
  import WMTS from 'ol/source/WMTS';
15
- import { removeSearchParams } from '../../../../../../libs/util/shared/src';
15
+ import { WfsEndpoint, WmtsEndpoint } from '@camptocamp/ogc-client';
16
16
  import * as i0 from "@angular/core";
17
17
  import * as i1 from "../utils/map-utils.service";
18
18
  import * as i2 from "../style/map-style.service";
@@ -28,6 +28,7 @@ export const DEFAULT_VIEW = {
28
28
  center: [0, 15],
29
29
  zoom: 2,
30
30
  };
31
+ export const WFS_MAX_FEATURES = 10000;
31
32
  export class MapContextService {
32
33
  constructor(mapUtils, styleService) {
33
34
  this.mapUtils = mapUtils;
@@ -37,6 +38,9 @@ export class MapContextService {
37
38
  if (mapConfig) {
38
39
  mapContext = this.mergeMapConfigWithContext(mapContext, mapConfig);
39
40
  }
41
+ else {
42
+ mapContext.layers = this.addDefaultBaselayerContext(mapContext.layers);
43
+ }
40
44
  if (!mapContext.view?.extent &&
41
45
  (!mapContext.view?.center || !mapContext.view?.zoom)) {
42
46
  mapContext.view = this.getFallbackView(mapConfig);
@@ -50,6 +54,14 @@ export class MapContextService {
50
54
  const { type } = layerModel;
51
55
  const style = this.styleService.styles.default;
52
56
  switch (type) {
57
+ case MapContextLayerTypeEnum.OGCAPI:
58
+ return new VectorLayer({
59
+ source: new VectorSource({
60
+ format: new GeoJSON(),
61
+ url: layerModel.url,
62
+ }),
63
+ style,
64
+ });
53
65
  case MapContextLayerTypeEnum.XYZ:
54
66
  return new TileLayer({
55
67
  source: new XYZ({
@@ -60,38 +72,58 @@ export class MapContextService {
60
72
  case MapContextLayerTypeEnum.WMS:
61
73
  return new TileLayer({
62
74
  source: new TileWMS({
63
- url: removeSearchParams(layerModel.url, ['request', 'service']),
75
+ url: layerModel.url,
64
76
  params: { LAYERS: layerModel.name },
65
77
  gutter: 20,
66
78
  }),
67
79
  });
68
- case MapContextLayerTypeEnum.WMTS:
69
- return new TileLayer({
70
- source: new WMTS(layerModel.options),
80
+ case MapContextLayerTypeEnum.WMTS: {
81
+ // TODO: isolate this in utils service
82
+ const olLayer = new TileLayer({});
83
+ const endpoint = new WmtsEndpoint(layerModel.url);
84
+ endpoint.isReady().then(async (endpoint) => {
85
+ const layerName = endpoint.getSingleLayerName() ?? layerModel.name;
86
+ const layer = endpoint.getLayerByName(layerName);
87
+ const matrixSet = layer.matrixSets[0];
88
+ const tileGrid = await endpoint.getOpenLayersTileGrid(layer.name);
89
+ const resourceUrl = layer.resourceLinks[0];
90
+ const dimensions = endpoint.getDefaultDimensions(layer.name);
91
+ olLayer.setSource(new WMTS({
92
+ layer: layer.name,
93
+ style: layer.defaultStyle,
94
+ matrixSet: matrixSet.identifier,
95
+ format: resourceUrl.format,
96
+ url: resourceUrl.url,
97
+ requestEncoding: resourceUrl.encoding,
98
+ tileGrid,
99
+ projection: matrixSet.crs,
100
+ dimensions,
101
+ }));
71
102
  });
72
- case MapContextLayerTypeEnum.WFS:
73
- return new VectorLayer({
74
- source: new VectorSource({
103
+ return olLayer;
104
+ }
105
+ case MapContextLayerTypeEnum.WFS: {
106
+ const olLayer = new VectorLayer({
107
+ style,
108
+ });
109
+ new WfsEndpoint(layerModel.url).isReady().then((endpoint) => {
110
+ const featureType = endpoint.getSingleFeatureTypeName() ?? layerModel.name;
111
+ olLayer.setSource(new VectorSource({
75
112
  format: new GeoJSON(),
76
113
  url: function (extent) {
77
- const urlObj = new URL(removeSearchParams(layerModel.url, [
78
- 'service',
79
- 'version',
80
- 'request',
81
- ]));
82
- urlObj.searchParams.set('service', 'WFS');
83
- urlObj.searchParams.set('version', '1.1.0');
84
- urlObj.searchParams.set('request', 'GetFeature');
85
- urlObj.searchParams.set('outputFormat', 'application/json');
86
- urlObj.searchParams.set('typename', layerModel.name);
87
- urlObj.searchParams.set('srsname', 'EPSG:3857');
88
- urlObj.searchParams.set('bbox', `${extent.join(',')},EPSG:3857`);
89
- return urlObj.toString();
114
+ return endpoint.getFeatureUrl(featureType, {
115
+ maxFeatures: WFS_MAX_FEATURES,
116
+ asJson: true,
117
+ outputCrs: 'EPSG:3857',
118
+ extent,
119
+ extentCrs: 'EPSG:3857',
120
+ });
90
121
  },
91
122
  strategy: bboxStrategy,
92
- }),
93
- style,
123
+ }));
94
124
  });
125
+ return olLayer;
126
+ }
95
127
  case MapContextLayerTypeEnum.GEOJSON: {
96
128
  if ('url' in layerModel) {
97
129
  return new VectorLayer({
@@ -146,6 +178,11 @@ export class MapContextService {
146
178
  }
147
179
  return view;
148
180
  }
181
+ addDefaultBaselayerContext(layers) {
182
+ return layers.includes(DEFAULT_BASELAYER_CONTEXT)
183
+ ? layers
184
+ : [DEFAULT_BASELAYER_CONTEXT, ...layers];
185
+ }
149
186
  mergeMapConfigWithContext(mapContext, mapConfig) {
150
187
  return {
151
188
  ...mapContext,
@@ -208,4 +245,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
208
245
  providedIn: 'root',
209
246
  }]
210
247
  }], ctorParameters: function () { return [{ type: i1.MapUtilsService }, { type: i2.MapStyleService }]; } });
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWNvbnRleHQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9tYXAtY29udGV4dC9tYXAtY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQzVELE9BQU8sRUFFTCx1QkFBdUIsR0FJeEIsTUFBTSxxQkFBcUIsQ0FBQTtBQUU1QixPQUFPLElBQUksTUFBTSxTQUFTLENBQUE7QUFFMUIsT0FBTyxXQUFXLE1BQU0saUJBQWlCLENBQUE7QUFDekMsT0FBTyxPQUFPLE1BQU0sbUJBQW1CLENBQUE7QUFDdkMsT0FBTyxTQUFTLE1BQU0sZUFBZSxDQUFBO0FBQ3JDLE9BQU8sR0FBRyxNQUFNLGVBQWUsQ0FBQTtBQUMvQixPQUFPLFlBQVksTUFBTSxrQkFBa0IsQ0FBQTtBQUMzQyxPQUFPLE9BQU8sTUFBTSxtQkFBbUIsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDNUQsT0FBTyxFQUFFLElBQUksSUFBSSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUd6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3BDLE9BQU8sSUFBSSxNQUFNLGdCQUFnQixDQUFBO0FBQ2pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFBOzs7O0FBSTNFLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUE0QjtJQUNoRSxJQUFJLEVBQUUsdUJBQXVCLENBQUMsR0FBRztJQUNqQyxJQUFJLEVBQUU7UUFDSixxRUFBcUU7UUFDckUscUVBQXFFO1FBQ3JFLHFFQUFxRTtLQUN0RTtDQUNGLENBQUE7QUFFRCxNQUFN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SUFDbEIsQ0FBQztJQUVELHlCQUF5QixDQUFDLE1BQW1CO1FBQzNDLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtZQUNuQixLQUFLLEtBQUs7Z0JBQ1IsT0FBTztvQkFDTCxJQUFJLEVBQUUsS0FBSztvQkFDWCxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUc7b0JBQ2YsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO2lCQUNsQixDQUFBO1lBQ0gsS0FBSyxLQUFLO2dCQUNSLE9BQU87b0JBQ0wsSUFBSSxFQUFFLEtBQUs7b0JBQ1gsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHO29CQUNmLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtpQkFDbEIsQ0FBQTtZQUNILEtBQUssS0FBSztnQkFDUixPQUFPO29CQUNMLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtvQkFDakIsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHO29CQUNmLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtpQkFDbEIsQ0FBQTtZQUNILEtBQUssU0FBUztnQkFDWixPQUFPO29CQUNMLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtvQkFDakIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO2lCQUMvRCxDQUFBO1NBQ0o7SUFDSCxDQUFDOzhHQTNMVSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZoQixNQUFNOzsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNYXBTdHlsZVNlcnZpY2UgfSBmcm9tICcuLi9zdHlsZS9tYXAtc3R5bGUuc2VydmljZSdcbmltcG9ydCB7XG4gIE1hcENvbnRleHRMYXllck1vZGVsLFxuICBNYXBDb250ZXh0TGF5ZXJUeXBlRW51bSxcbiAgTWFwQ29udGV4dExheWVyWHl6TW9kZWwsXG4gIE1hcENvbnRleHRNb2RlbCxcbiAgTWFwQ29udGV4dFZpZXdNb2RlbCxcbn0gZnJvbSAnLi9tYXAtY29udGV4dC5tb2RlbCdcbmltcG9ydCBNYXAgZnJvbSAnb2wvTWFwJ1xuaW1wb3J0IFZpZXcgZnJvbSAnb2wvVmlldydcbmltcG9ydCBMYXllciBmcm9tICdvbC9sYXllci9CYXNlJ1xuaW1wb3J0IFZlY3RvckxheWVyIGZyb20gJ29sL2xheWVyL1ZlY3RvcidcbmltcG9ydCBUaWxlV01TIGZyb20gJ29sL3NvdXJjZS9UaWxlV01TJ1xuaW1wb3J0IFRpbGVMYXllciBmcm9tICdvbC9sYXllci9UaWxlJ1xuaW1wb3J0IFhZWiBmcm9tICdvbC9zb3VyY2UvWFlaJ1xuaW1wb3J0IFZlY3RvclNvdXJjZSBmcm9tICdvbC9zb3VyY2UvVmVjdG9yJ1xuaW1wb3J0IEdlb0pTT04gZnJvbSAnb2wvZm9ybWF0L0dlb0pTT04nXG5pbXBvcnQgeyBNYXBVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi91dGlscy9tYXAtdXRpbHMuc2VydmljZSdcbmltcG9ydCB7IGJib3ggYXMgYmJveFN0cmF0ZWd5IH0gZnJvbSAnb2wvbG9hZGluZ3N0cmF0ZWd5J1xuaW1wb3J0IHsgTGF5ZXJDb25maWcsIE1hcENvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9hcHAtY29uZmlnL3NyYydcbmltcG9ydCB7IEZlYXR1cmVDb2xsZWN0aW9uIH0gZnJvbSAnZ2VvanNvbidcbmltcG9ydCB7IGZyb21Mb25MYXQgfSBmcm9tICdvbC9wcm9qJ1xuaW1wb3J0IFdNVFMgZnJvbSAnb2wvc291cmNlL1dNVFMnXG5pbXBvcnQgeyByZW1vdmVTZWFyY2hQYXJhbXMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbSdcbmltcG9ydCBGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnXG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0JBU0VMQVlFUl9DT05URVhUOiBNYXBDb250ZXh0TGF5ZXJYeXpNb2RlbCA9IHtcbiAgdHlwZTogTWFwQ29udGV4dExheWVyVHlwZUVudW0uWFlaLFxuICB1cmxzOiBbXG4gICAgYGh0dHBzOi8vYS5iYXNlbWFwcy5jYXJ0b2Nkbi5jb20vcmFzdGVydGlsZXMvdm95YWdlci97en0ve3h9L3t5fS5wbmdgLFxuICAgIGBodHRwczovL2IuYmFzZW1hcHMuY2FydG9jZG4uY29tL3Jhc3RlcnRpbGVzL3ZveWFnZXIve3p9L3t4fS97eX0ucG5nYCxcbiAgICBgaHR0cHM6Ly9jLmJhc2VtYXBzLmNhcnRvY2RuLmNvbS9yYXN0ZXJ0aWxlcy92b3lhZ2VyL3t6fS97eH0ve3l9LnBuZ2AsXG4gIF0sXG59XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1ZJRVc6IE1hcENvbnRleHRWaWV3TW9kZWwgPSB7XG4gIGNlbnRlcjogWzAsIDE1XSxcbiAgem9vbTogMixcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE1hcENvbnRleHRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBtYXBVdGlsczogTWFwVXRpbHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3R5bGVTZXJ2aWNlOiBNYXBTdHlsZVNlcnZpY2VcbiAgKSB7fVxuXG4gIHJlc2V0TWFwRnJvbUNvbnRleHQoXG4gICAgbWFwOiBNYXAsXG4gICAgbWFwQ29udGV4dDogTWFwQ29udGV4dE1vZGVsLFxuICAgIG1hcENvbmZpZz86IE1hcENvbmZpZ1xuICApOiBNYXAge1xuICAgIGlmIChtYXBDb25maWcpIHtcbiAgICAgIG1hcENvbnRleHQgPSB0aGlzLm1lcmdlTWFwQ29uZmlnV2l0aENvbnRleHQobWFwQ29udGV4dCwgbWFwQ29uZmlnKVxuICAgIH1cbiAgICBpZiAoXG4gICAgICAhbWFwQ29udGV4dC52aWV3Py5leHRlbnQgJiZcbiAgICAgICghbWFwQ29udGV4dC52aWV3Py5jZW50ZXIgfHwgIW1hcENvbnRleHQudmlldz8uem9vbSlcbiAgICApIHtcbiAgICAgIG1hcENvbnRleHQudmlldyA9IHRoaXMuZ2V0RmFsbGJhY2tWaWV3KG1hcENvbmZpZylcbiAgICB9XG4gICAgbWFwLnNldFZpZXcodGhpcy5jcmVhdGVWaWV3KG1hcENvbnRleHQudmlldywgbWFwKSlcbiAgICBtYXAuZ2V0TGF5ZXJzKCkuY2xlYXIoKVxuICAgIG1hcENvbnRleHQubGF5ZXJzLmZvckVhY2goKGxheWVyKSA9PiBtYXAuYWRkTGF5ZXIodGhpcy5jcmVhdGVMYXllcihsYXllcikpKVxuICAgIHJldHVybiBtYXBcbiAgfVxuXG4gIGNyZWF0ZUxheWVyKGxheWVyTW9kZWw6IE1hcENvbnRleHRMYXllck1vZGVsKTogTGF5ZXIge1xuICAgIGNvbnN0IHsgdHlwZSB9ID0gbGF5ZXJNb2RlbFxuICAgIGNvbnN0IHN0eWxlID0gdGhpcy5zdHlsZVNlcnZpY2Uuc3R5bGVzLmRlZmF1bHRcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgTWFwQ29udGV4dExheWVyVHlwZUVudW0uWFlaOlxuICAgICAgICByZXR1cm4gbmV3IFRpbGVMYXllcih7XG4gICAgICAgICAgc291cmNlOiBuZXcgWFlaKHtcbiAgICAgICAgICAgIHVybDogJ3VybCcgaW4gbGF5ZXJNb2RlbCA/IGxheWVyTW9kZWwudXJsIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgdXJsczogJ3VybHMnIGluIGxheWVyTW9kZWwgPyBsYXllck1vZGVsLnVybHMgOiB1bmRlZmluZWQsXG4gICAgICAgICAgfSksXG4gICAgICAgIH0pXG4gICAgICBjYXNlIE1hcENvbnRleHRMYXllclR5cGVFbnVtLldNUzpcbiAgICAgICAgcmV0dXJuIG5ldyBUaWxlTGF5ZXIoe1xuICAgICAgICAgIHNvdXJjZTogbmV3IFRpbGVXTVMoe1xuICAgICAgICAgICAgdXJsOiByZW1vdmVTZWFyY2hQYXJhbXMobGF5ZXJNb2RlbC51cmwsIFsncmVxdWVzdCcsICdzZXJ2aWNlJ10pLFxuICAgICAgICAgICAgcGFyYW1zOiB7IExBWUVSUzogbGF5ZXJNb2RlbC5uYW1lIH0sXG4gICAgICAgICAgICBndXR0ZXI6IDIwLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9KVxuICAgICAgY2FzZSBNYXBDb250ZXh0TGF5ZXJUeXBlRW51bS5XTVRTOlxuICAgICAgICByZXR1cm4gbmV3IFRpbGVMYXllcih7XG4gICAgICAgICAgc291cmNlOiBuZXcgV01UUyhsYXllck1vZGVsLm9wdGlvbnMpLFxuICAgICAgICB9KVxuICAgICAgY2FzZSBNYXBDb250ZXh0TGF5ZXJUeXBlRW51bS5XRlM6XG4gICAgICAgIHJldHVybiBuZXcgVmVjdG9yTGF5ZXIoe1xuICAgICAgICAgIHNvdXJjZTogbmV3IFZlY3RvclNvdXJjZSh7XG4gICAgICAgICAgICBmb3JtYXQ6IG5ldyBHZW9KU09OKCksXG4gICAgICAgICAgICB1cmw6IGZ1bmN0aW9uIChleHRlbnQpIHtcbiAgICAgICAgICAgICAgY29uc3QgdXJsT2JqID0gbmV3IFVSTChcbiAgICAgICAgICAgICAgICByZW1vdmVTZWFyY2hQYXJhbXMobGF5ZXJNb2RlbC51cmwsIFtcbiAgICAgICAgICAgICAgICAgICdzZXJ2aWNlJyxcbiAgICAgICAgICAgICAgICAgICd2ZXJzaW9uJyxcbiAgICAgICAgICAgICAgICAgICdyZXF1ZXN0JyxcbiAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIHVybE9iai5zZWFyY2hQYXJhbXMuc2V0KCdzZXJ2aWNlJywgJ1dGUycpXG4gICAgICAgICAgICAgIHVybE9iai5zZWFyY2hQYXJhbXMuc2V0KCd2ZXJzaW9uJywgJzEuMS4wJylcbiAgICAgICAgICAgICAgdXJsT2JqLnNlYXJjaFBhcmFtcy5zZXQoJ3JlcXVlc3QnLCAnR2V0RmVhdHVyZScpXG4gICAgICAgICAgICAgIHVybE9iai5zZWFyY2hQYXJhbXMuc2V0KCdvdXRwdXRGb3JtYXQnLCAnYXBwbGljYXRpb24vanNvbicpXG4gICAgICAgICAgICAgIHVybE9iai5zZWFyY2hQYXJhbXMuc2V0KCd0eXBlbmFtZScsIGxheWVyTW9kZWwubmFtZSlcbiAgICAgICAgICAgICAgdXJsT2JqLnNlYXJjaFBhcmFtcy5zZXQoJ3Nyc25hbWUnLCAnRVBTRzozODU3JylcbiAgICAgICAgICAgICAgdXJsT2JqLnNlYXJjaFBhcmFtcy5zZXQoJ2Jib3gnLCBgJHtleHRlbnQuam9pbignLCcpfSxFUFNHOjM4NTdgKVxuICAgICAgICAgICAgICByZXR1cm4gdXJsT2JqLnRvU3RyaW5nKClcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdHJhdGVneTogYmJveFN0cmF0ZWd5LFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHN0eWxlLFxuICAgICAgICB9KVxuICAgICAgY2FzZSBNYXBDb250ZXh0TGF5ZXJUeXBlRW51bS5HRU9KU09OOiB7XG4gICAgICAgIGlmICgndXJsJyBpbiBsYXllck1vZGVsKSB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBWZWN0b3JMYXllcih7XG4gICAgICAgICAgICBzb3VyY2U6IG5ldyBWZWN0b3JTb3VyY2Uoe1xuICAgICAgICAgICAgICBmb3JtYXQ6IG5ldyBHZW9KU09OKCksXG4gICAgICAgICAgICAgIHVybDogbGF5ZXJNb2RlbC51cmwsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHN0eWxlLFxuICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGV0IGdlb2pzb24gPSBsYXllck1vZGVsLmRhdGFcbiAgICAgICAgICBpZiAodHlwZW9mIGdlb2pzb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBnZW9qc29uID0gSlNPTi5wYXJzZShnZW9qc29uKVxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ0EgbGF5ZXIgY291bGQgbm90IGJlIGNyZWF0ZWQnLCBsYXllck1vZGVsLCBlKVxuICAgICAgICAgICAgICBnZW9qc29uID0geyB0eXBlOiAnRmVhdHVyZUNvbGxlY3Rpb24nLCBmZWF0dXJlczogW10gfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBmZWF0dXJlcyA9IHRoaXMubWFwVXRpbHMucmVhZEZlYXR1cmVDb2xsZWN0aW9uKFxuICAgICAgICAgICAgZ2VvanNvbiBhcyBGZWF0dXJlQ29sbGVjdGlvblxuICAgICAgICAgICkgYXMgRmVhdHVyZTxHZW9tZXRyeT5bXVxuICAgICAgICAgIHJldHVybiBuZXcgVmVjdG9yTGF5ZXIoe1xuICAgICAgICAgICAgc291cmNlOiBuZXcgVmVjdG9yU291cmNlKHtcbiAgICAgICAgICAgICAgZmVhdHVyZXMsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHN0eWxlLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5yZWNvZ25pemVkIGxheWVyIHR5cGU6ICR7bGF5ZXJNb2RlbC50eXBlfWApXG4gICAgfVxuICB9XG5cbiAgY3JlYXRlVmlldyh2aWV3TW9kZWw6IE1hcENvbnRleHRWaWV3TW9kZWwsIG1hcD86IE1hcCk6IFZpZXcge1xuICAgIGNvbnN0IHsgY2VudGVyOiBjZW50ZXJJblZpZXdQcm9qLCB6b29tLCBtYXhab29tLCBtYXhFeHRlbnQgfSA9IHZpZXdNb2RlbFxuICAgIGNvbnN0IGNlbnRlciA9IGNlbnRlckluVmlld1Byb2pcbiAgICAgID8gZnJvbUxvbkxhdChjZW50ZXJJblZpZXdQcm9qLCAnRVBTRzozODU3JylcbiAgICAgIDogWzAsIDBdXG4gICAgY29uc3QgdmlldyA9IG5ldyBWaWV3KHtcbiAgICAgIGNlbnRlcixcbiAgICAgIHpvb20sXG4gICAgICBtYXhab29tLFxuICAgICAgZXh0ZW50OiBtYXhFeHRlbnQsXG4gICAgICBtdWx0aVdvcmxkOiBmYWxzZSxcbiAgICAgIGNvbnN0cmFpblJlc29sdXRpb246IHRydWUsXG4gICAgfSlcbiAgICBpZiAodmlld01vZGVsLmV4dGVudCAmJiBtYXApIHtcbiAgICAgIHZpZXcuZml0KHZpZXdNb2RlbC5leHRlbnQsIHtcbiAgICAgICAgc2l6ZTogbWFwLmdldFNpemUoKSxcbiAgICAgIH0pXG4gICAgfVxuICAgIHJldHVybiB2aWV3XG4gIH1cblxuICBtZXJnZU1hcENvbmZpZ1dpdGhDb250ZXh0KFxuICAgIG1hcENvbnRleHQ6IE1hcENvbnRleHRNb2RlbCxcbiAgICBtYXBDb25maWc6IE1hcENvbmZpZ1xuICApOiBNYXBDb250ZXh0TW9kZWwge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5tYXBDb250ZXh0LFxuICAgICAgdmlldzoge1xuICAgICAgICAuLi5tYXBDb250ZXh0LnZpZXcsXG4gICAgICAgIC4uLihtYXBDb25maWcuTUFYX1pPT00gJiYge1xuICAgICAgICAgIG1heFpvb206IG1hcENvbmZpZy5NQVhfWk9PTSxcbiAgICAgICAgfSksXG4gICAgICAgIC4uLihtYXBDb25maWcuTUFYX0VYVEVOVCAmJiB7XG4gICAgICAgICAgbWF4RXh0ZW50OiBtYXBDb25maWcuTUFYX0VYVEVOVCxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgICAgbGF5ZXJzOiBbXG4gICAgICAgIC4uLihtYXBDb25maWcuRE9fTk9UX1VTRV9ERUZBVUxUX0JBU0VNQVBcbiAgICAgICAgICA/IFtdXG4gICAgICAgICAgOiBbREVGQVVMVF9CQVNFTEFZRVJfQ09OVEVYVF0pLFxuICAgICAgICAuLi5tYXBDb25maWcuTUFQX0xBWUVSUy5tYXAodGhpcy5nZXRDb250ZXh0TGF5ZXJGcm9tQ29uZmlnKSxcbiAgICAgICAgLi4ubWFwQ29udGV4dC5sYXllcnMsXG4gICAgICBdLFxuICAgIH1cbiAgfVxuXG4gIGdldEZhbGxiYWNrVmlldyhtYXBDb25maWc6IE1hcENvbmZpZyk6IE1hcENvbnRleHRWaWV3TW9kZWwge1xuICAgIHJldHVybiBtYXBDb25maWc/Lk1BWF9FWFRFTlRcbiAgICAgID8geyBleHRlbnQ6IG1hcENvbmZpZy5NQVhfRVhURU5UIH1cbiAgICAgIDogREVGQVVMVF9WSUVXXG4gIH1cblxuICBnZXRDb250ZXh0TGF5ZXJGcm9tQ29uZmlnKGNvbmZpZzogTGF5ZXJDb25maWcpOiBNYXBDb250ZXh0TGF5ZXJNb2RlbCB7XG4gICAgc3dpdGNoIChjb25maWcuVFlQRSkge1xuICAgICAgY2FzZSAnd21zJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0eXBlOiAnd21zJyxcbiAgICAgICAgICB1cmw6IGNvbmZpZy5VUkwsXG4gICAgICAgICAgbmFtZTogY29uZmlnLk5BTUUsXG4gICAgICAgIH1cbiAgICAgIGNhc2UgJ3dmcyc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdHlwZTogJ3dmcycsXG4gICAgICAgICAgdXJsOiBjb25maWcuVVJMLFxuICAgICAgICAgIG5hbWU6IGNvbmZpZy5OQU1FLFxuICAgICAgICB9XG4gICAgICBjYXNlICd4eXonOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHR5cGU6IGNvbmZpZy5UWVBFLFxuICAgICAgICAgIHVybDogY29uZmlnLlVSTCxcbiAgICAgICAgICBuYW1lOiBjb25maWcuTkFNRSxcbiAgICAgICAgfVxuICAgICAgY2FzZSAnZ2VvanNvbic6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdHlwZTogY29uZmlnLlRZUEUsXG4gICAgICAgICAgLi4uKGNvbmZpZy5EQVRBID8geyBkYXRhOiBjb25maWcuREFUQSB9IDogeyB1cmw6IGNvbmZpZy5VUkwgfSksXG4gICAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWNvbnRleHQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9tYXAtY29udGV4dC9tYXAtY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQzVELE9BQU8sRUFFTCx1QkFBdUIsR0FJeEIsTUFBTSxxQkFBcUIsQ0FBQTtBQUU1QixPQUFPLElBQUksTUFBTSxTQUFTLENBQUE7QUFFMUIsT0FBTyxXQUFXLE1BQU0saUJBQWlCLENBQUE7QUFDekMsT0FBTyxPQUFPLE1BQU0sbUJBQW1CLENBQUE7QUFDdkMsT0FBTyxTQUFTLE1BQU0sZUFBZSxDQUFBO0FBQ3JDLE9BQU8sR0FBRyxNQUFNLGVBQWUsQ0FBQTtBQUMvQixPQUFPLFlBQVksTUFBTSxrQkFBa0IsQ0FBQTtBQUMzQyxPQUFPLE9BQU8sTUFBTSxtQkFBbUIsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDNUQsT0FBTyxFQUFFLElBQUksSUFBSSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUd6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3BDLE9BQU8sSUFBSSxNQUFNLGdCQUFnQixDQUFBO0FBR2pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7Ozs7QUFFbEUsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQTRCO0lBQ2hFLElBQUksRUFBRSx1QkFBdUIsQ0FBQyxHQUFHO0lBQ2pDLElBQUksRUFBRTtRQUNKLHFFQUFxRTtRQUNyRSxxRUFBcUU7UUFDckUscUVBQXFFO0tBQ3RFO0NBQ0YsQ0FBQTtB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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTWFwU3R5bGVTZXJ2aWNlIH0gZnJvbSAnLi4vc3R5bGUvbWFwLXN0eWxlLnNlcnZpY2UnXG5pbXBvcnQge1xuICBNYXBDb250ZXh0TGF5ZXJNb2RlbCxcbiAgTWFwQ29udGV4dExheWVyVHlwZUVudW0sXG4gIE1hcENvbnRleHRMYXllclh5ek1vZGVsLFxuICBNYXBDb250ZXh0TW9kZWwsXG4gIE1hcENvbnRleHRWaWV3TW9kZWwsXG59IGZyb20gJy4vbWFwLWNvbnRleHQubW9kZWwnXG5pbXBvcnQgTWFwIGZyb20gJ29sL01hcCdcbmltcG9ydCBWaWV3IGZyb20gJ29sL1ZpZXcnXG5pbXBvcnQgTGF5ZXIgZnJvbSAnb2wvbGF5ZXIvQmFzZSdcbmltcG9ydCBWZWN0b3JMYXllciBmcm9tICdvbC9sYXllci9WZWN0b3InXG5pbXBvcnQgVGlsZVdNUyBmcm9tICdvbC9zb3VyY2UvVGlsZVdNUydcbmltcG9ydCBUaWxlTGF5ZXIgZnJvbSAnb2wvbGF5ZXIvVGlsZSdcbmltcG9ydCBYWVogZnJvbSAnb2wvc291cmNlL1hZWidcbmltcG9ydCBWZWN0b3JTb3VyY2UgZnJvbSAnb2wvc291cmNlL1ZlY3RvcidcbmltcG9ydCBHZW9KU09OIGZyb20gJ29sL2Zvcm1hdC9HZW9KU09OJ1xuaW1wb3J0IHsgTWFwVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vdXRpbHMvbWFwLXV0aWxzLnNlcnZpY2UnXG5pbXBvcnQgeyBiYm94IGFzIGJib3hTdHJhdGVneSB9IGZyb20gJ29sL2xvYWRpbmdzdHJhdGVneSdcbmltcG9ydCB7IExheWVyQ29uZmlnLCBNYXBDb25maWcgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvYXBwLWNvbmZpZy9zcmMnXG5pbXBvcnQgeyBGZWF0dXJlQ29sbGVjdGlvbiB9IGZyb20gJ2dlb2pzb24nXG5pbXBvcnQgeyBmcm9tTG9uTGF0IH0gZnJvbSAnb2wvcHJvaidcbmltcG9ydCBXTVRTIGZyb20gJ29sL3NvdXJjZS9XTVRTJ1xuaW1wb3J0IHsgR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tJ1xuaW1wb3J0IEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSdcbmltcG9ydCB7IFdmc0VuZHBvaW50LCBXbXRzRW5kcG9pbnQgfSBmcm9tICdAY2FtcHRvY2FtcC9vZ2MtY2xpZW50J1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9CQVNFTEFZRVJfQ09OVEVYVDogTWFwQ29udGV4dExheWVyWHl6TW9kZWwgPSB7XG4gIHR5cGU6IE1hcENvbnRleHRMYXllclR5cGVFbnVtLlhZWixcbiAgdXJsczogW1xuICAgIGBodHRwczovL2EuYmFzZW1hcHMuY2FydG9jZG4uY29tL3Jhc3RlcnRpbGVzL3ZveWFnZXIve3p9L3t4fS97eX0ucG5nYCxcbiAgICBgaHR0cHM6Ly9iLmJhc2VtYXBzLmNhcnRvY2RuLmNvbS9yYXN0ZXJ0aWxlcy92b3lhZ2VyL3t6fS97eH0ve3l9LnBuZ2AsXG4gICAgYGh0dHBzOi8vYy5iYXNlbWFwcy5jYXJ0b2Nkbi5jb20vcmFzdGVydGlsZXMvdm95YWdlci97en0ve3h9L3t5fS5wbmdgLFxuICBdLFxufVxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9WSUVXOiBNYXBDb250ZXh0Vmlld01vZGVsID0ge1xuICBjZW50ZXI6IFswLCAxNV0sXG4gIHpvb206IDIsXG59XG5cbmV4cG9ydCBjb25zdCBXRlNfTUFYX0ZFQVRVUkVTID0gMTAwMDBcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE1hcENvbnRleHRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBtYXBVdGlsczogTWFwVXRpbHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3R5bGVTZXJ2aWNlOiBNYXBTdHlsZVNlcnZpY2VcbiAgKSB7fVxuXG4gIHJlc2V0TWFwRnJvbUNvbnRleHQoXG4gICAgbWFwOiBNYXAsXG4gICAgbWFwQ29udGV4dDogTWFwQ29udGV4dE1vZGVsLFxuICAgIG1hcENvbmZpZz86IE1hcENvbmZpZ1xuICApOiBNYXAge1xuICAgIGlmIChtYXBDb25maWcpIHtcbiAgICAgIG1hcENvbnRleHQgPSB0aGlzLm1lcmdlTWFwQ29uZmlnV2l0aENvbnRleHQobWFwQ29udGV4dCwgbWFwQ29uZmlnKVxuICAgIH0gZWxzZSB7XG4gICAgICBtYXBDb250ZXh0LmxheWVycyA9IHRoaXMuYWRkRGVmYXVsdEJhc2VsYXllckNvbnRleHQobWFwQ29udGV4dC5sYXllcnMpXG4gICAgfVxuICAgIGlmIChcbiAgICAgICFtYXBDb250ZXh0LnZpZXc/LmV4dGVudCAmJlxuICAgICAgKCFtYXBDb250ZXh0LnZpZXc/LmNlbnRlciB8fCAhbWFwQ29udGV4dC52aWV3Py56b29tKVxuICAgICkge1xuICAgICAgbWFwQ29udGV4dC52aWV3ID0gdGhpcy5nZXRGYWxsYmFja1ZpZXcobWFwQ29uZmlnKVxuICAgIH1cbiAgICBtYXAuc2V0Vmlldyh0aGlzLmNyZWF0ZVZpZXcobWFwQ29udGV4dC52aWV3LCBtYXApKVxuICAgIG1hcC5nZXRMYXllcnMoKS5jbGVhcigpXG4gICAgbWFwQ29udGV4dC5sYXllcnMuZm9yRWFjaCgobGF5ZXIpID0+IG1hcC5hZGRMYXllcih0aGlzLmNyZWF0ZUxheWVyKGxheWVyKSkpXG4gICAgcmV0dXJuIG1hcFxuICB9XG5cbiAgY3JlYXRlTGF5ZXIobGF5ZXJNb2RlbDogTWFwQ29udGV4dExheWVyTW9kZWwpOiBMYXllciB7XG4gICAgY29uc3QgeyB0eXBlIH0gPSBsYXllck1vZGVsXG4gICAgY29uc3Qgc3R5bGUgPSB0aGlzLnN0eWxlU2VydmljZS5zdHlsZXMuZGVmYXVsdFxuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSBNYXBDb250ZXh0TGF5ZXJUeXBlRW51bS5PR0NBUEk6XG4gICAgICAgIHJldHVybiBuZXcgVmVjdG9yTGF5ZXIoe1xuICAgICAgICAgIHNvdXJjZTogbmV3IFZlY3RvclNvdXJjZSh7XG4gICAgICAgICAgICBmb3JtYXQ6IG5ldyBHZW9KU09OKCksXG4gICAgICAgICAgICB1cmw6IGxheWVyTW9kZWwudXJsLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHN0eWxlLFxuICAgICAgICB9KVxuXG4gICAgICBjYXNlIE1hcENvbnRleHRMYXllclR5cGVFbnVtLlhZWjpcbiAgICAgICAgcmV0dXJuIG5ldyBUaWxlTGF5ZXIoe1xuICAgICAgICAgIHNvdXJjZTogbmV3IFhZWih7XG4gICAgICAgICAgICB1cmw6ICd1cmwnIGluIGxheWVyTW9kZWwgPyBsYXllck1vZGVsLnVybCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHVybHM6ICd1cmxzJyBpbiBsYXllck1vZGVsID8gbGF5ZXJNb2RlbC51cmxzIDogdW5kZWZpbmVkLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9KVxuICAgICAgY2FzZSBNYXBDb250ZXh0TGF5ZXJUeXBlRW51bS5XTVM6XG4gICAgICAgIHJldHVybiBuZXcgVGlsZUxheWVyKHtcbiAgICAgICAgICBzb3VyY2U6IG5ldyBUaWxlV01TKHtcbiAgICAgICAgICAgIHVybDogbGF5ZXJNb2RlbC51cmwsXG4gICAgICAgICAgICBwYXJhbXM6IHsgTEFZRVJTOiBsYXllck1vZGVsLm5hbWUgfSxcbiAgICAgICAgICAgIGd1dHRlcjogMjAsXG4gICAgICAgICAgfSksXG4gICAgICAgIH0pXG4gICAgICBjYXNlIE1hcENvbnRleHRMYXllclR5cGVFbnVtLldNVFM6IHtcbiAgICAgICAgLy8gVE9ETzogaXNvbGF0ZSB0aGlzIGluIHV0aWxzIHNlcnZpY2VcbiAgICAgICAgY29uc3Qgb2xMYXllciA9IG5ldyBUaWxlTGF5ZXIoe30pXG4gICAgICAgIGNvbnN0IGVuZHBvaW50ID0gbmV3IFdtdHNFbmRwb2ludChsYXllck1vZGVsLnVybClcbiAgICAgICAgZW5kcG9pbnQuaXNSZWFkeSgpLnRoZW4oYXN5bmMgKGVuZHBvaW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgbGF5ZXJOYW1lID0gZW5kcG9pbnQuZ2V0U2luZ2xlTGF5ZXJOYW1lKCkgPz8gbGF5ZXJNb2RlbC5uYW1lXG4gICAgICAgICAgY29uc3QgbGF5ZXIgPSBlbmRwb2ludC5nZXRMYXllckJ5TmFtZShsYXllck5hbWUpXG4gICAgICAgICAgY29uc3QgbWF0cml4U2V0ID0gbGF5ZXIubWF0cml4U2V0c1swXVxuICAgICAgICAgIGNvbnN0IHRpbGVHcmlkID0gYXdhaXQgZW5kcG9pbnQuZ2V0T3BlbkxheWVyc1RpbGVHcmlkKGxheWVyLm5hbWUpXG4gICAgICAgICAgY29uc3QgcmVzb3VyY2VVcmwgPSBsYXllci5yZXNvdXJjZUxpbmtzWzBdXG4gICAgICAgICAgY29uc3QgZGltZW5zaW9ucyA9IGVuZHBvaW50LmdldERlZmF1bHREaW1lbnNpb25zKGxheWVyLm5hbWUpXG4gICAgICAgICAgb2xMYXllci5zZXRTb3VyY2UoXG4gICAgICAgICAgICBuZXcgV01UUyh7XG4gICAgICAgICAgICAgIGxheWVyOiBsYXllci5uYW1lLFxuICAgICAgICAgICAgICBzdHlsZTogbGF5ZXIuZGVmYXVsdFN0eWxlLFxuICAgICAgICAgICAgICBtYXRyaXhTZXQ6IG1hdHJpeFNldC5pZGVudGlmaWVyLFxuICAgICAgICAgICAgICBmb3JtYXQ6IHJlc291cmNlVXJsLmZvcm1hdCxcbiAgICAgICAgICAgICAgdXJsOiByZXNvdXJjZVVybC51cmwsXG4gICAgICAgICAgICAgIHJlcXVlc3RFbmNvZGluZzogcmVzb3VyY2VVcmwuZW5jb2RpbmcsXG4gICAgICAgICAgICAgIHRpbGVHcmlkLFxuICAgICAgICAgICAgICBwcm9qZWN0aW9uOiBtYXRyaXhTZXQuY3JzLFxuICAgICAgICAgICAgICBkaW1lbnNpb25zLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgIH0pXG4gICAgICAgIHJldHVybiBvbExheWVyXG4gICAgICB9XG4gICAgICBjYXNlIE1hcENvbnRleHRMYXllclR5cGVFbnVtLldGUzoge1xuICAgICAgICBjb25zdCBvbExheWVyID0gbmV3IFZlY3RvckxheWVyKHtcbiAgICAgICAgICBzdHlsZSxcbiAgICAgICAgfSlcbiAgICAgICAgbmV3IFdmc0VuZHBvaW50KGxheWVyTW9kZWwudXJsKS5pc1JlYWR5KCkudGhlbigoZW5kcG9pbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBmZWF0dXJlVHlwZSA9XG4gICAgICAgICAgICBlbmRwb2ludC5nZXRTaW5nbGVGZWF0dXJlVHlwZU5hbWUoKSA/PyBsYXllck1vZGVsLm5hbWVcbiAgICAgICAgICBvbExheWVyLnNldFNvdXJjZShcbiAgICAgICAgICAgIG5ldyBWZWN0b3JTb3VyY2Uoe1xuICAgICAgICAgICAgICBmb3JtYXQ6IG5ldyBHZW9KU09OKCksXG4gICAgICAgICAgICAgIHVybDogZnVuY3Rpb24gKGV4dGVudDogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZW5kcG9pbnQuZ2V0RmVhdHVyZVVybChmZWF0dXJlVHlwZSwge1xuICAgICAgICAgICAgICAgICAgbWF4RmVhdHVyZXM6IFdGU19NQVhfRkVBVFVSRVMsXG4gICAgICAgICAgICAgICAgICBhc0pzb246IHRydWUsXG4gICAgICAgICAgICAgICAgICBvdXRwdXRDcnM6ICdFUFNHOjM4NTcnLFxuICAgICAgICAgICAgICAgICAgZXh0ZW50LFxuICAgICAgICAgICAgICAgICAgZXh0ZW50Q3JzOiAnRVBTRzozODU3JyxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBzdHJhdGVneTogYmJveFN0cmF0ZWd5LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgIH0pXG4gICAgICAgIHJldHVybiBvbExheWVyXG4gICAgICB9XG4gICAgICBjYXNlIE1hcENvbnRleHRMYXllclR5cGVFbnVtLkdFT0pTT046IHtcbiAgICAgICAgaWYgKCd1cmwnIGluIGxheWVyTW9kZWwpIHtcbiAgICAgICAgICByZXR1cm4gbmV3IFZlY3RvckxheWVyKHtcbiAgICAgICAgICAgIHNvdXJjZTogbmV3IFZlY3RvclNvdXJjZSh7XG4gICAgICAgICAgICAgIGZvcm1hdDogbmV3IEdlb0pTT04oKSxcbiAgICAgICAgICAgICAgdXJsOiBsYXllck1vZGVsLnVybCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc3R5bGUsXG4gICAgICAgICAgfSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsZXQgZ2VvanNvbiA9IGxheWVyTW9kZWwuZGF0YVxuICAgICAgICAgIGlmICh0eXBlb2YgZ2VvanNvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGdlb2pzb24gPSBKU09OLnBhcnNlKGdlb2pzb24pXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUud2FybignQSBsYXllciBjb3VsZCBub3QgYmUgY3JlYXRlZCcsIGxheWVyTW9kZWwsIGUpXG4gICAgICAgICAgICAgIGdlb2pzb24gPSB7IHR5cGU6ICdGZWF0dXJlQ29sbGVjdGlvbicsIGZlYXR1cmVzOiBbXSB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGZlYXR1cmVzID0gdGhpcy5tYXBVdGlscy5yZWFkRmVhdHVyZUNvbGxlY3Rpb24oXG4gICAgICAgICAgICBnZW9qc29uIGFzIEZlYXR1cmVDb2xsZWN0aW9uXG4gICAgICAgICAgKSBhcyBGZWF0dXJlPEdlb21ldHJ5PltdXG4gICAgICAgICAgcmV0dXJuIG5ldyBWZWN0b3JMYXllcih7XG4gICAgICAgICAgICBzb3VyY2U6IG5ldyBWZWN0b3JTb3VyY2Uoe1xuICAgICAgICAgICAgICBmZWF0dXJlcyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc3R5bGUsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnJlY29nbml6ZWQgbGF5ZXIgdHlwZTogJHtsYXllck1vZGVsLnR5cGV9YClcbiAgICB9XG4gIH1cblxuICBjcmVhdGVWaWV3KHZpZXdNb2RlbDogTWFwQ29udGV4dFZpZXdNb2RlbCwgbWFwPzogTWFwKTogVmlldyB7XG4gICAgY29uc3QgeyBjZW50ZXI6IGNlbnRlckluVmlld1Byb2osIHpvb20sIG1heFpvb20sIG1heEV4dGVudCB9ID0gdmlld01vZGVsXG4gICAgY29uc3QgY2VudGVyID0gY2VudGVySW5WaWV3UHJvalxuICAgICAgPyBmcm9tTG9uTGF0KGNlbnRlckluVmlld1Byb2osICdFUFNHOjM4NTcnKVxuICAgICAgOiBbMCwgMF1cbiAgICBjb25zdCB2aWV3ID0gbmV3IFZpZXcoe1xuICAgICAgY2VudGVyLFxuICAgICAgem9vbSxcbiAgICAgIG1heFpvb20sXG4gICAgICBleHRlbnQ6IG1heEV4dGVudCxcbiAgICAgIG11bHRpV29ybGQ6IGZhbHNlLFxuICAgICAgY29uc3RyYWluUmVzb2x1dGlvbjogdHJ1ZSxcbiAgICB9KVxuICAgIGlmICh2aWV3TW9kZWwuZXh0ZW50ICYmIG1hcCkge1xuICAgICAgdmlldy5maXQodmlld01vZGVsLmV4dGVudCwge1xuICAgICAgICBzaXplOiBtYXAuZ2V0U2l6ZSgpLFxuICAgICAgfSlcbiAgICB9XG4gICAgcmV0dXJuIHZpZXdcbiAgfVxuXG4gIGFkZERlZmF1bHRCYXNlbGF5ZXJDb250ZXh0KFxuICAgIGxheWVyczogTWFwQ29udGV4dExheWVyTW9kZWxbXVxuICApOiBNYXBDb250ZXh0TGF5ZXJNb2RlbFtdIHtcbiAgICByZXR1cm4gbGF5ZXJzLmluY2x1ZGVzKERFRkFVTFRfQkFTRUxBWUVSX0NPTlRFWFQpXG4gICAgICA/IGxheWVyc1xuICAgICAgOiBbREVGQVVMVF9CQVNFTEFZRVJfQ09OVEVYVCwgLi4ubGF5ZXJzXVxuICB9XG5cbiAgbWVyZ2VNYXBDb25maWdXaXRoQ29udGV4dChcbiAgICBtYXBDb250ZXh0OiBNYXBDb250ZXh0TW9kZWwsXG4gICAgbWFwQ29uZmlnOiBNYXBDb25maWdcbiAgKTogTWFwQ29udGV4dE1vZGVsIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ubWFwQ29udGV4dCxcbiAgICAgIHZpZXc6IHtcbiAgICAgICAgLi4ubWFwQ29udGV4dC52aWV3LFxuICAgICAgICAuLi4obWFwQ29uZmlnLk1BWF9aT09NICYmIHtcbiAgICAgICAgICBtYXhab29tOiBtYXBDb25maWcuTUFYX1pPT00sXG4gICAgICAgIH0pLFxuICAgICAgICAuLi4obWFwQ29uZmlnLk1BWF9FWFRFTlQgJiYge1xuICAgICAgICAgIG1heEV4dGVudDogbWFwQ29uZmlnLk1BWF9FWFRFTlQsXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICAgIGxheWVyczogW1xuICAgICAgICAuLi4obWFwQ29uZmlnLkRPX05PVF9VU0VfREVGQVVMVF9CQVNFTUFQXG4gICAgICAgICAgPyBbXVxuICAgICAgICAgIDogW0RFRkFVTFRfQkFTRUxBWUVSX0NPTlRFWFRdKSxcbiAgICAgICAgLi4ubWFwQ29uZmlnLk1BUF9MQVlFUlMubWFwKHRoaXMuZ2V0Q29udGV4dExheWVyRnJvbUNvbmZpZyksXG4gICAgICAgIC4uLm1hcENvbnRleHQubGF5ZXJzLFxuICAgICAgXSxcbiAgICB9XG4gIH1cblxuICBnZXRGYWxsYmFja1ZpZXcobWFwQ29uZmlnOiBNYXBDb25maWcpOiBNYXBDb250ZXh0Vmlld01vZGVsIHtcbiAgICByZXR1cm4gbWFwQ29uZmlnPy5NQVhfRVhURU5UXG4gICAgICA/IHsgZXh0ZW50OiBtYXBDb25maWcuTUFYX0VYVEVOVCB9XG4gICAgICA6IERFRkFVTFRfVklFV1xuICB9XG5cbiAgZ2V0Q29udGV4dExheWVyRnJvbUNvbmZpZyhjb25maWc6IExheWVyQ29uZmlnKTogTWFwQ29udGV4dExheWVyTW9kZWwge1xuICAgIHN3aXRjaCAoY29uZmlnLlRZUEUpIHtcbiAgICAgIGNhc2UgJ3dtcyc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdHlwZTogJ3dtcycsXG4gICAgICAgICAgdXJsOiBjb25maWcuVVJMLFxuICAgICAgICAgIG5hbWU6IGNvbmZpZy5OQU1FLFxuICAgICAgICB9XG4gICAgICBjYXNlICd3ZnMnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHR5cGU6ICd3ZnMnLFxuICAgICAgICAgIHVybDogY29uZmlnLlVSTCxcbiAgICAgICAgICBuYW1lOiBjb25maWcuTkFNRSxcbiAgICAgICAgfVxuICAgICAgY2FzZSAneHl6JzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0eXBlOiBjb25maWcuVFlQRSxcbiAgICAgICAgICB1cmw6IGNvbmZpZy5VUkwsXG4gICAgICAgICAgbmFtZTogY29uZmlnLk5BTUUsXG4gICAgICAgIH1cbiAgICAgIGNhc2UgJ2dlb2pzb24nOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHR5cGU6IGNvbmZpZy5UWVBFLFxuICAgICAgICAgIC4uLihjb25maWcuREFUQSA/IHsgZGF0YTogY29uZmlnLkRBVEEgfSA6IHsgdXJsOiBjb25maWcuVVJMIH0pLFxuICAgICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,4 +1,2 @@
1
1
  export * from './map-utils.service';
2
- export * from './map-utils-wms.service';
3
- export * from './projections';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbWFwL3NyYy9saWIvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQTtBQUNuQyxjQUFjLHlCQUF5QixDQUFBO0FBQ3ZDLGNBQWMsZUFBZSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tYXAtdXRpbHMuc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vbWFwLXV0aWxzLXdtcy5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9wcm9qZWN0aW9ucydcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbWFwL3NyYy9saWIvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbWFwLXV0aWxzLnNlcnZpY2UnXG4iXX0=