geonetwork-ui 2.6.0-dev.a6b2f3e85 → 2.6.0-dev.b1563a5e0

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 (172) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/common/distribution.mapper.mjs +3 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +28 -3
  3. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +2 -2
  4. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/constant.mjs +2 -1
  5. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +3 -3
  6. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +28 -5
  7. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  8. package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
  9. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +32 -2
  10. package/esm2022/libs/feature/record/src/index.mjs +2 -3
  11. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +31 -5
  12. package/esm2022/libs/feature/record/src/lib/state/mdview.actions.mjs +3 -1
  13. package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +7 -1
  14. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +13 -13
  15. package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +7 -1
  16. package/esm2022/libs/feature/record/src/lib/state/mdview.selectors.mjs +3 -1
  17. package/esm2022/libs/feature/search/src/lib/constants.mjs +2 -1
  18. package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +6 -2
  19. package/esm2022/libs/ui/elements/src/index.mjs +3 -1
  20. package/esm2022/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.mjs +55 -0
  21. package/esm2022/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.mjs +27 -53
  22. package/esm2022/libs/ui/elements/src/lib/kind-badge/kind-badge.component.mjs +22 -5
  23. package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +3 -3
  24. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +3 -3
  25. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +3 -3
  26. package/esm2022/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.mjs +51 -0
  27. package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +17 -7
  28. package/esm2022/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.mjs +12 -4
  29. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +10 -4
  30. package/esm2022/libs/ui/inputs/src/index.mjs +2 -1
  31. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +3 -3
  32. package/esm2022/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.mjs +68 -0
  33. package/esm2022/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.mjs +3 -3
  34. package/esm2022/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.mjs +34 -13
  35. package/esm2022/libs/ui/layout/src/lib/truncated-text/truncated-text.component.mjs +65 -14
  36. package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +4 -8
  37. package/esm2022/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.mjs +3 -3
  38. package/esm2022/libs/ui/search/src/lib/results-list/results-layout.config.mjs +2 -2
  39. package/esm2022/libs/ui/search/src/lib/results-list/results-list.component.mjs +3 -3
  40. package/esm2022/libs/util/shared/src/lib/links/link-classifier.service.mjs +4 -1
  41. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +4 -1
  42. package/esm2022/translations/de.json +6 -2
  43. package/esm2022/translations/en.json +7 -5
  44. package/esm2022/translations/es.json +6 -2
  45. package/esm2022/translations/fr.json +6 -4
  46. package/esm2022/translations/it.json +38 -34
  47. package/esm2022/translations/nl.json +6 -2
  48. package/esm2022/translations/pt.json +6 -2
  49. package/fesm2022/geonetwork-ui.mjs +959 -569
  50. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  51. package/libs/api/metadata-converter/src/lib/common/distribution.mapper.d.ts.map +1 -1
  52. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  53. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  54. package/libs/api/repository/src/lib/gn4/elasticsearch/constant.d.ts.map +1 -1
  55. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +1 -1
  56. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  57. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +3 -0
  58. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  59. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +2 -1
  60. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  61. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +2 -0
  62. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  63. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +1 -0
  64. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  65. package/libs/feature/record/src/index.d.ts +1 -2
  66. package/libs/feature/record/src/index.d.ts.map +1 -1
  67. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  68. package/libs/feature/record/src/lib/state/mdview.actions.d.ts +10 -0
  69. package/libs/feature/record/src/lib/state/mdview.actions.d.ts.map +1 -1
  70. package/libs/feature/record/src/lib/state/mdview.effects.d.ts +6 -0
  71. package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
  72. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +28 -21
  73. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  74. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts +2 -0
  75. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts.map +1 -1
  76. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts +2 -0
  77. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts.map +1 -1
  78. package/libs/feature/search/src/lib/constants.d.ts.map +1 -1
  79. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts +1 -1
  80. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts.map +1 -1
  81. package/libs/ui/elements/src/index.d.ts +2 -0
  82. package/libs/ui/elements/src/index.d.ts.map +1 -1
  83. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts +15 -0
  84. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts.map +1 -0
  85. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts +3 -7
  86. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -1
  87. package/libs/ui/elements/src/lib/kind-badge/kind-badge.component.d.ts +3 -1
  88. package/libs/ui/elements/src/lib/kind-badge/kind-badge.component.d.ts.map +1 -1
  89. package/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.d.ts +16 -0
  90. package/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.d.ts.map +1 -0
  91. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts +8 -1
  92. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts.map +1 -1
  93. package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts +1 -0
  94. package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts.map +1 -1
  95. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +2 -1
  96. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  97. package/libs/ui/inputs/src/index.d.ts +1 -0
  98. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  99. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts +17 -0
  100. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts.map +1 -0
  101. package/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.d.ts +15 -8
  102. package/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.d.ts.map +1 -1
  103. package/libs/ui/layout/src/lib/truncated-text/truncated-text.component.d.ts +15 -6
  104. package/libs/ui/layout/src/lib/truncated-text/truncated-text.component.d.ts.map +1 -1
  105. package/libs/ui/search/src/lib/results-list/results-list.component.d.ts.map +1 -1
  106. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts.map +1 -1
  107. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  108. package/package.json +1 -1
  109. package/src/libs/api/metadata-converter/src/lib/common/distribution.mapper.ts +1 -0
  110. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +44 -3
  111. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +2 -1
  112. package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +1 -0
  113. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +2 -2
  114. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +49 -5
  115. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +8 -1
  116. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +2 -0
  117. package/src/libs/common/fixtures/src/lib/elasticsearch/metadata-links.fixtures.ts +10 -0
  118. package/src/libs/common/fixtures/src/lib/link.fixtures.ts +14 -0
  119. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +1 -1
  120. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +37 -0
  121. package/src/libs/feature/record/src/index.ts +1 -2
  122. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +35 -4
  123. package/src/libs/feature/record/src/lib/state/mdview.actions.ts +10 -0
  124. package/src/libs/feature/record/src/lib/state/mdview.effects.ts +22 -0
  125. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +22 -15
  126. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +12 -0
  127. package/src/libs/feature/record/src/lib/state/mdview.selectors.ts +9 -0
  128. package/src/libs/feature/search/src/lib/constants.ts +1 -0
  129. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +2 -0
  130. package/src/libs/ui/elements/src/index.ts +2 -0
  131. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.css +4 -0
  132. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.html +13 -0
  133. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.ts +54 -0
  134. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +133 -138
  135. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +19 -47
  136. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.html +7 -5
  137. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.ts +21 -2
  138. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +6 -3
  139. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +4 -0
  140. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +1 -1
  141. package/src/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.html +48 -0
  142. package/src/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.ts +52 -0
  143. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +8 -29
  144. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.ts +14 -1
  145. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.html +15 -1
  146. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts +9 -1
  147. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +3 -1
  148. package/src/libs/ui/inputs/src/index.ts +1 -0
  149. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +1 -1
  150. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.css +0 -0
  151. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.html +43 -0
  152. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.ts +77 -0
  153. package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.html +1 -2
  154. package/src/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.html +24 -8
  155. package/src/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.ts +36 -10
  156. package/src/libs/ui/layout/src/lib/truncated-text/truncated-text.component.html +8 -10
  157. package/src/libs/ui/layout/src/lib/truncated-text/truncated-text.component.ts +75 -7
  158. package/src/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.html +9 -81
  159. package/src/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.html +1 -0
  160. package/src/libs/ui/search/src/lib/results-list/results-layout.config.ts +2 -2
  161. package/src/libs/ui/search/src/lib/results-list/results-list.component.html +1 -0
  162. package/src/libs/ui/search/src/lib/results-list/results-list.component.ts +0 -1
  163. package/src/libs/util/shared/src/lib/links/link-classifier.service.ts +3 -0
  164. package/src/libs/util/shared/src/lib/links/link-utils.ts +3 -0
  165. package/translations/de.json +6 -2
  166. package/translations/en.json +7 -5
  167. package/translations/es.json +6 -2
  168. package/translations/fr.json +6 -4
  169. package/translations/it.json +38 -34
  170. package/translations/nl.json +6 -2
  171. package/translations/pt.json +6 -2
  172. package/translations/sk.json +6 -2
