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
@@ -38,7 +38,11 @@ export class AddLayerRecordPreviewComponent extends RecordPreviewComponent {
38
38
  });
39
39
  }
40
40
  else if (link.accessServiceProtocol === 'wmts') {
41
- return this.mapUtils.getWmtsLayerFromCapabilities(link);
41
+ return of({
42
+ url: link.url.toString(),
43
+ type: MapContextLayerTypeEnum.WMTS,
44
+ name: link.name,
45
+ });
42
46
  }
43
47
  return throwError(() => 'protocol not supported');
44
48
  }
@@ -46,10 +50,10 @@ export class AddLayerRecordPreviewComponent extends RecordPreviewComponent {
46
50
  return getLinkLabel(link);
47
51
  }
48
52
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerRecordPreviewComponent, deps: [{ token: i0.ElementRef }, { token: i1.LinkClassifierService }, { token: i2.MapFacade }, { token: i3.MapUtilsService }], target: i0.ɵɵFactoryTarget.Component }); }
49
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: AddLayerRecordPreviewComponent, selector: "gn-ui-add-layer-record-preview", usesInheritance: true, ngImport: i0, template: "<div class=\"w-full flex flex-row rounded-sm\" [title]=\"record.abstract\">\n <gn-ui-thumbnail\n class=\"w-16 h-16 shrink-0 border-r border-gray-200 bg-gray-100\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url.toString()\"\n ></gn-ui-thumbnail>\n\n <div class=\"flex flex-col p-2 gap-2 overflow-hidden\">\n <h1 class=\"text-sm font-medium truncate\">\n {{ record.title }}\n </h1>\n <ng-container *ngFor=\"let link of mapLinks\">\n <gn-ui-button\n [type]=\"'outline'\"\n (buttonClick)=\"handleLinkClick(link)\"\n extraClass=\"!py-[8px] !px-[12px]\"\n >\n <div class=\"text-left text-[12px] line-clamp-2\">\n {{ getLinkLabel(link) }}\n </div>\n </gn-ui-button>\n </ng-container>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i5.ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"] }, { kind: "component", type: i6.ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
53
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: AddLayerRecordPreviewComponent, selector: "gn-ui-add-layer-record-preview", usesInheritance: true, ngImport: i0, template: "<div class=\"w-full flex flex-row rounded-sm\" [title]=\"record.abstract\">\n <gn-ui-thumbnail\n class=\"w-16 h-16 shrink-0 border-r border-gray-200 bg-gray-100\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url.toString()\"\n ></gn-ui-thumbnail>\n\n <div class=\"flex flex-col p-2 gap-2 overflow-hidden\">\n <h1 class=\"text-sm font-medium truncate\">\n {{ record.title }}\n </h1>\n <ng-container *ngFor=\"let link of mapLinks\">\n <gn-ui-button\n [type]=\"'outline'\"\n (buttonClick)=\"handleLinkClick(link)\"\n extraClass=\"!py-[8px] !px-[12px]\"\n >\n <div class=\"text-left text-[12px] line-clamp-2\">\n {{ getLinkLabel(link) }}\n </div>\n </gn-ui-button>\n </ng-container>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i5.ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "component", type: i6.ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
50
54
  }
