geonetwork-ui 2.4.0-dev.8f04e899 → 2.4.0-dev.9c5250ea

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 (54) hide show
  1. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +10 -1
  2. package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
  3. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +4 -11
  4. package/esm2022/libs/feature/search/src/index.mjs +2 -2
  5. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +49 -0
  6. package/esm2022/libs/ui/search/src/index.mjs +2 -1
  7. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +120 -0
  8. package/esm2022/translations/de.json +8 -1
  9. package/esm2022/translations/en.json +8 -1
  10. package/esm2022/translations/es.json +8 -1
  11. package/esm2022/translations/fr.json +8 -1
  12. package/esm2022/translations/it.json +8 -1
  13. package/esm2022/translations/nl.json +8 -1
  14. package/esm2022/translations/pt.json +8 -1
  15. package/fesm2022/geonetwork-ui.mjs +185 -104
  16. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  17. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +1 -0
  18. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  19. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +2 -0
  20. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  21. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  22. package/libs/feature/search/src/index.d.ts +1 -1
  23. package/libs/feature/search/src/index.d.ts.map +1 -1
  24. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +25 -0
  25. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -0
  26. package/libs/ui/search/src/index.d.ts +1 -0
  27. package/libs/ui/search/src/index.d.ts.map +1 -1
  28. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +30 -0
  29. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -0
  30. package/package.json +1 -1
  31. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +14 -0
  32. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +3 -0
  33. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +8 -0
  34. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +38 -31
  35. package/src/libs/feature/search/src/index.ts +1 -1
  36. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +9 -0
  37. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +49 -0
  38. package/src/libs/ui/search/src/index.ts +1 -0
  39. package/src/libs/ui/search/src/lib/results-table/results-table.component.css +0 -0
  40. package/src/libs/{feature → ui}/search/src/lib/results-table/results-table.component.html +8 -8
  41. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +138 -0
  42. package/translations/de.json +8 -1
  43. package/translations/en.json +8 -1
  44. package/translations/es.json +8 -1
  45. package/translations/fr.json +8 -1
  46. package/translations/it.json +8 -1
  47. package/translations/nl.json +8 -1
  48. package/translations/pt.json +8 -1
  49. package/translations/sk.json +8 -1
  50. package/esm2022/libs/feature/search/src/lib/results-table/results-table.component.mjs +0 -136
  51. package/libs/feature/search/src/lib/results-table/results-table.component.d.ts +0 -36
  52. package/libs/feature/search/src/lib/results-table/results-table.component.d.ts.map +0 -1
  53. package/src/libs/feature/search/src/lib/results-table/results-table.component.ts +0 -171
  54. /package/src/libs/feature/search/src/lib/results-table/{results-table.component.css → results-table-container.component.css} +0 -0
@@ -8,7 +8,7 @@ import * as i1$1 from '@ngx-translate/core';
8
8
  import { TranslateCompiler, TranslateLoader, TranslateModule, TranslateService } from '@ngx-translate/core';