@@ -1,12 +1,19 @@
1
1
  import { CatalogRecord } from '../../../../../../libs/common/domain/src/lib/model/record';
2
+ import { TemplateRef } from '@angular/core';
2
3
  import * as i0 from "@angular/core";
3
4
  export declare class RelatedRecordCardComponent {
4
5
  private readonly baseClasses;
6
+ linkHref: string;
5
7
  record: CatalogRecord;
6
8
  extraClass: string;
9
+ favoriteTemplate: TemplateRef<{
10
+ $implicit: CatalogRecord;
11
+ }>;
12
+ metadataQualityDisplay: boolean;
13
+ size: string;
7
14
  constructor();
8
15
  get classList(): string;
9
16
  static ɵfac: i0.ɵɵFactoryDeclaration<RelatedRecordCardComponent, never>;
10
- static ɵcmp: i0.ɵɵComponentDeclaration<RelatedRecordCardComponent, "gn-ui-related-record-card", never, { "record": { "alias": "record"; "required": false; }; "extraClass": { "alias": "extraClass"; "required": false; }; }, {}, never, never, true, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<RelatedRecordCardComponent, "gn-ui-related-record-card", never, { "linkHref": { "alias": "linkHref"; "required": false; }; "record": { "alias": "record"; "required": false; }; "extraClass": { "alias": "extraClass"; "required": false; }; "favoriteTemplate": { "alias": "favoriteTemplate"; "required": false; }; "metadataQualityDisplay": { "alias": "metadataQualityDisplay"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
11
18
  }
12
19
  //# sourceMappingURL=related-record-card.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"related-record-card.component.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,2DAA2D,CAAA;;AAQzF,qBAea,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IAE3B,MAAM,EAAE,aAAa,CAAA;IACrB,UAAU,SAAK;;IAgBxB,IAAI,SAAS,WAEZ;yCAtBU,0BAA0B;2CAA1B,0BAA0B;CAuBtC"}
1
+ {"version":3,"file":"related-record-card.component.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,2DAA2D,CAAA;AAQzF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;;AAE3C,qBAgBa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IAE3B,QAAQ,EAAE,MAAM,CAAO;IACvB,MAAM,EAAE,aAAa,CAAA;IACrB,UAAU,SAAK;IACf,gBAAgB,EAAE,WAAW,CAAC;QAAE,SAAS,EAAE,aAAa,CAAA;KAAE,CAAC,CAAA;IAC3D,sBAAsB,EAAE,OAAO,CAAA;IAC/B,IAAI,EAAE,MAAM,CAAA;;IAgBrB,IAAI,SAAS,WAEZ;yCA1BU,0BAA0B;2CAA1B,0BAA0B;CA2BtC"}
@@ -18,6 +18,7 @@ export declare class ServiceCapabilitiesComponent implements OnInit {
18
18
  ngOnInit(): void;
19
19
  onSearchChange(event: Event): void;
20
20
  onSearchEnter(event: KeyboardEvent): void;
21
+ clearSearch(): void;
21
22
  loadLayers(): Promise<void>;
22
23
  selectLayer(layer: WfsFeatureTypeFull | WmsLayerFull | WmtsLayer): void;
23
24
  isList(value: string | string[]): value is string[];
@@ -1 +1 @@
1
- {"version":3,"file":"service-capabilities.component.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAoB,MAAM,EAAE,MAAM,eAAe,CAAA;AAE3E,OAAO,EAAmB,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAWvE,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACV,MAAM,wBAAwB,CAAA;;AAiB/B,qBAqBa,4BAA6B,YAAW,MAAM;IA2BvD,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,gBAAgB;IA3BjB,QAAQ,QAAK;IACtB,eAAe,QAAK;IACpB,cAAc,QAAK;IACnB,aAAa,MAAO;IACpB,gBAAgB,QAAK;IACrB,WAAW,SAAK;IAChB,OAAO,UAAQ;IACf,YAAY,MAAA;IAEZ,gBAAgB,WAcf;gBAGS,GAAG,EAAE,iBAAiB,EACtB,gBAAgB,EAAE,gBAAgB;IAG5C,QAAQ;IAIR,cAAc,CAAC,KAAK,EAAE,KAAK;IAS3B,aAAa,CAAC,KAAK,EAAE,aAAa;IAO5B,UAAU;IAkBhB,WAAW,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,GAAG,SAAS;IAuBhE,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAI/B,kBAAkB;IAOlB,YAAY;IAmBZ,aAAa,CAAC,SAAS,KAAA;yCA1HZ,4BAA4B;2CAA5B,4BAA4B;CA+HxC"}
1
+ {"version":3,"file":"service-capabilities.component.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAoB,MAAM,EAAE,MAAM,eAAe,CAAA;AAE3E,OAAO,EAAmB,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAWvE,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACV,MAAM,wBAAwB,CAAA;;AAkB/B,qBAsBa,4BAA6B,YAAW,MAAM;IA2BvD,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,gBAAgB;IA3BjB,QAAQ,QAAK;IACtB,eAAe,QAAK;IACpB,cAAc,QAAK;IACnB,aAAa,MAAO;IACpB,gBAAgB,QAAK;IACrB,WAAW,SAAK;IAChB,OAAO,UAAQ;IACf,YAAY,MAAA;IAEZ,gBAAgB,WAcf;gBAGS,GAAG,EAAE,iBAAiB,EACtB,gBAAgB,EAAE,gBAAgB;IAG5C,QAAQ;IAIR,cAAc,CAAC,KAAK,EAAE,KAAK;IAS3B,aAAa,CAAC,KAAK,EAAE,aAAa;IAOlC,WAAW;IAML,UAAU;IAkBhB,WAAW,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,GAAG,SAAS;IAuBhE,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAI/B,kBAAkB;IAOlB,YAAY;IAmBZ,aAAa,CAAC,SAAS,KAAA;yCAhIZ,4BAA4B;2CAA5B,4BAA4B;CAqIxC"}
@@ -22,9 +22,10 @@ import * as i20 from "./application-banner/application-banner.component";
22
22
  import * as i21 from "./internal-link-card/internal-link-card.component";
23
23
  import * as i22 from "./service-capabilities/service-capabilities.component";
24
24
  import * as i23 from "./kind-badge/kind-badge.component";
25
+ import * as i24 from "./geo-data-badge/geo-data-badge.component";
25
26
  export declare class UiElementsModule {
26
27
  static ɵfac: i0.ɵɵFactoryDeclaration<UiElementsModule, never>;
27
- static ɵmod: i0.ɵɵNgModuleDeclaration<UiElementsModule, [typeof i1.AvatarComponent, typeof i2.UserPreviewComponent], [typeof i3.CommonModule, typeof i4.MatTooltipModule, typeof i5.UiWidgetsModule, typeof i6.UiLayoutModule, typeof i7.TranslateModule, typeof i8.UtilSharedModule, typeof i9.RouterModule, typeof i10.UiInputsModule, typeof i11.FormsModule, typeof i3.NgOptimizedImage, typeof i12.PopoverComponent, typeof i13.MarkdownParserComponent, typeof i14.ThumbnailComponent, typeof i15.TimeSincePipe, typeof i16.BadgeComponent, typeof i17.MaxLinesComponent, typeof i18.TextInputComponent, typeof i19.ImageInputComponent, typeof i20.ApplicationBannerComponent, typeof i21.InternalLinkCardComponent, typeof i22.ServiceCapabilitiesComponent, typeof i23.KindBadgeComponent], [typeof i14.ThumbnailComponent, typeof i1.AvatarComponent, typeof i2.UserPreviewComponent, typeof i13.MarkdownParserComponent, typeof i19.ImageInputComponent, typeof i20.ApplicationBannerComponent, typeof i21.InternalLinkCardComponent, typeof i22.ServiceCapabilitiesComponent, typeof i23.KindBadgeComponent]>;
28
+ static ɵmod: i0.ɵɵNgModuleDeclaration<UiElementsModule, [typeof i1.AvatarComponent, typeof i2.UserPreviewComponent], [typeof i3.CommonModule, typeof i4.MatTooltipModule, typeof i5.UiWidgetsModule, typeof i6.UiLayoutModule, typeof i7.TranslateModule, typeof i8.UtilSharedModule, typeof i9.RouterModule, typeof i10.UiInputsModule, typeof i11.FormsModule, typeof i3.NgOptimizedImage, typeof i12.PopoverComponent, typeof i13.MarkdownParserComponent, typeof i14.ThumbnailComponent, typeof i15.TimeSincePipe, typeof i16.BadgeComponent, typeof i17.MaxLinesComponent, typeof i18.TextInputComponent, typeof i19.ImageInputComponent, typeof i20.ApplicationBannerComponent, typeof i21.InternalLinkCardComponent, typeof i22.ServiceCapabilitiesComponent, typeof i23.KindBadgeComponent, typeof i24.GeoDataBadgeComponent], [typeof i14.ThumbnailComponent, typeof i1.AvatarComponent, typeof i2.UserPreviewComponent, typeof i13.MarkdownParserComponent, typeof i19.ImageInputComponent, typeof i20.ApplicationBannerComponent, typeof i21.InternalLinkCardComponent, typeof i22.ServiceCapabilitiesComponent, typeof i23.KindBadgeComponent, typeof i24.GeoDataBadgeComponent]>;
28
29
  static ɵinj: i0.ɵɵInjectorDeclaration<UiElementsModule>;
29
30
  }
30
31
  //# sourceMappingURL=ui-elements.module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui-elements.module.d.ts","sourceRoot":"","sources":["../../../../../src/libs/ui/elements/src/lib/ui-elements.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA0BA,qBA2Ca,gBAAgB;yCAAhB,gBAAgB;0CAAhB,gBAAgB;0CAAhB,gBAAgB;CAAG"}
1
+ {"version":3,"file":"ui-elements.module.d.ts","sourceRoot":"","sources":["../../../../../src/libs/ui/elements/src/lib/ui-elements.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,qBA6Ca,gBAAgB;yCAAhB,gBAAgB;0CAAhB,gBAAgB;0CAAhB,gBAAgB;CAAG"}
@@ -24,4 +24,5 @@ export * from './lib/text-input/text-input.component';
24
24
  export * from './lib/ui-inputs.module';
25
25
  export * from './lib/url-input/url-input.component';
26
26
  export * from './lib/viewport-intersector/viewport-intersector.component';
27
+ export * from './lib/search-feature-catalog/search-feature-catalog.component';
27
28
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/libs/ui/inputs/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2CAA2C,CAAA;AACzD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,2CAA2C,CAAA;AACzD,cAAc,mCAAmC,CAAA;AACjD,cAAc,mDAAmD,CAAA;AACjE,cAAc,yCAAyC,CAAA;AACvD,cAAc,yDAAyD,CAAA;AACvE,cAAc,qDAAqD,CAAA;AACnE,cAAc,mEAAmE,CAAA;AACjF,cAAc,2DAA2D,CAAA;AACzE,cAAc,uDAAuD,CAAA;AACrE,cAAc,qDAAqD,CAAA;AACnE,cAAc,iDAAiD,CAAA;AAC/D,cAAc,+CAA+C,CAAA;AAC7D,cAAc,uCAAuC,CAAA;AACrD,cAAc,uCAAuC,CAAA;AACrD,cAAc,6CAA6C,CAAA;AAC3D,cAAc,2CAA2C,CAAA;AACzD,cAAc,yCAAyC,CAAA;AACvD,cAAc,6CAA6C,CAAA;AAC3D,cAAc,qCAAqC,CAAA;AACnD,cAAc,uCAAuC,CAAA;AACrD,cAAc,wBAAwB,CAAA;AACtC,cAAc,qCAAqC,CAAA;AACnD,cAAc,2DAA2D,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/libs/ui/inputs/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2CAA2C,CAAA;AACzD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,2CAA2C,CAAA;AACzD,cAAc,mCAAmC,CAAA;AACjD,cAAc,mDAAmD,CAAA;AACjE,cAAc,yCAAyC,CAAA;AACvD,cAAc,yDAAyD,CAAA;AACvE,cAAc,qDAAqD,CAAA;AACnE,cAAc,mEAAmE,CAAA;AACjF,cAAc,2DAA2D,CAAA;AACzE,cAAc,uDAAuD,CAAA;AACrE,cAAc,qDAAqD,CAAA;AACnE,cAAc,iDAAiD,CAAA;AAC/D,cAAc,+CAA+C,CAAA;AAC7D,cAAc,uCAAuC,CAAA;AACrD,cAAc,uCAAuC,CAAA;AACrD,cAAc,6CAA6C,CAAA;AAC3D,cAAc,2CAA2C,CAAA;AACzD,cAAc,yCAAyC,CAAA;AACvD,cAAc,6CAA6C,CAAA;AAC3D,cAAc,qCAAqC,CAAA;AACnD,cAAc,uCAAuC,CAAA;AACrD,cAAc,wBAAwB,CAAA;AACtC,cAAc,qCAAqC,CAAA;AACnD,cAAc,2DAA2D,CAAA;AACzE,cAAc,+DAA+D,CAAA"}
@@ -0,0 +1,17 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { DatasetFeatureCatalog } from '../../../../../../libs/common/domain/src/lib/model/record';
3
+ import * as i0 from "@angular/core";
4
+ export declare class SearchFeatureCatalogComponent {
5
+ private _featureCatalog;
6
+ searchTerm: any;
7
+ set featureCatalog(value: DatasetFeatureCatalog);
8
+ get featureCatalog(): DatasetFeatureCatalog;
9
+ filteredFeatureCatalogChange: EventEmitter<DatasetFeatureCatalog>;
10
+ filteredFeatureCatalog: DatasetFeatureCatalog;
11
+ filterAction: (searchTerm: string) => void;
12
+ get totalObjects(): number;
13
+ get totalAttributes(): number;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<SearchFeatureCatalogComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<SearchFeatureCatalogComponent, "gn-ui-search-feature-catalog", never, { "featureCatalog": { "alias": "featureCatalog"; "required": false; }; }, { "filteredFeatureCatalogChange": "filteredFeatureCatalogChange"; }, never, never, true, never>;
16
+ }
17
+ //# sourceMappingURL=search-feature-catalog.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-feature-catalog.component.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,eAAe,CAAA;AAItE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2DAA2D,CAAA;;AAOjG,qBAaa,6BAA6B;IACxC,OAAO,CAAC,eAAe,CAAuB;IAC9C,UAAU,EAAE,GAAG,CAAA;IACf,IAAa,cAAc,CAAC,KAAK,EAAE,qBAAqB,EAGvD;IACD,IAAI,cAAc,IAAI,qBAAqB,CAE1C;IAES,4BAA4B,sCACK;IAC3C,sBAAsB,EAAE,qBAAqB,CAAA;IAE7C,YAAY,eAAgB,MAAM,KAAG,IAAI,CAuBxC;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,eAAe,IAAI,MAAM,CAO5B;yCAnDU,6BAA6B;2CAA7B,6BAA6B;CAoDzC"}
@@ -1,13 +1,20 @@
1
- import { ElementRef } from '@angular/core';
1
+ import { ElementRef, TemplateRef, OnDestroy, ChangeDetectorRef, AfterViewInit } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- export declare class ExpandablePanelComponent {
4
- title: string;
5
- collapsed: boolean;
6
- contentDiv: ElementRef;
7
- maxHeight: string;
3
+ export declare class ExpandablePanelComponent implements AfterViewInit, OnDestroy {
4
+ private readonly changeDetector;
5
+ title?: string;
6
+ iconColor?: string;
7
+ titleTemplate?: TemplateRef<HTMLElement>;
8
+ contentDiv?: ElementRef;
9
+ private _collapsed;
10
+ private contentObserver?;
11
+ constructor(changeDetector: ChangeDetectorRef);
12
+ ngAfterViewInit(): void;
13
+ set collapsed(value: boolean);
14
+ get collapsed(): boolean;
8
15
  toggle(): void;
9
- setMaxHeight(): string;
16
+ ngOnDestroy(): void;
10
17
  static ɵfac: i0.ɵɵFactoryDeclaration<ExpandablePanelComponent, never>;
11
- static ɵcmp: i0.ɵɵComponentDeclaration<ExpandablePanelComponent, "gn-ui-expandable-panel", never, { "title": { "alias": "title"; "required": false; }; "collapsed": { "alias": "collapsed"; "required": false; }; }, {}, never, ["*"], true, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<ExpandablePanelComponent, "gn-ui-expandable-panel", never, { "title": { "alias": "title"; "required": false; }; "iconColor": { "alias": "iconColor"; "required": false; }; "collapsed": { "alias": "collapsed"; "required": false; }; }, {}, ["titleTemplate"], ["*"], true, never>;
12
19
  }
13
20
  //# sourceMappingURL=expandable-panel.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"expandable-panel.component.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,EAGX,MAAM,eAAe,CAAA;;AAKtB,qBASa,wBAAwB;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,UAAO;IACA,UAAU,EAAE,UAAU,CAAA;IAC/C,SAAS,SAAsB;IAE/B,MAAM,IAAI,IAAI;IAKd,YAAY;yCAXD,wBAAwB;2CAAxB,wBAAwB;CAgBpC"}
1
+ {"version":3,"file":"expandable-panel.component.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,UAAU,EAEV,WAAW,EAEX,SAAS,EACT,iBAAiB,EACjB,aAAa,EACd,MAAM,eAAe,CAAA;;AAKtB,qBASa,wBAAyB,YAAW,aAAa,EAAE,SAAS;IAS3D,OAAO,CAAC,QAAQ,CAAC,cAAc;IARlC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,SAAK;IACO,aAAa,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAA;IAC9C,UAAU,CAAC,EAAE,UAAU,CAAA;IAEhD,OAAO,CAAC,UAAU,CAAO;IACzB,OAAO,CAAC,eAAe,CAAC,CAAgB;gBAEX,cAAc,EAAE,iBAAiB;IAE9D,eAAe;IASf,IAAa,SAAS,CAAC,KAAK,EAAE,OAAO,EAEpC;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,MAAM,IAAI,IAAI;IAId,WAAW;yCAhCA,wBAAwB;2CAAxB,wBAAwB;CAqCpC"}
@@ -1,18 +1,27 @@
1
- import { AfterViewInit, ChangeDetectorRef, ElementRef } from '@angular/core';
1
+ import { AfterViewInit, ChangeDetectorRef, ElementRef, OnDestroy, NgZone } from '@angular/core';
2
+ import { ViewportRuler, ConnectedPosition } from '@angular/cdk/overlay';
2
3
  import * as i0 from "@angular/core";
3
- export declare class TruncatedTextComponent implements AfterViewInit {
4
- private cd;
4
+ export declare class TruncatedTextComponent implements AfterViewInit, OnDestroy {
5
+ private readonly cd;
6
+ private readonly ngZone;
7
+ private readonly viewportRuler;
5
8
  text: string;
9
+ extraClass: string;
6
10
  textElement: ElementRef<HTMLElement>;
7
11
  isTextTruncated: boolean;
8
12
  isOpen: boolean;
9
- constructor(cd: ChangeDetectorRef);
13
+ overlayPosition: ConnectedPosition;
14
+ private readonly resizeObserver;
15
+ private readonly mutationObserver;
16
+ private readonly viewportSubscription;
17
+ constructor(cd: ChangeDetectorRef, ngZone: NgZone, viewportRuler: ViewportRuler);
10
18
  ngAfterViewInit(): void;
11
- ngOnChange(): void;
19
+ ngOnDestroy(): void;
12
20
  toggleOverlay(): void;
21
+ private updateOverlayPosition;
13
22
  close(): void;
14
23
  private checkTextTruncation;
15
24
  static ɵfac: i0.ɵɵFactoryDeclaration<TruncatedTextComponent, never>;
16
- static ɵcmp: i0.ɵɵComponentDeclaration<TruncatedTextComponent, "gn-ui-truncated-text", never, { "text": { "alias": "text"; "required": false; }; }, {}, never, never, true, never>;
25
+ static ɵcmp: i0.ɵɵComponentDeclaration<TruncatedTextComponent, "gn-ui-truncated-text", never, { "text": { "alias": "text"; "required": false; }; "extraClass": { "alias": "extraClass"; "required": false; }; }, {}, never, never, true, never>;
17
26
  }
18
27
  //# sourceMappingURL=truncated-text.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"truncated-text.component.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/ui/layout/src/lib/truncated-text/truncated-text.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,iBAAiB,EAEjB,UAAU,EAGX,MAAM,eAAe,CAAA;;AAUtB,qBAea,sBAAuB,YAAW,aAAa;IAM9C,OAAO,CAAC,EAAE;IALb,IAAI,SAAK;IACQ,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,CAAA;IAC9D,eAAe,UAAQ;IACvB,MAAM,UAAQ;gBAEM,EAAE,EAAE,iBAAiB;IAEzC,eAAe;IAIf,UAAU;IAIV,aAAa;IAIb,KAAK;IAIL,OAAO,CAAC,mBAAmB;yCAxBhB,sBAAsB;2CAAtB,sBAAsB;CA6BlC"}
1
+ {"version":3,"file":"truncated-text.component.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/ui/layout/src/lib/truncated-text/truncated-text.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,iBAAiB,EAEjB,UAAU,EAEV,SAAS,EAET,MAAM,EACP,MAAM,eAAe,CAAA;AAMtB,OAAO,EAEL,aAAa,EACb,iBAAiB,EAClB,MAAM,sBAAsB,CAAA;;AAI7B,qBAea,sBAAuB,YAAW,aAAa,EAAE,SAAS;IAkBnE,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAnBvB,IAAI,SAAK;IACT,UAAU,SAAK;IAEE,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,CAAA;IAC9D,eAAe,UAAQ;IACvB,MAAM,UAAQ;IACd,eAAe,EAAE,iBAAiB,CAKjC;IACD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;IACnD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAc;gBAGhC,EAAE,EAAE,iBAAiB,EACrB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,aAAa;IAoB/C,eAAe;IAWf,WAAW;IAOX,aAAa;IAOb,OAAO,CAAC,qBAAqB;IAgB7B,KAAK;IAIL,OAAO,CAAC,mBAAmB;yCArFhB,sBAAsB;2CAAtB,sBAAsB;CA2FlC"}
@@ -1 +1 @@
1
- {"version":3,"file":"results-list.component.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/ui/search/src/lib/results-list/results-list.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EAIZ,WAAW,EACZ,MAAM,eAAe,CAAA;AACtB,OAAO,EAEL,uBAAuB,EACxB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,2DAA2D,CAAA;;AAEzF,qBAMa,oBAAoB;IACtB,OAAO,EAAE,aAAa,EAAE,CAAA;IACxB,YAAY,EAAE,uBAAuB,CACP;IAC9B,gBAAgB,EAAE,WAAW,CAAC;QAAE,SAAS,EAAE,aAAa,CAAA;KAAE,CAAC,CAAA;IAC3D,eAAe,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,MAAM,CAAA;IAClD,sBAAsB,EAAE,OAAO,CAAA;IAC9B,QAAQ,8BAAoC;yCAP3C,oBAAoB;2CAApB,oBAAoB;CAQhC"}
1
+ {"version":3,"file":"results-list.component.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/ui/search/src/lib/results-list/results-list.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EAGZ,WAAW,EACZ,MAAM,eAAe,CAAA;AACtB,OAAO,EAEL,uBAAuB,EACxB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,2DAA2D,CAAA;;AAEzF,qBAMa,oBAAoB;IACtB,OAAO,EAAE,aAAa,EAAE,CAAA;IACxB,YAAY,EAAE,uBAAuB,CACP;IAC9B,gBAAgB,EAAE,WAAW,CAAC;QAAE,SAAS,EAAE,aAAa,CAAA;KAAE,CAAC,CAAA;IAC3D,eAAe,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,MAAM,CAAA;IAClD,sBAAsB,EAAE,OAAO,CAAA;IAC9B,QAAQ,8BAAoC;yCAP3C,oBAAoB;2CAApB,oBAAoB;CAQhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"link-classifier.service.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/util/shared/src/lib/links/link-classifier.service.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,2DAA2D,CAAA;;AAGlE,oBAAY,SAAS;IACnB,GAAG,QAAQ;IACX,OAAO,WAAW;IAClB,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,YAAY,gBAAgB;IAC5B,OAAO,YAAY;CACpB;AAED,qBAGa,qBAAqB;IAChC,gBAAgB,CACd,IAAI,EAAE,qBAAqB,GAAG,qBAAqB,GAClD,SAAS,EAAE;IAuCd,QAAQ,CACN,IAAI,EAAE,qBAAqB,GAAG,qBAAqB,EACnD,KAAK,EAAE,SAAS;yCA5CP,qBAAqB;6CAArB,qBAAqB;CAgDjC"}
1
+ {"version":3,"file":"link-classifier.service.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/util/shared/src/lib/links/link-classifier.service.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,2DAA2D,CAAA;;AAGlE,oBAAY,SAAS;IACnB,GAAG,QAAQ;IACX,OAAO,WAAW;IAClB,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,YAAY,gBAAgB;IAC5B,OAAO,YAAY;CACpB;AAED,qBAGa,qBAAqB;IAChC,gBAAgB,CACd,IAAI,EAAE,qBAAqB,GAAG,qBAAqB,GAClD,SAAS,EAAE;IA0Cd,QAAQ,CACN,IAAI,EAAE,qBAAqB,GAAG,qBAAqB,EACnD,KAAK,EAAE,SAAS;yCA/CP,qBAAqB;6CAArB,qBAAqB;CAmDjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"link-utils.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/util/shared/src/lib/links/link-utils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EAChB,MAAM,2DAA2D,CAAA;AAUlE,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgHV,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,OAAO,CAAA;AAE7C,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAUhE;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,qBAAqB,GAAG,qBAAqB,GAClD,MAAM,CAER;AAED,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,MAAM,GACpB,UAAU,GAAG,IAAI,CAgBnB;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,qBAAqB,GAAG,qBAAqB,GAClD,UAAU,CAcZ;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,qBAAqB,GAAG,qBAAqB,EACnD,KAAK,EAAE,MAAM,GACZ,OAAO,CAQT;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAO7D;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,qBAAqB,GAAG,qBAAqB,EACnD,MAAM,EAAE,UAAU,GACjB,OAAO,CAQT;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAQ5D;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,qBAAqB,GAAG,qBAAqB,GAClD,MAAM,CA0BR;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe;;;;;;8JAmC5E;AAED,wBAAgB,eAAe,CAAC,SAAS,KAAA,SAUxC;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAEtE"}
1
+ {"version":3,"file":"link-utils.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/util/shared/src/lib/links/link-utils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EAChB,MAAM,2DAA2D,CAAA;AAUlE,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgHV,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,OAAO,CAAA;AAE7C,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAUhE;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,qBAAqB,GAAG,qBAAqB,GAClD,MAAM,CAER;AAED,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,MAAM,GACpB,UAAU,GAAG,IAAI,CAgBnB;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,qBAAqB,GAAG,qBAAqB,GAClD,UAAU,CAcZ;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,qBAAqB,GAAG,qBAAqB,EACnD,KAAK,EAAE,MAAM,GACZ,OAAO,CAQT;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAO7D;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,qBAAqB,GAAG,qBAAqB,EACnD,MAAM,EAAE,UAAU,GACjB,OAAO,CAQT;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAQ5D;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,qBAAqB,GAAG,qBAAqB,GAClD,MAAM,CA6BR;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe;;;;;;8JAmC5E;AAED,wBAAgB,eAAe,CAAC,SAAS,KAAA,SAUxC;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAEtE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "geonetwork-ui",
3
- "version": "2.6.0-dev.a6b2f3e85",
3
+ "version": "2.6.0-dev.b1563a5e0",
4
4
  "engines": {
5
5
  "node": ">=20"
6
6
  },
@@ -4,6 +4,7 @@ export function matchProtocol(protocol: string): ServiceProtocol {
4
4
  if (/wms/i.test(protocol)) return 'wms'
5
5
  if (/wfs/i.test(protocol)) return 'wfs'
6
6
  if (/wmts/i.test(protocol)) return 'wmts'
7
+ if (/tms/i.test(protocol)) return 'tms'
7
8
  if (/wps/i.test(protocol)) return 'wps'
8
9
  if (/ogc\W*api\W*features/i.test(protocol)) return 'ogcFeatures'
9
10
  if (/esri/i.test(protocol)) return 'esriRest'
@@ -294,12 +294,52 @@ export class Gn4FieldMapper {
294
294
  ) ?? {},
295
295
  '_source'
296
296
  )
297
- const featureCatalogIdentifier = selectField(
297
+ const featureCatalogIdentifier: string = selectField(
298
298
  <SourceWithUnknownProps>fcatSource,
299
299
  'uuid'
300
300
  )
301
- return featureCatalogIdentifier
302
- ? this.addExtra({ featureCatalogIdentifier }, output)
301
+ const sourceOfLinks = getAsArray(
302
+ selectField(
303
+ <SourceWithUnknownProps>selectField(source, 'related'),
304
+ 'hassources'
305
+ )
306
+ )
307
+ const sourceOfIdentifiers: string[] = sourceOfLinks
308
+ .filter((link) => link['origin'] === 'catalog')
309
+ .map((link) => {
310
+ return selectField(
311
+ selectField(<SourceWithUnknownProps>link, '_source'),
312
+ 'uuid'
313
+ )
314
+ })
315
+ const extraValues: Record<string, string | string[]> = {}
316
+ if (featureCatalogIdentifier) {
317
+ extraValues.featureCatalogIdentifier = featureCatalogIdentifier
318
+ }
319
+ if (sourceOfIdentifiers && sourceOfIdentifiers.length > 0) {
320
+ extraValues.sourceOfIdentifiers = sourceOfIdentifiers
321
+ }
322
+ return Object.keys(extraValues).length > 0
323
+ ? this.addExtra(extraValues, output)
324
+ : output
325
+ },
326
+ recordLink: (output, source) => {
327
+ const recordLinks = getAsArray(
328
+ selectField<SourceWithUnknownProps[]>(source, 'recordLink')
329
+ )
330
+ const sourcesIdentifiers: string[] = recordLinks
331
+ .filter(
332
+ (link) => link['origin'] === 'catalog' && link['type'] === 'sources'
333
+ )
334
+ .map((link) => selectField(<SourceWithUnknownProps>link, 'to'))
335
+
336
+ return sourcesIdentifiers && sourcesIdentifiers.length > 0
337
+ ? this.addExtra(
338
+ {
339
+ sourcesIdentifiers,
340
+ },
341
+ output
342
+ )
303
343
  : output
304
344
  },
305
345
  isPublishedToAll: (output, source) =>
@@ -430,6 +470,7 @@ export class Gn4FieldMapper {
430
470
  /^OGC:WMS/.test(protocol) ||
431
471
  /^OGC:WFS/.test(protocol) ||
432
472
  /^OGC:WMTS/.test(protocol) ||
473
+ /TMS/i.test(protocol) ||
433
474
  /ogc\W*api\W*features/i.test(protocol) ||
434
475
  (/^WWW:DOWNLOAD-/.test(protocol) && /data.geopf.fr/.test(url)) // TO DO : change with the good protocol when decided
435
476
  ) {
@@ -65,7 +65,8 @@ export function extractCharacterString(): ChainableFunction<
65
65
  return pipe(
66
66
  fallback(
67
67
  findChildElement('gco:CharacterString', false),
68
- findChildElement('gmx:Anchor', false)
68
+ findChildElement('gmx:Anchor', false),
69
+ findChildElement('gmx:MimeFileType', false)
69
70
  ),
70
71
  readText()
71
72
  )
@@ -8,6 +8,7 @@ export const ES_SOURCE_SUMMARY = [
8
8
  'overview',
9
9
  'logo',
10
10
  'codelist_status_text',
11
+ 'link',
11
12
  'linkProtocol',
12
13
  'contactForResource.organisation',
13
14
  'contact.organisation',
@@ -124,11 +124,11 @@ export class ElasticsearchService {
124
124
  this.runtimeFields[fieldName] = expression
125
125
  }
126
126
 
127
- getMetadataByIdPayload(uuid: string): EsSearchParams {
127
+ getMetadataByIdsPayload(uuids: string[]): EsSearchParams {
128
128
  return {
129
129
  query: {
130
130
  ids: {
131
- values: [uuid],
131
+ values: uuids,
132
132
  },
133
133
  },
134
134
  }
@@ -129,9 +129,9 @@ export class Gn4Repository implements RecordsRepositoryInterface {
129
129
  return this.gn4SearchApi
130
130
  .search(
131
131
  'bucket',
132
- ['fcats'],
132
+ ['fcats', 'hassources'],
133
133
  JSON.stringify(
134
- this.gn4SearchHelper.getMetadataByIdPayload(uniqueIdentifier)
134
+ this.gn4SearchHelper.getMetadataByIdsPayload([uniqueIdentifier])
135
135
  )
136
136
  )
137
137
  .pipe(
@@ -142,6 +142,27 @@ export class Gn4Repository implements RecordsRepositoryInterface {
142
142
  )
143
143
  }
144
144
 
145
+ getMultipleRecords(
146
+ uniqueIdentifiers: string[]
147
+ ): Observable<CatalogRecord[] | null> {
148
+ return this.gn4SearchApi
149
+ .search(
150
+ 'bucket',
151
+ undefined,
152
+ JSON.stringify(
153
+ this.gn4SearchHelper.getMetadataByIdsPayload(uniqueIdentifiers)
154
+ )
155
+ )
156
+ .pipe(
157
+ map((results: Gn4SearchResults) => results.hits.hits),
158
+ switchMap((records) =>
159
+ records && records.length > 0
160
+ ? this.gn4Mapper.readRecords(records)
161
+ : of(null)
162
+ )
163
+ )
164
+ }
165
+
145
166
  private mapEmbeddedFeatureCatalog(
146
167
  featureTypes: Array<DatasetFeatureType>
147
168
  ): DatasetFeatureCatalog {
@@ -154,6 +175,7 @@ export class Gn4Repository implements RecordsRepositoryInterface {
154
175
  name: attr.name,
155
176
  code: attr.code,
156
177
  title: attr.definition,
178
+ type: attr.type,
157
179
  }))
158
180
  : [],
159
181
  })),
@@ -165,7 +187,8 @@ export class Gn4Repository implements RecordsRepositoryInterface {
165
187
  ): Observable<DatasetFeatureCatalog | null> {
166
188
  if (
167
189
  record.extras?.['featureTypes'] &&
168
- Array.isArray(record.extras['featureTypes'])
190
+ Array.isArray(record.extras['featureTypes']) &&
191
+ record.extras['featureTypes'].length > 0
169
192
  ) {
170
193
  return of(this.mapEmbeddedFeatureCatalog(record.extras['featureTypes']))
171
194
  }
@@ -201,6 +224,24 @@ export class Gn4Repository implements RecordsRepositoryInterface {
201
224
  )
202
225
  }
203
226
 
227
+ getSources(record: CatalogRecord): Observable<CatalogRecord[]> {
228
+ const sourcesIdentifiers = record.extras?.['sourcesIdentifiers'] as string[]
229
+ if (sourcesIdentifiers && sourcesIdentifiers.length > 0) {
230
+ return this.getMultipleRecords(sourcesIdentifiers)
231
+ }
232
+ return of(null)
233
+ }
234
+
235
+ getSourceOf(record: CatalogRecord): Observable<CatalogRecord[]> {
236
+ const sourceOfIdentifiers = record.extras?.[
237
+ 'sourceOfIdentifiers'
238
+ ] as string[]
239
+ if (sourceOfIdentifiers && sourceOfIdentifiers.length > 0) {
240
+ return this.getMultipleRecords(sourceOfIdentifiers)
241
+ }
242
+ return of(null)
243
+ }
244
+
204
245
  aggregate(params: AggregationsParams): Observable<Aggregations> {
205
246
  // if aggregations are empty, return an empty object right away
206
247
  if (Object.keys(params).length === 0) return of({})
@@ -363,9 +404,12 @@ export class Gn4Repository implements RecordsRepositoryInterface {
363
404
  const record = await converter.readRecord(fetchedRecordAsXml)
364
405
 
365
406
  record.title = `${record.title} (Copy)`
366
- await converter.writeRecord(record, fetchedRecordAsXml)
407
+ const recordAsXml = await converter.writeRecord(
408
+ record,
409
+ fetchedRecordAsXml
410
+ )
367
411
 
368
- return this.saveRecord(record, '', false)
412
+ return this.saveRecord(record, recordAsXml, false)
369
413
  }),
370
414
  exhaustMap((uuidObservable: Observable<string>) => uuidObservable),
371
415
  catchError((error: HttpErrorResponse) => {
@@ -152,6 +152,8 @@ export type ServiceProtocol =
152
152
  | 'esriRest'
153
153
  | 'ogcFeatures'
154
154
  | 'GPFDL'
155
+ | 'tms'
156
+ | 'maplibre-style'
155
157
  | 'other'
156
158
 
157
159
  export type OnlineResourceType = 'service' | 'download' | 'link' | 'endpoint'
@@ -272,7 +274,12 @@ export interface DatasetFeatureType {
272
274
  isAbstract: string
273
275
  typeName: string
274
276
  definition: string
275
- attributeTable: Array<{ name: string; definition: string; code: string }>
277
+ attributeTable: Array<{
278
+ name: string
279
+ definition: string
280
+ type: string
281
+ code: string
282
+ }>
276
283
  }
277
284
 
278
285
  export type ReuseType = 'application' | 'map' | 'other'
@@ -19,6 +19,8 @@ export abstract class RecordsRepositoryInterface {
19
19
  abstract getSimilarRecords(
20
20
  similarTo: CatalogRecord
21
21
  ): Observable<CatalogRecord[]>
22
+ abstract getSources(record: CatalogRecord): Observable<CatalogRecord[]>
23
+ abstract getSourceOf(record: CatalogRecord): Observable<CatalogRecord[]>
22
24
  abstract fuzzySearch(query: string): Observable<SearchResults>
23
25
  abstract canEditRecord(uniqueIdentifier: string): Observable<boolean>
24
26
  /**
@@ -144,4 +144,14 @@ export const elasticLinkFixture = (): Record<string, unknown> => ({
144
144
  name: 'ogcapi features layer',
145
145
  url: 'https://mel.integration.apps.gs-fr-prod.camptocamp.com/data/ogcapi/collections/comptages_velo/items?',
146
146
  },
147
+ maplayerTms: {
148
+ accessServiceProtocol: 'TMS',
149
+ name: 'mytmslayer',
150
+ url: 'https://my.tms.server/MapServer',
151
+ },
152
+ maplayerTms2: {
153
+ accessServiceProtocol: 'OSGeo:TMS',
154
+ name: 'myothertmslayer',
155
+ url: 'https://my.tms.server/MapServer',
156
+ },
147
157
  })
@@ -185,6 +185,20 @@ export const aSetOfLinksFixture = () => ({
185
185
  url: new URL('https://my.ogc.server/wms'),
186
186
  accessServiceProtocol: 'wms',
187
187
  }) as DatasetServiceDistribution,
188
+ geodataTms: () =>
189
+ ({
190
+ name: 'mytmslayer',
191
+ type: 'service',
192
+ url: new URL('https://my.ogc.server/tms'),
193
+ accessServiceProtocol: 'tms',
194
+ }) as DatasetServiceDistribution,
195
+ geodataAsMaplibreStyle: () =>
196
+ ({
197
+ name: 'mytmslayerAsMaplibreJson',
198
+ type: 'service',
199
+ url: new URL('https://my.ogc.server/tms/layer/style.json'),
200
+ accessServiceProtocol: 'maplibre-style',
201
+ }) as DatasetServiceDistribution,
188
202
  geodataWfs2: () =>
189
203
  ({
190
204
  name: 'myotherlayer',
@@ -231,7 +231,7 @@ As such, **it is not very interesting at all.**`,
231
231
  recordUpdated: new Date('2022-04-15T14:18:19'),
232
232
  resourceUpdated: new Date('2022-03-29'),
233
233
  title:
234
- "Plan local d'urbanisme (PLU) dématérialisé - commune d'Avrigny - approbation du 29/03/2022",
234
+ "Plan local d'urbanisme (PLU) dématérialisé - commune d'Avrigny - approbation du 29/03/2022 (Ce lot informe du droit à bâtir sur la commune d'Avrigny)",
235
235
  abstract: `Plan local d'urbanisme (PLU) dématérialisé - commune d'Avrigny - approbation du 29/03/2022.
236
236
 
237
237
  Ce lot informe du droit à bâtir sur la commune d'Avrigny.
@@ -6,6 +6,7 @@ import {
6
6
  OgcApiRecord,
7
7
  WfsEndpoint,
8
8
  WfsVersion,
9
+ TmsEndpoint,
9
10
  } from '@camptocamp/ogc-client'
10
11
  import {
11
12
  BaseReader,
@@ -231,6 +232,42 @@ export class DataService {
231
232
  })
232
233
  }
233
234
 
235
+ async getGeodataLinksFromTms(
236
+ tmsLink: DatasetServiceDistribution,
237
+ keepOriginalLink = false
238
+ ): Promise<DatasetServiceDistribution[]> {
239
+ const endpoint = new TmsEndpoint(tmsLink.url.toString())
240
+ const tileMaps = await endpoint.allTileMaps
241
+ if (!tileMaps?.length) return null
242
+
243
+ // TODO: at some point use the identifierInService field if more that one layers in the TMS service
244
+ const tileMapInfo = await endpoint.getTileMapInfo(tileMaps[0].href)
245
+
246
+ // case 1: no styles; return a plain TMS link
247
+ if (!tileMapInfo?.metadata?.length) return [tmsLink]
248
+
249
+ // case 2: styles present; return each as a separate link
250
+ const styleLinks = tileMapInfo.metadata
251
+ .filter((meta) => meta.href)
252
+ .map((meta) => {
253
+ const fileName = meta.href.split('/').pop() || ''
254
+ const linkName =
255
+ tmsLink.description || ('name' in tmsLink ? tmsLink.name : '')
256
+ const styleName = fileName.split('.')[0]
257
+ const name = `${linkName} - ${styleName}`
258
+ return {
259
+ type: 'service',
260
+ url: new URL(meta.href),
261
+ name,
262
+ accessServiceProtocol: 'maplibre-style',
263
+ } as DatasetServiceDistribution
264
+ })
265
+ if (keepOriginalLink) {
266
+ styleLinks.unshift(tmsLink)
267
+ }
268
+ return styleLinks
269
+ }
270
+
234
271
  getDownloadLinksFromEsriRest(
235
272
  esriRestLink: DatasetServiceDistribution
236
273
  ): DatasetOnlineResource[] {
@@ -5,7 +5,6 @@ export * from './lib/data-view/data-view.component'
5
5
  export * from './lib/data-view-share/data-view-share.component'
6
6
  export * from './lib/data-view-web-component/data-view-web-component.component'
7
7
  export * from './lib/external-viewer-button/external-viewer-button.component'
8
- export * from './lib/map-view/map-view.component'
9
8
  export * from './lib/gpf-api-dl/gpf-api-dl.component'
9
+ export * from './lib/map-view/map-view.component'
10
10
  export * from './lib/record-meta/record-meta.component'
11
- export * from './lib/external-viewer-button/external-viewer-button.component'
@@ -39,8 +39,8 @@ import {
39
39
  import {
40
40
  FeatureDetailComponent,
41
41
  MapContainerComponent,
42
- prioritizePageScroll,
43
42
  MapLegendComponent,
43
+ prioritizePageScroll,
44
44
  } from '../../../../../../libs/ui/map/src'
45
45
  import { Feature } from 'geojson'
46
46
  import { NgIconComponent, provideIcons } from '@ng-icons/core'
@@ -109,9 +109,20 @@ export class MapViewComponent implements AfterViewInit {
109
109
  this.mdViewFacade.mapApiLinks$,
110
110
  this.mdViewFacade.geoDataLinksWithGeometry$,
111
111
  ]).pipe(
112
- map(([mapApiLinks, geoDataLinksWithGeometry]) => {
113
- return [...mapApiLinks, ...geoDataLinksWithGeometry]
114
- })
112
+ switchMap(async ([mapApiLinks, geoDataLinksWithGeometry]) => {
113
+ // looking for TMS links to process
114
+ let processedMapApiLinks = await Promise.all(
115
+ mapApiLinks.map((link) => {
116
+ if (link.type === 'service' && link.accessServiceProtocol === 'tms') {
117
+ return this.dataService.getGeodataLinksFromTms(link)
118
+ }
119
+ return link
120
+ })
121
+ )
122
+ processedMapApiLinks = processedMapApiLinks.flat()
123
+ return [...processedMapApiLinks, ...geoDataLinksWithGeometry]
124
+ }),
125
+ shareReplay(1)
115
126
  )
116
127
 
117
128
  dropdownChoices$ = this.compatibleMapLinks$.pipe(
@@ -239,6 +250,26 @@ export class MapViewComponent implements AfterViewInit {
239
250
  type: 'wms',
240
251
  name: link.name,
241
252
  })
253
+ } else if (
254
+ link.type === 'service' &&
255
+ link.accessServiceProtocol === 'tms'
256
+ ) {
257
+ // FIXME: here we're assuming that the TMS serves vector tiles only; should be checked with ogc-client first
258
+ return of({
259
+ url: link.url.toString().replace(/\/?$/, '/{z}/{x}/{y}.pbf'),
260
+ type: 'xyz',
261
+ tileFormat: 'application/vnd.mapbox-vector-tile',
262
+ name: link.name,
263
+ })
264
+ } else if (
265
+ link.type === 'service' &&
266
+ link.accessServiceProtocol === 'maplibre-style'
267
+ ) {
268
+ return of({
269
+ type: 'maplibre-style',
270
+ name: link.name,
271
+ styleUrl: link.url.toString(),
272
+ })
242
273
  } else if (
243
274
  link.type === 'service' &&
244
275
  link.accessServiceProtocol === 'wmts'