pne-ui 3.0.96 → 3.1.2

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 (52) hide show
  1. package/README.md +62 -1
  2. package/cjs/component/overlay/OverlayHost.js +103 -6
  3. package/cjs/component/overlay/OverlayHost.js.map +1 -1
  4. package/cjs/component/overlay/overlayRuntime.d.ts +3 -0
  5. package/cjs/component/overlay/overlayRuntime.js +45 -0
  6. package/cjs/component/overlay/overlayRuntime.js.map +1 -0
  7. package/cjs/component/overlay/overlayStore.d.ts +6 -1
  8. package/cjs/component/overlay/overlayStore.js +38 -2
  9. package/cjs/component/overlay/overlayStore.js.map +1 -1
  10. package/cjs/component/overlay/types.d.ts +12 -0
  11. package/cjs/component/search-ui/filters/SearchUIFilters.d.ts +7 -1
  12. package/cjs/component/search-ui/filters/SearchUIFilters.js +59 -1
  13. package/cjs/component/search-ui/filters/SearchUIFilters.js.map +1 -1
  14. package/cjs/component/search-ui/filters/criterionAvailability.d.ts +7 -0
  15. package/cjs/component/search-ui/filters/criterionAvailability.js +13 -0
  16. package/cjs/component/search-ui/filters/criterionAvailability.js.map +1 -0
  17. package/cjs/component/search-ui/filters/state/actions.js +80 -19
  18. package/cjs/component/search-ui/filters/state/actions.js.map +1 -1
  19. package/cjs/component/search-ui/filters/state/store.d.ts +5 -0
  20. package/cjs/component/search-ui/filters/state/type.d.ts +5 -0
  21. package/cjs/component/search-ui/filters/state/undo.d.ts +2 -0
  22. package/cjs/component/search-ui/filters/state/undo.js +37 -0
  23. package/cjs/component/search-ui/filters/state/undo.js.map +1 -0
  24. package/cjs/component/search-ui/filters/types.d.ts +13 -0
  25. package/cjs/exports/search.d.ts +1 -1
  26. package/cjs/exports/search.js.map +1 -1
  27. package/esm/component/overlay/OverlayHost.js +103 -6
  28. package/esm/component/overlay/OverlayHost.js.map +1 -1
  29. package/esm/component/overlay/overlayRuntime.d.ts +3 -0
  30. package/esm/component/overlay/overlayRuntime.js +39 -0
  31. package/esm/component/overlay/overlayRuntime.js.map +1 -0
  32. package/esm/component/overlay/overlayStore.d.ts +6 -1
  33. package/esm/component/overlay/overlayStore.js +37 -2
  34. package/esm/component/overlay/overlayStore.js.map +1 -1
  35. package/esm/component/overlay/types.d.ts +12 -0
  36. package/esm/component/search-ui/filters/SearchUIFilters.d.ts +7 -1
  37. package/esm/component/search-ui/filters/SearchUIFilters.js +61 -3
  38. package/esm/component/search-ui/filters/SearchUIFilters.js.map +1 -1
  39. package/esm/component/search-ui/filters/criterionAvailability.d.ts +7 -0
  40. package/esm/component/search-ui/filters/criterionAvailability.js +8 -0
  41. package/esm/component/search-ui/filters/criterionAvailability.js.map +1 -0
  42. package/esm/component/search-ui/filters/state/actions.js +80 -19
  43. package/esm/component/search-ui/filters/state/actions.js.map +1 -1
  44. package/esm/component/search-ui/filters/state/store.d.ts +5 -0
  45. package/esm/component/search-ui/filters/state/type.d.ts +5 -0
  46. package/esm/component/search-ui/filters/state/undo.d.ts +2 -0
  47. package/esm/component/search-ui/filters/state/undo.js +32 -0
  48. package/esm/component/search-ui/filters/state/undo.js.map +1 -0
  49. package/esm/component/search-ui/filters/types.d.ts +13 -0
  50. package/esm/exports/search.d.ts +1 -1
  51. package/esm/exports/search.js.map +1 -1
  52. package/package.json +1 -1
package/README.md CHANGED
@@ -29,6 +29,29 @@ yarn add pne-ui @emotion/react@^11 @emotion/styled@^11 @mui/material@^7 @mui/sys
29
29
  - `react-dom@^18 || ^19`
30
30
  - `react-i18next@^11`
31
31
 
32
+ ## OverlayHost
33
+
34
+ Компоненты, которые используют `overlayActions` напрямую или косвенно, требуют смонтированный
35
+ `<OverlayHost />` в приложении-хосте. Это касается и `SearchUI`, потому что `Clear all` использует
36
+ undo-snackbar.
37
+
38
+ Подключайте `OverlayHost` ровно один раз, обычно рядом с корнем приложения:
39
+
40
+ ```tsx
41
+ import { OverlayHost } from 'pne-ui'
42
+
43
+ export const App = () => (
44
+ <OverlayHost>
45
+ <ApplicationRoutes />
46
+ </OverlayHost>
47
+ )
48
+ ```
49
+
50
+ Важные правила интеграции:
51
+ - если `overlayActions.*` вызываются без смонтированного `OverlayHost`, библиотека пишет явный `console.error`, а snackbar не будет виден пользователю;
52
+ - если в DOM смонтировано больше одного `OverlayHost`, библиотека пишет явный `console.error`, потому что такая конфигурация дублирует snackbar-ы и может рассинхронизировать их таймеры;
53
+ - `OverlayHost` должен подключаться в приложении-хосте, а не внутри отдельных виджетов библиотеки.
54
+
32
55
  ## Интеграция SearchUI
