geonetwork-ui 2.1.0 → 2.2.0-dev.auto-publish-npm-package

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 (38) hide show
  1. package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +2 -42
  2. package/esm2022/libs/util/app-config/src/lib/app-config.mjs +5 -1
  3. package/esm2022/libs/util/app-config/src/lib/model.mjs +1 -1
  4. package/esm2022/libs/util/shared/src/lib/services/theme.service.mjs +8 -1
  5. package/esm2022/translations/de.json +3 -0
  6. package/esm2022/translations/en.json +5 -2
  7. package/esm2022/translations/es.json +3 -0
  8. package/esm2022/translations/fr.json +7 -4
  9. package/esm2022/translations/it.json +6 -0
  10. package/esm2022/translations/nl.json +3 -0
  11. package/esm2022/translations/pt.json +3 -0
  12. package/fesm2022/geonetwork-ui.mjs +42 -47
  13. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  14. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +2 -2
  15. package/libs/ui/dataviz/src/lib/chart/chart.component.d.ts +1 -1
  16. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
  17. package/libs/ui/inputs/src/lib/button/button.component.d.ts +0 -3
  18. package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
  19. package/libs/ui/inputs/src/lib/form-field/form-field.component.d.ts +1 -1
  20. package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
  21. package/libs/util/app-config/src/lib/model.d.ts +2 -0
  22. package/libs/util/app-config/src/lib/model.d.ts.map +1 -1
  23. package/libs/util/shared/src/lib/services/theme.service.d.ts +1 -0
  24. package/libs/util/shared/src/lib/services/theme.service.d.ts.map +1 -1
  25. package/package.json +1 -1
  26. package/src/libs/ui/inputs/src/lib/button/button.component.ts +1 -44
  27. package/src/libs/util/app-config/src/lib/app-config.ts +4 -0
  28. package/src/libs/util/app-config/src/lib/model.ts +2 -0
  29. package/src/libs/util/shared/src/lib/services/theme.service.ts +9 -0
  30. package/tailwind.base.css +31 -1
  31. package/translations/de.json +3 -0
  32. package/translations/en.json +5 -2
  33. package/translations/es.json +3 -0
  34. package/translations/fr.json +7 -4
  35. package/translations/it.json +6 -0
  36. package/translations/nl.json +3 -0
  37. package/translations/pt.json +3 -0
  38. package/translations/sk.json +3 -0
