geonetwork-ui 2.5.0-dev.6d78023ff → 2.5.0-dev.70f4ef380

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 (263) 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 +34 -28
  4. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +25 -9
  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 +24 -14
  9. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +7 -4
  10. package/esm2022/libs/feature/editor/src/index.mjs +2 -1
  11. package/esm2022/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.mjs +3 -3
  12. package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +2 -2
  13. package/esm2022/libs/feature/editor/src/lib/components/import-record/import-record.component.mjs +4 -4
  14. package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +2 -2
  15. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.mjs +2 -2
  16. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +9 -11
  17. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.mjs +2 -2
  18. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -1
  19. package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +7 -23
  20. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +2 -2
  21. package/esm2022/libs/feature/editor/src/lib/models/wizard-field.type.mjs +3 -4
  22. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +1 -1
  23. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +25 -5
  24. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +10 -7
  25. package/esm2022/libs/feature/record/src/lib/state/mdview.actions.mjs +4 -1
  26. package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +7 -2
  27. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +9 -1
  28. package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +19 -1
  29. package/esm2022/libs/feature/record/src/lib/state/mdview.selectors.mjs +6 -1
  30. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +15 -3
  31. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +1 -1
  32. package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +46 -1
  33. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +3 -2
  34. package/esm2022/libs/ui/elements/src/index.mjs +2 -1
  35. package/esm2022/libs/ui/elements/src/lib/application-banner/application-banner.component.mjs +78 -0
  36. package/esm2022/libs/ui/elements/src/lib/image-input/image-input.component.mjs +7 -8
  37. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +3 -3
  38. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +2 -1
  39. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +10 -4
  40. package/esm2022/libs/ui/inputs/src/index.mjs +1 -2
  41. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +94 -8
  42. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +1 -6
  43. package/esm2022/libs/ui/inputs/src/lib/url-input/url-input.component.mjs +2 -7
  44. package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +14 -4
  45. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +10 -3
  46. package/esm2022/libs/ui/widgets/src/index.mjs +1 -2
  47. package/esm2022/libs/ui/widgets/src/lib/ui-widgets.module.mjs +5 -6
  48. package/esm2022/libs/util/data-fetcher/src/lib/data-fetcher.mjs +5 -4
  49. package/esm2022/libs/util/data-fetcher/src/lib/readers/base-cache.mjs +12 -0
  50. package/esm2022/libs/util/data-fetcher/src/lib/readers/base-file.mjs +3 -3
  51. package/esm2022/libs/util/data-fetcher/src/lib/readers/base.mjs +1 -1
  52. package/esm2022/libs/util/data-fetcher/src/lib/readers/csv.mjs +2 -2
  53. package/esm2022/libs/util/data-fetcher/src/lib/readers/excel.mjs +2 -2
  54. package/esm2022/libs/util/data-fetcher/src/lib/readers/geojson.mjs +2 -2
  55. package/esm2022/libs/util/data-fetcher/src/lib/readers/gml.mjs +5 -3
  56. package/esm2022/libs/util/data-fetcher/src/lib/readers/json.mjs +2 -2
  57. package/esm2022/libs/util/data-fetcher/src/lib/readers/wfs.mjs +19 -11
  58. package/esm2022/libs/util/data-fetcher/src/lib/utils.mjs +13 -9
  59. package/esm2022/translations/de.json +5 -77
  60. package/esm2022/translations/en.json +5 -77
  61. package/esm2022/translations/es.json +3 -75
  62. package/esm2022/translations/fr.json +17 -89
  63. package/esm2022/translations/it.json +22 -93
  64. package/esm2022/translations/nl.json +3 -75
  65. package/esm2022/translations/pt.json +3 -75
  66. package/fesm2022/geonetwork-ui.mjs +639 -915
  67. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  68. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  69. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +3 -0
  70. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
  71. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +1 -0
  72. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  73. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +2 -1
  74. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  75. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +6 -0
  76. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  77. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +2 -1
  78. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  79. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +2 -1
  80. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  81. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +2 -2
  82. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  83. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +2 -1
  84. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  85. package/libs/feature/editor/src/index.d.ts +1 -0
  86. package/libs/feature/editor/src/index.d.ts.map +1 -1
  87. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts +1 -0
  88. 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
  89. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts.map +1 -1
  90. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -0
  91. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
  92. package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts +1 -3
  93. package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts.map +1 -1
  94. package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts +2 -3
  95. package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts.map +1 -1
  96. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +5 -1
  97. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  98. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +3 -2
  99. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  100. package/libs/feature/record/src/lib/state/mdview.actions.d.ts +16 -1
  101. package/libs/feature/record/src/lib/state/mdview.actions.d.ts.map +1 -1
  102. package/libs/feature/record/src/lib/state/mdview.effects.d.ts +5 -0
  103. package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
  104. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +2 -0
  105. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  106. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts +4 -1
  107. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts.map +1 -1
  108. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts +2 -0
  109. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts.map +1 -1
  110. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +5 -1
  111. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
  112. package/libs/feature/search/src/lib/utils/service/fields.d.ts +10 -0
  113. package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
  114. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  115. package/libs/ui/elements/src/index.d.ts +1 -0
  116. package/libs/ui/elements/src/index.d.ts.map +1 -1
  117. package/libs/ui/elements/src/lib/application-banner/application-banner.component.d.ts +16 -0
  118. package/libs/ui/elements/src/lib/application-banner/application-banner.component.d.ts.map +1 -0
  119. package/libs/ui/elements/src/lib/image-input/image-input.component.d.ts.map +1 -1
  120. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  121. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +2 -1
  122. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  123. package/libs/ui/inputs/src/index.d.ts +0 -1
  124. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  125. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts +23 -1
  126. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
  127. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +27 -28
  128. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  129. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts +2 -3
  130. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts.map +1 -1
  131. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +4 -2
  132. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -1
  133. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +3 -1
  134. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  135. package/libs/ui/widgets/src/index.d.ts +0 -1
  136. package/libs/ui/widgets/src/index.d.ts.map +1 -1
  137. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts +8 -9
  138. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts.map +1 -1
  139. package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts +2 -2
  140. package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts.map +1 -1
  141. package/libs/util/data-fetcher/src/lib/readers/base-cache.d.ts +8 -0
  142. package/libs/util/data-fetcher/src/lib/readers/base-cache.d.ts.map +1 -0
  143. package/libs/util/data-fetcher/src/lib/readers/base-file.d.ts +2 -2
  144. package/libs/util/data-fetcher/src/lib/readers/base-file.d.ts.map +1 -1
  145. package/libs/util/data-fetcher/src/lib/readers/base.d.ts +2 -2
  146. package/libs/util/data-fetcher/src/lib/readers/base.d.ts.map +1 -1
  147. package/libs/util/data-fetcher/src/lib/readers/gml.d.ts +5 -3
  148. package/libs/util/data-fetcher/src/lib/readers/gml.d.ts.map +1 -1
  149. package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts +7 -4
  150. package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts.map +1 -1
  151. package/libs/util/data-fetcher/src/lib/utils.d.ts +2 -2
  152. package/libs/util/data-fetcher/src/lib/utils.d.ts.map +1 -1
  153. package/package.json +1 -1
  154. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +25 -0
  155. package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +4 -0
  156. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +36 -27
  157. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +44 -13
  158. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +3 -1
  159. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +4 -1
  160. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +165 -0
  161. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +4 -1
  162. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +43 -20
  163. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +2 -1
  164. package/src/libs/feature/editor/src/index.ts +1 -0
  165. package/src/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.html +1 -1
  166. package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.ts +3 -3
  167. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.html +1 -0
  168. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +10 -10
  169. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.ts +1 -1
  170. package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -0
  171. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.html +0 -13
  172. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.ts +0 -20
  173. package/src/libs/feature/editor/src/lib/fields.config.ts +1 -1
  174. package/src/libs/feature/editor/src/lib/models/wizard-field.type.ts +0 -1
  175. package/src/libs/feature/record/src/lib/data-view/data-view.component.html +24 -11
  176. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +26 -4
  177. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +71 -60
  178. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +6 -3
  179. package/src/libs/feature/record/src/lib/state/mdview.actions.ts +16 -0
  180. package/src/libs/feature/record/src/lib/state/mdview.effects.ts +21 -2
  181. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +15 -0
  182. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +30 -1
  183. package/src/libs/feature/record/src/lib/state/mdview.selectors.ts +12 -0
  184. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.html +3 -0
  185. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +7 -0
  186. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +2 -0
  187. package/src/libs/feature/search/src/lib/utils/service/fields.ts +55 -0
  188. package/src/libs/ui/elements/src/index.ts +1 -0
  189. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.css +0 -0
  190. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.html +25 -0
  191. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.ts +70 -0
  192. package/src/libs/ui/elements/src/lib/image-input/image-input.component.html +8 -8
  193. package/src/libs/ui/elements/src/lib/image-input/image-input.component.ts +4 -6
  194. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.ts +2 -2
  195. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +2 -0
  196. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +3 -0
  197. package/src/libs/ui/inputs/src/index.ts +0 -1
  198. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +36 -19
  199. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +91 -2
  200. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +0 -3
  201. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.ts +1 -7
  202. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +37 -1
  203. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +8 -2
  204. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +2 -0
  205. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +6 -0
  206. package/src/libs/ui/widgets/src/index.ts +0 -1
  207. package/src/libs/ui/widgets/src/lib/ui-widgets.module.ts +2 -3
  208. package/src/libs/util/data-fetcher/src/lib/data-fetcher.ts +13 -4
  209. package/src/libs/util/data-fetcher/src/lib/readers/base-cache.ts +14 -0
  210. package/src/libs/util/data-fetcher/src/lib/readers/base-file.ts +2 -1
  211. package/src/libs/util/data-fetcher/src/lib/readers/base.ts +2 -2
  212. package/src/libs/util/data-fetcher/src/lib/readers/csv.ts +1 -1
  213. package/src/libs/util/data-fetcher/src/lib/readers/excel.ts +1 -1
  214. package/src/libs/util/data-fetcher/src/lib/readers/geojson.ts +1 -1
  215. package/src/libs/util/data-fetcher/src/lib/readers/gml.ts +7 -7
  216. package/src/libs/util/data-fetcher/src/lib/readers/json.ts +1 -1
  217. package/src/libs/util/data-fetcher/src/lib/readers/wfs.ts +34 -11
  218. package/src/libs/util/data-fetcher/src/lib/utils.ts +38 -32
  219. package/translations/de.json +5 -77
  220. package/translations/en.json +5 -77
  221. package/translations/es.json +3 -75
  222. package/translations/fr.json +17 -89
  223. package/translations/it.json +22 -93
  224. package/translations/nl.json +3 -75
  225. package/translations/pt.json +3 -75
  226. package/translations/sk.json +3 -75
  227. package/esm2022/libs/ui/inputs/src/lib/chips-input/chips-input.component.mjs +0 -78
  228. package/esm2022/libs/ui/widgets/src/lib/step-bar/step-bar.component.mjs +0 -55
  229. package/libs/ui/inputs/src/lib/chips-input/chips-input.component.d.ts +0 -33
  230. package/libs/ui/inputs/src/lib/chips-input/chips-input.component.d.ts.map +0 -1
  231. package/libs/ui/widgets/src/lib/step-bar/step-bar.component.d.ts +0 -21
  232. package/libs/ui/widgets/src/lib/step-bar/step-bar.component.d.ts.map +0 -1
  233. package/src/libs/data-access/datafeeder/src/index.ts +0 -1
  234. package/src/libs/data-access/datafeeder/src/openapi/api/api.ts +0 -11
  235. package/src/libs/data-access/datafeeder/src/openapi/api/config.api.service.ts +0 -168
  236. package/src/libs/data-access/datafeeder/src/openapi/api/dataPublishing.api.service.ts +0 -270
  237. package/src/libs/data-access/datafeeder/src/openapi/api/fileUpload.api.service.ts +0 -734
  238. package/src/libs/data-access/datafeeder/src/openapi/api.module.ts +0 -46
  239. package/src/libs/data-access/datafeeder/src/openapi/configuration.ts +0 -125
  240. package/src/libs/data-access/datafeeder/src/openapi/encoder.ts +0 -20
  241. package/src/libs/data-access/datafeeder/src/openapi/index.ts +0 -5
  242. package/src/libs/data-access/datafeeder/src/openapi/model/analysisStatusEnum.api.model.ts +0 -24
  243. package/src/libs/data-access/datafeeder/src/openapi/model/boundingBox.api.model.ts +0 -20
  244. package/src/libs/data-access/datafeeder/src/openapi/model/cRS.api.model.ts +0 -25
  245. package/src/libs/data-access/datafeeder/src/openapi/model/datasetMetadata.api.model.ts +0 -45
  246. package/src/libs/data-access/datafeeder/src/openapi/model/datasetPublishRequest.api.model.ts +0 -39
  247. package/src/libs/data-access/datafeeder/src/openapi/model/datasetPublishingStatus.api.model.ts +0 -50
  248. package/src/libs/data-access/datafeeder/src/openapi/model/datasetUploadStatus.api.model.ts +0 -39
  249. package/src/libs/data-access/datafeeder/src/openapi/model/models.ts +0 -13
  250. package/src/libs/data-access/datafeeder/src/openapi/model/property.api.model.ts +0 -17
  251. package/src/libs/data-access/datafeeder/src/openapi/model/publishJobStatus.api.model.ts +0 -33
  252. package/src/libs/data-access/datafeeder/src/openapi/model/publishRequest.api.model.ts +0 -16
  253. package/src/libs/data-access/datafeeder/src/openapi/model/publishStatusEnum.api.model.ts +0 -20
  254. package/src/libs/data-access/datafeeder/src/openapi/model/publishStepEnum.api.model.ts +0 -42
  255. package/src/libs/data-access/datafeeder/src/openapi/model/uploadJobStatus.api.model.ts +0 -33
  256. package/src/libs/data-access/datafeeder/src/openapi/variables.ts +0 -9
  257. package/src/libs/data-access/datafeeder/src/spec.yaml +0 -537
  258. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.css +0 -36
  259. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.html +0 -23
  260. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.ts +0 -81
  261. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.css +0 -3
  262. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.html +0 -13
  263. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.ts +0 -55
