@uzum-tech/ui 1.12.17 → 1.12.18
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/index.js +88 -21
- package/dist/index.prod.js +3 -3
- package/es/data-table/src/DataTable.d.ts +2 -0
- package/es/data-table/src/DataTable.js +1 -0
- package/es/data-table/src/TableParts/Body.d.ts +1 -0
- package/es/data-table/src/TableParts/Body.js +3 -2
- package/es/data-table/src/TableParts/Cell.d.ts +2 -0
- package/es/data-table/src/TableParts/Cell.js +62 -9
- package/es/data-table/src/interface.d.ts +2 -0
- package/es/data-table/src/interface.js +1 -1
- package/es/header/src/Header.d.ts +12 -3
- package/es/header/src/Header.js +21 -5
- package/es/header/src/HeaderNavigation.d.ts +3 -1
- package/es/header/src/HeaderNavigation.js +6 -4
- package/es/header/src/interface.d.ts +1 -0
- package/es/header/src/utils.d.ts +1 -1
- package/es/header/src/utils.js +1 -1
- package/es/version.d.ts +1 -1
- package/es/version.js +1 -1
- package/lib/data-table/src/DataTable.d.ts +2 -0
- package/lib/data-table/src/DataTable.js +1 -0
- package/lib/data-table/src/TableParts/Body.d.ts +1 -0
- package/lib/data-table/src/TableParts/Body.js +3 -2
- package/lib/data-table/src/TableParts/Cell.d.ts +2 -0
- package/lib/data-table/src/TableParts/Cell.js +62 -9
- package/lib/data-table/src/interface.d.ts +2 -0
- package/lib/data-table/src/interface.js +1 -1
- package/lib/header/src/Header.d.ts +12 -3
- package/lib/header/src/Header.js +21 -5
- package/lib/header/src/HeaderNavigation.d.ts +3 -1
- package/lib/header/src/HeaderNavigation.js +6 -4
- package/lib/header/src/interface.d.ts +1 -0
- package/lib/header/src/utils.d.ts +1 -1
- package/lib/header/src/utils.js +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +1 -1
- package/volar.d.ts +22 -22
- package/web-types.json +31 -2
- package/README.md +0 -73
|
@@ -30,7 +30,8 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
30
30
|
type: Object,
|
|
31
31
|
required: true
|
|
32
32
|
},
|
|
33
|
-
renderCell: Function
|
|
33
|
+
renderCell: Function,
|
|
34
|
+
defaultEmptyValue: [String, Function]
|
|
34
35
|
},
|
|
35
36
|
render() {
|
|
36
37
|
var _a;
|
|
@@ -43,12 +44,28 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
43
44
|
const isEditable = typeof editable === 'function' ? editable(row) : editable;
|
|
44
45
|
if (render && !isSummary) {
|
|
45
46
|
let cellValue = render(row, this.index);
|
|
46
|
-
if (
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
if (cellValue == null || cellValue === false) {
|
|
48
|
+
const { defaultEmptyValue } = this;
|
|
49
|
+
if (defaultEmptyValue !== undefined) {
|
|
50
|
+
if (typeof defaultEmptyValue === 'function') {
|
|
51
|
+
cell = defaultEmptyValue();
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
cell = defaultEmptyValue;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
cell = '';
|
|
49
59
|
}
|
|
50
60
|
}
|
|
51
|
-
|
|
61
|
+
else {
|
|
62
|
+
if (mask && cellValue !== null && cellValue !== undefined) {
|
|
63
|
+
if (typeof cellValue === 'string' || typeof cellValue === 'number') {
|
|
64
|
+
cellValue = (0, use_mask_1.processMaskedValue)(cellValue, mask);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
cell = cellValue;
|
|
68
|
+
}
|
|
52
69
|
}
|
|
53
70
|
else if (isEditable && !isSummary) {
|
|
54
71
|
const { placeholder } = column;
|
|
@@ -162,7 +179,25 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
162
179
|
if (mask && cellValue !== null && cellValue !== undefined) {
|
|
163
180
|
cellValue = (0, use_mask_1.processMaskedValue)(String(cellValue), mask);
|
|
164
181
|
}
|
|
165
|
-
|
|
182
|
+
if (cellValue === null ||
|
|
183
|
+
cellValue === undefined ||
|
|
184
|
+
cellValue === false) {
|
|
185
|
+
const { defaultEmptyValue } = this;
|
|
186
|
+
if (defaultEmptyValue !== undefined) {
|
|
187
|
+
if (typeof defaultEmptyValue === 'function') {
|
|
188
|
+
cell = defaultEmptyValue();
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
cell = defaultEmptyValue;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
cell = '';
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
cell = String(cellValue);
|
|
200
|
+
}
|
|
166
201
|
}
|
|
167
202
|
else {
|
|
168
203
|
let cellValue = renderCell
|
|
@@ -172,10 +207,28 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
172
207
|
cell = cellValue;
|
|
173
208
|
}
|
|
174
209
|
else {
|
|
175
|
-
if (
|
|
176
|
-
cellValue
|
|
210
|
+
if (cellValue === null ||
|
|
211
|
+
cellValue === undefined ||
|
|
212
|
+
cellValue === false) {
|
|
213
|
+
const { defaultEmptyValue } = this;
|
|
214
|
+
if (defaultEmptyValue !== undefined) {
|
|
215
|
+
if (typeof defaultEmptyValue === 'function') {
|
|
216
|
+
cell = defaultEmptyValue();
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
cell = defaultEmptyValue;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
cell = '';
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
if (mask && cellValue !== null && cellValue !== undefined) {
|
|
228
|
+
cellValue = (0, use_mask_1.processMaskedValue)(cellValue, mask);
|
|
229
|
+
}
|
|
230
|
+
cell = String(cellValue);
|
|
177
231
|
}
|
|
178
|
-
cell = String(cellValue);
|
|
179
232
|
}
|
|
180
233
|
}
|
|
181
234
|
}
|
|
@@ -97,6 +97,7 @@ export declare const dataTableProps: {
|
|
|
97
97
|
};
|
|
98
98
|
readonly scrollbarProps: PropType<ScrollbarProps>;
|
|
99
99
|
readonly renderCell: PropType<(value: any, rowData: object, column: TableBaseColumn) => VNodeChild>;
|
|
100
|
+
readonly defaultEmptyValue: PropType<string | (() => VNodeChild) | undefined>;
|
|
100
101
|
readonly renderExpandIcon: PropType<RenderExpandIcon>;
|
|
101
102
|
readonly spinProps: {
|
|
102
103
|
readonly type: PropType<BaseLoadingExposedProps>;
|
|
@@ -3175,6 +3176,7 @@ export interface DataTableInjection {
|
|
|
3175
3176
|
syncScrollState: (deltaX?: number, deltaY?: number) => void;
|
|
3176
3177
|
setHeaderScrollLeft: (scrollLeft: number) => void;
|
|
3177
3178
|
renderCell: Ref<undefined | ((value: any, rowData: object, column: TableBaseColumn) => VNodeChild)>;
|
|
3179
|
+
defaultEmptyValueRef: Ref<string | (() => VNodeChild) | undefined>;
|
|
3178
3180
|
emptyPropsRef: Ref<Partial<EmptyProps> | undefined>;
|
|
3179
3181
|
handleEdit: (value: any, row: any, key: string) => void;
|
|
3180
3182
|
}
|
|
@@ -53,7 +53,7 @@ exports.dataTableProps = Object.assign(Object.assign({}, _mixins_1.useTheme.prop
|
|
|
53
53
|
}, paginationBehaviorOnFilter: {
|
|
54
54
|
type: String,
|
|
55
55
|
default: 'current'
|
|
56
|
-
}, scrollbarProps: Object, renderCell: Function, renderExpandIcon: Function, spinProps: { type: Object, default: {} }, emptyProps: Object, onLoad: Function, 'onUpdate:page': [Function, Array], onUpdatePage: [Function, Array], 'onUpdate:pageSize': [Function, Array], onUpdatePageSize: [Function, Array], 'onUpdate:sorter': [Function, Array], onUpdateSorter: [Function, Array], 'onUpdate:filters': [Function, Array], onUpdateFilters: [Function, Array], 'onUpdate:checkedRowKeys': [Function, Array], onUpdateCheckedRowKeys: [Function, Array], 'onUpdate:expandedRowKeys': [Function, Array], onUpdateExpandedRowKeys: [Function, Array], onScroll: Function,
|
|
56
|
+
}, scrollbarProps: Object, renderCell: Function, defaultEmptyValue: [String, Function], renderExpandIcon: Function, spinProps: { type: Object, default: {} }, emptyProps: Object, onLoad: Function, 'onUpdate:page': [Function, Array], onUpdatePage: [Function, Array], 'onUpdate:pageSize': [Function, Array], onUpdatePageSize: [Function, Array], 'onUpdate:sorter': [Function, Array], onUpdateSorter: [Function, Array], 'onUpdate:filters': [Function, Array], onUpdateFilters: [Function, Array], 'onUpdate:checkedRowKeys': [Function, Array], onUpdateCheckedRowKeys: [Function, Array], 'onUpdate:expandedRowKeys': [Function, Array], onUpdateExpandedRowKeys: [Function, Array], onScroll: Function,
|
|
57
57
|
// deprecated
|
|
58
58
|
onPageChange: [Function, Array], onPageSizeChange: [Function, Array], onSorterChange: [Function, Array], onFiltersChange: [Function, Array], onCheckedRowKeysChange: [Function, Array] });
|
|
59
59
|
exports.dataTableInjectionKey = (0, _utils_1.createInjectionKey)('u-data-table');
|
|
@@ -81,6 +81,8 @@ export declare const headerProps: {
|
|
|
81
81
|
onSearch: PropType<HeaderPropsInterface["onSearch"]>;
|
|
82
82
|
'onUpdate:menuValue': PropType<MaybeArray<(value: string | number | null) => void>>;
|
|
83
83
|
onUpdateMenuValue: PropType<MaybeArray<HeaderPropsInterface["onUpdateMenuValue"]>>;
|
|
84
|
+
'onUpdate:activeMenuKey': PropType<MaybeArray<(value: string | number | null) => void>>;
|
|
85
|
+
onUpdateActiveMenuKey: PropType<MaybeArray<(value: string | number | null) => void>>;
|
|
84
86
|
theme: PropType<import("../../_mixins").Theme<"Header", {
|
|
85
87
|
fontSize: string;
|
|
86
88
|
fontBodyLarge: string;
|
|
@@ -262,6 +264,8 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
262
264
|
onSearch: PropType<HeaderPropsInterface["onSearch"]>;
|
|
263
265
|
'onUpdate:menuValue': PropType<MaybeArray<(value: string | number | null) => void>>;
|
|
264
266
|
onUpdateMenuValue: PropType<MaybeArray<HeaderPropsInterface["onUpdateMenuValue"]>>;
|
|
267
|
+
'onUpdate:activeMenuKey': PropType<MaybeArray<(value: string | number | null) => void>>;
|
|
268
|
+
onUpdateActiveMenuKey: PropType<MaybeArray<(value: string | number | null) => void>>;
|
|
265
269
|
theme: PropType<import("../../_mixins").Theme<"Header", {
|
|
266
270
|
fontSize: string;
|
|
267
271
|
fontBodyLarge: string;
|
|
@@ -413,6 +417,9 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
413
417
|
isMobile: import("vue").Ref<boolean | undefined>;
|
|
414
418
|
mobileMenuVisible: import("vue").Ref<boolean>;
|
|
415
419
|
searchVisible: import("vue").Ref<boolean>;
|
|
420
|
+
menuPaneClass: ComputedRef<string>;
|
|
421
|
+
menuPaneWrapperClass: ComputedRef<string>;
|
|
422
|
+
mergedActiveMenuKey: ComputedRef<string | number | null>;
|
|
416
423
|
handleSelectLang: (key: string | number) => void;
|
|
417
424
|
handleMenuValueUpdate: (value: string | number | null) => void;
|
|
418
425
|
handleSearchClick: () => void;
|
|
@@ -427,10 +434,9 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
427
434
|
handleMobileMenuItemClick: (option: HeaderMenuOption) => void;
|
|
428
435
|
handleMobilePrimaryAction: () => void;
|
|
429
436
|
handleMobileSecondaryAction: () => void;
|
|
430
|
-
|
|
431
|
-
menuPaneWrapperClass: ComputedRef<string>;
|
|
437
|
+
handleUpdateActiveMenuKey: (value: string | number | null) => void;
|
|
432
438
|
onRender: () => void;
|
|
433
|
-
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ["search", "search-result-select", "preview", "logout", "language-select", "logo-click", "mobile-primary-action", "mobile-secondary-action"], "search" | "logout" | "preview" | "search-result-select" | "language-select" | "logo-click" | "mobile-primary-action" | "mobile-secondary-action", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
|
|
439
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ["search", "search-result-select", "preview", "logout", "language-select", "logo-click", "mobile-primary-action", "mobile-secondary-action", "update:activeMenuKey"], "search" | "logout" | "preview" | "search-result-select" | "language-select" | "logo-click" | "mobile-primary-action" | "mobile-secondary-action" | "update:activeMenuKey", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
|
|
434
440
|
menuOptions: {
|
|
435
441
|
type: PropType<HeaderPropsInterface["menuOptions"]>;
|
|
436
442
|
default: () => never[];
|
|
@@ -508,6 +514,8 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
508
514
|
onSearch: PropType<HeaderPropsInterface["onSearch"]>;
|
|
509
515
|
'onUpdate:menuValue': PropType<MaybeArray<(value: string | number | null) => void>>;
|
|
510
516
|
onUpdateMenuValue: PropType<MaybeArray<HeaderPropsInterface["onUpdateMenuValue"]>>;
|
|
517
|
+
'onUpdate:activeMenuKey': PropType<MaybeArray<(value: string | number | null) => void>>;
|
|
518
|
+
onUpdateActiveMenuKey: PropType<MaybeArray<(value: string | number | null) => void>>;
|
|
511
519
|
theme: PropType<import("../../_mixins").Theme<"Header", {
|
|
512
520
|
fontSize: string;
|
|
513
521
|
fontBodyLarge: string;
|
|
@@ -613,6 +621,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
613
621
|
}>> & {
|
|
614
622
|
onSearch?: ((...args: any[]) => any) | undefined;
|
|
615
623
|
onPreview?: ((...args: any[]) => any) | undefined;
|
|
624
|
+
"onUpdate:activeMenuKey"?: ((...args: any[]) => any) | undefined;
|
|
616
625
|
onLogout?: ((...args: any[]) => any) | undefined;
|
|
617
626
|
"onSearch-result-select"?: ((...args: any[]) => any) | undefined;
|
|
618
627
|
"onLanguage-select"?: ((...args: any[]) => any) | undefined;
|
package/lib/header/src/Header.js
CHANGED
|
@@ -123,7 +123,7 @@ exports.headerProps = Object.assign(Object.assign({}, _mixins_1.useTheme.props),
|
|
|
123
123
|
}, mobileShowHeaderActions: {
|
|
124
124
|
type: Boolean,
|
|
125
125
|
default: true
|
|
126
|
-
}, onSearch: Function, 'onUpdate:menuValue': [Function, Array], onUpdateMenuValue: [Function, Array] });
|
|
126
|
+
}, onSearch: Function, 'onUpdate:menuValue': [Function, Array], onUpdateMenuValue: [Function, Array], 'onUpdate:activeMenuKey': [Function, Array], onUpdateActiveMenuKey: [Function, Array] });
|
|
127
127
|
exports.default = (0, vue_1.defineComponent)({
|
|
128
128
|
name: 'Header',
|
|
129
129
|
props: exports.headerProps,
|
|
@@ -135,7 +135,8 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
135
135
|
'language-select',
|
|
136
136
|
'logo-click',
|
|
137
137
|
'mobile-primary-action',
|
|
138
|
-
'mobile-secondary-action'
|
|
138
|
+
'mobile-secondary-action',
|
|
139
|
+
'update:activeMenuKey'
|
|
139
140
|
],
|
|
140
141
|
setup(props, { emit }) {
|
|
141
142
|
var _a, _b;
|
|
@@ -144,6 +145,9 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
144
145
|
const isMobileRef = (0, vue_1.toRef)(props, 'isMobile');
|
|
145
146
|
const mobileMenuVisibleRef = (0, vue_1.ref)(false);
|
|
146
147
|
const searchVisibleRef = (0, vue_1.ref)(false);
|
|
148
|
+
const controlledActiveMenuKeyRef = (0, vue_1.toRef)(props, 'activeMenuKey');
|
|
149
|
+
const uncontrolledActiveMenuKeyRef = (0, vue_1.ref)(null);
|
|
150
|
+
const mergedActiveMenuKeyRef = (0, vooks_1.useMergedState)(controlledActiveMenuKeyRef, uncontrolledActiveMenuKeyRef);
|
|
147
151
|
(0, vue_1.onBeforeMount)(() => {
|
|
148
152
|
index_cssr_1.headerMobileMenuStyle.mount({
|
|
149
153
|
id: `${mergedClsPrefixRef.value}-header-mobile-menu`,
|
|
@@ -283,6 +287,16 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
283
287
|
function handleLogoClick() {
|
|
284
288
|
emit('logo-click');
|
|
285
289
|
}
|
|
290
|
+
function handleUpdateActiveMenuKey(value) {
|
|
291
|
+
uncontrolledActiveMenuKeyRef.value = value;
|
|
292
|
+
emit('update:activeMenuKey', value);
|
|
293
|
+
const { onUpdateActiveMenuKey } = props;
|
|
294
|
+
const { 'onUpdate:activeMenuKey': _onUpdateActiveMenuKey } = props;
|
|
295
|
+
if (onUpdateActiveMenuKey)
|
|
296
|
+
(0, _utils_1.call)(onUpdateActiveMenuKey, value);
|
|
297
|
+
if (_onUpdateActiveMenuKey)
|
|
298
|
+
(0, _utils_1.call)(_onUpdateActiveMenuKey, value);
|
|
299
|
+
}
|
|
286
300
|
return {
|
|
287
301
|
mergedClsPrefix: mergedClsPrefixRef,
|
|
288
302
|
cssVars: cssVarsRef,
|
|
@@ -293,6 +307,9 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
293
307
|
isMobile: isMobileRef,
|
|
294
308
|
mobileMenuVisible: mobileMenuVisibleRef,
|
|
295
309
|
searchVisible: searchVisibleRef,
|
|
310
|
+
menuPaneClass,
|
|
311
|
+
menuPaneWrapperClass,
|
|
312
|
+
mergedActiveMenuKey: mergedActiveMenuKeyRef,
|
|
296
313
|
handleSelectLang,
|
|
297
314
|
handleMenuValueUpdate,
|
|
298
315
|
handleSearchClick,
|
|
@@ -307,8 +324,7 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
307
324
|
handleMobileMenuItemClick,
|
|
308
325
|
handleMobilePrimaryAction,
|
|
309
326
|
handleMobileSecondaryAction,
|
|
310
|
-
|
|
311
|
-
menuPaneWrapperClass,
|
|
327
|
+
handleUpdateActiveMenuKey,
|
|
312
328
|
onRender: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.onRender
|
|
313
329
|
};
|
|
314
330
|
},
|
|
@@ -325,7 +341,7 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
325
341
|
this.logoSrc && `${blockClass}__logo--clickable`
|
|
326
342
|
].filter(Boolean), onClick: this.handleLogoClick },
|
|
327
343
|
(0, vue_1.h)("img", { src: this.logoSrc, alt: this.logoAlt })));
|
|
328
|
-
const navigationNode = (0, _utils_1.resolveWrappedSlot)($slots.navigation, (children) => children !== null && children !== void 0 ? children : null) || ((0, vue_1.h)(HeaderNavigation_1.default, { menuOptions: this.menuOptions, menuPlacement: this.menuPlacement, menuTrigger: this.menuTrigger, menuValue: this.mergedMenuValue, menuTabsProps: this.menuTabsProps, menuCardMinColumnWidth: this.menuCardMinColumnWidth, mergedClsPrefix: mergedClsPrefix, menuPaneClass: this.menuPaneClass, menuPaneWrapperClass: this.menuPaneWrapperClass, activeMenuKey: this.
|
|
344
|
+
const navigationNode = (0, _utils_1.resolveWrappedSlot)($slots.navigation, (children) => children !== null && children !== void 0 ? children : null) || ((0, vue_1.h)(HeaderNavigation_1.default, { menuOptions: this.menuOptions, menuPlacement: this.menuPlacement, menuTrigger: this.menuTrigger, menuValue: this.mergedMenuValue, menuTabsProps: this.menuTabsProps, menuCardMinColumnWidth: this.menuCardMinColumnWidth, mergedClsPrefix: mergedClsPrefix, menuPaneClass: this.menuPaneClass, menuPaneWrapperClass: this.menuPaneWrapperClass, activeMenuKey: this.mergedActiveMenuKey, onUpdateMenuValue: this.handleMenuValueUpdate, onUpdateActiveMenuKey: this.handleUpdateActiveMenuKey }));
|
|
329
345
|
const mobileNode = this.responsive && this.isMobile ? ((0, vue_1.h)(HeaderMobile_1.default, { visible: this.mobileMenuVisible, menuOptions: this.normalizedMenuItems, activeMenuValue: this.mergedMenuValue, langOptions: this.langOptions || defaultLangOptions, currentLang: this.currentLang, mergedClsPrefix: mergedClsPrefix, cssVars: this.cssVars, menuType: this.mobileMenuType, showFooterActions: this.mobileShowFooterActions, showHeaderActions: this.mobileShowHeaderActions, primaryActionText: this.mobilePrimaryActionText, secondaryActionText: this.mobileSecondaryActionText, onToggle: this.toggleMobileMenu, onClose: this.closeMobileMenu, onMenuItemClick: this.handleMobileMenuItemClick, onLanguageSelect: this.handleSelectLang, onPrimaryAction: this.handleMobilePrimaryAction, onSecondaryAction: this.handleMobileSecondaryAction, onSearchClick: this.handleSearchClick, onPreview: this.handlePreviewClick, onLogout: this.handleLogoutClick }, {
|
|
330
346
|
actions: $slots['mobile-actions'],
|
|
331
347
|
footer: $slots['mobile-footer']
|
|
@@ -45,6 +45,7 @@ export declare const headerNavigationProps: {
|
|
|
45
45
|
};
|
|
46
46
|
readonly 'onUpdate:menuValue': PropType<MaybeArray<(value: string | number | null) => void>>;
|
|
47
47
|
readonly onUpdateMenuValue: PropType<MaybeArray<(value: string | number | null) => void>>;
|
|
48
|
+
readonly onUpdateActiveMenuKey: PropType<(value: string | number | null) => void>;
|
|
48
49
|
};
|
|
49
50
|
declare const _default: import("vue").DefineComponent<{
|
|
50
51
|
readonly menuOptions: {
|
|
@@ -86,6 +87,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
86
87
|
};
|
|
87
88
|
readonly 'onUpdate:menuValue': PropType<MaybeArray<(value: string | number | null) => void>>;
|
|
88
89
|
readonly onUpdateMenuValue: PropType<MaybeArray<(value: string | number | null) => void>>;
|
|
90
|
+
readonly onUpdateActiveMenuKey: PropType<(value: string | number | null) => void>;
|
|
89
91
|
}, {
|
|
90
92
|
normalizedMenuItems: import("vue").ComputedRef<InternalMenuItem[]>;
|
|
91
93
|
handleMenuValueUpdate: (value: string | number | null) => void;
|
|
@@ -1687,7 +1689,6 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
1687
1689
|
"vector-effect"?: import("csstype").Property.VectorEffect | undefined;
|
|
1688
1690
|
}>;
|
|
1689
1691
|
hoveredKey: import("vue").Ref<string | number | null>;
|
|
1690
|
-
activeMenuKey: import("vue").Ref<string> | import("vue").Ref<number> | import("vue").Ref<null>;
|
|
1691
1692
|
setActiveMenuKey: (key?: string | number | null) => void;
|
|
1692
1693
|
handleMenuItemClick: (option: HeaderMenuOption) => void;
|
|
1693
1694
|
checkedTopMenuKey: import("vue").ComputedRef<string | number | undefined>;
|
|
@@ -1731,6 +1732,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
1731
1732
|
};
|
|
1732
1733
|
readonly 'onUpdate:menuValue': PropType<MaybeArray<(value: string | number | null) => void>>;
|
|
1733
1734
|
readonly onUpdateMenuValue: PropType<MaybeArray<(value: string | number | null) => void>>;
|
|
1735
|
+
readonly onUpdateActiveMenuKey: PropType<(value: string | number | null) => void>;
|
|
1734
1736
|
}>>, {
|
|
1735
1737
|
readonly menuOptions: HeaderMenuOption[];
|
|
1736
1738
|
readonly menuPlacement: HeaderMenuPlacement;
|
|
@@ -63,7 +63,8 @@ exports.headerNavigationProps = {
|
|
|
63
63
|
default: null
|
|
64
64
|
},
|
|
65
65
|
'onUpdate:menuValue': [Function, Array],
|
|
66
|
-
onUpdateMenuValue: [Function, Array]
|
|
66
|
+
onUpdateMenuValue: [Function, Array],
|
|
67
|
+
onUpdateActiveMenuKey: Function
|
|
67
68
|
};
|
|
68
69
|
exports.default = (0, vue_1.defineComponent)({
|
|
69
70
|
name: 'HeaderNavigation',
|
|
@@ -80,7 +81,7 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
80
81
|
navRef.value = el;
|
|
81
82
|
};
|
|
82
83
|
const hoveredKeyRef = (0, vue_1.ref)(null);
|
|
83
|
-
const activeMenuKeyRef = (0, vue_1.toRef)(props
|
|
84
|
+
const activeMenuKeyRef = (0, vue_1.toRef)(props, 'activeMenuKey');
|
|
84
85
|
const tabRefs = (0, vue_1.ref)({});
|
|
85
86
|
const indicatorStyleRef = (0, vue_1.ref)({
|
|
86
87
|
width: '0px',
|
|
@@ -130,7 +131,9 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
130
131
|
(0, _utils_1.call)(_onUpdateMenuValue, value);
|
|
131
132
|
}
|
|
132
133
|
function setActiveMenuKey(key = null) {
|
|
133
|
-
|
|
134
|
+
if (props.onUpdateActiveMenuKey) {
|
|
135
|
+
props.onUpdateActiveMenuKey(key);
|
|
136
|
+
}
|
|
134
137
|
}
|
|
135
138
|
function handleMenuItemClick(option) {
|
|
136
139
|
setActiveMenuKey(option === null || option === void 0 ? void 0 : option.key);
|
|
@@ -169,7 +172,6 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
169
172
|
setTabRef,
|
|
170
173
|
indicatorStyle: indicatorStyleRef,
|
|
171
174
|
hoveredKey: hoveredKeyRef,
|
|
172
|
-
activeMenuKey: activeMenuKeyRef,
|
|
173
175
|
setActiveMenuKey,
|
|
174
176
|
handleMenuItemClick,
|
|
175
177
|
checkedTopMenuKey
|
|
@@ -25,6 +25,7 @@ export interface HeaderProps {
|
|
|
25
25
|
mobileShowHeaderActions?: boolean;
|
|
26
26
|
onSearch?: HeaderSearchHandler;
|
|
27
27
|
onUpdateMenuValue: (value: string | number | null) => void;
|
|
28
|
+
onUpdateActiveMenuKey?: (value: string | number | null) => void;
|
|
28
29
|
}
|
|
29
30
|
export interface HeaderMenuColumnOption {
|
|
30
31
|
type: 'column';
|
|
@@ -11,4 +11,4 @@ export declare function isColumnOption(option: HeaderMenuChildOption): option is
|
|
|
11
11
|
export declare function isNotNull<T>(value: T | null): value is T;
|
|
12
12
|
export declare function resolvePlacement(placement: HeaderMenuPlacement): TabsProps['placement'];
|
|
13
13
|
export declare function isLeafMenuOption(option: HeaderMenuChildOption): option is Exclude<HeaderMenuChildOption, HeaderMenuColumnOption>;
|
|
14
|
-
export declare function resolveTopLevelMenuKey(menuOptions: HeaderMenuOption[], activeMenuKey
|
|
14
|
+
export declare function resolveTopLevelMenuKey(menuOptions: HeaderMenuOption[], activeMenuKey?: string | number | null): string | number | null;
|
package/lib/header/src/utils.js
CHANGED
|
@@ -84,7 +84,7 @@ function isMenuValueInChildren(children, value) {
|
|
|
84
84
|
function resolveTopLevelMenuKey(menuOptions, activeMenuKey) {
|
|
85
85
|
if (activeMenuKey === null || activeMenuKey === undefined)
|
|
86
86
|
return null;
|
|
87
|
-
for (let index = 0; index < menuOptions.length; index
|
|
87
|
+
for (let index = 0; index < menuOptions.length; index++) {
|
|
88
88
|
const option = menuOptions[index];
|
|
89
89
|
const optionKey = getMenuItemKey(option, index);
|
|
90
90
|
if (optionKey === activeMenuKey)
|
package/lib/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: "1.12.
|
|
1
|
+
declare const _default: "1.12.18";
|
|
2
2
|
export default _default;
|
package/lib/version.js
CHANGED
package/package.json
CHANGED
package/volar.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Auto generated component declarations
|
|
2
2
|
declare module 'vue' {
|
|
3
3
|
export interface GlobalComponents {
|
|
4
|
+
UActionCard: typeof import('@uzum-tech/ui')['UActionCard']
|
|
4
5
|
UAffix: typeof import('@uzum-tech/ui')['UAffix']
|
|
5
6
|
UAlert: typeof import('@uzum-tech/ui')['UAlert']
|
|
6
7
|
UAnchor: typeof import('@uzum-tech/ui')['UAnchor']
|
|
@@ -21,6 +22,9 @@ declare module 'vue' {
|
|
|
21
22
|
UCarousel: typeof import('@uzum-tech/ui')['UCarousel']
|
|
22
23
|
UCarouselItem: typeof import('@uzum-tech/ui')['UCarouselItem']
|
|
23
24
|
UCascader: typeof import('@uzum-tech/ui')['UCascader']
|
|
25
|
+
UChat: typeof import('@uzum-tech/ui')['UChat']
|
|
26
|
+
UChatListItems: typeof import('@uzum-tech/ui')['UChatListItems']
|
|
27
|
+
UChatMessages: typeof import('@uzum-tech/ui')['UChatMessages']
|
|
24
28
|
UCheckbox: typeof import('@uzum-tech/ui')['UCheckbox']
|
|
25
29
|
UCheckboxGroup: typeof import('@uzum-tech/ui')['UCheckboxGroup']
|
|
26
30
|
UCode: typeof import('@uzum-tech/ui')['UCode']
|
|
@@ -31,6 +35,7 @@ declare module 'vue' {
|
|
|
31
35
|
UColorPicker: typeof import('@uzum-tech/ui')['UColorPicker']
|
|
32
36
|
UConfigProvider: typeof import('@uzum-tech/ui')['UConfigProvider']
|
|
33
37
|
UCountdown: typeof import('@uzum-tech/ui')['UCountdown']
|
|
38
|
+
UCrop: typeof import('@uzum-tech/ui')['UCrop']
|
|
34
39
|
UDataTable: typeof import('@uzum-tech/ui')['UDataTable']
|
|
35
40
|
UDatePicker: typeof import('@uzum-tech/ui')['UDatePicker']
|
|
36
41
|
UDescriptions: typeof import('@uzum-tech/ui')['UDescriptions']
|
|
@@ -66,11 +71,23 @@ declare module 'vue' {
|
|
|
66
71
|
UH4: typeof import('@uzum-tech/ui')['UH4']
|
|
67
72
|
UH5: typeof import('@uzum-tech/ui')['UH5']
|
|
68
73
|
UH6: typeof import('@uzum-tech/ui')['UH6']
|
|
74
|
+
UHeader: typeof import('@uzum-tech/ui')['UHeader']
|
|
75
|
+
UHeaderActions: typeof import('@uzum-tech/ui')['UHeaderActions']
|
|
76
|
+
UHeaderDesktopLayout: typeof import('@uzum-tech/ui')['UHeaderDesktopLayout']
|
|
77
|
+
UHeaderMobile: typeof import('@uzum-tech/ui')['UHeaderMobile']
|
|
78
|
+
UHeaderMobileLayout: typeof import('@uzum-tech/ui')['UHeaderMobileLayout']
|
|
79
|
+
UHeaderNavigation: typeof import('@uzum-tech/ui')['UHeaderNavigation']
|
|
80
|
+
UHeaderSearchDesktop: typeof import('@uzum-tech/ui')['UHeaderSearchDesktop']
|
|
81
|
+
UHeaderSearchMobile: typeof import('@uzum-tech/ui')['UHeaderSearchMobile']
|
|
82
|
+
UHeaderSearchResults: typeof import('@uzum-tech/ui')['UHeaderSearchResults']
|
|
69
83
|
UHr: typeof import('@uzum-tech/ui')['UHr']
|
|
70
84
|
UIcon: typeof import('@uzum-tech/ui')['UIcon']
|
|
85
|
+
UIconBar: typeof import('@uzum-tech/ui')['UIconBar']
|
|
86
|
+
UIconBarItem: typeof import('@uzum-tech/ui')['UIconBarItem']
|
|
71
87
|
UIconWrapper: typeof import('@uzum-tech/ui')['UIconWrapper']
|
|
72
88
|
UImage: typeof import('@uzum-tech/ui')['UImage']
|
|
73
89
|
UImageGroup: typeof import('@uzum-tech/ui')['UImageGroup']
|
|
90
|
+
UInfiniteScroll: typeof import('@uzum-tech/ui')['UInfiniteScroll']
|
|
74
91
|
UInput: typeof import('@uzum-tech/ui')['UInput']
|
|
75
92
|
UInputGroup: typeof import('@uzum-tech/ui')['UInputGroup']
|
|
76
93
|
UInputGroupLabel: typeof import('@uzum-tech/ui')['UInputGroupLabel']
|
|
@@ -91,6 +108,7 @@ declare module 'vue' {
|
|
|
91
108
|
UMenu: typeof import('@uzum-tech/ui')['UMenu']
|
|
92
109
|
UMessageProvider: typeof import('@uzum-tech/ui')['UMessageProvider']
|
|
93
110
|
UModal: typeof import('@uzum-tech/ui')['UModal']
|
|
111
|
+
UModalFullscreen: typeof import('@uzum-tech/ui')['UModalFullscreen']
|
|
94
112
|
UNotificationProvider: typeof import('@uzum-tech/ui')['UNotificationProvider']
|
|
95
113
|
UNumberAnimation: typeof import('@uzum-tech/ui')['UNumberAnimation']
|
|
96
114
|
UOl: typeof import('@uzum-tech/ui')['UOl']
|
|
@@ -101,12 +119,14 @@ declare module 'vue' {
|
|
|
101
119
|
UPopover: typeof import('@uzum-tech/ui')['UPopover']
|
|
102
120
|
UPopselect: typeof import('@uzum-tech/ui')['UPopselect']
|
|
103
121
|
UProgress: typeof import('@uzum-tech/ui')['UProgress']
|
|
122
|
+
UQrCode: typeof import('@uzum-tech/ui')['UQrCode']
|
|
104
123
|
URadio: typeof import('@uzum-tech/ui')['URadio']
|
|
105
124
|
URadioButton: typeof import('@uzum-tech/ui')['URadioButton']
|
|
106
125
|
URadioGroup: typeof import('@uzum-tech/ui')['URadioGroup']
|
|
107
126
|
URate: typeof import('@uzum-tech/ui')['URate']
|
|
108
127
|
UResult: typeof import('@uzum-tech/ui')['UResult']
|
|
109
128
|
URow: typeof import('@uzum-tech/ui')['URow']
|
|
129
|
+
USafeTopScrollbar: typeof import('@uzum-tech/ui')['USafeTopScrollbar']
|
|
110
130
|
UScrollbar: typeof import('@uzum-tech/ui')['UScrollbar']
|
|
111
131
|
USelect: typeof import('@uzum-tech/ui')['USelect']
|
|
112
132
|
USkeleton: typeof import('@uzum-tech/ui')['USkeleton']
|
|
@@ -123,6 +143,7 @@ declare module 'vue' {
|
|
|
123
143
|
UTable: typeof import('@uzum-tech/ui')['UTable']
|
|
124
144
|
UTabs: typeof import('@uzum-tech/ui')['UTabs']
|
|
125
145
|
UTag: typeof import('@uzum-tech/ui')['UTag']
|
|
146
|
+
UTagGroup: typeof import('@uzum-tech/ui')['UTagGroup']
|
|
126
147
|
UTbody: typeof import('@uzum-tech/ui')['UTbody']
|
|
127
148
|
UTd: typeof import('@uzum-tech/ui')['UTd']
|
|
128
149
|
UText: typeof import('@uzum-tech/ui')['UText']
|
|
@@ -144,29 +165,8 @@ declare module 'vue' {
|
|
|
144
165
|
UUploadDragger: typeof import('@uzum-tech/ui')['UUploadDragger']
|
|
145
166
|
UUploadFileList: typeof import('@uzum-tech/ui')['UUploadFileList']
|
|
146
167
|
UUploadTrigger: typeof import('@uzum-tech/ui')['UUploadTrigger']
|
|
147
|
-
UWatermark: typeof import('@uzum-tech/ui')['UWatermark']
|
|
148
|
-
UActionCard: typeof import('@uzum-tech/ui')['UActionCard']
|
|
149
|
-
UChat: typeof import('@uzum-tech/ui')['UChat']
|
|
150
|
-
UChatListItems: typeof import('@uzum-tech/ui')['UChatListItems']
|
|
151
|
-
UChatMessages: typeof import('@uzum-tech/ui')['UChatMessages']
|
|
152
|
-
UInfiniteScroll: typeof import('@uzum-tech/ui')['UInfiniteScroll']
|
|
153
168
|
UVirtualList: typeof import('@uzum-tech/ui')['UVirtualList']
|
|
154
|
-
|
|
155
|
-
UCrop: typeof import('@uzum-tech/ui')['UCrop']
|
|
156
|
-
UTagGroup: typeof import('@uzum-tech/ui')['UTagGroup']
|
|
157
|
-
UIconBar: typeof import('@uzum-tech/ui')['UIconBar']
|
|
158
|
-
UIconBarItem: typeof import('@uzum-tech/ui')['UIconBarItem']
|
|
159
|
-
UQrCode: typeof import('@uzum-tech/ui')['UQrCode']
|
|
160
|
-
UHeader: typeof import('@uzum-tech/ui')['UHeader']
|
|
161
|
-
USafeTopScrollbar: typeof import('@uzum-tech/ui')['USafeTopScrollbar']
|
|
162
|
-
UHeaderActions: typeof import('@uzum-tech/ui')['UHeaderActions']
|
|
163
|
-
UHeaderMobile: typeof import('@uzum-tech/ui')['UHeaderMobile']
|
|
164
|
-
UHeaderNavigation: typeof import('@uzum-tech/ui')['UHeaderNavigation']
|
|
165
|
-
UHeaderDesktopLayout: typeof import('@uzum-tech/ui')['UHeaderDesktopLayout']
|
|
166
|
-
UHeaderMobileLayout: typeof import('@uzum-tech/ui')['UHeaderMobileLayout']
|
|
167
|
-
UHeaderSearchDesktop: typeof import('@uzum-tech/ui')['UHeaderSearchDesktop']
|
|
168
|
-
UHeaderSearchMobile: typeof import('@uzum-tech/ui')['UHeaderSearchMobile']
|
|
169
|
-
UHeaderSearchResults: typeof import('@uzum-tech/ui')['UHeaderSearchResults']
|
|
169
|
+
UWatermark: typeof import('@uzum-tech/ui')['UWatermark']
|
|
170
170
|
}
|
|
171
171
|
}
|
|
172
172
|
export {}
|
package/web-types.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
|
|
3
3
|
"framework": "vue",
|
|
4
4
|
"name": "@uzum-tech/ui",
|
|
5
|
-
"version": "1.12.
|
|
5
|
+
"version": "1.12.18",
|
|
6
6
|
"js-types-syntax": "typescript",
|
|
7
7
|
"contributions": {
|
|
8
8
|
"html": {
|
|
@@ -4232,6 +4232,13 @@
|
|
|
4232
4232
|
"since": "2.30.5"
|
|
4233
4233
|
}
|
|
4234
4234
|
},
|
|
4235
|
+
{
|
|
4236
|
+
"name": "default-empty-value",
|
|
4237
|
+
"doc-url": "https://uzum-ui.kapitalbank.uz/en-US/os-theme/components/data-table",
|
|
4238
|
+
"type": "string | (() => VNodeChild) | undefined",
|
|
4239
|
+
"description": "Default value to display when cell value is `null`, `undefined`, or `false`. Can be a string or a render function. If not provided, empty string is used.",
|
|
4240
|
+
"default": "undefined"
|
|
4241
|
+
},
|
|
4235
4242
|
{
|
|
4236
4243
|
"name": "render-expand-icon",
|
|
4237
4244
|
"doc-url": "https://uzum-ui.kapitalbank.uz/en-US/os-theme/components/data-table",
|
|
@@ -18337,7 +18344,7 @@
|
|
|
18337
18344
|
"name": "active-menu-key",
|
|
18338
18345
|
"doc-url": "https://uzum-ui.kapitalbank.uz/en-US/os-theme/components/header",
|
|
18339
18346
|
"type": "string | number | null",
|
|
18340
|
-
"description": "
|
|
18347
|
+
"description": "Key of the active menu item (can be set from outside, e.g. router).",
|
|
18341
18348
|
"default": "null"
|
|
18342
18349
|
},
|
|
18343
18350
|
{
|
|
@@ -18452,12 +18459,30 @@
|
|
|
18452
18459
|
"name": "update-menu-value",
|
|
18453
18460
|
"doc-url": "https://uzum-ui.kapitalbank.uz/en-US/os-theme/components/header"
|
|
18454
18461
|
},
|
|
18462
|
+
{
|
|
18463
|
+
"name": "update-active-menu-key",
|
|
18464
|
+
"doc-url": "https://uzum-ui.kapitalbank.uz/en-US/os-theme/components/header",
|
|
18465
|
+
"type": "(value: string | number | null) => void",
|
|
18466
|
+
"description": "Same as `on-update:active-menu-key` (kebab-case alias).",
|
|
18467
|
+
"default": "-"
|
|
18468
|
+
},
|
|
18469
|
+
{
|
|
18470
|
+
"name": "update-active-menu-key",
|
|
18471
|
+
"doc-url": "https://uzum-ui.kapitalbank.uz/en-US/os-theme/components/header"
|
|
18472
|
+
},
|
|
18455
18473
|
{
|
|
18456
18474
|
"name": "update:menu-value",
|
|
18457
18475
|
"doc-url": "https://uzum-ui.kapitalbank.uz/en-US/os-theme/components/header",
|
|
18458
18476
|
"type": "(value: string | number | null) => void",
|
|
18459
18477
|
"description": "Callback when the active menu key changes.",
|
|
18460
18478
|
"default": "-"
|
|
18479
|
+
},
|
|
18480
|
+
{
|
|
18481
|
+
"name": "update:active-menu-key",
|
|
18482
|
+
"doc-url": "https://uzum-ui.kapitalbank.uz/en-US/os-theme/components/header",
|
|
18483
|
+
"type": "(value: string | number | null) => void",
|
|
18484
|
+
"description": "Callback when `active-menu-key` changes (v-model).",
|
|
18485
|
+
"default": "-"
|
|
18461
18486
|
}
|
|
18462
18487
|
]
|
|
18463
18488
|
}
|
|
@@ -18531,6 +18556,10 @@
|
|
|
18531
18556
|
{
|
|
18532
18557
|
"name": "update-menu-value",
|
|
18533
18558
|
"doc-url": "https://uzum-ui.kapitalbank.uz/en-US/os-theme/components/header"
|
|
18559
|
+
},
|
|
18560
|
+
{
|
|
18561
|
+
"name": "update-active-menu-key",
|
|
18562
|
+
"doc-url": "https://uzum-ui.kapitalbank.uz/en-US/os-theme/components/header"
|
|
18534
18563
|
}
|
|
18535
18564
|
]
|
|
18536
18565
|
}
|
package/README.md
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
<p align="center">
|
|
2
|
-
<img width="144px" src="https://ik.imagekit.io/jbalancer/uzum-logo.svg?updatedAt=1692012347116" />
|
|
3
|
-
</p>
|
|
4
|
-
|
|
5
|
-
<h1 align="center">Uzum UI</h1>
|
|
6
|
-
<p align="center">A Vue 3 Component Library</p>
|
|
7
|
-
<p align="center"><b>Fairly Complete, Theme Customizable, Uses TypeScript, Fast</b></p>
|
|
8
|
-
|
|
9
|
-
<p align="center">English</p>
|
|
10
|
-
|
|
11
|
-
## Documentation
|
|
12
|
-
|
|
13
|
-
[www.uzumui.com](http://www.uzumui.com)
|
|
14
|
-
|
|
15
|
-
## Features
|
|
16
|
-
|
|
17
|
-
### Fairly Complete
|
|
18
|
-
|
|
19
|
-
There are more than 80 components. Hope they can help you write less code.
|
|
20
|
-
|
|
21
|
-
What's more, they are all treeshakable.
|
|
22
|
-
|
|
23
|
-
### Theme Customizable
|
|
24
|
-
|
|
25
|
-
We provide an advanced type safe theme system built using TypeScript. All you need is to provide a theme overrides object in JS. Then all the stuff will be done by us.
|
|
26
|
-
|
|
27
|
-
What's more, no less/sass/css variables, no webpack loaders are required.
|
|
28
|
-
|
|
29
|
-
### Uses TypeScript
|
|
30
|
-
|
|
31
|
-
All the stuff in Uzum UI is written in TypeScript. It can work with your typescript project seamlessly.
|
|
32
|
-
|
|
33
|
-
What's more, you don't need to import any CSS to use the components.
|
|
34
|
-
|
|
35
|
-
### Fast
|
|
36
|
-
|
|
37
|
-
I try to make it not rather slow. At least select, tree, transfer, table and cascader work with virtual list.
|
|
38
|
-
|
|
39
|
-
What's more, ..., no more. Just enjoy it.
|
|
40
|
-
|
|
41
|
-
## Installation
|
|
42
|
-
|
|
43
|
-
### npm
|
|
44
|
-
|
|
45
|
-
Use npm to install.
|
|
46
|
-
|
|
47
|
-
```bash
|
|
48
|
-
npm i -D @uzum-tech/ui
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
### Fonts
|
|
52
|
-
|
|
53
|
-
```bash
|
|
54
|
-
npm i -D vfonts
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
### Icons
|
|
58
|
-
|
|
59
|
-
Uzum UI recommends using [xicons](https://www.xicons.org) as icon library.
|
|
60
|
-
|
|
61
|
-
### Design Resources
|
|
62
|
-
|
|
63
|
-
[Uzum UI (Figma)](https://www.figma.com/file/yKEpk8950c0bZ2fA51psBI/Components-Web?type=design&t=brzuYK7mC2iOHJJ1-6).
|
|
64
|
-
|
|
65
|
-
## Contributing
|
|
66
|
-
|
|
67
|
-
Later...
|
|
68
|
-
|
|
69
|
-
## License
|
|
70
|
-
|
|
71
|
-
Uzum UI is licensed under the [MIT license](https://opensource.org/licenses/MIT).
|
|
72
|
-
|
|
73
|
-
Graphics resouces of `result` component is licensed under the [CC-BY 4.0](https://creativecommons.org/licenses/by/4.0/). The graphics resources come from [Twemoji](https://github.com/twitter/twemoji).
|