vxe-pc-ui 4.16.9 → 4.16.11
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/all.esm.js +284 -147
- package/dist/style.css +1 -1
- package/dist/style.min.css +1 -1
- package/es/checkbox/style.css +1 -0
- package/es/checkbox/style.min.css +1 -1
- package/es/icon/{iconfont.1783939831164.ttf → iconfont.1784122303243.ttf} +0 -0
- package/es/icon/iconfont.1784122303243.woff +0 -0
- package/es/icon/iconfont.1784122303243.woff2 +0 -0
- package/es/icon/style.css +33 -2
- package/es/icon/style.min.css +1 -1
- package/{lib/icon/style/iconfont.1783939831164.ttf → es/iconfont.1784122303243.ttf} +0 -0
- package/es/iconfont.1784122303243.woff +0 -0
- package/es/iconfont.1784122303243.woff2 +0 -0
- package/es/language/en-US.js +3 -3
- package/es/language/hy-AM.js +3 -3
- package/es/language/zh-CN.js +3 -3
- package/es/layout-aside/src/layout-aside.js +13 -20
- package/es/layout-aside/style.css +1 -3
- package/es/layout-aside/style.min.css +1 -1
- package/es/menu/src/menu.js +265 -121
- package/es/menu/style.css +51 -3
- package/es/menu/style.min.css +1 -1
- package/es/modal/src/modal.js +2 -2
- package/es/radio/style.css +1 -0
- package/es/radio/style.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/tree-select/src/tree-select.js +1 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-checkbox/style.css +1 -0
- package/es/vxe-checkbox/style.min.css +1 -1
- package/es/vxe-icon/style.css +33 -2
- package/es/vxe-icon/style.min.css +1 -1
- package/es/vxe-layout-aside/style.css +1 -3
- package/es/vxe-layout-aside/style.min.css +1 -1
- package/es/vxe-menu/style.css +51 -3
- package/es/vxe-menu/style.min.css +1 -1
- package/es/vxe-radio/style.css +1 -0
- package/es/vxe-radio/style.min.css +1 -1
- package/lib/checkbox/style/style.css +1 -0
- package/lib/checkbox/style/style.min.css +1 -1
- package/lib/{iconfont.1783939831164.ttf → icon/style/iconfont.1784122303243.ttf} +0 -0
- package/lib/icon/style/iconfont.1784122303243.woff +0 -0
- package/lib/icon/style/iconfont.1784122303243.woff2 +0 -0
- package/lib/icon/style/style.css +33 -2
- package/lib/icon/style/style.min.css +33 -2
- package/{es/iconfont.1783939831164.ttf → lib/iconfont.1784122303243.ttf} +0 -0
- package/lib/iconfont.1784122303243.woff +0 -0
- package/lib/iconfont.1784122303243.woff2 +0 -0
- package/lib/index.umd.js +302 -136
- package/lib/index.umd.min.js +1 -1
- package/lib/language/en-US.js +3 -3
- package/lib/language/en-US.min.js +1 -1
- package/lib/language/en-US.umd.js +3 -3
- package/lib/language/hy-AM.js +3 -3
- package/lib/language/hy-AM.min.js +1 -1
- package/lib/language/hy-AM.umd.js +3 -3
- package/lib/language/zh-CN.js +3 -3
- package/lib/language/zh-CN.min.js +1 -1
- package/lib/language/zh-CN.umd.js +3 -3
- package/lib/layout-aside/src/layout-aside.js +12 -18
- package/lib/layout-aside/src/layout-aside.min.js +1 -1
- package/lib/layout-aside/style/style.css +1 -3
- package/lib/layout-aside/style/style.min.css +1 -1
- package/lib/menu/src/menu.js +283 -116
- package/lib/menu/src/menu.min.js +1 -1
- package/lib/menu/style/style.css +51 -3
- package/lib/menu/style/style.min.css +1 -1
- package/lib/modal/src/modal.js +2 -2
- package/lib/modal/src/modal.min.js +1 -1
- package/lib/radio/style/style.css +1 -0
- package/lib/radio/style/style.min.css +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/tree-select/src/tree-select.js +1 -1
- package/lib/tree-select/src/tree-select.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-checkbox/style/style.css +1 -0
- package/lib/vxe-checkbox/style/style.min.css +1 -1
- package/lib/vxe-icon/style/style.css +33 -2
- package/lib/vxe-icon/style/style.min.css +1 -1
- package/lib/vxe-layout-aside/style/style.css +1 -3
- package/lib/vxe-layout-aside/style/style.min.css +1 -1
- package/lib/vxe-menu/style/style.css +51 -3
- package/lib/vxe-menu/style/style.min.css +1 -1
- package/lib/vxe-radio/style/style.css +1 -0
- package/lib/vxe-radio/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/language/en-US.ts +3 -3
- package/packages/language/hy-AM.ts +3 -3
- package/packages/language/zh-CN.ts +3 -3
- package/packages/layout-aside/src/layout-aside.ts +15 -21
- package/packages/menu/src/menu.ts +302 -132
- package/packages/modal/src/modal.ts +3 -3
- package/packages/tree-select/src/tree-select.ts +1 -1
- package/styles/components/checkbox.scss +1 -0
- package/styles/components/icon.scss +33 -4
- package/styles/components/layout-aside.scss +1 -3
- package/styles/components/menu.scss +64 -1
- package/styles/components/radio.scss +1 -0
- package/styles/icon/iconfont.ttf +0 -0
- package/styles/icon/iconfont.woff +0 -0
- package/styles/icon/iconfont.woff2 +0 -0
- package/styles/theme/base.scss +1 -1
- package/styles/theme/dark.scss +1 -0
- package/styles/theme/light.scss +1 -0
- package/styles/variable.scss +2 -1
- package/types/components/icon.d.ts +1 -1
- package/types/components/layout-aside.d.ts +5 -4
- package/types/components/menu.d.ts +65 -17
- package/types/components/modal.d.ts +2 -2
- package/types/components/table.d.ts +11 -11
- package/types/components/toolbar.d.ts +1 -1
- package/es/icon/iconfont.1783939831164.woff +0 -0
- package/es/icon/iconfont.1783939831164.woff2 +0 -0
- package/es/iconfont.1783939831164.woff +0 -0
- package/es/iconfont.1783939831164.woff2 +0 -0
- package/lib/icon/style/iconfont.1783939831164.woff +0 -0
- package/lib/icon/style/iconfont.1783939831164.woff2 +0 -0
- package/lib/iconfont.1783939831164.woff +0 -0
- package/lib/iconfont.1783939831164.woff2 +0 -0
|
@@ -29,12 +29,25 @@ export namespace VxeMenuPropTypes {
|
|
|
29
29
|
export type ModelValue = string | number | null
|
|
30
30
|
export type Size = VxeComponentSizeType
|
|
31
31
|
export type Loading = boolean
|
|
32
|
+
export type Border = boolean | 'first' | 'first-group' | 'group' | 'all'
|
|
32
33
|
export type Accordion = boolean
|
|
34
|
+
export interface OptionProps {
|
|
35
|
+
name?: string
|
|
36
|
+
title?: string
|
|
37
|
+
icon?: string
|
|
38
|
+
children?: string
|
|
39
|
+
linkUrl?: string
|
|
40
|
+
linkTarget?: string
|
|
41
|
+
routerLink?: string
|
|
42
|
+
routerTarget?: string
|
|
43
|
+
}
|
|
33
44
|
|
|
34
45
|
export interface MenuOption {
|
|
35
46
|
name?: VxeMenuPropTypes.ModelValue
|
|
36
47
|
title?: string | number
|
|
37
48
|
icon?: string
|
|
49
|
+
linkUrl?: string
|
|
50
|
+
linkTarget?: VxeLinkPropTypes.Target
|
|
38
51
|
routerLink?: VxeLinkPropTypes.RouterLink
|
|
39
52
|
expanded?: boolean
|
|
40
53
|
permissionCode?: VxeComponentPermissionCodeType
|
|
@@ -44,11 +57,14 @@ export namespace VxeMenuPropTypes {
|
|
|
44
57
|
title?: string | ((params: VxeMenuSlotTypes.TitleSlotParams) => VxeComponentSlotType | VxeComponentSlotType[]) | null
|
|
45
58
|
default?: string | ((params: VxeMenuSlotTypes.TitleSlotParams) => VxeComponentSlotType | VxeComponentSlotType[]) | null
|
|
46
59
|
}
|
|
60
|
+
|
|
61
|
+
[key: string]: any
|
|
47
62
|
}
|
|
48
63
|
|
|
49
64
|
export type Collapsed = boolean
|
|
50
65
|
export type CollapseFixed = boolean
|
|
51
66
|
export type ExpandAll = boolean
|
|
67
|
+
export type ExpandKeys = (string | number)[]
|
|
52
68
|
export type Options = MenuOption[]
|
|
53
69
|
export interface MenuConfig {
|
|
54
70
|
/**
|
|
@@ -66,6 +82,7 @@ export namespace VxeMenuPropTypes {
|
|
|
66
82
|
$menu: VxeMenuConstructor
|
|
67
83
|
options: VxeContextMenuPropTypes.Options
|
|
68
84
|
currentMenu: VxeMenuDefines.MenuItem
|
|
85
|
+
currentOption: VxeMenuPropTypes.MenuOption
|
|
69
86
|
}): boolean
|
|
70
87
|
}
|
|
71
88
|
}
|
|
@@ -74,10 +91,19 @@ export interface VxeMenuProps {
|
|
|
74
91
|
modelValue?: VxeMenuPropTypes.ModelValue
|
|
75
92
|
size?: VxeMenuPropTypes.Size
|
|
76
93
|
loading?: VxeMenuPropTypes.Loading
|
|
94
|
+
border?: VxeMenuPropTypes.Border
|
|
77
95
|
accordion?: VxeMenuPropTypes.Accordion
|
|
96
|
+
optionProps?: VxeMenuPropTypes.OptionProps
|
|
78
97
|
collapsed?: VxeMenuPropTypes.Collapsed
|
|
79
|
-
|
|
98
|
+
collapseFixed?: VxeMenuPropTypes.CollapseFixed
|
|
99
|
+
/**
|
|
100
|
+
* 默认展开所有菜单项(只会在初始化时被触发一次)
|
|
101
|
+
*/
|
|
80
102
|
expandAll?: VxeMenuPropTypes.ExpandAll
|
|
103
|
+
/**
|
|
104
|
+
* 默认展开指定菜单项(只会在初始化时被触发一次)
|
|
105
|
+
*/
|
|
106
|
+
expandKeys?: VxeMenuPropTypes.ExpandKeys
|
|
81
107
|
options?: VxeMenuPropTypes.Options
|
|
82
108
|
menuConfig?: VxeMenuPropTypes.MenuConfig
|
|
83
109
|
}
|
|
@@ -87,6 +113,10 @@ export interface MenuPrivateComputed {
|
|
|
87
113
|
export interface VxeMenuPrivateComputed extends MenuPrivateComputed { }
|
|
88
114
|
|
|
89
115
|
export interface MenuInternalData {
|
|
116
|
+
lastActiveTime: number
|
|
117
|
+
menuInitMaps: Record<number, boolean>
|
|
118
|
+
menuCacheMaps: Record<string, VxeMenuDefines.MenuItem>
|
|
119
|
+
menuKeyMaps: Record<string, VxeMenuDefines.MenuItem>
|
|
90
120
|
menuEffectMaps: Record<number, number>
|
|
91
121
|
}
|
|
92
122
|
|
|
@@ -102,8 +132,24 @@ export interface MenuReactData {
|
|
|
102
132
|
|
|
103
133
|
export interface MenuMethods {
|
|
104
134
|
dispatchEvent(type: ValueOf<VxeMenuEmits>, params: Record<string, any>, evnt: Event | null): void
|
|
135
|
+
/**
|
|
136
|
+
* 设置指定菜单 key 为展开状态,第二个参数为选中与否
|
|
137
|
+
*/
|
|
138
|
+
setExpandByMenuKey(menuKeys: string | number | (string | number)[], expanded: boolean): Promise<any>
|
|
139
|
+
/**
|
|
140
|
+
* 手动清除所有菜单的展开状态
|
|
141
|
+
*/
|
|
142
|
+
clearAllExpandMenu(): Promise<any>
|
|
143
|
+
/**
|
|
144
|
+
* 自动滚动到指定菜单
|
|
145
|
+
*/
|
|
146
|
+
scrollToMenuKey(menuKey: string | number): Promise<any>
|
|
147
|
+
/**
|
|
148
|
+
* 自动滚动到旋转的菜单
|
|
149
|
+
*/
|
|
150
|
+
scrollToActiveMenu(): Promise<any>
|
|
105
151
|
}
|
|
106
|
-
export interface VxeMenuMethods extends MenuMethods {
|
|
152
|
+
export interface VxeMenuMethods extends MenuMethods {}
|
|
107
153
|
|
|
108
154
|
export interface MenuPrivateMethods { }
|
|
109
155
|
export interface VxeMenuPrivateMethods extends MenuPrivateMethods { }
|
|
@@ -121,6 +167,7 @@ export namespace VxeMenuDefines {
|
|
|
121
167
|
}
|
|
122
168
|
|
|
123
169
|
export interface MenuItem extends VxeMenuPropTypes.MenuOption {
|
|
170
|
+
itemConf: VxeMenuPropTypes.MenuOption
|
|
124
171
|
itemId: number
|
|
125
172
|
itemKey: string | number
|
|
126
173
|
level: number,
|
|
@@ -130,26 +177,23 @@ export namespace VxeMenuDefines {
|
|
|
130
177
|
isExpand: boolean
|
|
131
178
|
hasChild: boolean
|
|
132
179
|
childList: MenuItem[]
|
|
133
|
-
allChildSize: number
|
|
134
|
-
childHeight: number
|
|
135
180
|
}
|
|
136
181
|
|
|
137
182
|
export interface ClickParams {
|
|
138
183
|
currentMenu: VxeMenuDefines.MenuItem
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
* 已废弃,请使用 currentMenu
|
|
142
|
-
* @deprecated
|
|
143
|
-
*/
|
|
144
|
-
menu: VxeMenuDefines.MenuItem
|
|
184
|
+
currentOption: VxeMenuPropTypes.MenuOption
|
|
185
|
+
option: VxeMenuPropTypes.MenuOption
|
|
145
186
|
}
|
|
146
187
|
export interface ClickEventParams extends MenuEventParams, ClickParams { }
|
|
147
188
|
|
|
148
189
|
export interface OptionMenuEventParams extends MenuEventParams {
|
|
149
190
|
currentMenu: VxeMenuDefines.MenuItem
|
|
191
|
+
currentOption: VxeMenuPropTypes.MenuOption
|
|
192
|
+
option: VxeMenuPropTypes.MenuOption
|
|
150
193
|
}
|
|
151
194
|
export interface MenuClickEventParams extends MenuEventParams {
|
|
152
195
|
currentMenu: VxeMenuDefines.MenuItem
|
|
196
|
+
currentOption: VxeMenuPropTypes.MenuOption
|
|
153
197
|
menu: VxeContextMenuDefines.MenuFirstOption | VxeContextMenuDefines.MenuChildOption
|
|
154
198
|
}
|
|
155
199
|
}
|
|
@@ -177,17 +221,18 @@ export namespace VxeMenuEvents {
|
|
|
177
221
|
|
|
178
222
|
export namespace VxeMenuSlotTypes {
|
|
179
223
|
export interface DefaultSlotParams {
|
|
180
|
-
currentMenu:
|
|
224
|
+
currentMenu: VxeMenuDefines.MenuItem
|
|
225
|
+
currentOption: VxeMenuPropTypes.MenuOption
|
|
226
|
+
option: VxeMenuPropTypes.MenuOption
|
|
181
227
|
collapsed: boolean
|
|
182
|
-
|
|
183
|
-
/**
|
|
184
|
-
* 已废弃,请使用 currentMenu
|
|
185
|
-
* @deprecated
|
|
186
|
-
*/
|
|
187
|
-
option: Required<VxeMenuPropTypes.MenuOption>
|
|
188
228
|
}
|
|
189
229
|
export interface IconSlotParams extends DefaultSlotParams {}
|
|
190
230
|
export interface TitleSlotParams extends DefaultSlotParams {}
|
|
231
|
+
|
|
232
|
+
export interface HeaderSlotParams {
|
|
233
|
+
collapsed: boolean
|
|
234
|
+
}
|
|
235
|
+
export interface FooterSlotParams extends HeaderSlotParams {}
|
|
191
236
|
}
|
|
192
237
|
|
|
193
238
|
export interface VxeMenuSlots {
|
|
@@ -211,6 +256,9 @@ export interface VxeMenuSlots {
|
|
|
211
256
|
'option-title'?: (params: VxeMenuSlotTypes.TitleSlotParams) => any
|
|
212
257
|
|
|
213
258
|
option?: (params: VxeMenuSlotTypes.TitleSlotParams) => any
|
|
259
|
+
|
|
260
|
+
header?: (params: VxeMenuSlotTypes.HeaderSlotParams) => any
|
|
261
|
+
footer?: (params: VxeMenuSlotTypes.FooterSlotParams) => any
|
|
214
262
|
}
|
|
215
263
|
|
|
216
264
|
export const Menu: typeof VxeMenu
|
|
@@ -33,8 +33,8 @@ export type ModalType = 'alert' | 'confirm' | 'message' | 'notification' | 'moda
|
|
|
33
33
|
export type ModalStatus = 'info' | 'success' | 'warning' | 'question' | 'error' | 'loading'
|
|
34
34
|
|
|
35
35
|
export type ModalPosition = {
|
|
36
|
-
top?: number
|
|
37
|
-
left?: number
|
|
36
|
+
top?: number | string
|
|
37
|
+
left?: number | string
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
/**
|
|
@@ -537,7 +537,7 @@ export namespace VxeTablePropTypes {
|
|
|
537
537
|
*/
|
|
538
538
|
excludeValuesFields?: string[]
|
|
539
539
|
/**
|
|
540
|
-
*
|
|
540
|
+
* 个性化设置聚合数据的计算方法
|
|
541
541
|
*/
|
|
542
542
|
calcValuesMethod?:(params: {
|
|
543
543
|
$table: VxeTableConstructor<D>
|
|
@@ -550,7 +550,7 @@ export namespace VxeTablePropTypes {
|
|
|
550
550
|
aggValue: number
|
|
551
551
|
}) => number
|
|
552
552
|
/**
|
|
553
|
-
*
|
|
553
|
+
* 个性化设置聚合数据的显示值
|
|
554
554
|
*/
|
|
555
555
|
formatValuesMethod?:(params: {
|
|
556
556
|
$table: VxeTableConstructor<D>
|
|
@@ -964,7 +964,7 @@ export namespace VxeTablePropTypes {
|
|
|
964
964
|
}
|
|
965
965
|
|
|
966
966
|
/**
|
|
967
|
-
*
|
|
967
|
+
* 个性化设置配置项
|
|
968
968
|
*/
|
|
969
969
|
export interface CustomConfig<D = VxeTablePropTypes.Row> {
|
|
970
970
|
/**
|
|
@@ -1051,14 +1051,14 @@ export namespace VxeTablePropTypes {
|
|
|
1051
1051
|
immediate?: boolean
|
|
1052
1052
|
placement?: 'left' | 'right' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'
|
|
1053
1053
|
/**
|
|
1054
|
-
*
|
|
1054
|
+
* 个性化设置是否允许列选中的方法,该方法的返回值用来决定这一列的 checkbox 是否可以选中
|
|
1055
1055
|
*/
|
|
1056
1056
|
checkMethod?(params: {
|
|
1057
1057
|
$table: VxeTableConstructor<D>
|
|
1058
1058
|
column: VxeTableDefines.ColumnInfo<D>
|
|
1059
1059
|
}): boolean
|
|
1060
1060
|
/**
|
|
1061
|
-
*
|
|
1061
|
+
* 个性化设置是否的方法,该方法的返回值用来决定这一列是否显示
|
|
1062
1062
|
*/
|
|
1063
1063
|
visibleMethod?(params: {
|
|
1064
1064
|
$table: VxeTableConstructor<D>
|
|
@@ -1132,7 +1132,7 @@ export namespace VxeTablePropTypes {
|
|
|
1132
1132
|
confirmButtonText?: string
|
|
1133
1133
|
|
|
1134
1134
|
/**
|
|
1135
|
-
*
|
|
1135
|
+
* 个性化设置的插槽模板
|
|
1136
1136
|
*/
|
|
1137
1137
|
slots?: {
|
|
1138
1138
|
header?: string | ((params: VxeTableDefines.CustomSlotParams) => VxeComponentSlotType | VxeComponentSlotType[])
|
|
@@ -1312,7 +1312,7 @@ export namespace VxeTablePropTypes {
|
|
|
1312
1312
|
column: VxeTableDefines.ColumnInfo<D>
|
|
1313
1313
|
}): boolean
|
|
1314
1314
|
/**
|
|
1315
|
-
*
|
|
1315
|
+
* 自定义列头升序按钮的 title 提示语
|
|
1316
1316
|
*/
|
|
1317
1317
|
ascTitle?: string | number
|
|
1318
1318
|
/**
|
|
@@ -3884,7 +3884,7 @@ export interface TableReactData<D = any> {
|
|
|
3884
3884
|
export: boolean
|
|
3885
3885
|
custom: boolean
|
|
3886
3886
|
}
|
|
3887
|
-
//
|
|
3887
|
+
// 个性化设置相关的信息
|
|
3888
3888
|
customStore: VxeTableDefines.VxeTableCustomStoreObj
|
|
3889
3889
|
customColumnList: VxeTableDefines.ColumnInfo<D>[]
|
|
3890
3890
|
// 当前选中的筛选列
|
|
@@ -5273,11 +5273,11 @@ export interface TableMethods<DT = any> {
|
|
|
5273
5273
|
*/
|
|
5274
5274
|
blur(): Promise<void>
|
|
5275
5275
|
/**
|
|
5276
|
-
* 用于 custom-config
|
|
5276
|
+
* 用于 custom-config,用于手动恢复个性化设置,恢复为初始状态
|
|
5277
5277
|
*/
|
|
5278
5278
|
setCustomStoreData(storeData: VxeTableDefines.CustomStoreData | null): Promise<void>
|
|
5279
5279
|
/**
|
|
5280
|
-
* 用于 custom-config
|
|
5280
|
+
* 用于 custom-config,用于获取个性化设置,用于自定义保持
|
|
5281
5281
|
*/
|
|
5282
5282
|
getCustomStoreData(): VxeTableDefines.CustomStoreData
|
|
5283
5283
|
}
|
|
@@ -7421,7 +7421,7 @@ export interface VxeTableListeners<D = any> {
|
|
|
7421
7421
|
scroll?: VxeTableEvents.Scroll<D>
|
|
7422
7422
|
scrollBoundary?: VxeTableEvents.ScrollBoundary<D>
|
|
7423
7423
|
/**
|
|
7424
|
-
*
|
|
7424
|
+
* 如果与工具栏关联,在个性化设置按钮被手动点击后会触发该事件
|
|
7425
7425
|
*/
|
|
7426
7426
|
custom?: VxeTableEvents.Custom<D>
|
|
7427
7427
|
customOpen?: VxeTableEvents.CustomOpen<D>
|
|
@@ -221,7 +221,7 @@ export type VxeToolbarProps = {
|
|
|
221
221
|
zoom?: VxeToolbarPropTypes.Zoom
|
|
222
222
|
zoomOptions?: VxeToolbarPropTypes.ZoomOptions
|
|
223
223
|
/**
|
|
224
|
-
*
|
|
224
|
+
* 个性化设置配置
|
|
225
225
|
*/
|
|
226
226
|
custom?: VxeToolbarPropTypes.Custom
|
|
227
227
|
customOptions?: VxeToolbarPropTypes.CustomOptions
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|