@@ -28,8 +28,11 @@ 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
32
+ @Input() enterButton = false
31
33
  @Output() itemSelected = new EventEmitter<CatalogRecord>()
32
34
  @Output() inputSubmitted = new EventEmitter<string>()
35
+ @Output() isSearchActive = new EventEmitter<boolean>()
33
36
  searchInputValue$: Observable<{ title: string }>
34
37
 
35
38
  displayWithFn: (record: CatalogRecord) => string = (record) => record.title
@@ -84,4 +87,8 @@ export class FuzzySearchComponent implements OnInit {
84
87
  this.searchService.updateFilters({ any: '' })
85
88
  }
86
89
  }
90
+
91
+ handleSearchActive(event: boolean) {
92
+ this.isSearchActive.emit(event)
93
+ }
87
94
  }
@@ -1,6 +1,7 @@
1
1
  import { Injectable, Injector } from '@angular/core'
2
2
  import {
3
3
  AbstractSearchField,
4
+ AvailableServicesField,
4
5
  DateRangeSearchField,
5
6
  FieldValue,
6
7
  FullTextSearchField,
@@ -91,6 +92,7 @@ export class FieldsService {
91
92
  ),
92
93
  user: new UserSearchField(this.injector),
93
94
  changeDate: new DateRangeSearchField('changeDate', this.injector, 'desc'),
95
+ availableServices: new AvailableServicesField(this.injector),
94
96
  } as Record<string, AbstractSearchField>
