geonetwork-ui 2.5.0-dev.80a8304dd → 2.5.0-dev.8be73f10b

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 (235) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +11 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
  3. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +20 -17
  4. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +22 -2
  5. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  6. package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
  7. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +7 -4
  8. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +23 -15
  9. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +7 -4
  10. package/esm2022/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.mjs +3 -3
  11. package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +2 -2
  12. package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +2 -2
  13. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.mjs +2 -2
  14. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +3 -2
  15. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.mjs +2 -2
  16. package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +7 -23
  17. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +2 -2
  18. package/esm2022/libs/feature/editor/src/lib/models/wizard-field.type.mjs +3 -4
  19. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +1 -1
  20. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +25 -5
  21. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +10 -7
  22. package/esm2022/libs/feature/record/src/lib/state/mdview.actions.mjs +4 -1
  23. package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +7 -2
  24. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +9 -1
  25. package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +19 -1
  26. package/esm2022/libs/feature/record/src/lib/state/mdview.selectors.mjs +6 -1
  27. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +6 -3
  28. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +1 -1
  29. package/esm2022/libs/ui/elements/src/index.mjs +2 -1
  30. package/esm2022/libs/ui/elements/src/lib/application-banner/application-banner.component.mjs +78 -0
  31. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +3 -3
  32. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +2 -1
  33. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +10 -4
  34. package/esm2022/libs/ui/inputs/src/index.mjs +1 -2
  35. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +43 -3
  36. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +1 -6
  37. package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +14 -4
  38. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +10 -3
  39. package/esm2022/libs/ui/widgets/src/index.mjs +1 -2
  40. package/esm2022/libs/ui/widgets/src/lib/ui-widgets.module.mjs +5 -6
  41. package/esm2022/libs/util/data-fetcher/src/lib/data-fetcher.mjs +5 -4
  42. package/esm2022/libs/util/data-fetcher/src/lib/readers/base-cache.mjs +12 -0
  43. package/esm2022/libs/util/data-fetcher/src/lib/readers/base-file.mjs +3 -3
  44. package/esm2022/libs/util/data-fetcher/src/lib/readers/base.mjs +1 -1
  45. package/esm2022/libs/util/data-fetcher/src/lib/readers/csv.mjs +2 -2
  46. package/esm2022/libs/util/data-fetcher/src/lib/readers/excel.mjs +2 -2
  47. package/esm2022/libs/util/data-fetcher/src/lib/readers/geojson.mjs +2 -2
  48. package/esm2022/libs/util/data-fetcher/src/lib/readers/gml.mjs +5 -3
  49. package/esm2022/libs/util/data-fetcher/src/lib/readers/json.mjs +2 -2
  50. package/esm2022/libs/util/data-fetcher/src/lib/readers/wfs.mjs +19 -11
  51. package/esm2022/libs/util/data-fetcher/src/lib/utils.mjs +13 -9
  52. package/esm2022/translations/de.json +4 -76
  53. package/esm2022/translations/en.json +4 -76
  54. package/esm2022/translations/es.json +3 -75
  55. package/esm2022/translations/fr.json +16 -88
  56. package/esm2022/translations/it.json +21 -92
  57. package/esm2022/translations/nl.json +3 -75
  58. package/esm2022/translations/pt.json +3 -75
  59. package/fesm2022/geonetwork-ui.mjs +496 -864
  60. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  61. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  62. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +3 -0
  63. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
  64. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +1 -0
  65. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  66. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +2 -1
  67. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  68. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +6 -0
  69. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  70. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +2 -1
  71. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  72. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +2 -1
  73. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  74. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +2 -2
  75. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  76. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +2 -1
  77. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  78. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts.map +1 -1
  79. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts.map +1 -1
  80. package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts +1 -3
  81. package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts.map +1 -1
  82. package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts +2 -3
  83. package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts.map +1 -1
  84. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +5 -1
  85. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  86. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +3 -2
  87. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  88. package/libs/feature/record/src/lib/state/mdview.actions.d.ts +16 -1
  89. package/libs/feature/record/src/lib/state/mdview.actions.d.ts.map +1 -1
  90. package/libs/feature/record/src/lib/state/mdview.effects.d.ts +5 -0
  91. package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
  92. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +2 -0
  93. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  94. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts +4 -1
  95. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts.map +1 -1
  96. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts +2 -0
  97. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts.map +1 -1
  98. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +2 -1
  99. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
  100. package/libs/ui/elements/src/index.d.ts +1 -0
  101. package/libs/ui/elements/src/index.d.ts.map +1 -1
  102. package/libs/ui/elements/src/lib/application-banner/application-banner.component.d.ts +16 -0
  103. package/libs/ui/elements/src/lib/application-banner/application-banner.component.d.ts.map +1 -0
  104. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  105. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +2 -1
  106. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  107. package/libs/ui/inputs/src/index.d.ts +0 -1
  108. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  109. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts +16 -1
  110. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
  111. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +27 -28
  112. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  113. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +4 -2
  114. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -1
  115. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +3 -1
  116. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  117. package/libs/ui/widgets/src/index.d.ts +0 -1
  118. package/libs/ui/widgets/src/index.d.ts.map +1 -1
  119. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts +8 -9
  120. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts.map +1 -1
  121. package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts +2 -2
  122. package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts.map +1 -1
  123. package/libs/util/data-fetcher/src/lib/readers/base-cache.d.ts +8 -0
  124. package/libs/util/data-fetcher/src/lib/readers/base-cache.d.ts.map +1 -0
  125. package/libs/util/data-fetcher/src/lib/readers/base-file.d.ts +2 -2
  126. package/libs/util/data-fetcher/src/lib/readers/base-file.d.ts.map +1 -1
  127. package/libs/util/data-fetcher/src/lib/readers/base.d.ts +2 -2
  128. package/libs/util/data-fetcher/src/lib/readers/base.d.ts.map +1 -1
  129. package/libs/util/data-fetcher/src/lib/readers/gml.d.ts +5 -3
  130. package/libs/util/data-fetcher/src/lib/readers/gml.d.ts.map +1 -1
  131. package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts +7 -4
  132. package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts.map +1 -1
  133. package/libs/util/data-fetcher/src/lib/utils.d.ts +2 -2
  134. package/libs/util/data-fetcher/src/lib/utils.d.ts.map +1 -1
  135. package/package.json +1 -1
  136. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +25 -0
  137. package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +4 -0
  138. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +22 -16
  139. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +41 -2
  140. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +3 -1
  141. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +4 -1
  142. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +75 -0
  143. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +4 -1
  144. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +42 -21
  145. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +2 -1
  146. package/src/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.html +1 -1
  147. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +1 -0
  148. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.ts +1 -1
  149. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.html +0 -13
  150. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.ts +0 -20
  151. package/src/libs/feature/editor/src/lib/fields.config.ts +1 -1
  152. package/src/libs/feature/editor/src/lib/models/wizard-field.type.ts +0 -1
  153. package/src/libs/feature/record/src/lib/data-view/data-view.component.html +24 -11
  154. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +26 -4
  155. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +71 -60
  156. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +6 -3
  157. package/src/libs/feature/record/src/lib/state/mdview.actions.ts +16 -0
  158. package/src/libs/feature/record/src/lib/state/mdview.effects.ts +21 -2
  159. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +15 -0
  160. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +30 -1
  161. package/src/libs/feature/record/src/lib/state/mdview.selectors.ts +12 -0
  162. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.html +1 -0
  163. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +1 -0
  164. package/src/libs/ui/elements/src/index.ts +1 -0
  165. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.css +0 -0
  166. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.html +25 -0
  167. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.ts +70 -0
  168. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.ts +2 -2
  169. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +2 -0
  170. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +3 -0
  171. package/src/libs/ui/inputs/src/index.ts +0 -1
  172. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +48 -0
  173. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +0 -3
  174. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +37 -1
  175. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +8 -2
  176. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +2 -0
  177. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +6 -0
  178. package/src/libs/ui/widgets/src/index.ts +0 -1
  179. package/src/libs/ui/widgets/src/lib/ui-widgets.module.ts +2 -3
  180. package/src/libs/util/data-fetcher/src/lib/data-fetcher.ts +13 -4
  181. package/src/libs/util/data-fetcher/src/lib/readers/base-cache.ts +14 -0
  182. package/src/libs/util/data-fetcher/src/lib/readers/base-file.ts +2 -1
  183. package/src/libs/util/data-fetcher/src/lib/readers/base.ts +2 -2
  184. package/src/libs/util/data-fetcher/src/lib/readers/csv.ts +1 -1
  185. package/src/libs/util/data-fetcher/src/lib/readers/excel.ts +1 -1
  186. package/src/libs/util/data-fetcher/src/lib/readers/geojson.ts +1 -1
  187. package/src/libs/util/data-fetcher/src/lib/readers/gml.ts +7 -7
  188. package/src/libs/util/data-fetcher/src/lib/readers/json.ts +1 -1
  189. package/src/libs/util/data-fetcher/src/lib/readers/wfs.ts +34 -11
  190. package/src/libs/util/data-fetcher/src/lib/utils.ts +38 -32
  191. package/translations/de.json +4 -76
  192. package/translations/en.json +4 -76
  193. package/translations/es.json +3 -75
  194. package/translations/fr.json +16 -88
  195. package/translations/it.json +21 -92
  196. package/translations/nl.json +3 -75
  197. package/translations/pt.json +3 -75
  198. package/translations/sk.json +3 -75
  199. package/esm2022/libs/ui/inputs/src/lib/chips-input/chips-input.component.mjs +0 -78
  200. package/esm2022/libs/ui/widgets/src/lib/step-bar/step-bar.component.mjs +0 -55
  201. package/libs/ui/inputs/src/lib/chips-input/chips-input.component.d.ts +0 -33
  202. package/libs/ui/inputs/src/lib/chips-input/chips-input.component.d.ts.map +0 -1
  203. package/libs/ui/widgets/src/lib/step-bar/step-bar.component.d.ts +0 -21
  204. package/libs/ui/widgets/src/lib/step-bar/step-bar.component.d.ts.map +0 -1
  205. package/src/libs/data-access/datafeeder/src/index.ts +0 -1
  206. package/src/libs/data-access/datafeeder/src/openapi/api/api.ts +0 -11
  207. package/src/libs/data-access/datafeeder/src/openapi/api/config.api.service.ts +0 -168
  208. package/src/libs/data-access/datafeeder/src/openapi/api/dataPublishing.api.service.ts +0 -270
  209. package/src/libs/data-access/datafeeder/src/openapi/api/fileUpload.api.service.ts +0 -734
  210. package/src/libs/data-access/datafeeder/src/openapi/api.module.ts +0 -46
  211. package/src/libs/data-access/datafeeder/src/openapi/configuration.ts +0 -125
  212. package/src/libs/data-access/datafeeder/src/openapi/encoder.ts +0 -20
  213. package/src/libs/data-access/datafeeder/src/openapi/index.ts +0 -5
  214. package/src/libs/data-access/datafeeder/src/openapi/model/analysisStatusEnum.api.model.ts +0 -24
  215. package/src/libs/data-access/datafeeder/src/openapi/model/boundingBox.api.model.ts +0 -20
  216. package/src/libs/data-access/datafeeder/src/openapi/model/cRS.api.model.ts +0 -25
  217. package/src/libs/data-access/datafeeder/src/openapi/model/datasetMetadata.api.model.ts +0 -45
  218. package/src/libs/data-access/datafeeder/src/openapi/model/datasetPublishRequest.api.model.ts +0 -39
  219. package/src/libs/data-access/datafeeder/src/openapi/model/datasetPublishingStatus.api.model.ts +0 -50
  220. package/src/libs/data-access/datafeeder/src/openapi/model/datasetUploadStatus.api.model.ts +0 -39
  221. package/src/libs/data-access/datafeeder/src/openapi/model/models.ts +0 -13
  222. package/src/libs/data-access/datafeeder/src/openapi/model/property.api.model.ts +0 -17
  223. package/src/libs/data-access/datafeeder/src/openapi/model/publishJobStatus.api.model.ts +0 -33
  224. package/src/libs/data-access/datafeeder/src/openapi/model/publishRequest.api.model.ts +0 -16
  225. package/src/libs/data-access/datafeeder/src/openapi/model/publishStatusEnum.api.model.ts +0 -20
  226. package/src/libs/data-access/datafeeder/src/openapi/model/publishStepEnum.api.model.ts +0 -42
  227. package/src/libs/data-access/datafeeder/src/openapi/model/uploadJobStatus.api.model.ts +0 -33
  228. package/src/libs/data-access/datafeeder/src/openapi/variables.ts +0 -9
  229. package/src/libs/data-access/datafeeder/src/spec.yaml +0 -537
  230. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.css +0 -36
  231. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.html +0 -23
  232. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.ts +0 -81
  233. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.css +0 -3
  234. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.html +0 -13
  235. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.ts +0 -55