33
56
 
34
57
  ### Подключение контекста через `SearchUIProvider`
@@ -103,6 +126,42 @@ const config = {
103
126
  />
104
127
  ```
105
128
 
129
+ ### Динамическая доступность критериев
130
+
131
+ Если критерий должен быть доступен только при определённом состоянии фильтров,
132
+ передайте правила в `config.criterionAvailabilityRules`. Недоступный критерий
133
+ удаляется из активных `criteria`, его значение очищается тем же способом, что и
134
+ при ручном удалении фильтра, и он не показывается в списке добавления. Если
135
+ такой критерий входит в `predefinedCriteria`, он автоматически вернётся в
136
+ активные фильтры, когда снова станет доступен.
137
+
138
+ Например, `ORDERS_SEARCH` можно оставлять активным только для
139
+ `orderDateType === 'SESSION_STATUS_CHANGED'`:
140
+
141
+ ```tsx
142
+ <SearchUI
143
+ settingsContextName="orders"
144
+ predefinedCriteria={[
145
+ CriterionTypeEnum.DATE_RANGE_ORDERS,
146
+ CriterionTypeEnum.ORDERS_SEARCH,
147
+ ]}
148
+ possibleCriteria={[
149
+ CriterionTypeEnum.CARD_TYPES,
150
+ CriterionTypeEnum.CURRENCY,
151
+ CriterionTypeEnum.TRANSACTION_TYPES,
152
+ ]}
153
+ config={{
154
+ criterionAvailabilityRules: [{
155
+ criterion: CriterionTypeEnum.ORDERS_SEARCH,
156
+ isAvailable: conditions => (
157
+ conditions.orderDateType === 'SESSION_STATUS_CHANGED'
158
+ ),
159
+ }],
160
+ }}
161
+ /* остальные пропсы */
162
+ />
163
+ ```
164
+
106
165
  ### Ручной режим поиска (manual search)
107
166
 
108
167
  По умолчанию любое изменение фильтра немедленно запускает новый запрос.
@@ -375,7 +434,9 @@ const AppShell = () => (
375
434
  )
376
435
  ```
377
436
 
378
- - Для уведомлений используйте `overlayActions.showSuccess/showError/showWarning/showInfo` или `showSnackbar`.
437
+ - Для уведомлений используйте `overlayActions.showSuccess/showError/showWarning/showInfo`, `showSnackbar` или `showUndoSnackbar`.
438
+ - `showUndoSnackbar` возвращает `id` snackbar и добавляет встроенную action-кнопку `Undo` (или ваш `undoLabel`).
439
+ - Любой snackbar с конечным `autoHideMs` показывает progress bar вверху карточки; если `autoHideMs` не задан, progress bar не рендерится.
379
440
  - `PermanentOverlay` можно размещать на любом уровне дерева под хостом; последний зарегистрированный в слоте заменяет предыдущий.
380
441
  - Слоты фиксированы четырьмя углами; сместить позицию можно через `offset`/`zIndex` пропы на `PermanentOverlay`.
381
442
 
@@ -8,9 +8,110 @@ const useBreakpoint_1 = require("../responsive/useBreakpoint");
8
8
  const overlayStore_1 = require("./overlayStore");
9
9
  const material_2 = require("@mui/material");
10
10
  const PermanentOverlayContext_1 = require("./PermanentOverlayContext");
11
+ const overlayRuntime_1 = require("./overlayRuntime");
11
12
  const STACK_GAP = 12;
12
13
  const STACK_OFFSET = 24;
13
14
  const PERMANENT_OFFSET = 24;
15
+ const clearTimer = (timer) => {
16
+ if (timer) {
17
+ clearTimeout(timer);
18
+ }
19
+ };
20
+ const ManagedSnackbar = ({ anchor, onRemove, snack }) => {
21
+ const autoHideMs = typeof snack.autoHideMs === 'number' && snack.autoHideMs > 0 ? snack.autoHideMs : null;
22
+ const [remainingMs, setRemainingMs] = (0, react_1.useState)(autoHideMs);
23
+ const timeoutRef = react_1.default.useRef(null);
24
+ const intervalRef = react_1.default.useRef(null);
25
+ const startedAtRef = react_1.default.useRef(null);
26
+ const remainingRef = react_1.default.useRef(autoHideMs);
27
+ const remove = (0, react_1.useCallback)(() => {
28
+ if (snack.id) {
29
+ onRemove(snack.id);
30
+ }
31
+ }, [onRemove, snack.id]);
32
+ const stopTimer = (0, react_1.useCallback)(() => {
33
+ clearTimer(timeoutRef.current);
34
+ clearTimer(intervalRef.current);
35
+ timeoutRef.current = null;
36
+ intervalRef.current = null;
37
+ }, []);
38
+ const syncRemaining = (0, react_1.useCallback)(() => {
39
+ if (startedAtRef.current == null || remainingRef.current == null) {
40
+ return;
41
+ }
42
+ const elapsed = Date.now() - startedAtRef.current;
43
+ setRemainingMs(Math.max(remainingRef.current - elapsed, 0));
44
+ }, []);
45
+ const startTimer = (0, react_1.useCallback)((duration) => {
46
+ if (autoHideMs == null) {
47
+ return;
48
+ }
49
+ if (duration <= 0) {
50
+ stopTimer();
51
+ remove();
52
+ return;
53
+ }
54
+ stopTimer();
55
+ remainingRef.current = duration;
56
+ startedAtRef.current = Date.now();
57
+ setRemainingMs(duration);
58
+ timeoutRef.current = setTimeout(() => {
59
+ stopTimer();
60
+ remove();
61
+ }, duration);
62
+ intervalRef.current = setInterval(syncRemaining, 50);
63
+ }, [autoHideMs, remove, stopTimer, syncRemaining]);
64
+ const pauseTimer = (0, react_1.useCallback)(() => {
65
+ if (autoHideMs == null || startedAtRef.current == null || remainingRef.current == null) {
66
+ return;
67
+ }
68
+ const elapsed = Date.now() - startedAtRef.current;
69
+ const nextRemaining = Math.max(remainingRef.current - elapsed, 0);
70
+ remainingRef.current = nextRemaining;
71
+ startedAtRef.current = null;
72
+ setRemainingMs(nextRemaining);
73
+ stopTimer();
74
+ }, [autoHideMs, stopTimer]);
75
+ const resumeTimer = (0, react_1.useCallback)(() => {
76
+ if (autoHideMs == null || startedAtRef.current != null) {
77
+ return;
78
+ }
79
+ startTimer(remainingRef.current ?? autoHideMs);
80
+ }, [autoHideMs, startTimer]);
81
+ react_1.default.useEffect(() => {
82
+ if (autoHideMs == null) {
83
+ return undefined;
84
+ }
85
+ startTimer(autoHideMs);
86
+ return stopTimer;
87
+ }, [autoHideMs, startTimer, stopTimer]);
88
+ const progressScale = autoHideMs != null && remainingMs != null
89
+ ? Math.max(Math.min(remainingMs / autoHideMs, 1), 0)
90
+ : null;
91
+ return (react_1.default.createElement(material_1.Snackbar, { open: true, anchorOrigin: anchor, "data-testid": snack.id ? `overlay-snackbar-${snack.id}` : 'overlay-snackbar', onClose: (_event, reason) => {
92
+ if (reason === 'clickaway')
93
+ return;
94
+ remove();
95
+ }, onMouseEnter: pauseTimer, onMouseLeave: resumeTimer, onFocus: pauseTimer, onBlur: resumeTimer, sx: { position: 'static', transform: 'none', pointerEvents: 'auto', minWidth: 288 } },
96
+ react_1.default.createElement(material_1.Alert, { elevation: 1, onClose: remove, severity: snack.variant ?? 'info', action: snack.action, sx: {
97
+ position: 'relative',
98
+ overflow: 'hidden',
99
+ alignItems: 'center',
100
+ } },
101
+ progressScale != null ? (react_1.default.createElement(material_2.Box, { "data-testid": 'overlay-snackbar-progress', sx: {
102
+ position: 'absolute',
103
+ top: 0,
104
+ left: 0,
105
+ right: 0,
106
+ height: '3px',
107
+ backgroundColor: 'currentColor',
108
+ opacity: 0.24,
109
+ transformOrigin: 'left',
110
+ transform: `scaleX(${progressScale})`,
111
+ pointerEvents: 'none',
112
+ } })) : null,
113
+ snack.message)));
114
+ };
14
115
  /**
15
116
  * Renders overlay elements (currently snackbars) driven by the shared overlay store.
16
117
  * Mount this once near the root of the app and trigger notifications via `overlayActions`.
@@ -86,6 +187,7 @@ function OverlayHost({ anchorOrigin = { vertical: 'bottom', horizontal: 'left' }
86
187
  })
87
188
  .filter(Boolean);
88
189
  }, [breakpoint, permanentOverlays]);
190
+ react_1.default.useEffect(() => (0, overlayRuntime_1.registerOverlayHost)(), []);
89
191
  return (react_1.default.createElement(PermanentOverlayContext_1.PermanentOverlayContext.Provider, { value: contextValue },
90
192
  children,
91
193
  groupedSnackbars.map(group => {
@@ -106,12 +208,7 @@ function OverlayHost({ anchorOrigin = { vertical: 'bottom', horizontal: 'left' }
106
208
  pointerEvents: 'none',
107
209
  ...horizontalStyles,
108
210
  ...verticalStyles,
109
- } }, items.map(snack => (react_1.default.createElement(material_1.Snackbar, { key: snack.id, open: true, anchorOrigin: anchor, autoHideDuration: snack.autoHideMs, onClose: (_event, reason) => {
110
- if (reason === 'clickaway')
111
- return;
112
- snack.id && removeSnackbar(snack.id);
113
- }, sx: { position: 'static', transform: 'none', pointerEvents: 'auto', minWidth: 288 } },
114
- react_1.default.createElement(material_1.Alert, { elevation: 1, onClose: () => snack.id && removeSnackbar(snack.id), severity: snack.variant ?? 'info', action: snack.action, sx: { alignItems: 'center' } }, snack.message))))));
211
+ } }, items.map(snack => snack.id ? (react_1.default.createElement(ManagedSnackbar, { key: snack.id, anchor: anchor, onRemove: removeSnackbar, snack: snack })) : null)));
115
212
  }),
116
213
  permanentContent));
117
214
  }
@@ -1 +1 @@
1
- {"version":3,"file":"OverlayHost.js","sourceRoot":"","sources":["../../../src/component/overlay/OverlayHost.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OverlayHost.js","sourceRoot":"","sources":["../../../src/component/overlay/OverlayHost.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const registerOverlayHost: () => () => void;
2
+ export declare const reportMissingOverlayHost: (actionName: string) => void;
3
+ export declare const resetOverlayRuntimeForTests: () => void;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resetOverlayRuntimeForTests = exports.reportMissingOverlayHost = exports.registerOverlayHost = void 0;
4
+ let overlayHostCount = 0;
5
+ let hasWarnedAboutMissingHost = false;
6
+ let hasWarnedAboutMultipleHosts = false;
7
+ const logOverlayConfigurationError = (message) => {
8
+ console.error(message);
9
+ };
10
+ const getMissingHostMessage = (actionName) => `[pne-ui] overlayActions.${actionName}() was called without a mounted <OverlayHost />. ` +
11
+ 'The snackbar was added to the overlay store but cannot render. ' +
12
+ 'Mount exactly one <OverlayHost /> near the application root.';
13
+ const getMultipleHostsMessage = () => `[pne-ui] Detected ${overlayHostCount} mounted <OverlayHost /> instances. ` +
14
+ 'OverlayHost is a singleton and must be mounted exactly once near the application root. ' +
15
+ 'Multiple hosts duplicate snackbars and can desynchronize their timers.';
16
+ const registerOverlayHost = () => {
17
+ overlayHostCount += 1;
18
+ hasWarnedAboutMissingHost = false;
19
+ if (overlayHostCount > 1 && !hasWarnedAboutMultipleHosts) {
20
+ hasWarnedAboutMultipleHosts = true;
21
+ logOverlayConfigurationError(getMultipleHostsMessage());
22
+ }
23
+ return () => {
24
+ overlayHostCount = Math.max(overlayHostCount - 1, 0);
25
+ if (overlayHostCount <= 1) {
26
+ hasWarnedAboutMultipleHosts = false;
27
+ }
28
+ };
29
+ };
30
+ exports.registerOverlayHost = registerOverlayHost;
31
+ const reportMissingOverlayHost = (actionName) => {
32
+ if (overlayHostCount > 0 || hasWarnedAboutMissingHost) {
33
+ return;
34
+ }
35
+ hasWarnedAboutMissingHost = true;
36
+ logOverlayConfigurationError(getMissingHostMessage(actionName));
37
+ };
38
+ exports.reportMissingOverlayHost = reportMissingOverlayHost;
39
+ const resetOverlayRuntimeForTests = () => {
40
+ overlayHostCount = 0;
41
+ hasWarnedAboutMissingHost = false;
42
+ hasWarnedAboutMultipleHosts = false;
43
+ };
44
+ exports.resetOverlayRuntimeForTests = resetOverlayRuntimeForTests;
45
+ //# sourceMappingURL=overlayRuntime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlayRuntime.js","sourceRoot":"","sources":["../../../src/component/overlay/overlayRuntime.ts"],"names":[],"mappings":";;;AAAA,IAAI,gBAAgB,GAAG,CAAC,CAAA;AACxB,IAAI,yBAAyB,GAAG,KAAK,CAAA;AACrC,IAAI,2BAA2B,GAAG,KAAK,CAAA;AAEvC,MAAM,4BAA4B,GAAG,CAAC,OAAe,EAAE,EAAE;IACrD,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;AAC1B,CAAC,CAAA;AAED,MAAM,qBAAqB,GAAG,CAAC,UAAkB,EAAE,EAAE,CACjD,2BAA2B,UAAU,mDAAmD;IACxF,iEAAiE;IACjE,8DAA8D,CAAA;AAElE,MAAM,uBAAuB,GAAG,GAAG,EAAE,CACjC,qBAAqB,gBAAgB,sCAAsC;IAC3E,yFAAyF;IACzF,wEAAwE,CAAA;AAErE,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACpC,gBAAgB,IAAI,CAAC,CAAA;IACrB,yBAAyB,GAAG,KAAK,CAAA;IAEjC,IAAI,gBAAgB,GAAG,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACvD,2BAA2B,GAAG,IAAI,CAAA;QAClC,4BAA4B,CAAC,uBAAuB,EAAE,CAAC,CAAA;IAC3D,CAAC;IAED,OAAO,GAAG,EAAE;QACR,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QAEpD,IAAI,gBAAgB,IAAI,CAAC,EAAE,CAAC;YACxB,2BAA2B,GAAG,KAAK,CAAA;QACvC,CAAC;IACL,CAAC,CAAA;AACL,CAAC,CAAA;AAhBY,QAAA,mBAAmB,uBAgB/B;AAEM,MAAM,wBAAwB,GAAG,CAAC,UAAkB,EAAE,EAAE;IAC3D,IAAI,gBAAgB,GAAG,CAAC,IAAI,yBAAyB,EAAE,CAAC;QACpD,OAAM;IACV,CAAC;IAED,yBAAyB,GAAG,IAAI,CAAA;IAChC,4BAA4B,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAA;AACnE,CAAC,CAAA;AAPY,QAAA,wBAAwB,4BAOpC;AAEM,MAAM,2BAA2B,GAAG,GAAG,EAAE;IAC5C,gBAAgB,GAAG,CAAC,CAAA;IACpB,yBAAyB,GAAG,KAAK,CAAA;IACjC,2BAA2B,GAAG,KAAK,CAAA;AACvC,CAAC,CAAA;AAJY,QAAA,2BAA2B,+BAIvC"}
@@ -1,4 +1,4 @@
1
- import type { OverlayState, SnackbarOptions } from './types';
1
+ import type { OverlayState, SnackbarOptions, UndoSnackbarOptions } from './types';
2
2
  export declare const useOverlayStore: import("zustand").UseBoundStore<import("zustand").StoreApi<OverlayState>>;
3
3
  export declare const overlayActions: {
4
4
  showSnackbar: (snackbar: SnackbarOptions) => void;
@@ -6,6 +6,11 @@ export declare const overlayActions: {
6
6
  showError: (snackbar: Omit<SnackbarOptions, 'variant'>) => void;
7
7
  showWarning: (snackbar: Omit<SnackbarOptions, 'variant'>) => void;
8
8
  showInfo: (snackbar: Omit<SnackbarOptions, 'variant'>) => void;
9
+ /**
10
+ * Shows an info snackbar with a built-in undo button and returns the snackbar id.
11
+ * By default it behaves like other non-error snackbars and auto-hides after 5000 ms unless `autoHideMs` is overridden.
12
+ */
13
+ showUndoSnackbar: ({ undoLabel, onUndo, ...snackbar }: UndoSnackbarOptions) => string;
9
14
  removeSnackbar: (id: string) => void;
10
15
  clearSnackbars: () => void;
11
16
  };