95
97
 
96
98
  get supportedFields() {
@@ -9,6 +9,7 @@ import { PlatformServiceInterface } from '../../../../../../../libs/common/domai
9
9
  import {
10
10
  AggregationBuckets,
11
11
  AggregationsParams,
12
+ FieldFilter,
12
13
  FieldFilterByExpression,
13
14
  FieldFilters,
14
15
  TermBucket,
@@ -425,3 +426,57 @@ export class DateRangeSearchField extends SimpleSearchField {
425
426
  return 'dateRange'
426
427
  }
427
428
  }
429
+
430
+ marker('search.filters.availableServices.view')
431
+ marker('search.filters.availableServices.download')
432
+
433
+ export class AvailableServicesField extends SimpleSearchField {
434
+ private translateService = this.injector.get(TranslateService)
435
+
436
+ constructor(injector: Injector) {
437
+ super('availableServices', injector, 'asc')
438
+ }
439
+
440
+ linkProtocolViewFilter = '/OGC:WMT?S.*/'
441
+ linkProtocolDownloadFilter = '/OGC:WFS.*/'
442
+
443
+ protected async getBucketLabel(bucket: TermBucket) {
444
+ return firstValueFrom(
445
+ this.translateService.get(
446
+ `search.filters.availableServices.${bucket.term}`
447
+ )
448
+ )
449
+ }
450
+
451
+ protected getAggregations(): AggregationsParams {
452
+ return {
453
+ availableServices: {
454
+ type: 'filters',
455
+ filters: {
456
+ view: `+linkProtocol:${this.linkProtocolViewFilter}`,
457
+ download: `+linkProtocol:${this.linkProtocolDownloadFilter}`,
458
+ },
459
+ },
460
+ }
461
+ }
462
+
463
+ getFiltersForValues(values: FieldValue[]): Observable<FieldFilters> {
464
+ const filters: FieldFilter = {}
465
+ if (values.includes('view')) filters[this.linkProtocolViewFilter] = true
466
+ if (values.includes('download'))
467
+ filters[this.linkProtocolDownloadFilter] = true
468
+
469
+ return of({
470
+ linkProtocol: filters,
471
+ })
472
+ }
473
+
474
+ getValuesForFilter(filters: FieldFilters): Observable<FieldValue[]> {
475
+ const linkFilter = filters.linkProtocol
476
+ if (!linkFilter) return of([])
477
+ const values = []
478
+ if (linkFilter[this.linkProtocolViewFilter]) values.push('view')
479
+ if (linkFilter[this.linkProtocolDownloadFilter]) values.push('download')
480
+ return of(values)
481
+ }
482
+ }
@@ -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
+ }
@@ -14,7 +14,11 @@
14
14
  [disabled]="true"