9
9
  import { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-compiler';
10
10
  import { TranslateHttpLoader } from '@ngx-translate/http-loader';
11
- import { map as map$1, catchError, tap as tap$1, shareReplay, filter, startWith, withLatestFrom, switchMap as switchMap$1, take, delay, distinctUntilChanged, debounceTime, finalize, throttleTime, first as first$1, share, pairwise, mergeMap, defaultIfEmpty, scan } from 'rxjs/operators';
11
+ import { map as map$1, catchError, tap as tap$1, shareReplay, filter, startWith, withLatestFrom, switchMap as switchMap$1, take, delay, distinctUntilChanged, debounceTime, finalize, throttleTime, first as first$1, share, pairwise, mergeMap, defaultIfEmpty, toArray } from 'rxjs/operators';
12
12
  import { marker } from '@biesbjerg/ngx-translate-extract-marker';
13
13
  import * as i1$3 from '@angular/common';
14
14
  import { CommonModule, NgFor, NgComponentOutlet, NgOptimizedImage, NgForOf } from '@angular/common';
@@ -17306,6 +17306,7 @@ var next$6 = "weiter";
17306
17306
  var previous$6 = "zurück";
17307
17307
  var records$6 = "Datensätze";
17308
17308
  var de = {
17309
+ "Add Layer As": "",
17309
17310
  "button.login": "",
17310
17311
  "catalog.figures.datasets": "{count, plural, =0{Datensätze} one{Datensatz} other{Datensätze}}",
17311
17312
  "catalog.figures.organisations": "{count, plural, =0{Organisationen} one{Organisation} other{Organisationen}}",
@@ -17324,16 +17325,22 @@ var de = {
17324
17325
  "chart.type.line": "Liniendiagramm",
17325
17326
  "chart.type.lineSmooth": "Geglättes Liniendiagramm",
17326
17327
  "chart.type.pie": "Kreisdiagramm",
17328
+ "dashboard.catalog.allRecords": "Metadatenkatalog",
17329
+ "dashboard.catalog.calendar": "Kalender",
17330
+ "dashboard.catalog.contacts": "Kontakte",
17331
+ "dashboard.catalog.discussion": "Diskussion",
17332
+ "dashboard.catalog.thesaurus": "Thesaurus",
17327
17333
  "dashboard.createRecord": "Neuer Eintrag",
17334
+ "dashboard.labels.catalog": "Katalog",
17328
17335
  "dashboard.labels.mySpace": "Mein Bereich",
17329
17336
  "dashboard.records.all": "Katalog",
17330
17337
  "dashboard.records.hasDraft": "",
17331
17338
  "dashboard.records.myDraft": "Meine Entwürfe",
17332
17339
  "dashboard.records.myLibrary": "Meine Bibliothek",
17333
- "dashboard.records.myOrg": "Meine Organisation",
17334
17340
  "dashboard.records.myRecords": "Meine Datensätze",
17335
17341
  "dashboard.records.publishedRecords": "{count, plural, =1{veröffentlichter Datensatz} other{veröffentlichte Datensätze}}",
17336
17342
  "dashboard.records.search": "Suche nach \"{searchText}\"",
17343
+ "dashboard.records.templates": "Vorlagen",
17337
17344
  "dashboard.records.userDetail": "Name",
17338
17345
  "dashboard.records.userEmail": "E-Mail",
17339
17346
  "dashboard.records.username": "Benutzername",
@@ -17709,6 +17716,7 @@ var next$5 = "next";
17709
17716
  var previous$5 = "previous";
17710
17717
  var records$5 = "records";
17711
17718
  var en = {
17719
+ "Add Layer As": "",
17712
17720
  "button.login": "Log in",
17713
17721
  "catalog.figures.datasets": "{count, plural, =0{datasets} one{dataset} other{datasets}}",
17714
17722
  "catalog.figures.organisations": "{count, plural, =0{organisations} one{organisation} other{organisations}}",
@@ -17727,16 +17735,22 @@ var en = {
17727
17735
  "chart.type.line": "line chart",
17728
17736
  "chart.type.lineSmooth": "smooth line chart",
17729
17737
  "chart.type.pie": "pie chart",
17738
+ "dashboard.catalog.allRecords": "Metadata records",
17739
+ "dashboard.catalog.calendar": "Calendar",
17740
+ "dashboard.catalog.contacts": "Contacts",
17741
+ "dashboard.catalog.discussion": "Discussion",
17742
+ "dashboard.catalog.thesaurus": "Thesaurus",
17730
17743
  "dashboard.createRecord": "New record",
17744
+ "dashboard.labels.catalog": "Catalog",
17731
17745
  "dashboard.labels.mySpace": "My space",
17732
17746
  "dashboard.records.all": "Metadata records",
17733
17747
  "dashboard.records.hasDraft": "draft",
17734
17748
  "dashboard.records.myDraft": "My drafts",
17735
17749
  "dashboard.records.myLibrary": "My library",
17736
- "dashboard.records.myOrg": "Organization",
17737
17750
  "dashboard.records.myRecords": "My Records",
17738
17751
  "dashboard.records.publishedRecords": "{count, plural, =1{published record} other{published records}}",
17739
17752
  "dashboard.records.search": "Search for \"{searchText}\"",
17753
+ "dashboard.records.templates": "Templates",
17740
17754
  "dashboard.records.userDetail": "Name",
17741
17755
  "dashboard.records.userEmail": "Email",
17742
17756
  "dashboard.records.username": "Username",
@@ -18112,6 +18126,7 @@ var next$4 = "";
18112
18126
  var previous$4 = "";
18113
18127
  var records$4 = "";
18114
18128
  var es = {
18129
+ "Add Layer As": "",
18115
18130
  "button.login": "",
18116
18131
  "catalog.figures.datasets": "conjuntos de datos",
18117
18132
  "catalog.figures.organisations": "organizaciones",
@@ -18130,16 +18145,22 @@ var es = {
18130
18145
  "chart.type.line": "gráfico de líneas",
18131
18146
  "chart.type.lineSmooth": "gráfico de líneas suave",
18132
18147
  "chart.type.pie": "gráfico circular",
18148
+ "dashboard.catalog.allRecords": "",
18149
+ "dashboard.catalog.calendar": "",
18150
+ "dashboard.catalog.contacts": "",
18151
+ "dashboard.catalog.discussion": "",
18152
+ "dashboard.catalog.thesaurus": "",
18133
18153
  "dashboard.createRecord": "",
18154
+ "dashboard.labels.catalog": "Catálogo",
18134
18155
  "dashboard.labels.mySpace": "Mi espacio",
18135
18156
  "dashboard.records.all": "Catálogo",
18136
18157
  "dashboard.records.hasDraft": "",
18137
18158
  "dashboard.records.myDraft": "Mis borradores",
18138
18159
  "dashboard.records.myLibrary": "Mi biblioteca",
18139
- "dashboard.records.myOrg": "Organización",
18140
18160
  "dashboard.records.myRecords": "Mis Registros",
18141
18161
  "dashboard.records.publishedRecords": "",
18142
18162
  "dashboard.records.search": "Buscar \"{searchText}\"",
18163
+ "dashboard.records.templates": "",
18143
18164
  "dashboard.records.userDetail": "",
18144
18165
  "dashboard.records.userEmail": "",
18145
18166
  "dashboard.records.username": "",
@@ -18515,6 +18536,7 @@ var next$3 = "suivant";
18515
18536
  var previous$3 = "précédent";
18516
18537
  var records$3 = "enregistrements";
18517
18538
  var fr = {
18539
+ "Add Layer As": "",
18518
18540
  "button.login": "Se connecter",
18519
18541
  "catalog.figures.datasets": "{count, plural, =0{données} one{donnée} other{données}}",
18520
18542
  "catalog.figures.organisations": "{count, plural, =0{organisations} one{organisation} other{organisations}}",
@@ -18533,16 +18555,22 @@ var fr = {
18533
18555
  "chart.type.line": "ligne",
18534
18556
  "chart.type.lineSmooth": "ligne lisse",
18535
18557
  "chart.type.pie": "camembert",
18558
+ "dashboard.catalog.allRecords": "Fiches de métadonnée",
18559
+ "dashboard.catalog.calendar": "Calendrier",
18560
+ "dashboard.catalog.contacts": "Annuaire",
18561
+ "dashboard.catalog.discussion": "Discussions",
18562
+ "dashboard.catalog.thesaurus": "Thesaurus",
18536
18563
  "dashboard.createRecord": "Nouvel enregistrement",
18564
+ "dashboard.labels.catalog": "Catalogue",
18537
18565
  "dashboard.labels.mySpace": "Mon espace",
18538
18566
  "dashboard.records.all": "Catalogue",
18539
18567
  "dashboard.records.hasDraft": "brouillon",
18540
18568
  "dashboard.records.myDraft": "Mes brouillons",
18541
18569
  "dashboard.records.myLibrary": "Ma bibliothèque",
18542
- "dashboard.records.myOrg": "Mon organisation",
18543
18570
  "dashboard.records.myRecords": "Mes fiches publiées",
18544
18571
  "dashboard.records.publishedRecords": "{count, plural, =1{donnée publiée} other{données publiées}}",
18545
18572
  "dashboard.records.search": "Résultats pour \"{searchText}\"",
18573
+ "dashboard.records.templates": "Modèles pré-remplis",
18546
18574
  "dashboard.records.userDetail": "Nom",
18547
18575
  "dashboard.records.userEmail": "Email",
18548
18576
  "dashboard.records.username": "Nom d'utilisateur",
@@ -18918,6 +18946,7 @@ var next$2 = "successivo";
18918
18946
  var previous$2 = "precedente";
18919
18947
  var records$2 = "record";
18920
18948
  var it = {
18949
+ "Add Layer As": "",
18921
18950
  "button.login": "",
18922
18951
  "catalog.figures.datasets": "{count, plural, =0{datasets} one{dataset} other{datasets}}",
18923
18952
  "catalog.figures.organisations": "{count, plural, =0{organizzazioni} one{organizzazione} other{organizzazioni}}",
@@ -18936,16 +18965,22 @@ var it = {
18936
18965
  "chart.type.line": "grafico a linee",
18937
18966
  "chart.type.lineSmooth": "grafico a linea liscia",
18938
18967
  "chart.type.pie": "grafico a torta",
18968
+ "dashboard.catalog.allRecords": "",
18969
+ "dashboard.catalog.calendar": "",
18970
+ "dashboard.catalog.contacts": "",
18971
+ "dashboard.catalog.discussion": "",
18972
+ "dashboard.catalog.thesaurus": "",
18939
18973
  "dashboard.createRecord": "Crea un record",
18974
+ "dashboard.labels.catalog": "Catalogo",
18940
18975
  "dashboard.labels.mySpace": "Il mio spazio",
18941
18976
  "dashboard.records.all": "Catalogo",
18942
18977
  "dashboard.records.hasDraft": "",
18943
18978
  "dashboard.records.myDraft": "Le mie bozze",
18944
18979
  "dashboard.records.myLibrary": "La mia biblioteca",
18945
- "dashboard.records.myOrg": "La mia organizzazione",
18946
18980
  "dashboard.records.myRecords": "I miei dati",
18947
18981
  "dashboard.records.publishedRecords": "dati pubblicati",
18948
18982
  "dashboard.records.search": "Risultati per \"{searchText}\"",
18983
+ "dashboard.records.templates": "",
18949
18984
  "dashboard.records.userDetail": "Nome",
18950
18985
  "dashboard.records.userEmail": "Email",
18951
18986
  "dashboard.records.username": "Nome utente",
@@ -19321,6 +19356,7 @@ var next$1 = "";
19321
19356
  var previous$1 = "";
19322
19357
  var records$1 = "";
19323
19358
  var nl = {
19359
+ "Add Layer As": "",
19324
19360
  "button.login": "",
19325
19361
  "catalog.figures.datasets": "datasets",
19326
19362
  "catalog.figures.organisations": "organisaties",
@@ -19339,16 +19375,22 @@ var nl = {
19339
19375
  "chart.type.line": "lijndiagram",
19340
19376
  "chart.type.lineSmooth": "glad lijndiagram",
19341
19377
  "chart.type.pie": "cirkeldiagram",
19378
+ "dashboard.catalog.allRecords": "",
19379
+ "dashboard.catalog.calendar": "",
19380
+ "dashboard.catalog.contacts": "",
19381
+ "dashboard.catalog.discussion": "",
19382
+ "dashboard.catalog.thesaurus": "",
19342
19383
  "dashboard.createRecord": "",
19384
+ "dashboard.labels.catalog": "Catalogus",
19343
19385
  "dashboard.labels.mySpace": "Mijn ruimte",
19344
19386
  "dashboard.records.all": "Catalogus",
19345
19387
  "dashboard.records.hasDraft": "",
19346
19388
  "dashboard.records.myDraft": "Mijn concepten",
19347
19389
  "dashboard.records.myLibrary": "Mijn bibliotheek",
19348
- "dashboard.records.myOrg": "Organisatie",
19349
19390
  "dashboard.records.myRecords": "Mijn Records",
19350
19391
  "dashboard.records.publishedRecords": "",
19351
19392
  "dashboard.records.search": "Zoeken naar \"{searchText}\"",
19393
+ "dashboard.records.templates": "",
19352
19394
  "dashboard.records.userDetail": "",
19353
19395
  "dashboard.records.userEmail": "",
19354
19396
  "dashboard.records.username": "",
@@ -19724,6 +19766,7 @@ var next = "";
19724
19766
  var previous = "";
19725
19767
  var records = "";
19726
19768
  var pt = {
19769
+ "Add Layer As": "",
19727
19770
  "button.login": "",
19728
19771
  "catalog.figures.datasets": "conjuntos de dados",
19729
19772
  "catalog.figures.organisations": "organizações",
@@ -19742,16 +19785,22 @@ var pt = {
19742
19785
  "chart.type.line": "gráfico de linha",
19743
19786
  "chart.type.lineSmooth": "gráfico de linha suave",
19744
19787
  "chart.type.pie": "gráfico de pizza",
19788
+ "dashboard.catalog.allRecords": "",
19789
+ "dashboard.catalog.calendar": "",
19790
+ "dashboard.catalog.contacts": "",
19791
+ "dashboard.catalog.discussion": "",
19792
+ "dashboard.catalog.thesaurus": "",
19745
19793
  "dashboard.createRecord": "",
19794
+ "dashboard.labels.catalog": "Catálogo",
19746
19795
  "dashboard.labels.mySpace": "Meu espaço",
19747
19796
  "dashboard.records.all": "Catálogo",
19748
19797
  "dashboard.records.hasDraft": "",
19749
19798
  "dashboard.records.myDraft": "Meus rascunhos",
19750
19799
  "dashboard.records.myLibrary": "Minha biblioteca",
19751
- "dashboard.records.myOrg": "Organização",
19752
19800
  "dashboard.records.myRecords": "Meus Registros",
19753
19801
  "dashboard.records.publishedRecords": "",
19754
19802
  "dashboard.records.search": "Buscar por \"{searchText}\"",
19803
+ "dashboard.records.templates": "",
19755
19804
  "dashboard.records.userDetail": "",
19756
19805
  "dashboard.records.userEmail": "",
19757
19806
  "dashboard.records.username": "",
@@ -21127,6 +21176,15 @@ class Gn4Repository {
21127
21176
  recordHasDraft(uniqueIdentifier) {
21128
21177
  return (window.localStorage.getItem(this.getLocalStorageKeyForRecord(uniqueIdentifier)) !== null);
21129
21178
  }
21179
+ // generated by copilot
21180
+ getAllDrafts() {
21181
+ const items = { ...window.localStorage };
21182
+ const drafts = Object.keys(items)
21183
+ .filter((key) => key.startsWith('geonetwork-ui-draft-'))
21184
+ .map((key) => window.localStorage.getItem(key))
21185
+ .filter((draft) => draft !== null);
21186
+ return from(Promise.all(drafts.map((draft) => findConverterForDocument(draft).readRecord(draft))));
21187
+ }
21130
21188
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Gn4Repository, deps: [{ token: SearchApiService }, { token: ElasticsearchService }, { token: Gn4Converter }, { token: RecordsApiService }], target: i0.ɵɵFactoryTarget.Injectable }); }
21131
21189
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Gn4Repository }); }
21132
21190
  }
@@ -28409,6 +28467,113 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
28409
28467
  }]
28410
28468
  }] });
28411
28469
 
28470
+ class ResultsTableComponent {
28471
+ constructor() {
28472
+ this.records = [];
28473
+ this.selectedRecordsIdentifiers = [];
28474
+ this.sortOrder = null;
28475
+ this.recordHasDraft = () => false;
28476
+ // emits the column (field) as well as the order
28477
+ this.sortByChange = new EventEmitter();
28478
+ this.recordClick = new EventEmitter();
28479
+ this.recordsSelectedChange = new EventEmitter();
28480
+ }
28481
+ dateToString(date) {
28482
+ return date?.toLocaleDateString(undefined, {
28483
+ year: 'numeric',
28484
+ month: 'long',
28485
+ day: 'numeric',
28486
+ timeZone: 'UTC',
28487
+ });
28488
+ }
28489
+ getStatus(isPublishedToAll) {
28490
+ return isPublishedToAll ? 'published' : 'not published';
28491
+ }
28492
+ getRecordFormats(record) {
28493
+ if (record.kind === 'service' || !('distributions' in record)) {
28494
+ return [];
28495
+ }
28496
+ const formats = Array.from(new Set(record.distributions.map((distribution) => getFileFormat(distribution)))).filter((format) => !!format);
28497
+ formats.sort((a, b) => getFormatPriority(b) - getFormatPriority(a));
28498
+ return formats;
28499
+ }
28500
+ formatUserInfo(userInfo) {
28501
+ const infos = (typeof userInfo === 'string' ? userInfo : '').split('|');
28502
+ if (infos && infos.length === 4) {
28503
+ return `${infos[2]} ${infos[1]}`;
28504
+ }
28505
+ return undefined;
28506
+ }
28507
+ getBadgeColor(format) {
28508
+ return getBadgeColor(format);
28509
+ }
28510
+ handleRecordClick(item) {
28511
+ this.recordClick.emit(item);
28512
+ }
28513
+ setSortBy(col, order) {
28514
+ this.sortByChange.emit([col, order]);
28515
+ }
28516
+ isSortedBy(col) {
28517
+ if (!this.sortOrder) {
28518
+ return null;
28519
+ }
28520
+ const sortArray = Array.isArray(this.sortOrder[0])
28521
+ ? this.sortOrder
28522
+ : [this.sortOrder];
28523
+ for (const sort of sortArray) {
28524
+ if (sort[1] === col) {
28525
+ return sort[0];
28526
+ }
28527
+ }
28528
+ return null;
28529
+ }
28530
+ isChecked(record) {
28531
+ return this.selectedRecordsIdentifiers.includes(record.uniqueIdentifier);
28532
+ }
28533
+ handleRecordSelectedChange(selected, record) {
28534
+ this.recordsSelectedChange.emit([[record], selected]);
28535
+ }
28536
+ async toggleSelectAll() {
28537
+ this.recordsSelectedChange.emit([this.records, !this.isAllSelected()]);
28538
+ }
28539
+ isAllSelected() {
28540
+ return this.records.every((record) => this.selectedRecordsIdentifiers.includes(record.uniqueIdentifier));
28541
+ }
28542
+ isSomeSelected() {
28543
+ const allSelected = this.records.every((record) => this.selectedRecordsIdentifiers.includes(record.uniqueIdentifier));
28544
+ const someSelected = this.records.some((record) => this.selectedRecordsIdentifiers.includes(record.uniqueIdentifier));
28545
+ return !allSelected && someSelected;
28546
+ }
28547
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResultsTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
28548
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ResultsTableComponent, isStandalone: true, selector: "gn-ui-results-table", inputs: { records: "records", selectedRecordsIdentifiers: "selectedRecordsIdentifiers", sortOrder: "sortOrder", recordHasDraft: "recordHasDraft" }, outputs: { sortByChange: "sortByChange", recordClick: "recordClick", recordsSelectedChange: "recordsSelectedChange" }, ngImport: i0, template: "<gn-ui-interactive-table\n [items]=\"records\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <gn-ui-checkbox\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"isSomeSelected()\"\n (changed)=\"toggleSelectAll()\"\n type=\"default\"\n class=\"-m-2 mr-3\"\n >\n </gn-ui-checkbox>\n </ng-template>\n <ng-template #cell let-item>\n <gn-ui-checkbox\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full\">\n <span class=\"overflow-hidden text-ellipsis\">{{ item.title }}</span>\n <gn-ui-badge\n *ngIf=\"recordHasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.4em 0.6em'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.author</span>\n </ng-template>\n <ng-template #cell let-item>\n <mat-icon class=\"material-symbols-outlined\">person</mat-icon>\n <span>{{ formatUserInfo(item.extras?.ownerInfo) }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ item.status }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.updatedOn</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ dateToString(item.recordUpdated) }}\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: CheckboxComponent, selector: "gn-ui-checkbox", inputs: ["type", "checked", "indeterminate"], outputs: ["changed"] }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "component", type: InteractiveTableComponent, selector: "gn-ui-interactive-table", inputs: ["items"], outputs: ["itemClick"] }, { kind: "component", type: InteractiveTableColumnComponent, selector: "gn-ui-interactive-table-column", inputs: ["grow", "sortable", "activeSort"], outputs: ["sortChange"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] }); }
28549
+ }
28550
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResultsTableComponent, decorators: [{
28551
+ type: Component,
28552
+ args: [{ selector: 'gn-ui-results-table', standalone: true, imports: [
28553
+ CommonModule,
28554
+ UiInputsModule,
28555
+ InteractiveTableComponent,
28556
+ InteractiveTableColumnComponent,
28557
+ MatIconModule,
28558
+ TranslateModule,
28559
+ BadgeComponent,
28560
+ ], template: "<gn-ui-interactive-table\n [items]=\"records\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <gn-ui-checkbox\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"isSomeSelected()\"\n (changed)=\"toggleSelectAll()\"\n type=\"default\"\n class=\"-m-2 mr-3\"\n >\n </gn-ui-checkbox>\n </ng-template>\n <ng-template #cell let-item>\n <gn-ui-checkbox\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full\">\n <span class=\"overflow-hidden text-ellipsis\">{{ item.title }}</span>\n <gn-ui-badge\n *ngIf=\"recordHasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.4em 0.6em'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.author</span>\n </ng-template>\n <ng-template #cell let-item>\n <mat-icon class=\"material-symbols-outlined\">person</mat-icon>\n <span>{{ formatUserInfo(item.extras?.ownerInfo) }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ item.status }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.updatedOn</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ dateToString(item.recordUpdated) }}\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n" }]
28561
+ }], propDecorators: { records: [{
28562
+ type: Input
28563
+ }], selectedRecordsIdentifiers: [{
28564
+ type: Input
28565
+ }], sortOrder: [{
28566
+ type: Input
28567
+ }], recordHasDraft: [{
28568
+ type: Input
28569
+ }], sortByChange: [{
28570
+ type: Output
28571
+ }], recordClick: [{
28572
+ type: Output
28573
+ }], recordsSelectedChange: [{
28574
+ type: Output
28575
+ }] } });
28576
+
28412
28577
  const ADD_SEARCH = '[Search] Add search instance';
28413
28578
  const SET_FILTERS = '[Search] Set Filters';
28414
28579
  const SET_CONFIG_FILTERS = '[Search] Set config filters';
@@ -30371,7 +30536,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
30371
30536
  }]