@@ -1,7 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.overlayActions = exports.useOverlayStore = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importDefault(require("react"));
6
+ const Undo_1 = tslib_1.__importDefault(require("@mui/icons-material/Undo"));
7
+ const PneButton_1 = tslib_1.__importDefault(require("../PneButton"));
4
8
  const zustand_1 = require("zustand");
9
+ const overlayRuntime_1 = require("./overlayRuntime");
5
10
  const defaultAutoHideMs = 5000;
6
11
  const makeId = () => {
7
12
  if (typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function') {
@@ -25,13 +30,44 @@ exports.useOverlayStore = (0, zustand_1.create)(set => ({
25
30
  removeSnackbar: id => set(state => ({ snackbars: state.snackbars.filter(snack => snack.id !== id) })),
26
31
  clearSnackbars: () => set({ snackbars: [] }),
27
32
  }));
28
- const showWithVariant = (variant) => (snackbar) => exports.useOverlayStore.getState().enqueueSnackbar({ ...snackbar, variant });
33
+ const showWithVariant = (variant) => (snackbar) => {
34
+ (0, overlayRuntime_1.reportMissingOverlayHost)(`show${variant.charAt(0).toUpperCase()}${variant.slice(1)}`);
35
+ exports.useOverlayStore.getState().enqueueSnackbar({ ...snackbar, variant });
36
+ };
29
37
  exports.overlayActions = {
30
- showSnackbar: (snackbar) => exports.useOverlayStore.getState().enqueueSnackbar(snackbar),
38
+ showSnackbar: (snackbar) => {
39
+ (0, overlayRuntime_1.reportMissingOverlayHost)('showSnackbar');
40
+ exports.useOverlayStore.getState().enqueueSnackbar(snackbar);
41
+ },
31
42
  showSuccess: showWithVariant('success'),
32
43
  showError: showWithVariant('error'),
33
44
  showWarning: showWithVariant('warning'),
34
45
  showInfo: showWithVariant('info'),
46
+ /**
47
+ * Shows an info snackbar with a built-in undo button and returns the snackbar id.
48
+ * By default it behaves like other non-error snackbars and auto-hides after 5000 ms unless `autoHideMs` is overridden.
49
+ */
50
+ showUndoSnackbar: ({ undoLabel = 'Undo', onUndo, ...snackbar }) => {
51
+ const id = snackbar.id ?? makeId();
52
+ (0, overlayRuntime_1.reportMissingOverlayHost)('showUndoSnackbar');
53
+ exports.useOverlayStore.getState().enqueueSnackbar({
54
+ ...snackbar,
55
+ id,
56
+ action: react_1.default.createElement(PneButton_1.default, {
57
+ variant: 'text',
58
+ size: 'small',
59
+ startIcon: react_1.default.createElement(Undo_1.default, { fontSize: 'inherit' }),
60
+ onClick: () => {
61
+ exports.useOverlayStore.getState().removeSnackbar(id);
62
+ onUndo();
63
+ },
64
+ sx: {
65
+ fontWeight: 600,
66
+ },
67
+ }, undoLabel),
68
+ });
69
+ return id;
70
+ },
35
71
  removeSnackbar: (id) => exports.useOverlayStore.getState().removeSnackbar(id),
36
72
  clearSnackbars: () => exports.useOverlayStore.getState().clearSnackbars(),
37
73
  };
@@ -1 +1 @@
1
- {"version":3,"file":"overlayStore.js","sourceRoot":"","sources":["../../../src/component/overlay/overlayStore.ts"],"names":[],"mappings":";;;AAAA,qCAAgC;AAGhC,MAAM,iBAAiB,GAAG,IAAI,CAAA;AAE9B,MAAM,MAAM,GAAG,GAAG,EAAE;IAChB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QAC3E,OAAO,MAAM,CAAC,UAAU,EAAE,CAAA;IAC9B,CAAC;IACD,OAAO,YAAY,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;AAC1E,CAAC,CAAA;AAEY,QAAA,eAAe,GAAG,IAAA,gBAAM,EAAe,GAAG,CAAC,EAAE,CAAC,CAAC;IACxD,SAAS,EAAE,EAAE;IACb,eAAe,EAAE,QAAQ,CAAC,EAAE,CACxB,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACV,SAAS,EAAE;YACP,GAAG,KAAK,CAAC,SAAS;YAClB;gBACI,EAAE,EAAE,QAAQ,CAAC,EAAE,IAAI,MAAM,EAAE;gBAC3B,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,MAAM;gBACnC,UAAU,EAAE,QAAQ,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC;gBACjG,GAAG,QAAQ;aACd;SACJ;KACJ,CAAC,CAAC;IACP,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACrG,cAAc,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;CAC/C,CAAC,CAAC,CAAA;AAEH,MAAM,eAAe,GAAG,CAAC,OAAwB,EAAE,EAAE,CAAC,CAAC,QAA0C,EAAE,EAAE,CACjG,uBAAe,CAAC,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;AAE3D,QAAA,cAAc,GAAG;IAC1B,YAAY,EAAE,CAAC,QAAyB,EAAE,EAAE,CAAC,uBAAe,CAAC,QAAQ,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC;IACjG,WAAW,EAAE,eAAe,CAAC,SAAS,CAAC;IACvC,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC;IACnC,WAAW,EAAE,eAAe,CAAC,SAAS,CAAC;IACvC,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC;IACjC,cAAc,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,uBAAe,CAAC,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;IAC7E,cAAc,EAAE,GAAG,EAAE,CAAC,uBAAe,CAAC,QAAQ,EAAE,CAAC,cAAc,EAAE;CACpE,CAAA"}
1
+ {"version":3,"file":"overlayStore.js","sourceRoot":"","sources":["../../../src/component/overlay/overlayStore.ts"],"names":[],"mappings":"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"}
@@ -5,10 +5,22 @@ export type SnackbarOptions = {
5
5
  id?: string;
6
6
  message: React.ReactNode;
7
7
  variant?: SnackbarVariant;
8
+ /**
9
+ * Auto-close timeout in milliseconds. `undefined` keeps the snackbar open until closed explicitly.
10
+ * Timed snackbars render a progress bar in `OverlayHost`.
11
+ */
8
12
  autoHideMs?: number;
9
13
  action?: React.ReactNode;
10
14
  anchorOrigin?: SnackbarOrigin;
11
15
  };
16
+ /**
17
+ * Options for a snackbar with a built-in undo action.
18
+ * `OverlayHost` renders the same timed-progress indicator as for any other timed snackbar.
19
+ */
20
+ export type UndoSnackbarOptions = Omit<SnackbarOptions, 'action'> & {
21
+ undoLabel?: React.ReactNode;
22
+ onUndo: () => void;
23
+ };
12
24
  export type OverlayState = {
13
25
  snackbars: SnackbarOptions[];
14
26
  enqueueSnackbar: (snackbar: SnackbarOptions) => void;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { CriterionTypeEnum, DateRangeSpecType, ExactCriterionSearchLabelEnum, SearchCriteria, SearchUIConditions } from './types';
2
+ import { CriterionTypeEnum, DateRangeSpecType, ExactCriterionSearchLabelEnum, SearchCriteria, SearchUICriterionAvailabilityRule, SearchUIConditions } from './types';
3
3
  import { SearchUIDefaults } from '../../..';
4
4
  /**
5
5
  * Дополнительные настройки критерия диапазона дат.
@@ -22,6 +22,12 @@ export type SearchUIFiltersConfig = {
22
22
  * Группы критериев, которые не могут быть активны одновременно.
23
23
  */
24
24
  conflictingCriteriaGroups?: CriterionTypeEnum[][];
25
+ /**
26
+ * Правила доступности критериев, зависящие от текущего состояния фильтров.
27
+ * Недоступный критерий удаляется из активных критериев и не отображается в списке добавления.
28
+ * Если недоступный критерий снова становится доступным и входит в predefinedCriteria, он возвращается автоматически.
29
+ */
30
+ criterionAvailabilityRules?: SearchUICriterionAvailabilityRule[];
25
31
  /**
26
32
  * Список предустановленных критериев, которые пользователь может удалить.
27
33
  */
@@ -10,10 +10,13 @@ const react_i18next_1 = require("react-i18next");
10
10
  const store_1 = require("./state/store");
11
11
  const material_1 = require("@mui/material");
12
12
  const ExpandMore_1 = tslib_1.__importDefault(require("@mui/icons-material/ExpandMore"));
13
+ const isEqual_1 = tslib_1.__importDefault(require("lodash/isEqual"));
13
14
  const SearchUIAddFilter_1 = tslib_1.__importDefault(require("./component/select/SearchUIAddFilter"));
14
15
  const CriterionContainer_1 = require("./CriterionContainer");
15
16
  const __1 = require("../../..");
16
17
  const SearchUIProvider_1 = require("../SearchUIProvider");
18
+ const undo_1 = require("./state/undo");
19
+ const criterionAvailability_1 = require("./criterionAvailability");
17
20
  /**
18
21
  * Панель фильтров поискового интерфейса с поддержкой шаблонов и динамических критериев.
19
22
  * @param props Свойства компонента.
@@ -32,6 +35,7 @@ const SearchUIFilters = (props) => {
32
35
  const loadTemplates = (0, store_1.useSearchUIFiltersStore)(s => s.loadTemplates);
33
36
  const criteria = (0, store_1.useSearchUIFiltersStore)(s => s.criteria);
34
37
  const clearCriteria = (0, store_1.useSearchUIFiltersStore)(s => s.clearCriteria);
38
+ const restoreClearCriteriaSnapshot = (0, store_1.useSearchUIFiltersStore)(s => s.restoreClearCriteriaSnapshot);
35
39
  const addCriterion = (0, store_1.useSearchUIFiltersStore)(s => s.addCriterion);
36
40
  const conflictingCriteriaGroups = (0, store_1.useSearchUIFiltersStore)(s => s.config?.conflictingCriteriaGroups);
37
41
  const hideTemplatesSelect = (0, store_1.useSearchUIFiltersStore)(s => s.config?.hideTemplatesSelect);
@@ -41,7 +45,21 @@ const SearchUIFilters = (props) => {
41
45
  const triggerSearch = (0, store_1.useSearchUIFiltersStore)(s => s.triggerSearch);
42
46
  const exactSearchLabel = (0, store_1.useSearchUIFiltersStore)(s => s.exactSearchLabel);
43
47
  const updateConditions = (0, store_1.useSearchUIFiltersStore)(s => s.updateConditions);
48
+ const filtersState = (0, store_1.useSearchUIFiltersStore)(s => s);
44
49
  const [showFilters, setShowFilters] = (0, react_1.useState)(true);
50
+ const pendingClearCriteriaUndoRef = (0, react_1.useRef)(null);
51
+ const clearPendingClearCriteriaUndo = (dismissSnackbar = true) => {
52
+ const pending = pendingClearCriteriaUndoRef.current;
53
+ if (!pending)
54
+ return;
55
+ if (pending.timeoutId) {
56
+ clearTimeout(pending.timeoutId);
57
+ }
58
+ if (dismissSnackbar) {
59
+ __1.overlayActions.removeSnackbar(pending.snackbarId);
60
+ }
61
+ pendingClearCriteriaUndoRef.current = null;
62
+ };
45
63
  (0, react_1.useEffect)(() => {
46
64
  setInitialState({
47
65
  defaults: defaults,
@@ -67,6 +85,22 @@ const SearchUIFilters = (props) => {
67
85
  });
68
86
  }
69
87
  }, [searchConditions]);
88
+ (0, react_1.useEffect)(() => {
89
+ const unsubscribe = store_1.useSearchUIFiltersStore.subscribe(state => {
90
+ const pending = pendingClearCriteriaUndoRef.current;
91
+ if (!pending)
92
+ return;
93
+ const currentSnapshot = (0, undo_1.createClearCriteriaUndoSnapshot)(state);
94
+ if ((0, isEqual_1.default)(currentSnapshot, pending.baseline)) {
95
+ return;
96
+ }
97
+ clearPendingClearCriteriaUndo();
98
+ });
99
+ return () => {
100
+ clearPendingClearCriteriaUndo();
101
+ unsubscribe();
102
+ };
103
+ }, []);
70
104
  const someCriteriaAdded = criteria.length > 0;
71
105
  const showFiltersCountChip = someCriteriaAdded && !showFilters;
72
106
  const removablePredefinedCriteria = config?.removablePredefinedCriteria ?? [];
@@ -74,6 +108,7 @@ const SearchUIFilters = (props) => {
74
108
  const nothingToClear = criteria.every(criterion => nonRemovablePredefinedCriteria.includes(criterion));
75
109
  const criteriaOptions = adjustedPossibleCriteria
76
110
  .filter(criterion => !criteria.includes(criterion))
111
+ .filter(criterion => (0, criterionAvailability_1.isCriterionAvailable)(criterion, filtersState, config))
77
112
  .filter(possibleC => {
78
113
  let show = true;
79
114
  conflictingCriteriaGroups?.forEach(group => {
@@ -88,6 +123,29 @@ const SearchUIFilters = (props) => {
88
123
  const showTemplatesMenu = !hideTemplatesSelect;
89
124
  const showAddFilterButton = !allCriteriaAdded;
90
125
  const showMainActionsRow = showClearAllButton || showTemplatesMenu || showAddFilterButton;
126
+ const handleClearCriteria = () => {
127
+ const snapshotBeforeClear = (0, undo_1.createClearCriteriaUndoSnapshot)(store_1.useSearchUIFiltersStore.getState());
128
+ clearPendingClearCriteriaUndo();
129
+ clearCriteria();
130
+ const baseline = (0, undo_1.createClearCriteriaUndoSnapshot)(store_1.useSearchUIFiltersStore.getState());
131
+ const autoHideMs = 5000;
132
+ const snackbarId = __1.overlayActions.showUndoSnackbar({
133
+ message: t('react.searchUI.clearAll.cleared', { defaultValue: 'All filters cleared' }),
134
+ undoLabel: t('react.searchUI.undo', { defaultValue: 'Undo' }),
135
+ autoHideMs,
136
+ onUndo: () => {
137
+ clearPendingClearCriteriaUndo(false);
138
+ restoreClearCriteriaSnapshot(snapshotBeforeClear);
139
+ },
140
+ });
141
+ pendingClearCriteriaUndoRef.current = {
142
+ snackbarId,
143
+ baseline,
144
+ timeoutId: setTimeout(() => {
145
+ clearPendingClearCriteriaUndo(false);
146
+ }, autoHideMs),
147
+ };
148
+ };
91
149
  return react_1.default.createElement(material_1.Box, { sx: { px: '16px' } },
92
150
  react_1.default.createElement(material_1.Box, { sx: headerSx },
93
151
  react_1.default.createElement(material_1.Box, { sx: headerPrimaryRowSx },
@@ -97,7 +155,7 @@ const SearchUIFilters = (props) => {
97
155
  showFiltersCountChip ? react_1.default.createElement(material_1.Chip, { size: 'small', color: 'primary', variant: 'outlined', label: criteria.length, sx: nowrapChipSx }) : null),
98
156
  react_1.default.createElement(styled_1.SearchUIFiltersHeaderActions, null,
99
157
  showMainActionsRow ? react_1.default.createElement(styled_1.SearchUIFiltersHeaderMainRow, null,
100
- react_1.default.createElement(styled_1.SearchUIFiltersHeaderLeft, null, showClearAllButton ? react_1.default.createElement(__1.PneButton, { onClick: clearCriteria, color: 'pneNeutral', size: 'small', sx: nowrapButtonSx }, t('clear.all')) : null),
158
+ react_1.default.createElement(styled_1.SearchUIFiltersHeaderLeft, null, showClearAllButton ? react_1.default.createElement(__1.PneButton, { onClick: handleClearCriteria, color: 'pneNeutral', size: 'small', sx: nowrapButtonSx }, t('clear.all')) : null),
101
159
  react_1.default.createElement(styled_1.SearchUIFiltersHeaderRight, null,
102
160
  showTemplatesMenu ? react_1.default.createElement(SearchUITemplatesMenu_1.default, null) : null,
103
161
  showAddFilterButton ? react_1.default.createElement(SearchUIAddFilter_1.default, { options: criteriaOptions, onChange: criterion => {
@@ -1 +1 @@
1
- {"version":3,"file":"SearchUIFilters.js","sourceRoot":"","sources":["../../../../src/component/search-ui/filters/SearchUIFilters.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SearchUIFilters.js","sourceRoot":"","sources":["../../../../src/component/search-ui/filters/SearchUIFilters.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { CriterionTypeEnum, SearchUICriterionAvailabilityRule, SearchUIConditions } from './types';
2
+ type CriterionAvailabilityConfig = {
3
+ criterionAvailabilityRules?: SearchUICriterionAvailabilityRule[];
4
+ };
5
+ export declare const getCriteriaWithAvailabilityRules: (config: CriterionAvailabilityConfig | undefined) => CriterionTypeEnum[];
6
+ export declare const isCriterionAvailable: (criterion: CriterionTypeEnum, conditions: Readonly<SearchUIConditions>, config: CriterionAvailabilityConfig | undefined) => boolean;
7
+ export {};
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isCriterionAvailable = exports.getCriteriaWithAvailabilityRules = void 0;
4
+ const getCriteriaWithAvailabilityRules = (config) => (Array.from(new Set((config?.criterionAvailabilityRules ?? []).map(rule => rule.criterion))));
5
+ exports.getCriteriaWithAvailabilityRules = getCriteriaWithAvailabilityRules;
6
+ const isCriterionAvailable = (criterion, conditions, config) => {
7
+ const rules = config?.criterionAvailabilityRules ?? [];
8
+ return rules
9
+ .filter(rule => rule.criterion === criterion)
10
+ .every(rule => rule.isAvailable(conditions));
11
+ };
12
+ exports.isCriterionAvailable = isCriterionAvailable;
13
+ //# sourceMappingURL=criterionAvailability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"criterionAvailability.js","sourceRoot":"","sources":["../../../../src/component/search-ui/filters/criterionAvailability.ts"],"names":[],"mappings":";;;AAUO,MAAM,gCAAgC,GAAG,CAC5C,MAA+C,EAC5B,EAAE,CAAC,CACtB,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CACd,CAAC,MAAM,EAAE,0BAA0B,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CACzE,CAAC,CACL,CAAA;AANY,QAAA,gCAAgC,oCAM5C;AAEM,MAAM,oBAAoB,GAAG,CAChC,SAA4B,EAC5B,UAAwC,EACxC,MAA+C,EACxC,EAAE;IACT,MAAM,KAAK,GAAG,MAAM,EAAE,0BAA0B,IAAI,EAAE,CAAA;IACtD,OAAO,KAAK;SACP,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC;SAC5C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAA;AACpD,CAAC,CAAA;AATY,QAAA,oBAAoB,wBAShC"}