15
15
  ></gn-ui-text-input>
16
16
  <div class="flex flex-row gap-2 mt-2">
17
- <gn-ui-button type="gray" (buttonClick)="handleDelete()">
17
+ <gn-ui-button
18
+ type="gray"
19
+ (buttonClick)="handleDelete()"
20
+ data-cy="delete-image"
21
+ >
18
22
  <ng-icon class="me-1 text-primary" name="iconoirBin"></ng-icon>
19
23
  {{ 'input.image.delete' | translate }}
20
24
  </gn-ui-button>
@@ -39,12 +43,10 @@
39
43
  'border-primary-lighter bg-primary-white': dragFilesOver,
40
44
  'border-gray-300': !dragFilesOver,
41
45
  'cursor-pointer hover:border-gray-500':
42
- !isUploadInProgress && !uploadError && !showUrlInput && !disabled,
46
+ !isUploadInProgress && !uploadError && !disabled,
43
47
  'cursor-not-allowed': disabled,
44
48
  }"
45
- [attr.tabindex]="
46
- isUploadInProgress || uploadError || showUrlInput || disabled ? null : 0
47
- "
49
+ [attr.tabindex]="isUploadInProgress || uploadError || disabled ? null : 0"
48
50
  (keydown.enter)="fileInput.click()"
