profinansy-ui-lib 4.1.3 → 4.1.5
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/dist/components/banners/Banner/hooks/useGetBannersList.d.ts +2 -1
- package/dist/components/blocks/headerV2/components/Favourite/favorite.const.d.ts +2 -1
- package/dist/localization/translations/arias.d.ts +2 -0
- package/dist/localization/translations/favorites.d.ts +28 -0
- package/dist/profinansy-ui-lib.cjs +430 -430
- package/dist/profinansy-ui-lib.cjs.map +1 -1
- package/dist/profinansy-ui-lib.es.js +4517 -4463
- package/dist/profinansy-ui-lib.es.js.map +1 -1
- package/dist/urls/productsV2/investments/investments.d.ts +48 -27
- package/dist/urls/productsV2/profile/profile.d.ts +22 -12
- package/package.json +1 -1
- package/readme.md +70 -33
|
@@ -193,6 +193,7 @@ export declare const getInvestmentsHeader: (hostname: string, hostnameLenta: str
|
|
|
193
193
|
isNew?: undefined;
|
|
194
194
|
} | {
|
|
195
195
|
name: string;
|
|
196
|
+
isForeignAccess: boolean;
|
|
196
197
|
href: string;
|
|
197
198
|
locked: boolean;
|
|
198
199
|
unavailable: boolean;
|
|
@@ -214,7 +215,6 @@ export declare const getInvestmentsHeader: (hostname: string, hostnameLenta: str
|
|
|
214
215
|
unavailable: boolean;
|
|
215
216
|
isHit?: undefined;
|
|
216
217
|
})[];
|
|
217
|
-
isForeignAccess?: undefined;
|
|
218
218
|
isNew?: undefined;
|
|
219
219
|
} | {
|
|
220
220
|
name: string;
|
|
@@ -265,38 +265,46 @@ export declare const getInvestmentsSidebar: (hostname: string, hostnameLenta: st
|
|
|
265
265
|
name: string;
|
|
266
266
|
Icon: ComponentType<void>;
|
|
267
267
|
isFill: boolean;
|
|
268
|
-
isForeignAccess: boolean;
|
|
269
268
|
href: string;
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
name: string;
|
|
273
|
-
href: string;
|
|
274
|
-
locked: boolean;
|
|
275
|
-
innerPages: string[];
|
|
276
|
-
}[];
|
|
269
|
+
isForeignAccess?: undefined;
|
|
270
|
+
locked?: undefined;
|
|
277
271
|
unavailable?: undefined;
|
|
278
272
|
description?: undefined;
|
|
279
273
|
imagePlug?: undefined;
|
|
280
274
|
imagePlugMob?: undefined;
|
|
281
275
|
innerPages?: undefined;
|
|
276
|
+
subPages?: undefined;
|
|
282
277
|
isNew?: undefined;
|
|
283
278
|
} | {
|
|
284
279
|
name: string;
|
|
285
280
|
Icon: ComponentType<void>;
|
|
286
281
|
isFill: boolean;
|
|
282
|
+
isForeignAccess: boolean;
|
|
287
283
|
href: string;
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
284
|
+
locked: boolean;
|
|
285
|
+
unavailable: boolean;
|
|
286
|
+
description: string;
|
|
287
|
+
imagePlug: string;
|
|
288
|
+
imagePlugMob: string;
|
|
289
|
+
innerPages: string[];
|
|
290
|
+
subPages: ({
|
|
291
|
+
name: string;
|
|
292
|
+
href: string;
|
|
293
|
+
locked: boolean;
|
|
294
|
+
isHit: boolean;
|
|
295
|
+
unavailable: boolean;
|
|
296
|
+
} | {
|
|
297
|
+
name: string;
|
|
298
|
+
href: string;
|
|
299
|
+
locked: boolean;
|
|
300
|
+
unavailable: boolean;
|
|
301
|
+
isHit?: undefined;
|
|
302
|
+
})[];
|
|
296
303
|
isNew?: undefined;
|
|
297
304
|
} | {
|
|
298
305
|
name: string;
|
|
299
306
|
Icon: ComponentType<void>;
|
|
307
|
+
isForeignAccess: boolean;
|
|
300
308
|
isFill: boolean;
|
|
301
309
|
href: string;
|
|
302
310
|
locked: boolean;
|
|
@@ -309,36 +317,36 @@ export declare const getInvestmentsSidebar: (hostname: string, hostnameLenta: st
|
|
|
309
317
|
name: string;
|
|
310
318
|
href: string;
|
|
311
319
|
locked: boolean;
|
|
312
|
-
isHit: boolean;
|
|
313
320
|
unavailable: boolean;
|
|
321
|
+
isForeignAccess?: undefined;
|
|
314
322
|
} | {
|
|
315
323
|
name: string;
|
|
324
|
+
isForeignAccess: boolean;
|
|
316
325
|
href: string;
|
|
317
326
|
locked: boolean;
|
|
318
327
|
unavailable: boolean;
|
|
319
|
-
isHit?: undefined;
|
|
320
328
|
})[];
|
|
321
|
-
isForeignAccess?: undefined;
|
|
322
329
|
isNew?: undefined;
|
|
323
330
|
} | {
|
|
324
331
|
name: string;
|
|
325
332
|
href: string;
|
|
326
333
|
Icon: ComponentType<void>;
|
|
327
334
|
isFill: boolean;
|
|
335
|
+
isForeignAccess: boolean;
|
|
328
336
|
locked: boolean;
|
|
329
337
|
unavailable: boolean;
|
|
330
338
|
isNew: boolean;
|
|
331
339
|
description: string;
|
|
332
340
|
imagePlug: string;
|
|
333
341
|
imagePlugMob: string;
|
|
334
|
-
isForeignAccess?: undefined;
|
|
335
|
-
subPages?: undefined;
|
|
336
342
|
innerPages?: undefined;
|
|
343
|
+
subPages?: undefined;
|
|
337
344
|
} | {
|
|
338
345
|
name: string;
|
|
339
346
|
href: string;
|
|
340
347
|
Icon: ComponentType<void>;
|
|
341
348
|
isFill: boolean;
|
|
349
|
+
isForeignAccess: boolean;
|
|
342
350
|
locked: boolean;
|
|
343
351
|
subPages: ({
|
|
344
352
|
name: string;
|
|
@@ -369,7 +377,6 @@ export declare const getInvestmentsSidebar: (hostname: string, hostnameLenta: st
|
|
|
369
377
|
innerPages?: undefined;
|
|
370
378
|
isNotVisible?: undefined;
|
|
371
379
|
})[];
|
|
372
|
-
isForeignAccess?: undefined;
|
|
373
380
|
unavailable?: undefined;
|
|
374
381
|
description?: undefined;
|
|
375
382
|
imagePlug?: undefined;
|
|
@@ -380,29 +387,43 @@ export declare const getInvestmentsSidebar: (hostname: string, hostnameLenta: st
|
|
|
380
387
|
name: string;
|
|
381
388
|
Icon: ComponentType<void>;
|
|
382
389
|
isFill: boolean;
|
|
390
|
+
isForeignAccess: boolean;
|
|
383
391
|
href: string;
|
|
384
|
-
locked
|
|
385
|
-
|
|
392
|
+
locked?: undefined;
|
|
393
|
+
unavailable?: undefined;
|
|
394
|
+
description?: undefined;
|
|
395
|
+
imagePlug?: undefined;
|
|
396
|
+
imagePlugMob?: undefined;
|
|
397
|
+
innerPages?: undefined;
|
|
386
398
|
subPages?: undefined;
|
|
399
|
+
isNew?: undefined;
|
|
400
|
+
} | {
|
|
401
|
+
name: string;
|
|
402
|
+
Icon: ComponentType<void>;
|
|
403
|
+
isFill: boolean;
|
|
404
|
+
isForeignAccess: boolean;
|
|
405
|
+
href: string;
|
|
406
|
+
locked: boolean;
|
|
387
407
|
unavailable?: undefined;
|
|
388
408
|
description?: undefined;
|
|
389
409
|
imagePlug?: undefined;
|
|
390
410
|
imagePlugMob?: undefined;
|
|
391
411
|
innerPages?: undefined;
|
|
412
|
+
subPages?: undefined;
|
|
392
413
|
isNew?: undefined;
|
|
393
414
|
} | {
|
|
394
415
|
name: string;
|
|
395
416
|
Icon: ComponentType<void>;
|
|
396
417
|
isFill: boolean;
|
|
418
|
+
isForeignAccess: boolean;
|
|
397
419
|
href: string;
|
|
398
420
|
locked: boolean;
|
|
399
421
|
unavailable: boolean;
|
|
400
422
|
description: string;
|
|
401
423
|
imagePlug: string;
|
|
402
424
|
imagePlugMob: string;
|
|
403
|
-
isForeignAccess?: undefined;
|
|
404
|
-
subPages?: undefined;
|
|
405
425
|
innerPages?: undefined;
|
|
426
|
+
subPages?: undefined;
|
|
406
427
|
isNew?: undefined;
|
|
407
428
|
})[];
|
|
408
429
|
};
|
|
@@ -1,9 +1,20 @@
|
|
|
1
|
-
|
|
1
|
+
import { Locales } from '../../../common.types';
|
|
2
|
+
export declare const getProfileSidebar: (hostname: string, locale?: Locales) => {
|
|
2
3
|
title: string;
|
|
3
4
|
name: string;
|
|
4
5
|
href: string;
|
|
5
6
|
Icon: ComponentType<void>;
|
|
6
7
|
subPages: ({
|
|
8
|
+
name: "profile_favorite";
|
|
9
|
+
Icon: ComponentType<void>;
|
|
10
|
+
isForeignAccess: boolean;
|
|
11
|
+
href: string;
|
|
12
|
+
innerPages: string[];
|
|
13
|
+
subPages: {
|
|
14
|
+
name: string;
|
|
15
|
+
href: string;
|
|
16
|
+
}[];
|
|
17
|
+
} | {
|
|
7
18
|
name: string;
|
|
8
19
|
isFill: boolean;
|
|
9
20
|
isForeignAccess: boolean;
|
|
@@ -11,7 +22,6 @@ export declare const getProfileSidebar: (hostname: string) => {
|
|
|
11
22
|
href: string;
|
|
12
23
|
hiddenFromChildren?: undefined;
|
|
13
24
|
innerPages?: undefined;
|
|
14
|
-
subPages?: undefined;
|
|
15
25
|
} | {
|
|
16
26
|
name: string;
|
|
17
27
|
Icon: ComponentType<void>;
|
|
@@ -20,7 +30,6 @@ export declare const getProfileSidebar: (hostname: string) => {
|
|
|
20
30
|
hiddenFromChildren: boolean;
|
|
21
31
|
isForeignAccess?: undefined;
|
|
22
32
|
innerPages?: undefined;
|
|
23
|
-
subPages?: undefined;
|
|
24
33
|
} | {
|
|
25
34
|
name: string;
|
|
26
35
|
Icon: ComponentType<void>;
|
|
@@ -29,7 +38,6 @@ export declare const getProfileSidebar: (hostname: string) => {
|
|
|
29
38
|
isForeignAccess?: undefined;
|
|
30
39
|
hiddenFromChildren?: undefined;
|
|
31
40
|
innerPages?: undefined;
|
|
32
|
-
subPages?: undefined;
|
|
33
41
|
} | {
|
|
34
42
|
name: string;
|
|
35
43
|
Icon: ComponentType<void>;
|
|
@@ -38,19 +46,22 @@ export declare const getProfileSidebar: (hostname: string) => {
|
|
|
38
46
|
isFill?: undefined;
|
|
39
47
|
isForeignAccess?: undefined;
|
|
40
48
|
innerPages?: undefined;
|
|
41
|
-
subPages?: undefined;
|
|
42
49
|
} | {
|
|
43
50
|
name: string;
|
|
44
51
|
Icon: ComponentType<void>;
|
|
52
|
+
isForeignAccess: boolean;
|
|
45
53
|
href: string;
|
|
46
|
-
innerPages: string[];
|
|
47
|
-
subPages: {
|
|
48
|
-
name: string;
|
|
49
|
-
href: string;
|
|
50
|
-
}[];
|
|
51
54
|
isFill?: undefined;
|
|
52
|
-
isForeignAccess?: undefined;
|
|
53
55
|
hiddenFromChildren?: undefined;
|
|
56
|
+
innerPages?: undefined;
|
|
57
|
+
} | {
|
|
58
|
+
name: string;
|
|
59
|
+
Icon: ComponentType<void>;
|
|
60
|
+
isFill: boolean;
|
|
61
|
+
isForeignAccess: boolean;
|
|
62
|
+
href: string;
|
|
63
|
+
hiddenFromChildren: boolean;
|
|
64
|
+
innerPages?: undefined;
|
|
54
65
|
} | {
|
|
55
66
|
name: string;
|
|
56
67
|
Icon: ComponentType<void>;
|
|
@@ -59,6 +70,5 @@ export declare const getProfileSidebar: (hostname: string) => {
|
|
|
59
70
|
href: string;
|
|
60
71
|
innerPages: string[];
|
|
61
72
|
hiddenFromChildren: boolean;
|
|
62
|
-
subPages?: undefined;
|
|
63
73
|
})[];
|
|
64
74
|
};
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -1,59 +1,82 @@
|
|
|
1
1
|
# Общая библиотека компонентов
|
|
2
2
|
|
|
3
3
|
## Описание проекта
|
|
4
|
+
|
|
4
5
|
- Документация актуальных компонентов - https://master--651c1b79b512c24adef7cc46.chromatic.com/
|
|
5
6
|
|
|
6
7
|
Проект предназначен для создания общих компонентов, которые используются в нескольких проектах сразу:
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
|
|
9
|
+
1. UIKIT
|
|
10
|
+
2. HeaderV2
|
|
11
|
+
3. FooterV2
|
|
12
|
+
4. SideMenuV2
|
|
13
|
+
5. LayoutV2
|
|
14
|
+
6. Вспомогательные функции
|
|
13
15
|
|
|
14
16
|
## Для начала работы
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
|
|
18
|
+
1. Склонировать репозиторий `git@gitlab.profinansy.dev:ru.profinansy/frontend/profinansy-react-components.git`
|
|
19
|
+
2. Установить зависимости. Для этого в корневой папке проекта выполнить команду `yarn install`
|
|
20
|
+
3. Запустить сторибук `yarn storybook`
|
|
18
21
|
|
|
19
22
|
## Используемые команды
|
|
23
|
+
|
|
20
24
|
#### Установка зависимостей
|
|
25
|
+
|
|
21
26
|
```bash
|
|
22
27
|
yarn install
|
|
23
28
|
```
|
|
29
|
+
|
|
24
30
|
#### Сборка проекта
|
|
31
|
+
|
|
25
32
|
```bash
|
|
26
33
|
yarn build
|
|
27
34
|
```
|
|
35
|
+
|
|
28
36
|
#### Апгрейд и публикация пакета
|
|
37
|
+
|
|
29
38
|
```bash
|
|
30
39
|
yarn pub
|
|
31
40
|
```
|
|
41
|
+
|
|
32
42
|
#### Проверка проекта линтером
|
|
43
|
+
|
|
33
44
|
```bash
|
|
34
45
|
yarn lint
|
|
35
46
|
```
|
|
47
|
+
|
|
36
48
|
#### Автоматическое исправление замечаний линтером
|
|
49
|
+
|
|
37
50
|
```bash
|
|
38
51
|
yarn lint:fix
|
|
39
52
|
```
|
|
53
|
+
|
|
40
54
|
#### Проверка проекта на типы
|
|
55
|
+
|
|
41
56
|
```bash
|
|
42
57
|
yarn types
|
|
43
58
|
```
|
|
59
|
+
|
|
44
60
|
#### Сборка сторибука в дев режиме (для разработки)
|
|
61
|
+
|
|
45
62
|
```bash
|
|
46
63
|
yarn storybook
|
|
47
64
|
```
|
|
65
|
+
|
|
48
66
|
#### Сборка сторибука для деплоя
|
|
67
|
+
|
|
49
68
|
```bash
|
|
50
69
|
yarn build-storybook
|
|
51
70
|
```
|
|
71
|
+
|
|
52
72
|
#### Сборка иконок в документацию
|
|
73
|
+
|
|
53
74
|
```bash
|
|
54
75
|
yarn icons:story
|
|
55
76
|
```
|
|
77
|
+
|
|
56
78
|
#### Деплой сторибука
|
|
79
|
+
|
|
57
80
|
```bash
|
|
58
81
|
yarn chromatic
|
|
59
82
|
```
|
|
@@ -61,11 +84,13 @@ yarn chromatic
|
|
|
61
84
|
## Нюансы по работу с проектом
|
|
62
85
|
|
|
63
86
|
### Как смотреть изменения
|
|
87
|
+
|
|
64
88
|
1. Надо расшарить локально репу общих компонентов, для этого в терминале в корневой директории проекта **profinansy-react-components** запустить команду **yarn link**
|
|
65
89
|
2. В своем проекте, в котором используется эта репа (profinansy, к примеру), надо выполнить команду **yarn remove profinansy-ui-lib**, затем **yarn link profinansy-ui-lib**
|
|
66
90
|
3. **Одноразовая настройка:** В конфиге сборщика потребителя нужно добавить алиасы для `react`, `react-dom` и `styled-components`. Это заставит сборщик резолвить эти пакеты из `node_modules` потребителя, а не из симлинкнутой библиотеки. Без этого при `yarn link` будет два экземпляра React и ошибки типа "cannot be used as a JSX component" / "Invalid hook call". Алиасы безвредны без `yarn link` (указывают туда же, куда сборщик резолвит по умолчанию), поэтому их можно оставить навсегда:
|
|
67
91
|
|
|
68
92
|
**Next.js** — в `next.config.js`, внутрь существующей функции `webpack(config) { ... }` добавить:
|
|
93
|
+
|
|
69
94
|
```javascript
|
|
70
95
|
const path = require('path')
|
|
71
96
|
|
|
@@ -73,11 +98,12 @@ config.resolve.alias = {
|
|
|
73
98
|
...config.resolve.alias,
|
|
74
99
|
react: path.resolve(__dirname, 'node_modules/react'),
|
|
75
100
|
'react-dom': path.resolve(__dirname, 'node_modules/react-dom'),
|
|
76
|
-
'styled-components': path.resolve(__dirname, 'node_modules/styled-components')
|
|
101
|
+
'styled-components': path.resolve(__dirname, 'node_modules/styled-components')
|
|
77
102
|
}
|
|
78
103
|
```
|
|
79
104
|
|
|
80
105
|
**Vite** — в `vite.config.ts` добавить в `resolve`:
|
|
106
|
+
|
|
81
107
|
```javascript
|
|
82
108
|
import path from 'path'
|
|
83
109
|
|
|
@@ -86,13 +112,17 @@ export default defineConfig({
|
|
|
86
112
|
alias: {
|
|
87
113
|
react: path.resolve(__dirname, 'node_modules/react'),
|
|
88
114
|
'react-dom': path.resolve(__dirname, 'node_modules/react-dom'),
|
|
89
|
-
'styled-components': path.resolve(
|
|
115
|
+
'styled-components': path.resolve(
|
|
116
|
+
__dirname,
|
|
117
|
+
'node_modules/styled-components'
|
|
118
|
+
)
|
|
90
119
|
}
|
|
91
120
|
}
|
|
92
121
|
})
|
|
93
122
|
```
|
|
94
123
|
|
|
95
124
|
**Webpack** — в `webpack.config.js` добавить в `resolve`:
|
|
125
|
+
|
|
96
126
|
```javascript
|
|
97
127
|
const path = require('path')
|
|
98
128
|
|
|
@@ -101,11 +131,15 @@ module.exports = {
|
|
|
101
131
|
alias: {
|
|
102
132
|
react: path.resolve(__dirname, 'node_modules/react'),
|
|
103
133
|
'react-dom': path.resolve(__dirname, 'node_modules/react-dom'),
|
|
104
|
-
'styled-components': path.resolve(
|
|
134
|
+
'styled-components': path.resolve(
|
|
135
|
+
__dirname,
|
|
136
|
+
'node_modules/styled-components'
|
|
137
|
+
)
|
|
105
138
|
}
|
|
106
139
|
}
|
|
107
140
|
}
|
|
108
141
|
```
|
|
142
|
+
|
|
109
143
|
4. Запустите проект-потребитель как обычно (например, **yarn dev** в profinansy frontend). Storybook в библиотеке запускать не нужно — он нужен только для изолированной разработки компонентов
|
|
110
144
|
5. Для применения изменений после правок в библиотеке выполняйте команду **yarn build** в репозитории **profinansy-react-components** — потребитель подхватит новый билд через симлинк автоматически
|
|
111
145
|
6. После завершения работы над компонентами, надо отвязать привязку: **yarn unlink profinansy-ui-lib**, затем **yarn add --force profinansy-ui-lib**
|
|
@@ -114,19 +148,18 @@ module.exports = {
|
|
|
114
148
|
|
|
115
149
|
Все иконки кладем в папку icons в формате svg. Подключать в компонент иконки
|
|
116
150
|
можно напрямую через import. Они сгенерируются в компоненты автоматически
|
|
117
|
-
через `svgr`.
|
|
151
|
+
через `svgr`.
|
|
118
152
|
Все иконки, используемые на проекте, отображаются в сторибуке.
|
|
119
153
|
После того, как вы добавили новые иконки в проект, запустите скрипт
|
|
120
|
-
|
|
121
|
-
и добавит все ваши новые иконки.
|
|
154
|
+
`yarn icons:story`. Он автоматически сгенерирует новый `.stories` файл
|
|
155
|
+
и добавит все ваши новые иконки.
|
|
122
156
|
|
|
123
157
|
### Как работать с изображениями
|
|
124
158
|
|
|
125
159
|
Если вам нужно использовать какое-либо изображение отличное от формата `.svg`, то скачиваете это изображение
|
|
126
160
|
из фигмы и отправляете девопсам с просьбой залить его в файлохранилище. У себя уже просто вставляете ссылку,
|
|
127
|
-
которую вам передадут девопсы.
|
|
128
|
-
Изображения хранятся вот тут: https://storage.yandexcloud.net/public-files.profinansy.ru/images
|
|
129
|
-
|
|
161
|
+
которую вам передадут девопсы.
|
|
162
|
+
Изображения хранятся вот тут: https://storage.yandexcloud.net/public-files.profinansy.ru/images
|
|
130
163
|
|
|
131
164
|
### Темизация
|
|
132
165
|
|
|
@@ -146,27 +179,31 @@ ThemeProvider. Через хук `useTheme` вы можете получить
|
|
|
146
179
|
с помощью хука `useConfig`
|
|
147
180
|
|
|
148
181
|
### Storybook
|
|
182
|
+
|
|
149
183
|
Для всех компонентов используется сторибук. Все изменения можно смотреть там.
|
|
150
|
-
Сторибук деплоится на chromatic. Для того, что задеплоить ваши изменения, сделайте коммит в гит,
|
|
151
|
-
а потом выполните команду
|
|
184
|
+
Сторибук деплоится на chromatic. Для того, что задеплоить ваши изменения, сделайте коммит в гит,
|
|
185
|
+
а потом выполните команду `yarn chromatic`
|
|
152
186
|
|
|
153
187
|
## Файловая структура
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
188
|
+
|
|
189
|
+
1. В папке **api** находятся функции запросов к бэкенду
|
|
190
|
+
2. В папке **components** находятся все компоненты на проекте
|
|
191
|
+
- **blocks** - крупные блоки (header, footer и тд)
|
|
192
|
+
- **layouts** - общий лэйаут
|
|
193
|
+
- **modals** - общие модалки
|
|
194
|
+
- **uikit** - uikit проектов
|
|
195
|
+
3. В папке **constants** находятся все константы
|
|
196
|
+
4. папке **hooks** находятся все общие хуки
|
|
197
|
+
5. папке **icons** находятся все иконки
|
|
198
|
+
6. папке **theme** находятся все, что касается темизации
|
|
199
|
+
7. папке **translations** находятся все переводы
|
|
200
|
+
8. папке **urls** находятся объекты с роутингом
|
|
201
|
+
9. папке **utils** находятся все вспомогательные функции
|
|
167
202
|
|
|
168
203
|
## Процесс работы над задачей
|
|
204
|
+
|
|
169
205
|
https://wiki.corp.profinansy.net/pages/viewpage.action?pageId=4948261
|
|
170
206
|
|
|
171
207
|
## Регламенты разработки
|
|
208
|
+
|
|
172
209
|
https://wiki.corp.profinansy.net/pages/viewpage.action?pageId=4948295
|