@steroidsjs/core 3.0.87 → 3.0.89
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/actions/list.d.ts +4 -0
- package/components/ClientStorageComponent.d.ts +7 -1
- package/components/ClientStorageComponent.js +13 -7
- package/docs-autogen-result.json +82 -33
- package/en.json +84 -89
- package/hooks/useAddressBar.d.ts +0 -6
- package/hooks/useAddressBar.js +33 -15
- package/hooks/useDataProvider.js +6 -4
- package/hooks/useDataSelect.d.ts +2 -2
- package/hooks/useList.js +9 -3
- package/package.json +2 -3
- package/reducers/list.js +4 -1
- package/ui/content/Alert/Alert.d.ts +1 -1
- package/ui/content/Icon/Icon.d.ts +1 -1
- package/ui/content/Menu/Menu.d.ts +1 -1
- package/ui/form/DateField/DateField.d.ts +1 -1
- package/ui/form/DateRangeField/DateRangeField.d.ts +1 -1
- package/ui/form/DateTimeField/DateTimeField.d.ts +1 -1
- package/ui/form/DateTimeRangeField/DateTimeRangeField.d.ts +1 -1
- package/ui/form/TextField/TextField.d.ts +7 -1
- package/ui/form/TextField/TextField.js +3 -2
- package/ui/form/TimeField/TimeField.d.ts +1 -1
- package/ui/form/TimeRangeField/TimeRangeField.d.ts +1 -1
- package/ui/list/Grid/Grid.d.ts +1 -1
- package/ui/list/List/List.js +4 -3
package/actions/list.d.ts
CHANGED
|
@@ -8,6 +8,10 @@ export interface IList {
|
|
|
8
8
|
* Тип HTTP запроса (GET | POST | PUT | DELETE)
|
|
9
9
|
*/
|
|
10
10
|
actionMethod?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Логическое значение, указывающее, есть ли еще элементы в списке с бесконечным скроллом
|
|
13
|
+
*/
|
|
14
|
+
hasMoreInfiniteScroll?: boolean;
|
|
11
15
|
/**
|
|
12
16
|
* Функция обратного вызова, вызываемая при получении списка.
|
|
13
17
|
*/
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
export interface IClientStorageComponentConfig {
|
|
2
2
|
/**
|
|
3
|
-
* Кастомный домен
|
|
3
|
+
* Кастомный домен для куки
|
|
4
4
|
*/
|
|
5
5
|
domain?: string;
|
|
6
|
+
/**
|
|
7
|
+
* Автоматически устанавливает куку для всех поддоменов текущего домена,
|
|
8
|
+
* но только если параметр domain не указан явно
|
|
9
|
+
*/
|
|
10
|
+
shareBetweenSubdomains?: boolean;
|
|
6
11
|
/**
|
|
7
12
|
* Куки для режима ssr
|
|
8
13
|
*/
|
|
@@ -45,6 +50,7 @@ export default class ClientStorageComponent implements IClientStorageComponent {
|
|
|
45
50
|
localStorageAvailable: boolean;
|
|
46
51
|
sessionStorageAvailable: boolean;
|
|
47
52
|
domain?: string;
|
|
53
|
+
shareBetweenSubdomains?: boolean;
|
|
48
54
|
private _ssrCookie;
|
|
49
55
|
constructor(components: any, config: any);
|
|
50
56
|
get(name: any, storageName: any): any;
|
|
@@ -36,6 +36,7 @@ var dayjs_1 = __importDefault(require("dayjs"));
|
|
|
36
36
|
*/
|
|
37
37
|
var ClientStorageComponent = /** @class */ (function () {
|
|
38
38
|
function ClientStorageComponent(components, config) {
|
|
39
|
+
var _a;
|
|
39
40
|
this.localStorageAvailable = !process.env.IS_SSR;
|
|
40
41
|
this.sessionStorageAvailable = !process.env.IS_SSR;
|
|
41
42
|
this.STORAGE_SESSION = 'session';
|
|
@@ -62,6 +63,7 @@ var ClientStorageComponent = /** @class */ (function () {
|
|
|
62
63
|
}
|
|
63
64
|
}
|
|
64
65
|
this.domain = (config === null || config === void 0 ? void 0 : config.domain) || null;
|
|
66
|
+
this.shareBetweenSubdomains = (_a = config === null || config === void 0 ? void 0 : config.shareBetweenSubdomains) !== null && _a !== void 0 ? _a : false;
|
|
65
67
|
this._ssrCookie = config === null || config === void 0 ? void 0 : config.ssrCookie;
|
|
66
68
|
}
|
|
67
69
|
ClientStorageComponent.prototype.get = function (name, storageName) {
|
|
@@ -116,13 +118,17 @@ var ClientStorageComponent = /** @class */ (function () {
|
|
|
116
118
|
if (this.domain) {
|
|
117
119
|
return this.domain;
|
|
118
120
|
}
|
|
119
|
-
var host =
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
121
|
+
var host = typeof window !== 'undefined' ? window.location.hostname : '';
|
|
122
|
+
if (this.shareBetweenSubdomains) {
|
|
123
|
+
var isIp = /^\d{1,3}(\.\d{1,3}){3}$/.test(host);
|
|
124
|
+
if (!isIp) {
|
|
125
|
+
return host
|
|
126
|
+
.split('.')
|
|
127
|
+
.slice(-2)
|
|
128
|
+
.join('.');
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return host;
|
|
126
132
|
};
|
|
127
133
|
return ClientStorageComponent;
|
|
128
134
|
}());
|
package/docs-autogen-result.json
CHANGED
|
@@ -49,6 +49,14 @@
|
|
|
49
49
|
"type": "boolean",
|
|
50
50
|
"example": null
|
|
51
51
|
},
|
|
52
|
+
{
|
|
53
|
+
"name": "hasMoreInfiniteScroll",
|
|
54
|
+
"decorators": [],
|
|
55
|
+
"description": "Логическое значение, указывающее, есть ли еще элементы в списке с бесконечным скроллом",
|
|
56
|
+
"required": false,
|
|
57
|
+
"type": "boolean",
|
|
58
|
+
"example": null
|
|
59
|
+
},
|
|
52
60
|
{
|
|
53
61
|
"name": "isFetched",
|
|
54
62
|
"decorators": [],
|
|
@@ -293,11 +301,19 @@
|
|
|
293
301
|
{
|
|
294
302
|
"name": "domain",
|
|
295
303
|
"decorators": [],
|
|
296
|
-
"description": "Кастомный домен",
|
|
304
|
+
"description": "Кастомный домен для куки",
|
|
297
305
|
"required": false,
|
|
298
306
|
"type": "string",
|
|
299
307
|
"example": null
|
|
300
308
|
},
|
|
309
|
+
{
|
|
310
|
+
"name": "shareBetweenSubdomains",
|
|
311
|
+
"decorators": [],
|
|
312
|
+
"description": " Автоматически устанавливает куку для всех поддоменов текущего домена,\n но только если параметр domain не указан явно",
|
|
313
|
+
"required": false,
|
|
314
|
+
"type": "boolean",
|
|
315
|
+
"example": null
|
|
316
|
+
},
|
|
301
317
|
{
|
|
302
318
|
"name": "ssrCookie",
|
|
303
319
|
"decorators": [],
|
|
@@ -416,11 +432,19 @@
|
|
|
416
432
|
{
|
|
417
433
|
"name": "domain",
|
|
418
434
|
"decorators": [],
|
|
419
|
-
"description": "Кастомный домен",
|
|
435
|
+
"description": "Кастомный домен для куки",
|
|
420
436
|
"required": false,
|
|
421
437
|
"type": "string",
|
|
422
438
|
"example": null
|
|
423
439
|
},
|
|
440
|
+
{
|
|
441
|
+
"name": "shareBetweenSubdomains",
|
|
442
|
+
"decorators": [],
|
|
443
|
+
"description": " Автоматически устанавливает куку для всех поддоменов текущего домена,\n но только если параметр domain не указан явно",
|
|
444
|
+
"required": false,
|
|
445
|
+
"type": "boolean",
|
|
446
|
+
"example": null
|
|
447
|
+
},
|
|
424
448
|
{
|
|
425
449
|
"name": "ssrCookie",
|
|
426
450
|
"decorators": [],
|
|
@@ -3273,7 +3297,7 @@
|
|
|
3273
3297
|
{
|
|
3274
3298
|
"name": "autoCompleteInputRef",
|
|
3275
3299
|
"decorators": [],
|
|
3276
|
-
"description": "
|
|
3300
|
+
"description": "Ref autocomplete поиска",
|
|
3277
3301
|
"required": false,
|
|
3278
3302
|
"type": "MutableRefObject",
|
|
3279
3303
|
"example": null
|
|
@@ -3345,7 +3369,7 @@
|
|
|
3345
3369
|
{
|
|
3346
3370
|
"name": "sourceItems",
|
|
3347
3371
|
"decorators": [],
|
|
3348
|
-
"description": "
|
|
3372
|
+
"description": "Список со всеми элементами",
|
|
3349
3373
|
"required": false,
|
|
3350
3374
|
"type": "IDataSelectItem[]",
|
|
3351
3375
|
"example": null
|
|
@@ -6160,7 +6184,7 @@
|
|
|
6160
6184
|
{
|
|
6161
6185
|
"name": "showClose",
|
|
6162
6186
|
"decorators": [],
|
|
6163
|
-
"description": "
|
|
6187
|
+
"description": "Нужно ли отображать кнопку, чтобы закрыть Оповещение",
|
|
6164
6188
|
"required": false,
|
|
6165
6189
|
"type": "boolean",
|
|
6166
6190
|
"example": null,
|
|
@@ -6293,7 +6317,7 @@
|
|
|
6293
6317
|
{
|
|
6294
6318
|
"name": "showClose",
|
|
6295
6319
|
"decorators": [],
|
|
6296
|
-
"description": "
|
|
6320
|
+
"description": "Нужно ли отображать кнопку, чтобы закрыть Оповещение",
|
|
6297
6321
|
"required": false,
|
|
6298
6322
|
"type": "boolean",
|
|
6299
6323
|
"example": null
|
|
@@ -10694,7 +10718,7 @@
|
|
|
10694
10718
|
{
|
|
10695
10719
|
"name": "tabIndex",
|
|
10696
10720
|
"decorators": [],
|
|
10697
|
-
"description": "
|
|
10721
|
+
"description": "Должен ли данный элемент участвовать в последовательной навигации",
|
|
10698
10722
|
"required": false,
|
|
10699
10723
|
"type": "number",
|
|
10700
10724
|
"example": null,
|
|
@@ -10767,7 +10791,7 @@
|
|
|
10767
10791
|
{
|
|
10768
10792
|
"name": "tabIndex",
|
|
10769
10793
|
"decorators": [],
|
|
10770
|
-
"description": "
|
|
10794
|
+
"description": "Должен ли данный элемент участвовать в последовательной навигации",
|
|
10771
10795
|
"required": false,
|
|
10772
10796
|
"type": "number",
|
|
10773
10797
|
"example": null
|
|
@@ -12180,7 +12204,7 @@
|
|
|
12180
12204
|
{
|
|
12181
12205
|
"name": "items",
|
|
12182
12206
|
"decorators": [],
|
|
12183
|
-
"description": "
|
|
12207
|
+
"description": "Элементы меню",
|
|
12184
12208
|
"required": true,
|
|
12185
12209
|
"type": "IMenuItem[]",
|
|
12186
12210
|
"example": null,
|
|
@@ -13774,7 +13798,7 @@
|
|
|
13774
13798
|
{
|
|
13775
13799
|
"name": "autoCompleteInputRef",
|
|
13776
13800
|
"decorators": [],
|
|
13777
|
-
"description": "
|
|
13801
|
+
"description": "Ref autocomplete поиска",
|
|
13778
13802
|
"required": false,
|
|
13779
13803
|
"type": "MutableRefObject",
|
|
13780
13804
|
"example": null,
|
|
@@ -14071,7 +14095,7 @@
|
|
|
14071
14095
|
{
|
|
14072
14096
|
"name": "sourceItems",
|
|
14073
14097
|
"decorators": [],
|
|
14074
|
-
"description": "
|
|
14098
|
+
"description": "Список со всеми элементами",
|
|
14075
14099
|
"required": false,
|
|
14076
14100
|
"type": "IDataSelectItem[]",
|
|
14077
14101
|
"example": null,
|
|
@@ -15641,7 +15665,7 @@
|
|
|
15641
15665
|
{
|
|
15642
15666
|
"name": "autoCompleteInputRef",
|
|
15643
15667
|
"decorators": [],
|
|
15644
|
-
"description": "
|
|
15668
|
+
"description": "Ref autocomplete поиска",
|
|
15645
15669
|
"required": false,
|
|
15646
15670
|
"type": "MutableRefObject",
|
|
15647
15671
|
"example": null,
|
|
@@ -15929,7 +15953,7 @@
|
|
|
15929
15953
|
{
|
|
15930
15954
|
"name": "sourceItems",
|
|
15931
15955
|
"decorators": [],
|
|
15932
|
-
"description": "
|
|
15956
|
+
"description": "Список со всеми элементами",
|
|
15933
15957
|
"required": false,
|
|
15934
15958
|
"type": "IDataSelectItem[]",
|
|
15935
15959
|
"example": null,
|
|
@@ -16197,7 +16221,7 @@
|
|
|
16197
16221
|
{
|
|
16198
16222
|
"name": "autoCompleteInputRef",
|
|
16199
16223
|
"decorators": [],
|
|
16200
|
-
"description": "
|
|
16224
|
+
"description": "Ref autocomplete поиска",
|
|
16201
16225
|
"required": false,
|
|
16202
16226
|
"type": "MutableRefObject",
|
|
16203
16227
|
"example": null,
|
|
@@ -16521,7 +16545,7 @@
|
|
|
16521
16545
|
{
|
|
16522
16546
|
"name": "sourceItems",
|
|
16523
16547
|
"decorators": [],
|
|
16524
|
-
"description": "
|
|
16548
|
+
"description": "Список со всеми элементами",
|
|
16525
16549
|
"required": false,
|
|
16526
16550
|
"type": "IDataSelectItem[]",
|
|
16527
16551
|
"example": null,
|
|
@@ -16813,7 +16837,7 @@
|
|
|
16813
16837
|
{
|
|
16814
16838
|
"name": "disabledDays",
|
|
16815
16839
|
"decorators": [],
|
|
16816
|
-
"description": "
|
|
16840
|
+
"description": "Ограничение доступных дат.",
|
|
16817
16841
|
"required": false,
|
|
16818
16842
|
"type": "{after: Date, before: Date}",
|
|
16819
16843
|
"example": null,
|
|
@@ -17589,7 +17613,7 @@
|
|
|
17589
17613
|
{
|
|
17590
17614
|
"name": "disabledDays",
|
|
17591
17615
|
"decorators": [],
|
|
17592
|
-
"description": "
|
|
17616
|
+
"description": "Ограничение доступных дат.",
|
|
17593
17617
|
"required": false,
|
|
17594
17618
|
"type": "{after: Date, before: Date}",
|
|
17595
17619
|
"example": null,
|
|
@@ -18196,7 +18220,7 @@
|
|
|
18196
18220
|
{
|
|
18197
18221
|
"name": "disabledDays",
|
|
18198
18222
|
"decorators": [],
|
|
18199
|
-
"description": "
|
|
18223
|
+
"description": "Ограничение доступных дат.",
|
|
18200
18224
|
"required": false,
|
|
18201
18225
|
"type": "{after: Date, before: Date}",
|
|
18202
18226
|
"example": null,
|
|
@@ -18628,7 +18652,7 @@
|
|
|
18628
18652
|
{
|
|
18629
18653
|
"name": "disabledDays",
|
|
18630
18654
|
"decorators": [],
|
|
18631
|
-
"description": "
|
|
18655
|
+
"description": "Ограничение доступных дат.",
|
|
18632
18656
|
"required": false,
|
|
18633
18657
|
"type": "{after: Date, before: Date}",
|
|
18634
18658
|
"example": null,
|
|
@@ -19311,7 +19335,7 @@
|
|
|
19311
19335
|
{
|
|
19312
19336
|
"name": "autoCompleteInputRef",
|
|
19313
19337
|
"decorators": [],
|
|
19314
|
-
"description": "
|
|
19338
|
+
"description": "Ref autocomplete поиска",
|
|
19315
19339
|
"required": false,
|
|
19316
19340
|
"type": "MutableRefObject",
|
|
19317
19341
|
"example": null,
|
|
@@ -19662,7 +19686,7 @@
|
|
|
19662
19686
|
{
|
|
19663
19687
|
"name": "sourceItems",
|
|
19664
19688
|
"decorators": [],
|
|
19665
|
-
"description": "
|
|
19689
|
+
"description": "Список со всеми элементами",
|
|
19666
19690
|
"required": false,
|
|
19667
19691
|
"type": "IDataSelectItem[]",
|
|
19668
19692
|
"example": null,
|
|
@@ -19818,7 +19842,7 @@
|
|
|
19818
19842
|
{
|
|
19819
19843
|
"name": "autoCompleteInputRef",
|
|
19820
19844
|
"decorators": [],
|
|
19821
|
-
"description": "
|
|
19845
|
+
"description": "Ref autocomplete поиска",
|
|
19822
19846
|
"required": false,
|
|
19823
19847
|
"type": "MutableRefObject",
|
|
19824
19848
|
"example": null
|
|
@@ -20194,7 +20218,7 @@
|
|
|
20194
20218
|
{
|
|
20195
20219
|
"name": "sourceItems",
|
|
20196
20220
|
"decorators": [],
|
|
20197
|
-
"description": "
|
|
20221
|
+
"description": "Список со всеми элементами",
|
|
20198
20222
|
"required": false,
|
|
20199
20223
|
"type": "IDataSelectItem[]",
|
|
20200
20224
|
"example": null
|
|
@@ -29560,6 +29584,15 @@
|
|
|
29560
29584
|
"example": "'isVisible'",
|
|
29561
29585
|
"defaultValue": null
|
|
29562
29586
|
},
|
|
29587
|
+
{
|
|
29588
|
+
"name": "autoHeight",
|
|
29589
|
+
"decorators": [],
|
|
29590
|
+
"description": "Флаг, который указывает, что высота поля должна быть равна высоте контента",
|
|
29591
|
+
"required": false,
|
|
29592
|
+
"type": "boolean",
|
|
29593
|
+
"example": "false",
|
|
29594
|
+
"defaultValue": null
|
|
29595
|
+
},
|
|
29563
29596
|
{
|
|
29564
29597
|
"name": "className",
|
|
29565
29598
|
"decorators": [],
|
|
@@ -29809,6 +29842,14 @@
|
|
|
29809
29842
|
"type": "string",
|
|
29810
29843
|
"example": "'isVisible'"
|
|
29811
29844
|
},
|
|
29845
|
+
{
|
|
29846
|
+
"name": "autoHeight",
|
|
29847
|
+
"decorators": [],
|
|
29848
|
+
"description": "Флаг, который указывает, что высота поля должна быть равна высоте контента",
|
|
29849
|
+
"required": false,
|
|
29850
|
+
"type": "boolean",
|
|
29851
|
+
"example": "false"
|
|
29852
|
+
},
|
|
29812
29853
|
{
|
|
29813
29854
|
"name": "className",
|
|
29814
29855
|
"decorators": [],
|
|
@@ -29894,7 +29935,7 @@
|
|
|
29894
29935
|
"decorators": [],
|
|
29895
29936
|
"description": "Свойства для элемента input",
|
|
29896
29937
|
"required": true,
|
|
29897
|
-
"type": "{disabled: boolean, name: string, onKeyUp: KeyboardEventHandler, placeholder: string, required: boolean, value: string | number, onChange: null}",
|
|
29938
|
+
"type": "{disabled: boolean, name: string, onKeyUp: KeyboardEventHandler, placeholder: string, ref: MutableRefObject, required: boolean, value: string | number, onChange: null}",
|
|
29898
29939
|
"example": null
|
|
29899
29940
|
},
|
|
29900
29941
|
{
|
|
@@ -30055,7 +30096,7 @@
|
|
|
30055
30096
|
{
|
|
30056
30097
|
"name": "availableTime",
|
|
30057
30098
|
"decorators": [],
|
|
30058
|
-
"description": "
|
|
30099
|
+
"description": "Ограничение доступного времени.",
|
|
30059
30100
|
"required": false,
|
|
30060
30101
|
"type": "{from: string, to: string}",
|
|
30061
30102
|
"example": null,
|
|
@@ -30369,7 +30410,7 @@
|
|
|
30369
30410
|
{
|
|
30370
30411
|
"name": "availableTime",
|
|
30371
30412
|
"decorators": [],
|
|
30372
|
-
"description": "
|
|
30413
|
+
"description": "Ограничение доступного времени.",
|
|
30373
30414
|
"required": false,
|
|
30374
30415
|
"type": "{from: string, to: string}",
|
|
30375
30416
|
"example": null
|
|
@@ -30500,7 +30541,7 @@
|
|
|
30500
30541
|
{
|
|
30501
30542
|
"name": "availableTime",
|
|
30502
30543
|
"decorators": [],
|
|
30503
|
-
"description": "
|
|
30544
|
+
"description": "Ограничение доступного времени.",
|
|
30504
30545
|
"required": false,
|
|
30505
30546
|
"type": "{from: string, to: string}",
|
|
30506
30547
|
"example": null
|
|
@@ -30603,7 +30644,7 @@
|
|
|
30603
30644
|
{
|
|
30604
30645
|
"name": "availableTime",
|
|
30605
30646
|
"decorators": [],
|
|
30606
|
-
"description": "
|
|
30647
|
+
"description": "Ограничение доступного времени.",
|
|
30607
30648
|
"required": false,
|
|
30608
30649
|
"type": "{from: string, to: string}",
|
|
30609
30650
|
"example": null,
|
|
@@ -33734,7 +33775,7 @@
|
|
|
33734
33775
|
{
|
|
33735
33776
|
"name": "picture",
|
|
33736
33777
|
"decorators": [],
|
|
33737
|
-
"description": "
|
|
33778
|
+
"description": "Параметры для картинки в колонке",
|
|
33738
33779
|
"required": false,
|
|
33739
33780
|
"type": "{attribute: string, isLeft: boolean}",
|
|
33740
33781
|
"example": "{\n attribute: 'icon',\n isLeft: true\n}"
|
|
@@ -34634,7 +34675,7 @@
|
|
|
34634
34675
|
{
|
|
34635
34676
|
"name": "picture",
|
|
34636
34677
|
"decorators": [],
|
|
34637
|
-
"description": "
|
|
34678
|
+
"description": "Параметры для картинки в колонке",
|
|
34638
34679
|
"required": false,
|
|
34639
34680
|
"type": "{attribute: string, isLeft: boolean}",
|
|
34640
34681
|
"example": "{\n attribute: 'icon',\n isLeft: true\n}"
|
|
@@ -34798,7 +34839,7 @@
|
|
|
34798
34839
|
{
|
|
34799
34840
|
"name": "picture",
|
|
34800
34841
|
"decorators": [],
|
|
34801
|
-
"description": "
|
|
34842
|
+
"description": "Параметры для картинки в колонке",
|
|
34802
34843
|
"required": false,
|
|
34803
34844
|
"type": "{attribute: string, isLeft: boolean}",
|
|
34804
34845
|
"example": "{\n attribute: 'icon',\n isLeft: true\n}"
|
|
@@ -37629,7 +37670,7 @@
|
|
|
37629
37670
|
{
|
|
37630
37671
|
"name": "picture",
|
|
37631
37672
|
"decorators": [],
|
|
37632
|
-
"description": "
|
|
37673
|
+
"description": "Параметры для картинки в колонке",
|
|
37633
37674
|
"required": false,
|
|
37634
37675
|
"type": "{attribute: string, isLeft: boolean}",
|
|
37635
37676
|
"example": "{\n attribute: 'icon',\n isLeft: true\n}"
|
|
@@ -41143,10 +41184,18 @@
|
|
|
41143
41184
|
{
|
|
41144
41185
|
"name": "domain",
|
|
41145
41186
|
"decorators": [],
|
|
41146
|
-
"description": "Кастомный домен",
|
|
41187
|
+
"description": "Кастомный домен для куки",
|
|
41147
41188
|
"required": false,
|
|
41148
41189
|
"type": "string",
|
|
41149
41190
|
"example": null
|
|
41191
|
+
},
|
|
41192
|
+
{
|
|
41193
|
+
"name": "shareBetweenSubdomains",
|
|
41194
|
+
"decorators": [],
|
|
41195
|
+
"description": " Автоматически устанавливает куку для всех поддоменов текущего домена,\n но только если параметр domain не указан явно",
|
|
41196
|
+
"required": false,
|
|
41197
|
+
"type": "boolean",
|
|
41198
|
+
"example": null
|
|
41150
41199
|
}
|
|
41151
41200
|
],
|
|
41152
41201
|
"methods": [
|
package/en.json
CHANGED
|
@@ -145,7 +145,6 @@
|
|
|
145
145
|
"Первичный ключ для item": "Primary key for the item.",
|
|
146
146
|
"Сделать активным первый элемент в списке": "Make the first item in the list active.",
|
|
147
147
|
"Список с идентификаторами выбранных элементов": "List with identifiers of selected items.",
|
|
148
|
-
"Список со всеми элементами": "List with all items.",
|
|
149
148
|
"Идентификатор элемента": "Item identifier.",
|
|
150
149
|
"Отображаемое название для IDataSelectItem": "Display name for IDataSelectItem.",
|
|
151
150
|
"Экшен для отправки на бэкенд": "Action for sending to the backend.",
|
|
@@ -199,7 +198,7 @@
|
|
|
199
198
|
"Дополнительное содрежание сообщения.": "Additional content of the message.",
|
|
200
199
|
"Основное сообщения Оповещения": "Main notification message.",
|
|
201
200
|
"Callback функция вызываемая при нажатии на кнопку закрытия": "Callback function triggered when the close button is clicked.",
|
|
202
|
-
"
|
|
201
|
+
"Нужно ли отображать кнопку, чтобы закрыть Оповещение": "Whether to display a button to close the notification.",
|
|
203
202
|
"Нужно ли отображать иконку, соответствующую типа Оповещения": "Whether to display an icon corresponding to the notification type.",
|
|
204
203
|
"Типы Оповещений": "Notification types.",
|
|
205
204
|
"Альтернативный текст для изображения": "Alternative text for the image.",
|
|
@@ -273,7 +272,7 @@
|
|
|
273
272
|
"Ссылка на view": "Link to the view.",
|
|
274
273
|
"Имя иконки (латиницей). Импорт иконок происходит на старте приложения.": "Icon name (in Latin). Icons are imported at the application start.",
|
|
275
274
|
"Функция которая вызывается при клике по иконке": "Function triggered when clicking on the icon.",
|
|
276
|
-
"
|
|
275
|
+
"Должен ли данный элемент участвовать в последовательной навигации": "Should this element participate in sequential navigation?",
|
|
277
276
|
"Заголовок, отображаемый при наведении (через нативное поле title)": "Title displayed on hover (via the native title field).",
|
|
278
277
|
"Нижний border": "Bottom border.",
|
|
279
278
|
"Кастомная иконка": "Custom icon.",
|
|
@@ -282,7 +281,6 @@
|
|
|
282
281
|
"Пропсы для DropDown": "Props for the DropDown.",
|
|
283
282
|
"Кастомная иконка, по клику на которую открывается меню": "Custom icon that opens the menu when clicked.",
|
|
284
283
|
"Переопределение view React элемента меню для кастомизации отображения": "Override React menu item view for customization of display.",
|
|
285
|
-
"Элементы меню": "Menu items.",
|
|
286
284
|
"Представление элемента слайдера.": "Slider item representation.",
|
|
287
285
|
"Элементы слайдера.": "Slider items.",
|
|
288
286
|
"Опции слайдера.": "Slider options.",
|
|
@@ -628,7 +626,7 @@
|
|
|
628
626
|
"Параметры для иконки в колонке": "Parameters for the icon in the column",
|
|
629
627
|
"Заголовок колонки": "Column header",
|
|
630
628
|
"Параметры для ссылки в колонке": "Parameters for link in the column",
|
|
631
|
-
"
|
|
629
|
+
"Параметры для картинки в колонке": "Parameters for image in the column",
|
|
632
630
|
"Включить возможность сортировки по данным в колонке": "Enable sorting by data in the column",
|
|
633
631
|
"Название свойства в items, которое будет использовано как subtitle": "The name of the property in items that will be used as a subtitle",
|
|
634
632
|
"Свойства для компонента отображения значения в ячейке": "Props for component to display value in the cell",
|
|
@@ -733,7 +731,6 @@
|
|
|
733
731
|
"HTTP метод": "HTTP method",
|
|
734
732
|
"Ориентация элемента": "Element orientation",
|
|
735
733
|
"Уникальный ключ. ID, UUID или другое": "Unique key. ID, UUID or other",
|
|
736
|
-
"MaskField\n\nКомпонент поля ввода текста с маской.\n": "MaskField\n\nText input field component with a mask.\n",
|
|
737
734
|
"Обертка над Axios для запросов на бекенд. Поддерживает токен авторизации, CSRF и обработку ошибок.": "Wrapper over Axios for backend requests. Supports authorization token, CSRF, and error handling.",
|
|
738
735
|
"Слой хранения данных в браузере (cookie, local/session storage) или ReactNative": "Data storage layer in the browser (cookie, local/session storage) or ReactNative",
|
|
739
736
|
"Хелпер для работы с БЭМ классами и DOM элементами": "Helper for working with BEM classes and DOM elements",
|
|
@@ -777,11 +774,10 @@
|
|
|
777
774
|
"\nКомпонент для вывода текстового содержимого, с возможностью настройки тэгов, цвета и типа\n": "\nA component for displaying text content, with the ability to customize tags, colors and types\n",
|
|
778
775
|
"\nКомпонент предназначен для вывода заголовков, предоставляет возможность для настройки, цвета, типа и тэга.\n": "\nThe component is designed to display headers, provides the ability to customize, color, type and tag.\n",
|
|
779
776
|
"Отобразить или скрыть компонент.\nВключает \"ручной режим\", при котором можно задать логику отображения компонента извне,\nчерез измененение данного свойства.": "Show or hide the component.\nTurns on the \"manual mode\", in which you can set the logic for displaying the component from the outside\nby changing this property.",
|
|
780
|
-
"
|
|
781
|
-
"
|
|
777
|
+
"Список со всеми элементами": "List with all elements",
|
|
778
|
+
"Элементы меню": "Menu Items",
|
|
782
779
|
"При указании данного свойства, после нажатия на кнопку и до выполнения действия будет отображено нативное\nокно с текстом подтверждения - `window.confirm('Ваш текст')`.": "When this property is specified, after clicking the button and before performing the action, a native \nwindow with the confirmation text will be displayed - `window.confirm('Your text')`.",
|
|
783
780
|
"Контент, который отобразиться, если элемент навигации будет активен": "The content that will be displayed if the navigation element is active",
|
|
784
|
-
" Используется для управления раскрытием всех элементов в дереве": " Used to control the expansion of all items in the tree",
|
|
785
781
|
"\nСписок с чекбоксами. Используется в формах для выбора нескольких значений.\n": "\nCheckbox list. Used in forms to select multiple values.\n",
|
|
786
782
|
"Разница времени с бекендом (в микросекундах)": "Time difference with the backend (in microseconds)",
|
|
787
783
|
"Временная зона бекенда": "Backend time zone",
|
|
@@ -922,7 +918,6 @@
|
|
|
922
918
|
"\nКомплексный компонент календарь служит для планирования событий и их отображения в календаре.\n\nКомпонент умеет отображать события с помощью недельной сетки с шагом в 1 час,\nа также переключать отображение на сетку по месяцам с шагом 1 день.\nПрисутствует возможность добавлять в календарь события и создавать новые группы событий.\n\n": "The complex `Calendar` component is used for event planning and display in a calendar.\nThe component can display events using a weekly grid with a 1-hour interval\nand can switch to a monthly grid with a 1-day interval.\nIt also allows adding events to the calendar and creating new event groups.",
|
|
923
919
|
"Этот компонент позволяет создавать в проекте графики разных типов, используя библиотеки nivo, react-vis и другие.\n Под капотом для графиков могут использоваться различные библиотеки в зависимости от предпочтений и потребностей проекта.\n Для работы с nivo графиками, необходимо установить в проекте зависимости @nivo/core и соответствующий пакет графика, например @nivo/line.\n Компонент графика, независимо от выбранной библиотеки, нужно передать в пропс chartComponent.": "This component allows creating various types of charts in the project using libraries like nivo, react-vis, and others.\nDifferent chart libraries can be used under the hood depending on project preferences and needs. To work with nivo charts, you need to install dependencies like @nivo/core and the appropriate chart package, e.g., @nivo/line. Regardless of the chosen library, you need to pass the `chartComponent` prop for the chart component.",
|
|
924
920
|
"\nКомплексный компонент `Chat` предназначен для коммуникации пользователей с помощью текстовых сообщений.\n": "The complex `Chat` component is designed for user communication through text messages.\n",
|
|
925
|
-
"\nКомпонент `Kanban` позволяет создать доску для управления задачами.\nКоличество столбцов задается с помощью пропа `columns`.\nЗадачи на доске можно создавать, редактировать и перемещать с визуальным отображением.\n\nДля работы этого компонента необходимо установить в проекте зависимости `react-beautiful-dnd`\nи передать в пропсы `droppableComponent`, `draggableComponent` и `dndContext`\nкомпоненты `Droppable`, `Draggable` и `DragDropContext` соответственно.\n": "The `Kanban` component allows creating a board for task management. The number of columns is set using the `columns` prop.\nTasks on the board can be created, edited, and moved with visual representation.\nTo use this component, you need to install the `react-beautiful-dnd` dependencies in the project\nand pass the `Droppable`, `Draggable`, and `DragDropContext` components as `droppableComponent`, `draggableComponent`, and `dndContext` props, respectively.",
|
|
926
921
|
"\nПоле ввода почты. Этот компонент представляет собой поле ввода почты.\n\n": "Email input field. This component represents an email input field.",
|
|
927
922
|
"\nСоздает список из сгруппированных полей формы.\n": "Creates a list of grouped form fields.",
|
|
928
923
|
"\nКомпонент `Skeleton` представляет собой заглушку для отображения временных данных\nво время загрузки или ожидания загрузки реальных данных.\n": "The `Skeleton` component serves as a placeholder for displaying temporary data during loading or while waiting for real data.",
|
|
@@ -945,9 +940,6 @@
|
|
|
945
940
|
"Получение состояние": "Getting the state",
|
|
946
941
|
"\nСписок с вложенными чекбоксами. Используется в формах для создания иерархической структуры и выбора нескольких значений.\n": "\nA list with nested checkboxes. It is used in forms to create a hierarchical structure and select multiple values.\n",
|
|
947
942
|
"\nСоздает список из сгруппированных полей формы.\nДля загрузки файлов с помощью `FileField` внутри строк `FieldList`, нужно использовать форму с флагом `useRedux`.\n": "\nCreates a list of grouped form fields.\nTo upload files using the `FileField` inside the `FieldList' lines, you need to use the form with the `useRedux` flag.\n",
|
|
948
|
-
" Текущая страница, используется для корректного отображения пагинации": " The current page. It's used to display pagination correctly",
|
|
949
|
-
" Количество элементов на странице, используется для корректного отображения пагинации": " The number of elements on the page. It's used to display pagination correctly.",
|
|
950
|
-
" Параметры роутинга": " Routing parameters",
|
|
951
943
|
"Расстояние вложенных элементов от родителя для каждого уровня": "The distance of nested elements from the parent for each level",
|
|
952
944
|
"Первичный ключ для доступа к вложенным элементам": "The primary key for accessing nested elements",
|
|
953
945
|
"Устанавливать ли фокус и показывать календарь сразу после рендера страницы": "Set the focus and show the calendar immediately after the page render",
|
|
@@ -977,80 +969,83 @@
|
|
|
977
969
|
"Время": "Time",
|
|
978
970
|
"Флаг, который позволяет использовать вложенные роуты c указанием вложенного пути": "A flag that allows you to use nested routes with an indication of the nested path",
|
|
979
971
|
"Скрыть иконку c лева от элемента": "Hide the icon to the left of the element",
|
|
980
|
-
"\n
|
|
981
|
-
"Компонент
|
|
982
|
-
"\n
|
|
983
|
-
"
|
|
984
|
-
"
|
|
985
|
-
"
|
|
986
|
-
"
|
|
987
|
-
"
|
|
988
|
-
"
|
|
989
|
-
"
|
|
990
|
-
"
|
|
991
|
-
"
|
|
992
|
-
"
|
|
993
|
-
"
|
|
994
|
-
"
|
|
995
|
-
"
|
|
996
|
-
"
|
|
997
|
-
"
|
|
998
|
-
"
|
|
999
|
-
"
|
|
1000
|
-
"
|
|
1001
|
-
"
|
|
1002
|
-
"
|
|
1003
|
-
"
|
|
1004
|
-
"
|
|
1005
|
-
"
|
|
1006
|
-
"
|
|
1007
|
-
"
|
|
1008
|
-
"
|
|
1009
|
-
"
|
|
1010
|
-
"
|
|
1011
|
-
"
|
|
1012
|
-
"
|
|
1013
|
-
"
|
|
1014
|
-
"
|
|
1015
|
-
"
|
|
1016
|
-
"
|
|
1017
|
-
"
|
|
1018
|
-
"
|
|
1019
|
-
"
|
|
1020
|
-
"
|
|
1021
|
-
"
|
|
1022
|
-
"
|
|
1023
|
-
"
|
|
1024
|
-
"
|
|
1025
|
-
"
|
|
1026
|
-
"
|
|
1027
|
-
"
|
|
1028
|
-
"
|
|
1029
|
-
"
|
|
1030
|
-
"
|
|
1031
|
-
"
|
|
1032
|
-
"
|
|
1033
|
-
"
|
|
1034
|
-
"
|
|
1035
|
-
"
|
|
1036
|
-
"
|
|
1037
|
-
"
|
|
1038
|
-
"
|
|
1039
|
-
"
|
|
1040
|
-
"
|
|
1041
|
-
"
|
|
1042
|
-
"
|
|
1043
|
-
"
|
|
1044
|
-
"
|
|
1045
|
-
"
|
|
1046
|
-
"
|
|
1047
|
-
"
|
|
1048
|
-
"
|
|
1049
|
-
"
|
|
1050
|
-
"
|
|
1051
|
-
"
|
|
1052
|
-
"
|
|
1053
|
-
"
|
|
1054
|
-
"
|
|
1055
|
-
"
|
|
972
|
+
"Компонент для создания HTML-разметки, использующий WYSIWYG редактор.\n\nДля использования WYSIWYG редактора, необходимо установить в проекте зависимости `@ckeditor/ckeditor5-react` и `@steroidsjs/ckeditor5`,\nзатем импортировать `CKEditor` из `@ckeditor/ckeditor5-react` и `ClassicEditor` из `@steroidsjs/ckeditor5/packages/ckeditor5-build-classic`.\nКомпонент `CKEditor` нужно передать в проп `htmlComponent`, а конструктор `ClassicEditor` в проп `editorConstructor`.\n\nПри передаче `HtmlField` с бэкенда, необходимо переопределить `view` компонента, указав локальный.\nВ локальном компоненте добавить вместо пропсов `htmlComponent` и `editorConstructor` импорты `CKEditor` и `ClassicEditor` соотвественно.\n": "A component for creating HTML markup using a WYSIWYG editor.\n\nTo use the WYSIWYG editor, you need to install the `@ckeditor/ckeditor5-react` and `@steroidsjs/ckeditor5` dependencies in your project,\nthen import `CKEditor` from `@ckeditor/ckeditor5-react` and `ClassicEditor` from `@steroidsjs/ckeditor5/packages/ckeditor5-build-classic`.\nPass the `CKEditor` component to the `htmlComponent` prop, and the `ClassicEditor` constructor to the `editorConstructor` prop.\n\nWhen receiving `HtmlField` from the backend, you need to override the component's `view` by specifying a local one.\nIn the local component, instead of the `htmlComponent` and `editorConstructor` props, add imports for `CKEditor` and `ClassicEditor` respectively.",
|
|
973
|
+
"Компонент с бесконечным скроллом страниц.": "A component with infinite page scroll.",
|
|
974
|
+
"Компонент, который представляет в виде дерева список с иерархической структурой данных\n\nДополнительный функционал: в кастомном view компонента есть возможность реализовать кнопку, по клику на которую\nбудет вызываться функция props.onItemFocus. Данная функция \"находит\" текущий роут в дереве -\nраскрывает родительские уровни, делает элемент активным.\nДанная функция не включает скролл к активному компоненту внутри дерева, это также необходимо\nреализовать в кастомном view локально в проекте.\n": "A component that displays a list with a hierarchical data structure as a tree.\n\nAdditional functionality: in the custom view of the component, you can implement a button that, when clicked,\ncalls the props.onItemFocus function. This function \"finds\" the current route in the tree -\nexpands the parent levels, makes the element active.\nThis function does not include scrolling to the active component inside the tree; this also needs to be\nimplemented locally in the project's custom view.",
|
|
975
|
+
"Значение страницы по умолчанию.": "Default page value.",
|
|
976
|
+
"Логическое значение, указывающее, можно ли загрузить еще элементы для списка при скролле.": "A boolean value indicating whether more items can be loaded for the list when scrolling.",
|
|
977
|
+
"Сигнал, запрещающий отправку запроса на получение данных": "A signal that prohibits sending a data fetch request.",
|
|
978
|
+
"Нужно ли закрывать выпадающий список после выбора элемента": "Whether to close the dropdown list after selecting an element.",
|
|
979
|
+
"Ref для drop area": "Ref for the drop area.",
|
|
980
|
+
"Использовать drop area": "Use drop area.",
|
|
981
|
+
"Подключение бесконечного скролла": "Enabling infinite scroll.",
|
|
982
|
+
"Флаг определяет необходимо ли передавать query параметры в URL": "A flag that determines whether query parameters should be passed in the URL.",
|
|
983
|
+
"Дополнительный свойства для view части компонента": "Additional properties for the view part of the component.",
|
|
984
|
+
"Используется для управления раскрытием всех элементов в дереве": "Used to control the expansion of all elements in the tree.",
|
|
985
|
+
"Идентификатор (ключ) для сохранения в LocalStorage коллекции.": "Identifier (key) for saving the collection in LocalStorage.",
|
|
986
|
+
"Скрывать открытые вложенные узлы, если скрыли родительский узел": "Hide open nested nodes if the parent node is hidden.",
|
|
987
|
+
"Текущая страница, используется для корректного отображения пагинации": "Current page, used for correct pagination display.",
|
|
988
|
+
"Если флаг true, то данные в items переданы только для одной страницы, если false, то данные в items переданы сразу для всех страниц": "If the flag is true, then the data in items is provided for only one page; if false, then the data in items is provided for all pages at once.",
|
|
989
|
+
"Количество элементов на странице, используется для корректного отображения пагинации": "Number of items per page, used for correct pagination display.",
|
|
990
|
+
"Параметры роутинга": "Routing parameters.",
|
|
991
|
+
"Сохранение в localStorage уровней вложенности.": "Saving nesting levels to localStorage.",
|
|
992
|
+
"Изначально отображать все элементы раскрытыми": "Initially display all elements as expanded.",
|
|
993
|
+
"Нужно ли отображать кнопку \"сегодня\" под календарем.": "Whether to display the \"today\" button below the calendar.",
|
|
994
|
+
"Часовой пояс в формате IANA": "Time zone in IANA format.",
|
|
995
|
+
"Текущая дата в формате Date, используется для выделения текущего дня в календаре.": "Current date in Date format, used to highlight the current day in the calendar.",
|
|
996
|
+
"Дополнительные свойства для списка календарей бокового календаря": "Additional properties for the side calendar's calendar list.",
|
|
997
|
+
"Дополнительные свойства для бокового календаря": "Additional properties for the side calendar.",
|
|
998
|
+
"Данные для формы с текущими датами календаря": "Data for the form with the calendar's current dates.",
|
|
999
|
+
"Свойства для сетки дня": "Properties for the day grid.",
|
|
1000
|
+
"Свойства для сетки месяца": "Properties for the month grid.",
|
|
1001
|
+
"Свойства для сетки недели": "Properties for the week grid.",
|
|
1002
|
+
"Конечная дата": "End date.",
|
|
1003
|
+
"Начальная дата": "Start date.",
|
|
1004
|
+
"Дополнительные данные которые попадут в дата аттрибут data-icon": "Additional data that will go into the data-icon attribute.",
|
|
1005
|
+
"Компоненты для подключения wysiwyg редактора": "Components for connecting the WYSIWYG editor.",
|
|
1006
|
+
"Текст при отсутствии элементов": "Text when there are no items.",
|
|
1007
|
+
"Разделитель между элементами, в случае, если выбрано несколько значений": "Separator between elements, in case multiple values are selected.",
|
|
1008
|
+
"Пропсы для отображения элемента": "Props for displaying an element.",
|
|
1009
|
+
"Отображать чекбоксы только на узлах, не имеющих вложенных элементов": "Display checkboxes only on nodes that have no nested elements.",
|
|
1010
|
+
"View компонент для элемента дерева": "View component for a tree element.",
|
|
1011
|
+
"Положение дополнительных кнопок (сегодня, вчера и прочие)\nЕсли указано в формате 'position1-position2', то 'position1' будет на устройствах > $tablet-width, а 'position2' на остальных.": "Position of additional buttons (today, yesterday, etc.)\nIf specified in the format 'position1-position2', then 'position1' will be on devices > $tablet-width, and 'position2' on others.",
|
|
1012
|
+
"Перемещать ли фокус на пустое после заполнения": "Whether to move focus to an empty field after filling.",
|
|
1013
|
+
"Активирует логику:\n- Если кликнули по дате начала или конца диапазона, то позволяем её изменить следующим кликом\n- Если клик не на дату конца или начала диапазона, а диапазон есть, то сбрасываем его\n- Если клик не на дату конца или начала диапазона, а диапазона нет, то устанавливаем кликнутую дату в поле from": "Activates the logic:\n- If clicked on the start or end date of a range, allow it to be changed with the next click\n- If the click is not on the end or start date of a range, but a range exists, reset it\n- If the click is not on the end or start date of a range, and no range exists, set the clicked date in the 'from' field.",
|
|
1014
|
+
"Добавляет дополнительные кнопки к календарю\ntrue - будут отображены кнопки по-умолчанию\nсписок:\n string - одна из кнопок по-умолчанию\n object - кастомная кнопка": "Adds additional buttons to the calendar\ntrue - default buttons will be displayed\nlist:\n string - one of the default buttons\n object - a custom button.",
|
|
1015
|
+
"Ограничение доступного времени.": "Restriction of available time.",
|
|
1016
|
+
"Разделитель для даты и времени, не влияет на отображение": "Separator for date and time, does not affect display.",
|
|
1017
|
+
"Шаг минут": "Minute step.",
|
|
1018
|
+
"Свойства, которые напрямую передаются в DropDown компонент": "Properties that are passed directly to the DropDown component.",
|
|
1019
|
+
"Нужно ли подгружать данные после закрытия DropDown": "Whether to load data after closing the DropDown.",
|
|
1020
|
+
"Число в пикселях, больше которого не может быть выпадающее меню": "Number in pixels that the dropdown menu cannot exceed.",
|
|
1021
|
+
"Начальные элементы списка": "Initial list items.",
|
|
1022
|
+
"Значения для полей при нажатии кнопки 'Добавить'": "Values for fields when the 'Add' button is pressed.",
|
|
1023
|
+
"Название иконки, которая отобразится для удаления группы с полями": "The name of the icon that will be displayed for deleting a field group.",
|
|
1024
|
+
"Размер компонента и вложенных полей": "Size of the component and nested fields.",
|
|
1025
|
+
"Текст, который отобразится при загрузке файла": "Text that will be displayed during file upload.",
|
|
1026
|
+
"Параметры для кнопки отправки формы": "Parameters for the form submit button.",
|
|
1027
|
+
"Очищать сообщение об ошибке при редактировании поля. По-умолчанию включено": "Clear error message when editing a field. Enabled by default.",
|
|
1028
|
+
"Колбэк для использования сторонних валидаторов, например yup": "Callback for using third-party validators, e.g., yup.",
|
|
1029
|
+
"Конструктор редактора 'ckeditor5-react' из библиотеки @steroidsjs/ckeditor5/packages/ckeditor5-build-classic\nПримечание: для использования встроенного отображения 'HtmlField', данный компонент должен быть передан": "Editor constructor 'ckeditor5-react' from the @steroidsjs/ckeditor5/packages/ckeditor5-build-classic library.\nNote: to use the built-in 'HtmlField' display, this component must be passed.",
|
|
1030
|
+
"Компонент редактора 'ckeditor5-react' из библиотеки @ckeditor\nПримечание: для использования встроенного отображения 'HtmlField', данный компонент должен быть передан": "Editor component 'ckeditor5-react' from the @ckeditor library.\nNote: to use the built-in 'HtmlField' display, this component must be passed.",
|
|
1031
|
+
"Допустимое количество символов после разделителя": "Allowed number of characters after the separator.",
|
|
1032
|
+
"Может ли число быть отрицательным": "Whether the number can be negative.",
|
|
1033
|
+
"Перечисление элементов": "Enumeration of elements.",
|
|
1034
|
+
"Валюта @enum {eur, rub, usd}": "Currency @enum {eur, rub, usd}.",
|
|
1035
|
+
"Подключить бесконечный скролл": "Enable infinite scroll.",
|
|
1036
|
+
"Аттрибут (название) в форме для поля с флагом, определяющим есть ли следующая страница": "Attribute (name) in the form for the field with the flag indicating whether there is a next page.",
|
|
1037
|
+
"Аттрибут (название) в форме для поля с номером текущей страницы": "Attribute (name) in the form for the field with the current page number.",
|
|
1038
|
+
"Кастомная иконка для сворачивания элементов": "Custom icon for collapsing elements.",
|
|
1039
|
+
"CSS-класс для элемента навигации.": "CSS class for the navigation element.",
|
|
1040
|
+
"Тип данных для параметров маршрута.": "Data type for route parameters.",
|
|
1041
|
+
"Обертка над Redux Store со встроенными middleware (thunk, multi, promise..) и react-router.": "Wrapper over Redux Store with built-in middleware (thunk, multi, promise..) and react-router.",
|
|
1042
|
+
"Ref autocomplete поиска": "Ref for autocomplete search.",
|
|
1043
|
+
"Ограничение доступных дат.": "Restriction of available dates.",
|
|
1044
|
+
"\nКомпонент `Kanban` позволяет создать доску для управления задачами.\nКоличество столбцов задается с помощью пропа `columns`.\nЗадачи на доске можно создавать, редактировать и перемещать с визуальным отображением.\n\nДля работы этого компонента необходимо установить в проекте зависимости `react-beautiful-dnd`\nи передать в пропсы `droppableComponent`, `draggableComponent` и `dndContext`\nкомпоненты `Droppable`, `Draggable` и `DragDropContext` соответственно.\n\nДля корректной работы функционала создания задач,\nнеобходимо установить в проекте зависимости `@ckeditor/ckeditor5-react v3.0.2` и `@steroidsjs/ckeditor5 v27.0.2-rc.2`,\nзатем импортировать `CKEditor` из `@ckeditor/ckeditor5-react` и `ClassicEditor` из `@steroidsjs/ckeditor5/packages/ckeditor5-build-classic`.\nИмпортированные компоненты нужно передать в проп `createTaskEditorConfig`,\nв поле `htmlComponent` передать `CKEditor`, а в `editorConstructor` передать `ClassicEditor`.\n": "The `Kanban` component allows you to create a board for task management.\nThe number of columns is set using the `columns` prop.\nTasks on the board can be created, edited, and moved with visual feedback.\n\nFor this component to work, you must install the `react-beautiful-dnd` dependencies in your project\nand pass the `Droppable`, `Draggable`, and `DragDropContext` components to the `droppableComponent`, `draggableComponent`, and `dndContext` props, respectively.\n\nFor the task creation functionality to work correctly,\nyou need to install the `@ckeditor/ckeditor5-react v3.0.2` and `@steroidsjs/ckeditor5 v27.0.2-rc.2` dependencies in your project,\nthen import `CKEditor` from `@ckeditor/ckeditor5-react` and `ClassicEditor` from `@steroidsjs/ckeditor5/packages/ckeditor5-build-classic`.\nPass the imported components to the `createTaskEditorConfig` prop,\nproviding `CKEditor` to the `htmlComponent` field and `ClassicEditor` to `editorConstructor`.",
|
|
1045
|
+
"\nКомпонент поля ввода текста с маской.\n": "A text input field component with a mask.",
|
|
1046
|
+
"\nКомпонент Tooltip предоставляет всплывающую подсказку для дочерних элементов.\nВнутри компонента, то есть между тегами Tooltip можно использовать только html теги, например div, span и тд\n": "The Tooltip component provides a popup hint for child elements.\nInside the component, that is, between the Tooltip tags, you can only use HTML tags, e.g., div, span, etc.",
|
|
1047
|
+
"Логическое значение, указывающее, есть ли еще элементы в списке с бесконечным скроллом": "",
|
|
1048
|
+
"Кастомный домен для куки": "",
|
|
1049
|
+
" Автоматически устанавливает куку для всех поддоменов текущего домена,\n но только если параметр domain не указан явно": "",
|
|
1050
|
+
"Флаг, который указывает, что высота поля должна быть равна высоте контента": ""
|
|
1056
1051
|
}
|
package/hooks/useAddressBar.d.ts
CHANGED
|
@@ -24,11 +24,5 @@ export interface IAddressBarOutput {
|
|
|
24
24
|
export declare const defaultFromStringConverter: (value: any, type: any, item: any) => any;
|
|
25
25
|
export declare const defaultToStringConverter: (value: any, type: any, item: any) => string;
|
|
26
26
|
export declare const queryRestore: (model: Model, location: any, useHash: any) => {};
|
|
27
|
-
/**
|
|
28
|
-
* WARNING
|
|
29
|
-
* Method incorrectly saves nested objects (e.g. {foo: [{bar: 1}]}
|
|
30
|
-
* // @todo use 'qs' library instead of 'query-string'
|
|
31
|
-
*
|
|
32
|
-
*/
|
|
33
27
|
export declare const queryReplace: (model: Model, location: any, values: any, useHash: any) => any[] | import("connected-react-router").CallHistoryMethodAction<[Path, LocationState?]>;
|
|
34
28
|
export default function useAddressBar(config: IAddressBarConfig): IAddressBarOutput;
|
package/hooks/useAddressBar.js
CHANGED
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
27
|
};
|
|
@@ -6,7 +29,7 @@ exports.__esModule = true;
|
|
|
6
29
|
exports.queryReplace = exports.queryRestore = exports.defaultToStringConverter = exports.defaultFromStringConverter = void 0;
|
|
7
30
|
var get_1 = __importDefault(require("lodash-es/get"));
|
|
8
31
|
var isEmpty_1 = __importDefault(require("lodash-es/isEmpty"));
|
|
9
|
-
var
|
|
32
|
+
var queryString = __importStar(require("qs"));
|
|
10
33
|
var connected_react_router_1 = require("connected-react-router");
|
|
11
34
|
var toInteger_1 = __importDefault(require("lodash-es/toInteger"));
|
|
12
35
|
var has_1 = __importDefault(require("lodash-es/has"));
|
|
@@ -56,7 +79,8 @@ var defaultToStringConverter = function (value, type, item) {
|
|
|
56
79
|
};
|
|
57
80
|
exports.defaultToStringConverter = defaultToStringConverter;
|
|
58
81
|
var queryRestore = function (model, location, useHash) {
|
|
59
|
-
var
|
|
82
|
+
var search = useHash ? location.hash : location.search;
|
|
83
|
+
var values = queryString.parse(search.replace(/^[?#]/, ''));
|
|
60
84
|
var result = {};
|
|
61
85
|
var attributes = (model === null || model === void 0 ? void 0 : model.attributes) || Object.keys(values);
|
|
62
86
|
attributes.forEach(function (item) {
|
|
@@ -73,12 +97,6 @@ var queryRestore = function (model, location, useHash) {
|
|
|
73
97
|
return result;
|
|
74
98
|
};
|
|
75
99
|
exports.queryRestore = queryRestore;
|
|
76
|
-
/**
|
|
77
|
-
* WARNING
|
|
78
|
-
* Method incorrectly saves nested objects (e.g. {foo: [{bar: 1}]}
|
|
79
|
-
* // @todo use 'qs' library instead of 'query-string'
|
|
80
|
-
*
|
|
81
|
-
*/
|
|
82
100
|
var queryReplace = function (model, location, values, useHash) {
|
|
83
101
|
var result = {};
|
|
84
102
|
var attributes = (model === null || model === void 0 ? void 0 : model.attributes) || Object.keys(values);
|
|
@@ -95,17 +113,17 @@ var queryReplace = function (model, location, values, useHash) {
|
|
|
95
113
|
}
|
|
96
114
|
}
|
|
97
115
|
});
|
|
98
|
-
var query =
|
|
116
|
+
var query = queryString.stringify(result);
|
|
99
117
|
if (useHash) {
|
|
100
|
-
|
|
101
|
-
if (location.hash !==
|
|
102
|
-
location.hash =
|
|
118
|
+
var hash = '#' + query;
|
|
119
|
+
if (location.hash !== hash) {
|
|
120
|
+
location.hash = hash;
|
|
103
121
|
}
|
|
104
122
|
return [];
|
|
105
123
|
}
|
|
106
|
-
|
|
107
|
-
if (location.search !==
|
|
108
|
-
return (0, connected_react_router_1.replace)(location.pathname +
|
|
124
|
+
var search = '?' + query;
|
|
125
|
+
if (location.search !== search) {
|
|
126
|
+
return (0, connected_react_router_1.replace)(location.pathname + search);
|
|
109
127
|
}
|
|
110
128
|
return [];
|
|
111
129
|
};
|
package/hooks/useDataProvider.js
CHANGED
|
@@ -180,13 +180,15 @@ function useDataProvider(config) {
|
|
|
180
180
|
if (prevAction !== ((_a = config === null || config === void 0 ? void 0 : config.dataProvider) === null || _a === void 0 ? void 0 : _a.action)) {
|
|
181
181
|
fetchRemote(false);
|
|
182
182
|
}
|
|
183
|
-
if (delayTimerRef.current) {
|
|
184
|
-
clearTimeout(delayTimerRef.current);
|
|
185
|
-
}
|
|
186
183
|
// Changed query logic
|
|
187
184
|
if (prevQuery !== config.query || !(0, isEqual_1["default"])(prevParams, dataProvider.params)) {
|
|
185
|
+
if (delayTimerRef.current) {
|
|
186
|
+
clearTimeout(delayTimerRef.current);
|
|
187
|
+
}
|
|
188
188
|
// Search with delay
|
|
189
|
-
delayTimerRef.current = setTimeout(
|
|
189
|
+
delayTimerRef.current = setTimeout(function () {
|
|
190
|
+
fetchRemote(false);
|
|
191
|
+
}, autoComplete.delay);
|
|
190
192
|
}
|
|
191
193
|
}
|
|
192
194
|
}, [autoComplete, components.http, config.autoFetch, config.dataProvider, config.initialSelectedIds, config.query, dataProvider,
|
package/hooks/useDataSelect.d.ts
CHANGED
|
@@ -47,11 +47,11 @@ export interface IDataSelectConfig {
|
|
|
47
47
|
*/
|
|
48
48
|
inputValue?: any;
|
|
49
49
|
/**
|
|
50
|
-
*
|
|
50
|
+
* Список со всеми элементами
|
|
51
51
|
*/
|
|
52
52
|
sourceItems?: IDataSelectItem[];
|
|
53
53
|
/**
|
|
54
|
-
*
|
|
54
|
+
* Ref autocomplete поиска
|
|
55
55
|
*/
|
|
56
56
|
autoCompleteInputRef?: MutableRefObject<HTMLInputElement>;
|
|
57
57
|
/**
|
package/hooks/useList.js
CHANGED
|
@@ -148,9 +148,15 @@ function useList(config) {
|
|
|
148
148
|
// InfiniteScroll
|
|
149
149
|
var InfiniteScroll = require('../ui/list/InfiniteScroll')["default"];
|
|
150
150
|
var infiniteScrollProps = (0, InfiniteScroll_1.normalizeInfiniteScrollProps)(config.infiniteScroll);
|
|
151
|
-
var renderInfiniteScroll = function () {
|
|
152
|
-
|
|
153
|
-
|
|
151
|
+
var renderInfiniteScroll = function () {
|
|
152
|
+
if (!infiniteScrollProps.enable || (list === null || list === void 0 ? void 0 : list.isLoading) || !(list === null || list === void 0 ? void 0 : list.isFetched)) {
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
155
|
+
if (!list.hasMoreInfiniteScroll) {
|
|
156
|
+
return null;
|
|
157
|
+
}
|
|
158
|
+
return (react_1["default"].createElement(InfiniteScroll, __assign({ list: list }, infiniteScrollProps, { sizeAttribute: infiniteScrollProps.attribute })));
|
|
159
|
+
};
|
|
154
160
|
// Layout switcher
|
|
155
161
|
var LayoutNames = require('../ui/list/LayoutNames')["default"];
|
|
156
162
|
var layoutNamesProps = (0, LayoutNames_1.normalizeLayoutNamesProps)(config.layout);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steroidsjs/core",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.89",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "Vladimir Kozhin <hello@kozhindev.com>",
|
|
6
6
|
"repository": {
|
|
@@ -42,8 +42,7 @@
|
|
|
42
42
|
"lodash": "^4.17.21",
|
|
43
43
|
"lodash-es": "^4.17.21",
|
|
44
44
|
"path-to-regexp": "^1.7.0",
|
|
45
|
-
"qs": "^6.
|
|
46
|
-
"query-string": "^6.14.0",
|
|
45
|
+
"qs": "^6.14.1",
|
|
47
46
|
"react": "^18.2.0",
|
|
48
47
|
"react-click-outside": "^3.0.1",
|
|
49
48
|
"react-day-picker": "^8.7.1",
|
package/reducers/list.js
CHANGED
|
@@ -73,7 +73,10 @@ var reducerMap = (_a = {},
|
|
|
73
73
|
else {
|
|
74
74
|
items = [].concat(action.items);
|
|
75
75
|
}
|
|
76
|
-
|
|
76
|
+
var hasMoreInfiniteScroll = list.hasInfiniteScroll
|
|
77
|
+
? action.items.length === action.pageSize
|
|
78
|
+
: false;
|
|
79
|
+
return __assign(__assign({}, state), { lists: __assign(__assign({}, state.lists), (_a = {}, _a[action.listId] = __assign(__assign(__assign({}, list), action), { items: items, hasMoreInfiniteScroll: hasMoreInfiniteScroll, isFetched: true, isLoading: false }), _a)) });
|
|
77
80
|
},
|
|
78
81
|
_a[list_1.LIST_ITEM_ADD] = function (state, action) {
|
|
79
82
|
var _a;
|
|
@@ -34,7 +34,7 @@ export interface IIconProps extends Omit<IUiComponent, 'className' | 'style'>, P
|
|
|
34
34
|
*/
|
|
35
35
|
title?: string;
|
|
36
36
|
/**
|
|
37
|
-
*
|
|
37
|
+
* Должен ли данный элемент участвовать в последовательной навигации
|
|
38
38
|
*/
|
|
39
39
|
tabIndex?: number;
|
|
40
40
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeEvent, KeyboardEventHandler } from 'react';
|
|
1
|
+
import React, { ChangeEvent, KeyboardEventHandler } from 'react';
|
|
2
2
|
import { IFieldWrapperOutputProps } from '../Field/fieldWrapper';
|
|
3
3
|
import { IBaseFieldProps } from '../InputField/InputField';
|
|
4
4
|
/**
|
|
@@ -11,6 +11,11 @@ export interface ITextFieldProps extends IBaseFieldProps {
|
|
|
11
11
|
* @example true
|
|
12
12
|
*/
|
|
13
13
|
submitOnEnter?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Флаг, который указывает, что высота поля должна быть равна высоте контента
|
|
16
|
+
* @example false
|
|
17
|
+
*/
|
|
18
|
+
autoHeight?: boolean;
|
|
14
19
|
}
|
|
15
20
|
export interface ITextFieldViewProps extends ITextFieldProps, IFieldWrapperOutputProps {
|
|
16
21
|
inputProps: {
|
|
@@ -21,6 +26,7 @@ export interface ITextFieldViewProps extends ITextFieldProps, IFieldWrapperOutpu
|
|
|
21
26
|
placeholder: string;
|
|
22
27
|
disabled: boolean;
|
|
23
28
|
required: boolean;
|
|
29
|
+
ref: React.MutableRefObject<any>;
|
|
24
30
|
};
|
|
25
31
|
onClear: VoidFunction;
|
|
26
32
|
}
|
|
@@ -38,12 +38,13 @@ function TextField(props) {
|
|
|
38
38
|
var _a;
|
|
39
39
|
return (__assign({ name: props.input.name, value: (_a = props.input.value) !== null && _a !== void 0 ? _a : '', onChange: handleChange, onKeyUp: onKeyUp, placeholder: props.placeholder, disabled: props.disabled, required: props.required, ref: inputRef }, props.inputProps));
|
|
40
40
|
}, [props.input.name, props.input.value, props.placeholder, props.disabled, props.required, props.inputProps, handleChange, onKeyUp, inputRef]);
|
|
41
|
-
var viewProps = (0, react_1.useMemo)(function () { return (__assign(__assign({}, props.viewProps), { inputProps: inputProps, onClear: onClear, errors: props.errors, size: props.size, className: props.className, showClear: props.showClear })); }, [inputProps, onClear, props.className, props.errors, props.showClear, props.size, props.viewProps]);
|
|
41
|
+
var viewProps = (0, react_1.useMemo)(function () { return (__assign(__assign({}, props.viewProps), { inputProps: inputProps, onClear: onClear, errors: props.errors, size: props.size, className: props.className, showClear: props.showClear, autoHeight: props.autoHeight })); }, [inputProps, onClear, props.className, props.errors, props.showClear, props.size, props.viewProps, props.autoHeight]);
|
|
42
42
|
return components.ui.renderView(props.view || 'form.TextFieldView', viewProps);
|
|
43
43
|
}
|
|
44
44
|
TextField.defaultProps = {
|
|
45
45
|
disabled: false,
|
|
46
46
|
required: false,
|
|
47
|
-
submitOnEnter: false
|
|
47
|
+
submitOnEnter: false,
|
|
48
|
+
autoHeight: false
|
|
48
49
|
};
|
|
49
50
|
exports["default"] = (0, fieldWrapper_1["default"])(enums_1.FieldEnum.TEXT_FIELD, TextField);
|
package/ui/list/Grid/Grid.d.ts
CHANGED
package/ui/list/List/List.js
CHANGED
|
@@ -50,6 +50,7 @@ function List(props) {
|
|
|
50
50
|
actionMethod: props.actionMethod,
|
|
51
51
|
pagination: props.pagination,
|
|
52
52
|
paginationSize: props.paginationSize,
|
|
53
|
+
infiniteScroll: props.infiniteScroll,
|
|
53
54
|
sort: props.sort,
|
|
54
55
|
layout: props.layout,
|
|
55
56
|
empty: props.empty,
|
|
@@ -67,7 +68,7 @@ function List(props) {
|
|
|
67
68
|
initialItems: props.initialItems,
|
|
68
69
|
initialTotal: props.initialTotal,
|
|
69
70
|
autoFetchOnFormChanges: props.autoFetchOnFormChanges
|
|
70
|
-
}), list = _a.list, paginationPosition = _a.paginationPosition, paginationSizePosition = _a.paginationSizePosition, layoutNamesPosition = _a.layoutNamesPosition, renderList = _a.renderList, renderLoading = _a.renderLoading, renderEmpty = _a.renderEmpty, renderPagination = _a.renderPagination, renderPaginationSize = _a.renderPaginationSize, renderLayoutNames = _a.renderLayoutNames, renderSearchForm = _a.renderSearchForm;
|
|
71
|
+
}), list = _a.list, paginationPosition = _a.paginationPosition, paginationSizePosition = _a.paginationSizePosition, layoutNamesPosition = _a.layoutNamesPosition, renderList = _a.renderList, renderLoading = _a.renderLoading, renderEmpty = _a.renderEmpty, renderPagination = _a.renderPagination, renderPaginationSize = _a.renderPaginationSize, renderLayoutNames = _a.renderLayoutNames, renderSearchForm = _a.renderSearchForm, renderInfiniteScroll = _a.renderInfiniteScroll;
|
|
71
72
|
var ItemView = props.itemView || components.ui.getView('list.ListItemView');
|
|
72
73
|
var content = ((list === null || list === void 0 ? void 0 : list.items) || []).map(function (item, index) { return (React.createElement(ItemView, __assign({}, props.itemProps, { key: item[props.primaryKey] || index, primaryKey: props.primaryKey, item: item, index: index, layoutSelected: list.layoutName }))); });
|
|
73
74
|
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
@@ -82,12 +83,12 @@ function List(props) {
|
|
|
82
83
|
renderPaginationSize: renderPaginationSize,
|
|
83
84
|
renderLayoutNames: renderLayoutNames,
|
|
84
85
|
renderSearchForm: renderSearchForm,
|
|
86
|
+
renderInfiniteScroll: renderInfiniteScroll,
|
|
85
87
|
content: content,
|
|
86
88
|
isLoading: props.isLoading,
|
|
87
89
|
className: props.className,
|
|
88
90
|
contentClassName: props.contentClassName
|
|
89
|
-
}); }, [
|
|
90
|
-
props.isLoading, renderEmpty, renderLayoutNames, renderList, renderPagination, renderPaginationSize, renderSearchForm, renderLoading]);
|
|
91
|
+
}); }, [list, paginationPosition, paginationSizePosition, layoutNamesPosition, renderList, renderLoading, renderEmpty, renderPagination, renderPaginationSize, renderLayoutNames, renderSearchForm, renderInfiniteScroll, content, props.isLoading, props.className, props.contentClassName]);
|
|
91
92
|
return components.ui.renderView(props.view || 'list.ListView', viewProps);
|
|
92
93
|
}
|
|
93
94
|
exports["default"] = List;
|