49
51
  (dragFilesOver)="handleDragFilesOver($event)"
50
52
  (dropFiles)="handleDropFiles($event)"
@@ -114,9 +116,7 @@
114
116
  type="file"
115
117
  class="hidden"
116
118
  (change)="handleFileInput($event)"
117
- [disabled]="
118
- showUrlInput || isUploadInProgress || uploadError || disabled
119
- "
119
+ [disabled]="isUploadInProgress || uploadError || disabled"
120
120
  />
121
121
  </label>
122
122
 
@@ -123,11 +123,10 @@ export class ImageInputComponent {
123
123
  }
124
124
 
125
125
  handleDropFiles(files: File[]) {
126
- if (!this.showUrlInput) {
127
- const validFiles = this.filterTypeImage(files)
128
- if (validFiles.length > 0) {
129
- this.resizeAndEmit(validFiles[0])
130
- }
126
+ const validFiles = this.filterTypeImage(files)
127
+ if (validFiles.length > 0) {
128
+ this.showUrlInput = false
129
+ this.resizeAndEmit(validFiles[0])
131
130
  }
132
131
  }
133
132
 
@@ -147,7 +146,6 @@ export class ImageInputComponent {
147
146
  async downloadUrl(url: string) {
148
147
  this.downloadError = false
149
148
  const name = url.split('/').pop()
150
-
151
149
  try {
152
150
  const response = await firstValueFrom(
153
151
  this.http.head(url, { observe: 'response' })
@@ -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'
@@ -5,31 +5,48 @@
5
5
  >
6
6
  <ng-icon name="iconoirSearch" class="text-primary search"></ng-icon>
7
7
  </div>
8
- <input
9
- #searchInput
10
- type="text"
11
- class="gn-ui-text-input"
12
- [ngClass]="{
13
- 'px-[--icon-width]': !allowSubmit,
14
- }"
15
- [placeholder]="placeholder"
16
- [formControl]="control"
17
- [matAutocomplete]="auto"
18
- (keyup.enter)="handleEnter(searchInput.value)"
19
- />
8
+ <div class="flex flex-row">
9
+ <input
10
+ #searchInput
11
+ type="text"
12
+ class="gn-ui-text-input"
13
+ (input)="handleInput($event)"
14
+ [placeholder]="placeholder"
15
+ [formControl]="control"
16
+ [matAutocomplete]="auto"
17
+ (keyup.enter)="handleEnter(searchInput.value)"
18
+ [ngClass]="{
19
+ 'text-primary': searchActive && enterButton,
20
+ 'text-gray-900': !searchActive,
21
+ 'px-[--icon-width]': !allowSubmit,
22
+ }"
23
+ />
24
+ <gn-ui-button
25
+ type="gray"
26
+ *ngIf="searchInput.value && displayEnterBtn"
27
+ extraClass="w-32 h-8 !opacity-100"
28
+ [ngStyle]="{ left: enterBtnPosition + 'px' }"
29
+ class="absolute"
30
+ disabled="true"
31
+ >
32
+ <ng-icon
33
+ name="iconoirLongArrowDownLeft"
34
+ class="!w-4 text-gray-900 font-bold"
35
+ ></ng-icon>
36
+ <span translate class="text-bold text-gray-900 font-bold">
37
+ Enter to search
38
+ </span>
39
+ </gn-ui-button>
40
+ </div>
20
41
  <gn-ui-button
21
- type="light"
22
- extraClass="border-0 text-primary-lightest hover:text-primary focus:text-primary absolute inset-y-[--icon-padding] {{
23
- allowSubmit
24
- ? 'right-[calc(var(--icon-width)+var(--icon-padding))]'
25
- : 'right-[--icon-padding]'
26
- }}"
42
+ type="primary"
43
+ [extraClass]="getExtraClass()"
27
44
  data-test="clear-btn"
28
45
  *ngIf="searchInput.value"
29
46
  aria-label="Clear"
30
47
  (buttonClick)="clear()"
31
48
  >
32
- <ng-icon name="matClose"></ng-icon>
49
+ <ng-icon class="text-white" name="matClose"></ng-icon>
33
50
  </gn-ui-button>
34
51
  <gn-ui-button
35
52
  type="light"
@@ -41,7 +41,7 @@ import {
41
41
  provideIcons,
42
42
  provideNgIconsConfig,
43
43
  } from '@ng-icons/core'
44
- import { iconoirSearch } from '@ng-icons/iconoir'
44
+ import { iconoirLongArrowDownLeft, iconoirSearch } from '@ng-icons/iconoir'
45
45
  import { matClose } from '@ng-icons/material-icons/baseline'
46
46
 
47
47
  export type AutocompleteItem = unknown
@@ -65,9 +65,10 @@ export type AutocompleteItem = unknown
65
65
  provideIcons({
66
66
  iconoirSearch,
67
67
  matClose,
68
+ iconoirLongArrowDownLeft,
68
69
  }),
69
70
  provideNgIconsConfig({
70
- size: '1.5rem',
71
+ size: '1.75rem',
71
72
  }),
72
73
  ],