30372
30537
  }] });
30373
30538
 
30374
- class ResultsTableComponent {
30539
+ class ResultsTableContainerComponent {
30375
30540
  constructor(searchFacade, searchService, selectionService, recordsRepository) {
30376
30541
  this.searchFacade = searchFacade;
30377
30542
  this.searchService = searchService;
@@ -30380,106 +30545,29 @@ class ResultsTableComponent {
30380
30545
  this.recordClick = new EventEmitter();
30381
30546
  this.records$ = this.searchFacade.results$;
30382
30547
  this.selectedRecords$ = this.selectionService.selectedRecordsIdentifiers$;
30383
- }
30384
- dateToString(date) {
30385
- return date?.toLocaleDateString(undefined, {
30386
- year: 'numeric',
30387
- month: 'long',
30388
- day: 'numeric',
30389
- timeZone: 'UTC',
30390
- });
30391
- }
30392
- getStatus(isPublishedToAll) {
30393
- return isPublishedToAll ? 'published' : 'not published';
30394
- }
30395
- getRecordFormats(record) {
30396
- if (record.kind === 'service' || !('distributions' in record)) {
30397
- return [];
30398
- }
30399
- const formats = Array.from(new Set(record.distributions.map((distribution) => getFileFormat(distribution)))).filter((format) => !!format);
30400
- formats.sort((a, b) => getFormatPriority(b) - getFormatPriority(a));
30401
- return formats;
30402
- }
30403
- formatUserInfo(userInfo) {
30404
- const infos = (typeof userInfo === 'string' ? userInfo : '').split('|');
30405
- if (infos && infos.length === 4) {
30406
- return `${infos[2]} ${infos[1]}`;
30407
- }
30408
- return undefined;
30409
- }
30410
- getBadgeColor(format) {
30411
- return getBadgeColor(format);
30548
+ this.sortBy$ = this.searchFacade.sortBy$;
30549
+ this.hasDraft = (record) => this.recordsRepository.recordHasDraft(record.uniqueIdentifier);
30412
30550
  }
30413
30551
  handleRecordClick(item) {
30414
30552
  this.recordClick.emit(item);
30415
30553
  }
30416
- setSortBy(col, order) {
30554
+ handleSortByChange(col, order) {
30417
30555
  this.searchService.setSortBy([order, col]);
30418
30556
  }
30419
- isSortedBy(col) {
30420
- return this.searchFacade.sortBy$.pipe(take(1), map$1((sortOrder) => {
30421
- const sortArray = Array.isArray(sortOrder[0])
30422
- ? sortOrder
30423
- : [sortOrder];
30424
- for (const sort of sortArray) {
30425
- if (sort[1] === col) {
30426
- return sort[0];
30427
- }
30428
- }
30429
- return null;
30430
- }));
30431
- }
30432
- isChecked(record) {
30433
- return this.selectedRecords$.pipe(take(1), map$1((selectedRecords) => {
30434
- return selectedRecords.includes(record.uniqueIdentifier);
30435
- }));
30436
- }
30437
- handleRecordSelectedChange(selected, record) {
30557
+ handleRecordsSelectedChange(records, selected) {
30438
30558
  if (!selected) {
30439
- this.selectionService.deselectRecords([record]);
30440
- }
30441
- else {
30442
- this.selectionService.selectRecords([record]);
30443
- }
30444
- }
30445
- async toggleSelectAll() {
30446
- const records = await firstValueFrom(this.records$);
30447
- if (await firstValueFrom(this.isAllSelected())) {
30448
30559
  this.selectionService.deselectRecords(records);
30449
30560
  }
30450
30561
  else {
30451
30562
  this.selectionService.selectRecords(records);
30452
30563
  }
30453
30564
  }
30454
- isAllSelected() {
30455
- return combineLatest([this.records$, this.selectedRecords$]).pipe(take(1), map$1(([records, selectedRecords]) => {
30456
- return records.every((record) => selectedRecords.includes(record.uniqueIdentifier));
30457
- }));
30458
- }
30459
- isSomeSelected() {
30460
- return combineLatest([this.records$, this.selectedRecords$]).pipe(take(1), map$1(([records, selectedRecords]) => {
30461
- const allSelected = records.every((record) => selectedRecords.includes(record.uniqueIdentifier));
30462
- const someSelected = records.some((record) => selectedRecords.includes(record.uniqueIdentifier));
30463
- return !allSelected && someSelected;
30464
- }));
30465
- }
30466
- hasDraft(record) {
30467
- return this.recordsRepository.recordHasDraft(record.uniqueIdentifier);
30468
- }
30469
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResultsTableComponent, deps: [{ token: SearchFacade }, { token: SearchService }, { token: SelectionService }, { token: RecordsRepositoryInterface }], target: i0.ɵɵFactoryTarget.Component }); }
30470
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ResultsTableComponent, isStandalone: true, selector: "gn-ui-results-table", outputs: { recordClick: "recordClick" }, ngImport: i0, template: "<gn-ui-interactive-table\n [items]=\"records$ | async\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <gn-ui-checkbox\n [checked]=\"isAllSelected() | async\"\n [indeterminate]=\"isSomeSelected() | async\"\n (changed)=\"toggleSelectAll()\"\n type=\"default\"\n class=\"-m-2 mr-3\"\n >\n </gn-ui-checkbox>\n </ng-template>\n <ng-template #cell let-item>\n <gn-ui-checkbox\n [checked]=\"isChecked(item) | async\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword') | async\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full\">\n <span class=\"overflow-hidden text-ellipsis\">{{ item.title }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.4em 0.6em'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner') | async\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.author</span>\n </ng-template>\n <ng-template #cell let-item>\n <mat-icon class=\"material-symbols-outlined\">person</mat-icon>\n <span>{{ formatUserInfo(item.extras?.ownerInfo) }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ item.status }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate') | async\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.updatedOn</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ dateToString(item.recordUpdated) }}\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: CheckboxComponent, selector: "gn-ui-checkbox", inputs: ["type", "checked", "indeterminate"], outputs: ["changed"] }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "component", type: InteractiveTableComponent, selector: "gn-ui-interactive-table", inputs: ["items"], outputs: ["itemClick"] }, { kind: "component", type: InteractiveTableColumnComponent, selector: "gn-ui-interactive-table-column", inputs: ["grow", "sortable", "activeSort"], outputs: ["sortChange"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] }); }
30565
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResultsTableContainerComponent, deps: [{ token: SearchFacade }, { token: SearchService }, { token: SelectionService }, { token: RecordsRepositoryInterface }], target: i0.ɵɵFactoryTarget.Component }); }
30566
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ResultsTableContainerComponent, isStandalone: true, selector: "gn-ui-results-table-container", outputs: { recordClick: "recordClick" }, ngImport: i0, template: "<gn-ui-results-table\n [records]=\"records$ | async\"\n [recordHasDraft]=\"hasDraft\"\n [selectedRecordsIdentifiers]=\"selectedRecords$ | async\"\n [sortOrder]=\"sortBy$ | async\"\n (recordClick)=\"handleRecordClick($event)\"\n (recordsSelectedChange)=\"handleRecordsSelectedChange($event[0], $event[1])\"\n (sortByChange)=\"handleSortByChange($event[0], $event[1])\"\n></gn-ui-results-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "component", type: ResultsTableComponent, selector: "gn-ui-results-table", inputs: ["records", "selectedRecordsIdentifiers", "sortOrder", "recordHasDraft"], outputs: ["sortByChange", "recordClick", "recordsSelectedChange"] }] }); }
30471
30567
  }