51
55
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerRecordPreviewComponent, decorators: [{
52
56
  type: Component,
53
57
  args: [{ selector: 'gn-ui-add-layer-record-preview', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"w-full flex flex-row rounded-sm\" [title]=\"record.abstract\">\n <gn-ui-thumbnail\n class=\"w-16 h-16 shrink-0 border-r border-gray-200 bg-gray-100\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url.toString()\"\n ></gn-ui-thumbnail>\n\n <div class=\"flex flex-col p-2 gap-2 overflow-hidden\">\n <h1 class=\"text-sm font-medium truncate\">\n {{ record.title }}\n </h1>\n <ng-container *ngFor=\"let link of mapLinks\">\n <gn-ui-button\n [type]=\"'outline'\"\n (buttonClick)=\"handleLinkClick(link)\"\n extraClass=\"!py-[8px] !px-[12px]\"\n >\n <div class=\"text-left text-[12px] line-clamp-2\">\n {{ getLinkLabel(link) }}\n </div>\n </gn-ui-button>\n </ng-container>\n </div>\n</div>\n" }]
54
58
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.LinkClassifierService }, { type: i2.MapFacade }, { type: i3.MapUtilsService }]; } });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWxheWVyLXJlY29yZC1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9hZGQtbGF5ZXItZnJvbS1jYXRhbG9nL2FkZC1sYXllci1yZWNvcmQtcHJldmlldy9hZGQtbGF5ZXItcmVjb3JkLXByZXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL21hcC9zcmMvbGliL2FkZC1sYXllci1mcm9tLWNhdGFsb2cvYWRkLWxheWVyLXJlY29yZC1wcmV2aWV3L2FkZC1sYXllci1yZWNvcmQtcHJldmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM5RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNoRixPQUFPLEVBQ0wsWUFBWSxFQUNaLHFCQUFxQixFQUNyQixTQUFTLEdBQ1YsTUFBTSwyQ0FBMkMsQ0FBQTtBQUNsRCxPQUFPLEVBQWMsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUVqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUNuRCxPQUFPLEVBRUwsdUJBQXVCLEdBQ3hCLE1BQU0scUNBQXFDLENBQUE7Ozs7Ozs7O0FBWTVDLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxzQkFBc0I7SUFDeEUsSUFBSSxRQUFRO1FBQ1YsT0FBUSxJQUFJLENBQUMsTUFBd0IsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDbEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FDN0IsQ0FBQTtJQUM1QixDQUFDO0lBRUQsWUFDWSxVQUFzQixFQUN4QixjQUFxQyxFQUNyQyxTQUFvQixFQUNwQixRQUF5QjtRQUVqQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUE7UUFMUCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3hCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGFBQVEsR0FBUixRQUFRLENBQWlCO0lBR25DLENBQUM7SUFFRCxLQUFLLENBQUMsZUFBZSxDQUFDLElBQXlCO1FBQzdDLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBQzNELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQTtJQUNqRSxDQUFDO0lBRUQsZ0JBQWdCLENBQ2QsSUFBeUI7UUFFekIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVM7WUFDekIsT0FBTyxVQUFVLENBQ2YsR0FBRyxFQUFFLENBQUMsb0RBQW9ELENBQzNELENBQUE7UUFDSCxJQUFJLElBQUksQ0FBQyxxQkFBcUIsS0FBSyxLQUFLLEVBQUU7WUFDeEMsT0FBTyxFQUFFLENBQUM7Z0JBQ1IsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFO2dCQUN4QixJQUFJLEVBQUUsdUJBQXVCLENBQUMsR0FBRztnQkFDakMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2FBQ2hCLENBQUMsQ0FBQTtTQUNIO2FBQU0sSUFBSSxJQUFJLENBQUMscUJBQXFCLEtBQUssTUFBTSxFQUFFO1lBQ2hELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsQ0FBQTtTQUN4RDtRQUNELE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUE7SUFDbkQsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUF5QjtRQUNwQyxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUMzQixDQUFDOzhHQTFDVSw4QkFBOEI7a0dBQTlCLDhCQUE4Qiw2RkMxQjNDLDh3QkF1QkE7OzJGREdhLDhCQUE4QjtrQkFOMUMsU0FBUzsrQkFDRSxnQ0FBZ0MsbUJBR3pCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFJlY29yZFByZXZpZXdDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMnXG5pbXBvcnQge1xuICBnZXRMaW5rTGFiZWwsXG4gIExpbmtDbGFzc2lmaWVyU2VydmljZSxcbiAgTGlua1VzYWdlLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgTWFwVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBNYXBGYWNhZGUgfSBmcm9tICcuLi8uLi8rc3RhdGUvbWFwLmZhY2FkZSdcbmltcG9ydCB7XG4gIE1hcENvbnRleHRMYXllck1vZGVsLFxuICBNYXBDb250ZXh0TGF5ZXJUeXBlRW51bSxcbn0gZnJvbSAnLi4vLi4vbWFwLWNvbnRleHQvbWFwLWNvbnRleHQubW9kZWwnXG5pbXBvcnQge1xuICBEYXRhc2V0RGlzdHJpYnV0aW9uLFxuICBEYXRhc2V0UmVjb3JkLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWFkZC1sYXllci1yZWNvcmQtcHJldmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtbGF5ZXItcmVjb3JkLXByZXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hZGQtbGF5ZXItcmVjb3JkLXByZXZpZXcuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQWRkTGF5ZXJSZWNvcmRQcmV2aWV3Q29tcG9uZW50IGV4dGVuZHMgUmVjb3JkUHJldmlld0NvbXBvbmVudCB7XG4gIGdldCBtYXBMaW5rcygpOiBEYXRhc2V0RGlzdHJpYnV0aW9uW10ge1xuICAgIHJldHVybiAodGhpcy5yZWNvcmQgYXMgRGF0YXNldFJlY29yZCkuZGlzdHJpYnV0aW9ucy5maWx0ZXIoKGxpbmspID0+XG4gICAgICB0aGlzLmxpbmtDbGFzc2lmaWVyLmhhc1VzYWdlKGxpbmssIExpbmtVc2FnZS5NQVBfQVBJKVxuICAgICkgYXMgRGF0YXNldERpc3RyaWJ1dGlvbltdXG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGxpbmtDbGFzc2lmaWVyOiBMaW5rQ2xhc3NpZmllclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtYXBGYWNhZGU6IE1hcEZhY2FkZSxcbiAgICBwcml2YXRlIG1hcFV0aWxzOiBNYXBVdGlsc1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZilcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZUxpbmtDbGljayhsaW5rOiBEYXRhc2V0RGlzdHJpYnV0aW9uKSB7XG4gICAgY29uc3QgbGF5ZXIgPSBhd2FpdCB0aGlzLmdldExheWVyRnJvbUxpbmsobGluaykudG9Qcm9taXNlKClcbiAgICB0aGlzLm1hcEZhY2FkZS5hZGRMYXllcih7IC4uLmxheWVyLCB0aXRsZTogdGhpcy5yZWNvcmQudGl0bGUgfSlcbiAgfVxuXG4gIGdldExheWVyRnJvbUxpbmsoXG4gICAgbGluazogRGF0YXNldERpc3RyaWJ1dGlvblxuICApOiBPYnNlcnZhYmxlPE1hcENvbnRleHRMYXllck1vZGVsPiB7XG4gICAgaWYgKGxpbmsudHlwZSAhPT0gJ3NlcnZpY2UnKVxuICAgICAgcmV0dXJuIHRocm93RXJyb3IoXG4gICAgICAgICgpID0+ICdtYXAgbGF5ZXIgY291bGQgbm90IGJlIGJ1aWx0IGZvciB0aGlzIGRpc3RyaWJ1dGlvbidcbiAgICAgIClcbiAgICBpZiAobGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3bXMnKSB7XG4gICAgICByZXR1cm4gb2Yoe1xuICAgICAgICB1cmw6IGxpbmsudXJsLnRvU3RyaW5nKCksXG4gICAgICAgIHR5cGU6IE1hcENvbnRleHRMYXllclR5cGVFbnVtLldNUyxcbiAgICAgICAgbmFtZTogbGluay5uYW1lLFxuICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnd210cycpIHtcbiAgICAgIHJldHVybiB0aGlzLm1hcFV0aWxzLmdldFdtdHNMYXllckZyb21DYXBhYmlsaXRpZXMobGluaylcbiAgICB9XG4gICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gJ3Byb3RvY29sIG5vdCBzdXBwb3J0ZWQnKVxuICB9XG5cbiAgZ2V0TGlua0xhYmVsKGxpbms6IERhdGFzZXREaXN0cmlidXRpb24pIHtcbiAgICByZXR1cm4gZ2V0TGlua0xhYmVsKGxpbmspXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3LWZ1bGwgZmxleCBmbGV4LXJvdyByb3VuZGVkLXNtXCIgW3RpdGxlXT1cInJlY29yZC5hYnN0cmFjdFwiPlxuICA8Z24tdWktdGh1bWJuYWlsXG4gICAgY2xhc3M9XCJ3LTE2IGgtMTYgc2hyaW5rLTAgYm9yZGVyLXIgYm9yZGVyLWdyYXktMjAwIGJnLWdyYXktMTAwXCJcbiAgICBbdGh1bWJuYWlsVXJsXT1cInJlY29yZC5vdmVydmlld3M/LlswXT8udXJsLnRvU3RyaW5nKClcIlxuICA+PC9nbi11aS10aHVtYm5haWw+XG5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgcC0yIGdhcC0yIG92ZXJmbG93LWhpZGRlblwiPlxuICAgIDxoMSBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW0gdHJ1bmNhdGVcIj5cbiAgICAgIHt7IHJlY29yZC50aXRsZSB9fVxuICAgIDwvaDE+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGluayBvZiBtYXBMaW5rc1wiPlxuICAgICAgPGduLXVpLWJ1dHRvblxuICAgICAgICBbdHlwZV09XCInb3V0bGluZSdcIlxuICAgICAgICAoYnV0dG9uQ2xpY2spPVwiaGFuZGxlTGlua0NsaWNrKGxpbmspXCJcbiAgICAgICAgZXh0cmFDbGFzcz1cIiFweS1bOHB4XSAhcHgtWzEycHhdXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGVmdCB0ZXh0LVsxMnB4XSBsaW5lLWNsYW1wLTJcIj5cbiAgICAgICAgICB7eyBnZXRMaW5rTGFiZWwobGluaykgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2duLXVpLWJ1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWxheWVyLXJlY29yZC1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9hZGQtbGF5ZXItZnJvbS1jYXRhbG9nL2FkZC1sYXllci1yZWNvcmQtcHJldmlldy9hZGQtbGF5ZXItcmVjb3JkLXByZXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL21hcC9zcmMvbGliL2FkZC1sYXllci1mcm9tLWNhdGFsb2cvYWRkLWxheWVyLXJlY29yZC1wcmV2aWV3L2FkZC1sYXllci1yZWNvcmQtcHJldmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM5RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNoRixPQUFPLEVBQ0wsWUFBWSxFQUNaLHFCQUFxQixFQUNyQixTQUFTLEdBQ1YsTUFBTSwyQ0FBMkMsQ0FBQTtBQUNsRCxPQUFPLEVBQWMsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUVqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUNuRCxPQUFPLEVBRUwsdUJBQXVCLEdBQ3hCLE1BQU0scUNBQXFDLENBQUE7Ozs7Ozs7O0FBWTVDLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxzQkFBc0I7SUFDeEUsSUFBSSxRQUFRO1FBQ1YsT0FBUSxJQUFJLENBQUMsTUFBd0IsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDbEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FDN0IsQ0FBQTtJQUM1QixDQUFDO0lBRUQsWUFDWSxVQUFzQixFQUN4QixjQUFxQyxFQUNyQyxTQUFvQixFQUNwQixRQUF5QjtRQUVqQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUE7UUFMUCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3hCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGFBQVEsR0FBUixRQUFRLENBQWlCO0lBR25DLENBQUM7SUFFRCxLQUFLLENBQUMsZUFBZSxDQUFDLElBQXlCO1FBQzdDLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBQzNELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQTtJQUNqRSxDQUFDO0lBRUQsZ0JBQWdCLENBQ2QsSUFBeUI7UUFFekIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVM7WUFDekIsT0FBTyxVQUFVLENBQ2YsR0FBRyxFQUFFLENBQUMsb0RBQW9ELENBQzNELENBQUE7UUFDSCxJQUFJLElBQUksQ0FBQyxxQkFBcUIsS0FBSyxLQUFLLEVBQUU7WUFDeEMsT0FBTyxFQUFFLENBQUM7Z0JBQ1IsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFO2dCQUN4QixJQUFJLEVBQUUsdUJBQXVCLENBQUMsR0FBRztnQkFDakMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2FBQ2hCLENBQUMsQ0FBQTtTQUNIO2FBQU0sSUFBSSxJQUFJLENBQUMscUJBQXFCLEtBQUssTUFBTSxFQUFFO1lBQ2hELE9BQU8sRUFBRSxDQUFDO2dCQUNSLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRTtnQkFDeEIsSUFBSSxFQUFFLHVCQUF1QixDQUFDLElBQUk7Z0JBQ2xDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTthQUNoQixDQUFDLENBQUE7U0FDSDtRQUNELE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUE7SUFDbkQsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUF5QjtRQUNwQyxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUMzQixDQUFDOzhHQTlDVSw4QkFBOEI7a0dBQTlCLDhCQUE4Qiw2RkMxQjNDLDh3QkF1QkE7OzJGREdhLDhCQUE4QjtrQkFOMUMsU0FBUzsrQkFDRSxnQ0FBZ0MsbUJBR3pCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFJlY29yZFByZXZpZXdDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMnXG5pbXBvcnQge1xuICBnZXRMaW5rTGFiZWwsXG4gIExpbmtDbGFzc2lmaWVyU2VydmljZSxcbiAgTGlua1VzYWdlLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgTWFwVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBNYXBGYWNhZGUgfSBmcm9tICcuLi8uLi8rc3RhdGUvbWFwLmZhY2FkZSdcbmltcG9ydCB7XG4gIE1hcENvbnRleHRMYXllck1vZGVsLFxuICBNYXBDb250ZXh0TGF5ZXJUeXBlRW51bSxcbn0gZnJvbSAnLi4vLi4vbWFwLWNvbnRleHQvbWFwLWNvbnRleHQubW9kZWwnXG5pbXBvcnQge1xuICBEYXRhc2V0RGlzdHJpYnV0aW9uLFxuICBEYXRhc2V0UmVjb3JkLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWFkZC1sYXllci1yZWNvcmQtcHJldmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtbGF5ZXItcmVjb3JkLXByZXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hZGQtbGF5ZXItcmVjb3JkLXByZXZpZXcuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQWRkTGF5ZXJSZWNvcmRQcmV2aWV3Q29tcG9uZW50IGV4dGVuZHMgUmVjb3JkUHJldmlld0NvbXBvbmVudCB7XG4gIGdldCBtYXBMaW5rcygpOiBEYXRhc2V0RGlzdHJpYnV0aW9uW10ge1xuICAgIHJldHVybiAodGhpcy5yZWNvcmQgYXMgRGF0YXNldFJlY29yZCkuZGlzdHJpYnV0aW9ucy5maWx0ZXIoKGxpbmspID0+XG4gICAgICB0aGlzLmxpbmtDbGFzc2lmaWVyLmhhc1VzYWdlKGxpbmssIExpbmtVc2FnZS5NQVBfQVBJKVxuICAgICkgYXMgRGF0YXNldERpc3RyaWJ1dGlvbltdXG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGxpbmtDbGFzc2lmaWVyOiBMaW5rQ2xhc3NpZmllclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtYXBGYWNhZGU6IE1hcEZhY2FkZSxcbiAgICBwcml2YXRlIG1hcFV0aWxzOiBNYXBVdGlsc1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZilcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZUxpbmtDbGljayhsaW5rOiBEYXRhc2V0RGlzdHJpYnV0aW9uKSB7XG4gICAgY29uc3QgbGF5ZXIgPSBhd2FpdCB0aGlzLmdldExheWVyRnJvbUxpbmsobGluaykudG9Qcm9taXNlKClcbiAgICB0aGlzLm1hcEZhY2FkZS5hZGRMYXllcih7IC4uLmxheWVyLCB0aXRsZTogdGhpcy5yZWNvcmQudGl0bGUgfSlcbiAgfVxuXG4gIGdldExheWVyRnJvbUxpbmsoXG4gICAgbGluazogRGF0YXNldERpc3RyaWJ1dGlvblxuICApOiBPYnNlcnZhYmxlPE1hcENvbnRleHRMYXllck1vZGVsPiB7XG4gICAgaWYgKGxpbmsudHlwZSAhPT0gJ3NlcnZpY2UnKVxuICAgICAgcmV0dXJuIHRocm93RXJyb3IoXG4gICAgICAgICgpID0+ICdtYXAgbGF5ZXIgY291bGQgbm90IGJlIGJ1aWx0IGZvciB0aGlzIGRpc3RyaWJ1dGlvbidcbiAgICAgIClcbiAgICBpZiAobGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3bXMnKSB7XG4gICAgICByZXR1cm4gb2Yoe1xuICAgICAgICB1cmw6IGxpbmsudXJsLnRvU3RyaW5nKCksXG4gICAgICAgIHR5cGU6IE1hcENvbnRleHRMYXllclR5cGVFbnVtLldNUyxcbiAgICAgICAgbmFtZTogbGluay5uYW1lLFxuICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnd210cycpIHtcbiAgICAgIHJldHVybiBvZih7XG4gICAgICAgIHVybDogbGluay51cmwudG9TdHJpbmcoKSxcbiAgICAgICAgdHlwZTogTWFwQ29udGV4dExheWVyVHlwZUVudW0uV01UUyxcbiAgICAgICAgbmFtZTogbGluay5uYW1lLFxuICAgICAgfSlcbiAgICB9XG4gICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gJ3Byb3RvY29sIG5vdCBzdXBwb3J0ZWQnKVxuICB9XG5cbiAgZ2V0TGlua0xhYmVsKGxpbms6IERhdGFzZXREaXN0cmlidXRpb24pIHtcbiAgICByZXR1cm4gZ2V0TGlua0xhYmVsKGxpbmspXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3LWZ1bGwgZmxleCBmbGV4LXJvdyByb3VuZGVkLXNtXCIgW3RpdGxlXT1cInJlY29yZC5hYnN0cmFjdFwiPlxuICA8Z24tdWktdGh1bWJuYWlsXG4gICAgY2xhc3M9XCJ3LTE2IGgtMTYgc2hyaW5rLTAgYm9yZGVyLXIgYm9yZGVyLWdyYXktMjAwIGJnLWdyYXktMTAwXCJcbiAgICBbdGh1bWJuYWlsVXJsXT1cInJlY29yZC5vdmVydmlld3M/LlswXT8udXJsLnRvU3RyaW5nKClcIlxuICA+PC9nbi11aS10aHVtYm5haWw+XG5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgcC0yIGdhcC0yIG92ZXJmbG93LWhpZGRlblwiPlxuICAgIDxoMSBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW0gdHJ1bmNhdGVcIj5cbiAgICAgIHt7IHJlY29yZC50aXRsZSB9fVxuICAgIDwvaDE+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGluayBvZiBtYXBMaW5rc1wiPlxuICAgICAgPGduLXVpLWJ1dHRvblxuICAgICAgICBbdHlwZV09XCInb3V0bGluZSdcIlxuICAgICAgICAoYnV0dG9uQ2xpY2spPVwiaGFuZGxlTGlua0NsaWNrKGxpbmspXCJcbiAgICAgICAgZXh0cmFDbGFzcz1cIiFweS1bOHB4XSAhcHgtWzEycHhdXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGVmdCB0ZXh0LVsxMnB4XSBsaW5lLWNsYW1wLTJcIj5cbiAgICAgICAgICB7eyBnZXRMaW5rTGFiZWwobGluaykgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2duLXVpLWJ1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,106 @@
1
+ import { ChangeDetectorRef, Component } from '@angular/core';
2
+ import { MapFacade } from '../+state/map.facade';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../+state/map.facade";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@ngx-translate/core";
7
+ import * as i4 from "../../../../../ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component";
8
+ const INVALID_FILE_FORMAT_ERROR_MESSAGE = 'Invalid file format';
9
+ export class AddLayerFromFileComponent {
10
+ constructor(mapFacade, changeDetectorRef) {
11
+ this.mapFacade = mapFacade;
12
+ this.changeDetectorRef = changeDetectorRef;
13
+ this.errorMessage = null;
14
+ this.successMessage = null;
15
+ this.loading = false;
16
+ this.acceptedMimeType = ['.geojson'];
17
+ this.maxFileSize = 5000000;
18
+ }
19
+ async handleFileChange(file) {
20
+ if (!file) {
21
+ this.displayMessage(INVALID_FILE_FORMAT_ERROR_MESSAGE, 'error');
22
+ return;
23
+ }
24
+ if (file.size > this.maxFileSize) {
25
+ this.displayMessage('File size exceeds the limit of 5MB', 'error');
26
+ return;
27
+ }
28
+ await this.addLayer(file);
29
+ }
30
+ async addLayer(file) {
31
+ this.errorMessage = null;
32
+ this.loading = true;
33
+ try {
34
+ if (!this.isFileFormatValid(file)) {
35
+ this.displayMessage(INVALID_FILE_FORMAT_ERROR_MESSAGE, 'error');
36
+ return;
37
+ }
38
+ const fileExtension = this.getFileExtension(file);
39
+ switch (fileExtension) {
40
+ case 'geojson':
41
+ await this.addGeoJsonLayer(file);
42
+ break;
43
+ default:
44
+ this.displayMessage(INVALID_FILE_FORMAT_ERROR_MESSAGE, 'error');
45
+ break;
46
+ }
47
+ }
48
+ catch (error) {
49
+ const err = error;
50
+ this.displayMessage('Error loading file: ' + err.message, 'error');
51
+ }
52
+ finally {
53
+ this.loading = false;
54
+ }
55
+ }
56
+ addGeoJsonLayer(file) {
57
+ return new Promise((resolve, reject) => {
58
+ try {
59
+ const reader = new FileReader();
60
+ reader.onload = () => {
61
+ const result = reader.result;
62
+ const title = file.name.split('.').slice(0, -1).join('.');
63
+ const layerToAdd = {
64
+ type: 'geojson',
65
+ data: result,
66
+ };
67
+ this.mapFacade.addLayer({ ...layerToAdd, title: title });
68
+ this.displayMessage('File successfully added to map', 'success');
69
+ resolve();
70
+ };
71
+ reader.onerror = reject;
72
+ reader.readAsText(file);
73
+ }
74
+ catch (error) {
75
+ reject(error);
76
+ }
77
+ });
78
+ }
79
+ isFileFormatValid(file) {
80
+ const fileExtension = this.getFileExtension(file);
81
+ return this.acceptedMimeType.includes(`.${fileExtension}`);
82
+ }
83
+ getFileExtension(file) {
84
+ return file.name.split('.').pop();
85
+ }
86
+ displayMessage(message, type) {
87
+ if (type === 'success') {
88
+ this.successMessage = message;
89
+ }
90
+ else if (type === 'error') {
91
+ this.errorMessage = message;
92
+ }
93
+ setTimeout(() => {
94
+ this.successMessage = null;
95
+ this.errorMessage = null;
96
+ this.changeDetectorRef.detectChanges();
97
+ }, 5000);
98
+ }
99
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerFromFileComponent, deps: [{ token: i1.MapFacade }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
100
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: AddLayerFromFileComponent, selector: "gn-ui-add-layer-from-file", ngImport: i0, template: "<div class=\"flex flex-col gap-2 my-2\">\n <div class=\"flex items-center gap-4\">\n <div class=\"grow rounded-md border-2 border-gray-200\">\n <gn-ui-drag-and-drop-file-input\n (fileChange)=\"handleFileChange($event)\"\n [accept]=\"acceptedMimeType.join(',')\"\n [placeholder]=\"'map.addFromFile.placeholder' | translate\"\n class=\"placeholder-grey\"\n ></gn-ui-drag-and-drop-file-input>\n </div>\n </div>\n <p class=\"text-sm text-gray-600\" translate>map.help.addFromFile</p>\n</div>\n\n<div *ngIf=\"errorMessage\" class=\"text-red-500 mt-2\">\n {{ errorMessage }}\n</div>\n\n<div *ngIf=\"successMessage\" class=\"text-green-500 mt-2\">\n {{ successMessage }}\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i4.DragAndDropFileInputComponent, selector: "gn-ui-drag-and-drop-file-input", inputs: ["placeholder", "accept"], outputs: ["fileChange"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
101
+ }
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerFromFileComponent, decorators: [{
103
+ type: Component,
104
+ args: [{ selector: 'gn-ui-add-layer-from-file', template: "<div class=\"flex flex-col gap-2 my-2\">\n <div class=\"flex items-center gap-4\">\n <div class=\"grow rounded-md border-2 border-gray-200\">\n <gn-ui-drag-and-drop-file-input\n (fileChange)=\"handleFileChange($event)\"\n [accept]=\"acceptedMimeType.join(',')\"\n [placeholder]=\"'map.addFromFile.placeholder' | translate\"\n class=\"placeholder-grey\"\n ></gn-ui-drag-and-drop-file-input>\n </div>\n </div>\n <p class=\"text-sm text-gray-600\" translate>map.help.addFromFile</p>\n</div>\n\n<div *ngIf=\"errorMessage\" class=\"text-red-500 mt-2\">\n {{ errorMessage }}\n</div>\n\n<div *ngIf=\"successMessage\" class=\"text-green-500 mt-2\">\n {{ successMessage }}\n</div>\n" }]
105
+ }], ctorParameters: function () { return [{ type: i1.MapFacade }, { type: i0.ChangeDetectorRef }]; } });
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWxheWVyLWZyb20tZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbWFwL3NyYy9saWIvYWRkLWxheWVyLWZyb20tZmlsZS9hZGQtbGF5ZXItZnJvbS1maWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9hZGQtbGF5ZXItZnJvbS1maWxlL2FkZC1sYXllci1mcm9tLWZpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUU1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7Ozs7OztBQUVoRCxNQUFNLGlDQUFpQyxHQUFHLHFCQUFxQixDQUFBO0FBTy9ELE1BQU0sT0FBTyx5QkFBeUI7SUFPcEMsWUFDVSxTQUFvQixFQUNwQixpQkFBb0M7UUFEcEMsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBUjlDLGlCQUFZLEdBQWtCLElBQUksQ0FBQTtRQUNsQyxtQkFBYyxHQUFrQixJQUFJLENBQUE7UUFDcEMsWUFBTyxHQUFHLEtBQUssQ0FBQTtRQUNOLHFCQUFnQixHQUFHLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDL0IsZ0JBQVcsR0FBRyxPQUFPLENBQUE7SUFLM0IsQ0FBQztJQUVKLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFVO1FBQy9CLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLGlDQUFpQyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQy9ELE9BQU07U0FDUDtRQUNELElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxjQUFjLENBQUMsb0NBQW9DLEVBQUUsT0FBTyxDQUFDLENBQUE7WUFDbEUsT0FBTTtTQUNQO1FBQ0QsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzNCLENBQUM7SUFFTyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQVU7UUFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUE7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUE7UUFDbkIsSUFBSTtZQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxjQUFjLENBQUMsaUNBQWlDLEVBQUUsT0FBTyxDQUFDLENBQUE7Z0JBQy9ELE9BQU07YUFDUDtZQUVELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqRCxRQUFRLGFBQWEsRUFBRTtnQkFDckIsS0FBSyxTQUFTO29CQUNaLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtvQkFDaEMsTUFBSztnQkFDUDtvQkFDRSxJQUFJLENBQUMsY0FBYyxDQUFDLGlDQUFpQyxFQUFFLE9BQU8sQ0FBQyxDQUFBO29CQUMvRCxNQUFLO2FBQ1I7U0FDRjtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsTUFBTSxHQUFHLEdBQUcsS0FBYyxDQUFBO1lBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsc0JBQXNCLEdBQUcsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQTtTQUNuRTtnQkFBUztZQUNSLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO1NBQ3JCO0lBQ0gsQ0FBQztJQUVPLGVBQWUsQ0FBQyxJQUFVO1FBQ2hDLE9BQU8sSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDM0MsSUFBSTtnQkFDRixNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFBO2dCQUMvQixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtvQkFDbkIsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQWdCLENBQUE7b0JBQ3RDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7b0JBQ3pELE1BQU0sVUFBVSxHQUF5Qjt3QkFDdkMsSUFBSSxFQUFFLFNBQVM7d0JBQ2YsSUFBSSxFQUFFLE1BQU07cUJBQ2IsQ0FBQTtvQkFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO29CQUN4RCxJQUFJLENBQUMsY0FBYyxDQUFDLGdDQUFnQyxFQUFFLFNBQVMsQ0FBQyxDQUFBO29CQUNoRSxPQUFPLEVBQUUsQ0FBQTtnQkFDWCxDQUFDLENBQUE7Z0JBQ0QsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUE7Z0JBQ3ZCLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUE7YUFDeEI7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDZCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7YUFDZDtRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVPLGlCQUFpQixDQUFDLElBQVU7UUFDbEMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ2pELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLGFBQWEsRUFBRSxDQUFDLENBQUE7SUFDNUQsQ0FBQztJQUVPLGdCQUFnQixDQUFDLElBQVU7UUFDakMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtJQUNuQyxDQUFDO0lBRU8sY0FBYyxDQUFDLE9BQWUsRUFBRSxJQUF5QjtRQUMvRCxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUE7U0FDOUI7YUFBTSxJQUFJLElBQUksS0FBSyxPQUFPLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUE7U0FDNUI7UUFFRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUE7WUFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUE7WUFDeEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFBO1FBQ3hDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUNWLENBQUM7OEdBOUZVLHlCQUF5QjtrR0FBekIseUJBQXlCLGlFQ1h0QyxvdEJBcUJBOzsyRkRWYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNYXBDb250ZXh0TGF5ZXJNb2RlbCB9IGZyb20gJy4uL21hcC1jb250ZXh0L21hcC1jb250ZXh0Lm1vZGVsJ1xuaW1wb3J0IHsgTWFwRmFjYWRlIH0gZnJvbSAnLi4vK3N0YXRlL21hcC5mYWNhZGUnXG5cbmNvbnN0IElOVkFMSURfRklMRV9GT1JNQVRfRVJST1JfTUVTU0FHRSA9ICdJbnZhbGlkIGZpbGUgZm9ybWF0J1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1hZGQtbGF5ZXItZnJvbS1maWxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1sYXllci1mcm9tLWZpbGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hZGQtbGF5ZXItZnJvbS1maWxlLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQWRkTGF5ZXJGcm9tRmlsZUNvbXBvbmVudCB7XG4gIGVycm9yTWVzc2FnZTogc3RyaW5nIHwgbnVsbCA9IG51bGxcbiAgc3VjY2Vzc01lc3NhZ2U6IHN0cmluZyB8IG51bGwgPSBudWxsXG4gIGxvYWRpbmcgPSBmYWxzZVxuICByZWFkb25seSBhY2NlcHRlZE1pbWVUeXBlID0gWycuZ2VvanNvbiddXG4gIHJlYWRvbmx5IG1heEZpbGVTaXplID0gNTAwMDAwMFxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbWFwRmFjYWRlOiBNYXBGYWNhZGUsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIGFzeW5jIGhhbmRsZUZpbGVDaGFuZ2UoZmlsZTogRmlsZSkge1xuICAgIGlmICghZmlsZSkge1xuICAgICAgdGhpcy5kaXNwbGF5TWVzc2FnZShJTlZBTElEX0ZJTEVfRk9STUFUX0VSUk9SX01FU1NBR0UsICdlcnJvcicpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKGZpbGUuc2l6ZSA+IHRoaXMubWF4RmlsZVNpemUpIHtcbiAgICAgIHRoaXMuZGlzcGxheU1lc3NhZ2UoJ0ZpbGUgc2l6ZSBleGNlZWRzIHRoZSBsaW1pdCBvZiA1TUInLCAnZXJyb3InKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGF3YWl0IHRoaXMuYWRkTGF5ZXIoZmlsZSlcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgYWRkTGF5ZXIoZmlsZTogRmlsZSkge1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gbnVsbFxuICAgIHRoaXMubG9hZGluZyA9IHRydWVcbiAgICB0cnkge1xuICAgICAgaWYgKCF0aGlzLmlzRmlsZUZvcm1hdFZhbGlkKGZpbGUpKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheU1lc3NhZ2UoSU5WQUxJRF9GSUxFX0ZPUk1BVF9FUlJPUl9NRVNTQUdFLCAnZXJyb3InKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IHRoaXMuZ2V0RmlsZUV4dGVuc2lvbihmaWxlKVxuICAgICAgc3dpdGNoIChmaWxlRXh0ZW5zaW9uKSB7XG4gICAgICAgIGNhc2UgJ2dlb2pzb24nOlxuICAgICAgICAgIGF3YWl0IHRoaXMuYWRkR2VvSnNvbkxheWVyKGZpbGUpXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aGlzLmRpc3BsYXlNZXNzYWdlKElOVkFMSURfRklMRV9GT1JNQVRfRVJST1JfTUVTU0FHRSwgJ2Vycm9yJylcbiAgICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zdCBlcnIgPSBlcnJvciBhcyBFcnJvclxuICAgICAgdGhpcy5kaXNwbGF5TWVzc2FnZSgnRXJyb3IgbG9hZGluZyBmaWxlOiAnICsgZXJyLm1lc3NhZ2UsICdlcnJvcicpXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRHZW9Kc29uTGF5ZXIoZmlsZTogRmlsZSkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpXG4gICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gcmVhZGVyLnJlc3VsdCBhcyBzdHJpbmdcbiAgICAgICAgICBjb25zdCB0aXRsZSA9IGZpbGUubmFtZS5zcGxpdCgnLicpLnNsaWNlKDAsIC0xKS5qb2luKCcuJylcbiAgICAgICAgICBjb25zdCBsYXllclRvQWRkOiBNYXBDb250ZXh0TGF5ZXJNb2RlbCA9IHtcbiAgICAgICAgICAgIHR5cGU6ICdnZW9qc29uJyxcbiAgICAgICAgICAgIGRhdGE6IHJlc3VsdCxcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5tYXBGYWNhZGUuYWRkTGF5ZXIoeyAuLi5sYXllclRvQWRkLCB0aXRsZTogdGl0bGUgfSlcbiAgICAgICAgICB0aGlzLmRpc3BsYXlNZXNzYWdlKCdGaWxlIHN1Y2Nlc3NmdWxseSBhZGRlZCB0byBtYXAnLCAnc3VjY2VzcycpXG4gICAgICAgICAgcmVzb2x2ZSgpXG4gICAgICAgIH1cbiAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSByZWplY3RcbiAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQoZmlsZSlcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHJlamVjdChlcnJvcilcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBpc0ZpbGVGb3JtYXRWYWxpZChmaWxlOiBGaWxlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IHRoaXMuZ2V0RmlsZUV4dGVuc2lvbihmaWxlKVxuICAgIHJldHVybiB0aGlzLmFjY2VwdGVkTWltZVR5cGUuaW5jbHVkZXMoYC4ke2ZpbGVFeHRlbnNpb259YClcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmlsZUV4dGVuc2lvbihmaWxlOiBGaWxlKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gZmlsZS5uYW1lLnNwbGl0KCcuJykucG9wKClcbiAgfVxuXG4gIHByaXZhdGUgZGlzcGxheU1lc3NhZ2UobWVzc2FnZTogc3RyaW5nLCB0eXBlOiAnc3VjY2VzcycgfCAnZXJyb3InKSB7XG4gICAgaWYgKHR5cGUgPT09ICdzdWNjZXNzJykge1xuICAgICAgdGhpcy5zdWNjZXNzTWVzc2FnZSA9IG1lc3NhZ2VcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdlcnJvcicpIHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gbWVzc2FnZVxuICAgIH1cblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zdWNjZXNzTWVzc2FnZSA9IG51bGxcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gbnVsbFxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICB9LCA1MDAwKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMiBteS0yXCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNFwiPlxuICAgIDxkaXYgY2xhc3M9XCJncm93IHJvdW5kZWQtbWQgYm9yZGVyLTIgYm9yZGVyLWdyYXktMjAwXCI+XG4gICAgICA8Z24tdWktZHJhZy1hbmQtZHJvcC1maWxlLWlucHV0XG4gICAgICAgIChmaWxlQ2hhbmdlKT1cImhhbmRsZUZpbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFthY2NlcHRdPVwiYWNjZXB0ZWRNaW1lVHlwZS5qb2luKCcsJylcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ21hcC5hZGRGcm9tRmlsZS5wbGFjZWhvbGRlcicgfCB0cmFuc2xhdGVcIlxuICAgICAgICBjbGFzcz1cInBsYWNlaG9sZGVyLWdyZXlcIlxuICAgICAgPjwvZ24tdWktZHJhZy1hbmQtZHJvcC1maWxlLWlucHV0PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPHAgY2xhc3M9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDBcIiB0cmFuc2xhdGU+bWFwLmhlbHAuYWRkRnJvbUZpbGU8L3A+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cImVycm9yTWVzc2FnZVwiIGNsYXNzPVwidGV4dC1yZWQtNTAwIG10LTJcIj5cbiAge3sgZXJyb3JNZXNzYWdlIH19XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cInN1Y2Nlc3NNZXNzYWdlXCIgY2xhc3M9XCJ0ZXh0LWdyZWVuLTUwMCBtdC0yXCI+XG4gIHt7IHN1Y2Nlc3NNZXNzYWdlIH19XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,72 @@
1
+ import { Component, Output, EventEmitter, Input, ChangeDetectorRef, } from '@angular/core';
2
+ import { OgcApiEndpoint } from '@camptocamp/ogc-client';
3
+ import { Subject, debounceTime } from 'rxjs';
4
+ import { MapContextLayerTypeEnum, } from '../map-context/map-context.model';
5
+ import { TranslateModule } from '@ngx-translate/core';
6
+ import { UiInputsModule } from '../../../../../../libs/ui/inputs/src';
7
+ import { CommonModule } from '@angular/common';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/common";
10
+ import * as i2 from "@ngx-translate/core";
11
+ import * as i3 from "../../../../../ui/inputs/src/lib/button/button.component";
12
+ import * as i4 from "../../../../../ui/inputs/src/lib/text-input/text-input.component";
13
+ export class AddLayerFromOgcApiComponent {
14
+ constructor(changeDetectorRef) {
15
+ this.changeDetectorRef = changeDetectorRef;
16
+ this.layerAdded = new EventEmitter();
17
+ this.urlChange = new Subject();
18
+ this.layerUrl = '';
19
+ this.loading = false;
20
+ this.layers = [];
21
+ this.ogcEndpoint = null;
22
+ this.errorMessage = null;
23
+ }
24
+ ngOnInit() {
25
+ this.urlChange.pipe(debounceTime(700)).subscribe(() => {
26
+ this.loadLayers();
27
+ this.changeDetectorRef.detectChanges(); // manually trigger change detection
28
+ });
29
+ }
30
+ async loadLayers() {
31
+ this.errorMessage = null;
32
+ try {
33
+ this.loading = true;
34
+ if (this.ogcUrl.trim() === '') {
35
+ this.layers = [];
36
+ return;
37
+ }
38
+ this.ogcEndpoint = await new OgcApiEndpoint(this.ogcUrl);
39
+ // Currently only supports feature collections
40
+ this.layers = await this.ogcEndpoint.featureCollections;
41
+ }
42
+ catch (error) {
43
+ const err = error;
44
+ this.layers = [];
45
+ this.errorMessage = 'Error loading layers: ' + err.message;
46
+ }
47
+ finally {
48
+ this.loading = false;
49
+ this.changeDetectorRef.markForCheck();
50
+ }
51
+ }
52
+ async addLayer(layer) {
53
+ this.layerUrl = await this.ogcEndpoint.getCollectionItemsUrl(layer);
54
+ const layerToAdd = {
55
+ name: layer,
56
+ url: this.layerUrl,
57
+ type: MapContextLayerTypeEnum.OGCAPI,
58
+ };
59
+ this.layerAdded.emit({ ...layerToAdd, title: layer });
60
+ }
61
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerFromOgcApiComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
62
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: AddLayerFromOgcApiComponent, isStandalone: true, selector: "gn-ui-add-layer-from-ogc-api", inputs: { ogcUrl: "ogcUrl" }, outputs: { layerAdded: "layerAdded" }, ngImport: i0, template: "<div class=\"flex items-center mb-5\">\n <gn-ui-text-input\n [(value)]=\"ogcUrl\"\n (valueChange)=\"urlChange.next($event)\"\n [hint]=\"'map.ogc.urlInput.hint' | translate\"\n class=\"w-96\"\n >\n </gn-ui-text-input>\n</div>\n\n<div *ngIf=\"errorMessage\" class=\"text-red-500 mt-2\">\n {{ errorMessage }}\n</div>\n\n<div *ngIf=\"loading\">\n <p class=\"loading-message\" translate>map.loading.service</p>\n</div>\n\n<div *ngIf=\"!loading && layers.length > 0\">\n <h2 class=\"font-bold\" translate>map.layers.available</h2>\n <ng-container *ngFor=\"let layer of layers\">\n <div class=\"flex items-center justify-between my-2 layer-item-tree\">\n <p class=\"max-w-xs overflow-hidden overflow-ellipsis whitespace-nowrap\">\n {{ layer }}\n </p>\n <gn-ui-button\n class=\"layer-add-btn\"\n type=\"primary\"\n (buttonClick)=\"addLayer(layer)\"\n extraClass=\"text-sm !px-2 !py-1\"\n translate\n ><span translate> map.layer.add </span></gn-ui-button\n >\n </div>\n </ng-container>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: i3.ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: i4.TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "hint", "required"], outputs: ["valueChange"] }] }); }
63
+ }
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerFromOgcApiComponent, decorators: [{
65
+ type: Component,
66
+ args: [{ selector: 'gn-ui-add-layer-from-ogc-api', standalone: true, imports: [CommonModule, TranslateModule, UiInputsModule], template: "<div class=\"flex items-center mb-5\">\n <gn-ui-text-input\n [(value)]=\"ogcUrl\"\n (valueChange)=\"urlChange.next($event)\"\n [hint]=\"'map.ogc.urlInput.hint' | translate\"\n class=\"w-96\"\n >\n </gn-ui-text-input>\n</div>\n\n<div *ngIf=\"errorMessage\" class=\"text-red-500 mt-2\">\n {{ errorMessage }}\n</div>\n\n<div *ngIf=\"loading\">\n <p class=\"loading-message\" translate>map.loading.service</p>\n</div>\n\n<div *ngIf=\"!loading && layers.length > 0\">\n <h2 class=\"font-bold\" translate>map.layers.available</h2>\n <ng-container *ngFor=\"let layer of layers\">\n <div class=\"flex items-center justify-between my-2 layer-item-tree\">\n <p class=\"max-w-xs overflow-hidden overflow-ellipsis whitespace-nowrap\">\n {{ layer }}\n </p>\n <gn-ui-button\n class=\"layer-add-btn\"\n type=\"primary\"\n (buttonClick)=\"addLayer(layer)\"\n extraClass=\"text-sm !px-2 !py-1\"\n translate\n ><span translate> map.layer.add </span></gn-ui-button\n >\n </div>\n </ng-container>\n</div>\n" }]
67
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { ogcUrl: [{
68
+ type: Input
69
+ }], layerAdded: [{
70
+ type: Output
71
+ }] } });
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWxheWVyLWZyb20tb2djLWFwaS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbWFwL3NyYy9saWIvYWRkLWxheWVyLWZyb20tb2djLWFwaS9hZGQtbGF5ZXItZnJvbS1vZ2MtYXBpLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9hZGQtbGF5ZXItZnJvbS1vZ2MtYXBpL2FkZC1sYXllci1mcm9tLW9nYy1hcGkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxNQUFNLEVBQ04sWUFBWSxFQUVaLEtBQUssRUFDTCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzVDLE9BQU8sRUFFTCx1QkFBdUIsR0FDeEIsTUFBTSxrQ0FBa0MsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTs7Ozs7O0FBVTlDLE1BQU0sT0FBTywyQkFBMkI7SUFXdEMsWUFBb0IsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFUOUMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFZLENBQUE7UUFFbkQsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFVLENBQUE7UUFDakMsYUFBUSxHQUFHLEVBQUUsQ0FBQTtRQUNiLFlBQU8sR0FBRyxLQUFLLENBQUE7UUFDZixXQUFNLEdBQWEsRUFBRSxDQUFBO1FBQ3JCLGdCQUFXLEdBQW1CLElBQUksQ0FBQTtRQUNsQyxpQkFBWSxHQUFrQixJQUFJLENBQUE7SUFFeUIsQ0FBQztJQUU1RCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNwRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7WUFDakIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFBLENBQUMsb0NBQW9DO1FBQzdFLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVO1FBQ2QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUE7UUFDeEIsSUFBSTtZQUNGLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFBO1lBQ25CLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFBO2dCQUNoQixPQUFNO2FBQ1A7WUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBRXhELDhDQUE4QztZQUM5QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQTtTQUN4RDtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsTUFBTSxHQUFHLEdBQUcsS0FBYyxDQUFBO1lBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFBO1lBQ2hCLElBQUksQ0FBQyxZQUFZLEdBQUcsd0JBQXdCLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQTtTQUMzRDtnQkFBUztZQUNSLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO1lBQ3BCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtTQUN0QztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQWE7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFbkUsTUFBTSxVQUFVLEdBQXlCO1lBQ3ZDLElBQUksRUFBRSxLQUFLO1lBQ1gsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ2xCLElBQUksRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1NBQ3JDLENBQUE7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO0lBQ3ZELENBQUM7OEdBbkRVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLDZKQzNCeEMsMmpDQW9DQSx5RERYWSxZQUFZLCtQQUFFLGVBQWUsa09BQUUsY0FBYzs7MkZBRTVDLDJCQUEyQjtrQkFQdkMsU0FBUzsrQkFDRSw4QkFBOEIsY0FHNUIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxjQUFjLENBQUM7d0dBRy9DLE1BQU07c0JBQWQsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgSW5wdXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgT2djQXBpRW5kcG9pbnQgfSBmcm9tICdAY2FtcHRvY2FtcC9vZ2MtY2xpZW50J1xuaW1wb3J0IHsgU3ViamVjdCwgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcydcbmltcG9ydCB7XG4gIE1hcENvbnRleHRMYXllck1vZGVsLFxuICBNYXBDb250ZXh0TGF5ZXJUeXBlRW51bSxcbn0gZnJvbSAnLi4vbWFwLWNvbnRleHQvbWFwLWNvbnRleHQubW9kZWwnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgVWlJbnB1dHNNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBNYXBMYXllciB9IGZyb20gJy4uLytzdGF0ZS9tYXAubW9kZWxzJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1hZGQtbGF5ZXItZnJvbS1vZ2MtYXBpJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1sYXllci1mcm9tLW9nYy1hcGkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hZGQtbGF5ZXItZnJvbS1vZ2MtYXBpLmNvbXBvbmVudC5jc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBVaUlucHV0c01vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIEFkZExheWVyRnJvbU9nY0FwaUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIG9nY1VybDogc3RyaW5nXG4gIEBPdXRwdXQoKSBsYXllckFkZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxNYXBMYXllcj4oKVxuXG4gIHVybENoYW5nZSA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKVxuICBsYXllclVybCA9ICcnXG4gIGxvYWRpbmcgPSBmYWxzZVxuICBsYXllcnM6IHN0cmluZ1tdID0gW11cbiAgb2djRW5kcG9pbnQ6IE9nY0FwaUVuZHBvaW50ID0gbnVsbFxuICBlcnJvck1lc3NhZ2U6IHN0cmluZyB8IG51bGwgPSBudWxsXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy51cmxDaGFuZ2UucGlwZShkZWJvdW5jZVRpbWUoNzAwKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMubG9hZExheWVycygpXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKSAvLyBtYW51YWxseSB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb25cbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgbG9hZExheWVycygpIHtcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IG51bGxcbiAgICB0cnkge1xuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZVxuICAgICAgaWYgKHRoaXMub2djVXJsLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgICAgdGhpcy5sYXllcnMgPSBbXVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIHRoaXMub2djRW5kcG9pbnQgPSBhd2FpdCBuZXcgT2djQXBpRW5kcG9pbnQodGhpcy5vZ2NVcmwpXG5cbiAgICAgIC8vIEN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIGZlYXR1cmUgY29sbGVjdGlvbnNcbiAgICAgIHRoaXMubGF5ZXJzID0gYXdhaXQgdGhpcy5vZ2NFbmRwb2ludC5mZWF0dXJlQ29sbGVjdGlvbnNcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc3QgZXJyID0gZXJyb3IgYXMgRXJyb3JcbiAgICAgIHRoaXMubGF5ZXJzID0gW11cbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0Vycm9yIGxvYWRpbmcgbGF5ZXJzOiAnICsgZXJyLm1lc3NhZ2VcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2VcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKClcbiAgICB9XG4gIH1cblxuICBhc3luYyBhZGRMYXllcihsYXllcjogc3RyaW5nKSB7XG4gICAgdGhpcy5sYXllclVybCA9IGF3YWl0IHRoaXMub2djRW5kcG9pbnQuZ2V0Q29sbGVjdGlvbkl0ZW1zVXJsKGxheWVyKVxuXG4gICAgY29uc3QgbGF5ZXJUb0FkZDogTWFwQ29udGV4dExheWVyTW9kZWwgPSB7XG4gICAgICBuYW1lOiBsYXllcixcbiAgICAgIHVybDogdGhpcy5sYXllclVybCxcbiAgICAgIHR5cGU6IE1hcENvbnRleHRMYXllclR5cGVFbnVtLk9HQ0FQSSxcbiAgICB9XG4gICAgdGhpcy5sYXllckFkZGVkLmVtaXQoeyAuLi5sYXllclRvQWRkLCB0aXRsZTogbGF5ZXIgfSlcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG1iLTVcIj5cbiAgPGduLXVpLXRleHQtaW5wdXRcbiAgICBbKHZhbHVlKV09XCJvZ2NVcmxcIlxuICAgICh2YWx1ZUNoYW5nZSk9XCJ1cmxDaGFuZ2UubmV4dCgkZXZlbnQpXCJcbiAgICBbaGludF09XCInbWFwLm9nYy51cmxJbnB1dC5oaW50JyB8IHRyYW5zbGF0ZVwiXG4gICAgY2xhc3M9XCJ3LTk2XCJcbiAgPlxuICA8L2duLXVpLXRleHQtaW5wdXQ+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cImVycm9yTWVzc2FnZVwiIGNsYXNzPVwidGV4dC1yZWQtNTAwIG10LTJcIj5cbiAge3sgZXJyb3JNZXNzYWdlIH19XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cImxvYWRpbmdcIj5cbiAgPHAgY2xhc3M9XCJsb2FkaW5nLW1lc3NhZ2VcIiB0cmFuc2xhdGU+bWFwLmxvYWRpbmcuc2VydmljZTwvcD5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwiIWxvYWRpbmcgJiYgbGF5ZXJzLmxlbmd0aCA+IDBcIj5cbiAgPGgyIGNsYXNzPVwiZm9udC1ib2xkXCIgdHJhbnNsYXRlPm1hcC5sYXllcnMuYXZhaWxhYmxlPC9oMj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGF5ZXIgb2YgbGF5ZXJzXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBteS0yIGxheWVyLWl0ZW0tdHJlZVwiPlxuICAgICAgPHAgY2xhc3M9XCJtYXgtdy14cyBvdmVyZmxvdy1oaWRkZW4gb3ZlcmZsb3ctZWxsaXBzaXMgd2hpdGVzcGFjZS1ub3dyYXBcIj5cbiAgICAgICAge3sgbGF5ZXIgfX1cbiAgICAgIDwvcD5cbiAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgY2xhc3M9XCJsYXllci1hZGQtYnRuXCJcbiAgICAgICAgdHlwZT1cInByaW1hcnlcIlxuICAgICAgICAoYnV0dG9uQ2xpY2spPVwiYWRkTGF5ZXIobGF5ZXIpXCJcbiAgICAgICAgZXh0cmFDbGFzcz1cInRleHQtc20gIXB4LTIgIXB5LTFcIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgPjxzcGFuIHRyYW5zbGF0ZT4gbWFwLmxheWVyLmFkZCA8L3NwYW4+PC9nbi11aS1idXR0b25cbiAgICAgID5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,64 @@
1
+ import { ChangeDetectorRef, Component } from '@angular/core';
2
+ import { WfsEndpoint } from '@camptocamp/ogc-client';
3
+ import { Subject } from 'rxjs';
4
+ import { MapContextLayerTypeEnum, } from '../map-context/map-context.model';
5
+ import { MapFacade } from '../+state/map.facade';
6
+ import { debounceTime } from 'rxjs/operators';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../+state/map.facade";
9
+ import * as i2 from "@angular/common";
10
+ import * as i3 from "@ngx-translate/core";
11
+ import * as i4 from "../../../../../ui/inputs/src/lib/button/button.component";
12
+ import * as i5 from "../../../../../ui/inputs/src/lib/text-input/text-input.component";
13
+ export class AddLayerFromWfsComponent {
14
+ constructor(mapFacade, changeDetectorRef) {
15
+ this.mapFacade = mapFacade;
16
+ this.changeDetectorRef = changeDetectorRef;
17
+ this.wfsUrl = '';
18
+ this.loading = false;
19
+ this.layers = [];
20
+ this.wfsEndpoint = null;
21
+ this.urlChange = new Subject();
22
+ this.errorMessage = null;
23
+ }
24
+ ngOnInit() {
25
+ this.urlChange.pipe(debounceTime(700)).subscribe(() => this.loadLayers());
26
+ }
27
+ async loadLayers() {
28
+ this.errorMessage = null;
29
+ try {
30
+ this.loading = true;
31
+ if (this.wfsUrl.trim() === '') {
32
+ this.layers = [];
33
+ return;
34
+ }
35
+ this.wfsEndpoint = await new WfsEndpoint(this.wfsUrl).isReady();
36
+ this.layers = this.wfsEndpoint.getFeatureTypes();
37
+ console.log(this.layers);
38
+ }
39
+ catch (error) {
40
+ const err = error;
41
+ this.layers = [];
42
+ this.errorMessage = 'Error loading layers: ' + err.message;
43
+ }
44
+ finally {
45
+ this.loading = false;
46
+ this.changeDetectorRef.markForCheck();
47
+ }
48
+ }
49
+ addLayer(layer) {
50
+ const layerToAdd = {
51
+ name: layer.name,
52
+ url: this.wfsUrl.toString(),
53
+ type: MapContextLayerTypeEnum.WFS,
54
+ };
55
+ this.mapFacade.addLayer({ ...layerToAdd, title: layer.title });
56
+ }
57
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerFromWfsComponent, deps: [{ token: i1.MapFacade }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
58
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: AddLayerFromWfsComponent, selector: "gn-ui-add-layer-from-wfs", ngImport: i0, template: "<div class=\"flex items-center mb-5\">\n <gn-ui-text-input\n [(value)]=\"wfsUrl\"\n (valueChange)=\"urlChange.next($event)\"\n [hint]=\"'map.wfs.urlInput.hint' | translate\"\n class=\"w-96\"\n >\n </gn-ui-text-input>\n</div>\n\n<div *ngIf=\"errorMessage\" class=\"text-red-500 mt-2\">\n {{ errorMessage }}\n</div>\n\n<div *ngIf=\"loading\">\n <p class=\"loading-message\" translate>map.loading.service</p>\n</div>\n\n<div *ngIf=\"!loading && layers.length > 0\">\n <h2 class=\"font-bold\" translate>map.layers.available</h2>\n <ng-container *ngFor=\"let layer of layers\">\n <div class=\"flex items-center justify-between my-2 layer-item-tree\">\n <p class=\"max-w-xs overflow-hidden overflow-ellipsis whitespace-nowrap\">\n {{ layer.title }}\n </p>\n <gn-ui-button\n *ngIf=\"layer.name\"\n class=\"layer-add-btn\"\n type=\"primary\"\n (buttonClick)=\"addLayer(layer)\"\n extraClass=\"text-sm !px-2 !py-1\"\n translate\n ><span translate> map.layer.add </span></gn-ui-button\n >\n </div>\n </ng-container>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i4.ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: i5.TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "hint", "required"], outputs: ["valueChange"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
59
+ }
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerFromWfsComponent, decorators: [{
61
+ type: Component,
62
+ args: [{ selector: 'gn-ui-add-layer-from-wfs', template: "<div class=\"flex items-center mb-5\">\n <gn-ui-text-input\n [(value)]=\"wfsUrl\"\n (valueChange)=\"urlChange.next($event)\"\n [hint]=\"'map.wfs.urlInput.hint' | translate\"\n class=\"w-96\"\n >\n </gn-ui-text-input>\n</div>\n\n<div *ngIf=\"errorMessage\" class=\"text-red-500 mt-2\">\n {{ errorMessage }}\n</div>\n\n<div *ngIf=\"loading\">\n <p class=\"loading-message\" translate>map.loading.service</p>\n</div>\n\n<div *ngIf=\"!loading && layers.length > 0\">\n <h2 class=\"font-bold\" translate>map.layers.available</h2>\n <ng-container *ngFor=\"let layer of layers\">\n <div class=\"flex items-center justify-between my-2 layer-item-tree\">\n <p class=\"max-w-xs overflow-hidden overflow-ellipsis whitespace-nowrap\">\n {{ layer.title }}\n </p>\n <gn-ui-button\n *ngIf=\"layer.name\"\n class=\"layer-add-btn\"\n type=\"primary\"\n (buttonClick)=\"addLayer(layer)\"\n extraClass=\"text-sm !px-2 !py-1\"\n translate\n ><span translate> map.layer.add </span></gn-ui-button\n >\n </div>\n </ng-container>\n</div>\n" }]
63
+ }], ctorParameters: function () { return [{ type: i1.MapFacade }, { type: i0.ChangeDetectorRef }]; } });
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWxheWVyLWZyb20td2ZzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9hZGQtbGF5ZXItZnJvbS13ZnMvYWRkLWxheWVyLWZyb20td2ZzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9hZGQtbGF5ZXItZnJvbS13ZnMvYWRkLWxheWVyLWZyb20td2ZzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUE7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBdUIsTUFBTSx3QkFBd0IsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzlCLE9BQU8sRUFFTCx1QkFBdUIsR0FDeEIsTUFBTSxrQ0FBa0MsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFBOzs7Ozs7O0FBTzdDLE1BQU0sT0FBTyx3QkFBd0I7SUFRbkMsWUFDVSxTQUFvQixFQUNwQixpQkFBb0M7UUFEcEMsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBVDlDLFdBQU0sR0FBRyxFQUFFLENBQUE7UUFDWCxZQUFPLEdBQUcsS0FBSyxDQUFBO1FBQ2YsV0FBTSxHQUEwQixFQUFFLENBQUE7UUFDbEMsZ0JBQVcsR0FBdUIsSUFBSSxDQUFBO1FBQ3RDLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFBO1FBQ2pDLGlCQUFZLEdBQWtCLElBQUksQ0FBQTtJQUsvQixDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQTtJQUMzRSxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVU7UUFDZCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQTtRQUN4QixJQUFJO1lBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUE7WUFFbkIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUE7Z0JBQ2hCLE9BQU07YUFDUDtZQUVELElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUE7WUFDL0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFBO1lBQ2hELE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1NBQ3pCO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxNQUFNLEdBQUcsR0FBRyxLQUFjLENBQUE7WUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUE7WUFDaEIsSUFBSSxDQUFDLFlBQVksR0FBRyx3QkFBd0IsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFBO1NBQzNEO2dCQUFTO1lBQ1IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUE7WUFDcEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFBO1NBQ3RDO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUEwQjtRQUNqQyxNQUFNLFVBQVUsR0FBeUI7WUFDdkMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtZQUMzQixJQUFJLEVBQUUsdUJBQXVCLENBQUMsR0FBRztTQUNsQyxDQUFBO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLFVBQVUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUE7SUFDaEUsQ0FBQzs4R0EvQ1Usd0JBQXdCO2tHQUF4Qix3QkFBd0IsZ0VDZnJDLCtsQ0FxQ0E7OzJGRHRCYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0UsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFdmc0VuZHBvaW50LCBXZnNGZWF0dXJlVHlwZUJyaWVmIH0gZnJvbSAnQGNhbXB0b2NhbXAvb2djLWNsaWVudCdcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHtcbiAgTWFwQ29udGV4dExheWVyTW9kZWwsXG4gIE1hcENvbnRleHRMYXllclR5cGVFbnVtLFxufSBmcm9tICcuLi9tYXAtY29udGV4dC9tYXAtY29udGV4dC5tb2RlbCdcbmltcG9ydCB7IE1hcEZhY2FkZSB9IGZyb20gJy4uLytzdGF0ZS9tYXAuZmFjYWRlJ1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWFkZC1sYXllci1mcm9tLXdmcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtbGF5ZXItZnJvbS13ZnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hZGQtbGF5ZXItZnJvbS13ZnMuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBBZGRMYXllckZyb21XZnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICB3ZnNVcmwgPSAnJ1xuICBsb2FkaW5nID0gZmFsc2VcbiAgbGF5ZXJzOiBXZnNGZWF0dXJlVHlwZUJyaWVmW10gPSBbXVxuICB3ZnNFbmRwb2ludDogV2ZzRW5kcG9pbnQgfCBudWxsID0gbnVsbFxuICB1cmxDaGFuZ2UgPSBuZXcgU3ViamVjdDxzdHJpbmc+KClcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmcgfCBudWxsID0gbnVsbFxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbWFwRmFjYWRlOiBNYXBGYWNhZGUsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudXJsQ2hhbmdlLnBpcGUoZGVib3VuY2VUaW1lKDcwMCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmxvYWRMYXllcnMoKSlcbiAgfVxuXG4gIGFzeW5jIGxvYWRMYXllcnMoKSB7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBudWxsXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWVcblxuICAgICAgaWYgKHRoaXMud2ZzVXJsLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgICAgdGhpcy5sYXllcnMgPSBbXVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgdGhpcy53ZnNFbmRwb2ludCA9IGF3YWl0IG5ldyBXZnNFbmRwb2ludCh0aGlzLndmc1VybCkuaXNSZWFkeSgpXG4gICAgICB0aGlzLmxheWVycyA9IHRoaXMud2ZzRW5kcG9pbnQuZ2V0RmVhdHVyZVR5cGVzKClcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMubGF5ZXJzKVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zdCBlcnIgPSBlcnJvciBhcyBFcnJvclxuICAgICAgdGhpcy5sYXllcnMgPSBbXVxuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnRXJyb3IgbG9hZGluZyBsYXllcnM6ICcgKyBlcnIubWVzc2FnZVxuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZVxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKVxuICAgIH1cbiAgfVxuXG4gIGFkZExheWVyKGxheWVyOiBXZnNGZWF0dXJlVHlwZUJyaWVmKSB7XG4gICAgY29uc3QgbGF5ZXJUb0FkZDogTWFwQ29udGV4dExheWVyTW9kZWwgPSB7XG4gICAgICBuYW1lOiBsYXllci5uYW1lLFxuICAgICAgdXJsOiB0aGlzLndmc1VybC50b1N0cmluZygpLFxuICAgICAgdHlwZTogTWFwQ29udGV4dExheWVyVHlwZUVudW0uV0ZTLFxuICAgIH1cbiAgICB0aGlzLm1hcEZhY2FkZS5hZGRMYXllcih7IC4uLmxheWVyVG9BZGQsIHRpdGxlOiBsYXllci50aXRsZSB9KVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgbWItNVwiPlxuICA8Z24tdWktdGV4dC1pbnB1dFxuICAgIFsodmFsdWUpXT1cIndmc1VybFwiXG4gICAgKHZhbHVlQ2hhbmdlKT1cInVybENoYW5nZS5uZXh0KCRldmVudClcIlxuICAgIFtoaW50XT1cIidtYXAud2ZzLnVybElucHV0LmhpbnQnIHwgdHJhbnNsYXRlXCJcbiAgICBjbGFzcz1cInctOTZcIlxuICA+XG4gIDwvZ24tdWktdGV4dC1pbnB1dD5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwiZXJyb3JNZXNzYWdlXCIgY2xhc3M9XCJ0ZXh0LXJlZC01MDAgbXQtMlwiPlxuICB7eyBlcnJvck1lc3NhZ2UgfX1cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwibG9hZGluZ1wiPlxuICA8cCBjbGFzcz1cImxvYWRpbmctbWVzc2FnZVwiIHRyYW5zbGF0ZT5tYXAubG9hZGluZy5zZXJ2aWNlPC9wPlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCIhbG9hZGluZyAmJiBsYXllcnMubGVuZ3RoID4gMFwiPlxuICA8aDIgY2xhc3M9XCJmb250LWJvbGRcIiB0cmFuc2xhdGU+bWFwLmxheWVycy5hdmFpbGFibGU8L2gyPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBsYXllciBvZiBsYXllcnNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG15LTIgbGF5ZXItaXRlbS10cmVlXCI+XG4gICAgICA8cCBjbGFzcz1cIm1heC13LXhzIG92ZXJmbG93LWhpZGRlbiBvdmVyZmxvdy1lbGxpcHNpcyB3aGl0ZXNwYWNlLW5vd3JhcFwiPlxuICAgICAgICB7eyBsYXllci50aXRsZSB9fVxuICAgICAgPC9wPlxuICAgICAgPGduLXVpLWJ1dHRvblxuICAgICAgICAqbmdJZj1cImxheWVyLm5hbWVcIlxuICAgICAgICBjbGFzcz1cImxheWVyLWFkZC1idG5cIlxuICAgICAgICB0eXBlPVwicHJpbWFyeVwiXG4gICAgICAgIChidXR0b25DbGljayk9XCJhZGRMYXllcihsYXllcilcIlxuICAgICAgICBleHRyYUNsYXNzPVwidGV4dC1zbSAhcHgtMiAhcHktMVwiXG4gICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICA+PHNwYW4gdHJhbnNsYXRlPiBtYXAubGF5ZXIuYWRkIDwvc3Bhbj48L2duLXVpLWJ1dHRvblxuICAgICAgPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
@@ -1,2 +1,3 @@
1
1
  export * from './map-options';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbWFwL3NyYy9saWIvY29uc3RhbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21hcC1vcHRpb25zJ1xuIl19