73
74
  })
@@ -75,6 +76,7 @@ export class AutocompleteComponent
75
76
  implements OnInit, AfterViewInit, OnDestroy, OnChanges
76
77
  {
77
78
  @Input() placeholder: string
79
+ @Input() enterButton = false
78
80
  @Input() action: (value: string) => Observable<AutocompleteItem[]>
79
81
  @Input() value?: AutocompleteItem
80
82
  @Input() clearOnSelection = false
@@ -83,9 +85,11 @@ export class AutocompleteComponent
83
85
  @Input() minCharacterCount? = 3
84
86
  // this will show a submit button next to the input; if false, a search icon will appear on the left
85
87
  @Input() allowSubmit = false
88
+ @Input() forceTrackPosition = false
86
89
  @Output() itemSelected = new EventEmitter<AutocompleteItem>()
87
90
  @Output() inputSubmitted = new EventEmitter<string>()
88
91
  @Output() inputCleared = new EventEmitter<void>()
92
+ @Output() isSearchActive = new EventEmitter<boolean>()
89
93
  @ViewChild(MatAutocompleteTrigger) triggerRef: MatAutocompleteTrigger
90
94
  @ViewChild(MatAutocomplete) autocomplete: MatAutocomplete
91
95
  @ViewChild('searchInput') inputRef: ElementRef<HTMLInputElement>
@@ -98,15 +102,38 @@ export class AutocompleteComponent
98
102
  error: string | null = null
99
103
  suggestions$: Observable<AutocompleteItem[]>
100
104
  subscription = new Subscription()
105
+ private lastPosition: DOMRect | null = null
106
+ private intervalIdPosition: number | undefined
107
+ enterBtnPosition = 0
108
+ searchActive = false
101
109
 
102
110
  @Input() displayWithFn: (item: AutocompleteItem) => string = (item) =>
103
111
  item.toString()
104
112
 
113
+ get displayEnterBtn() {
114
+ return this.enterButton && this.allowSubmit && !this.searchActive
115
+ }
116
+
105
117
  displayWithFnInternal = (item?: AutocompleteItem) => {
106
118
  if (item === null || item === undefined) return null
107
119
  return this.displayWithFn(item)
108
120
  }
109
121
 
122
+ getExtraClass(): string {
123
+ if (this.allowSubmit) {
124
+ if (this.enterButton) {
125
+ return 'border rounded-lg absolute w-8 h-8 right-[calc(var(--icon-width)+var(--icon-padding))] inset-y-[--icon-padding]'
126
+ } else {
127
+ return 'border rounded-lg absolute w-8 h-8 right-[calc(var(--icon-width)+0.25*var(--icon-width))] inset-y-[calc(0.25*var(--icon-width))]'
128
+ }
129
+ } else {
130
+ if (!this.enterButton) {
131
+ return 'border rounded-lg absolute w-8 h-8 right-2 inset-y-2'
132
+ }
133
+ }
134
+ return 'border rounded-lg absolute w-8 h-8'
135
+ }
136
+
110
137
  constructor(private cdRef: ChangeDetectorRef) {}
111
138
  ngOnChanges(changes: SimpleChanges): void {
112
139
  const { value } = changes
@@ -114,6 +141,13 @@ export class AutocompleteComponent
114
141
  const previousTextValue = this.displayWithFnInternal(value.previousValue)
115
142
  const currentTextValue = this.displayWithFnInternal(value.currentValue)
116
143
  if (previousTextValue !== currentTextValue) {
144
+ if (currentTextValue) {
145
+ this.searchActive = true
146
+ this.isSearchActive.emit(true)
147
+ } else {
148
+ this.searchActive = false
149
+ this.isSearchActive.emit(false)
150
+ }
117
151
  this.updateInputValue(value.currentValue)
118
152
  }
119
153
  }
@@ -147,6 +181,12 @@ export class AutocompleteComponent
147
181
  this.error = null
148
182
  }),