30472
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResultsTableComponent, decorators: [{
30568
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResultsTableContainerComponent, decorators: [{
30473
30569
  type: Component,
30474
- args: [{ selector: 'gn-ui-results-table', standalone: true, imports: [
30475
- CommonModule,
30476
- UiInputsModule,
30477
- InteractiveTableComponent,
30478
- InteractiveTableColumnComponent,
30479
- MatIconModule,
30480
- TranslateModule,
30481
- BadgeComponent,
30482
- ], template: "<gn-ui-interactive-table\n [items]=\"records$ | async\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <gn-ui-checkbox\n [checked]=\"isAllSelected() | async\"\n [indeterminate]=\"isSomeSelected() | async\"\n (changed)=\"toggleSelectAll()\"\n type=\"default\"\n class=\"-m-2 mr-3\"\n >\n </gn-ui-checkbox>\n </ng-template>\n <ng-template #cell let-item>\n <gn-ui-checkbox\n [checked]=\"isChecked(item) | async\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword') | async\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full\">\n <span class=\"overflow-hidden text-ellipsis\">{{ item.title }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.4em 0.6em'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner') | async\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.author</span>\n </ng-template>\n <ng-template #cell let-item>\n <mat-icon class=\"material-symbols-outlined\">person</mat-icon>\n <span>{{ formatUserInfo(item.extras?.ownerInfo) }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ item.status }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate') | async\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.updatedOn</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ dateToString(item.recordUpdated) }}\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n" }]
30570
+ args: [{ selector: 'gn-ui-results-table-container', standalone: true, imports: [CommonModule, ResultsTableComponent], template: "<gn-ui-results-table\n [records]=\"records$ | async\"\n [recordHasDraft]=\"hasDraft\"\n [selectedRecordsIdentifiers]=\"selectedRecords$ | async\"\n [sortOrder]=\"sortBy$ | async\"\n (recordClick)=\"handleRecordClick($event)\"\n (recordsSelectedChange)=\"handleRecordsSelectedChange($event[0], $event[1])\"\n (sortByChange)=\"handleSortByChange($event[0], $event[1])\"\n></gn-ui-results-table>\n" }]
30483
30571
  }], ctorParameters: function () { return [{ type: SearchFacade }, { type: SearchService }, { type: SelectionService }, { type: RecordsRepositoryInterface }]; }, propDecorators: { recordClick: [{
30484
30572
  type: Output
30485
30573
  }] } });