@@ -14,80 +14,91 @@
14
14
  >
15
15
  </gn-ui-external-viewer-button>
16
16
  </div>
17
- <div
18
- class="relative w-full h-full bg-white border border-gray-300 rounded-lg overflow-hidden"
19
- >
20
- <gn-ui-map-container
21
- #mapContainer
22
- [context]="mapContext$ | async"
23
- (featuresClick)="onMapFeatureSelect($event)"
24
- ></gn-ui-map-container>
25
- <div
26
- class="top-[1em] right-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56"
27
- [class.hidden]="!selection"
17
+ <ng-container *ngIf="hidePreview; else mapView">
18
+ <gn-ui-popup-alert
19
+ type="warning"
20
+ icon="matErrorOutlineOutline"
21
+ class="block h-12 p-1"
28
22
  >
29
- <gn-ui-button
30
- type="light"
31
- (buttonClick)="resetSelection()"
32
- style="
33
- --gn-ui-button-padding: 0px;
34
- --gn-ui-button-width: 24px;
35
- --gn-ui-button-height: 24px;
36
- "
37
- extraClass="absolute right-[0.5em] ml-[8px] mr-[10px]"
38
- >
39
- <ng-icon name="matClose" class="align-middle text-sm"></ng-icon>
40
- </gn-ui-button>
41
- <gn-ui-feature-detail [feature]="selection"></gn-ui-feature-detail>
42
- </div>
43
-
23
+ <span translate>record.feature.limit</span>
24
+ </gn-ui-popup-alert>
25
+ </ng-container>
26
+ <ng-template #mapView>
44
27
  <div
