@arco-design/mobile-react 2.19.2-ee92494.5 → 2.21.1
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/CHANGELOG.md +66 -0
- package/README.en-US.md +6 -6
- package/README.md +6 -6
- package/cjs/avatar/group.js +1 -1
- package/cjs/avatar/index.d.ts +1 -1
- package/cjs/avatar/index.js +11 -14
- package/cjs/avatar/style/css/index.css +96 -126
- package/cjs/avatar/style/index.less +54 -72
- package/cjs/badge/index.d.ts +1 -1
- package/cjs/badge/index.js +7 -9
- package/cjs/badge/style/css/index.css +5 -5
- package/cjs/badge/style/index.less +5 -5
- package/cjs/button/demo/style/mobile.less +0 -4
- package/cjs/button/hooks.d.ts +1 -2
- package/cjs/button/hooks.js +5 -3
- package/cjs/button/index.d.ts +1 -1
- package/cjs/button/index.js +28 -33
- package/cjs/button/style/css/index.css +75 -310
- package/cjs/button/style/index.less +32 -38
- package/cjs/carousel/index.d.ts +1 -1
- package/cjs/carousel/index.js +1 -1
- package/cjs/cell/index.d.ts +1 -1
- package/cjs/cell/index.js +1 -1
- package/cjs/checkbox/index.d.ts +1 -1
- package/cjs/checkbox/index.js +1 -1
- package/cjs/collapse/index.d.ts +1 -1
- package/cjs/collapse/index.js +1 -1
- package/cjs/count-down/index.d.ts +1 -1
- package/cjs/count-down/index.js +1 -1
- package/cjs/date-picker/index.d.ts +1 -1
- package/cjs/date-picker/index.js +1 -1
- package/cjs/dropdown/dropdown.d.ts +3 -0
- package/cjs/dropdown/dropdown.js +322 -0
- package/cjs/dropdown/index.d.ts +3 -4
- package/cjs/dropdown/index.js +3 -303
- package/cjs/dropdown/options.js +2 -1
- package/cjs/dropdown/style/css/index.css +3 -0
- package/cjs/dropdown/style/index.less +2 -0
- package/cjs/dropdown/type.d.ts +20 -9
- package/cjs/dropdown-menu/dropdown-menu.d.ts +4 -0
- package/cjs/dropdown-menu/dropdown-menu.js +273 -0
- package/cjs/dropdown-menu/helper.d.ts +1 -1
- package/cjs/dropdown-menu/index.d.ts +2 -3
- package/cjs/dropdown-menu/index.js +2 -245
- package/cjs/dropdown-menu/type.d.ts +21 -20
- package/cjs/ellipsis/components/js-ellipsis.js +2 -3
- package/cjs/ellipsis/index.d.ts +1 -1
- package/cjs/ellipsis/index.js +3 -4
- package/cjs/image/index.d.ts +1 -1
- package/cjs/image/index.js +5 -2
- package/cjs/image/style/css/index.css +2 -1
- package/cjs/image/style/index.less +2 -1
- package/cjs/image-picker/index.d.ts +4 -175
- package/cjs/image-picker/index.js +44 -20
- package/cjs/image-picker/type.d.ts +174 -0
- package/cjs/image-picker/type.js +3 -0
- package/cjs/image-preview/index.d.ts +1 -1
- package/cjs/image-preview/index.js +1 -1
- package/cjs/index.d.ts +2 -0
- package/cjs/index.js +9 -1
- package/cjs/input/hooks.js +49 -8
- package/cjs/input/index.d.ts +1 -1
- package/cjs/input/index.js +1 -1
- package/cjs/input/props.d.ts +8 -2
- package/cjs/nav-bar/index.js +7 -2
- package/cjs/notice-bar/index.d.ts +1 -1
- package/cjs/notice-bar/index.js +1 -1
- package/cjs/picker/index.d.ts +1 -1
- package/cjs/picker/index.js +1 -1
- package/cjs/picker-view/index.d.ts +1 -1
- package/cjs/picker-view/index.js +1 -1
- package/cjs/popover/index.d.ts +1 -1
- package/cjs/popover/index.js +1 -1
- package/cjs/popup-swiper/index.js +3 -2
- package/cjs/radio/index.d.ts +1 -1
- package/cjs/radio/index.js +1 -1
- package/cjs/rate/index.d.ts +1 -1
- package/cjs/rate/index.js +1 -1
- package/cjs/search-bar/association.d.ts +3 -0
- package/cjs/search-bar/association.js +92 -0
- package/cjs/search-bar/cancel-button.d.ts +10 -0
- package/cjs/search-bar/cancel-button.js +41 -0
- package/cjs/search-bar/demo/style/css/mobile.css +5 -0
- package/cjs/search-bar/demo/style/mobile.less +9 -0
- package/cjs/search-bar/highlight.d.ts +12 -0
- package/cjs/search-bar/highlight.js +77 -0
- package/cjs/search-bar/index.d.ts +13 -0
- package/cjs/search-bar/index.js +231 -0
- package/cjs/search-bar/style/css/index.css +148 -0
- package/cjs/search-bar/style/css/index.d.ts +2 -0
- package/cjs/search-bar/style/css/index.js +5 -0
- package/cjs/search-bar/style/index.d.ts +2 -0
- package/cjs/search-bar/style/index.js +5 -0
- package/cjs/search-bar/style/index.less +111 -0
- package/cjs/search-bar/type.d.ts +163 -0
- package/cjs/search-bar/type.js +3 -0
- package/cjs/show-monitor/index.js +31 -3
- package/cjs/slider/index.d.ts +1 -1
- package/cjs/slider/index.js +1 -1
- package/cjs/steps/index.d.ts +1 -1
- package/cjs/steps/index.js +1 -1
- package/cjs/sticky/index.d.ts +1 -1
- package/cjs/style.d.ts +2 -0
- package/cjs/style.js +4 -0
- package/cjs/swipe-action/demo/style/css/mobile.css +5 -0
- package/cjs/swipe-action/demo/style/mobile.less +9 -0
- package/cjs/swipe-action/index.d.ts +12 -0
- package/cjs/swipe-action/index.js +337 -0
- package/cjs/swipe-action/item.d.ts +11 -0
- package/cjs/swipe-action/item.js +52 -0
- package/cjs/swipe-action/style/css/index.css +88 -0
- package/cjs/swipe-action/style/css/index.d.ts +2 -0
- package/cjs/swipe-action/style/css/index.js +5 -0
- package/cjs/swipe-action/style/index.d.ts +2 -0
- package/cjs/swipe-action/style/index.js +5 -0
- package/cjs/swipe-action/style/index.less +89 -0
- package/cjs/swipe-action/type.d.ts +123 -0
- package/cjs/swipe-action/type.js +3 -0
- package/cjs/switch/index.d.ts +1 -1
- package/cjs/switch/index.js +1 -1
- package/cjs/tabs/tab-pane.js +5 -1
- package/cjs/tag/index.d.ts +1 -1
- package/cjs/tag/index.js +1 -1
- package/cjs/textarea/index.d.ts +1 -1
- package/cjs/textarea/index.js +1 -1
- package/dist/index.js +8037 -7173
- package/dist/index.min.js +6 -6
- package/dist/style.css +377 -438
- package/dist/style.min.css +1 -1
- package/esm/avatar/group.js +1 -1
- package/esm/avatar/index.d.ts +1 -1
- package/esm/avatar/index.js +11 -14
- package/esm/avatar/style/css/index.css +96 -126
- package/esm/avatar/style/index.less +54 -72
- package/esm/badge/index.d.ts +1 -1
- package/esm/badge/index.js +7 -9
- package/esm/badge/style/css/index.css +5 -5
- package/esm/badge/style/index.less +5 -5
- package/esm/button/demo/style/mobile.less +0 -4
- package/esm/button/hooks.d.ts +1 -2
- package/esm/button/hooks.js +5 -3
- package/esm/button/index.d.ts +1 -1
- package/esm/button/index.js +30 -35
- package/esm/button/style/css/index.css +75 -310
- package/esm/button/style/index.less +32 -38
- package/esm/carousel/index.d.ts +1 -1
- package/esm/carousel/index.js +1 -1
- package/esm/cell/index.d.ts +1 -1
- package/esm/cell/index.js +1 -1
- package/esm/checkbox/index.d.ts +1 -1
- package/esm/checkbox/index.js +1 -1
- package/esm/collapse/index.d.ts +1 -1
- package/esm/collapse/index.js +1 -1
- package/esm/count-down/index.d.ts +1 -1
- package/esm/count-down/index.js +1 -1
- package/esm/date-picker/index.d.ts +1 -1
- package/esm/date-picker/index.js +1 -1
- package/esm/dropdown/dropdown.d.ts +3 -0
- package/esm/dropdown/dropdown.js +304 -0
- package/esm/dropdown/index.d.ts +3 -4
- package/esm/dropdown/index.js +3 -293
- package/esm/dropdown/options.js +2 -1
- package/esm/dropdown/style/css/index.css +3 -0
- package/esm/dropdown/style/index.less +2 -0
- package/esm/dropdown/type.d.ts +20 -9
- package/esm/dropdown-menu/dropdown-menu.d.ts +4 -0
- package/esm/dropdown-menu/dropdown-menu.js +256 -0
- package/esm/dropdown-menu/helper.d.ts +1 -1
- package/esm/dropdown-menu/index.d.ts +2 -3
- package/esm/dropdown-menu/index.js +2 -237
- package/esm/dropdown-menu/type.d.ts +21 -20
- package/esm/ellipsis/components/js-ellipsis.js +2 -3
- package/esm/ellipsis/index.d.ts +1 -1
- package/esm/ellipsis/index.js +3 -4
- package/esm/image/index.d.ts +1 -1
- package/esm/image/index.js +5 -2
- package/esm/image/style/css/index.css +2 -1
- package/esm/image/style/index.less +2 -1
- package/esm/image-picker/index.d.ts +4 -175
- package/esm/image-picker/index.js +33 -19
- package/esm/image-picker/type.d.ts +174 -0
- package/esm/image-picker/type.js +1 -0
- package/esm/image-preview/index.d.ts +1 -1
- package/esm/image-preview/index.js +1 -1
- package/esm/index.d.ts +2 -0
- package/esm/index.js +2 -0
- package/esm/input/hooks.js +49 -8
- package/esm/input/index.d.ts +1 -1
- package/esm/input/index.js +1 -1
- package/esm/input/props.d.ts +8 -2
- package/esm/nav-bar/index.js +6 -2
- package/esm/notice-bar/index.d.ts +1 -1
- package/esm/notice-bar/index.js +1 -1
- package/esm/picker/index.d.ts +1 -1
- package/esm/picker/index.js +1 -1
- package/esm/picker-view/index.d.ts +1 -1
- package/esm/picker-view/index.js +1 -1
- package/esm/popover/index.d.ts +1 -1
- package/esm/popover/index.js +1 -1
- package/esm/popup-swiper/index.js +3 -2
- package/esm/radio/index.d.ts +1 -1
- package/esm/radio/index.js +1 -1
- package/esm/rate/index.d.ts +1 -1
- package/esm/rate/index.js +1 -1
- package/esm/search-bar/association.d.ts +3 -0
- package/esm/search-bar/association.js +82 -0
- package/esm/search-bar/cancel-button.d.ts +10 -0
- package/esm/search-bar/cancel-button.js +30 -0
- package/esm/search-bar/demo/style/css/mobile.css +5 -0
- package/esm/search-bar/demo/style/mobile.less +9 -0
- package/esm/search-bar/highlight.d.ts +12 -0
- package/esm/search-bar/highlight.js +66 -0
- package/esm/search-bar/index.d.ts +13 -0
- package/esm/search-bar/index.js +212 -0
- package/esm/search-bar/style/css/index.css +148 -0
- package/esm/search-bar/style/css/index.d.ts +2 -0
- package/esm/search-bar/style/css/index.js +2 -0
- package/esm/search-bar/style/index.d.ts +2 -0
- package/esm/search-bar/style/index.js +2 -0
- package/esm/search-bar/style/index.less +111 -0
- package/esm/search-bar/type.d.ts +163 -0
- package/esm/search-bar/type.js +1 -0
- package/esm/show-monitor/index.js +31 -3
- package/esm/slider/index.d.ts +1 -1
- package/esm/slider/index.js +1 -1
- package/esm/steps/index.d.ts +1 -1
- package/esm/steps/index.js +1 -1
- package/esm/sticky/index.d.ts +1 -1
- package/esm/style.d.ts +2 -0
- package/esm/style.js +2 -0
- package/esm/swipe-action/demo/style/css/mobile.css +5 -0
- package/esm/swipe-action/demo/style/mobile.less +9 -0
- package/esm/swipe-action/index.d.ts +12 -0
- package/esm/swipe-action/index.js +320 -0
- package/esm/swipe-action/item.d.ts +11 -0
- package/esm/swipe-action/item.js +42 -0
- package/esm/swipe-action/style/css/index.css +88 -0
- package/esm/swipe-action/style/css/index.d.ts +2 -0
- package/esm/swipe-action/style/css/index.js +2 -0
- package/esm/swipe-action/style/index.d.ts +2 -0
- package/esm/swipe-action/style/index.js +2 -0
- package/esm/swipe-action/style/index.less +89 -0
- package/esm/swipe-action/type.d.ts +123 -0
- package/esm/swipe-action/type.js +1 -0
- package/esm/switch/index.d.ts +1 -1
- package/esm/switch/index.js +1 -1
- package/esm/tabs/tab-pane.js +5 -1
- package/esm/tag/index.d.ts +1 -1
- package/esm/tag/index.js +1 -1
- package/esm/textarea/index.d.ts +1 -1
- package/esm/textarea/index.js +1 -1
- package/package.json +3 -3
- package/tokens/app/arcodesign/default/css-variables.less +36 -1
- package/tokens/app/arcodesign/default/index.d.ts +36 -1
- package/tokens/app/arcodesign/default/index.js +36 -1
- package/tokens/app/arcodesign/default/index.json +425 -15
- package/tokens/app/arcodesign/default/index.less +36 -1
- package/umd/avatar/group.js +1 -1
- package/umd/avatar/index.d.ts +1 -1
- package/umd/avatar/index.js +11 -14
- package/umd/avatar/style/css/index.css +96 -126
- package/umd/avatar/style/index.less +54 -72
- package/umd/badge/index.d.ts +1 -1
- package/umd/badge/index.js +7 -9
- package/umd/badge/style/css/index.css +5 -5
- package/umd/badge/style/index.less +5 -5
- package/umd/button/demo/style/mobile.less +0 -4
- package/umd/button/hooks.d.ts +1 -2
- package/umd/button/hooks.js +5 -3
- package/umd/button/index.d.ts +1 -1
- package/umd/button/index.js +28 -33
- package/umd/button/style/css/index.css +75 -310
- package/umd/button/style/index.less +32 -38
- package/umd/carousel/index.d.ts +1 -1
- package/umd/carousel/index.js +1 -1
- package/umd/cell/index.d.ts +1 -1
- package/umd/cell/index.js +1 -1
- package/umd/checkbox/index.d.ts +1 -1
- package/umd/checkbox/index.js +1 -1
- package/umd/collapse/index.d.ts +1 -1
- package/umd/collapse/index.js +1 -1
- package/umd/count-down/index.d.ts +1 -1
- package/umd/count-down/index.js +1 -1
- package/umd/date-picker/index.d.ts +1 -1
- package/umd/date-picker/index.js +1 -1
- package/umd/dropdown/dropdown.d.ts +3 -0
- package/umd/dropdown/dropdown.js +325 -0
- package/umd/dropdown/index.d.ts +3 -4
- package/umd/dropdown/index.js +5 -298
- package/umd/dropdown/options.js +2 -1
- package/umd/dropdown/style/css/index.css +3 -0
- package/umd/dropdown/style/index.less +2 -0
- package/umd/dropdown/type.d.ts +20 -9
- package/umd/dropdown-menu/dropdown-menu.d.ts +4 -0
- package/umd/dropdown-menu/dropdown-menu.js +278 -0
- package/umd/dropdown-menu/helper.d.ts +1 -1
- package/umd/dropdown-menu/index.d.ts +2 -3
- package/umd/dropdown-menu/index.js +5 -241
- package/umd/dropdown-menu/type.d.ts +21 -20
- package/umd/ellipsis/components/js-ellipsis.js +2 -3
- package/umd/ellipsis/index.d.ts +1 -1
- package/umd/ellipsis/index.js +3 -4
- package/umd/image/index.d.ts +1 -1
- package/umd/image/index.js +5 -2
- package/umd/image/style/css/index.css +2 -1
- package/umd/image/style/index.less +2 -1
- package/umd/image-picker/index.d.ts +4 -175
- package/umd/image-picker/index.js +43 -24
- package/umd/image-picker/type.d.ts +174 -0
- package/umd/image-picker/type.js +17 -0
- package/umd/image-preview/index.d.ts +1 -1
- package/umd/image-preview/index.js +1 -1
- package/umd/index.d.ts +2 -0
- package/umd/index.js +9 -5
- package/umd/input/hooks.js +48 -7
- package/umd/input/index.d.ts +1 -1
- package/umd/input/index.js +1 -1
- package/umd/input/props.d.ts +8 -2
- package/umd/nav-bar/index.js +9 -6
- package/umd/notice-bar/index.d.ts +1 -1
- package/umd/notice-bar/index.js +1 -1
- package/umd/picker/index.d.ts +1 -1
- package/umd/picker/index.js +1 -1
- package/umd/picker-view/index.d.ts +1 -1
- package/umd/picker-view/index.js +1 -1
- package/umd/popover/index.d.ts +1 -1
- package/umd/popover/index.js +1 -1
- package/umd/popup-swiper/index.js +3 -2
- package/umd/radio/index.d.ts +1 -1
- package/umd/radio/index.js +1 -1
- package/umd/rate/index.d.ts +1 -1
- package/umd/rate/index.js +1 -1
- package/umd/search-bar/association.d.ts +3 -0
- package/umd/search-bar/association.js +101 -0
- package/umd/search-bar/cancel-button.d.ts +10 -0
- package/umd/search-bar/cancel-button.js +52 -0
- package/umd/search-bar/demo/style/css/mobile.css +5 -0
- package/umd/search-bar/demo/style/mobile.less +9 -0
- package/umd/search-bar/highlight.d.ts +12 -0
- package/umd/search-bar/highlight.js +87 -0
- package/umd/search-bar/index.d.ts +13 -0
- package/umd/search-bar/index.js +229 -0
- package/umd/search-bar/style/css/index.css +148 -0
- package/umd/search-bar/style/css/index.d.ts +2 -0
- package/umd/search-bar/style/css/index.js +15 -0
- package/umd/search-bar/style/index.d.ts +2 -0
- package/umd/search-bar/style/index.js +15 -0
- package/umd/search-bar/style/index.less +111 -0
- package/umd/search-bar/type.d.ts +163 -0
- package/umd/search-bar/type.js +17 -0
- package/umd/show-monitor/index.js +31 -3
- package/umd/slider/index.d.ts +1 -1
- package/umd/slider/index.js +1 -1
- package/umd/steps/index.d.ts +1 -1
- package/umd/steps/index.js +1 -1
- package/umd/sticky/index.d.ts +1 -1
- package/umd/style.d.ts +2 -0
- package/umd/style.js +4 -4
- package/umd/swipe-action/demo/style/css/mobile.css +5 -0
- package/umd/swipe-action/demo/style/mobile.less +9 -0
- package/umd/swipe-action/index.d.ts +12 -0
- package/umd/swipe-action/index.js +342 -0
- package/umd/swipe-action/item.d.ts +11 -0
- package/umd/swipe-action/item.js +62 -0
- package/umd/swipe-action/style/css/index.css +88 -0
- package/umd/swipe-action/style/css/index.d.ts +2 -0
- package/umd/swipe-action/style/css/index.js +15 -0
- package/umd/swipe-action/style/index.d.ts +2 -0
- package/umd/swipe-action/style/index.js +15 -0
- package/umd/swipe-action/style/index.less +89 -0
- package/umd/swipe-action/type.d.ts +123 -0
- package/umd/swipe-action/type.js +17 -0
- package/umd/switch/index.d.ts +1 -1
- package/umd/switch/index.js +1 -1
- package/umd/tabs/tab-pane.js +5 -1
- package/umd/tag/index.d.ts +1 -1
- package/umd/tag/index.js +1 -1
- package/umd/textarea/index.d.ts +1 -1
- package/umd/textarea/index.js +1 -1
@@ -1,5 +1,4 @@
|
|
1
|
-
|
2
|
-
import { DropdownMenuRef } from './type';
|
1
|
+
/// <reference types="react" />
|
3
2
|
export * from './type';
|
4
3
|
/**
|
5
4
|
* 下拉选择组件,点击选择器(select)展开下拉框(dropdown),展示选择项(options),兼容多个选择器的情况。
|
@@ -9,5 +8,5 @@ export * from './type';
|
|
9
8
|
* @name 下拉选择菜单
|
10
9
|
* @name_en DropdownMenu
|
11
10
|
*/
|
12
|
-
declare const DropdownMenu:
|
11
|
+
declare const DropdownMenu: import("react").ForwardRefExoticComponent<(import("./type").DropdownMenuBasicProps & import("./type").SingleOptionProps & import("react").RefAttributes<import("./type").DropdownMenuRef>) | (import("./type").DropdownMenuBasicProps & import("./type").MultipleOptionProps & import("react").RefAttributes<import("./type").DropdownMenuRef>)>;
|
13
12
|
export default DropdownMenu;
|
@@ -1,10 +1,5 @@
|
|
1
|
-
import
|
2
|
-
import React, { useRef, useState, forwardRef, useImperativeHandle, useMemo, useCallback, useEffect, useContext } from 'react';
|
3
|
-
import { cls } from '@arco-design/mobile-utils';
|
4
|
-
import { GlobalContext } from '../context-provider';
|
5
|
-
import { getFormattedOptions as defaultFormatFunc, isCascadeArray, isClassNameDom, isRefDom } from './helper';
|
1
|
+
import { componentGenerator } from './dropdown-menu';
|
6
2
|
import Dropdown from '../dropdown';
|
7
|
-
import IconTriDown from '../icon/IconTriDown';
|
8
3
|
export * from './type';
|
9
4
|
/**
|
10
5
|
* 下拉选择组件,点击选择器(select)展开下拉框(dropdown),展示选择项(options),兼容多个选择器的情况。
|
@@ -15,235 +10,5 @@ export * from './type';
|
|
15
10
|
* @name_en DropdownMenu
|
16
11
|
*/
|
17
12
|
|
18
|
-
var DropdownMenu =
|
19
|
-
var _props$className = props.className,
|
20
|
-
className = _props$className === void 0 ? '' : _props$className,
|
21
|
-
_props$style = props.style,
|
22
|
-
style = _props$style === void 0 ? {} : _props$style,
|
23
|
-
_props$options = props.options,
|
24
|
-
options = _props$options === void 0 ? [] : _props$options,
|
25
|
-
_props$disabled = props.disabled,
|
26
|
-
disabled = _props$disabled === void 0 ? [] : _props$disabled,
|
27
|
-
_props$selectTips = props.selectTips,
|
28
|
-
selectTips = _props$selectTips === void 0 ? [] : _props$selectTips,
|
29
|
-
values = props.values,
|
30
|
-
_props$defaultValues = props.defaultValues,
|
31
|
-
defaultValues = _props$defaultValues === void 0 ? [] : _props$defaultValues,
|
32
|
-
icon = props.icon,
|
33
|
-
_props$chooseAndClose = props.chooseAndClose,
|
34
|
-
chooseAndClose = _props$chooseAndClose === void 0 ? true : _props$chooseAndClose,
|
35
|
-
selectIndex = props.selectIndex,
|
36
|
-
_props$defaultSelectI = props.defaultSelectIndex,
|
37
|
-
defaultSelectIndex = _props$defaultSelectI === void 0 ? 0 : _props$defaultSelectI,
|
38
|
-
showDropdown = props.showDropdown,
|
39
|
-
_props$defaultShowDro = props.defaultShowDropdown,
|
40
|
-
defaultShowDropdown = _props$defaultShowDro === void 0 ? false : _props$defaultShowDro,
|
41
|
-
renderSelectLabel = props.renderSelectLabel,
|
42
|
-
onValuesChange = props.onValuesChange,
|
43
|
-
onSelectChange = props.onSelectChange,
|
44
|
-
onDropdownChange = props.onDropdownChange,
|
45
|
-
_props$getFormattedOp = props.getFormattedOptions,
|
46
|
-
getFormattedOptions = _props$getFormattedOp === void 0 ? defaultFormatFunc : _props$getFormattedOp,
|
47
|
-
children = props.children,
|
48
|
-
extraForDropdown = props.extraForDropdown;
|
49
|
-
|
50
|
-
var _useContext = useContext(GlobalContext),
|
51
|
-
prefixCls = _useContext.prefixCls,
|
52
|
-
locale = _useContext.locale;
|
53
|
-
|
54
|
-
var _useState = useState(defaultValues),
|
55
|
-
innerValues = _useState[0],
|
56
|
-
setInnerValues = _useState[1];
|
57
|
-
|
58
|
-
var _useState2 = useState(0),
|
59
|
-
defaultTop = _useState2[0],
|
60
|
-
setDefaultTop = _useState2[1];
|
61
|
-
|
62
|
-
var currentValues = values !== void 0 ? values : innerValues;
|
63
|
-
|
64
|
-
var _useState3 = useState(defaultShowDropdown),
|
65
|
-
innerShowDropdown = _useState3[0],
|
66
|
-
setInnerShowDropdown = _useState3[1];
|
67
|
-
|
68
|
-
var dropdownShown = showDropdown !== void 0 ? showDropdown : innerShowDropdown;
|
69
|
-
|
70
|
-
var _useState4 = useState(defaultSelectIndex),
|
71
|
-
innerSelectedIndex = _useState4[0],
|
72
|
-
setInnerSelectedIndex = _useState4[1];
|
73
|
-
|
74
|
-
var selectedIndex = selectIndex !== void 0 ? selectIndex : innerSelectedIndex;
|
75
|
-
var selectWrapper = useRef(null);
|
76
|
-
var domRef = useRef(null);
|
77
|
-
var defaultOpItem = {
|
78
|
-
label: locale == null ? void 0 : locale.DropdownMenu.select,
|
79
|
-
value: -1
|
80
|
-
};
|
81
|
-
/**
|
82
|
-
* 下拉框的容器
|
83
|
-
* @en Dropdown container
|
84
|
-
*/
|
85
|
-
|
86
|
-
var getContainer = useCallback(function () {
|
87
|
-
if (props.getContainer) {
|
88
|
-
return props.getContainer() || selectWrapper.current;
|
89
|
-
}
|
90
|
-
|
91
|
-
return selectWrapper.current;
|
92
|
-
}, [selectWrapper.current]);
|
93
|
-
/**
|
94
|
-
* 更新选项数组和选择情况
|
95
|
-
* @en Update options list and selection
|
96
|
-
*/
|
97
|
-
|
98
|
-
var _useMemo = useMemo(function () {
|
99
|
-
return getFormattedOptions(options, currentValues);
|
100
|
-
}, [options, currentValues]),
|
101
|
-
formattedOptions = _useMemo.formattedOptions;
|
102
|
-
|
103
|
-
var selectedOptions = useMemo(function () {
|
104
|
-
return formattedOptions.map(function (ops, index) {
|
105
|
-
return ops.find(function (op) {
|
106
|
-
var value = currentValues[index];
|
107
|
-
return Array.isArray(value) ? value.includes(op.value) : op.value === value;
|
108
|
-
}) || (props.multiple ? defaultOpItem : ops[0]);
|
109
|
-
});
|
110
|
-
}, [formattedOptions, currentValues]);
|
111
|
-
/**
|
112
|
-
* 当下拉框的状态变化
|
113
|
-
* @en When the state of the dropdown box changes
|
114
|
-
*/
|
115
|
-
|
116
|
-
var handleShowDropdownChange = function handleShowDropdownChange(show, index) {
|
117
|
-
onDropdownChange && onDropdownChange(show, index);
|
118
|
-
setInnerShowDropdown(show);
|
119
|
-
};
|
120
|
-
|
121
|
-
var handleSelectedIndexChange = function handleSelectedIndexChange(idx) {
|
122
|
-
setInnerSelectedIndex(idx);
|
123
|
-
onSelectChange == null ? void 0 : onSelectChange(idx);
|
124
|
-
};
|
125
|
-
|
126
|
-
var handleValuesChange = function handleValuesChange(val) {
|
127
|
-
var newValue = [].concat(currentValues); // 级联情况下 selectedIndex 之后的选项值重置
|
128
|
-
// @en Option values are reset after selectedIndex in case of cascade
|
129
|
-
|
130
|
-
if (isCascadeArray(options)) {
|
131
|
-
newValue = newValue.slice(0, selectedIndex);
|
132
|
-
}
|
133
|
-
|
134
|
-
newValue[selectedIndex] = val;
|
135
|
-
newValue = getFormattedOptions(options, newValue).formattedValue;
|
136
|
-
setInnerValues(newValue);
|
137
|
-
onValuesChange == null ? void 0 : onValuesChange(newValue);
|
138
|
-
};
|
139
|
-
/**
|
140
|
-
* 处理选择框的点击事件
|
141
|
-
* @en Handle click event of dropdown box
|
142
|
-
*/
|
143
|
-
|
144
|
-
|
145
|
-
var handleSelectClick = function handleSelectClick(idx) {
|
146
|
-
if (disabled[idx]) return;
|
147
|
-
|
148
|
-
if (Number(idx) === selectedIndex) {
|
149
|
-
handleShowDropdownChange(!dropdownShown, idx);
|
150
|
-
} else {
|
151
|
-
handleSelectedIndexChange(idx);
|
152
|
-
if (!dropdownShown) handleShowDropdownChange(true, idx);
|
153
|
-
}
|
154
|
-
};
|
155
|
-
/**
|
156
|
-
* 判断是否为当前实例下的选择框
|
157
|
-
* @en Determine whether it is the dropdown box under the current instance
|
158
|
-
*/
|
159
|
-
|
160
|
-
|
161
|
-
var isCurrentSelectEl = function isCurrentSelectEl(target) {
|
162
|
-
var _ref = extraForDropdown || {},
|
163
|
-
isStopTouchEl = _ref.isStopTouchEl;
|
164
|
-
|
165
|
-
return isRefDom(target, selectWrapper) && isClassNameDom(target, 'select-item') || (isStopTouchEl == null ? void 0 : isStopTouchEl(target)) || false;
|
166
|
-
};
|
167
|
-
|
168
|
-
useImperativeHandle(ref, function () {
|
169
|
-
return {
|
170
|
-
dom: domRef.current
|
171
|
-
};
|
172
|
-
});
|
173
|
-
useEffect(function () {
|
174
|
-
var _getContainer;
|
175
|
-
|
176
|
-
setDefaultTop(((_getContainer = getContainer()) == null ? void 0 : _getContainer.getBoundingClientRect().bottom) || 0);
|
177
|
-
}, [getContainer, dropdownShown]);
|
178
|
-
|
179
|
-
var onCancel = props.onCancel || function () {
|
180
|
-
return handleShowDropdownChange(false);
|
181
|
-
};
|
182
|
-
|
183
|
-
var dropdownCommonProps = _extends({
|
184
|
-
showDropdown: dropdownShown,
|
185
|
-
top: (extraForDropdown == null ? void 0 : extraForDropdown.top) || defaultTop,
|
186
|
-
onCancel: onCancel
|
187
|
-
}, extraForDropdown || {}, {
|
188
|
-
isStopTouchEl: isCurrentSelectEl
|
189
|
-
});
|
190
|
-
|
191
|
-
return /*#__PURE__*/React.createElement("div", {
|
192
|
-
ref: domRef,
|
193
|
-
className: cls(prefixCls + "-dropdown-menu all-border-box " + (dropdownShown ? 'show' : ''), className),
|
194
|
-
style: style
|
195
|
-
}, /*#__PURE__*/React.createElement("div", {
|
196
|
-
className: cls(prefixCls + "-select"),
|
197
|
-
ref: selectWrapper
|
198
|
-
}, selectedOptions.map(function (op, index) {
|
199
|
-
var tip = selectTips[index] || '';
|
200
|
-
return /*#__PURE__*/React.createElement("div", {
|
201
|
-
className: cls(prefixCls + "-select-item", {
|
202
|
-
'is-disabled': disabled[index],
|
203
|
-
'is-selected': dropdownShown && selectedIndex === index
|
204
|
-
}),
|
205
|
-
key: index,
|
206
|
-
"data-idx": index,
|
207
|
-
onClick: function onClick() {
|
208
|
-
return handleSelectClick(index);
|
209
|
-
}
|
210
|
-
}, tip.length > 0 && /*#__PURE__*/React.createElement("span", {
|
211
|
-
className: cls(prefixCls + "-select-item-tip")
|
212
|
-
}, tip), /*#__PURE__*/React.createElement("div", {
|
213
|
-
className: cls(prefixCls + "-select-item-label")
|
214
|
-
}, renderSelectLabel ? renderSelectLabel(op, index) : /*#__PURE__*/React.createElement("div", {
|
215
|
-
className: cls(prefixCls + "-select-item-label-text")
|
216
|
-
}, op.label), icon === void 0 ? /*#__PURE__*/React.createElement(IconTriDown, {
|
217
|
-
className: cls(prefixCls + "-select-item-icon", {
|
218
|
-
'is-show': dropdownShown && selectedIndex === index
|
219
|
-
})
|
220
|
-
}) : icon));
|
221
|
-
}), props.multiple === true ? /*#__PURE__*/React.createElement(Dropdown, _extends({
|
222
|
-
multiple: true,
|
223
|
-
options: formattedOptions[selectedIndex] || [],
|
224
|
-
selectedValue: currentValues[selectedIndex] || [],
|
225
|
-
onOptionClick: function onOptionClick(selected, val, op) {
|
226
|
-
props.onOptionClick == null ? void 0 : props.onOptionClick(selected, val, op, selectedIndex);
|
227
|
-
},
|
228
|
-
onOptionChange: function onOptionChange(val, op) {
|
229
|
-
props.onOptionChange == null ? void 0 : props.onOptionChange(val, op, selectedIndex);
|
230
|
-
handleValuesChange(val);
|
231
|
-
}
|
232
|
-
}, dropdownCommonProps), children) : /*#__PURE__*/React.createElement(Dropdown, _extends({
|
233
|
-
multiple: props.multiple,
|
234
|
-
options: formattedOptions[selectedIndex] || [],
|
235
|
-
selectedValue: currentValues[selectedIndex] || 0,
|
236
|
-
onOptionClick: function onOptionClick(val, op) {
|
237
|
-
props.onOptionClick == null ? void 0 : props.onOptionClick(val, op, selectedIndex);
|
238
|
-
|
239
|
-
if (chooseAndClose) {
|
240
|
-
handleShowDropdownChange(false, selectedIndex);
|
241
|
-
}
|
242
|
-
},
|
243
|
-
onOptionChange: function onOptionChange(val, op) {
|
244
|
-
props.onOptionChange == null ? void 0 : props.onOptionChange(val, op, selectedIndex);
|
245
|
-
handleValuesChange(val);
|
246
|
-
}
|
247
|
-
}, dropdownCommonProps), children)));
|
248
|
-
});
|
13
|
+
var DropdownMenu = componentGenerator(Dropdown);
|
249
14
|
export default DropdownMenu;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { CSSProperties, ReactNode } from 'react';
|
2
|
-
import { OptionsItem, DropdownCommonProps } from '../dropdown';
|
2
|
+
import { OptionsItem, DropdownCommonProps, OptionValueType } from '../dropdown';
|
3
3
|
export type { OptionsItem, DropdownCommonProps };
|
4
4
|
export interface CascadeOptions extends OptionsItem {
|
5
5
|
/**
|
@@ -29,11 +29,6 @@ export interface DropdownMenuBasicProps {
|
|
29
29
|
* @en The selected number of selector (controlled)
|
30
30
|
*/
|
31
31
|
selectIndex?: number;
|
32
|
-
/**
|
33
|
-
* 自定义选择器
|
34
|
-
* @en Custom selector
|
35
|
-
*/
|
36
|
-
renderSelectLabel?: (op: OptionsItem, index: number) => ReactNode;
|
37
32
|
/**
|
38
33
|
* 选择器禁用状态
|
39
34
|
* @en Selector disabled state
|
@@ -112,47 +107,53 @@ export interface SingleOptionProps {
|
|
112
107
|
* 初始选择项
|
113
108
|
* @en initial selection item
|
114
109
|
* */
|
115
|
-
defaultValues?:
|
110
|
+
defaultValues?: OptionValueType[];
|
116
111
|
/**
|
117
112
|
* (受控) 每个选择器选中的项
|
118
113
|
* @en (Controlled) The item selected by each selector
|
119
114
|
* */
|
120
|
-
values?:
|
115
|
+
values?: OptionValueType[];
|
116
|
+
/**
|
117
|
+
* 自定义选择器
|
118
|
+
* @en Custom selector
|
119
|
+
*/
|
120
|
+
renderSelectLabel?: (op: OptionsItem, index: number) => ReactNode;
|
121
121
|
/**
|
122
122
|
* 点击选项时触发的回调函数
|
123
123
|
* @en Callback when clicking option
|
124
124
|
* */
|
125
|
-
onOptionClick?: (value:
|
125
|
+
onOptionClick?: (value: OptionValueType, item: OptionsItem, selectIndex?: number) => void;
|
126
126
|
/**
|
127
127
|
* 选项改变时触发的回调函数
|
128
128
|
* @en Callback when options change
|
129
129
|
* */
|
130
|
-
onOptionChange?: (value:
|
130
|
+
onOptionChange?: (value: OptionValueType, item: OptionsItem, selectIndex?: number) => void;
|
131
131
|
/**
|
132
132
|
* 所有选择器选项总值改变时的回调函数
|
133
133
|
* @en Callback when the total value of all selector options changes
|
134
134
|
* */
|
135
|
-
onValuesChange?: (values:
|
135
|
+
onValuesChange?: (values: OptionValueType[]) => void;
|
136
136
|
/**
|
137
137
|
* 格式化传入的options
|
138
138
|
* @en Format the input options
|
139
139
|
* */
|
140
|
-
getFormattedOptions?: (options: SingleOptionProps['options'], values?:
|
140
|
+
getFormattedOptions?: (options: SingleOptionProps['options'], values?: OptionValueType[]) => {
|
141
141
|
formattedOptions: OptionsItem[][];
|
142
|
-
formattedValue:
|
142
|
+
formattedValue: OptionValueType[];
|
143
143
|
};
|
144
144
|
}
|
145
145
|
export interface MultipleOptionProps {
|
146
146
|
multiple: true;
|
147
147
|
options: string[] | OptionsItem[][];
|
148
|
-
defaultValues?:
|
149
|
-
values?:
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
148
|
+
defaultValues?: OptionValueType[][];
|
149
|
+
values?: OptionValueType[][];
|
150
|
+
renderSelectLabel?: (op: OptionsItem[], index: number) => ReactNode;
|
151
|
+
onOptionClick?: (selected: boolean, val: OptionValueType, item: OptionsItem, selectIndex?: number) => void;
|
152
|
+
onOptionChange?: (vals: OptionValueType[], item: OptionsItem, selectIndex?: number) => void;
|
153
|
+
onValuesChange?: (values: OptionValueType[][]) => void;
|
154
|
+
getFormattedOptions?: (options: SingleOptionProps['options'], values?: OptionValueType[][]) => {
|
154
155
|
formattedOptions: OptionsItem[][];
|
155
|
-
formattedValue:
|
156
|
+
formattedValue: OptionValueType[][];
|
156
157
|
};
|
157
158
|
}
|
158
159
|
export declare type OptionProps = SingleOptionProps | MultipleOptionProps;
|
@@ -11,8 +11,7 @@ var JsEllipsis = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
11
11
|
maxHeight = props.maxHeight,
|
12
12
|
ellipsisNode = props.ellipsisNode,
|
13
13
|
collapseNode = props.collapseNode,
|
14
|
-
|
15
|
-
endExcludes = _props$endExcludes === void 0 ? [] : _props$endExcludes,
|
14
|
+
endExcludes = props.endExcludes,
|
16
15
|
reflowOnResize = props.reflowOnResize,
|
17
16
|
onReflow = props.onReflow,
|
18
17
|
onEllipsisNodeClick = props.onEllipsisNodeClick,
|
@@ -65,7 +64,7 @@ var JsEllipsis = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
65
64
|
} // Remove the exclude char at the end of the content.
|
66
65
|
|
67
66
|
|
68
|
-
while (endExcludes.includes(currentText[currentText.length - 1])) {
|
67
|
+
while (endExcludes && endExcludes.includes(currentText[currentText.length - 1])) {
|
69
68
|
currentText = currentText.slice(0, -1);
|
70
69
|
} // Callback after reflow.
|
71
70
|
|
package/esm/ellipsis/index.d.ts
CHANGED
@@ -4,7 +4,7 @@ export * from './type';
|
|
4
4
|
/**
|
5
5
|
* 文本缩略组件,支持多行缩略、富文本、自定义缩略符、尾字符过滤等。
|
6
6
|
* @en Text ellipsis component supports multi-line abbreviations, rich text, custom abbreviations, tail character filtering, etc.
|
7
|
-
* @type
|
7
|
+
* @type 信息展示
|
8
8
|
* @type_en Data Display
|
9
9
|
* @name 文本缩略
|
10
10
|
* @name_en Ellipsis
|
package/esm/ellipsis/index.js
CHANGED
@@ -8,7 +8,7 @@ export * from './type';
|
|
8
8
|
/**
|
9
9
|
* 文本缩略组件,支持多行缩略、富文本、自定义缩略符、尾字符过滤等。
|
10
10
|
* @en Text ellipsis component supports multi-line abbreviations, rich text, custom abbreviations, tail character filtering, etc.
|
11
|
-
* @type
|
11
|
+
* @type 信息展示
|
12
12
|
* @type_en Data Display
|
13
13
|
* @name 文本缩略
|
14
14
|
* @name_en Ellipsis
|
@@ -28,15 +28,14 @@ var Ellipsis = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
28
28
|
_props$collapseNode = props.collapseNode,
|
29
29
|
collapseNode = _props$collapseNode === void 0 ? '' : _props$collapseNode,
|
30
30
|
onCollapseNodeClick = props.onCollapseNodeClick,
|
31
|
-
|
32
|
-
endExcludes = _props$endExcludes === void 0 ? [] : _props$endExcludes,
|
31
|
+
endExcludes = props.endExcludes,
|
33
32
|
_props$reflowOnResize = props.reflowOnResize,
|
34
33
|
reflowOnResize = _props$reflowOnResize === void 0 ? false : _props$reflowOnResize,
|
35
34
|
onReflow = props.onReflow,
|
36
35
|
onEllipsisNodeClick = props.onEllipsisNodeClick;
|
37
36
|
var domRef = useRef(null);
|
38
37
|
var jsEllipsisRef = useRef(null);
|
39
|
-
var useNativeEllipsis = isSupportWebkitLineClamp() && maxHeight === void 0 && ellipsisNode === '...' && endExcludes.length === 0 && !onReflow && !onEllipsisNodeClick;
|
38
|
+
var useNativeEllipsis = isSupportWebkitLineClamp() && maxHeight === void 0 && ellipsisNode === '...' && (!endExcludes || endExcludes.length === 0) && !onReflow && !onEllipsisNodeClick;
|
40
39
|
useImperativeHandle(ref, function () {
|
41
40
|
var _jsEllipsisRef$curren;
|
42
41
|
|
package/esm/image/index.d.ts
CHANGED
@@ -177,7 +177,7 @@ export interface ImageRef {
|
|
177
177
|
/**
|
178
178
|
* 增强版的 img 标签,提供多种图片填充模式,支持图片加载中提示、加载失败提示。
|
179
179
|
* @en Enhanced img tag, provides a variety of image filling modes, and supports image loading prompts and loading failure prompts.
|
180
|
-
* @type
|
180
|
+
* @type 信息展示
|
181
181
|
* @type_en Data Display
|
182
182
|
* @name 图片
|
183
183
|
* @name_en Image
|
package/esm/image/index.js
CHANGED
@@ -8,7 +8,7 @@ import { useSystem, useWindowSize, getStyleWithVendor, useMountedState } from '.
|
|
8
8
|
/**
|
9
9
|
* 增强版的 img 标签,提供多种图片填充模式,支持图片加载中提示、加载失败提示。
|
10
10
|
* @en Enhanced img tag, provides a variety of image filling modes, and supports image loading prompts and loading failure prompts.
|
11
|
-
* @type
|
11
|
+
* @type 信息展示
|
12
12
|
* @type_en Data Display
|
13
13
|
* @name 图片
|
14
14
|
* @name_en Image
|
@@ -37,6 +37,7 @@ export var BaseImage = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
37
37
|
var wrapRef = useRef(null);
|
38
38
|
var retryCountRef = useRef(0);
|
39
39
|
var loadingImageRef = useRef(null);
|
40
|
+
var hasLoadedRef = useRef(false);
|
40
41
|
var style = props.style,
|
41
42
|
className = props.className,
|
42
43
|
status = props.status,
|
@@ -160,6 +161,7 @@ export var BaseImage = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
160
161
|
image.onload = function (evt) {
|
161
162
|
loadingImageRef.current = null;
|
162
163
|
imageDomRef.current = image;
|
164
|
+
hasLoadedRef.current = true;
|
163
165
|
changeStatus('loaded');
|
164
166
|
var _image$width = image.width,
|
165
167
|
imageWidth = _image$width === void 0 ? 0 : _image$width,
|
@@ -274,7 +276,8 @@ export var BaseImage = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
274
276
|
})) : null, /*#__PURE__*/React.createElement("div", {
|
275
277
|
className: cls('image-container', validStatus, {
|
276
278
|
animate: Boolean(animateDuration),
|
277
|
-
'static-label': staticLabel
|
279
|
+
'static-label': staticLabel,
|
280
|
+
'has-loaded': hasLoadedRef.current
|
278
281
|
}),
|
279
282
|
style: getStyleWithVendor({
|
280
283
|
transitionDuration: animateDuration + "ms"
|
@@ -66,7 +66,8 @@
|
|
66
66
|
}
|
67
67
|
.arco-image .image-container.static-label,
|
68
68
|
.arco-image .image-container.loaded,
|
69
|
-
.arco-image .image-container.error
|
69
|
+
.arco-image .image-container.error,
|
70
|
+
.arco-image .image-container.has-loaded {
|
70
71
|
opacity: 1;
|
71
72
|
}
|
72
73
|
.arco-image .image-container.animate {
|
@@ -1,181 +1,10 @@
|
|
1
|
-
import React
|
2
|
-
import {
|
3
|
-
export
|
4
|
-
/**
|
5
|
-
* 图片地址
|
6
|
-
* @en Image Url
|
7
|
-
*/
|
8
|
-
url: string;
|
9
|
-
/**
|
10
|
-
* 图片文件
|
11
|
-
* @en Image File
|
12
|
-
*/
|
13
|
-
file?: File;
|
14
|
-
/**
|
15
|
-
* 图片状态
|
16
|
-
* @en Image Status
|
17
|
-
* @default 'loaded'
|
18
|
-
*/
|
19
|
-
status: 'loaded' | 'loading' | 'error';
|
20
|
-
}
|
21
|
-
export interface AdapterFile {
|
22
|
-
url?: string;
|
23
|
-
size: number;
|
24
|
-
name: string;
|
25
|
-
}
|
26
|
-
export interface SelectCallback {
|
27
|
-
files: AdapterFile[];
|
28
|
-
}
|
29
|
-
export interface ImagePickerProps {
|
30
|
-
/**
|
31
|
-
* 自定义类名
|
32
|
-
* @en Custom className
|
33
|
-
*/
|
34
|
-
className?: string;
|
35
|
-
/**
|
36
|
-
* 自定义样式
|
37
|
-
* @en Custom stylesheet
|
38
|
-
*/
|
39
|
-
style?: React.CSSProperties;
|
40
|
-
/**
|
41
|
-
* 已选择图片列表
|
42
|
-
* @en selected images list
|
43
|
-
*/
|
44
|
-
images: ImagePickItem[];
|
45
|
-
/**
|
46
|
-
* 可以选择的文件类型
|
47
|
-
* @en Available File Types
|
48
|
-
* @default 'image/*'
|
49
|
-
*/
|
50
|
-
accept?: string;
|
51
|
-
/**
|
52
|
-
* 是否支持多选
|
53
|
-
* @en Whether To Support Multiple Selection
|
54
|
-
*/
|
55
|
-
multiple?: boolean;
|
56
|
-
/**
|
57
|
-
* 图片选取模式 Image selection mode [capture MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/capture)
|
58
|
-
* @en Whether To Support Multiple Selection [capture MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/capture)
|
59
|
-
*/
|
60
|
-
capture?: InputHTMLAttributes<unknown>['capture'];
|
61
|
-
/**
|
62
|
-
* 一行展示图片张数
|
63
|
-
* @en The Number Of Pictures Displayed In A Row
|
64
|
-
* @default 3
|
65
|
-
*/
|
66
|
-
columns?: number;
|
67
|
-
/**
|
68
|
-
* 格子间的间距
|
69
|
-
* @en spacing between grids
|
70
|
-
* @default 8
|
71
|
-
*/
|
72
|
-
gutter?: number;
|
73
|
-
/**
|
74
|
-
* 最多选择图片张数,超出数量自动隐藏上传按钮,0表示不做限制
|
75
|
-
* @en max Pictures Can Choose
|
76
|
-
*/
|
77
|
-
limit?: number;
|
78
|
-
/**
|
79
|
-
* 文件大小限制,单位为K
|
80
|
-
* @en File size limit, in K
|
81
|
-
*/
|
82
|
-
maxSize?: number;
|
83
|
-
/**
|
84
|
-
* 是否隐藏删除Icon
|
85
|
-
* @en Whether to hide delete Icon
|
86
|
-
* @default false
|
87
|
-
*/
|
88
|
-
hideDelete?: boolean;
|
89
|
-
/**
|
90
|
-
* 是否隐藏选择Icon
|
91
|
-
* @en Whether to hide Select Icon
|
92
|
-
* @default false
|
93
|
-
*/
|
94
|
-
hideSelect?: boolean;
|
95
|
-
/**
|
96
|
-
* 是否总是展示选择Icon,默认情况下当图片数量超出limit值时会自动隐藏选择Icon
|
97
|
-
* @en Whether to always show Select Icon
|
98
|
-
* @default false
|
99
|
-
*/
|
100
|
-
alwaysShowSelect?: boolean;
|
101
|
-
/**
|
102
|
-
* 禁用选择和删除图片
|
103
|
-
* @en Disable Select & Delete Image
|
104
|
-
*/
|
105
|
-
disabled?: boolean;
|
106
|
-
/**
|
107
|
-
* 自定义删除图标
|
108
|
-
* @en Defined Delete Icon
|
109
|
-
*/
|
110
|
-
deleteIcon?: React.ReactNode;
|
111
|
-
/**
|
112
|
-
* 自定义选择图标
|
113
|
-
* @en Defined Select Icon
|
114
|
-
*/
|
115
|
-
selectIcon?: React.ReactNode;
|
116
|
-
/**
|
117
|
-
* 透传给图片的属性
|
118
|
-
* @en Attributes passed through to the image
|
119
|
-
*/
|
120
|
-
imageProps?: ImageProps;
|
121
|
-
/**
|
122
|
-
* 自定义上传失败展示
|
123
|
-
* @en Defined upload failed display
|
124
|
-
*/
|
125
|
-
renderError?: (index?: number) => React.ReactNode | React.ReactNode;
|
126
|
-
/**
|
127
|
-
* 自定义上传中展示
|
128
|
-
* @en Defined uploading display
|
129
|
-
*/
|
130
|
-
renderLoading?: (index?: number) => React.ReactNode | React.ReactNode;
|
131
|
-
/**
|
132
|
-
* 上传方法
|
133
|
-
* @en upload function
|
134
|
-
*/
|
135
|
-
upload?: (file: ImagePickItem) => Promise<ImagePickItem | null>;
|
136
|
-
onSelect?: (...args: any[]) => void;
|
137
|
-
/**
|
138
|
-
* 已选图片列表发生变化
|
139
|
-
* @en The list of selected images changes
|
140
|
-
*/
|
141
|
-
onChange?: (fileList: ImagePickItem[]) => Promise<void>;
|
142
|
-
/**
|
143
|
-
* 图片超过限制大小
|
144
|
-
* @en Image exceeds size limit
|
145
|
-
*/
|
146
|
-
onMaxSizeExceed?: (file: File) => void;
|
147
|
-
/**
|
148
|
-
* 选择张数超过限制
|
149
|
-
* @en The number of pictures exceeds the limit
|
150
|
-
*/
|
151
|
-
onLimitExceed?: (files: File[]) => void;
|
152
|
-
/**
|
153
|
-
* 图片点击
|
154
|
-
* @en click event
|
155
|
-
*/
|
156
|
-
onClick?: (e: React.MouseEvent<HTMLElement, MouseEvent>, image: ImagePickItem, index: number) => void;
|
157
|
-
/**
|
158
|
-
* 图片长按事件
|
159
|
-
* @en long press event
|
160
|
-
*/
|
161
|
-
onLongPress?: (e: React.TouchEvent<HTMLElement>, image: ImagePickItem, index: number) => void;
|
162
|
-
/**
|
163
|
-
* 图片选择适配器
|
164
|
-
* @en Select Adaptor
|
165
|
-
*/
|
166
|
-
selectAdapter: () => Promise<SelectCallback>;
|
167
|
-
}
|
168
|
-
export interface ImagePickerRef {
|
169
|
-
/**
|
170
|
-
* 最外层 DOM 元素
|
171
|
-
* @en The outer DOM element of the component
|
172
|
-
*/
|
173
|
-
dom: HTMLDivElement | null;
|
174
|
-
}
|
1
|
+
import React from 'react';
|
2
|
+
import { ImagePickerProps, ImagePickerRef } from './type';
|
3
|
+
export * from './type';
|
175
4
|
/**
|
176
5
|
* 图片选择器组件
|
177
6
|
* @en ImagePicker Component
|
178
|
-
* @type
|
7
|
+
* @type 数据录入
|
179
8
|
* @type_en Data Entry
|
180
9
|
* @name 图片选择器
|
181
10
|
* @name_en ImagePicker
|