2
+ export * from './projections';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbWFwL3NyYy9saWIvY29uc3RhbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUE7QUFDN0IsY0FBYyxlQUFlLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21hcC1vcHRpb25zJ1xuZXhwb3J0ICogZnJvbSAnLi9wcm9qZWN0aW9ucydcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export const LONLAT_CRS_CODES = ['EPSG:4326', 'CRS:84'];
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbWFwL3NyYy9saWIvY29uc3RhbnQvcHJvamVjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgTE9OTEFUX0NSU19DT0RFUyA9IFsnRVBTRzo0MzI2JywgJ0NSUzo4NCddXG4iXX0=
@@ -21,6 +21,11 @@ import { AddLayerRecordPreviewComponent } from './add-layer-from-catalog/add-lay
21
21
  import { UiElementsModule } from '../../../../../libs/ui/elements/src';
22
22
  import { UiInputsModule } from '../../../../../libs/ui/inputs/src';
23
23
  import { AddLayerFromWmsComponent } from './add-layer-from-wms/add-layer-from-wms.component';
24
+ import { AddLayerFromFileComponent } from './add-layer-from-file/add-layer-from-file.component';
25
+ import { AddLayerFromWfsComponent } from './add-layer-from-wfs/add-layer-from-wfs.component';
26
+ import { GeocodingComponent } from './geocoding/geocoding.component';
27
+ import { GEOCODING_PROVIDER } from './geocoding.service';
28
+ import { AddLayerFromOgcApiComponent } from './add-layer-from-ogc-api/add-layer-from-ogc-api.component';
24
29
  import * as i0 from "@angular/core";