45
- class="top-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56"
46
- [ngClass]="{ 'right-[1em]': !selection, 'right-[16em]': selection }"
47
- [hidden]="!showLegend || !legendExists"
28
+ class="relative w-full h-full bg-white border border-gray-300 rounded-lg overflow-hidden"
48
29
  >
49
- <div class="flex justify-between items-center mb-2">
50
- <div class="text-primary font-bold">Legend</div>
30
+ <gn-ui-map-container
31
+ #mapContainer
32
+ [context]="mapContext$ | async"
33
+ (featuresClick)="onMapFeatureSelect($event)"
34
+ ></gn-ui-map-container>
35
+ <div
36
+ class="top-[1em] right-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56"
37
+ [class.hidden]="!selection"
38
+ >
51
39
  <gn-ui-button
52
40
  type="light"
53
- (buttonClick)="toggleLegend()"
41
+ (buttonClick)="resetSelection()"
54
42
  style="
55
43
  --gn-ui-button-padding: 0px;
56
44
  --gn-ui-button-width: 24px;
57
45
  --gn-ui-button-height: 24px;
58
46
  "
59
- extraClass="ml-[8px] mr-[10px]"
47
+ extraClass="absolute right-[0.5em] ml-[8px] mr-[10px]"
60
48
  >
61
49
  <ng-icon name="matClose" class="align-middle text-sm"></ng-icon>
