@opengeoweb/shared 14.5.2 → 15.1.0

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.
package/index.esm.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
- import { Box, Typography, useTheme, Tooltip, IconButton, Menu, ListSubheader, MenuItem, Grid, ListItemText, ListItemIcon, DialogTitle, Button, Dialog, DialogContent, DialogActions, Paper, CircularProgress, Alert, AlertTitle, Drawer, Link, Avatar as Avatar$1, ClickAwayListener, MenuList, RadioGroup, FormControlLabel, Radio, List, ListItem, Tabs, Tab, Backdrop, Switch, Slider, ToggleButton, styled, Select, Accordion, AccordionSummary, AccordionDetails, FormLabel, TextField, InputAdornment, Chip, Stack, debounce as debounce$1, ListItemButton, Checkbox } from '@mui/material';
2
+ import { Box, Typography, useTheme, Tooltip, IconButton, Menu, ListSubheader, MenuItem, Grid, ListItemText, ListItemIcon, DialogTitle, Button, Dialog, DialogContent, DialogActions, Paper, CircularProgress, Alert, AlertTitle, Drawer, Link, Avatar as Avatar$1, ClickAwayListener, MenuList, RadioGroup, FormControlLabel, Radio, List, ListItem, Tabs, Tab, Backdrop, Slider, ToggleButton, styled, Select, Accordion, AccordionSummary, AccordionDetails, FormLabel, Switch, TextField, InputAdornment, Chip, Stack, debounce as debounce$1, ListItemButton, Checkbox } from '@mui/material';
3
3
  import 'i18next';
4
4
  import { initReactI18next, useTranslation } from 'react-i18next';
5
5
  import React, { useRef, useEffect, useState, Component } from 'react';
@@ -7,7 +7,6 @@ import Draggable from 'react-draggable';
7
7
  import { Resizable } from 're-resizable';
8
8
  import { Resize, BORDER_RADIUS, Options, Close, ChevronLeft, Exclamation, Success, Info, ChevronRight, GeoWebLogo, HamburgerMenu, Admin, useThemeContext, ThemeTypes, ArrowLeft, ArrowRight, KeyOption, KeyCommand, ArrowUp, ArrowDown, ChevronDown, Search, Clear, Cached, Filter as Filter$1 } from '@opengeoweb/theme';
9
9
  import { throttle, merge, escapeRegExp, debounce } from 'lodash';
10
- import { addIntegration } from '@sentry/react';
11
10
  import { parseISO, parse, format, isEqual, add as add$1, sub as sub$1, differenceInYears as differenceInYears$1, differenceInMonths as differenceInMonths$1, differenceInDays as differenceInDays$1, differenceInMinutes as differenceInMinutes$1, differenceInHours as differenceInHours$1, differenceInSeconds as differenceInSeconds$1, roundToNearestMinutes as roundToNearestMinutes$1, isBefore as isBefore$1, isAfter as isAfter$1, isValid as isValid$1, getUnixTime, fromUnixTime, set as set$1, getHours as getHours$1, startOfDay, addMinutes, addHours, setSeconds as setSeconds$1, getDay, getDayOfYear, getMonth, getWeek, getYear, isWithinInterval } from 'date-fns';
12
11
  import { fi as fi$1, nl as nl$1, nb, enGB } from 'date-fns/locale';
13
12
 