149
183
  switchMap((value) => this.action(value)),
184
+ tap((suggestions) => {
185
+ // forcing the panel to open if there are suggestions
186
+ if (suggestions.length > 0) {
187
+ this.triggerRef?.openPanel()
188
+ }
189
+ }),
150
190
  catchError((error: Error) => {
151
191
  this.error = error.message
152
192
  return of([])
@@ -191,10 +231,49 @@ export class AutocompleteComponent
191
231
  this.inputRef.nativeElement.focus()
192
232
  this.cdRef.detectChanges()
193
233
  }
234
+
235
+ this.startTrackingPosition()
236
+ }
237
+
238
+ /**
239
+ * !!! This function is used only for web component mode,
240
+ * the autocomplete dropdown may not update its position
241
+ * if the page or container is disabling wind scroll.
242
+ */
243
+ private trackPosition = () => {
244
+ const dropdownOpened = this.triggerRef && this.triggerRef.panelOpen
245
+ const rect = this.inputRef.nativeElement.getBoundingClientRect()
246
+
247
+ if (
248
+ dropdownOpened &&
249
+ (!this.lastPosition ||
250
+ rect.top !== this.lastPosition.top ||
251
+ rect.left !== this.lastPosition.left)
252
+ ) {
253
+ this.triggerRef.updatePosition()
254
+ }
255
+
256
+ this.lastPosition = rect
257
+ requestAnimationFrame(this.trackPosition)
258
+ }
259
+
260
+ /**
261
+ * !!! This function is used only for web component mode,
262
+ * the autocomplete dropdown may not update its position
263
+ * if the page or container is disabling wind scroll.
264
+ */
265
+ startTrackingPosition() {
266
+ if (this.forceTrackPosition) {
267
+ requestAnimationFrame(this.trackPosition)
268
+ }
194
269
  }