62
50
  </gn-ui-button>
51
+ <gn-ui-feature-detail [feature]="selection"></gn-ui-feature-detail>
63
52
  </div>
64
- <gn-ui-map-legend
65
- [context]="mapContext$ | async"
66
- (legendStatusChange)="onLegendStatusChange($event)"
67
- ></gn-ui-map-legend>
68
- </div>
69
53
 
70
- <gn-ui-button
71
- *ngIf="!showLegend && legendExists && !selection"
72
- type="outline"
73
- (buttonClick)="toggleLegend()"
74
- extraClass="absolute top-[1em] right-[1em] rounded p-1 text-xs bg-white"
75
- >
76
- Legend
77
- </gn-ui-button>
54
+ <div
55
+ class="top-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56"
56
+ [ngClass]="{ 'right-[1em]': !selection, 'right-[16em]': selection }"
57
+ [hidden]="!showLegend || !legendExists"
58
+ >
59
+ <div class="flex justify-between items-center mb-2">
60
+ <div class="text-primary font-bold">Legend</div>
61
+ <gn-ui-button
62
+ type="light"
63
+ (buttonClick)="toggleLegend()"
64
+ style="
65
+ --gn-ui-button-padding: 0px;
66
+ --gn-ui-button-width: 24px;
67
+ --gn-ui-button-height: 24px;
68
+ "
69
+ extraClass="ml-[8px] mr-[10px]"
70
+ >
71
+ <ng-icon name="matClose" class="align-middle text-sm"></ng-icon>
72
+ </gn-ui-button>
73
+ </div>
74
+ <gn-ui-map-legend
75
+ [context]="mapContext$ | async"
76
+ (legendStatusChange)="onLegendStatusChange($event)"
77
+ ></gn-ui-map-legend>
78
+ </div>
78
79
 
79
- <gn-ui-loading-mask
80
- *ngIf="loading"
81
- class="absolute inset-0"
82
- [message]="'map.loading.data' | translate"
83
- ></gn-ui-loading-mask>
84
- <gn-ui-popup-alert
85
- *ngIf="error"
86
- type="warning"
87
- icon="matErrorOutlineOutline"
88
- class="absolute m-2 inset-0"
89
- >
90
- <span translate>{{ error }}</span>
91
- </gn-ui-popup-alert>
92
- </div>
80
+ <gn-ui-button
81
+ *ngIf="!showLegend && legendExists && !selection"
82
+ type="outline"
83
+ (buttonClick)="toggleLegend()"
84
+ extraClass="absolute top-[1em] right-[1em] rounded p-1 text-xs bg-white"
85
+ >
86
+ Legend
87
+ </gn-ui-button>
88
+
89
+ <gn-ui-loading-mask
90
+ *ngIf="loading"
91
+ class="absolute inset-0"
92
+ [message]="'map.loading.data' | translate"
93
+ ></gn-ui-loading-mask>
94
+ <gn-ui-popup-alert
95
+ *ngIf="error"
96
+ type="warning"
97
+ icon="matErrorOutlineOutline"
98
+ class="absolute m-2 inset-0"
99
+ >
100
+ <span translate>{{ error }}</span>
101
+ </gn-ui-popup-alert>
102
+ </div>
103
+ </ng-template>
93
104
  </div>
@@ -82,13 +82,14 @@ marker('wfs.feature.limit')
82
82
  viewProviders: [provideIcons({ matClose })],
83
83
  })