@@ -58,15 +57,6 @@ var en = {
58
57
  "shared-shortcut-mouse-click": "+ Mouse click",
59
58
  "shared-shortcut-split-button": "click split window button",
60
59
  "shared-shortcut-copy-view-preset-content-split-window": "Copy over viewpreset content when splitting window",
61
- "shared-sentry-recording": "Sentry Recording",
62
- "shared-sentry-information": "For monitoring performance and errors, GeoWeb is logging usage information. In this process, no sensitive user information will leave the browser.",
63
- "shared-sentry-enable-message": "By enabling recording I understand that the recording related data will be send to Sentry´s servers for processing.",
64
- "shared-sentry-disable": "Disable HTML recording",
65
- "shared-sentry-enable": "Enable HTML recording",
66
- "shared-sentry-enable-both": "Disable HTML + Canvas recording",
67
- "shared-sentry-disable-both": "Enable HTML + Canvas recording",
68
- "shared-sentry-cors-wait": "Disabled untill with and without CORS headers fetching mechanism has been implemented",
69
- "shared-sentry-disclaimer": "I understand that while using canvas recording, adding a layer without correct CORS headers will cause error and make the recording to fail. A new recording without the canvas or the layer can be made after reloading the application.",
70
60
  "shared-clear": "Clear",
71
61
  "shared-light": "Light",
72
62
  "shared-dark": "Dark",
@@ -133,15 +123,6 @@ var fi = {
133
123
  "shared-shortcut-mouse-click": "+ hiiren napsautus",
134
124
  "shared-shortcut-split-button": "napsauta Jaa ikkuna -painiketta",
135
125
  "shared-shortcut-copy-view-preset-content-split-window": "Kopioi näkymän sisältö, kun ikkuna jaetaan kahtia",
136
- "shared-sentry-recording": "Sentry Tallennus",
137
- "shared-sentry-information": "Geoweb tallentaa tietoja sovelluksen käytöstä monitoroidakseen suorituskykyä, sekä virhetilanteita. Arkaluonteista dataa ei kerätä tai lähetetä.",
138
- "shared-sentry-enable-message": "Ymmärrän, että laittamalla tallennuksen päälle tallennukseen liittyvää dataa lähetetään Sentryn palvelimille.",
139
- "shared-sentry-disable": "Laita HTML tallennus pois päältä",
140
- "shared-sentry-enable": "Laita HTML tallennus päälle",
141
- "shared-sentry-enable-both": "Laita HTML + Canvas tallennus päälle",
142
- "shared-sentry-disable-both": "Laita HTML + Canvas tallennus pois päältä",
143
- "shared-sentry-cors-wait": "Ominaisuus kytketty pois päältä, kunnes sovelluksen latausprosessit tukevat CORS headerien puuttumista.",
144
- "shared-sentry-disclaimer": "Ymmärrän, että käyttäessäni Canvas-tallennusta ja lisätessäni karttatason, jonka CORS headerit eivät ola kunnosa, sovelluksessa tapahtuu virhe, joka johtaa tallennnuksen epäonnistumiseen. Uuden tallennuksen voi tehdä ilman Canvaksen tallentamista sen jälkeen, kun sovellus on ladattu uudelleen.",
145
126
  "shared-clear": "Tyhjennä",
146
127
  "shared-light": "Vaalea",
147
128
  "shared-dark": "Tumma",
@@ -206,15 +187,6 @@ var no = {
206
187
  "shared-shortcut-mouse-click": "+ museklikk",
207
188
  "shared-shortcut-copy-view-preset-content-split-window": "kopier over viewpreset innhold når vindu deles",
208
189
  "shared-shortcut-split-button": "trykk del vindu knapp",
209
- "shared-sentry-recording": "Skjermopptak av Sentry",
210
- "shared-sentry-information": "GeoWeb tar opp brukerinformasjon for å monitorere ytelse og feilmeldinger. Underveis vil ingen sensitiv brukerinformasjon forlate nettleser.",
211
- "shared-sentry-enable-message": "Ved å bruke skjermopptak forstår jeg at opptaksdata vil bli sendt til Sentry for analysering",
212
- "shared-sentry-disable": "Skru av HTML-opptak",
213
- "shared-sentry-enable": "Skru på HTML-opptak",
214
- "shared-sentry-enable-both": "Skru av HTML + lerret-opptak",
215
- "shared-sentry-disable-both": "Skru på HTML + lerret-opptak",
216
- "shared-sentry-cors-wait": "Avskrudd inntil CORS-relaterte headere er implementert",
217
- "shared-sentry-disclaimer": "Jeg forstår at ved å bruke lerretopptak vil opptaket feile dersom jeg legger til et lag uten riktig CORS-headere. Ved å laste inn applikasjonen på nytt kan man starte nytt opptak uten lerret eller lag.",
218
190
  "shared-clear": "Tøm",
219
191
  "shared-light": "Lys",
220
192
  "shared-dark": "Mørk",
@@ -279,15 +251,6 @@ var nl = {
279
251
  "shared-shortcut-open-location-search": "Open locatie zoeken",
280
252
  "shared-shortcut-zoom-to-location": "Zoom kaart naar locatie",
281
253
  "shared-shortcut-mouse-click": "+ Muisklik",
282
- "shared-sentry-recording": "Sentry Opname",
283
- "shared-sentry-information": "Om performance en fouten te monitoren, registreert GeoWeb gebruiksinformatie. Tijdens dit proces verlaat geen enkele gevoelige gebruikersinformatie de browser.",
284
- "shared-sentry-enable-message": "Door opname te starten, ga ik akkoord dat de opnamegerelateerde gegevens ter verwerking naar de servers van Sentry worden verzonden.",
285
- "shared-sentry-disable": "HTML opname stoppen",
286
- "shared-sentry-enable": "HTML opname starten",
287
- "shared-sentry-enable-both": "HTML + Canvas opname stoppen",
288
- "shared-sentry-disable-both": "HTML + Canvas opname starten",
289
- "shared-sentry-cors-wait": "Uitgeschakeld totdat het fetching mechanisme met en zonder CORS-headers is geïmplementeerd",
290
- "shared-sentry-disclaimer": "Ik begrijp dat bij het gebruik van canvasopnamen het toevoegen van een laag zonder de juiste CORS-headers fouten zal veroorzaken en ervoor zal zorgen dat de opname mislukt. Een nieuwe opname zonder het canvas of de laag kan worden gemaakt na het opnieuw laden van de applicatie.",
291
254
  "shared-clear": "Wissen",
292
255
  "shared-light": "Licht",
293
256
  "shared-dark": "Donker",
@@ -3814,222 +3777,6 @@ var UserMenuItemCheatSheet = function UserMenuItemCheatSheet() {
3814
3777
  });
3815
3778
  };
3816
3779
 
3817
- var UserMenuItemSentryRecording = function UserMenuItemSentryRecording(_ref) {
3818
- var recordButtonEnabled = _ref.recordButtonEnabled,
3819
- setRecordButtonEnabled = _ref.setRecordButtonEnabled;
3820
- var _React$useState = React.useState(false),
3821
- open = _React$useState[0],
3822
- setOpen = _React$useState[1];
3823
- var _React$useState2 = React.useState(false),
3824
- canvasIntegrationEnabled = _React$useState2[0],
3825
- setCanvasIntegrationEnabled = _React$useState2[1];
3826
- var _React$useState3 = React.useState(false),
3827
- htmlRecordingEnabled = _React$useState3[0],
3828
- setHTMLRecordingEnabled = _React$useState3[1];
3829
- var _useTranslation = useTranslation(SHARED_NAMESPACE),
3830
- t = _useTranslation.t;
3831
- var onClose = function onClose() {
3832
- setOpen(false);
3833
- };
3834
- var onOpen = function onOpen() {
3835
- setOpen(true);
3836
- };
3837
- var enableHTMLRecording = /*#__PURE__*/function () {
3838
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
3839
- var _yield$import, replayIntegration;
3840
- return _regeneratorRuntime().wrap(function _callee$(_context) {
3841
- while (1) switch (_context.prev = _context.next) {
3842
- case 0:
3843
- if (!recordButtonEnabled) {
3844
- _context.next = 2;
3845
- break;
3846
- }
3847
- return _context.abrupt("return");
3848
- case 2:
3849
- if (!canvasIntegrationEnabled) {
3850
- _context.next = 4;
3851
- break;
3852
- }
3853
- return _context.abrupt("return");
3854
- case 4:
3855
- _context.prev = 4;
3856
- _context.next = 7;
3857
- return import('@sentry/react');
3858
- case 7:
3859
- _yield$import = _context.sent;
3860
- replayIntegration = _yield$import.replayIntegration;
3861
- addIntegration(replayIntegration({
3862
- maskAllText: false,
3863
- blockAllMedia: false
3864
- }));
3865
- setRecordButtonEnabled == null || setRecordButtonEnabled(!recordButtonEnabled);
3866
- setHTMLRecordingEnabled(true);
3867
- _context.next = 17;
3868
- break;
3869
- case 14:
3870
- _context.prev = 14;
3871
- _context.t0 = _context["catch"](4);
3872
- // eslint-disable-next-line no-console
3873
- console.log(_context.t0);
3874
- case 17:
3875
- case "end":
3876
- return _context.stop();
3877
- }
3878
- }, _callee, null, [[4, 14]]);
3879
- }));
3880
- return function enableHTMLRecording() {
3881
- return _ref2.apply(this, arguments);
3882
- };
3883
- }();
3884
- var enableHTMLAndCanvasRecording = /*#__PURE__*/function () {
3885
- var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
3886
- var _yield$import2, replayIntegration, replayCanvasIntegration;
3887
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
3888
- while (1) switch (_context2.prev = _context2.next) {
3889
- case 0:
3890
- if (!recordButtonEnabled) {
3891
- _context2.next = 2;
3892
- break;
3893
- }
3894
- return _context2.abrupt("return");
3895
- case 2:
3896
- _context2.prev = 2;
3897
- _context2.next = 5;
3898
- return import('@sentry/react');
3899
- case 5:
3900
- _yield$import2 = _context2.sent;
3901
- replayIntegration = _yield$import2.replayIntegration;
3902
- replayCanvasIntegration = _yield$import2.replayCanvasIntegration;
3903
- addIntegration(replayIntegration({
3904
- maskAllText: false,
3905
- blockAllMedia: false
3906
- }));
3907
- addIntegration(replayCanvasIntegration());
3908
- setCanvasIntegrationEnabled(!canvasIntegrationEnabled);
3909
- setRecordButtonEnabled == null || setRecordButtonEnabled(!recordButtonEnabled);
3910
- _context2.next = 17;
3911
- break;
3912
- case 14:
3913
- _context2.prev = 14;
3914
- _context2.t0 = _context2["catch"](2);
3915
- // eslint-disable-next-line no-console
3916
- console.log(_context2.t0);
3917
- case 17:
3918
- case "end":
3919
- return _context2.stop();
3920
- }
3921
- }, _callee2, null, [[2, 14]]);
3922
- }));
3923
- return function enableHTMLAndCanvasRecording() {
3924
- return _ref3.apply(this, arguments);
3925
- };
3926
- }();
3927
- return jsxs(ErrorBoundary, {
3928
- children: [jsx(MenuItem, {
3929
- "data-testid": "sentryRecording-btn",
3930
- divider: true,
3931
- onClick: onOpen,
3932
- children: jsx(Grid, {
3933
- container: true,
3934
- children: jsx(Grid, {
3935
- children: t('shared-sentry-recording')
3936
- })
3937
- })
3938
- }), jsx(Backdrop, {
3939
- "data-testid": "sentryRecording-content",
3940
- open: open,
3941
- sx: {
3942
- zIndex: 1
3943
- },
3944
- children: jsx(DraggableComponent, {
3945
- bounds: "parent",
3946
- isOpen: true,
3947
- minHeight: 300,
3948
- minWidth: 500,
3949
- onClose: onClose,
3950
- startSize: {
3951
- width: 700
3952
- },
3953
- title: t('shared-sentry-recording'),
3954
- children: jsxs(Grid, {
3955
- container: true,
3956
- spacing: 4,
3957
- sx: {
3958
- paddingLeft: '70px',
3959
- paddingRight: '70px'
3960
- },
3961
- children: [jsx(Grid, {
3962
- container: true,
3963
- justifyContent: "center",
3964
- sx: {
3965
- textAlign: 'center'
3966
- },
3967
- children: jsx(Typography, {
3968
- children: t('shared-sentry-information')
3969
- })
3970
- }), jsx(Grid, {
3971
- container: true,
3972
- justifyContent: "center",
3973
- sx: {
3974
- textAlign: 'center'
3975
- },
3976
- children: jsx(Typography, {
3977
- children: t('shared-sentry-enable-message')
3978
- })
3979
- }), jsxs(Grid, {
3980
- alignItems: "center",
3981
- container: true,
3982
- direction: "column",
3983
- children: [jsx(Switch, {
3984
- checked: recordButtonEnabled ? !canvasIntegrationEnabled : undefined,
3985
- disabled: htmlRecordingEnabled,
3986
- onChange: enableHTMLRecording
3987
- }), recordButtonEnabled && !canvasIntegrationEnabled ? jsxs(Typography, {
3988
- children: [" ", t('shared-sentry-disable')]
3989
- }) : jsxs(Typography, {
3990
- children: [" ", t('shared-sentry-enable')]
3991
- })]
3992
- }), jsxs(Grid, {
3993
- alignItems: "center",
3994
- container: true,
3995
- direction: "column",
3996
- children: [jsx(Switch, {
3997
- checked: canvasIntegrationEnabled,
3998
- disabled: true,
3999
- onChange: enableHTMLAndCanvasRecording
4000
- }), canvasIntegrationEnabled ? jsx(Typography, {
4001
- children: t('shared-sentry-disable-both')
4002
- }) : jsxs(Fragment, {
4003
- children: [jsx(Typography, {
4004
- sx: {
4005
- color: 'gray'
4006
- },
4007
- children: t('shared-sentry-enable-both')
4008
- }), jsxs(Typography, {
4009
- sx: {
4010
- color: 'gray'
4011
- },
4012
- textAlign: "center",
4013
- children: ["(", t('shared-sentry-cors-wait'), ")"]
4014
- })]
4015
- })]
4016
- }), jsx(Grid, {
4017
- container: true,
4018
- justifyContent: "center",
4019
- children: jsx(Typography, {
4020
- sx: {
4021
- paddingTop: '20px',
4022
- textAlign: 'center'
4023
- },
4024
- children: t('shared-sentry-disclaimer')
4025
- })
4026
- })]
4027
- })
4028
- })
4029
- })]
4030
- });
4031
- };
4032
-
4033
3780
  /* *
4034
3781
  * Licensed under the Apache License, Version 2.0 (the "License");
4035
3782
  * you may not use this file except in compliance with the License.
@@ -4785,7 +4532,8 @@ var LastUpdateTime = function LastUpdateTime(_ref) {
4785
4532
  _ref$hideLabel = _ref.hideLabel,
4786
4533
  hideLabel = _ref$hideLabel === void 0 ? false : _ref$hideLabel,
4787
4534
  _ref$showRefreshButto = _ref.showRefreshButton,
4788
- showRefreshButton = _ref$showRefreshButto === void 0 ? true : _ref$showRefreshButto;
4535
+ showRefreshButton = _ref$showRefreshButto === void 0 ? true : _ref$showRefreshButto,
4536
+ iconButtonSx = _ref.iconButtonSx;
4789
4537
  var _useTranslation = useTranslation(SHARED_NAMESPACE),
4790
4538
  t = _useTranslation.t;
4791
4539
  return jsxs(Box, {
@@ -4807,13 +4555,13 @@ var LastUpdateTime = function LastUpdateTime(_ref) {
4807
4555
  }), showRefreshButton ? jsx(CustomIconButton, {
4808
4556
  "data-testid": "refresh-button",
4809
4557
  onClick: onPressRefresh,
4810
- sx: {
4558
+ sx: [{
4811
4559
  marginRight: {
4812
4560
  xs: 2,
4813
4561
  sm: 1
4814
4562
  },
4815
4563
  marginLeft: 1
4816
- },
4564
+ }, iconButtonSx],
4817
4565
  tooltipTitle: t('shared-click-to-refresh'),
4818
4566
  variant: "tool",
4819
4567
  children: jsx(Cached, {})
@@ -5205,20 +4953,35 @@ var FilterChip = function FilterChip(_ref) {
5205
4953
  var FilterToggleButton = function FilterToggleButton(_ref) {
5206
4954
  var _t, _t2;
5207
4955
  var isOpen = _ref.isOpen,
5208
- onToggle = _ref.onToggle;
4956
+ onToggle = _ref.onToggle,
4957
+ activeLabelFilterCount = _ref.activeLabelFilterCount;
5209
4958
  var _useSharedTranslation = useSharedTranslation(),
5210
4959
  t = _useSharedTranslation.t;
5211
4960
  var tooltipTitle = isOpen ? (_t = t('shared-filter-hide-labels')) != null ? _t : '' : (_t2 = t('shared-filter-show-labels')) != null ? _t2 : '';
5212
4961
  return jsx(Tooltip, {
5213
4962
  title: tooltipTitle,
5214
- children: jsx(CustomIconButton, {
4963
+ children: jsxs(CustomIconButton, {
5215
4964
  "aria-pressed": isOpen,
5216
4965
  "data-testid": "workspace-label-filter-toggle",
5217
4966
  id: "labels-filter",
5218
- isSelected: isOpen,
4967
+ isSelected: isOpen || activeLabelFilterCount > 0,
5219
4968
  onClick: onToggle,
4969
+ sx: {
4970
+ '&.MuiIconButton-root': {
4971
+ padding: activeLabelFilterCount > 0 ? '0px 22px' : '0px 4px'
4972
+ },
4973
+ display: 'flex',
4974
+ alignItems: 'center'
4975
+ },
5220
4976
  variant: "tool",
5221
- children: jsx(Filter$1, {})
4977
+ children: [jsx(Filter$1, {}), activeLabelFilterCount > 0 && jsx(Typography, {
4978
+ component: "span",
4979
+ sx: {
4980
+ fontSize: '13px',
4981
+ pr: 0.1
4982
+ },
4983
+ children: activeLabelFilterCount
4984
+ })]
5222
4985
  })
5223
4986
  });
5224
4987
  };
@@ -5234,7 +4997,9 @@ var FilterList = function FilterList(_ref) {
5234
4997
  showLabelFilterToggle = _ref$showLabelFilterT === void 0 ? false : _ref$showLabelFilterT,
5235
4998
  _ref$isLabelFilterOpe = _ref.isLabelFilterOpen,
5236
4999
  isLabelFilterOpen = _ref$isLabelFilterOpe === void 0 ? false : _ref$isLabelFilterOpe,
5237
- onToggleLabelFilter = _ref.onToggleLabelFilter;
5000
+ onToggleLabelFilter = _ref.onToggleLabelFilter,
5001
+ _ref$activeLabelFilte = _ref.activeLabelFilterCount,
5002
+ activeLabelFilterCount = _ref$activeLabelFilte === void 0 ? 0 : _ref$activeLabelFilte;
5238
5003
  var _useSharedTranslation = useSharedTranslation(),
5239
5004
  t = _useSharedTranslation.t;
5240
5005
  return jsxs(Stack, {
@@ -5248,6 +5013,7 @@ var FilterList = function FilterList(_ref) {
5248
5013
  alignItems: 'center'
5249
5014
  },
5250
5015
  children: [showLabelFilterToggle && onToggleLabelFilter ? jsx(FilterToggleButton, {
5016
+ activeLabelFilterCount: activeLabelFilterCount,
5251
5017
  isOpen: isLabelFilterOpen,
5252
5018
  onToggle: onToggleLabelFilter
5253
5019
  }) : null, jsx(FilterChip, {
@@ -5339,10 +5105,12 @@ var SearchField = function SearchField(_ref3) {
5339
5105
  });
5340
5106
  };
5341
5107
 
5342
- var _excluded$1 = ["filters", "onClickFilterChip", "onSearch", "isAllSelected", "searchQuery", "showLabelFilterToggle", "isLabelFilterOpen", "onToggleLabelFilter", "showSearchField"];
5108
+ var _excluded$1 = ["activeLabelFilterCount", "filters", "onClickFilterChip", "onSearch", "isAllSelected", "searchQuery", "showLabelFilterToggle", "isLabelFilterOpen", "onToggleLabelFilter", "showSearchField"];
5343
5109
  var DEFAULT_FILTER_HEIGHT = 85;
5344
5110
  var Filter = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
5345
- var filters = _ref.filters,
5111
+ var _ref$activeLabelFilte = _ref.activeLabelFilterCount,
5112
+ activeLabelFilterCount = _ref$activeLabelFilte === void 0 ? 0 : _ref$activeLabelFilte,
5113
+ filters = _ref.filters,
5346
5114
  _ref$onClickFilterChi = _ref.onClickFilterChip,
5347
5115
  onClickFilterChip = _ref$onClickFilterChi === void 0 ? function () {} : _ref$onClickFilterChi,
5348
5116
  _ref$onSearch = _ref.onSearch,
@@ -5368,6 +5136,7 @@ var Filter = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
5368
5136
  value: searchQuery,
5369
5137
  valueChanged: onSearch
5370
5138
  }) : null, jsx(FilterList, {
5139
+ activeLabelFilterCount: activeLabelFilterCount,
5371
5140
  filters: filters,
5372
5141
  isAllSelected: isAllSelected,
5373
5142
  isLabelFilterOpen: isLabelFilterOpen,
@@ -6584,4 +6353,4 @@ var SystemScope = {
6584
6353
  system: 'system'
6585
6354
  };
6586
6355
 
6587
- export { AlertBanner, AlertIcon, AppHeader, AppLayout, Avatar, CanvasComponent, ConfirmationButtons, ConfirmationDialog, ConfirmationServiceProvider, CustomAccordion, CustomDialog, CustomDialogHeader, CustomIconButton, CustomSlider, CustomToggleButton, CustomTooltip, DEBOUNCE_TIMEOUT, DEFAULT_ERROR_MESSAGE, DEFAULT_FILTER_HEIGHT, DraggableComponent$1 as Draggable, ErrorBoundary, Filter, FilterChip, FilterOption, LastUpdateTime, PROJECTION, ResizeComponent as Resizable, SHARED_NAMESPACE, SearchField$1 as SearchField, SearchFieldButton, SearchHighlight, SessionStorageKey, StatusTag, StorybookDocsWrapper, StyledSelect, SwitchButton, SystemScope, ToggleMenu, ToolContainer, DraggableComponent as ToolContainerDraggable, ToolFooter, ToolHeader, TooltipSelect, UserMenu, UserMenuItemCheatSheet, UserMenuItemSentryRecording, MenuItemTheme as UserMenuItemTheme, adjustPosition, calculateDialogSizeAndPosition, calculateStartSize, index as dateUtils, defaultDelay, getAxiosErrorMessage, getAxiosWarningMessage, getErrorMessage, getInitials, getLastUpdateTitle, getPosition, getWarningMessage, isAxiosAuthError, isAxiosError, loadAllTranslations, pollingIntervalTimeout, renderCounter, safelyInitI18nForTestsAndStories, sessionStorageProvider, sharedTranslations, showPrompt, sliderHeaderStyle, tooltipContainerStyles, useConfirmationDialog, useControlledTooltip, useDebounce, useDialogActions, useIsMounted, useMakeSureContainerStaysInsideWindow, usePoller, usePreventBrowserClose, usePrevious, useResizeObserver, useScrollingInIsolation, useUserMenu, useWheelStopPropagation };
6356
+ export { AlertBanner, AlertIcon, AppHeader, AppLayout, Avatar, CanvasComponent, ConfirmationButtons, ConfirmationDialog, ConfirmationServiceProvider, CustomAccordion, CustomDialog, CustomDialogHeader, CustomIconButton, CustomSlider, CustomToggleButton, CustomTooltip, DEBOUNCE_TIMEOUT, DEFAULT_ERROR_MESSAGE, DEFAULT_FILTER_HEIGHT, DraggableComponent$1 as Draggable, ErrorBoundary, Filter, FilterChip, FilterOption, LastUpdateTime, PROJECTION, ResizeComponent as Resizable, SHARED_NAMESPACE, SearchField$1 as SearchField, SearchFieldButton, SearchHighlight, SessionStorageKey, StatusTag, StorybookDocsWrapper, StyledSelect, SwitchButton, SystemScope, ToggleMenu, ToolContainer, DraggableComponent as ToolContainerDraggable, ToolFooter, ToolHeader, TooltipSelect, UserMenu, UserMenuItemCheatSheet, MenuItemTheme as UserMenuItemTheme, adjustPosition, calculateDialogSizeAndPosition, calculateStartSize, index as dateUtils, defaultDelay, getAxiosErrorMessage, getAxiosWarningMessage, getErrorMessage, getInitials, getLastUpdateTitle, getPosition, getWarningMessage, isAxiosAuthError, isAxiosError, loadAllTranslations, pollingIntervalTimeout, renderCounter, safelyInitI18nForTestsAndStories, sessionStorageProvider, sharedTranslations, showPrompt, sliderHeaderStyle, tooltipContainerStyles, useConfirmationDialog, useControlledTooltip, useDebounce, useDialogActions, useIsMounted, useMakeSureContainerStaysInsideWindow, usePoller, usePreventBrowserClose, usePrevious, useResizeObserver, useScrollingInIsolation, useUserMenu, useWheelStopPropagation };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/shared",
3
- "version": "14.5.2",
3
+ "version": "15.1.0",
4
4
  "description": "GeoWeb shared library with shared components and utils for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -8,7 +8,7 @@
8
8
  "url": "git@gitlab.com:opengeoweb/opengeoweb.git"
9
9
  },
10
10
  "dependencies": {
11
- "@opengeoweb/theme": "14.5.2",
11
+ "@opengeoweb/theme": "15.1.0",
12
12
  "react-draggable": "^4.4.6",
13
13
  "re-resizable": "^6.9.11",
14
14
  "lodash": "^4.17.21",
@@ -16,7 +16,6 @@
16
16
  "date-fns": "^4.1.0",
17
17
  "react-i18next": "^15.1.1",
18
18
  "i18next": "^25.0.1",
19
- "@sentry/react": "^8.34.0",
20
19
  "@mui/material": "^7.0.1"
21
20
  },
22
21
  "peerDependencies": {
@@ -3,6 +3,7 @@ import React from 'react';
3
3
  import type { ListFilter } from './FilterList';
4
4
  export declare const DEFAULT_FILTER_HEIGHT = 85;
5
5
  interface FilterProps extends BoxProps {
6
+ activeLabelFilterCount?: number;
6
7
  filters: ListFilter[];
7
8
  onClickFilterChip?: (id: string, selected: boolean) => void;
8
9
  onSearch?: (value: string) => void;
@@ -13,6 +13,7 @@ interface FilterListProps {
13
13
  showLabelFilterToggle?: boolean;
14
14
  isLabelFilterOpen?: boolean;
15
15
  onToggleLabelFilter?: () => void;
16
+ activeLabelFilterCount?: number;
16
17
  }
17
18
  declare const FilterList: React.FC<FilterListProps>;
18
19
  export default FilterList;
@@ -2,4 +2,5 @@ import React from 'react';
2
2
  export declare const FilterToggleButton: React.FC<{
3
3
  isOpen: boolean;
4
4
  onToggle: () => void;
5
+ activeLabelFilterCount: number;
5
6
  }>;
@@ -1,3 +1,4 @@
1
+ import type { SxProps, Theme } from '@mui/material';
1
2
  import type { TFunction } from 'i18next';
2
3
  import React from 'react';
3
4
  export declare const getLastUpdateTitle: (time: string, t: TFunction) => string;
@@ -7,6 +8,7 @@ interface LastUpdateTimeProps {
7
8
  dataTestId?: string;
8
9
  hideLabel?: boolean;
9
10
  showRefreshButton?: boolean;
11
+ iconButtonSx?: SxProps<Theme>;
10
12
  }
11
13
  declare const LastUpdateTime: React.FC<LastUpdateTimeProps>;
12
14
  export default LastUpdateTime;
@@ -1,6 +1,5 @@
1
1
  export { default as UserMenu } from './UserMenu';
2
2
  export { default as UserMenuItemTheme } from './UserMenuItemTheme';
3
3
  export { default as UserMenuItemCheatSheet } from './UserMenuItemCheatSheet';
4
- export { default as UserMenuItemSentryRecording } from './UserMenuSentryRecording';
5
4
  export { useUserMenu } from './useUserMenu';
6
5
  export { getInitials } from './utils';
@@ -26,6 +26,7 @@ export interface ConfigType {
26
26
  GW_VERSION_PROGRESS_NOTES_URL?: string;
27
27
  GW_BE_RELEASE_URL?: string;
28
28
  GW_LOCATION_BASE_URL?: string;
29
+ GW_KNMI_PUBLISHER_BASE_URL?: string;
29
30
  GW_FEATURE_APP_TITLE?: string;
30
31
  GW_FEATURE_FORCE_AUTHENTICATION?: boolean;
31
32
  GW_FEATURE_MODULE_SPACE_WEATHER?: boolean;
@@ -52,6 +53,15 @@ export interface SoundingsCollection {
52
53
  description: string;
53
54
  parameterMappings?: Record<string, string>;
54
55
  }
56
+ export type Coordinates = [number, number];
57
+ export interface SourceSelection {
58
+ url?: string;
59
+ instanceId?: string;
60
+ isChecked?: boolean;
61
+ verticalRange?: string;
62
+ parameterMappings?: Record<string, string>;
63
+ name?: string;
64
+ }
55
65
  export interface TimeSeriesService {
56
66
  id: string;
57
67
  description: string;
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- interface UserMenuSentryRecordingProps {
3
- recordButtonEnabled?: boolean;
4
- setRecordButtonEnabled?: React.Dispatch<React.SetStateAction<boolean>>;
5
- }
6
- declare const UserMenuItemSentryRecording: React.FC<UserMenuSentryRecordingProps>;
7
- export default UserMenuItemSentryRecording;