195
270
 
196
271
  ngOnDestroy(): void {
197
272
  this.subscription?.unsubscribe()
273
+
274
+ if (this.intervalIdPosition) {
275
+ clearInterval(this.intervalIdPosition)
276
+ }
198
277
  }
199
278
 
200
279
  updateInputValue(value: AutocompleteItem) {
@@ -208,6 +287,8 @@ export class AutocompleteComponent
208
287
 
209
288
  clear(): void {
210
289
  this.inputRef.nativeElement.value = ''
290
+ this.searchActive = false
291
+ this.isSearchActive.emit(false)
211
292
  this.inputCleared.emit()
212
293
  this.selectionSubject
213
294
  .pipe(take(1))
@@ -217,6 +298,8 @@ export class AutocompleteComponent
217
298
 
218
299
  handleEnter(any: string) {
219
300
  if (!this.cancelEnter && this.allowSubmit) {
301
+ this.isSearchActive.emit(true)
302
+ this.searchActive = true
220
303
  this.inputSubmitted.emit(any)
221
304
  }
222
305
  }
@@ -246,4 +329,10 @@ export class AutocompleteComponent
246
329
  this.control.setValue('')
247
330
  }
248
331
  }
332
+
333
+ handleInput(event: InputEvent) {
334
+ this.searchActive = false
335
+ this.isSearchActive.emit(false)
336
+ this.enterBtnPosition = event.target['value'].length * 8 + 80
337
+ }
249
338
  }
@@ -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,
@@ -31,7 +31,7 @@ import { iconoirArrowUp, iconoirLink } from '@ng-icons/iconoir'
31
31
  ],
32
32
  changeDetection: ChangeDetectionStrategy.OnPush,
33
33
  })
34
- export class UrlInputComponent implements OnChanges {
34
+ export class UrlInputComponent {
35
35
  @Input() set value(v: string) {
36
36
  // we're making sure to only update the input if the URL representation of it has changed; otherwise we keep it identical
37
37
  // to avoid glitches when starting to write a URL and having some characters added/replaced automatically
@@ -59,12 +59,6 @@ export class UrlInputComponent implements OnChanges {
59
59
 
60
60
  constructor(private cd: ChangeDetectorRef) {}
61
61
 
62
- ngOnChanges(changes: SimpleChanges) {
63
- if (changes['value']) {
64
- this.inputValue = changes['value'].currentValue
65
- }
66
- }
67
-
68
62
  handleInput(event: Event) {
69
63
  const value = (event.target as HTMLInputElement).value
70
64
  this.inputValue = value