84
84
  export class MapViewComponent implements AfterViewInit {
85
- @Input() set excludeWfs(value: boolean) {
85
+ @Input() set exceedsLimit(value: boolean) {
86
86
  this.excludeWfs$.next(value)
87
87
  }
88
88
  @Input() displaySource = true
89
89
  @ViewChild('mapContainer') mapContainer: MapContainerComponent
90
90
 
91
91
  excludeWfs$ = new BehaviorSubject(false)
92
+ hidePreview = false
92
93
  selection: Feature
93
94
  showLegend = true
94
95
  legendExists = false
@@ -139,9 +140,10 @@ export class MapViewComponent implements AfterViewInit {
139
140
  return of([])
140
141
  }
141
142
  if (excludeWfs && link.accessServiceProtocol === 'wfs') {
142
- this.error = 'wfs.feature.limit'
143
+ this.hidePreview = true
143
144
  return of([])
144
145
  }
146
+ this.hidePreview = false
145
147
  this.loading = true
146
148
  this.error = null
147
149
  return this.getLayerFromLink(link).pipe(
@@ -239,7 +241,8 @@ export class MapViewComponent implements AfterViewInit {
239
241
  link.accessServiceProtocol === 'ogcFeatures')) ||
240
242
  link.type === 'download'
241
243
  ) {
242
- return this.dataService.readAsGeoJson(link).pipe(
244
+ const cacheActive = true // TODO implement whether should be true or false
245
+ return this.dataService.readAsGeoJson(link, cacheActive).pipe(
243
246
  map((data) => ({
244
247
  type: 'geojson',
245
248
  data,
@@ -2,6 +2,7 @@ import { DatavizConfigurationModel } from '../../../../../../libs/common/domain/
2
2
  import { createAction, props } from '@ngrx/store'
3
3
  import {
4
4
  CatalogRecord,
5
+ DatasetFeatureCatalog,
5
6
  UserFeedback,
6
7
  } from '../../../../../../libs/common/domain/src/lib/model/record'
7
8
 
@@ -28,6 +29,21 @@ export const loadFullMetadataFailure = createAction(
28
29
  props<{ otherError?: string; notFound?: boolean }>()
29
30
  )
30
31
 
32
+ export const loadFeatureCatalog = createAction(
33
+ "[Metadata view] Load metadata's feature catalog",
34
+ props<{ metadata: CatalogRecord }>()
35
+ )
36
+
37
+ export const loadFeatureCatalogSuccess = createAction(
38
+ '[Metadata view] Load metadata feature catalog success',
39
+ props<{ datasetCatalog: DatasetFeatureCatalog | null }>()
40
+ )
41
+
42
+ export const loadFeatureCatalogFailure = createAction(
43
+ '[Metadata view] Load metadata feature catalog failure',
44
+ props<{ error?: string }>()
45
+ )
46
+
31
47
  export const closeMetadata = createAction('[Metadata view] close')
32
48
 
33
49
  /*
@@ -1,11 +1,10 @@
1
1
  import { Injectable } from '@angular/core'
2
2
  import { Actions, createEffect, ofType } from '@ngrx/effects'
3
3
  import { exhaustMap, mergeMap, of } from 'rxjs'
4
- import { catchError, map, switchMap } from 'rxjs/operators'
4
+ import { catchError, filter, map, switchMap, take } from 'rxjs/operators'
5
5
  import * as MdViewActions from './mdview.actions'
6
6
  import { RecordsRepositoryInterface } from '../../../../../../libs/common/domain/src/lib/repository/records-repository.interface'
7
7
  import { PlatformServiceInterface } from '../../../../../../libs/common/domain/src/lib/platform.service.interface'
8
-
9
8
  @Injectable()
10
9
  export class MdViewEffects {
11
10
  constructor(
@@ -33,6 +32,26 @@ export class MdViewEffects {
33
32
  )
34
33
  )
35
34
 
35
+ loadFeatureCatalog$ = createEffect(() =>
36
+ this.actions$.pipe(
37
+ ofType(MdViewActions.loadFullMetadataSuccess),
38
+ filter(({ full }) => full !== undefined),
39
+ switchMap(({ full }) => this.recordsRepository.getFeatureCatalog(full)),
40
+ map((featureCatalog) =>
41
+ MdViewActions.loadFeatureCatalogSuccess({
42
+ datasetCatalog: featureCatalog,
43
+ })
44
+ ),
45
+ catchError((error) =>
46
+ of(
47
+ MdViewActions.loadFeatureCatalogFailure({
48
+ error: error.message,
49
+ })
50
+ )
51
+ )
52
+ )
53
+ )
54
+
36
55
  /*
37
56
  Related effects
38
57
  */
@@ -52,11 +52,26 @@ export class MdViewFacade {
52
52
  filter((md) => !!md)
53
53
  )
54
54
 
55
+ featureCatalog$ = this.store.pipe(select(MdViewSelectors.getFeatureCatalog))
56
+
55
57
  isIncomplete$ = this.store.pipe(
56
58
  select(MdViewSelectors.getMetadataIsIncomplete),
57
59
  filter((incomplete) => incomplete !== null)
58
60
  )
59
61
 
62
+ isHighUpdateFrequency$ = this.metadata$.pipe(
63
+ map((record) => {
64
+ if (record.updateFrequency instanceof Object) {
65
+ return (
66
+ record.updateFrequency.per === 'day' &&
67
+ record.updateFrequency.updatedTimes > 1
68
+ )
69
+ }
70
+
71
+ return record.updateFrequency === 'continual'
72
+ })
73
+ )
74
+
60
75
  error$ = this.store.pipe(select(MdViewSelectors.getMetadataError))
61
76
 
62
77
  related$ = this.store.pipe(select(MdViewSelectors.getRelated))
@@ -3,6 +3,7 @@ import * as MetadataViewActions from './mdview.actions'
3
3
  import { DatavizConfigurationModel } from '../../../../../../libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model'
4
4
  import {
5
5
  CatalogRecord,
6
+ DatasetFeatureCatalog,
6
7
  UserFeedback,
7
8
  } from '../../../../../../libs/common/domain/src/lib/model/record'
8
9
 
@@ -17,6 +18,9 @@ export interface MetadataViewState {
17
18
  allUserFeedbacksLoading: boolean
18
19
  addUserFeedbackLoading: boolean
19
20
  chartConfig?: DatavizConfigurationModel
21
+ featureCatalog?: DatasetFeatureCatalog
22
+ featureCatalogLoading: boolean
23
+ featureCatalogError: string | null
20
24
  }
21
25
 
22
26
  export const initialMetadataViewState: MetadataViewState = {
@@ -24,6 +28,8 @@ export const initialMetadataViewState: MetadataViewState = {
24
28
  loadingFull: false,
25
29
  allUserFeedbacksLoading: false,
26
30
  addUserFeedbackLoading: false,
31
+ featureCatalogLoading: false,
32
+ featureCatalogError: null,
27
33
  }
28
34
 
29
35
  const metadataViewReducer = createReducer(
@@ -105,7 +111,30 @@ const metadataViewReducer = createReducer(
105
111
  addUserFeedbackLoading: false,
106
112
  allUserFeedbacksLoading: false,
107
113
  })
108
- )
114
+ ),
115
+
116
+ /**
117
+ * FeatureCatalog reducers
118
+ */
119
+
120
+ on(MetadataViewActions.loadFeatureCatalog, (state) => ({
121
+ ...state,
122
+ featureCatalogError: null,
123
+ featureCatalogLoading: true,
124
+ })),
125
+ on(
126
+ MetadataViewActions.loadFeatureCatalogSuccess,
127
+ (state, { datasetCatalog }) => ({
128
+ ...state,
129
+ featureCatalog: datasetCatalog,
130
+ featureCatalogLoading: false,
131
+ })
132
+ ),
133
+ on(MetadataViewActions.loadFeatureCatalogFailure, (state, { error }) => ({
134
+ ...state,
135
+ featureCatalogError: error,
136
+ featureCatalogLoading: false,
137
+ }))
109
138
  )
110
139
 
111
140
  export function reducer(
@@ -64,3 +64,15 @@ export const getAddUserFeedbacksLoading = createSelector(
64
64
  getMdViewState,
65
65
  (state: MetadataViewState) => state.addUserFeedbackLoading
66
66
  )
67
+
68
+ /*
69
+ Feature Catalog Selectors
70
+ */
71
+ export const getFeatureCatalog = createSelector(
72
+ getMdViewState,
73
+ (state: MetadataViewState) => state.featureCatalog
74
+ )
75
+ export const getFeatureCatalogIsLoading = createSelector(
76
+ getMdViewState,
77
+ (state: MetadataViewState) => state.featureCatalogLoading
78
+ )
@@ -9,4 +9,5 @@
9
9
  [preventCompleteOnSelection]="true"
10
10
  [autoFocus]="autoFocus"
11
11
  [allowSubmit]="true"
12
+ [forceTrackPosition]="forceTrackPosition"
12
13
  ></gn-ui-autocomplete>
@@ -28,6 +28,7 @@ import { SearchFilters } from '../../../../../../libs/api/metadata-converter/src
28
28
  export class FuzzySearchComponent implements OnInit {
29
29
  @ViewChild(AutocompleteComponent) autocomplete: AutocompleteComponent
30
30
  @Input() autoFocus = false
31
+ @Input() forceTrackPosition = false
31
32
  @Output() itemSelected = new EventEmitter<CatalogRecord>()
32
33
  @Output() inputSubmitted = new EventEmitter<string>()
33
34
  searchInputValue$: Observable<{ title: string }>
@@ -22,3 +22,4 @@ export * from './lib/thumbnail/thumbnail.component'
22
22
  export * from './lib/ui-elements.module'
23
23
  export * from './lib/user-feedback-item/user-feedback-item.component'
24
24
  export * from './lib/user-preview/user-preview.component'
25
+ export * from './lib/application-banner/application-banner.component'
@@ -0,0 +1,25 @@
1
+ <div
2
+ *ngIf="message && bannerOpen"
3
+ class="absolute left-0 right-0 text-wrap bg-white mt-4 max-h-24"
4
+ >
5
+ <div
6
+ class="flex flex-row py-2.5 px-5 gap-5 justify-start border max-h-20"
7
+ [ngClass]="classList"
8
+ >
9
+ <div [ngClass]="message.length > 200 ? 'pt-5' : 'pt-1'">
10
+ <ng-icon [name]="icon"></ng-icon>
11
+ </div>
12
+ <div class="flex flex-col justify-start gap-2.5">
13
+ <span *ngIf="title" class="font-bold">{{ title }}</span>
14
+ <span class="font-medium max-w-2xl" [innerHTML]="message"></span>
15
+ </div>
16
+ <button
17
+ *ngIf="closeEnabled"
18
+ class="self-start"
19
+ type="button"
20
+ (click)="closeMessage()"
21
+ >
22
+ <ng-icon name="matCloseOutline"> </ng-icon>
23
+ </button>
24
+ </div>
25
+ </div>
@@ -0,0 +1,70 @@
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core'
2
+ import { CommonModule } from '@angular/common'
3
+ import {
4
+ NgIconComponent,
5
+ provideIcons,
6
+ provideNgIconsConfig,
7
+ } from '@ng-icons/core'
8
+ import {
9
+ matCloseOutline,
10
+ matInfoOutline,
11
+ matWarningAmberOutline,
12
+ } from '@ng-icons/material-icons/outline'
13
+ import { matWarning } from '@ng-icons/material-icons/baseline'
14
+
15
+ @Component({
16
+ selector: 'gn-ui-application-banner',
17
+ standalone: true,
18
+ imports: [CommonModule, NgIconComponent],
19
+ changeDetection: ChangeDetectionStrategy.OnPush,
20
+ templateUrl: './application-banner.component.html',
21
+ styleUrl: './application-banner.component.css',
22
+ providers: [
23
+ provideIcons({
24
+ matWarningAmberOutline,
25
+ matInfoOutline,
26
+ matCloseOutline,
27
+ matWarning,
28
+ }),
29
+ provideNgIconsConfig({ size: '1.5em' }),
30
+ ],
31
+ })
32
+ export class ApplicationBannerComponent {
33
+ @Input() message: string
34
+ @Input() title: string
35
+ @Input() closeEnabled = false
36
+ @Input() extraClass = ''
37
+ @Input() icon = ''
38
+ msgClass = ''
39
+ bannerOpen = true
40
+
41
+ @Input() set type(value: 'primary' | 'secondary' | 'light') {
42
+ switch (value) {
43
+ case 'primary':
44
+ this.msgClass = 'bg-primary-darkest border-primary text-white'
45
+ this.icon = 'matWarning'
46
+ break
47
+ case 'light':
48
+ this.msgClass =
49
+ 'bg-primary-opacity-10 border-primary-lightest text-black'
50
+ this.icon = 'matInfoOutline'
51
+ break
52
+ case 'secondary':
53
+ default:
54
+ this.msgClass = 'bg-primary-opacity-50 border-primary-darker text-black'
55
+ this.icon = 'matWarningAmberOutline'
56
+ break
57
+ }
58
+ }
59
+
60
+ get classList() {
61
+ if (this.message.length > 200) {
62
+ return `${this.msgClass} ${this.extraClass} overflow-y-scroll items-start`
63
+ }
64
+ return `${this.msgClass} ${this.extraClass} items-center`
65
+ }
66
+
67
+ closeMessage() {
68
+ this.bannerOpen = false
69
+ }
70
+ }
@@ -1,4 +1,4 @@
1
- import { Component, Input, ChangeDetectionStrategy } from '@angular/core'
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core'
2
2
  import { marked } from 'marked'
3
3
 
4
4
  @Component({
@@ -13,6 +13,6 @@ export class MarkdownParserComponent {
13
13
  @Input() whitoutStyles?: boolean
14
14
 
15
15
  get parsedMarkdown() {
16
- return marked.parse(this.textContent)
16
+ return marked.parse(this.textContent ?? '')
17
17
  }
18
18
  }
@@ -161,6 +161,8 @@ export class RecordApiFormComponent {
161
161
  maxFeatures: limit !== '-1' ? Number(limit) : undefined,
162
162
  limit: limit !== '-1' ? Number(limit) : -1,
163
163
  offset: offset !== '' ? Number(offset) : undefined,
164
+ outputCrs:
165
+ format === ('application/json' || 'geojson') ? 'EPSG:4326' : undefined,
164
166
  }
165
167
 
166
168
  if (this.endpoint instanceof WfsEndpoint) {
@@ -19,6 +19,7 @@ import { MarkdownParserComponent } from './markdown-parser/markdown-parser.compo
19
19
  import { ThumbnailComponent } from './thumbnail/thumbnail.component'
20
20
  import { TimeSincePipe } from './user-feedback-item/time-since.pipe'
21
21
  import { UserPreviewComponent } from './user-preview/user-preview.component'
22
+ import { ApplicationBannerComponent } from './application-banner/application-banner.component'
22
23
 
23
24
  @NgModule({
24
25
  imports: [
@@ -40,6 +41,7 @@ import { UserPreviewComponent } from './user-preview/user-preview.component'
40
41
  MaxLinesComponent,
41
42
  TextInputComponent,
42
43
  ImageInputComponent,
44
+ ApplicationBannerComponent,
43
45
  ],
44
46
  providers: [
45
47
  provideNgIconsConfig({
@@ -53,6 +55,7 @@ import { UserPreviewComponent } from './user-preview/user-preview.component'
53
55
  UserPreviewComponent,
54
56
  MarkdownParserComponent,
55
57
  ImageInputComponent,
58
+ ApplicationBannerComponent,
56
59
  ],
57
60
  })
58
61
  export class UiElementsModule {}
@@ -3,7 +3,6 @@ export * from './lib/badge/badge.component'
3
3
  export * from './lib/button/button.component'
4
4
  export * from './lib/check-toggle/check-toggle.component'
5
5
  export * from './lib/checkbox/checkbox.component'
6
- export * from './lib/chips-input/chips-input.component'
7
6
  export * from './lib/copy-text-button/copy-text-button.component'
8
7
  export * from './lib/date-picker/date-picker.component'
9
8
  export * from './lib/date-range-dropdown/date-range-dropdown.component'
@@ -83,6 +83,7 @@ export class AutocompleteComponent
83
83
  @Input() minCharacterCount? = 3
84
84
  // this will show a submit button next to the input; if false, a search icon will appear on the left
85
85
  @Input() allowSubmit = false
86
+ @Input() forceTrackPosition = false
86
87
  @Output() itemSelected = new EventEmitter<AutocompleteItem>()
87
88
  @Output() inputSubmitted = new EventEmitter<string>()
88
89
  @Output() inputCleared = new EventEmitter<void>()
@@ -98,6 +99,8 @@ export class AutocompleteComponent
98
99
  error: string | null = null
99
100
  suggestions$: Observable<AutocompleteItem[]>
100
101
  subscription = new Subscription()
102
+ private lastPosition: DOMRect | null = null
103
+ private intervalIdPosition: number | undefined
101
104
 
102
105
  @Input() displayWithFn: (item: AutocompleteItem) => string = (item) =>
103
106
  item.toString()
@@ -147,6 +150,12 @@ export class AutocompleteComponent
147
150
  this.error = null
148
151
  }),
149
152
  switchMap((value) => this.action(value)),
153
+ tap((suggestions) => {
154
+ // forcing the panel to open if there are suggestions
155
+ if (suggestions.length > 0) {
156
+ this.triggerRef?.openPanel()
157
+ }
158
+ }),
150
159
  catchError((error: Error) => {
151
160
  this.error = error.message
152
161
  return of([])
@@ -191,10 +200,49 @@ export class AutocompleteComponent
191
200
  this.inputRef.nativeElement.focus()
192
201
  this.cdRef.detectChanges()
193
202
  }
203
+
204
+ this.startTrackingPosition()
205
+ }
206
+
207
+ /**
208
+ * !!! This function is used only for web component mode,
209
+ * the autocomplete dropdown may not update its position
210
+ * if the page or container is disabling wind scroll.
211
+ */
212
+ private trackPosition = () => {
213
+ const dropdownOpened = this.triggerRef && this.triggerRef.panelOpen
214
+ const rect = this.inputRef.nativeElement.getBoundingClientRect()
215
+
216
+ if (
217
+ dropdownOpened &&
218
+ (!this.lastPosition ||
219
+ rect.top !== this.lastPosition.top ||
220
+ rect.left !== this.lastPosition.left)
221
+ ) {
222
+ this.triggerRef.updatePosition()
223
+ }
224
+
225
+ this.lastPosition = rect
226
+ requestAnimationFrame(this.trackPosition)
227
+ }
228
+
229
+ /**
230
+ * !!! This function is used only for web component mode,
231
+ * the autocomplete dropdown may not update its position
232
+ * if the page or container is disabling wind scroll.
233
+ */
234
+ startTrackingPosition() {
235
+ if (this.forceTrackPosition) {
236
+ requestAnimationFrame(this.trackPosition)
237
+ }
194
238
  }
195
239
 
196
240
  ngOnDestroy(): void {
197
241
  this.subscription?.unsubscribe()
242
+
243
+ if (this.intervalIdPosition) {
244
+ clearInterval(this.intervalIdPosition)
245
+ }
198
246
  }
199
247
 
200
248
  updateInputValue(value: AutocompleteItem) {
@@ -28,7 +28,6 @@ import { BadgeComponent } from './badge/badge.component'
28
28
  import { ButtonComponent } from './button/button.component'
29
29
  import { CheckToggleComponent } from './check-toggle/check-toggle.component'
30
30
  import { CheckboxComponent } from './checkbox/checkbox.component'
31
- import { ChipsInputComponent } from './chips-input/chips-input.component'
32
31
  import { DateRangePickerComponent } from './date-range-picker/date-range-picker.component'
33
32
  import { DragAndDropFileInputComponent } from './drag-and-drop-file-input/drag-and-drop-file-input.component'
34
33
  import { DropdownMultiselectComponent } from './dropdown-multiselect/dropdown-multiselect.component'
@@ -40,7 +39,6 @@ import { ViewportIntersectorComponent } from './viewport-intersector/viewport-in
40
39
  @NgModule({
41
40
  declarations: [
42
41
  DragAndDropFileInputComponent,
43
- ChipsInputComponent,
44
42
  DropdownMultiselectComponent,
45
43
  ViewportIntersectorComponent,
46
44
  CheckboxComponent,
@@ -86,7 +84,6 @@ import { ViewportIntersectorComponent } from './viewport-intersector/viewport-in
86
84
  ButtonComponent,
87
85
  DragAndDropFileInputComponent,
88
86
  TextAreaComponent,
89
- ChipsInputComponent,
90
87
  DropdownMultiselectComponent,
91
88
  ViewportIntersectorComponent,
92
89
  CheckToggleComponent,