@@ -20,12 +20,12 @@ export declare class ChartViewComponent {
20
20
  set yProperty(value: string);
21
21
  yProperty$: BehaviorSubject<string>;
22
22
  set chartType(value: InputChartType);
23
- chartType$: BehaviorSubject<"bar" | "bar-horizontal" | "line" | "line-interpolated" | "scatter" | "pie">;
23
+ chartType$: BehaviorSubject<"line" | "bar" | "bar-horizontal" | "line-interpolated" | "scatter" | "pie">;
24
24
  chartConfig$: Observable<{
25
25
  aggregation: "average" | "count" | "max" | "min" | "sum";
26
26
  xProperty: string;
27
27
  yProperty: string;
28
- chartType: "bar" | "bar-horizontal" | "line" | "line-interpolated" | "scatter" | "pie";
28
+ chartType: "line" | "bar" | "bar-horizontal" | "line-interpolated" | "scatter" | "pie";
29
29
  }>;
30
30
  loading: boolean;
31
31
  error: any;
@@ -15,7 +15,7 @@ export declare class ChartComponent implements OnChanges, AfterViewInit {
15
15
  setReady: (v?: unknown) => void;
16
16
  ngAfterViewInit(): void;
17
17
  ngOnChanges(): void;
18
- createChart(): Chart<keyof import("chart.js").ChartTypeRegistry, (number | [number, number] | import("chart.js").Point | import("chart.js").BubbleDataPoint)[], unknown>;
18
+ createChart(): Chart<keyof import("chart.js").ChartTypeRegistry, (number | import("chart.js").Point | [number, number] | import("chart.js").BubbleDataPoint)[], unknown>;
19
19
  getChartData(): ChartData;
20
20
  getOptions(): ChartOptions;
21
21
  truncateString(str: string, truncateLength: number): string;
@@ -14,7 +14,7 @@ export declare class DownloadsListComponent {
14
14
  isFilterActive(filter: FilterFormat): boolean;
15
15
  getFilterFormatTitle(format: FilterFormat): any;
16
16
  isLinkOfFormat(link: DatasetDistribution, format: FilterFormat): boolean;
17
- getLinkFormat(link: DatasetDistribution): "geojson" | "json" | "pdf" | "csv" | "excel" | "shp" | "kml" | "gpkg" | "zip" | "jpg" | "svg";
17
+ getLinkFormat(link: DatasetDistribution): "json" | "pdf" | "geojson" | "svg" | "csv" | "excel" | "shp" | "kml" | "gpkg" | "zip" | "jpg";
18
18
  getLinkColor(link: DatasetDistribution): string;
19
19
  isFromWfs(link: DatasetDistribution): boolean;
20
20
  static ɵfac: i0.ɵɵFactoryDeclaration<DownloadsListComponent, never>;
@@ -6,9 +6,6 @@ export declare class ButtonComponent {
6
6
  extraClass: string;
7
7
  buttonClick: EventEmitter<void>;
8
8
  get classList(): string;
9
- get color(): "bg-gray-700 hover:bg-gray-800 hover:bg-gray-800 active:bg-gray-900" | "bg-primary hover:bg-primary-darker focus:bg-primary-darker active:bg-primary-darkest" | "bg-secondary hover:bg-secondary-darker focus:bg-secondary-darker active:bg-secondary-darkest" | "bg-white" | "bg-white hover:bg-gray-50 focus:bg-gray-50 active:bg-gray-100";
10
- get textColor(): "text-white" | "text-main hover:text-primary-darker focus:text-primary-darker active:text-primary-black" | "text-main";
11
- get borderColor(): "border border-gray-700 focus:ring-4 focus:ring-gray-200" | "border border-secondary focus:ring-4 focus:ring-secondary-lightest" | "border border-primary focus:ring-4 focus:ring-primary-lightest" | "border border-gray-300 hover:border-primary-lighter focus:border-primary-lighter focus:ring-4 focus:ring-primary-lightest active:border-primary-darker" | "border border-white focus:ring-4 focus:ring-gray-300";
12
9
  handleClick(event: Event): void;
13
10
  static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
14
11
  static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "gn-ui-button", never, { "type": { "alias": "type"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "extraClass": { "alias": "extraClass"; "required": false; }; }, { "buttonClick": "buttonClick"; }, never, ["*"], false, never>;
@@ -1 +1 @@
1
- {"version":3,"file":"button.component.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/ui/inputs/src/lib/button/button.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EAGb,MAAM,eAAe,CAAA;;AAGtB,qBAMa,eAAe;IACjB,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAC7D;IACF,QAAQ,UAAQ;IAChB,UAAU,SAAK;IACd,WAAW,qBAA2B;IAEhD,IAAI,SAAS,WAEZ;IAED,IAAI,KAAK,kVAaR;IAED,IAAI,SAAS,2HAWZ;IAED,IAAI,WAAW,4ZAad;IAED,WAAW,CAAC,KAAK,EAAE,KAAK;yCAtDb,eAAe;2CAAf,eAAe;CA2D3B"}
1
+ {"version":3,"file":"button.component.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/ui/inputs/src/lib/button/button.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EAGb,MAAM,eAAe,CAAA;;AAGtB,qBAMa,eAAe;IACjB,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAC7D;IACF,QAAQ,UAAQ;IAChB,UAAU,SAAK;IACd,WAAW,qBAA2B;IAEhD,IAAI,SAAS,WAEZ;IAED,WAAW,CAAC,KAAK,EAAE,KAAK;yCAXb,eAAe;2CAAf,eAAe;CAgB3B"}
@@ -8,7 +8,7 @@ export declare class FormFieldComponent {
8
8
  valueChange: Observable<unknown>;
9
9
  formControl: FormControl<any>;
10
10
  constructor();
11
- get simpleType(): "number" | "url" | "text" | "toggle" | "date" | "list";
11
+ get simpleType(): "number" | "text" | "url" | "toggle" | "date" | "list";
12
12
  get isSimpleField(): boolean;
13
13
  get isRichField(): boolean;
14
14
  get isFileField(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"app-config.d.ts","sourceRoot":"","sources":["../../../../../src/libs/util/app-config/src/lib/app-config.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,kBAAkB,EAElB,YAAY,EAEZ,SAAS,EACT,qBAAqB,EACrB,YAAY,EACZ,WAAW,EACZ,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACxE,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,gCAAgC,EAAE,MAAM,6CAA6C,CAAA;AAS9F,wBAAgB,eAAe,IAAI,YAAY,CAG9C;AAID,wBAAgB,cAAc,IAAI,WAAW,CAG5C;AAID,wBAAgB,oBAAoB,IAAI,SAAS,GAAG,IAAI,CAEvD;AAID,wBAAgB,uBAAuB,IAAI,YAAY,GAAG,IAAI,CAE7D;AAGD,wBAAgB,wBAAwB,IAAI,qBAAqB,CAOhE;AAID,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAG1E;AAID,wBAAgB,aAAa,kBAyM5B;AAED,wBAAgB,cAAc,YAE7B;AAED,wBAAgB,MAAM,SAIrB;AAED,eAAO,MAAM,+BAA+B;;;;;;;2BAOK,UAAU;;;;CAM1D,CAAA"}
1
+ {"version":3,"file":"app-config.d.ts","sourceRoot":"","sources":["../../../../../src/libs/util/app-config/src/lib/app-config.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,kBAAkB,EAElB,YAAY,EAEZ,SAAS,EACT,qBAAqB,EACrB,YAAY,EACZ,WAAW,EACZ,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACxE,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,gCAAgC,EAAE,MAAM,6CAA6C,CAAA;AAS9F,wBAAgB,eAAe,IAAI,YAAY,CAG9C;AAID,wBAAgB,cAAc,IAAI,WAAW,CAG5C;AAID,wBAAgB,oBAAoB,IAAI,SAAS,GAAG,IAAI,CAEvD;AAID,wBAAgB,uBAAuB,IAAI,YAAY,GAAG,IAAI,CAE7D;AAGD,wBAAgB,wBAAwB,IAAI,qBAAqB,CAOhE;AAID,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAG1E;AAID,wBAAgB,aAAa,kBA6M5B;AAED,wBAAgB,cAAc,YAE7B;AAED,wBAAgB,MAAM,SAIrB;AAED,eAAO,MAAM,+BAA+B;;;;;;;2BAOK,UAAU;;;;CAM1D,CAAA"}
@@ -7,6 +7,7 @@ export interface GlobalConfig {
7
7
  LOGIN_URL?: string;
8
8
  WEB_COMPONENT_EMBEDDER_URL?: string;
9
9
  LANGUAGES?: string[];
10
+ CONTACT_EMAIL?: string;
10
11
  }
11
12
  export interface LayerConfig {
12
13
  TYPE: 'xyz' | 'wms' | 'wfs' | 'geojson';
@@ -33,6 +34,7 @@ export interface ThemeConfig {
33
34
  MAIN_FONT?: string;
34
35
  TITLE_FONT?: string;
35
36
  FONTS_STYLESHEET_URL?: string;
37
+ FAVICON?: string;
36
38
  }
37
39
  export interface SearchPreset {
38
40
  sort: string;
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../../src/libs/util/app-config/src/lib/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAElC,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,0BAA0B,CAAC,EAAE,MAAM,CAAA;IACnC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAA;IACvC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7C,4BAA4B,CAAC,EAAE,MAAM,CAAA;IACrC,4BAA4B,CAAC,EAAE,OAAO,CAAA;IACtC,0BAA0B,EAAE,OAAO,CAAA;IACnC,UAAU,EAAE,WAAW,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,iBAAiB,EAAE,MAAM,CAAA;IACzB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,CAAA;CAC3C;AAED,MAAM,WAAW,YAAY;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAA;IAC9B,gBAAgB,CAAC,EAAE,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,MAAM,kBAAkB,GAAG;IAAE,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAA;AACrE,MAAM,MAAM,8BAA8B,GAAG;IAC3C,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;CACnC,CAAA;AAED,MAAM,WAAW,YAAY;IAC3B,eAAe,CAAC,EAAE,QAAQ,CAAA;CAC3B"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../../src/libs/util/app-config/src/lib/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAElC,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,0BAA0B,CAAC,EAAE,MAAM,CAAA;IACnC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAA;IACvC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7C,4BAA4B,CAAC,EAAE,MAAM,CAAA;IACrC,4BAA4B,CAAC,EAAE,OAAO,CAAA;IACtC,0BAA0B,EAAE,OAAO,CAAA;IACnC,UAAU,EAAE,WAAW,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,iBAAiB,EAAE,MAAM,CAAA;IACzB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,CAAA;CAC3C;AAED,MAAM,WAAW,YAAY;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAA;IAC9B,gBAAgB,CAAC,EAAE,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,MAAM,kBAAkB,GAAG;IAAE,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAA;AACrE,MAAM,MAAM,8BAA8B,GAAG;IAC3C,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;CACnC,CAAA;AAED,MAAM,WAAW,YAAY;IAC3B,eAAe,CAAC,EAAE,QAAQ,CAAA;CAC3B"}
@@ -4,6 +4,7 @@ export declare class ThemeService {
4
4
  static generateBgOpacityClasses(colorName: any, colorValue: any, opacities?: number[]): void;
5
5
  static applyCssVariables(primaryColor: string, secondaryColor: string, mainColor: string, backgroundColor: string, mainFont?: string, titleFont?: string, fontsStylesheetUrl?: string): void;
6
6
  static generateLabelColor(label: string, saturation: number, lightness: number): string;
7
+ static setFavicon(faviconPath: string): void;
7
8
  static ɵfac: i0.ɵɵFactoryDeclaration<ThemeService, never>;
8
9
  static ɵprov: i0.ɵɵInjectableDeclaration<ThemeService>;
9
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"theme.service.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/util/shared/src/lib/services/theme.service.ts"],"names":[],"mappings":";AAGA,qBAGa,YAAY;IAEvB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAI5B,MAAM,CAAC,wBAAwB,CAC7B,SAAS,KAAA,EACT,UAAU,KAAA,EACV,SAAS,WAAsB;IAiBjC,MAAM,CAAC,iBAAiB,CACtB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,EAClB,kBAAkB,CAAC,EAAE,MAAM;IA4F7B,MAAM,CAAC,kBAAkB,CACvB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,MAAM;yCAjIE,YAAY;6CAAZ,YAAY;CAwIxB"}
1
+ {"version":3,"file":"theme.service.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/util/shared/src/lib/services/theme.service.ts"],"names":[],"mappings":";AAGA,qBAGa,YAAY;IAEvB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAI5B,MAAM,CAAC,wBAAwB,CAC7B,SAAS,KAAA,EACT,UAAU,KAAA,EACV,SAAS,WAAsB;IAiBjC,MAAM,CAAC,iBAAiB,CACtB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,EAClB,kBAAkB,CAAC,EAAE,MAAM;IA4F7B,MAAM,CAAC,kBAAkB,CACvB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,MAAM;IAQT,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;yCAzIjC,YAAY;6CAAZ,YAAY;CAiJxB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "geonetwork-ui",
3
- "version": "2.1.0",
3
+ "version": "2.2.0-dev.auto-publish-npm-package",
4
4
  "engines": {
5
5
  "node": ">=14.17.0"
6
6
  },
@@ -21,50 +21,7 @@ export class ButtonComponent {
21
21
  @Output() buttonClick = new EventEmitter<void>()
22
22
 
23
23
  get classList() {
24
- return `${this.color} ${this.textColor} ${this.borderColor} ${this.extraClass}`
25
- }
26
-
27
- get color() {
28
- switch (this.type) {
29
- case 'default':
30
- return 'bg-gray-700 hover:bg-gray-800 hover:bg-gray-800 active:bg-gray-900'
31
- case 'primary':
32
- return 'bg-primary hover:bg-primary-darker focus:bg-primary-darker active:bg-primary-darkest'
33
- case 'secondary':
34
- return 'bg-secondary hover:bg-secondary-darker focus:bg-secondary-darker active:bg-secondary-darkest'
35
- case 'outline':
36
- return 'bg-white'
37
- case 'light':
38
- return 'bg-white hover:bg-gray-50 focus:bg-gray-50 active:bg-gray-100'
39
- }
40
- }
41
-
42
- get textColor() {
43
- switch (this.type) {
44
- case 'default':
45
- case 'secondary':
46
- case 'primary':
47
- return 'text-white'
48
- case 'outline':
49
- return 'text-main hover:text-primary-darker focus:text-primary-darker active:text-primary-black'
50
- case 'light':
51
- return 'text-main'
52
- }
53
- }
54
-
55
- get borderColor() {
56
- switch (this.type) {
57
- case 'default':
58
- return 'border border-gray-700 focus:ring-4 focus:ring-gray-200'
59
- case 'secondary':
60
- return 'border border-secondary focus:ring-4 focus:ring-secondary-lightest'
61
- case 'primary':
62
- return 'border border-primary focus:ring-4 focus:ring-primary-lightest'
63
- case 'outline':
64
- return 'border border-gray-300 hover:border-primary-lighter focus:border-primary-lighter focus:ring-4 focus:ring-primary-lightest active:border-primary-darker'
65
- case 'light':
66
- return 'border border-white focus:ring-4 focus:ring-gray-300'
67
- }
24
+ return `btn-${this.type} ${this.extraClass}`
68
25
  }
69
26
 
70
27
  handleClick(event: Event) {
@@ -100,6 +100,7 @@ export function loadAppConfig() {
100
100
  'login_url',
101
101
  'web_component_embedder_url',
102
102
  'languages',
103
+ 'contact_email',
103
104
  ],
104
105
  warnings,
105
106
  errors
@@ -126,6 +127,7 @@ export function loadAppConfig() {
126
127
  WEB_COMPONENT_EMBEDDER_URL:
127
128
  parsedGlobalSection.web_component_embedder_url,
128
129
  LANGUAGES: parsedGlobalSection.languages,
130
+ CONTACT_EMAIL: parsedGlobalSection.contact_email,
129
131
  } as GlobalConfig)
130
132
 
131
133
  const parsedLayersSections = parseMultiConfigSection(
@@ -185,6 +187,7 @@ export function loadAppConfig() {
185
187
  'fonts_stylesheet_url',
186
188
  'thumbnail_placeholder',
187
189
  'header_background',
190
+ 'favicon',
188
191
  ],
189
192
  warnings,
190
193
  errors
@@ -204,6 +207,7 @@ export function loadAppConfig() {
204
207
  TITLE_FONT: parsedThemeSection.title_font,
205
208
  MAIN_FONT: parsedThemeSection.main_font,
206
209
  FONTS_STYLESHEET_URL: parsedThemeSection.fonts_stylesheet_url,
210
+ FAVICON: parsedThemeSection.favicon,
207
211
  } as ThemeConfig)
208
212
 
209
213
  const parsedSearchSection = parseConfigSection(
@@ -8,6 +8,7 @@ export interface GlobalConfig {
8
8
  LOGIN_URL?: string
9
9
  WEB_COMPONENT_EMBEDDER_URL?: string
10
10
  LANGUAGES?: string[]
11
+ CONTACT_EMAIL?: string
11
12
  }
12
13
 
13
14
  export interface LayerConfig {
@@ -37,6 +38,7 @@ export interface ThemeConfig {
37
38
  MAIN_FONT?: string
38
39
  TITLE_FONT?: string
39
40
  FONTS_STYLESHEET_URL?: string
41
+ FAVICON?: string
40
42
  }
41
43
 
42
44
  export interface SearchPreset {
@@ -140,4 +140,13 @@ export class ThemeService {
140
140
  }
141
141
  return chroma.hsl(hue % 360, saturation, lightness).css()
142
142
  }
143
+
144
+ static setFavicon(faviconPath: string): void {
145
+ const link =
146
+ document.querySelector("link[rel*='icon']") ||
147
+ document.createElement('link')
148
+ link['rel'] = 'icon'
149
+ link['href'] = faviconPath
150
+ document.getElementsByTagName('head')[0].appendChild(link)
151
+ }
143
152
  }
package/tailwind.base.css CHANGED
@@ -7,8 +7,38 @@
7
7
  @apply shadow-xl hover:shadow-xl-hover transition-shadow;
8
8
  }
9
9
 
10
+ .btn {
11
+ @apply flex flex-row items-center text-[1em] leading-none p-[1em] rounded-[0.25em] transition-all duration-100 focus:outline-none disabled:opacity-50;
12
+ }
13
+
10
14
  .btn-default {
11
- @apply bg-blue-600 text-white flex gap-3 items-center px-9 py-3 rounded-[50px] hover:scale-[1.02] transition-transform;
15
+ @apply btn text-white
16
+ bg-gray-700 hover:bg-gray-800 active:bg-gray-900
17
+ border border-gray-700 focus:ring-4 focus:ring-gray-200;
18
+ }
19
+
20
+ .btn-primary {
21
+ @apply btn text-white
22
+ bg-primary hover:bg-primary-darker focus:bg-primary-darker active:bg-primary-darkest
23
+ border border-primary focus:ring-4 focus:ring-primary-lightest;
24
+ }
25
+
26
+ .btn-secondary {
27
+ @apply btn text-white
28
+ bg-secondary hover:bg-secondary-darker focus:bg-secondary-darker active:bg-secondary-darkest
29
+ border border-secondary focus:ring-4 focus:ring-secondary-lightest;
30
+ }
31
+
32
+ .btn-outline {
33
+ @apply btn text-main
34
+ bg-white hover:text-primary-darker focus:text-primary-darker active:text-primary-black
35
+ border border-gray-300 hover:border-primary-lighter focus:border-primary-lighter focus:ring-4 focus:ring-primary-lightest active:border-primary-darker;
36
+ }
37
+
38
+ .btn-light {
39
+ @apply btn text-main
40
+ bg-white hover:bg-gray-50 focus:bg-gray-50 active:bg-gray-100
41
+ border border-white focus:ring-4 focus:ring-gray-300;
12
42
  }
13
43
 
14
44
  .badge-btn {
@@ -110,6 +110,9 @@
110
110
  "datahub.header.organisations": "Organisationen",
111
111
  "datahub.header.popularRecords": "Die beliebtesten",
112
112
  "datahub.header.title.html": "<div class=\"text-white\">Entdecken Sie offene<br> Daten von meiner Organisation</div>",
113
+ "datahub.news.contact.contactus": "",
114
+ "datahub.news.contact.html": "",
115
+ "datahub.news.contact.title": "",
113
116
  "datahub.news.feed": "Nachrichtenfeed",
114
117
  "datahub.news.figures": "Indikatoren",
115
118
  "datahub.search.back": "Zurück zu den Ergebnissen",
@@ -24,12 +24,12 @@
24
24
  "dashboard.records.myRecords": "My Records",
25
25
  "dashboard.records.noRecord": "No record for this organization",
26
26
  "dashboard.records.noUser": "No users for this organization",
27
- "dashboard.records.publishedRecords": "published records",
27
+ "dashboard.records.publishedRecords": "{count, plural, =1{published record} other{published records}}",
28
28
  "dashboard.records.search": "Search for \"{searchText}\"",
29
29
  "dashboard.records.userDetail": "Name",
30
30
  "dashboard.records.userEmail": "Email",
31
31
  "dashboard.records.username": "Username",
32
- "dashboard.records.users": "users",
32
+ "dashboard.records.users": "{count, plural, =1{user} other{users}}",
33
33
  "datafeeder.analysisProgressBar.illustration.fileFormatDetection": "File format \n detection",
34
34
  "datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "Gathering dataset \n information",
35
35
  "datafeeder.analysisProgressBar.illustration.samplingData": "Sampling \n data",
@@ -110,6 +110,9 @@
110
110
  "datahub.header.organisations": "Organisations",
111
111
  "datahub.header.popularRecords": "The most popular",
112
112
  "datahub.header.title.html": "<div class=\"text-white\">Discover open<br> data from my Organization</div>",
113
+ "datahub.news.contact.contactus": "Contact us",
114
+ "datahub.news.contact.html": "<p>Do you need data that is not currently present on the platform?</p><p>Our teams are here to answer you.</p>",
115
+ "datahub.news.contact.title": "A specific need?",
113
116
  "datahub.news.feed": "News feed",
114
117
  "datahub.news.figures": "Indicators",
115
118
  "datahub.search.back": "Back to results",
@@ -110,6 +110,9 @@
110
110
  "datahub.header.organisations": "",
111
111
  "datahub.header.popularRecords": "",
112
112
  "datahub.header.title.html": "",
113
+ "datahub.news.contact.contactus": "",
114
+ "datahub.news.contact.html": "",
115
+ "datahub.news.contact.title": "",
113
116
  "datahub.news.feed": "",
114
117
  "datahub.news.figures": "",
115
118
  "datahub.search.back": "",
@@ -24,12 +24,12 @@
24
24
  "dashboard.records.myRecords": "Mes fiches publiées",
25
25
  "dashboard.records.noRecord": "Aucun jeu de données pour cette organisation",
26
26
  "dashboard.records.noUser": "Aucun utilisateur pour cette organisation",
27
- "dashboard.records.publishedRecords": "données publiées",
27
+ "dashboard.records.publishedRecords": "{count, plural, =1{donnée publiée} other{données publiées}}",
28
28
  "dashboard.records.search": "Résultats pour \"{searchText}\"",
29
29
  "dashboard.records.userDetail": "Nom",
30
30
  "dashboard.records.userEmail": "Email",
31
31
  "dashboard.records.username": "Nom d'utilisateur",
32
- "dashboard.records.users": "utilisateurs",
32
+ "dashboard.records.users": "{count, plural, =1{utilisateur} other{utilisateurs}}",
33
33
  "datafeeder.analysisProgressBar.illustration.fileFormatDetection": "Détection du \n format de fichier",
34
34
  "datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "Récupération des informations \n sur le jeu de données",
35
35
  "datafeeder.analysisProgressBar.illustration.samplingData": "Sampling \n des données",
@@ -110,6 +110,9 @@
110
110
  "datahub.header.organisations": "Organisations",
111
111
  "datahub.header.popularRecords": "Les plus appréciées",
112
112
  "datahub.header.title.html": "<div class=\"text-white\">Toutes les données<br>publiques de mon organisation</div>",
113
+ "datahub.news.contact.contactus": "Contactez-nous",
114
+ "datahub.news.contact.html": "<p>Vous avez besoin de données qui ne sont pas présentes sur la plateforme actuellement ? </p><p> Nos équipes sont la pour vous répondre.</p>",
115
+ "datahub.news.contact.title": "Un besoin spécifique ?",
113
116
  "datahub.news.feed": "Fil d'activité",
114
117
  "datahub.news.figures": "Quelques chiffres",
115
118
  "datahub.search.back": "Retour aux résultats",
@@ -252,10 +255,10 @@
252
255
  "record.was.created.time": "a créé ce jeu de données {time}",
253
256
  "records": "enregistrements",
254
257
  "results.layout.selectOne": "Affichage des résultats",
255
- "results.records.hits.displayedOn": "",
258
+ "results.records.hits.displayedOn": "{displayed, plural, =0{Aucun enregistrement} one{1 enregistrement affiché} other{{displayed} enregistrements affichés}} {hits, plural, other{sur {hits} au total.}}",
256
259
  "results.records.hits.empty.help.html": "Suggestions : <ul class='list-disc list-inside'><li>Essayez d'autres mots clés</li><li>Cherchez moins de mots</li></ul>",
257
260
  "results.records.hits.found": "{hits, plural, =0{Aucune correspondance.} one{1 enregistrement trouvé.} other{{hits} résultats.}}",
258
- "results.records.hits.selected": "",
261
+ "results.records.hits.selected": "{amount, plural, one{1 selectionnée} other{{ amount } sélectionnées}}",
259
262
  "results.showMore": "Plus de résultats...",
260
263
  "results.sortBy.dateStamp": "Plus récent",
261
264
  "results.sortBy.popularity": "Popularité",
@@ -110,6 +110,9 @@
110
110
  "datahub.header.organisations": "Organizzazioni",
111
111
  "datahub.header.popularRecords": "Più popolari",
112
112
  "datahub.header.title.html": "<div class=\"text-white\">Tutti i dati<br>pubblici della mia organizzazione</div>",
113
+ "datahub.news.contact.contactus": "",
114
+ "datahub.news.contact.html": "",
115
+ "datahub.news.contact.title": "",
113
116
  "datahub.news.feed": "Feed di attività",
114
117
  "datahub.news.figures": "Alcune figure",
115
118
  "datahub.search.back": "Torna ai risultati",
@@ -139,6 +142,7 @@
139
142
  "downloads.format.unknown": "sconosciuto",
140
143
  "downloads.wfs.featuretype.not.found": "Il layer non è stato trovato",
141
144
  "dropFile": "Trascina il suo file",
145
+ "externalviewer.dataset.unnamed": "",
142
146
  "facets.block.title.OrgForResource": "Organizzazione",
143
147
  "facets.block.title.availableInServices": "Disponibile per",
144
148
  "facets.block.title.cl_hierarchyLevel.key": "Tipo di risorsa",
@@ -305,6 +309,8 @@
305
309
  "tooltip.html.copy": "Copiare il HTML",
306
310
  "tooltip.url.copy": "Copiare l'URL",
307
311
  "tooltip.url.open": "Aprire l'URL",
312
+ "ui.readLess": "",
313
+ "ui.readMore": "",
308
314
  "wfs.featuretype.notfound": "La classe di oggetto non è stata trovata nel servizio",
309
315
  "wfs.geojsongml.notsupported": "Il servizio non supporta il formato GeoJSON o GML",
310
316
  "wfs.unreachable.cors": "Il servizio non è accessibile a causa di limitazioni CORS",
@@ -110,6 +110,9 @@
110
110
  "datahub.header.organisations": "",
111
111
  "datahub.header.popularRecords": "",
112
112
  "datahub.header.title.html": "",
113
+ "datahub.news.contact.contactus": "",
114
+ "datahub.news.contact.html": "",
115
+ "datahub.news.contact.title": "",
113
116
  "datahub.news.feed": "",
114
117
  "datahub.news.figures": "",
115
118
  "datahub.search.back": "",
@@ -110,6 +110,9 @@
110
110
  "datahub.header.organisations": "",
111
111
  "datahub.header.popularRecords": "",
112
112
  "datahub.header.title.html": "",
113
+ "datahub.news.contact.contactus": "",
114
+ "datahub.news.contact.html": "",
115
+ "datahub.news.contact.title": "",
113
116
  "datahub.news.feed": "",
114
117
  "datahub.news.figures": "",
115
118
  "datahub.search.back": "",
@@ -110,6 +110,9 @@
110
110
  "datahub.header.organisations": "Organizácie",
111
111
  "datahub.header.popularRecords": "Najpopulárnejšie",
112
112
  "datahub.header.title.html": "<div class=\"text-white\">Objavte otvorené<br>dáta z mojej organizácie</div>",
113
+ "datahub.news.contact.contactus": "",
114
+ "datahub.news.contact.html": "",
115
+ "datahub.news.contact.title": "",
113
116
  "datahub.news.feed": "Spravodajský kanál",
114
117
  "datahub.news.figures": "Ukazovatele",
115
118
  "datahub.search.back": "Späť na výsledky",