@next-bricks/nav 1.15.0 → 1.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bricks.json +32 -25
- package/dist/chunks/884.18f6ab5d.js +2 -0
- package/dist/chunks/884.18f6ab5d.js.map +1 -0
- package/dist/chunks/eo-directory-tree-internal-node.9b27dad7.js +2 -0
- package/dist/chunks/eo-directory-tree-internal-node.9b27dad7.js.map +1 -0
- package/dist/chunks/eo-directory-tree-leaf.bfd0aeb0.js +2 -0
- package/dist/chunks/eo-directory-tree-leaf.bfd0aeb0.js.map +1 -0
- package/dist/chunks/eo-directory-tree.4eb89def.js +3 -0
- package/dist/chunks/eo-directory-tree.4eb89def.js.LICENSE.txt +5 -0
- package/dist/chunks/eo-directory-tree.4eb89def.js.map +1 -0
- package/dist/chunks/{main.87f2149b.js → main.2cb469ea.js} +2 -2
- package/dist/chunks/{main.87f2149b.js.map → main.2cb469ea.js.map} +1 -1
- package/dist/examples.json +6 -6
- package/dist/index.ed279d5d.js +2 -0
- package/dist/{index.9bc7784b.js.map → index.ed279d5d.js.map} +1 -1
- package/dist/manifest.json +153 -130
- package/dist/types.json +183 -82
- package/dist-types/directory-tree/DirectoryTreeContext.d.ts +3 -5
- package/dist-types/directory-tree/directory-tree-internal-node/index.d.ts +6 -1
- package/dist-types/directory-tree/directory-tree-leaf/index.d.ts +6 -1
- package/dist-types/directory-tree/index.d.ts +16 -3
- package/package.json +2 -2
- package/dist/chunks/884.f050ce1d.js +0 -2
- package/dist/chunks/884.f050ce1d.js.map +0 -1
- package/dist/chunks/eo-directory-tree-internal-node.eb2044aa.js +0 -2
- package/dist/chunks/eo-directory-tree-internal-node.eb2044aa.js.map +0 -1
- package/dist/chunks/eo-directory-tree-leaf.8fc6c903.js +0 -2
- package/dist/chunks/eo-directory-tree-leaf.8fc6c903.js.map +0 -1
- package/dist/chunks/eo-directory-tree.875e9246.js +0 -2
- package/dist/chunks/eo-directory-tree.875e9246.js.map +0 -1
- package/dist/index.9bc7784b.js +0 -2
package/dist/types.json
CHANGED
|
@@ -4,59 +4,6 @@
|
|
|
4
4
|
"events": [],
|
|
5
5
|
"methods": []
|
|
6
6
|
},
|
|
7
|
-
"eo-app-bar-wrapper": {
|
|
8
|
-
"properties": [
|
|
9
|
-
{
|
|
10
|
-
"name": "isFixed",
|
|
11
|
-
"annotation": {
|
|
12
|
-
"type": "keyword",
|
|
13
|
-
"value": "boolean"
|
|
14
|
-
}
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
"name": "position",
|
|
18
|
-
"annotation": {
|
|
19
|
-
"type": "union",
|
|
20
|
-
"types": [
|
|
21
|
-
{
|
|
22
|
-
"type": "jsLiteral",
|
|
23
|
-
"value": "static"
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
"type": "jsLiteral",
|
|
27
|
-
"value": "fixed"
|
|
28
|
-
}
|
|
29
|
-
]
|
|
30
|
-
}
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
"name": "displayCenter",
|
|
34
|
-
"annotation": {
|
|
35
|
-
"type": "keyword",
|
|
36
|
-
"value": "boolean"
|
|
37
|
-
}
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
"name": "extraAppBarContentStyle",
|
|
41
|
-
"annotation": {
|
|
42
|
-
"type": "reference",
|
|
43
|
-
"typeName": {
|
|
44
|
-
"type": "qualifiedName",
|
|
45
|
-
"left": {
|
|
46
|
-
"type": "identifier",
|
|
47
|
-
"name": "React"
|
|
48
|
-
},
|
|
49
|
-
"right": {
|
|
50
|
-
"type": "identifier",
|
|
51
|
-
"name": "CSSProperties"
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
],
|
|
57
|
-
"events": [],
|
|
58
|
-
"methods": []
|
|
59
|
-
},
|
|
60
7
|
"eo-frame-breadcrumb": {
|
|
61
8
|
"properties": [
|
|
62
9
|
{
|
|
@@ -145,6 +92,59 @@
|
|
|
145
92
|
}
|
|
146
93
|
]
|
|
147
94
|
},
|
|
95
|
+
"eo-app-bar-wrapper": {
|
|
96
|
+
"properties": [
|
|
97
|
+
{
|
|
98
|
+
"name": "isFixed",
|
|
99
|
+
"annotation": {
|
|
100
|
+
"type": "keyword",
|
|
101
|
+
"value": "boolean"
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"name": "position",
|
|
106
|
+
"annotation": {
|
|
107
|
+
"type": "union",
|
|
108
|
+
"types": [
|
|
109
|
+
{
|
|
110
|
+
"type": "jsLiteral",
|
|
111
|
+
"value": "static"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"type": "jsLiteral",
|
|
115
|
+
"value": "fixed"
|
|
116
|
+
}
|
|
117
|
+
]
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"name": "displayCenter",
|
|
122
|
+
"annotation": {
|
|
123
|
+
"type": "keyword",
|
|
124
|
+
"value": "boolean"
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"name": "extraAppBarContentStyle",
|
|
129
|
+
"annotation": {
|
|
130
|
+
"type": "reference",
|
|
131
|
+
"typeName": {
|
|
132
|
+
"type": "qualifiedName",
|
|
133
|
+
"left": {
|
|
134
|
+
"type": "identifier",
|
|
135
|
+
"name": "React"
|
|
136
|
+
},
|
|
137
|
+
"right": {
|
|
138
|
+
"type": "identifier",
|
|
139
|
+
"name": "CSSProperties"
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
],
|
|
145
|
+
"events": [],
|
|
146
|
+
"methods": []
|
|
147
|
+
},
|
|
148
148
|
"eo-sidebar-menu-item": {
|
|
149
149
|
"properties": [
|
|
150
150
|
{
|
|
@@ -564,29 +564,29 @@
|
|
|
564
564
|
"events": [],
|
|
565
565
|
"methods": []
|
|
566
566
|
},
|
|
567
|
-
"eo-launchpad
|
|
567
|
+
"eo-search-launchpad": {
|
|
568
568
|
"properties": [
|
|
569
569
|
{
|
|
570
|
-
"name": "
|
|
570
|
+
"name": "readonly",
|
|
571
571
|
"annotation": {
|
|
572
|
-
"type": "
|
|
573
|
-
"
|
|
574
|
-
"type": "identifier",
|
|
575
|
-
"name": "Target"
|
|
576
|
-
}
|
|
572
|
+
"type": "keyword",
|
|
573
|
+
"value": "boolean"
|
|
577
574
|
}
|
|
578
575
|
}
|
|
579
576
|
],
|
|
580
577
|
"events": [],
|
|
581
578
|
"methods": []
|
|
582
579
|
},
|
|
583
|
-
"eo-
|
|
580
|
+
"eo-launchpad-recent-visits": {
|
|
584
581
|
"properties": [
|
|
585
582
|
{
|
|
586
|
-
"name": "
|
|
583
|
+
"name": "target",
|
|
587
584
|
"annotation": {
|
|
588
|
-
"type": "
|
|
589
|
-
"
|
|
585
|
+
"type": "reference",
|
|
586
|
+
"typeName": {
|
|
587
|
+
"type": "identifier",
|
|
588
|
+
"name": "Target"
|
|
589
|
+
}
|
|
590
590
|
}
|
|
591
591
|
}
|
|
592
592
|
],
|
|
@@ -672,6 +672,23 @@
|
|
|
672
672
|
"type": "keyword",
|
|
673
673
|
"value": "boolean"
|
|
674
674
|
}
|
|
675
|
+
},
|
|
676
|
+
{
|
|
677
|
+
"name": "icon",
|
|
678
|
+
"annotation": {
|
|
679
|
+
"type": "reference",
|
|
680
|
+
"typeName": {
|
|
681
|
+
"type": "identifier",
|
|
682
|
+
"name": "GeneralIconProps"
|
|
683
|
+
}
|
|
684
|
+
}
|
|
685
|
+
},
|
|
686
|
+
{
|
|
687
|
+
"name": "faded",
|
|
688
|
+
"annotation": {
|
|
689
|
+
"type": "keyword",
|
|
690
|
+
"value": "boolean"
|
|
691
|
+
}
|
|
675
692
|
}
|
|
676
693
|
],
|
|
677
694
|
"events": [
|
|
@@ -857,6 +874,23 @@
|
|
|
857
874
|
"type": "keyword",
|
|
858
875
|
"value": "boolean"
|
|
859
876
|
}
|
|
877
|
+
},
|
|
878
|
+
{
|
|
879
|
+
"name": "icon",
|
|
880
|
+
"annotation": {
|
|
881
|
+
"type": "reference",
|
|
882
|
+
"typeName": {
|
|
883
|
+
"type": "identifier",
|
|
884
|
+
"name": "GeneralIconProps"
|
|
885
|
+
}
|
|
886
|
+
}
|
|
887
|
+
},
|
|
888
|
+
{
|
|
889
|
+
"name": "faded",
|
|
890
|
+
"annotation": {
|
|
891
|
+
"type": "keyword",
|
|
892
|
+
"value": "boolean"
|
|
893
|
+
}
|
|
860
894
|
}
|
|
861
895
|
],
|
|
862
896
|
"events": [
|
|
@@ -1003,6 +1037,13 @@
|
|
|
1003
1037
|
"value": "string"
|
|
1004
1038
|
}
|
|
1005
1039
|
},
|
|
1040
|
+
{
|
|
1041
|
+
"name": "internalNodeSelectable",
|
|
1042
|
+
"annotation": {
|
|
1043
|
+
"type": "keyword",
|
|
1044
|
+
"value": "boolean"
|
|
1045
|
+
}
|
|
1046
|
+
},
|
|
1006
1047
|
{
|
|
1007
1048
|
"name": "searchable",
|
|
1008
1049
|
"annotation": {
|
|
@@ -1045,24 +1086,11 @@
|
|
|
1045
1086
|
{
|
|
1046
1087
|
"name": "suffixBrick",
|
|
1047
1088
|
"annotation": {
|
|
1048
|
-
"type": "
|
|
1049
|
-
"
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
"type": "identifier",
|
|
1054
|
-
"name": "useBrick"
|
|
1055
|
-
},
|
|
1056
|
-
"annotation": {
|
|
1057
|
-
"type": "reference",
|
|
1058
|
-
"typeName": {
|
|
1059
|
-
"type": "identifier",
|
|
1060
|
-
"name": "UseBrickConf"
|
|
1061
|
-
}
|
|
1062
|
-
},
|
|
1063
|
-
"computed": false
|
|
1064
|
-
}
|
|
1065
|
-
]
|
|
1089
|
+
"type": "reference",
|
|
1090
|
+
"typeName": {
|
|
1091
|
+
"type": "identifier",
|
|
1092
|
+
"name": "SuffixBrickConf"
|
|
1093
|
+
}
|
|
1066
1094
|
}
|
|
1067
1095
|
},
|
|
1068
1096
|
{
|
|
@@ -1214,6 +1242,35 @@
|
|
|
1214
1242
|
},
|
|
1215
1243
|
"computed": false
|
|
1216
1244
|
},
|
|
1245
|
+
{
|
|
1246
|
+
"type": "propertySignature",
|
|
1247
|
+
"key": {
|
|
1248
|
+
"type": "identifier",
|
|
1249
|
+
"name": "icon"
|
|
1250
|
+
},
|
|
1251
|
+
"annotation": {
|
|
1252
|
+
"type": "reference",
|
|
1253
|
+
"typeName": {
|
|
1254
|
+
"type": "identifier",
|
|
1255
|
+
"name": "GeneralIconProps"
|
|
1256
|
+
}
|
|
1257
|
+
},
|
|
1258
|
+
"optional": true,
|
|
1259
|
+
"computed": false
|
|
1260
|
+
},
|
|
1261
|
+
{
|
|
1262
|
+
"type": "propertySignature",
|
|
1263
|
+
"key": {
|
|
1264
|
+
"type": "identifier",
|
|
1265
|
+
"name": "faded"
|
|
1266
|
+
},
|
|
1267
|
+
"annotation": {
|
|
1268
|
+
"type": "keyword",
|
|
1269
|
+
"value": "boolean"
|
|
1270
|
+
},
|
|
1271
|
+
"optional": true,
|
|
1272
|
+
"computed": false
|
|
1273
|
+
},
|
|
1217
1274
|
{
|
|
1218
1275
|
"type": "propertySignature",
|
|
1219
1276
|
"key": {
|
|
@@ -1250,6 +1307,50 @@
|
|
|
1250
1307
|
}
|
|
1251
1308
|
]
|
|
1252
1309
|
},
|
|
1310
|
+
{
|
|
1311
|
+
"type": "interface",
|
|
1312
|
+
"name": "SuffixBrickConf",
|
|
1313
|
+
"body": [
|
|
1314
|
+
{
|
|
1315
|
+
"type": "propertySignature",
|
|
1316
|
+
"key": {
|
|
1317
|
+
"type": "identifier",
|
|
1318
|
+
"name": "when"
|
|
1319
|
+
},
|
|
1320
|
+
"annotation": {
|
|
1321
|
+
"type": "union",
|
|
1322
|
+
"types": [
|
|
1323
|
+
{
|
|
1324
|
+
"type": "jsLiteral",
|
|
1325
|
+
"value": "always"
|
|
1326
|
+
},
|
|
1327
|
+
{
|
|
1328
|
+
"type": "jsLiteral",
|
|
1329
|
+
"value": "hover"
|
|
1330
|
+
}
|
|
1331
|
+
]
|
|
1332
|
+
},
|
|
1333
|
+
"optional": true,
|
|
1334
|
+
"computed": false,
|
|
1335
|
+
"description": ""
|
|
1336
|
+
},
|
|
1337
|
+
{
|
|
1338
|
+
"type": "propertySignature",
|
|
1339
|
+
"key": {
|
|
1340
|
+
"type": "identifier",
|
|
1341
|
+
"name": "useBrick"
|
|
1342
|
+
},
|
|
1343
|
+
"annotation": {
|
|
1344
|
+
"type": "reference",
|
|
1345
|
+
"typeName": {
|
|
1346
|
+
"type": "identifier",
|
|
1347
|
+
"name": "UseBrickConf"
|
|
1348
|
+
}
|
|
1349
|
+
},
|
|
1350
|
+
"computed": false
|
|
1351
|
+
}
|
|
1352
|
+
]
|
|
1353
|
+
},
|
|
1253
1354
|
{
|
|
1254
1355
|
"type": "interface",
|
|
1255
1356
|
"name": "NodeData",
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { UseBrickConf } from "@next-core/types";
|
|
2
1
|
import React from "react";
|
|
3
|
-
import { NodeData } from ".";
|
|
2
|
+
import type { NodeData, SuffixBrickConf } from ".";
|
|
4
3
|
export interface ContextOfDirectoryTree {
|
|
5
4
|
expandedKeysSet: Set<string>;
|
|
6
5
|
selectedKeysSet: Set<string>;
|
|
6
|
+
internalNodeSelectable?: boolean;
|
|
7
7
|
onExpand: (data: {
|
|
8
8
|
keys: string[];
|
|
9
9
|
node: NodeData;
|
|
@@ -12,9 +12,7 @@ export interface ContextOfDirectoryTree {
|
|
|
12
12
|
keys: string[];
|
|
13
13
|
node: NodeData;
|
|
14
14
|
}) => void;
|
|
15
|
-
suffixBrick?:
|
|
16
|
-
useBrick: UseBrickConf;
|
|
17
|
-
};
|
|
15
|
+
suffixBrick?: SuffixBrickConf;
|
|
18
16
|
}
|
|
19
17
|
export declare const DirectoryTreeContext: React.Context<ContextOfDirectoryTree>;
|
|
20
18
|
export declare const useDirectoryTreeContext: () => ContextOfDirectoryTree;
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { ReactNextElement } from "@next-core/react-element";
|
|
3
|
+
import type { GeneralIconProps } from "@next-bricks/icons/general-icon";
|
|
3
4
|
import "@next-core/theme";
|
|
4
5
|
export interface EoDirectoryTreeInternalNodeProps {
|
|
5
6
|
depth: number;
|
|
6
7
|
expanded?: boolean;
|
|
7
8
|
selectable?: boolean;
|
|
8
9
|
selected?: boolean;
|
|
10
|
+
icon?: GeneralIconProps;
|
|
11
|
+
faded?: boolean;
|
|
9
12
|
}
|
|
10
13
|
export interface EoDirectoryTreeInternalNodeEvents {
|
|
11
14
|
expand: CustomEvent<boolean>;
|
|
@@ -36,10 +39,12 @@ export declare class EoDirectoryTreeInternalNode extends ReactNextElement {
|
|
|
36
39
|
* 是否选中
|
|
37
40
|
*/
|
|
38
41
|
accessor selected: boolean | undefined;
|
|
42
|
+
accessor icon: GeneralIconProps | undefined;
|
|
43
|
+
accessor faded: boolean | undefined;
|
|
39
44
|
render(): React.JSX.Element;
|
|
40
45
|
}
|
|
41
46
|
export interface EoDirectoryTreeInternalNodeComponentProps extends EoDirectoryTreeInternalNodeProps {
|
|
42
47
|
onExpand: () => void;
|
|
43
48
|
onSelect: () => void;
|
|
44
49
|
}
|
|
45
|
-
export declare function EoDirectoryTreeInternalNodeComponent(
|
|
50
|
+
export declare function EoDirectoryTreeInternalNodeComponent({ depth, selectable, icon, onExpand, onSelect, }: EoDirectoryTreeInternalNodeComponentProps): React.JSX.Element;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { ReactNextElement } from "@next-core/react-element";
|
|
3
|
+
import type { GeneralIconProps } from "@next-bricks/icons/general-icon";
|
|
3
4
|
import "@next-core/theme";
|
|
4
5
|
export interface EoDirectoryTreeLeafProps {
|
|
5
6
|
depth: number;
|
|
6
7
|
selected?: boolean;
|
|
8
|
+
icon?: GeneralIconProps;
|
|
9
|
+
faded?: boolean;
|
|
7
10
|
}
|
|
8
11
|
export interface EoDirectoryTreeLeafEvents {
|
|
9
12
|
select: CustomEvent<void>;
|
|
@@ -24,9 +27,11 @@ export declare class EoDirectoryTreeLeaf extends ReactNextElement {
|
|
|
24
27
|
* 是否选中
|
|
25
28
|
*/
|
|
26
29
|
accessor selected: boolean | undefined;
|
|
30
|
+
accessor icon: GeneralIconProps | undefined;
|
|
31
|
+
accessor faded: boolean | undefined;
|
|
27
32
|
render(): React.JSX.Element;
|
|
28
33
|
}
|
|
29
34
|
export interface EoDirectoryTreeLeafComponentProps extends EoDirectoryTreeLeafProps {
|
|
30
35
|
onSelect: () => void;
|
|
31
36
|
}
|
|
32
|
-
export declare function EoDirectoryTreeLeafComponent(
|
|
37
|
+
export declare function EoDirectoryTreeLeafComponent({ depth, icon, onSelect, }: EoDirectoryTreeLeafComponentProps): React.JSX.Element;
|
|
@@ -2,12 +2,15 @@ import React from "react";
|
|
|
2
2
|
import { ReactNextElement } from "@next-core/react-element";
|
|
3
3
|
import "@next-core/theme";
|
|
4
4
|
import { UseBrickConf } from "@next-core/types";
|
|
5
|
+
import type { GeneralIconProps } from "@next-bricks/icons/general-icon";
|
|
5
6
|
/**
|
|
6
7
|
* 传入的 data 类型
|
|
7
8
|
*/
|
|
8
9
|
export interface TreeItem {
|
|
9
10
|
key: string;
|
|
10
11
|
title: string;
|
|
12
|
+
icon?: GeneralIconProps;
|
|
13
|
+
faded?: boolean;
|
|
11
14
|
children?: TreeItem[];
|
|
12
15
|
[key: string]: any;
|
|
13
16
|
}
|
|
@@ -35,6 +38,7 @@ export interface NodeData {
|
|
|
35
38
|
export interface EoDirectoryTreeProps {
|
|
36
39
|
data: TreeItem[];
|
|
37
40
|
directoryTitle?: string;
|
|
41
|
+
internalNodeSelectable?: boolean;
|
|
38
42
|
searchable?: boolean;
|
|
39
43
|
placeholder?: string;
|
|
40
44
|
selectedKeys?: string[];
|
|
@@ -44,6 +48,13 @@ export interface EoDirectoryTreeProps {
|
|
|
44
48
|
useBrick: UseBrickConf;
|
|
45
49
|
};
|
|
46
50
|
}
|
|
51
|
+
export interface SuffixBrickConf {
|
|
52
|
+
/**
|
|
53
|
+
* @default "always"
|
|
54
|
+
*/
|
|
55
|
+
when?: "always" | "hover";
|
|
56
|
+
useBrick: UseBrickConf;
|
|
57
|
+
}
|
|
47
58
|
/**
|
|
48
59
|
* 目录树
|
|
49
60
|
*/
|
|
@@ -57,6 +68,10 @@ export declare class EoDirectoryTree extends ReactNextElement {
|
|
|
57
68
|
* 目录标题
|
|
58
69
|
*/
|
|
59
70
|
accessor directoryTitle: string | undefined;
|
|
71
|
+
/**
|
|
72
|
+
* 设置中间节点是否可选,默认只有叶子节点可选
|
|
73
|
+
*/
|
|
74
|
+
accessor internalNodeSelectable: boolean | undefined;
|
|
60
75
|
/**
|
|
61
76
|
* 可搜索
|
|
62
77
|
*/
|
|
@@ -72,9 +87,7 @@ export declare class EoDirectoryTree extends ReactNextElement {
|
|
|
72
87
|
/**
|
|
73
88
|
* 后缀 useBrick
|
|
74
89
|
*/
|
|
75
|
-
accessor suffixBrick:
|
|
76
|
-
useBrick: UseBrickConf;
|
|
77
|
-
} | undefined;
|
|
90
|
+
accessor suffixBrick: SuffixBrickConf | undefined;
|
|
78
91
|
/**
|
|
79
92
|
* 选中的 keys
|
|
80
93
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-bricks/nav",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.16.0",
|
|
4
4
|
"homepage": "https://github.com/easyops-cn/next-bricks/tree/master/bricks/nav",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -43,5 +43,5 @@
|
|
|
43
43
|
"@next-bricks/form": "*",
|
|
44
44
|
"@next-bricks/icons": "*"
|
|
45
45
|
},
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "8ff6618ec5c860723d6d6f6614f29dda569e32e8"
|
|
47
47
|
}
|