25
30
  import * as i1 from "@ngrx/store";
26
31
  import * as i2 from "@ngrx/effects";
@@ -32,24 +37,33 @@ export class FeatureMapModule {
32
37
  AddLayerFromCatalogComponent,
33
38
  MapContainerComponent,
34
39
  AddLayerRecordPreviewComponent,
35
- AddLayerFromWmsComponent], imports: [CommonModule,
40
+ AddLayerFromWmsComponent,
41
+ AddLayerFromFileComponent,
42
+ AddLayerFromWfsComponent,
43
+ GeocodingComponent], imports: [CommonModule,
36
44
  UiMapModule,
37
45
  UiLayoutModule,
38
46
  MatIconModule,
39
47
  MatTabsModule,
40
48
  TranslateModule,
41
49
  FeatureSearchModule, i1.StoreFeatureModule, i2.EffectsFeatureModule, UiElementsModule,
42
- UiInputsModule], exports: [MapContextComponent,
50
+ UiInputsModule,
51
+ AddLayerFromOgcApiComponent], exports: [MapContextComponent,
43
52
  MapInstanceDirective,
44
53
  LayersPanelComponent,
45
54
  AddLayerFromCatalogComponent,
46
- MapContainerComponent] }); }
55
+ MapContainerComponent,
56
+ GeocodingComponent] }); }
47
57
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FeatureMapModule, providers: [
48
58
  {
49
59
  provide: FEATURE_MAP_OPTIONS,
50
60
  useValue: defaultMapOptions,
51
61
  },
52
62
  MapFacade,
63
+ {
64
+ provide: GEOCODING_PROVIDER,
65
+ useValue: ['geonames', { maxRows: 5 }],
66
+ },
53
67
  ], imports: [CommonModule,
54
68
  UiMapModule,
55
69
  UiLayoutModule,
@@ -60,7 +74,8 @@ export class FeatureMapModule {
60
74
  StoreModule.forFeature(fromMap.MAP_FEATURE_KEY, fromMap.mapReducer),
61
75
  EffectsModule.forFeature([MapEffects]),
62
76
  UiElementsModule,
63
- UiInputsModule] }); }
77
+ UiInputsModule,
78
+ AddLayerFromOgcApiComponent] }); }
64
79
  }
