pne-ui 3.0.1 → 3.0.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.
- package/README.md +100 -6
- package/cjs/component/search-ui/SearchUIProvider.d.ts +44 -0
- package/cjs/component/search-ui/SearchUIProvider.js +18 -0
- package/cjs/component/search-ui/SearchUIProvider.js.map +1 -1
- package/esm/component/search-ui/SearchUIProvider.d.ts +44 -0
- package/esm/component/search-ui/SearchUIProvider.js +18 -0
- package/esm/component/search-ui/SearchUIProvider.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -3,20 +3,20 @@
|
|
|
3
3
|
[![NPM version][npm-image]][npm-url]
|
|
4
4
|
[![Build][github-build]][github-build-url]
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
Обертка над MUI
|
|
7
7
|
|
|
8
|
-
##
|
|
8
|
+
## Установка
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
Установите `pne-ui` вместе с peer-зависимостями:
|
|
11
11
|
|
|
12
12
|
```bash
|
|
13
13
|
yarn add pne-ui @emotion/react@^11 @emotion/styled@^11 @mui/material@^7 @mui/system@^7 @mui/x-date-pickers-pro@^7 @mui/icons-material@^7 i18next@^23 react@^18 react-dom@^18 react-i18next@^11
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
Подбирайте версии React и React DOM (`^18` или `^19`) в зависимости от вашего приложения.
|
|
17
|
+
Пакеты MUI поддерживают `^6` и `^7`, установите major-версию, которая совпадает с версией хост-приложения.
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
Необходимые peer-зависимости и минимальные версии:
|
|
20
20
|
|
|
21
21
|
- `@emotion/react@^11`
|
|
22
22
|
- `@emotion/styled@^11`
|
|
@@ -29,6 +29,100 @@ Required peer packages and minimum versions:
|
|
|
29
29
|
- `react-dom@^18 || ^19`
|
|
30
30
|
- `react-i18next@^11`
|
|
31
31
|
|
|
32
|
+
## Интеграция SearchUI
|
|
33
|
+
|
|
34
|
+
### Подключение контекста через `SearchUIProvider`
|
|
35
|
+
|
|
36
|
+
Компоненты `SearchUI` и его фильтры получают конфигурацию через контекст `SearchUIDefaultsContext`.
|
|
37
|
+
Чтобы отдать реальные источники данных и управлять видимостью критериев, оберните SearchUI в `SearchUIProvider`
|
|
38
|
+
и передайте нужные обработчики в проп `defaults`:
|
|
39
|
+
|
|
40
|
+
```tsx
|
|
41
|
+
import {
|
|
42
|
+
SearchUI,
|
|
43
|
+
SearchUIProvider,
|
|
44
|
+
CriterionTypeEnum,
|
|
45
|
+
ExactCriterionSearchLabelEnum,
|
|
46
|
+
} from 'pne-ui'
|
|
47
|
+
|
|
48
|
+
export const TransactionsPage = () => (
|
|
49
|
+
<SearchUIProvider
|
|
50
|
+
defaults={{
|
|
51
|
+
getDefaultCurrency: () => ({ id: 643, displayName: 'RUB' }),
|
|
52
|
+
getCurrencies: fetchCurrencies,
|
|
53
|
+
getMatchLinkedItems: request => api.multiget(request),
|
|
54
|
+
showProjectsCriterion: () => true,
|
|
55
|
+
showManagersCriterion: () => false,
|
|
56
|
+
// Методы ниже нужны для работы шаблонов фильтров (панель Templates)
|
|
57
|
+
// Возвращает список шаблонов поиска для выпадающего списка
|
|
58
|
+
getSearchTemplates: contextName => templatesApi.list(contextName),
|
|
59
|
+
// Сохраняет текущие настройки фильтров под именем шаблона
|
|
60
|
+
saveSearchTemplate: request => templatesApi.save(request),
|
|
61
|
+
// Удаляет ранее сохраненный шаблон
|
|
62
|
+
deleteSearchTemplate: request => templatesApi.remove(request),
|
|
63
|
+
// Проверяет, существует ли шаблон с указанным именем
|
|
64
|
+
searchTemplateExists: request => templatesApi.exists(request),
|
|
65
|
+
}}
|
|
66
|
+
>
|
|
67
|
+
<SearchUI
|
|
68
|
+
settingsContextName="transactions"
|
|
69
|
+
possibleCriteria={[
|
|
70
|
+
CriterionTypeEnum.DATE_RANGE,
|
|
71
|
+
CriterionTypeEnum.TRANSACTION_TYPES,
|
|
72
|
+
]}
|
|
73
|
+
exactSearchLabels={[ExactCriterionSearchLabelEnum.ID]}
|
|
74
|
+
/* остальные пропсы */
|
|
75
|
+
/>
|
|
76
|
+
</SearchUIProvider>
|
|
77
|
+
)
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Передавайте только те поля `SearchUIDefaults`, которые хотите переопределить — остальные значения берутся из
|
|
81
|
+
`initialSearchUIDefaults`. Более развернутый пример можно посмотреть в `src/stories/SearchUI.stories.tsx`.
|
|
82
|
+
`templatesApi` в примере — любая ваша обертка над бэкендом, которая умеет получать/сохранять шаблоны.
|
|
83
|
+
|
|
84
|
+
## Локализация (i18n)
|
|
85
|
+
|
|
86
|
+
`pne-ui` не принимает текстовые ресурсы через пропсы и не содержит собственного `I18nextProvider`.
|
|
87
|
+
Все компоненты используют `useTranslation()` из `react-i18next`, поэтому они читают строки из того же контекста,
|
|
88
|
+
который инициализирован в приложении-хосте. Если в хосте нет i18next, библиотека будет просто возвращать ключи.
|
|
89
|
+
|
|
90
|
+
### Что нужно сделать в проекте
|
|
91
|
+
|
|
92
|
+
1. Инициализировать i18next один раз в корне приложения (например, в точке входа или конфигурации Storybook).
|
|
93
|
+
2. Добавить `initReactI18next` или обернуть дерево в `<I18nextProvider i18n={i18nInstance}>`, чтобы контекст был доступен.
|
|
94
|
+
3. Зарегистрировать все строки, которые ожидают компоненты `pne-ui` — в первую очередь ключи вида `react.searchUI.*`,
|
|
95
|
+
`clear.all`, `search.delete`, и т.д. Они должны жить в ресурсах самого хоста.
|
|
96
|
+
|
|
97
|
+
### Пример настройки
|
|
98
|
+
|
|
99
|
+
```ts
|
|
100
|
+
// i18n.ts
|
|
101
|
+
import i18n from 'i18next'
|
|
102
|
+
import { initReactI18next } from 'react-i18next'
|
|
103
|
+
|
|
104
|
+
i18n.use(initReactI18next).init({
|
|
105
|
+
lng: 'ru',
|
|
106
|
+
fallbackLng: 'en',
|
|
107
|
+
defaultNS: 'translation',
|
|
108
|
+
resources: {
|
|
109
|
+
ru: {
|
|
110
|
+
translation: {
|
|
111
|
+
'react.searchUI.filters': 'Фильтры',
|
|
112
|
+
'react.searchUI.template': 'Шаблон',
|
|
113
|
+
'clear.all': 'Очистить всё',
|
|
114
|
+
// добавьте остальные ключи, которые используете
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
})
|
|
119
|
+
|
|
120
|
+
export default i18n
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
После инициализации достаточно один раз импортировать `./i18n` в точке входа или Storybook; все компоненты `pne-ui`
|
|
124
|
+
подтянутся к уже созданному контексту и будут использовать зарегистрированные строки.
|
|
125
|
+
|
|
32
126
|
[npm-url]: https://www.npmjs.com/package/pne-ui
|
|
33
127
|
|
|
34
128
|
[npm-image]: https://img.shields.io/npm/v/pne-ui
|
|
@@ -20,6 +20,32 @@ type GetProjectCurrenciesRequest = {
|
|
|
20
20
|
searchConditions: CriterionTypeEnum[];
|
|
21
21
|
multigetCriteria: MultigetCriterion[];
|
|
22
22
|
};
|
|
23
|
+
/**
|
|
24
|
+
* Набор функций и флагов, который описывает среду выполнения SearchUI.
|
|
25
|
+
* Конкретное приложение обязано переопределить нужные обработчики,
|
|
26
|
+
* чтобы выдавать списки сущностей, значения по умолчанию и скрывать/показывать
|
|
27
|
+
* элементы интерфейса.
|
|
28
|
+
*
|
|
29
|
+
* @remarks
|
|
30
|
+
* SearchUI считывает эти значения из {@link SearchUIDefaultsContext}. Все методы
|
|
31
|
+
* имеют заглушки в {@link initialSearchUIDefaults}, но в рабочем коде следует
|
|
32
|
+
* передавать реализацию через {@link SearchUIProvider}, иначе поисковой интерфейс
|
|
33
|
+
* не получит данные и не сможет отобразить нужные фильтры.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```tsx
|
|
37
|
+
* <SearchUIProvider
|
|
38
|
+
* defaults={{
|
|
39
|
+
* getCountries: fetchCountries,
|
|
40
|
+
* showProjectsCriterion: () => true,
|
|
41
|
+
* }}
|
|
42
|
+
* >
|
|
43
|
+
* <SearchUI {...props} />
|
|
44
|
+
* </SearchUIProvider>
|
|
45
|
+
* ```
|
|
46
|
+
*
|
|
47
|
+
* @see src/stories/SearchUI.stories.tsx
|
|
48
|
+
*/
|
|
23
49
|
export type SearchUIDefaults = {
|
|
24
50
|
getDefaultCurrency: () => AbstractEntity;
|
|
25
51
|
getMatchLinkedItems: (request: GetMatchLinkedItemsRequest) => Promise<AbstractEntity[]>;
|
|
@@ -65,6 +91,24 @@ type Props = {
|
|
|
65
91
|
children: React.ReactNode;
|
|
66
92
|
};
|
|
67
93
|
export declare const initialSearchUIDefaults: SearchUIDefaults;
|
|
94
|
+
/**
|
|
95
|
+
* React-контекст, предоставляющий SearchUIDefaults вглубь дерева.
|
|
96
|
+
* Используйте `useContext(SearchUIDefaultsContext)`, чтобы получить доступ
|
|
97
|
+
* к настройкам внутри кастомных фильтров.
|
|
98
|
+
*/
|
|
68
99
|
export declare const SearchUIDefaultsContext: React.Context<SearchUIDefaults>;
|
|
100
|
+
/**
|
|
101
|
+
* Провайдер, который объединяет {@link initialSearchUIDefaults} с пользовательскими
|
|
102
|
+
* значениями и делает их доступными всему UI поиска.
|
|
103
|
+
*
|
|
104
|
+
* Разместите компонент вокруг областей, где монтируется `SearchUI` (см. пример в
|
|
105
|
+
* `src/stories/SearchUI.stories.tsx`). Так вы определяете, какие источники данных,
|
|
106
|
+
* шаблоны и флаги видимости должен использовать конкретный экран.
|
|
107
|
+
*
|
|
108
|
+
* @param props.defaults Частичный объект SearchUIDefaults. Укажите только то, что
|
|
109
|
+
* нужно переопределить, остальные значения будут взяты
|
|
110
|
+
* из {@link initialSearchUIDefaults}.
|
|
111
|
+
* @param props.children Дерево компонентов, которые должны читать контекст.
|
|
112
|
+
*/
|
|
69
113
|
export declare const SearchUIProvider: (props: Props) => React.JSX.Element;
|
|
70
114
|
export {};
|
|
@@ -47,7 +47,25 @@ exports.initialSearchUIDefaults = {
|
|
|
47
47
|
showGateRelatedGroupings: () => true,
|
|
48
48
|
showCounterpartyGrouping: () => true,
|
|
49
49
|
};
|
|
50
|
+
/**
|
|
51
|
+
* React-контекст, предоставляющий SearchUIDefaults вглубь дерева.
|
|
52
|
+
* Используйте `useContext(SearchUIDefaultsContext)`, чтобы получить доступ
|
|
53
|
+
* к настройкам внутри кастомных фильтров.
|
|
54
|
+
*/
|
|
50
55
|
exports.SearchUIDefaultsContext = (0, react_1.createContext)(exports.initialSearchUIDefaults);
|
|
56
|
+
/**
|
|
57
|
+
* Провайдер, который объединяет {@link initialSearchUIDefaults} с пользовательскими
|
|
58
|
+
* значениями и делает их доступными всему UI поиска.
|
|
59
|
+
*
|
|
60
|
+
* Разместите компонент вокруг областей, где монтируется `SearchUI` (см. пример в
|
|
61
|
+
* `src/stories/SearchUI.stories.tsx`). Так вы определяете, какие источники данных,
|
|
62
|
+
* шаблоны и флаги видимости должен использовать конкретный экран.
|
|
63
|
+
*
|
|
64
|
+
* @param props.defaults Частичный объект SearchUIDefaults. Укажите только то, что
|
|
65
|
+
* нужно переопределить, остальные значения будут взяты
|
|
66
|
+
* из {@link initialSearchUIDefaults}.
|
|
67
|
+
* @param props.children Дерево компонентов, которые должны читать контекст.
|
|
68
|
+
*/
|
|
51
69
|
const SearchUIProvider = (props) => {
|
|
52
70
|
const { defaults, children, } = props;
|
|
53
71
|
return react_1.default.createElement(exports.SearchUIDefaultsContext.Provider, { value: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchUIProvider.js","sourceRoot":"","sources":["../../../src/component/search-ui/SearchUIProvider.tsx"],"names":[],"mappings":";;;;AAAA,uDAA2C;
|
|
1
|
+
{"version":3,"file":"SearchUIProvider.js","sourceRoot":"","sources":["../../../src/component/search-ui/SearchUIProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,32 @@ type GetProjectCurrenciesRequest = {
|
|
|
20
20
|
searchConditions: CriterionTypeEnum[];
|
|
21
21
|
multigetCriteria: MultigetCriterion[];
|
|
22
22
|
};
|
|
23
|
+
/**
|
|
24
|
+
* Набор функций и флагов, который описывает среду выполнения SearchUI.
|
|
25
|
+
* Конкретное приложение обязано переопределить нужные обработчики,
|
|
26
|
+
* чтобы выдавать списки сущностей, значения по умолчанию и скрывать/показывать
|
|
27
|
+
* элементы интерфейса.
|
|
28
|
+
*
|
|
29
|
+
* @remarks
|
|
30
|
+
* SearchUI считывает эти значения из {@link SearchUIDefaultsContext}. Все методы
|
|
31
|
+
* имеют заглушки в {@link initialSearchUIDefaults}, но в рабочем коде следует
|
|
32
|
+
* передавать реализацию через {@link SearchUIProvider}, иначе поисковой интерфейс
|
|
33
|
+
* не получит данные и не сможет отобразить нужные фильтры.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```tsx
|
|
37
|
+
* <SearchUIProvider
|
|
38
|
+
* defaults={{
|
|
39
|
+
* getCountries: fetchCountries,
|
|
40
|
+
* showProjectsCriterion: () => true,
|
|
41
|
+
* }}
|
|
42
|
+
* >
|
|
43
|
+
* <SearchUI {...props} />
|
|
44
|
+
* </SearchUIProvider>
|
|
45
|
+
* ```
|
|
46
|
+
*
|
|
47
|
+
* @see src/stories/SearchUI.stories.tsx
|
|
48
|
+
*/
|
|
23
49
|
export type SearchUIDefaults = {
|
|
24
50
|
getDefaultCurrency: () => AbstractEntity;
|
|
25
51
|
getMatchLinkedItems: (request: GetMatchLinkedItemsRequest) => Promise<AbstractEntity[]>;
|
|
@@ -65,6 +91,24 @@ type Props = {
|
|
|
65
91
|
children: React.ReactNode;
|
|
66
92
|
};
|
|
67
93
|
export declare const initialSearchUIDefaults: SearchUIDefaults;
|
|
94
|
+
/**
|
|
95
|
+
* React-контекст, предоставляющий SearchUIDefaults вглубь дерева.
|
|
96
|
+
* Используйте `useContext(SearchUIDefaultsContext)`, чтобы получить доступ
|
|
97
|
+
* к настройкам внутри кастомных фильтров.
|
|
98
|
+
*/
|
|
68
99
|
export declare const SearchUIDefaultsContext: React.Context<SearchUIDefaults>;
|
|
100
|
+
/**
|
|
101
|
+
* Провайдер, который объединяет {@link initialSearchUIDefaults} с пользовательскими
|
|
102
|
+
* значениями и делает их доступными всему UI поиска.
|
|
103
|
+
*
|
|
104
|
+
* Разместите компонент вокруг областей, где монтируется `SearchUI` (см. пример в
|
|
105
|
+
* `src/stories/SearchUI.stories.tsx`). Так вы определяете, какие источники данных,
|
|
106
|
+
* шаблоны и флаги видимости должен использовать конкретный экран.
|
|
107
|
+
*
|
|
108
|
+
* @param props.defaults Частичный объект SearchUIDefaults. Укажите только то, что
|
|
109
|
+
* нужно переопределить, остальные значения будут взяты
|
|
110
|
+
* из {@link initialSearchUIDefaults}.
|
|
111
|
+
* @param props.children Дерево компонентов, которые должны читать контекст.
|
|
112
|
+
*/
|
|
69
113
|
export declare const SearchUIProvider: (props: Props) => React.JSX.Element;
|
|
70
114
|
export {};
|
|
@@ -43,7 +43,25 @@ export const initialSearchUIDefaults = {
|
|
|
43
43
|
showGateRelatedGroupings: () => true,
|
|
44
44
|
showCounterpartyGrouping: () => true,
|
|
45
45
|
};
|
|
46
|
+
/**
|
|
47
|
+
* React-контекст, предоставляющий SearchUIDefaults вглубь дерева.
|
|
48
|
+
* Используйте `useContext(SearchUIDefaultsContext)`, чтобы получить доступ
|
|
49
|
+
* к настройкам внутри кастомных фильтров.
|
|
50
|
+
*/
|
|
46
51
|
export const SearchUIDefaultsContext = createContext(initialSearchUIDefaults);
|
|
52
|
+
/**
|
|
53
|
+
* Провайдер, который объединяет {@link initialSearchUIDefaults} с пользовательскими
|
|
54
|
+
* значениями и делает их доступными всему UI поиска.
|
|
55
|
+
*
|
|
56
|
+
* Разместите компонент вокруг областей, где монтируется `SearchUI` (см. пример в
|
|
57
|
+
* `src/stories/SearchUI.stories.tsx`). Так вы определяете, какие источники данных,
|
|
58
|
+
* шаблоны и флаги видимости должен использовать конкретный экран.
|
|
59
|
+
*
|
|
60
|
+
* @param props.defaults Частичный объект SearchUIDefaults. Укажите только то, что
|
|
61
|
+
* нужно переопределить, остальные значения будут взяты
|
|
62
|
+
* из {@link initialSearchUIDefaults}.
|
|
63
|
+
* @param props.children Дерево компонентов, которые должны читать контекст.
|
|
64
|
+
*/
|
|
47
65
|
export const SearchUIProvider = (props) => {
|
|
48
66
|
const { defaults, children, } = props;
|
|
49
67
|
return React.createElement(SearchUIDefaultsContext.Provider, { value: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchUIProvider.js","sourceRoot":"","sources":["../../../src/component/search-ui/SearchUIProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SearchUIProvider.js","sourceRoot":"","sources":["../../../src/component/search-ui/SearchUIProvider.tsx"],"names":[],"mappings":"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"}
|