@@ -32891,9 +32979,7 @@ class MdViewFacade {
32891
32979
  this.downloadLinks$ = this.allLinks$.pipe(map$1((links) => links.filter((link) => this.linkClassifier.hasUsage(link, LinkUsage.DOWNLOAD))));
32892
32980
  this.dataLinks$ = this.allLinks$.pipe(map$1((links) => links.filter((link) => this.linkClassifier.hasUsage(link, LinkUsage.DATA))));
32893
32981
  this.geoDataLinks$ = this.allLinks$.pipe(map$1((links) => links.filter((link) => this.linkClassifier.hasUsage(link, LinkUsage.GEODATA))));
32894
- this.geoDataLinksWithGeometry$ = this.allLinks$.pipe(mergeMap((links) => {
32895
- return from(links);
32896
- }), mergeMap((link) => {
32982
+ this.geoDataLinksWithGeometry$ = this.allLinks$.pipe(switchMap$1((links) => from(links).pipe(mergeMap((link) => {
32897
32983
  if (this.linkClassifier.hasUsage(link, LinkUsage.GEODATA)) {
32898
32984
  if (link.type === 'service' &&
32899
32985
  link.accessServiceProtocol === 'ogcFeatures') {
@@ -32910,12 +32996,7 @@ class MdViewFacade {
32910
32996
  else {
32911
32997
  return of(null);
32912
32998
  }
32913
- }), scan((acc, val) => {
32914
- if (val !== null && !acc.includes(val)) {
32915
- acc.push(val);
32916
- }
32917
- return acc;
32918
- }, []));
32999
+ }), toArray(), map$1((links) => links.filter((link) => link !== null)))));
32919
33000
  this.landingPageLinks$ = this.metadata$.pipe(map$1((record) => ('landingPage' in record ? [record.landingPage] : [])));
32920
33001
  this.otherLinks$ = this.allLinks$.pipe(map$1((links) => links.filter((link) => this.linkClassifier.hasUsage(link, LinkUsage.UNKNOWN))));
32921
33002
  this.userFeedbacks$ = this.store.pipe(select(getUserFeedbacks));
@@ -35460,5 +35541,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
35460
35541
  * Generated bundle index. Do not edit.
35461
35542
  */
35462
35543
 
35463
- export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, AuthService, AutocompleteComponent, AvatarComponent, AvatarServiceInterface, BLOCK_MODEL_FIXTURE, BadgeComponent, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CONFIG_MALFORMED, CONFIG_MINIMAL, CONFIG_MISSING_MANDATORY, CONFIG_OK, CONFIG_UNRECOGNIZED_KEYS, CONFIG_WITH_TRANSLATIONS, CONFIG_WRONG_LANGUAGE_CODE, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ChipsInputComponent, ClearError, ClearResults, ColorScaleComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_BASELAYER_CONTEXT, DEFAULT_GN4_LOGIN_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DEFAULT_STYLE_FIXTURE, DEFAULT_STYLE_HL_FIXTURE, DEFAULT_VIEW, DataService, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangePickerComponent, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, EMPTY_BLOCK_MODEL_FIXTURE, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FACET_ITEM_FIXTURE, FEATURE_MAP_OPTIONS, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogModule, FeatureDatavizModule, FeatureDetailComponent, FeatureEditorModule, FeatureInfoService, FeatureMapModule, FeatureNotificationsModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileTranslateLoader, FilterDropdownComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GN_UI_VERSION, GeoTableViewComponent, GeocodingComponent, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, ImageOverlayPreviewComponent, InteractiveTableColumnComponent, InteractiveTableComponent, IsSpatialSearchField, Iso191153Converter, Iso19139Converter, LANGUAGES_LIST, LANGUAGE_NAMES, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LANG_3_TO_2_MAPPER, LOGIN_URL, LONLAT_CRS_CODES, LangService, LanguageSwitcherComponent, LayersPanelComponent, LicenseSearchField, LinkCardComponent, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_CONFIG_FIXTURE, MAP_FEATURE_KEY, METADATA_LANGUAGE, MY_FORMATS, MapComponent, MapContainerComponent, MapContextComponent, MapContextLayerTypeEnum, MapContextService, MapFacade, MapInstanceDirective, MapManagerService, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataQualityComponent, MetadataQualityItemComponent, MultilingualSearchField, MyOrgService, NavigationButtonComponent, NotificationComponent, NotificationsContainerComponent, NotificationsService, ORGANIZATIONS_STRATEGY, ORGANIZATION_URL_TOKEN, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationSearchField, OrganizationsFromGroupsService, OrganizationsFromMetadataService, OwnerSearchField, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PatchResultsAggregations, PopupAlertComponent, PreviousNextButtonsComponent, ProgressBarComponent, ProxyService, QUERY_FIELDS, RECORD_URL_TOKEN, REQUEST_MORE_ON_AGGREGATION, REQUEST_MORE_RESULTS, REQUEST_NEW_RESULTS, RESULTS_LAYOUT_CONFIG, ROUTER_CONFIG, ROUTER_ROUTE_DATASET, ROUTER_ROUTE_SEARCH, ROUTER_STATE_KEY, ROUTE_PARAMS, RecordApiFormComponent, RecordFormComponent, RecordMetricComponent, RecordPreviewCardComponent, RecordPreviewComponent, RecordPreviewFeedComponent, RecordPreviewListComponent, RecordPreviewRowComponent, RecordPreviewTextComponent, RecordPreviewTitleComponent, RecordsMetricsComponent, RecordsService, RelatedRecordCardComponent, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, ResultsTableComponent, RouterEffects, RouterFacade, RouterService, SEARCH_FEATURE_KEY, SET_CONFIG_AGGREGATIONS, SET_CONFIG_FILTERS, SET_CONFIG_REQUEST_FIELDS, SET_ERROR, SET_FAVORITES_ONLY, SET_FILTERS, SET_INCLUDE_ON_AGGREGATION, SET_PAGE_SIZE, SET_RESULTS_AGGREGATIONS, SET_RESULTS_HITS, SET_RESULTS_LAYOUT, SET_SEARCH, SET_SORT_BY, SET_SPATIAL_FILTER_ENABLED, SearchEffects, SearchFacade, SearchInputComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SimpleSearchField, SiteTitleComponent, SortByComponent, SortableListComponent, SourceLabelComponent, SourcesService, SpinningLoaderComponent, StarToggleComponent, StepBarComponent, StickyHeaderComponent, SupportedTypes, TABLE_ITEM_FIXTURE, TABLE_ITEM_FIXTURE_HAB, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableComponent, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslatedSearchField, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UiCatalogModule, UiDatavizModule, UiElementsModule, FacetsModule$1 as UiFacetsModule, UiInputsModule, UiLayoutModule, UiMapModule, UiSearchModule, UiWidgetsModule, UpdateConfigAggregations, UpdateFilters, UserPreviewComponent, UtilI18nModule, UtilSharedModule, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, WFS_MAX_FEATURES, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, _reset, addLayer, changeLayerOrder, checkFileFormat, clearLayerError, createFuzzyFilter, currentPage, defaultMapOptions, downgradeImage, downsizeImage, draftSaveSuccess, dragPanCondition, dropEmptyTranslations, editorReducer, findConverterForDocument, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryFromGeoJSON, getGlobalConfig, getJsonDataItemsProxy, getLangFromBrowser, getLinkLabel, getLinkPriority, getMapLayers, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, initSearch, initialEditorState, initialMapState, initialState, isConfigLoaded, isEndOfResults, isFormatInQueryParam, loadAppConfig, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, megabytesToBytes, mimeTypeToFormat, mouseWheelZoomCondition, openDataset, openRecord, parse, placeholder, propagateToDocumentOnly, provideGn4, provideRepositoryUrl, readDataset, readDatasetHeaders, reducer$2 as reducer, reducerSearch, removeLayer, removeSearchParams, removeWhitespace, saveRecord, saveRecordFailure, saveRecordSuccess, selectEditorState, selectFallback, selectFallbackFields, selectField, selectRecord, selectRecordAlreadySavedOnce, selectRecordChangedSinceSave, selectRecordFields, selectRecordFieldsConfig, selectRecordSaveError, selectRecordSaving, selectRecordSource, selectTranslatedField, selectTranslatedValue, setLayerError, sortByFromString, sortByToString, sortByToStrings, stripHtml, toDate, totalPages, updateLayer, updateRecordField };
35544
+ export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, AuthService, AutocompleteComponent, AvatarComponent, AvatarServiceInterface, BLOCK_MODEL_FIXTURE, BadgeComponent, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CONFIG_MALFORMED, CONFIG_MINIMAL, CONFIG_MISSING_MANDATORY, CONFIG_OK, CONFIG_UNRECOGNIZED_KEYS, CONFIG_WITH_TRANSLATIONS, CONFIG_WRONG_LANGUAGE_CODE, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ChipsInputComponent, ClearError, ClearResults, ColorScaleComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_BASELAYER_CONTEXT, DEFAULT_GN4_LOGIN_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DEFAULT_STYLE_FIXTURE, DEFAULT_STYLE_HL_FIXTURE, DEFAULT_VIEW, DataService, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangePickerComponent, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, EMPTY_BLOCK_MODEL_FIXTURE, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FACET_ITEM_FIXTURE, FEATURE_MAP_OPTIONS, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogModule, FeatureDatavizModule, FeatureDetailComponent, FeatureEditorModule, FeatureInfoService, FeatureMapModule, FeatureNotificationsModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileTranslateLoader, FilterDropdownComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GN_UI_VERSION, GeoTableViewComponent, GeocodingComponent, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, ImageOverlayPreviewComponent, InteractiveTableColumnComponent, InteractiveTableComponent, IsSpatialSearchField, Iso191153Converter, Iso19139Converter, LANGUAGES_LIST, LANGUAGE_NAMES, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LANG_3_TO_2_MAPPER, LOGIN_URL, LONLAT_CRS_CODES, LangService, LanguageSwitcherComponent, LayersPanelComponent, LicenseSearchField, LinkCardComponent, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_CONFIG_FIXTURE, MAP_FEATURE_KEY, METADATA_LANGUAGE, MY_FORMATS, MapComponent, MapContainerComponent, MapContextComponent, MapContextLayerTypeEnum, MapContextService, MapFacade, MapInstanceDirective, MapManagerService, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataQualityComponent, MetadataQualityItemComponent, MultilingualSearchField, MyOrgService, NavigationButtonComponent, NotificationComponent, NotificationsContainerComponent, NotificationsService, ORGANIZATIONS_STRATEGY, ORGANIZATION_URL_TOKEN, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationSearchField, OrganizationsFromGroupsService, OrganizationsFromMetadataService, OwnerSearchField, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PatchResultsAggregations, PopupAlertComponent, PreviousNextButtonsComponent, ProgressBarComponent, ProxyService, QUERY_FIELDS, RECORD_URL_TOKEN, REQUEST_MORE_ON_AGGREGATION, REQUEST_MORE_RESULTS, REQUEST_NEW_RESULTS, RESULTS_LAYOUT_CONFIG, ROUTER_CONFIG, ROUTER_ROUTE_DATASET, ROUTER_ROUTE_SEARCH, ROUTER_STATE_KEY, ROUTE_PARAMS, RecordApiFormComponent, RecordFormComponent, RecordMetricComponent, RecordPreviewCardComponent, RecordPreviewComponent, RecordPreviewFeedComponent, RecordPreviewListComponent, RecordPreviewRowComponent, RecordPreviewTextComponent, RecordPreviewTitleComponent, RecordsMetricsComponent, RecordsService, RelatedRecordCardComponent, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, ResultsTableComponent, ResultsTableContainerComponent, RouterEffects, RouterFacade, RouterService, SEARCH_FEATURE_KEY, SET_CONFIG_AGGREGATIONS, SET_CONFIG_FILTERS, SET_CONFIG_REQUEST_FIELDS, SET_ERROR, SET_FAVORITES_ONLY, SET_FILTERS, SET_INCLUDE_ON_AGGREGATION, SET_PAGE_SIZE, SET_RESULTS_AGGREGATIONS, SET_RESULTS_HITS, SET_RESULTS_LAYOUT, SET_SEARCH, SET_SORT_BY, SET_SPATIAL_FILTER_ENABLED, SearchEffects, SearchFacade, SearchInputComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SimpleSearchField, SiteTitleComponent, SortByComponent, SortableListComponent, SourceLabelComponent, SourcesService, SpinningLoaderComponent, StarToggleComponent, StepBarComponent, StickyHeaderComponent, SupportedTypes, TABLE_ITEM_FIXTURE, TABLE_ITEM_FIXTURE_HAB, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableComponent, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslatedSearchField, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UiCatalogModule, UiDatavizModule, UiElementsModule, FacetsModule$1 as UiFacetsModule, UiInputsModule, UiLayoutModule, UiMapModule, UiSearchModule, UiWidgetsModule, UpdateConfigAggregations, UpdateFilters, UserPreviewComponent, UtilI18nModule, UtilSharedModule, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, WFS_MAX_FEATURES, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, _reset, addLayer, changeLayerOrder, checkFileFormat, clearLayerError, createFuzzyFilter, currentPage, defaultMapOptions, downgradeImage, downsizeImage, draftSaveSuccess, dragPanCondition, dropEmptyTranslations, editorReducer, findConverterForDocument, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryFromGeoJSON, getGlobalConfig, getJsonDataItemsProxy, getLangFromBrowser, getLinkLabel, getLinkPriority, getMapLayers, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, initSearch, initialEditorState, initialMapState, initialState, isConfigLoaded, isEndOfResults, isFormatInQueryParam, loadAppConfig, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, megabytesToBytes, mimeTypeToFormat, mouseWheelZoomCondition, openDataset, openRecord, parse, placeholder, propagateToDocumentOnly, provideGn4, provideRepositoryUrl, readDataset, readDatasetHeaders, reducer$2 as reducer, reducerSearch, removeLayer, removeSearchParams, removeWhitespace, saveRecord, saveRecordFailure, saveRecordSuccess, selectEditorState, selectFallback, selectFallbackFields, selectField, selectRecord, selectRecordAlreadySavedOnce, selectRecordChangedSinceSave, selectRecordFields, selectRecordFieldsConfig, selectRecordSaveError, selectRecordSaving, selectRecordSource, selectTranslatedField, selectTranslatedValue, setLayerError, sortByFromString, sortByToString, sortByToStrings, stripHtml, toDate, totalPages, updateLayer, updateRecordField };
35464
35545
  //# sourceMappingURL=geonetwork-ui.mjs.map