65
80
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FeatureMapModule, decorators: [{
66
81
  type: NgModule,
@@ -73,6 +88,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
73
88
  MapContainerComponent,
74
89
  AddLayerRecordPreviewComponent,
75
90
  AddLayerFromWmsComponent,
91
+ AddLayerFromFileComponent,
92
+ AddLayerFromWfsComponent,
93
+ GeocodingComponent,
76
94
  ],
77
95
  exports: [
78
96
  MapContextComponent,
@@ -80,6 +98,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
80
98
  LayersPanelComponent,
81
99
  AddLayerFromCatalogComponent,
82
100
  MapContainerComponent,
101
+ GeocodingComponent,
83
102
  ],
84
103
  imports: [
85
104
  CommonModule,
@@ -93,6 +112,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
93
112
  EffectsModule.forFeature([MapEffects]),
94
113
  UiElementsModule,
95
114
  UiInputsModule,
115
+ AddLayerFromOgcApiComponent,
96
116
  ],
97
117
  providers: [
98
118
  {
@@ -100,7 +120,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
100
120
  useValue: defaultMapOptions,
101
121
  },
102
122
  MapFacade,
123
+ {
124
+ provide: GEOCODING_PROVIDER,
125
+ useValue: ['geonames', { maxRows: 5 }],
126
+ },
103
127
  ],
104
128
  }]
105
129
  }] });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1tYXAubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL21hcC9zcmMvbGliL2ZlYXR1cmUtbWFwLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQ25GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFBO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQTtBQUN4RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDN0MsT0FBTyxLQUFLLE9BQU8sTUFBTSxzQkFBc0IsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQy9FLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNGQUFzRixDQUFBO0FBQ3JJLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQTs7OztBQXdDNUYsTUFBTSxPQUFPLGdCQUFnQjs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsaUJBcEN6QixtQkFBbUI7WUFDbkIsb0JBQW9CO1lBQ3BCLG9CQUFvQjtZQUNwQiw0QkFBNEI7WUFDNUIscUJBQXFCO1lBQ3JCLDhCQUE4QjtZQUM5Qix3QkFBd0IsYUFVeEIsWUFBWTtZQUNaLFdBQVc7WUFDWCxjQUFjO1lBQ2QsYUFBYTtZQUNiLGFBQWE7WUFDYixlQUFlO1lBQ2YsbUJBQW1CLGtEQUduQixnQkFBZ0I7WUFDaEIsY0FBYyxhQWpCZCxtQkFBbUI7WUFDbkIsb0JBQW9CO1lBQ3BCLG9CQUFvQjtZQUNwQiw0QkFBNEI7WUFDNUIscUJBQXFCOytHQXVCWixnQkFBZ0IsYUFSaEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsbUJBQW1CO2dCQUM1QixRQUFRLEVBQUUsaUJBQWlCO2FBQzVCO1lBQ0QsU0FBUztTQUNWLFlBbEJDLFlBQVk7WUFDWixXQUFXO1lBQ1gsY0FBYztZQUNkLGFBQWE7WUFDYixhQUFhO1lBQ2IsZUFBZTtZQUNmLG1CQUFtQjtZQUNuQixXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQztZQUNuRSxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdEMsZ0JBQWdCO1lBQ2hCLGNBQWM7OzJGQVVMLGdCQUFnQjtrQkF0QzVCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQixvQkFBb0I7d0JBQ3BCLDRCQUE0Qjt3QkFDNUIscUJBQXFCO3dCQUNyQiw4QkFBOEI7d0JBQzlCLHdCQUF3QjtxQkFDekI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQixvQkFBb0I7d0JBQ3BCLDRCQUE0Qjt3QkFDNUIscUJBQXFCO3FCQUN0QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQzt3QkFDbkUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO3dCQUN0QyxnQkFBZ0I7d0JBQ2hCLGNBQWM7cUJBQ2Y7b0JBQ0QsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFFBQVEsRUFBRSxpQkFBaUI7eUJBQzVCO3dCQUNELFNBQVM7cUJBQ1Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBVaU1hcE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbWFwL3NyYydcbmltcG9ydCB7IGRlZmF1bHRNYXBPcHRpb25zLCBGRUFUVVJFX01BUF9PUFRJT05TIH0gZnJvbSAnLi9jb25zdGFudCdcbmltcG9ydCB7IE1hcEluc3RhbmNlRGlyZWN0aXZlIH0gZnJvbSAnLi9tYW5hZ2VyL21hcC1pbnN0YW5jZS5kaXJlY3RpdmUnXG5pbXBvcnQgeyBNYXBDb250ZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9tYXAtY29udGV4dC9jb21wb25lbnQvbWFwLWNvbnRleHQuY29tcG9uZW50J1xuaW1wb3J0IHsgTGF5ZXJzUGFuZWxDb21wb25lbnQgfSBmcm9tICcuL2xheWVycy1wYW5lbC9sYXllcnMtcGFuZWwuY29tcG9uZW50J1xuaW1wb3J0IHsgVWlMYXlvdXRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMnXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbidcbmltcG9ydCB7IE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IEFkZExheWVyRnJvbUNhdGFsb2dDb21wb25lbnQgfSBmcm9tICcuL2FkZC1sYXllci1mcm9tLWNhdGFsb2cvYWRkLWxheWVyLWZyb20tY2F0YWxvZy5jb21wb25lbnQnXG5pbXBvcnQgeyBGZWF0dXJlU2VhcmNoTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL3NlYXJjaC9zcmMnXG5pbXBvcnQgeyBTdG9yZU1vZHVsZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJ1xuaW1wb3J0IHsgRWZmZWN0c01vZHVsZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnXG5pbXBvcnQgKiBhcyBmcm9tTWFwIGZyb20gJy4vK3N0YXRlL21hcC5yZWR1Y2VyJ1xuaW1wb3J0IHsgTWFwRWZmZWN0cyB9IGZyb20gJy4vK3N0YXRlL21hcC5lZmZlY3RzJ1xuaW1wb3J0IHsgTWFwRmFjYWRlIH0gZnJvbSAnLi8rc3RhdGUvbWFwLmZhY2FkZSdcbmltcG9ydCB7IE1hcENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vbWFwLWNvbnRhaW5lci9tYXAtY29udGFpbmVyLmNvbXBvbmVudCdcbmltcG9ydCB7IEFkZExheWVyUmVjb3JkUHJldmlld0NvbXBvbmVudCB9IGZyb20gJy4vYWRkLWxheWVyLWZyb20tY2F0YWxvZy9hZGQtbGF5ZXItcmVjb3JkLXByZXZpZXcvYWRkLWxheWVyLXJlY29yZC1wcmV2aWV3LmNvbXBvbmVudCdcbmltcG9ydCB7IFVpRWxlbWVudHNNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYydcbmltcG9ydCB7IFVpSW5wdXRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgQWRkTGF5ZXJGcm9tV21zQ29tcG9uZW50IH0gZnJvbSAnLi9hZGQtbGF5ZXItZnJvbS13bXMvYWRkLWxheWVyLWZyb20td21zLmNvbXBvbmVudCdcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTWFwQ29udGV4dENvbXBvbmVudCxcbiAgICBNYXBJbnN0YW5jZURpcmVjdGl2ZSxcbiAgICBMYXllcnNQYW5lbENvbXBvbmVudCxcbiAgICBBZGRMYXllckZyb21DYXRhbG9nQ29tcG9uZW50LFxuICAgIE1hcENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBBZGRMYXllclJlY29yZFByZXZpZXdDb21wb25lbnQsXG4gICAgQWRkTGF5ZXJGcm9tV21zQ29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgTWFwQ29udGV4dENvbXBvbmVudCxcbiAgICBNYXBJbnN0YW5jZURpcmVjdGl2ZSxcbiAgICBMYXllcnNQYW5lbENvbXBvbmVudCxcbiAgICBBZGRMYXllckZyb21DYXRhbG9nQ29tcG9uZW50LFxuICAgIE1hcENvbnRhaW5lckNvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBVaU1hcE1vZHVsZSxcbiAgICBVaUxheW91dE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdFRhYnNNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIEZlYXR1cmVTZWFyY2hNb2R1bGUsXG4gICAgU3RvcmVNb2R1bGUuZm9yRmVhdHVyZShmcm9tTWFwLk1BUF9GRUFUVVJFX0tFWSwgZnJvbU1hcC5tYXBSZWR1Y2VyKSxcbiAgICBFZmZlY3RzTW9kdWxlLmZvckZlYXR1cmUoW01hcEVmZmVjdHNdKSxcbiAgICBVaUVsZW1lbnRzTW9kdWxlLFxuICAgIFVpSW5wdXRzTW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBGRUFUVVJFX01BUF9PUFRJT05TLFxuICAgICAgdXNlVmFsdWU6IGRlZmF1bHRNYXBPcHRpb25zLFxuICAgIH0sXG4gICAgTWFwRmFjYWRlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGZWF0dXJlTWFwTW9kdWxlIHt9XG4iXX0=
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1tYXAubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL21hcC9zcmMvbGliL2ZlYXR1cmUtbWFwLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQ25GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFBO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQTtBQUN4RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDN0MsT0FBTyxLQUFLLE9BQU8sTUFBTSxzQkFBc0IsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQy9FLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNGQUFzRixDQUFBO0FBQ3JJLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQTtBQUM1RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQTtBQUMvRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQTtBQUM1RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsa0JBQWtCLEVBQXFCLE1BQU0scUJBQXFCLENBQUE7QUFDM0UsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMkRBQTJELENBQUE7Ozs7QUFpRHZHLE1BQU0sT0FBTyxnQkFBZ0I7OEdBQWhCLGdCQUFnQjsrR0FBaEIsZ0JBQWdCLGlCQTdDekIsbUJBQW1CO1lBQ25CLG9CQUFvQjtZQUNwQixvQkFBb0I7WUFDcEIsNEJBQTRCO1lBQzVCLHFCQUFxQjtZQUNyQiw4QkFBOEI7WUFDOUIsd0JBQXdCO1lBQ3hCLHlCQUF5QjtZQUN6Qix3QkFBd0I7WUFDeEIsa0JBQWtCLGFBV2xCLFlBQVk7WUFDWixXQUFXO1lBQ1gsY0FBYztZQUNkLGFBQWE7WUFDYixhQUFhO1lBQ2IsZUFBZTtZQUNmLG1CQUFtQixrREFHbkIsZ0JBQWdCO1lBQ2hCLGNBQWM7WUFDZCwyQkFBMkIsYUFuQjNCLG1CQUFtQjtZQUNuQixvQkFBb0I7WUFDcEIsb0JBQW9CO1lBQ3BCLDRCQUE0QjtZQUM1QixxQkFBcUI7WUFDckIsa0JBQWtCOytHQTRCVCxnQkFBZ0IsYUFaaEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsbUJBQW1CO2dCQUM1QixRQUFRLEVBQUUsaUJBQWlCO2FBQzVCO1lBQ0QsU0FBUztZQUNUO2dCQUNFLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFFBQVEsRUFBRSxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBc0I7YUFDNUQ7U0FDRixZQXZCQyxZQUFZO1lBQ1osV0FBVztZQUNYLGNBQWM7WUFDZCxhQUFhO1lBQ2IsYUFBYTtZQUNiLGVBQWU7WUFDZixtQkFBbUI7WUFDbkIsV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUM7WUFDbkUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3RDLGdCQUFnQjtZQUNoQixjQUFjO1lBQ2QsMkJBQTJCOzsyRkFjbEIsZ0JBQWdCO2tCQS9DNUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLG9CQUFvQjt3QkFDcEIsNEJBQTRCO3dCQUM1QixxQkFBcUI7d0JBQ3JCLDhCQUE4Qjt3QkFDOUIsd0JBQXdCO3dCQUN4Qix5QkFBeUI7d0JBQ3pCLHdCQUF3Qjt3QkFDeEIsa0JBQWtCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLG9CQUFvQjt3QkFDcEIsNEJBQTRCO3dCQUM1QixxQkFBcUI7d0JBQ3JCLGtCQUFrQjtxQkFDbkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUM7d0JBQ25FLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQzt3QkFDdEMsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLDJCQUEyQjtxQkFDNUI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFFBQVEsRUFBRSxpQkFBaUI7eUJBQzVCO3dCQUNELFNBQVM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsUUFBUSxFQUFFLENBQUMsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFzQjt5QkFDNUQ7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBVaU1hcE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbWFwL3NyYydcbmltcG9ydCB7IGRlZmF1bHRNYXBPcHRpb25zLCBGRUFUVVJFX01BUF9PUFRJT05TIH0gZnJvbSAnLi9jb25zdGFudCdcbmltcG9ydCB7IE1hcEluc3RhbmNlRGlyZWN0aXZlIH0gZnJvbSAnLi9tYW5hZ2VyL21hcC1pbnN0YW5jZS5kaXJlY3RpdmUnXG5pbXBvcnQgeyBNYXBDb250ZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9tYXAtY29udGV4dC9jb21wb25lbnQvbWFwLWNvbnRleHQuY29tcG9uZW50J1xuaW1wb3J0IHsgTGF5ZXJzUGFuZWxDb21wb25lbnQgfSBmcm9tICcuL2xheWVycy1wYW5lbC9sYXllcnMtcGFuZWwuY29tcG9uZW50J1xuaW1wb3J0IHsgVWlMYXlvdXRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMnXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbidcbmltcG9ydCB7IE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IEFkZExheWVyRnJvbUNhdGFsb2dDb21wb25lbnQgfSBmcm9tICcuL2FkZC1sYXllci1mcm9tLWNhdGFsb2cvYWRkLWxheWVyLWZyb20tY2F0YWxvZy5jb21wb25lbnQnXG5pbXBvcnQgeyBGZWF0dXJlU2VhcmNoTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL3NlYXJjaC9zcmMnXG5pbXBvcnQgeyBTdG9yZU1vZHVsZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJ1xuaW1wb3J0IHsgRWZmZWN0c01vZHVsZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnXG5pbXBvcnQgKiBhcyBmcm9tTWFwIGZyb20gJy4vK3N0YXRlL21hcC5yZWR1Y2VyJ1xuaW1wb3J0IHsgTWFwRWZmZWN0cyB9IGZyb20gJy4vK3N0YXRlL21hcC5lZmZlY3RzJ1xuaW1wb3J0IHsgTWFwRmFjYWRlIH0gZnJvbSAnLi8rc3RhdGUvbWFwLmZhY2FkZSdcbmltcG9ydCB7IE1hcENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vbWFwLWNvbnRhaW5lci9tYXAtY29udGFpbmVyLmNvbXBvbmVudCdcbmltcG9ydCB7IEFkZExheWVyUmVjb3JkUHJldmlld0NvbXBvbmVudCB9IGZyb20gJy4vYWRkLWxheWVyLWZyb20tY2F0YWxvZy9hZGQtbGF5ZXItcmVjb3JkLXByZXZpZXcvYWRkLWxheWVyLXJlY29yZC1wcmV2aWV3LmNvbXBvbmVudCdcbmltcG9ydCB7IFVpRWxlbWVudHNNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYydcbmltcG9ydCB7IFVpSW5wdXRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgQWRkTGF5ZXJGcm9tV21zQ29tcG9uZW50IH0gZnJvbSAnLi9hZGQtbGF5ZXItZnJvbS13bXMvYWRkLWxheWVyLWZyb20td21zLmNvbXBvbmVudCdcbmltcG9ydCB7IEFkZExheWVyRnJvbUZpbGVDb21wb25lbnQgfSBmcm9tICcuL2FkZC1sYXllci1mcm9tLWZpbGUvYWRkLWxheWVyLWZyb20tZmlsZS5jb21wb25lbnQnXG5pbXBvcnQgeyBBZGRMYXllckZyb21XZnNDb21wb25lbnQgfSBmcm9tICcuL2FkZC1sYXllci1mcm9tLXdmcy9hZGQtbGF5ZXItZnJvbS13ZnMuY29tcG9uZW50J1xuaW1wb3J0IHsgR2VvY29kaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9nZW9jb2RpbmcvZ2VvY29kaW5nLmNvbXBvbmVudCdcbmltcG9ydCB7IEdFT0NPRElOR19QUk9WSURFUiwgR2VvY29kaW5nUHJvdmlkZXIgfSBmcm9tICcuL2dlb2NvZGluZy5zZXJ2aWNlJ1xuaW1wb3J0IHsgQWRkTGF5ZXJGcm9tT2djQXBpQ29tcG9uZW50IH0gZnJvbSAnLi9hZGQtbGF5ZXItZnJvbS1vZ2MtYXBpL2FkZC1sYXllci1mcm9tLW9nYy1hcGkuY29tcG9uZW50J1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBNYXBDb250ZXh0Q29tcG9uZW50LFxuICAgIE1hcEluc3RhbmNlRGlyZWN0aXZlLFxuICAgIExheWVyc1BhbmVsQ29tcG9uZW50LFxuICAgIEFkZExheWVyRnJvbUNhdGFsb2dDb21wb25lbnQsXG4gICAgTWFwQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIEFkZExheWVyUmVjb3JkUHJldmlld0NvbXBvbmVudCxcbiAgICBBZGRMYXllckZyb21XbXNDb21wb25lbnQsXG4gICAgQWRkTGF5ZXJGcm9tRmlsZUNvbXBvbmVudCxcbiAgICBBZGRMYXllckZyb21XZnNDb21wb25lbnQsXG4gICAgR2VvY29kaW5nQ29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgTWFwQ29udGV4dENvbXBvbmVudCxcbiAgICBNYXBJbnN0YW5jZURpcmVjdGl2ZSxcbiAgICBMYXllcnNQYW5lbENvbXBvbmVudCxcbiAgICBBZGRMYXllckZyb21DYXRhbG9nQ29tcG9uZW50LFxuICAgIE1hcENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBHZW9jb2RpbmdDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVWlNYXBNb2R1bGUsXG4gICAgVWlMYXlvdXRNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRUYWJzTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBGZWF0dXJlU2VhcmNoTW9kdWxlLFxuICAgIFN0b3JlTW9kdWxlLmZvckZlYXR1cmUoZnJvbU1hcC5NQVBfRkVBVFVSRV9LRVksIGZyb21NYXAubWFwUmVkdWNlciksXG4gICAgRWZmZWN0c01vZHVsZS5mb3JGZWF0dXJlKFtNYXBFZmZlY3RzXSksXG4gICAgVWlFbGVtZW50c01vZHVsZSxcbiAgICBVaUlucHV0c01vZHVsZSxcbiAgICBBZGRMYXllckZyb21PZ2NBcGlDb21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEZFQVRVUkVfTUFQX09QVElPTlMsXG4gICAgICB1c2VWYWx1ZTogZGVmYXVsdE1hcE9wdGlvbnMsXG4gICAgfSxcbiAgICBNYXBGYWNhZGUsXG4gICAge1xuICAgICAgcHJvdmlkZTogR0VPQ09ESU5HX1BST1ZJREVSLFxuICAgICAgdXNlVmFsdWU6IFsnZ2VvbmFtZXMnLCB7IG1heFJvd3M6IDUgfV0gYXMgR2VvY29kaW5nUHJvdmlkZXIsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRmVhdHVyZU1hcE1vZHVsZSB7fVxuIl19