react-native-system-ui 1.0.6 → 1.0.7
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/README.md +1 -1
- package/dist/cjs/components/field/Field.js +1 -1
- package/dist/cjs/components/form/Form.js +1 -1
- package/dist/cjs/components/popup/Popup.js +1 -1
- package/dist/cjs/components/toast/Toast.js +1 -1
- package/dist/es/components/field/Field.js +1 -1
- package/dist/es/components/form/Form.js +1 -1
- package/dist/es/components/popup/Popup.js +1 -1
- package/dist/es/components/toast/Toast.js +1 -1
- package/dist/types/components/action-sheet/ActionSheet.d.ts +1 -4
- package/dist/types/components/action-sheet/index.d.ts +1 -4
- package/dist/types/components/action-sheet/tokens.d.ts +1 -4
- package/dist/types/components/action-sheet/types.d.ts +1 -87
- package/dist/types/components/area/Area.d.ts +1 -4
- package/dist/types/components/area/index.d.ts +1 -3
- package/dist/types/components/area/tokens.d.ts +1 -7
- package/dist/types/components/area/types.d.ts +1 -20
- package/dist/types/components/avatar/Avatar.d.ts +1 -7
- package/dist/types/components/avatar/index.d.ts +1 -2
- package/dist/types/components/avatar/tokens.d.ts +1 -4
- package/dist/types/components/avatar/types.d.ts +1 -62
- package/dist/types/components/badge/Badge.d.ts +1 -4
- package/dist/types/components/badge/index.d.ts +1 -3
- package/dist/types/components/badge/tokens.d.ts +1 -2
- package/dist/types/components/badge/types.d.ts +1 -57
- package/dist/types/components/button/Button.d.ts +1 -5
- package/dist/types/components/button/ButtonContext.d.ts +1 -2
- package/dist/types/components/button/ButtonGroup.d.ts +1 -23
- package/dist/types/components/button/index.d.ts +1 -6
- package/dist/types/components/button/tokens.d.ts +1 -2
- package/dist/types/components/button/types.d.ts +1 -109
- package/dist/types/components/calendar/Calendar.d.ts +1 -4
- package/dist/types/components/calendar/index.d.ts +1 -3
- package/dist/types/components/calendar/tokens.d.ts +1 -4
- package/dist/types/components/calendar/types.d.ts +1 -111
- package/dist/types/components/cascader/Cascader.d.ts +1 -4
- package/dist/types/components/cascader/index.d.ts +1 -4
- package/dist/types/components/cascader/tokens.d.ts +1 -4
- package/dist/types/components/cascader/types.d.ts +1 -142
- package/dist/types/components/cascader/useCascaderExtend.d.ts +1 -12
- package/dist/types/components/cell/Cell.d.ts +1 -4
- package/dist/types/components/cell/CellContext.d.ts +1 -7
- package/dist/types/components/cell/CellGroup.d.ts +1 -3
- package/dist/types/components/cell/index.d.ts +1 -8
- package/dist/types/components/cell/tokens.d.ts +1 -4
- package/dist/types/components/cell/types.d.ts +1 -112
- package/dist/types/components/checkbox/Checkbox.d.ts +1 -5
- package/dist/types/components/checkbox/CheckboxContext.d.ts +1 -2
- package/dist/types/components/checkbox/CheckboxGroup.d.ts +1 -22
- package/dist/types/components/checkbox/index.d.ts +1 -7
- package/dist/types/components/checkbox/tokens.d.ts +1 -2
- package/dist/types/components/checkbox/types.d.ts +1 -99
- package/dist/types/components/circle/Circle.d.ts +1 -5
- package/dist/types/components/circle/index.d.ts +1 -3
- package/dist/types/components/circle/tokens.d.ts +1 -4
- package/dist/types/components/circle/types.d.ts +1 -51
- package/dist/types/components/collapse/Collapse.d.ts +1 -43
- package/dist/types/components/collapse/index.d.ts +1 -3
- package/dist/types/components/collapse/tokens.d.ts +1 -4
- package/dist/types/components/collapse/types.d.ts +1 -45
- package/dist/types/components/config-provider/ConfigProvider.d.ts +1 -3
- package/dist/types/components/config-provider/DirectionContext.d.ts +1 -3
- package/dist/types/components/config-provider/LocaleContext.d.ts +1 -3
- package/dist/types/components/config-provider/index.d.ts +1 -6
- package/dist/types/components/config-provider/locale/en-US.d.ts +1 -106
- package/dist/types/components/config-provider/locale/types.d.ts +1 -130
- package/dist/types/components/config-provider/locale/zh-CN.d.ts +1 -106
- package/dist/types/components/config-provider/tokens.d.ts +1 -3
- package/dist/types/components/config-provider/types.d.ts +1 -10
- package/dist/types/components/config-provider/useDirection.d.ts +1 -1
- package/dist/types/components/config-provider/useLocale.d.ts +1 -1
- package/dist/types/components/count-down/CountDown.d.ts +1 -4
- package/dist/types/components/count-down/index.d.ts +1 -4
- package/dist/types/components/count-down/tokens.d.ts +1 -4
- package/dist/types/components/count-down/types.d.ts +1 -29
- package/dist/types/components/datetime-picker/DatetimePicker.d.ts +1 -4
- package/dist/types/components/datetime-picker/index.d.ts +1 -3
- package/dist/types/components/datetime-picker/tokens.d.ts +1 -15
- package/dist/types/components/datetime-picker/types.d.ts +1 -38
- package/dist/types/components/dialog/Dialog.d.ts +1 -4
- package/dist/types/components/dialog/imperative.d.ts +1 -23
- package/dist/types/components/dialog/index.d.ts +1 -5
- package/dist/types/components/dialog/tokens.d.ts +1 -48
- package/dist/types/components/dialog/types.d.ts +1 -70
- package/dist/types/components/divider/Divider.d.ts +1 -3
- package/dist/types/components/divider/index.d.ts +1 -3
- package/dist/types/components/divider/tokens.d.ts +1 -4
- package/dist/types/components/divider/types.d.ts +1 -48
- package/dist/types/components/empty/Empty.d.ts +1 -3
- package/dist/types/components/empty/index.d.ts +1 -3
- package/dist/types/components/empty/tokens.d.ts +1 -4
- package/dist/types/components/empty/types.d.ts +1 -44
- package/dist/types/components/error-boundary/ErrorBoundary.d.ts +1 -6
- package/dist/types/components/error-boundary/index.d.ts +1 -2
- package/dist/types/components/error-boundary/types.d.ts +1 -18
- package/dist/types/components/field/Field.d.ts +1 -4
- package/dist/types/components/field/index.d.ts +1 -7
- package/dist/types/components/field/tokens.d.ts +1 -131
- package/dist/types/components/field/types.d.ts +1 -86
- package/dist/types/components/flex/Flex.d.ts +1 -9
- package/dist/types/components/flex/FlexContext.d.ts +1 -2
- package/dist/types/components/flex/FlexItem.d.ts +1 -3
- package/dist/types/components/flex/index.d.ts +1 -8
- package/dist/types/components/flex/tokens.d.ts +1 -2
- package/dist/types/components/flex/types.d.ts +1 -37
- package/dist/types/components/form/Form.d.ts +1 -26
- package/dist/types/components/form/FormItem.d.ts +1 -5
- package/dist/types/components/form/FormList.d.ts +1 -18
- package/dist/types/components/form/index.d.ts +1 -17
- package/dist/types/components/form/tokens.d.ts +1 -7
- package/dist/types/components/form/types.d.ts +1 -68
- package/dist/types/components/grid/Grid.d.ts +1 -19
- package/dist/types/components/grid/GridContext.d.ts +1 -2
- package/dist/types/components/grid/GridItem.d.ts +1 -3
- package/dist/types/components/grid/index.d.ts +1 -5
- package/dist/types/components/grid/tokens.d.ts +1 -4
- package/dist/types/components/grid/types.d.ts +1 -77
- package/dist/types/components/image/Image.d.ts +1 -5
- package/dist/types/components/image/index.d.ts +1 -4
- package/dist/types/components/image/tokens.d.ts +1 -2
- package/dist/types/components/image/types.d.ts +1 -53
- package/dist/types/components/image-preview/ImagePreview.d.ts +1 -4
- package/dist/types/components/image-preview/imperative.d.ts +1 -5
- package/dist/types/components/image-preview/index.d.ts +1 -6
- package/dist/types/components/image-preview/tokens.d.ts +1 -27
- package/dist/types/components/image-preview/types.d.ts +1 -55
- package/dist/types/components/index.d.ts +1 -213
- package/dist/types/components/input/Input.d.ts +1 -8
- package/dist/types/components/input/index.d.ts +1 -4
- package/dist/types/components/input/tokens.d.ts +1 -2
- package/dist/types/components/input/types.d.ts +1 -42
- package/dist/types/components/loading/Loading.d.ts +1 -3
- package/dist/types/components/loading/index.d.ts +1 -3
- package/dist/types/components/loading/tokens.d.ts +1 -4
- package/dist/types/components/loading/types.d.ts +1 -32
- package/dist/types/components/nav-bar/NavBar.d.ts +1 -4
- package/dist/types/components/nav-bar/index.d.ts +1 -4
- package/dist/types/components/nav-bar/tokens.d.ts +1 -4
- package/dist/types/components/nav-bar/types.d.ts +1 -67
- package/dist/types/components/notice-bar/NoticeBar.d.ts +1 -3
- package/dist/types/components/notice-bar/index.d.ts +1 -3
- package/dist/types/components/notice-bar/tokens.d.ts +1 -24
- package/dist/types/components/notice-bar/types.d.ts +1 -26
- package/dist/types/components/notify/Notify.d.ts +1 -6
- package/dist/types/components/notify/imperative.d.ts +1 -22
- package/dist/types/components/notify/index.d.ts +1 -15
- package/dist/types/components/notify/tokens.d.ts +1 -4
- package/dist/types/components/notify/types.d.ts +1 -64
- package/dist/types/components/number-keyboard/NumberKeyboard.d.ts +1 -4
- package/dist/types/components/number-keyboard/index.d.ts +1 -4
- package/dist/types/components/number-keyboard/tokens.d.ts +1 -42
- package/dist/types/components/number-keyboard/types.d.ts +1 -35
- package/dist/types/components/overlay/Overlay.d.ts +1 -5
- package/dist/types/components/overlay/index.d.ts +1 -5
- package/dist/types/components/overlay/tokens.d.ts +1 -6
- package/dist/types/components/overlay/types.d.ts +1 -13
- package/dist/types/components/password-input/PasswordInput.d.ts +1 -4
- package/dist/types/components/password-input/index.d.ts +1 -2
- package/dist/types/components/password-input/tokens.d.ts +1 -40
- package/dist/types/components/password-input/types.d.ts +1 -35
- package/dist/types/components/picker/Picker.d.ts +1 -32
- package/dist/types/components/picker/index.d.ts +1 -4
- package/dist/types/components/picker/tokens.d.ts +1 -39
- package/dist/types/components/picker/types.d.ts +1 -73
- package/dist/types/components/popup/Popup.d.ts +1 -5
- package/dist/types/components/popup/index.d.ts +1 -4
- package/dist/types/components/popup/tokens.d.ts +1 -48
- package/dist/types/components/popup/types.d.ts +1 -41
- package/dist/types/components/portal/Portal.d.ts +1 -14
- package/dist/types/components/portal/PortalContext.d.ts +1 -7
- package/dist/types/components/portal/PortalHost.d.ts +1 -11
- package/dist/types/components/portal/index.d.ts +1 -3
- package/dist/types/components/portal/tokens.d.ts +1 -3
- package/dist/types/components/portal/types.d.ts +1 -1
- package/dist/types/components/progress/Progress.d.ts +1 -8
- package/dist/types/components/progress/index.d.ts +1 -4
- package/dist/types/components/progress/tokens.d.ts +1 -4
- package/dist/types/components/progress/types.d.ts +1 -51
- package/dist/types/components/radio/Radio.d.ts +1 -3
- package/dist/types/components/radio/RadioContext.d.ts +1 -2
- package/dist/types/components/radio/RadioGroup.d.ts +1 -14
- package/dist/types/components/radio/index.d.ts +1 -7
- package/dist/types/components/radio/tokens.d.ts +1 -2
- package/dist/types/components/radio/types.d.ts +1 -95
- package/dist/types/components/safe-area-view/SafeAreaView.d.ts +1 -10
- package/dist/types/components/safe-area-view/index.d.ts +1 -2
- package/dist/types/components/safe-area-view/tokens.d.ts +1 -3
- package/dist/types/components/safe-area-view/types.d.ts +1 -1
- package/dist/types/components/search/Search.d.ts +1 -4
- package/dist/types/components/search/index.d.ts +1 -4
- package/dist/types/components/search/tokens.d.ts +1 -41
- package/dist/types/components/search/types.d.ts +1 -28
- package/dist/types/components/selector/Selector.d.ts +1 -7
- package/dist/types/components/selector/index.d.ts +1 -4
- package/dist/types/components/selector/tokens.d.ts +1 -2
- package/dist/types/components/selector/types.d.ts +1 -74
- package/dist/types/components/share-sheet/ShareSheet.d.ts +1 -4
- package/dist/types/components/share-sheet/index.d.ts +1 -4
- package/dist/types/components/share-sheet/tokens.d.ts +1 -40
- package/dist/types/components/share-sheet/types.d.ts +1 -26
- package/dist/types/components/sidebar/Sidebar.d.ts +1 -4
- package/dist/types/components/sidebar/SidebarContext.d.ts +1 -7
- package/dist/types/components/sidebar/SidebarItem.d.ts +1 -4
- package/dist/types/components/sidebar/index.d.ts +1 -8
- package/dist/types/components/sidebar/tokens.d.ts +1 -4
- package/dist/types/components/sidebar/types.d.ts +1 -64
- package/dist/types/components/skeleton/Skeleton.d.ts +1 -5
- package/dist/types/components/skeleton/index.d.ts +1 -5
- package/dist/types/components/skeleton/tokens.d.ts +1 -2
- package/dist/types/components/skeleton/types.d.ts +1 -45
- package/dist/types/components/slider/Slider.d.ts +1 -4
- package/dist/types/components/slider/index.d.ts +1 -3
- package/dist/types/components/slider/tokens.d.ts +1 -28
- package/dist/types/components/slider/types.d.ts +1 -38
- package/dist/types/components/space/Space.d.ts +1 -3
- package/dist/types/components/space/index.d.ts +1 -3
- package/dist/types/components/space/tokens.d.ts +1 -3
- package/dist/types/components/space/types.d.ts +1 -39
- package/dist/types/components/stepper/Stepper.d.ts +1 -4
- package/dist/types/components/stepper/index.d.ts +1 -4
- package/dist/types/components/stepper/tokens.d.ts +1 -46
- package/dist/types/components/stepper/types.d.ts +1 -46
- package/dist/types/components/swiper/Swiper.d.ts +1 -9
- package/dist/types/components/swiper/SwiperItem.d.ts +1 -1
- package/dist/types/components/swiper/SwiperPagIndicator.d.ts +1 -36
- package/dist/types/components/swiper/index.d.ts +1 -14
- package/dist/types/components/swiper/tokens.d.ts +1 -11
- package/dist/types/components/swiper/types.d.ts +1 -29
- package/dist/types/components/switch/Switch.d.ts +1 -7
- package/dist/types/components/switch/index.d.ts +1 -4
- package/dist/types/components/switch/tokens.d.ts +1 -2
- package/dist/types/components/switch/types.d.ts +1 -33
- package/dist/types/components/tabbar/Tabbar.d.ts +1 -4
- package/dist/types/components/tabbar/TabbarContext.d.ts +1 -13
- package/dist/types/components/tabbar/TabbarItem.d.ts +1 -4
- package/dist/types/components/tabbar/index.d.ts +1 -9
- package/dist/types/components/tabbar/tokens.d.ts +1 -28
- package/dist/types/components/tabbar/types.d.ts +1 -39
- package/dist/types/components/tabs/Tabs.d.ts +1 -8
- package/dist/types/components/tabs/index.d.ts +1 -10
- package/dist/types/components/tabs/tokens.d.ts +1 -96
- package/dist/types/components/tabs/types.d.ts +1 -64
- package/dist/types/components/tag/Tag.d.ts +1 -3
- package/dist/types/components/tag/index.d.ts +1 -3
- package/dist/types/components/tag/tokens.d.ts +1 -4
- package/dist/types/components/tag/types.d.ts +1 -69
- package/dist/types/components/theme.d.ts +1 -112
- package/dist/types/components/toast/Toast.d.ts +1 -33
- package/dist/types/components/toast/imperative.d.ts +1 -22
- package/dist/types/components/toast/index.d.ts +1 -15
- package/dist/types/components/toast/tokens.d.ts +1 -29
- package/dist/types/components/toast/types.d.ts +1 -1
- package/dist/types/components/typography/Typography.d.ts +1 -11
- package/dist/types/components/typography/index.d.ts +1 -3
- package/dist/types/components/typography/tokens.d.ts +1 -2
- package/dist/types/components/typography/types.d.ts +1 -66
- package/dist/types/components/water-mark/WaterMark.d.ts +1 -4
- package/dist/types/components/water-mark/index.d.ts +1 -5
- package/dist/types/components/water-mark/tokens.d.ts +1 -2
- package/dist/types/components/water-mark/types.d.ts +1 -58
- package/dist/types/design-system/Text.d.ts +1 -3
- package/dist/types/design-system/ThemeContext.d.ts +1 -14
- package/dist/types/design-system/ThemeProvider.d.ts +1 -14
- package/dist/types/design-system/createComponentTokensHook.d.ts +1 -4
- package/dist/types/design-system/index.d.ts +1 -11
- package/dist/types/design-system/mergeTokensOverride.d.ts +1 -2
- package/dist/types/design-system/presets.d.ts +1 -8
- package/dist/types/design-system/tokens.d.ts +1 -74
- package/dist/types/design-system/useTheme.d.ts +1 -1
- package/dist/types/hooks/animation/index.d.ts +1 -3
- package/dist/types/hooks/animation/useAnimatedTransition.d.ts +1 -13
- package/dist/types/hooks/animation/useReducedMotion.d.ts +1 -3
- package/dist/types/hooks/aria/index.d.ts +1 -4
- package/dist/types/hooks/aria/useAriaListBox.d.ts +1 -14
- package/dist/types/hooks/aria/useAriaOverlay.d.ts +1 -14
- package/dist/types/hooks/aria/useAriaPress.d.ts +1 -19
- package/dist/types/hooks/aria/useAriaToggle.d.ts +1 -12
- package/dist/types/hooks/gesture/index.d.ts +1 -1
- package/dist/types/hooks/gesture/useGestureScroll.d.ts +1 -33
- package/dist/types/hooks/index.d.ts +1 -9
- package/dist/types/hooks/overlay/OverlayStackStore.d.ts +1 -39
- package/dist/types/hooks/overlay/index.d.ts +1 -2
- package/dist/types/hooks/overlay/useOverlayStack.d.ts +1 -10
- package/dist/types/hooks/useControllableValue.d.ts +1 -9
- package/dist/types/hooks/useCountDown.d.ts +1 -23
- package/dist/types/hooks/useHairline.d.ts +1 -10
- package/dist/types/hooks/useSafeAreaPadding.d.ts +1 -13
- package/dist/types/index.d.ts +1 -9
- package/dist/types/nativewind.d.ts +1 -4
- package/dist/types/platform/animation.d.ts +1 -9
- package/dist/types/platform/history.d.ts +1 -1
- package/dist/types/platform/index.d.ts +1 -5
- package/dist/types/platform/measure.d.ts +1 -7
- package/dist/types/platform/runtime.d.ts +1 -3
- package/dist/types/platform/scrollLock.d.ts +1 -2
- package/dist/types/types.d.ts +1 -4
- package/dist/types/utils/array.d.ts +1 -1
- package/dist/types/utils/color.d.ts +1 -3
- package/dist/types/utils/compare.d.ts +1 -2
- package/dist/types/utils/createPlatformShadow.d.ts +1 -11
- package/dist/types/utils/date.d.ts +1 -13
- package/dist/types/utils/deepMerge.d.ts +1 -3
- package/dist/types/utils/hairline.d.ts +1 -15
- package/dist/types/utils/index.d.ts +1 -13
- package/dist/types/utils/number.d.ts +1 -11
- package/dist/types/utils/promise.d.ts +1 -1
- package/dist/types/utils/render.d.ts +1 -5
- package/dist/types/utils/rtl.d.ts +1 -5
- package/dist/types/utils/string.d.ts +1 -3
- package/dist/types/utils/validate.d.ts +1 -13
- package/package.json +142 -149
package/README.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Field=void 0;var _cell=_interopRequireDefault(require("../cell")),_dialog=_interopRequireDefault(require("../dialog")),_string=require("../../utils/string"),_validate=require("../../utils/validate"),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var i,l,n={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return n;if(i=t?a:r){if(i.has(e))return i.get(e);i.set(e,n)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((l=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(l.get||l.set)?i(n,t,l):n[t]=e[t]);return n})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},_extends.apply(null,arguments)}const alignMap={left:"flex-start",center:"center",right:"flex-end"},mapKeyboardType=e=>{switch(e){case"number":return"decimal-pad";case"digit":return"number-pad";case"tel":return"phone-pad";default:return}},FieldSlot=({onPress:e,style:t,children:r,accessibilityRole:a="button"})=>r?e?_react().default.createElement(_reactNative().Pressable,{onPress:e,accessibilityRole:a,style:t},r):_react().default.createElement(_reactNative().View,{style:t},r):null,FieldClearButton=({show:e,tokens:t,clearIcon:r,onPressIn:a,onPressOut:i,onPress:l})=>{if(!e)return null;const n="web"===_reactNative().Platform.OS?{onMouseDown:e=>{e.preventDefault?.(),e.stopPropagation?.()}}:void 0;return _react().default.createElement(_reactNative().Pressable,_extends({style:[t.layout.clearIcon,{paddingHorizontal:t.spacing.rightIconGap}]},n,{onPressIn:a,onPressOut:i,onPress:l,accessibilityRole:"button"}),_react().default.isValidElement(r)?r:_react().default.createElement(_reactNativeSystemIcon().Clear,{size:t.sizes.clearIcon,fill:t.colors.clear,color:t.colors.clear}))},FieldInput=({inputRef:e,tokens:t,isTextarea:r,disabled:a,error:i,finalTextAlign:l,lineHeight:n,textareaHeight:o,minHeight:c,inputStyle:s,value:u,onChangeText:d,onFocus:f,onBlur:_,onPressIn:g,rows:p,placeholderTextColor:m,keyboardType:y,onContentSizeChange:v,describedBy:b,secureTextEntry:h,editable:x,restInputProps:w})=>{const T=[r?t.layout.textarea:t.layout.input,{color:a?t.colors.disabled:i?t.colors.error:t.colors.input,fontSize:t.typography.inputSize,textAlign:l,...r?{lineHeight:n,height:o,minHeight:c}:{minHeight:t.sizes.controlMinHeight}},s];return _react().default.createElement(_reactNative().TextInput,_extends({ref:e,style:T,value:u,onChangeText:d,onFocus:f,onBlur:_,onPressIn:g,editable:x,secureTextEntry:h,multiline:r,numberOfLines:r?p:void 0,keyboardType:y,placeholderTextColor:m,onContentSizeChange:r?v:void 0},b?{accessibilityDescribedBy:b}:null,{clearButtonMode:"never"},w))},FieldControlRow=({tokens:e,prefixNode:t,leftIconNode:r,controlNode:a,clearNode:i,rightIconNode:l,suffixNode:n})=>_react().default.createElement(_reactNative().View,{style:e.layout.body},t,r,_react().default.createElement(_reactNative().View,{style:[e.layout.controlWrapper,{minHeight:e.sizes.controlMinHeight}]},a,i),l,n),FieldImpl=(e,t)=>{const{tokensOverride:r,label:a,labelWidth:i,labelAlign:l,inputAlign:n,controlAlign:o,required:c=!1,colon:s=!1,intro:u,description:d,tooltip:f,error:_=!1,errorMessage:g,errorMessageAlign:p="left",disabled:m=!1,readOnly:y=!1,clearable:v=!1,clearTrigger:b,clearIcon:h,leftIcon:x,rightIcon:w,prefix:T,suffix:S,button:R,extra:I,value:N,defaultValue:C="",type:k="text",rows:M,autoSize:P=!1,formatter:z,formatTrigger:E,showWordLimit:F=!1,onOverlimit:O,onClear:H,onClick:L,onClickInput:q,onClickLeftIcon:D,onClickRightIcon:A,border:B,center:W,clickable:V,isLink:j,arrowDirection:G,size:K,titleStyle:$,contentStyle:Q,inputStyle:J,labelStyle:U,introStyle:X,errorMessageStyle:Y,style:Z,androidRipple:ee,children:te,placeholderTextColor:re,onFocus:ae,onBlur:ie,onPressIn:le,onChangeText:ne,maxLength:oe,...ce}=e,se=(0,_tokens.useFieldTokens)(r),ue=i??se.defaults.labelWidth,de=l??se.defaults.labelAlign,fe=n??se.defaults.inputAlign,_e=o??se.defaults.controlAlign,ge=b??se.defaults.clearTrigger,pe=M??se.defaults.rows,me=E??se.defaults.formatTrigger,ye=[{width:ue,minWidth:ue,maxWidth:ue,flexBasis:ue,marginRight:se.spacing.labelGap,flexShrink:0,flexGrow:0},$],ve=S??R,be=u??d,he=re??(m?se.colors.disabled:se.colors.placeholder),xe="textarea"===k,we=void 0!==N,[Te,Se]=(0,_react().useState)(C),Re=we?N??"":Te,[Ie,Ne]=(0,_react().useState)(!1),[Ce,ke]=(0,_react().useState)(!1),Me=(0,_react().useRef)(!1),Pe=(0,_react().useRef)(null),ze=(0,_react().useId)(),Ee=(0,_react().useId)(),Fe=(0,_react().useMemo)(()=>{const e=[(0,_validate.isRenderable)(g)?Ee:null,(0,_validate.isRenderable)(be)?ze:null].filter(Boolean);return e.length?e:void 0},[Ee,g,ze,be]),Oe=se.defaults.textareaLineHeight,He=P&&(0,_validate.isObject)(P)?P:void 0,Le=xe?He&&(0,_validate.isDef)(He.minRows)?Math.max(1,He.minRows):Math.max(1,pe):1,qe=xe&&He&&(0,_validate.isDef)(He.maxRows)?Math.max(1,He.maxRows):void 0,De=(0,_react().useMemo)(()=>xe?Math.max(se.sizes.textareaMinHeight,Le*Oe):void 0,[xe,Oe,Le,se.sizes.textareaMinHeight]),Ae=(0,_react().useMemo)(()=>xe&&qe?Math.max(se.sizes.textareaMinHeight,qe*Oe):void 0,[xe,Oe,qe,se.sizes.textareaMinHeight]),[Be,We]=(0,_react().useState)(De),Ve=(0,_react().useRef)(ne);Ve.current=ne;const je=(0,_react().useRef)(O);je.current=O;const Ge=(0,_react().useRef)(ae);Ge.current=ae;const Ke=(0,_react().useRef)(ie);Ke.current=ie;const $e=(0,_react().useRef)(le);$e.current=le;const Qe=(0,_react().useRef)(q);Qe.current=q;const Je=(0,_react().useRef)(H);Je.current=H;const Ue=(0,_react().useCallback)((e,t="onChange")=>z&&t===me?z(e):e,[me,z]),Xe=(0,_react().useCallback)((e,t="onChange")=>{const r=Ue(e,t);we||Se(r),Ve.current?.(r)},[Ue,we]);(0,_react().useImperativeHandle)(t,()=>({focus:()=>Pe.current?.focus(),blur:()=>Pe.current?.blur(),clear:()=>Xe(""),get nativeElement(){return Pe.current}}));const Ye="left"!==_e?_e:fe,Ze=v&&!y&&""!==(Re??"")&&("always"===ge||"focus"===ge&&(Ie||Ce)),et=(0,_react().useCallback)(e=>{let t=e??"";if("number"===k||"digit"===k){const e="number"===k;t=(0,_string.formatNumberInput)(t,e,e)}(0,_validate.isFiniteNumber)(oe)&&oe>=0&&t.length>oe&&(je.current?.(t),t=t.slice(0,oe)),Xe(t,"onChange")},[oe,k,Xe]),tt=(0,_react().useCallback)(e=>{Ne(!0),Ge.current?.(e),y&&Pe.current?.blur()},[y]),rt=(0,_react().useCallback)(e=>{if("web"!==_reactNative().Platform.OS&&Me.current)return Me.current=!1,Ne(!1),void Ke.current?.(e);Xe(Re??"","onBlur"),Ne(!1),Ke.current?.(e)},[Xe,Re]),at=(0,_react().useCallback)(e=>{$e.current?.(e),Qe.current?.()},[]),it=(0,_react().useCallback)(e=>{if(!xe)return;const t=e.nativeEvent.contentSize?.height??0;if(!t)return;let r=t;P?(r=Math.max(De??t,t),Ae&&(r=Math.min(r,Ae))):De&&(r=Math.max(De,t)),We(r)},[P,xe,Ae,De]),lt=(0,_react().useCallback)(()=>{"web"!==_reactNative().Platform.OS&&(Me.current=!0),Xe(""),Pe.current?.clear?.(),Pe.current?.focus?.(),Je.current?.()},[Xe]),nt=(0,_react().useCallback)(()=>{ke(!0),"web"!==_reactNative().Platform.OS&<()},[lt]),ot=(0,_react().useCallback)(()=>{ke(!1),Me.current=!1},[]),ct=(0,_validate.isRenderable)(te)?_react().default.createElement(_reactNative().View,{style:[se.layout.children,{minHeight:se.sizes.controlMinHeight}]},te):_react().default.createElement(FieldInput,{inputRef:Pe,tokens:se,isTextarea:xe,disabled:m,error:_,finalTextAlign:Ye,lineHeight:Oe,textareaHeight:Be,minHeight:De,inputStyle:J,value:Re??"",onChangeText:et,onFocus:tt,onBlur:rt,onPressIn:at,rows:pe,keyboardType:ce.keyboardType??mapKeyboardType(k),placeholderTextColor:he,onContentSizeChange:it,describedBy:Fe,secureTextEntry:"password"===k,editable:!m&&!y,restInputProps:ce}),st=[{width:"100%",justifyContent:alignMap[_e]},Q],ut=e=>(0,_validate.isText)(e)?_react().default.createElement(_reactNative().Text,{style:[se.layout.affixText,{color:se.colors.input,fontSize:se.typography.inputSize}],numberOfLines:1},e):e,dt=(0,_validate.isRenderable)(f)?(()=>{const e=_react().default.createElement(_reactNativeSystemIcon().QuestionO,{size:se.sizes.icon,fill:se.colors.tooltip,color:se.colors.tooltip});let t=e,r={message:f};if(!_react().default.isValidElement(f)&&!(0,_validate.isText)(f)){const{icon:a,...i}=f;t=a??e,r=i}return _react().default.createElement(_reactNative().Pressable,{style:[se.layout.tooltip,{marginLeft:se.spacing.rightIconGap}],onPress:()=>_dialog.default.show(r),accessibilityRole:"button"},t)})():null,ft=(0,_validate.isRenderable)(a)?(()=>{const e=(0,_validate.isText)(a)?_react().default.createElement(_reactNative().Text,{style:[{color:m?se.colors.disabled:se.colors.label,fontSize:se.typography.labelSize,textAlign:de},U],numberOfLines:1},a,s?":":""):a;return _react().default.createElement(_reactNative().View,{style:se.layout.labelRow},e,dt)})():null,_t=F&&null!=oe?(()=>{const e=(Re??"").length,t=(0,_validate.isFunction)(F)?F({currentCount:e,maxLength:oe}):`${e}/${oe}`;return(0,_validate.isRenderable)(t)?(0,_validate.isText)(t)?_react().default.createElement(_reactNative().Text,{style:[se.layout.wordLimit,{color:se.colors.wordLimit,fontSize:se.typography.wordLimitSize??12,textAlign:"right",alignSelf:"flex-end",marginTop:se.spacing.wordLimitMarginTop}]},t):t:null})():null,gt=(0,_validate.isRenderable)(g)?(0,_validate.isText)(g)?_react().default.createElement(_reactNative().Text,{nativeID:Ee,style:[se.layout.message,{color:se.colors.error,fontSize:se.typography.messageSize,textAlign:p,marginTop:se.spacing.messageMarginTop},Y],accessibilityLiveRegion:"polite"},g):_react().default.createElement(_reactNative().View,{nativeID:Ee,style:[se.layout.message,{alignSelf:alignMap[p],marginTop:se.spacing.messageMarginTop}],accessibilityLiveRegion:"polite"},g):null,pt=(0,_validate.isRenderable)(be)?(0,_validate.isText)(be)?_react().default.createElement(_reactNative().Text,{nativeID:ze,style:[se.layout.message,{color:se.colors.intro,fontSize:se.typography.introSize,textAlign:_e,marginTop:se.spacing.introMarginTop},X]},be):_react().default.createElement(_reactNative().View,{nativeID:ze,style:{marginTop:se.spacing.introMarginTop}},be):null,mt=T?_react().default.createElement(_reactNative().View,{style:[se.layout.prefix,{paddingRight:se.spacing.prefixGap}]},ut(T)):null,yt=ve?_react().default.createElement(_reactNative().View,{style:[se.layout.suffix,{paddingLeft:se.spacing.suffixGap}]},ut(ve)):null,vt=x?_react().default.createElement(FieldSlot,{onPress:D,style:[se.layout.leftIcon,{marginRight:se.spacing.leftIconGap,minWidth:se.sizes.icon}]},x):null,bt=w?_react().default.createElement(FieldSlot,{onPress:A,style:[se.layout.rightIcon,{paddingHorizontal:se.spacing.rightIconGap}]},w):null,ht=Ze?_react().default.createElement(FieldClearButton,{show:Ze,tokens:se,clearIcon:h,onPressIn:nt,onPressOut:"web"===_reactNative().Platform.OS?ot:void 0,onPress:"web"===_reactNative().Platform.OS?lt:void 0}):null;return _react().default.createElement(_cell.default,{title:ft,icon:void 0,required:c,border:B,center:W,size:K,clickable:V,isLink:j,arrowDirection:G,extra:I,titleStyle:ye,style:Z,contentStyle:st,accessibilityState:_?{invalid:!0}:void 0,accessibilityLabel:(0,_validate.isText)(a)?String(a):void 0,onPress:L,android_ripple:ee},_react().default.createElement(FieldControlRow,{tokens:se,prefixNode:mt,leftIconNode:vt,controlNode:ct,clearNode:ht,rightIconNode:bt,suffixNode:yt}),_t,gt,pt)},FieldForwardRef=_react().default.forwardRef(FieldImpl);FieldForwardRef.displayName="Field";const Field=exports.Field=_react().default.memo(FieldForwardRef);var _default=exports.default=Field;
|
|
1
|
+
"use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Field=void 0;var _cell=_interopRequireDefault(require("../cell")),_dialog=_interopRequireDefault(require("../dialog")),_string=require("../../utils/string"),_validate=require("../../utils/validate"),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var l,i,n={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return n;if(l=t?a:r){if(l.has(e))return l.get(e);l.set(e,n)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((i=(l=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(i.get||i.set)?l(n,t,i):n[t]=e[t]);return n})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},_extends.apply(null,arguments)}const alignMap={left:"flex-start",center:"center",right:"flex-end"},mapKeyboardType=e=>{switch(e){case"number":return"decimal-pad";case"digit":return"number-pad";case"tel":return"phone-pad";default:return}},FieldSlot=({onPress:e,style:t,children:r,accessibilityRole:a="button"})=>r?e?_react().default.createElement(_reactNative().Pressable,{onPress:e,accessibilityRole:a,style:t},r):_react().default.createElement(_reactNative().View,{style:t},r):null,FieldClearButton=({show:e,tokens:t,clearIcon:r,onPressIn:a,onPressOut:l,onPress:i})=>{if(!e)return null;const n="web"===_reactNative().Platform.OS?{onMouseDown:e=>{e.preventDefault?.(),e.stopPropagation?.()}}:void 0;return _react().default.createElement(_reactNative().Pressable,_extends({style:[t.layout.clearIcon,{paddingHorizontal:t.spacing.rightIconGap}]},n,{onPressIn:a,onPressOut:l,onPress:i,accessibilityRole:"button"}),_react().default.isValidElement(r)?r:_react().default.createElement(_reactNativeSystemIcon().Clear,{size:t.sizes.clearIcon,fill:t.colors.clear,color:t.colors.clear}))},FieldInput=({inputRef:e,tokens:t,isTextarea:r,disabled:a,error:l,finalTextAlign:i,lineHeight:n,textareaHeight:o,minHeight:c,inputStyle:s,value:u,onChangeText:d,onFocus:f,onBlur:_,onPressIn:g,rows:p,placeholderTextColor:m,keyboardType:y,onContentSizeChange:v,describedBy:b,secureTextEntry:h,editable:x,restInputProps:w})=>{const T=[r?t.layout.textarea:t.layout.input,{color:a?t.colors.disabled:l?t.colors.error:t.colors.input,fontSize:t.typography.inputSize,textAlign:i,...r?{lineHeight:n,height:o,minHeight:c}:{minHeight:t.sizes.controlMinHeight}},s];return _react().default.createElement(_reactNative().TextInput,_extends({ref:e,style:T,value:u,onChangeText:d,onFocus:f,onBlur:_,onPressIn:g,editable:x,secureTextEntry:h,multiline:r,numberOfLines:r?p:void 0,keyboardType:y,placeholderTextColor:m,onContentSizeChange:r?v:void 0},b?{accessibilityDescribedBy:b}:null,{clearButtonMode:"never"},w))},FieldControlRow=({tokens:e,prefixNode:t,leftIconNode:r,controlNode:a,clearNode:l,rightIconNode:i,suffixNode:n})=>_react().default.createElement(_reactNative().View,{style:e.layout.body},t,r,_react().default.createElement(_reactNative().View,{style:[e.layout.controlWrapper,{minHeight:e.sizes.controlMinHeight}]},a,l),i,n),FieldImpl=(e,t)=>{const{tokensOverride:r,label:a,labelWidth:l,labelAlign:i,inputAlign:n,controlAlign:o,required:c=!1,colon:s=!1,intro:u,description:d,tooltip:f,error:_=!1,errorMessage:g,errorMessageAlign:p="left",errorMessagePosition:m="inner",disabled:y=!1,readOnly:v=!1,clearable:b=!1,clearTrigger:h,clearIcon:x,leftIcon:w,rightIcon:T,prefix:S,suffix:R,button:I,extra:N,value:C,defaultValue:M="",type:k="text",rows:P,autoSize:E=!1,formatter:z,formatTrigger:F,showWordLimit:O=!1,onOverlimit:H,onClear:L,onClick:q,onClickInput:D,onClickLeftIcon:A,onClickRightIcon:B,border:W,center:V,clickable:j,isLink:G,arrowDirection:K,size:$,titleStyle:Q,contentStyle:J,inputStyle:U,labelStyle:X,introStyle:Y,errorMessageStyle:Z,style:ee,androidRipple:te,children:re,placeholderTextColor:ae,onFocus:le,onBlur:ie,onPressIn:ne,onChangeText:oe,maxLength:ce,...se}=e,ue=(0,_tokens.useFieldTokens)(r),de=l??ue.defaults.labelWidth,fe=i??ue.defaults.labelAlign,_e=n??ue.defaults.inputAlign,ge=o??ue.defaults.controlAlign,pe=h??ue.defaults.clearTrigger,me=P??ue.defaults.rows,ye=F??ue.defaults.formatTrigger,ve=[{width:de,minWidth:de,maxWidth:de,flexBasis:de,marginRight:ue.spacing.labelGap,flexShrink:0,flexGrow:0},Q],be=R??I,he=u??d,xe=ae??(y?ue.colors.disabled:ue.colors.placeholder),we="textarea"===k,Te=void 0!==C,[Se,Re]=(0,_react().useState)(M),Ie=Te?C??"":Se,[Ne,Ce]=(0,_react().useState)(!1),[Me,ke]=(0,_react().useState)(!1),Pe=(0,_react().useRef)(!1),Ee=(0,_react().useRef)(null),ze=(0,_react().useId)(),Fe=(0,_react().useId)(),Oe=(0,_react().useMemo)(()=>{const e=[(0,_validate.isRenderable)(g)?Fe:null,(0,_validate.isRenderable)(he)?ze:null].filter(Boolean);return e.length?e:void 0},[Fe,g,ze,he]),He=ue.defaults.textareaLineHeight,Le=E&&(0,_validate.isObject)(E)?E:void 0,qe=we?Le&&(0,_validate.isDef)(Le.minRows)?Math.max(1,Le.minRows):Math.max(1,me):1,De=we&&Le&&(0,_validate.isDef)(Le.maxRows)?Math.max(1,Le.maxRows):void 0,Ae=(0,_react().useMemo)(()=>we?Math.max(ue.sizes.textareaMinHeight,qe*He):void 0,[we,He,qe,ue.sizes.textareaMinHeight]),Be=(0,_react().useMemo)(()=>we&&De?Math.max(ue.sizes.textareaMinHeight,De*He):void 0,[we,He,De,ue.sizes.textareaMinHeight]),[We,Ve]=(0,_react().useState)(Ae),je=(0,_react().useRef)(oe);je.current=oe;const Ge=(0,_react().useRef)(H);Ge.current=H;const Ke=(0,_react().useRef)(le);Ke.current=le;const $e=(0,_react().useRef)(ie);$e.current=ie;const Qe=(0,_react().useRef)(ne);Qe.current=ne;const Je=(0,_react().useRef)(D);Je.current=D;const Ue=(0,_react().useRef)(L);Ue.current=L;const Xe=(0,_react().useCallback)((e,t="onChange")=>z&&t===ye?z(e):e,[ye,z]),Ye=(0,_react().useCallback)((e,t="onChange")=>{const r=Xe(e,t);Te||Re(r),je.current?.(r)},[Xe,Te]);(0,_react().useImperativeHandle)(t,()=>({focus:()=>Ee.current?.focus(),blur:()=>Ee.current?.blur(),clear:()=>Ye(""),get nativeElement(){return Ee.current}}));const Ze="left"!==ge?ge:_e,et=b&&!v&&""!==(Ie??"")&&("always"===pe||"focus"===pe&&(Ne||Me)),tt=(0,_react().useCallback)(e=>{let t=e??"";if("number"===k||"digit"===k){const e="number"===k;t=(0,_string.formatNumberInput)(t,e,e)}(0,_validate.isFiniteNumber)(ce)&&ce>=0&&t.length>ce&&(Ge.current?.(t),t=t.slice(0,ce)),Ye(t,"onChange")},[ce,k,Ye]),rt=(0,_react().useCallback)(e=>{Ce(!0),Ke.current?.(e),v&&Ee.current?.blur()},[v]),at=(0,_react().useCallback)(e=>{if("web"!==_reactNative().Platform.OS&&Pe.current)return Pe.current=!1,Ce(!1),void $e.current?.(e);Ye(Ie??"","onBlur"),Ce(!1),$e.current?.(e)},[Ye,Ie]),lt=(0,_react().useCallback)(e=>{Qe.current?.(e),Je.current?.()},[]),it=(0,_react().useCallback)(e=>{if(!we)return;const t=e.nativeEvent.contentSize?.height??0;if(!t)return;let r=t;E?(r=Math.max(Ae??t,t),Be&&(r=Math.min(r,Be))):Ae&&(r=Math.max(Ae,t)),Ve(r)},[E,we,Be,Ae]),nt=(0,_react().useCallback)(()=>{"web"!==_reactNative().Platform.OS&&(Pe.current=!0),Ye(""),Ee.current?.clear?.(),Ee.current?.focus?.(),Ue.current?.()},[Ye]),ot=(0,_react().useCallback)(()=>{ke(!0),"web"!==_reactNative().Platform.OS&&nt()},[nt]),ct=(0,_react().useCallback)(()=>{ke(!1),Pe.current=!1},[]),st=(0,_validate.isRenderable)(re)?_react().default.createElement(_reactNative().View,{style:[ue.layout.children,{minHeight:ue.sizes.controlMinHeight}]},re):_react().default.createElement(FieldInput,{inputRef:Ee,tokens:ue,isTextarea:we,disabled:y,error:_,finalTextAlign:Ze,lineHeight:He,textareaHeight:We,minHeight:Ae,inputStyle:U,value:Ie??"",onChangeText:tt,onFocus:rt,onBlur:at,onPressIn:lt,rows:me,keyboardType:se.keyboardType??mapKeyboardType(k),placeholderTextColor:xe,onContentSizeChange:it,describedBy:Oe,secureTextEntry:"password"===k,editable:!y&&!v,restInputProps:se}),ut=[{width:"100%",justifyContent:alignMap[ge]},J],dt=e=>(0,_validate.isText)(e)?_react().default.createElement(_reactNative().Text,{style:[ue.layout.affixText,{color:ue.colors.input,fontSize:ue.typography.inputSize}],numberOfLines:1},e):e,ft=(0,_validate.isRenderable)(f)?(()=>{const e=_react().default.createElement(_reactNativeSystemIcon().QuestionO,{size:ue.sizes.icon,fill:ue.colors.tooltip,color:ue.colors.tooltip});let t=e,r={message:f};if(!_react().default.isValidElement(f)&&!(0,_validate.isText)(f)){const{icon:a,...l}=f;t=a??e,r=l}return _react().default.createElement(_reactNative().Pressable,{style:[ue.layout.tooltip,{marginLeft:ue.spacing.rightIconGap}],onPress:()=>_dialog.default.show(r),accessibilityRole:"button"},t)})():null,_t=(0,_validate.isRenderable)(a)?(()=>{const e=(0,_validate.isText)(a)?_react().default.createElement(_reactNative().Text,{style:[{color:y?ue.colors.disabled:ue.colors.label,fontSize:ue.typography.labelSize,textAlign:fe},X],numberOfLines:1},a,s?":":""):a;return _react().default.createElement(_reactNative().View,{style:ue.layout.labelRow},e,ft)})():null,gt=O&&null!=ce?(()=>{const e=(Ie??"").length,t=(0,_validate.isFunction)(O)?O({currentCount:e,maxLength:ce}):`${e}/${ce}`;return(0,_validate.isRenderable)(t)?(0,_validate.isText)(t)?_react().default.createElement(_reactNative().Text,{style:[ue.layout.wordLimit,{color:ue.colors.wordLimit,fontSize:ue.typography.wordLimitSize??12,textAlign:"right",alignSelf:"flex-end",marginTop:ue.spacing.wordLimitMarginTop}]},t):t:null})():null,pt=(0,_validate.isRenderable)(g)?(0,_validate.isText)(g)?_react().default.createElement(_reactNative().Text,{nativeID:Fe,style:[ue.layout.message,{color:ue.colors.error,fontSize:ue.typography.messageSize,textAlign:p,marginTop:ue.spacing.messageMarginTop},Z],accessibilityLiveRegion:"polite"},g):_react().default.createElement(_reactNative().View,{nativeID:Fe,style:[ue.layout.message,{alignSelf:alignMap[p],marginTop:ue.spacing.messageMarginTop}],accessibilityLiveRegion:"polite"},g):null,mt=(0,_validate.isRenderable)(he)?(0,_validate.isText)(he)?_react().default.createElement(_reactNative().Text,{nativeID:ze,style:[ue.layout.message,{color:ue.colors.intro,fontSize:ue.typography.introSize,textAlign:ge,marginTop:ue.spacing.introMarginTop},Y]},he):_react().default.createElement(_reactNative().View,{nativeID:ze,style:{marginTop:ue.spacing.introMarginTop}},he):null,yt=S?_react().default.createElement(_reactNative().View,{style:[ue.layout.prefix,{paddingRight:ue.spacing.prefixGap}]},dt(S)):null,vt=be?_react().default.createElement(_reactNative().View,{style:[ue.layout.suffix,{paddingLeft:ue.spacing.suffixGap}]},dt(be)):null,bt=w?_react().default.createElement(FieldSlot,{onPress:A,style:[ue.layout.leftIcon,{marginRight:ue.spacing.leftIconGap,minWidth:ue.sizes.icon}]},w):null,ht=T?_react().default.createElement(FieldSlot,{onPress:B,style:[ue.layout.rightIcon,{paddingHorizontal:ue.spacing.rightIconGap}]},T):null,xt=et?_react().default.createElement(FieldClearButton,{show:et,tokens:ue,clearIcon:x,onPressIn:ot,onPressOut:"web"===_reactNative().Platform.OS?ct:void 0,onPress:"web"===_reactNative().Platform.OS?nt:void 0}):null,wt="outer"===m,Tt=_react().default.createElement(_cell.default,{title:_t,icon:void 0,required:c,border:W,center:V,size:$,clickable:j,isLink:G,arrowDirection:K,extra:N,titleStyle:ve,style:[ee,wt&&(_||(0,_validate.isRenderable)(g))?{borderColor:ue.colors.error}:void 0],contentStyle:ut,accessibilityState:_?{invalid:!0}:void 0,accessibilityLabel:(0,_validate.isText)(a)?String(a):void 0,onPress:q,android_ripple:te},_react().default.createElement(FieldControlRow,{tokens:ue,prefixNode:yt,leftIconNode:bt,controlNode:st,clearNode:xt,rightIconNode:ht,suffixNode:vt}),gt,wt?null:pt,mt);return wt&&pt?_react().default.createElement(_react().default.Fragment,null,Tt,pt):Tt},FieldForwardRef=_react().default.forwardRef(FieldImpl);FieldForwardRef.displayName="Field";const Field=exports.Field=_react().default.memo(FieldForwardRef);var _default=exports.default=Field;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.useWatch=exports.toNamePath=exports.setValueByName=exports.serializeNamePath=exports.normalizeTrigger=exports.getValueByName=exports.default=exports.FormSubscribe=exports.FormContext=exports.FORM_ALL_FIELDS_KEY=void 0;var _utils=require("../../utils"),_promise=require("../../utils/promise"),_validate=require("../../utils/validate"),_useLocale=require("../config-provider/useLocale");function _interopRequireWildcard(e,r){if("function"==typeof WeakMap)var t=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(e,r){if(!r&&e&&e.__esModule)return e;var n,i,u={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return u;if(n=r?a:t){if(n.has(e))return n.get(e);n.set(e,u)}for(const r in e)"default"!==r&&{}.hasOwnProperty.call(e,r)&&((i=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,r))&&(i.get||i.set)?n(u,r,i):u[r]=e[r]);return u})(e,r)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var a in t)({}).hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},_extends.apply(null,arguments)}const normalizeTrigger=e=>e?Array.isArray(e)?e:[e]:[];exports.normalizeTrigger=normalizeTrigger;const FORM_ALL_FIELDS_KEY=exports.FORM_ALL_FIELDS_KEY="__form_all__",toNamePath=e=>null==e?[]:Array.isArray(e)?e:(0,_validate.isNumber)(e)?[e]:(0,_validate.isString)(e)?e.split("."):[String(e)];exports.toNamePath=toNamePath;const serializeNamePath=e=>toNamePath(e).join(".");exports.serializeNamePath=serializeNamePath;const getValueByName=(e,r)=>toNamePath(r).reduce((e,r)=>{if(null==e)return e;const t=String(r);if(Array.isArray(e)){const r=Number(t);return Number.isFinite(r)?e[r]:e[t]}return"object"==typeof e?e[t]:void 0},e);exports.getValueByName=getValueByName;const setValueByName=(e,r,t)=>{const a=toNamePath(r);if(!a.length)return e;const n=Array.isArray(e)?[...e]:"object"==typeof e&&null!==e?{...e}:{};let i=n;return a.forEach((e,r)=>{const n=String(e),u=Number(n);if(r===a.length-1)return void(Array.isArray(i)&&Number.isFinite(u)?i[u]=t:i[n]=t);const s=Array.isArray(i)&&Number.isFinite(u)?i[u]:i[n],c=null==s?(0,_validate.isNumber)(a[r+1])?[]:{}:Array.isArray(s)?[...s]:"object"==typeof s?{...s}:{};Array.isArray(i)&&Number.isFinite(u)?i[u]=c:i[n]=c,i=c}),n};exports.setValueByName=setValueByName;const FormContext=exports.FormContext=_react().default.createContext(null),runRuleValidation=(e,r,t,a)=>{const n=e.message??a??"Validation failed",i=null==r||""===r||Array.isArray(r)&&0===r.length;if(e.required&&(i||e.whitespace&&(0,_validate.isString)(r)&&0===r.trim().length))return n;if(i)return null;if(e.pattern&&(0,_validate.isString)(r)&&!e.pattern.test(r))return n;if(void 0!==e.len||void 0!==e.min||void 0!==e.max){const t=(0,_validate.isNumber)(r)?r:(0,_validate.isString)(r)||Array.isArray(r)?r.length:0;if(void 0!==e.len&&t!==e.len)return n;if(void 0!==e.min&&t<e.min)return n;if(void 0!==e.max&&t>e.max)return n}if(!e.validator)return null;const u=e=>(0,_validate.isString)(e)?e:!1===e?n:null,s=e.validator(r,t);return(0,_promise.isPromiseLike)(s)?s.then(u):u(s)},InternalFormImpl=(e,r)=>{const{initialValues:t,colon:a,labelWidth:n,showValidateMessage:i=!0,onValuesChange:u,onFinish:s,style:c,footer:l,children:o,...d}=e,m=(0,_useLocale.useLocale)(),f=(0,_react().useRef)({}),_=(0,_react().useRef)({}),g=(0,_react().useRef)(t??f.current),y=(0,_react().useRef)({}),h=(0,_react().useRef)(new Map),p=(0,_react().useRef)(t??f.current),N=(0,_react().useRef)({}),v=(0,_react().useRef)(new Set),b=(0,_react().useRef)(u),F=(0,_react().useRef)(s);b.current=u,F.current=s;const V=t??f.current,[,x]=(0,_react().useState)(0),P=(0,_react().useCallback)((e,r)=>{v.current.forEach(t=>t(e,r))},[]);(0,_react().useEffect)(()=>{(0,_utils.shallowEqualObject)(g.current,V)||(g.current=V,p.current=V,_.current={},x(e=>e+1),P({[FORM_ALL_FIELDS_KEY]:!0},V))},[V,P]);const A=(0,_react().useCallback)((e,r)=>{const t=serializeNamePath(e),a=_.current[t];if(!r.length){if(!a)return;const r={..._.current};return delete r[t],_.current=r,void P({[t]:getValueByName(p.current,e)},p.current)}a?.[0]===r[0]&&a.length===r.length||(_.current={..._.current,[t]:r},P({[t]:getValueByName(p.current,e)},p.current))},[P]),E=(0,_react().useCallback)((e,r)=>{const t=serializeNamePath(e),a=y.current[t];if(a?.dependencies?.length)for(const e of a.dependencies){const r=serializeNamePath(e),a=h.current.get(r);a&&(a.delete(t),a.size||h.current.delete(r))}if(y.current[t]={...r,name:e},r.dependencies?.length)for(const e of r.dependencies){const r=serializeNamePath(e),a=h.current.get(r);a?a.add(t):h.current.set(r,new Set([t]))}if(void 0!==r.initialValue){void 0===getValueByName(g.current,e)&&(g.current=setValueByName(g.current,e,r.initialValue));if(void 0===getValueByName(p.current,e)){const a=setValueByName(p.current,e,r.initialValue);p.current=a,P({[t]:r.initialValue},a)}}return()=>{const r=y.current[t];if(delete y.current[t],r?.dependencies?.length)for(const e of r.dependencies){const r=serializeNamePath(e),a=h.current.get(r);a&&(a.delete(t),a.size||h.current.delete(r))}A(e,[])}},[P,A]),L=(0,_react().useRef)(m);L.current=m;const R=(0,_react().useCallback)(async(e,r,t,a)=>{const n=serializeNamePath(e),i=(N.current[n]??0)+1;N.current[n]=i;const u=y.current[n],s=u?.rules??[];if(!s.length)return A(e,[]),!0;
|
|
1
|
+
"use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.useWatch=exports.toNamePath=exports.setValueByName=exports.serializeNamePath=exports.normalizeTrigger=exports.getValueByName=exports.default=exports.FormSubscribe=exports.FormContext=exports.FORM_ALL_FIELDS_KEY=void 0;var _utils=require("../../utils"),_promise=require("../../utils/promise"),_validate=require("../../utils/validate"),_useLocale=require("../config-provider/useLocale");function _interopRequireWildcard(e,r){if("function"==typeof WeakMap)var t=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(e,r){if(!r&&e&&e.__esModule)return e;var n,i,u={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return u;if(n=r?a:t){if(n.has(e))return n.get(e);n.set(e,u)}for(const r in e)"default"!==r&&{}.hasOwnProperty.call(e,r)&&((i=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,r))&&(i.get||i.set)?n(u,r,i):u[r]=e[r]);return u})(e,r)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var a in t)({}).hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},_extends.apply(null,arguments)}const normalizeTrigger=e=>e?Array.isArray(e)?e:[e]:[];exports.normalizeTrigger=normalizeTrigger;const FORM_ALL_FIELDS_KEY=exports.FORM_ALL_FIELDS_KEY="__form_all__",toNamePath=e=>null==e?[]:Array.isArray(e)?e:(0,_validate.isNumber)(e)?[e]:(0,_validate.isString)(e)?e.split("."):[String(e)];exports.toNamePath=toNamePath;const serializeNamePath=e=>toNamePath(e).join(".");exports.serializeNamePath=serializeNamePath;const getValueByName=(e,r)=>toNamePath(r).reduce((e,r)=>{if(null==e)return e;const t=String(r);if(Array.isArray(e)){const r=Number(t);return Number.isFinite(r)?e[r]:e[t]}return"object"==typeof e?e[t]:void 0},e);exports.getValueByName=getValueByName;const setValueByName=(e,r,t)=>{const a=toNamePath(r);if(!a.length)return e;const n=Array.isArray(e)?[...e]:"object"==typeof e&&null!==e?{...e}:{};let i=n;return a.forEach((e,r)=>{const n=String(e),u=Number(n);if(r===a.length-1)return void(Array.isArray(i)&&Number.isFinite(u)?i[u]=t:i[n]=t);const s=Array.isArray(i)&&Number.isFinite(u)?i[u]:i[n],c=null==s?(0,_validate.isNumber)(a[r+1])?[]:{}:Array.isArray(s)?[...s]:"object"==typeof s?{...s}:{};Array.isArray(i)&&Number.isFinite(u)?i[u]=c:i[n]=c,i=c}),n};exports.setValueByName=setValueByName;const FormContext=exports.FormContext=_react().default.createContext(null),runRuleValidation=(e,r,t,a)=>{const n=e.message??a??"Validation failed",i=null==r||""===r||Array.isArray(r)&&0===r.length;if(e.required&&(i||e.whitespace&&(0,_validate.isString)(r)&&0===r.trim().length))return n;if(i)return null;if(e.pattern&&(0,_validate.isString)(r)&&!e.pattern.test(r))return n;if(void 0!==e.len||void 0!==e.min||void 0!==e.max){const t=(0,_validate.isNumber)(r)?r:(0,_validate.isString)(r)||Array.isArray(r)?r.length:0;if(void 0!==e.len&&t!==e.len)return n;if(void 0!==e.min&&t<e.min)return n;if(void 0!==e.max&&t>e.max)return n}if(!e.validator)return null;const u=e=>(0,_validate.isString)(e)?e:!1===e?n:null,s=e.validator(r,t);return(0,_promise.isPromiseLike)(s)?s.then(u):u(s)},InternalFormImpl=(e,r)=>{const{initialValues:t,colon:a,labelWidth:n,showValidateMessage:i=!0,onValuesChange:u,onFinish:s,style:c,footer:l,children:o,...d}=e,m=(0,_useLocale.useLocale)(),f=(0,_react().useRef)({}),_=(0,_react().useRef)({}),g=(0,_react().useRef)(t??f.current),y=(0,_react().useRef)({}),h=(0,_react().useRef)(new Map),p=(0,_react().useRef)(t??f.current),N=(0,_react().useRef)({}),v=(0,_react().useRef)(new Set),b=(0,_react().useRef)(u),F=(0,_react().useRef)(s);b.current=u,F.current=s;const V=t??f.current,[,x]=(0,_react().useState)(0),P=(0,_react().useCallback)((e,r)=>{v.current.forEach(t=>t(e,r))},[]);(0,_react().useEffect)(()=>{(0,_utils.shallowEqualObject)(g.current,V)||(g.current=V,p.current=V,_.current={},x(e=>e+1),P({[FORM_ALL_FIELDS_KEY]:!0},V))},[V,P]);const A=(0,_react().useCallback)((e,r)=>{const t=serializeNamePath(e),a=_.current[t];if(!r.length){if(!a)return;const r={..._.current};return delete r[t],_.current=r,void P({[t]:getValueByName(p.current,e)},p.current)}a?.[0]===r[0]&&a.length===r.length||(_.current={..._.current,[t]:r},P({[t]:getValueByName(p.current,e)},p.current))},[P]),E=(0,_react().useCallback)((e,r)=>{const t=serializeNamePath(e),a=y.current[t];if(a?.dependencies?.length)for(const e of a.dependencies){const r=serializeNamePath(e),a=h.current.get(r);a&&(a.delete(t),a.size||h.current.delete(r))}if(y.current[t]={...r,name:e},r.dependencies?.length)for(const e of r.dependencies){const r=serializeNamePath(e),a=h.current.get(r);a?a.add(t):h.current.set(r,new Set([t]))}if(void 0!==r.initialValue){void 0===getValueByName(g.current,e)&&(g.current=setValueByName(g.current,e,r.initialValue));if(void 0===getValueByName(p.current,e)){const a=setValueByName(p.current,e,r.initialValue);p.current=a,P({[t]:r.initialValue},a)}}return()=>{const r=y.current[t];if(delete y.current[t],r?.dependencies?.length)for(const e of r.dependencies){const r=serializeNamePath(e),a=h.current.get(r);a&&(a.delete(t),a.size||h.current.delete(r))}A(e,[])}},[P,A]),L=(0,_react().useRef)(m);L.current=m;const R=(0,_react().useCallback)(async(e,r,t,a)=>{const n=serializeNamePath(e),i=(N.current[n]??0)+1;N.current[n]=i;const u=y.current[n],s=u?.rules??[];if(!s.length)return A(e,[]),!0;const c=r?s.filter(e=>{const t=e.validateTrigger??u.validateTrigger;return!t||normalizeTrigger(t).includes(r)}):s;if(!c.length)return _.current[n]?.length&&A(e,[]),!0;const l=a??p.current,o=t??getValueByName(l,e),d=L.current?.vanForm?.validationFailed;for(const r of c){const t=runRuleValidation(r,o,l,d),a=(0,_promise.isPromiseLike)(t)?await t:t;if(N.current[n]!==i)return!0;if(a)return A(e,[a]),!1}return N.current[n]!==i||A(e,[]),!0},[A]),B=(0,_react().useCallback)(async e=>{const r=e??Object.values(y.current).map(e=>e.name);if((await Promise.all(r.map(e=>R(e)))).some(e=>!e))throw _.current;return p.current},[R]),S=(0,_react().useCallback)((e,r,t,a,n)=>{R(r,t,a,n);const i=h.current.get(e);if(i?.size)for(const e of i){const r=y.current[e];r&&R(r.name,t,getValueByName(n,r.name),n)}},[R]),z=(0,_react().useCallback)((e,r,t)=>{const a=serializeNamePath(e),n=p.current;if(getValueByName(n,e)===r)return;const i=setValueByName(n,e,r);p.current=i,b.current?.(i,a,r),S(a,e,t,r,i),P({[a]:r},i)},[P,S]),O=(0,_react().useMemo)(()=>({submit:async()=>{try{const e=await B();return F.current?.(e),e}catch{return}},getFieldsValue:()=>p.current,setFieldsValue:(e,r)=>{const t=r?.validate??!1,a=p.current;let n=a;const i={};Object.keys(e).forEach(r=>{const a=e[r];getValueByName(n,r)!==a&&(i[r]=a,n=setValueByName(n,r,a),b.current?.(n,r,a),t&&S(r,r,void 0,a,n))}),n!==a&&(p.current=n,P(i,n))},resetFields:()=>{let e=g.current;Object.values(y.current).forEach(r=>{void 0!==r.initialValue&&void 0===getValueByName(e,r.name)&&(e=setValueByName(e,r.name,r.initialValue))}),p.current=e,_.current={},P({[FORM_ALL_FIELDS_KEY]:!0},e)},validateFields:B,getFieldError:e=>_.current[serializeNamePath(e)]??[]}),[B,S,P]);(0,_react().useImperativeHandle)(r,()=>O,[O]);const w=(0,_react().useMemo)(()=>({getFieldValue:e=>getValueByName(p.current,e),setFieldValue:z,registerField:E,getFieldError:e=>_.current[serializeNamePath(e)],validateField:(e,r)=>R(e,r),getFieldsValue:()=>p.current,subscribe:e=>(v.current.add(e),()=>v.current.delete(e)),form:O,colon:a,labelWidth:n,showValidateMessage:i}),[z,E,R,O,a,n,i]);return _react().default.createElement(FormContext.Provider,{value:w},_react().default.createElement(_reactNative().View,_extends({style:c},d),o,(0,_validate.isText)(l)?(0,_utils.renderTextOrNode)(l,[]):l))},InternalFormRef=_react().default.forwardRef(InternalFormImpl),InternalForm=_react().default.memo(InternalFormRef),useWatch=(e,r)=>{const t=(0,_react().useContext)(FormContext),a=void 0===e?void 0:Array.isArray(e)?e.length&&(0,_validate.isText)(e[0])?[e]:e:[e],n=(0,_react().useCallback)(e=>{const n=e??t?.getFieldsValue?.()??r?.current?.getFieldsValue?.()??{};if(!a)return n;if(1===a.length)return getValueByName(n,a[0]);const i={};for(const e of a)i[serializeNamePath(e)]=getValueByName(n,e);return i},[t,r,a]),[i,u]=(0,_react().useState)(()=>n());return(0,_react().useEffect)(()=>{if(t?.subscribe)return t.subscribe((e,r)=>{FORM_ALL_FIELDS_KEY in e?u(n(r)):a&&!a.some(r=>serializeNamePath(r)in e)||u(n(r))})},[t,n,a]),(0,_react().useEffect)(()=>{u(n())},[n]),i};exports.useWatch=useWatch;const FormSubscribe=({to:e,children:r})=>{const t=(0,_react().useContext)(FormContext),[a,n]=(0,_react().useState)({});return(0,_react().useEffect)(()=>{if(t?.subscribe)return t.subscribe(r=>{(!e||FORM_ALL_FIELDS_KEY in r||Object.keys(r).some(r=>e.includes(r)))&&n(r)})},[t,e]),_react().default.createElement(_react().default.Fragment,null,r(a,t?.form||null))};exports.FormSubscribe=FormSubscribe;var _default=exports.default=InternalForm;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Popup=void 0;var _safeAreaView=require("../safe-area-view"),_platform=require("../../platform"),_animation=require("../../hooks/animation"),_createPlatformShadow=require("../../utils/createPlatformShadow"),_validate=require("../../utils/validate");function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}var _Portal=_interopRequireDefault(require("../portal/Portal")),_hooks=require("../../hooks"),_useLocale=require("../config-provider/useLocale"),_useDirection=require("../config-provider/useDirection"),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var o=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var a,n,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(a=t?r:o){if(a.has(e))return a.get(e);a.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?a(i,t,n):i[t]=e[t]);return i})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)({}).hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},_extends.apply(null,arguments)}const AnimatedPressable=_reactNative().Animated.createAnimatedComponent(_reactNative().Pressable),EASE_OUT=_reactNative().Easing.bezier(.075,.82,.165,1),EASE_IN=_reactNative().Easing.bezier(.55,.055,.675,.19),CAPTURE=()=>!0,placementConfig={top:{container:{justifyContent:"flex-start",alignItems:"center"},axis:"y"},bottom:{container:{justifyContent:"flex-end",alignItems:"center"},axis:"y"},left:{container:{justifyContent:"center",alignItems:"flex-start"},axis:"x"},right:{container:{justifyContent:"center",alignItems:"flex-end"},axis:"x"},center:{container:{justifyContent:"center",alignItems:"center"},axis:"y"}},buildRadius=(e,t,o)=>e?"top"===t?{borderBottomLeftRadius:o,borderBottomRightRadius:o}:"bottom"===t?{borderTopLeftRadius:o,borderTopRightRadius:o}:"left"===t?{borderTopRightRadius:o,borderBottomRightRadius:o}:"right"===t?{borderTopLeftRadius:o,borderBottomLeftRadius:o}:{borderRadius:o}:void 0,hiddenStyle={opacity:0,shadowOpacity:0,shadowRadius:0,elevation:0},PopupImpl=e=>{const t=(0,_useLocale.useLocale)(),o=(0,_useDirection.useDirection)(),{visible:r,placement:a,position:n,title:i,description:c,tokensOverride:l,overlay:s=!0,overlayStyle:u,overlayAccessibilityLabel:d=t?.vanPopup?.closeOverlay??"Close overlay",closeOnOverlayPress:p,closeOnClickOverlay:f,overlayTestID:_="popup-overlay",closeable:m=!1,closeIcon:v,closeIconPosition:y="top-right",round:g,safeArea:h=!1,safeAreaInsetTop:b=!1,safeAreaInsetBottom:R,lockScroll:I=!0,destroyOnClose:P=!0,duration:O=300,zIndex:C,closeOnBackPress:E=!1,closeOnPopstate:x=!1,children:w,beforeClose:k,onClickOverlay:A,onClose:N,onOpen:z,onOpened:T,onClosed:W,stopPropagation:q=!0,style:L,contentAnimationStyle:V,...M}=e,j=a??n??"center",D=f??p??!0,B="center"===j,H=R??!1,F=(0,_tokens.usePopupTokens)(l),U=(0,_animation.useReducedMotion)(),X=(0,_react().useRef)({onOpened:T,onClosed:W,onOpen:z,onClose:N,beforeClose:k,onClickOverlay:A});X.current={onOpened:T,onClosed:W,onOpen:z,onClose:N,beforeClose:k,onClickOverlay:A};const Y=(0,_react().useMemo)(()=>{const e=(0,_createPlatformShadow.createPlatformShadow)(F.shadow),{colors:t,spacing:o,typography:r,layout:a}=F;return{popup:{backgroundColor:t.background,padding:o.padding,...e},title:{color:t.title,fontFamily:r.fontFamily,fontSize:r.titleSize,fontWeight:r.titleWeight,marginHorizontal:o.descriptionHorizontal,textAlign:"center"},titleWrap:{marginTop:o.titleTop,marginBottom:o.titleBottom,marginHorizontal:o.descriptionHorizontal,alignItems:"center"},desc:{color:t.description,fontFamily:r.fontFamily,fontSize:r.descriptionSize,lineHeight:r.descriptionLineHeight},descWrap:{marginHorizontal:o.descriptionHorizontal,marginBottom:o.descriptionBottom},closeBase:{minWidth:o.closeIconSize,minHeight:o.closeIconSize,padding:o.closeIconPadding},closeDef:{width:o.closeIconSize,height:o.closeIconSize},side:{width:a.sideWidth,maxWidth:a.maxWidth},center:{minWidth:a.minWidth,maxWidth:a.centerMaxWidth}}},[F]),[G,J]=(0,_react().useState)(r),[K,Q]=(0,_react().useState)(r),Z=r||K,$=D&&(N||k),ee=(0,_react().useRef)(new(_reactNative().Animated.Value)(0)).current,te=(0,_react().useRef)(null),oe=(0,_react().useRef)(0),re=(0,_react().useRef)(r),ae=(0,_react().useRef)(!1),ne="top"===j||"bottom"===j,ie="left"===j||"right"===j,ce="top"===j||"left"===j?-1:1,le=(0,_react().useCallback)((e,t)=>{oe.current+=1;const o=oe.current;te.current?.stop();const r=t?0:O,a=_reactNative().Animated.timing(ee,{toValue:e?1:0,duration:r,easing:e?EASE_OUT:EASE_IN,useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1});te.current=a,a.start(({finished:t})=>{t&&o===oe.current&&(e?X.current.onOpened?.():(Q(!1),P&&J(!1),X.current.onClosed?.()))})},[P,O,ee]);(0,_react().useEffect)(()=>{r?(J(!0),Q(!0),le(!0,U)):re.current&&le(!1,U)},[le,r,U]),(0,_react().useEffect)(()=>{r&&!re.current&&X.current.onOpen?.(),re.current=r},[r]),(0,_react().useEffect)(()=>()=>{te.current?.stop()},[]);const se=(0,_react().useCallback)(async e=>{if(!ae.current){ae.current=!0;try{if(X.current.beforeClose){if(!1===await X.current.beforeClose(e))return}X.current.onClose?.()}finally{ae.current=!1}}},[]);(0,_react().useEffect)(()=>{if(x)return(0,_platform.addPopStateListener)(()=>{r&&se("close")})},[x,se,r]);const ue=(0,_react().useCallback)(()=>{X.current.onClickOverlay?.(),D&&se("overlay")},[se,D]),de=(0,_react().useCallback)(()=>se("close-icon"),[se]),pe=(0,_react().useCallback)(()=>se("close"),[se]),{zIndex:fe}=(0,_hooks.useOverlayStack)({visible:Z,onClose:pe,closeOnBack:E,lockScroll:I,zIndex:C,type:"popup"}),{overlayRef:_e,overlayProps:me}=(0,_hooks.useAriaOverlay)({isOpen:Z,onClose:()=>se("overlay"),isDismissable:D,overlayProps:{..."android"===_reactNative().Platform.OS?{}:{accessibilityRole:"dialog"},accessibilityLiveRegion:"polite"}}),{onLayout:ve,...ye}=me,ge=(0,_react().useMemo)(()=>q?{...ye,onStartShouldSetResponder:CAPTURE}:ye,[ye,q]),he=placementConfig[j],be=buildRadius(g,j,F.radius.round),{width:Se,height:Re}=(0,_reactNative().useWindowDimensions)(),Ie=ie?Se:ne?Re:0,Pe=(0,_react().useMemo)(()=>{if(B)return null;const e=[Ie*ce,0];return"y"===he.axis?{translateY:ee.interpolate({inputRange:[0,1],outputRange:e})}:{translateX:ee.interpolate({inputRange:[0,1],outputRange:e})}},[he.axis,ce,Ie,B,ee]),Oe=(0,_react().useMemo)(()=>Pe?[Pe]:[],[Pe]),Ce=(0,_react().useMemo)(()=>{const e=V?.transform,t=Array.isArray(e)?[...Oe,...e]:Oe,o={...V,transform:t};return B?{...o,opacity:ee}:null==V?.opacity?{...o,opacity:1}:o},[Oe,V,B,ee]),[Ee,xe]=(0,_react().useState)(0),we=(0,_react().useCallback)(e=>xe(e.nativeEvent.layout.height),[]),ke=G||r,Ae=!Z,Ne=(0,_validate.isRenderable)(i)||(0,_validate.isRenderable)(c),ze=(0,_react().useMemo)(()=>{if(!Ne)return null;const e=F.spacing.closeIconRight+F.spacing.closeIconSize,t=m&&y.startsWith("top-")?y.endsWith("right")?{paddingRight:e}:{paddingLeft:e}:void 0,o=(e,t,o)=>(0,_validate.isRenderable)(e)?(0,_validate.isText)(e)?_react().default.createElement(_reactNative().Text,{style:t},e):_react().default.createElement(_reactNative().View,{style:o},e):null;return _react().default.createElement(_reactNative().View,{style:[S.header,t]},o(i,[S.title,Y.title],Y.titleWrap),o(c,[S.desc,Y.desc],Y.descWrap))},[m,y,c,Y,Ne,i,F.spacing.closeIconRight,F.spacing.closeIconSize]),Te=(0,_react().useMemo)(()=>{if(!m)return null;const e=null!=v,t=y.includes("bottom")?{bottom:F.spacing.closeIconTop}:{top:F.spacing.closeIconTop+Ee},r="rtl"===o,a=y.endsWith("left")?r?{right:F.spacing.closeIconRight}:{left:F.spacing.closeIconRight}:r?{left:F.spacing.closeIconRight}:{right:F.spacing.closeIconRight};return _react().default.createElement(_reactNative().Pressable,{style:[S.closeBase,Y.closeBase,t,a,!e&&Y.closeDef],hitSlop:8,onPress:de},e?v:_react().default.createElement(_reactNativeSystemIcon().Cross,{size:22,fill:F.colors.closeIcon,color:F.colors.closeIcon}))},[v,y,m,Y,de,Ee,F.colors.closeIcon,F.spacing.closeIconRight,F.spacing.closeIconTop]),We=Ne?_react().default.createElement(_react().default.Fragment,null,ze,w):w;if(!ke)return null;const qe=fe??C,Le=h?_react().default.createElement(_safeAreaView.SafeAreaView,null,We):_react().default.createElement(_react().default.Fragment,null,b&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"top",onLayout:we,pointerEvents:"none"}),We,H&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"bottom",pointerEvents:"none"}));return _react().default.createElement(_Portal.default,null,_react().default.createElement(_reactNative().View,{style:[S.root,qe?{zIndex:qe}:void 0],pointerEvents:"box-none"},_react().default.createElement(_reactNative().View,{style:[S.ctr,he.container],pointerEvents:Z?"auto":"none",accessibilityViewIsModal:Z,accessibilityLiveRegion:"polite",onAccessibilityEscape:pe},s&&Z?_react().default.createElement(AnimatedPressable,_extends({testID:_,style:[S.ovl,{backgroundColor:F.colors.overlay,opacity:ee},u],renderToHardwareTextureAndroid:"android"===_reactNative().Platform.OS,shouldRasterizeIOS:"ios"===_reactNative().Platform.OS,pointerEvents:Z?"auto":"none"},$?{accessibilityRole:"button",accessibilityLabel:d,accessibilityHint:t?.vanPopup?.closeHint??"Double-tap to close"}:{accessible:!1},{onPress:ue})):null,!s&&I&&Z?_react().default.createElement(_reactNative().View,{style:S.lock,pointerEvents:"auto",onStartShouldSetResponder:CAPTURE,onMoveShouldSetResponder:CAPTURE}):null,_react().default.createElement(_reactNative().Animated.View,_extends({ref:_e},ge,{onLayout:ve,renderToHardwareTextureAndroid:"android"===_reactNative().Platform.OS,shouldRasterizeIOS:"ios"===_reactNative().Platform.OS,style:[Y.popup,B&&Y.center,ne&&S.popV,ie&&Y.side,be,Ce,L,Ae&&hiddenStyle]},M),Te,Le))))},S=_reactNative().StyleSheet.create({root:{..._reactNative().StyleSheet.absoluteFillObject,justifyContent:"center"},ctr:{flex:1},ovl:{..._reactNative().StyleSheet.absoluteFillObject,opacity:0},header:{width:"100%"},title:{includeFontPadding:!1},desc:{includeFontPadding:!1},popV:{alignSelf:"stretch"},closeBase:{position:"absolute",zIndex:999,alignItems:"center",justifyContent:"center"},lock:{..._reactNative().StyleSheet.absoluteFillObject}}),Popup=exports.Popup=_react().default.memo(PopupImpl);var _default=exports.default=Popup;
|
|
1
|
+
"use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Popup=void 0;var _safeAreaView=require("../safe-area-view"),_platform=require("../../platform"),_animation=require("../../hooks/animation"),_createPlatformShadow=require("../../utils/createPlatformShadow"),_validate=require("../../utils/validate");function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}var _Portal=_interopRequireDefault(require("../portal/Portal")),_hooks=require("../../hooks"),_useLocale=require("../config-provider/useLocale"),_useDirection=require("../config-provider/useDirection"),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var o=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var a,n,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(a=t?r:o){if(a.has(e))return a.get(e);a.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?a(i,t,n):i[t]=e[t]);return i})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)({}).hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},_extends.apply(null,arguments)}const AnimatedPressable=_reactNative().Animated.createAnimatedComponent(_reactNative().Pressable),EASE_OUT=_reactNative().Easing.bezier(.075,.82,.165,1),EASE_IN=_reactNative().Easing.bezier(.55,.055,.675,.19),CAPTURE=()=>!0,placementConfig={top:{container:{justifyContent:"flex-start",alignItems:"center"},axis:"y"},bottom:{container:{justifyContent:"flex-end",alignItems:"center"},axis:"y"},left:{container:{justifyContent:"center",alignItems:"flex-start"},axis:"x"},right:{container:{justifyContent:"center",alignItems:"flex-end"},axis:"x"},center:{container:{justifyContent:"center",alignItems:"center"},axis:"y"}},CONTENT_SELF={top:{alignSelf:"stretch"},bottom:{alignSelf:"stretch"},left:{alignSelf:"flex-start"},right:{alignSelf:"flex-end"},center:{alignSelf:"center"}},buildRadius=(e,t,o)=>e?"top"===t?{borderBottomLeftRadius:o,borderBottomRightRadius:o}:"bottom"===t?{borderTopLeftRadius:o,borderTopRightRadius:o}:"left"===t?{borderTopRightRadius:o,borderBottomRightRadius:o}:"right"===t?{borderTopLeftRadius:o,borderBottomLeftRadius:o}:{borderRadius:o}:void 0,hiddenStyle={opacity:0,shadowOpacity:0,shadowRadius:0,elevation:0},PopupImpl=e=>{const t=(0,_useLocale.useLocale)(),o=(0,_useDirection.useDirection)(),{visible:r,placement:a,position:n,title:i,description:l,tokensOverride:c,overlay:s=!0,overlayStyle:u,overlayAccessibilityLabel:d=t?.vanPopup?.closeOverlay??"Close overlay",closeOnOverlayPress:p,closeOnClickOverlay:f,overlayTestID:_="popup-overlay",closeable:m=!1,closeIcon:g,closeIconPosition:v="top-right",round:y,safeArea:h=!1,safeAreaInsetTop:b=!1,safeAreaInsetBottom:R,lockScroll:I=!0,destroyOnClose:O=!1,duration:C=300,zIndex:E,closeOnBackPress:P=!1,closeOnPopstate:x=!1,children:w,beforeClose:N,onClickOverlay:k,onClose:A,onOpen:T,onOpened:z,onClosed:W,stopPropagation:L=!0,style:q,contentAnimationStyle:V,...M}=e,j=a??n??"center",D=f??p??!0,B="center"===j,F=R??!1,H=(0,_tokens.usePopupTokens)(c),U=(0,_animation.useReducedMotion)(),X=(0,_react().useRef)({onOpened:z,onClosed:W,onOpen:T,onClose:A,beforeClose:N,onClickOverlay:k});X.current={onOpened:z,onClosed:W,onOpen:T,onClose:A,beforeClose:N,onClickOverlay:k};const Y=(0,_react().useMemo)(()=>{const e=(0,_createPlatformShadow.createPlatformShadow)(H.shadow),{colors:t,spacing:o,typography:r,layout:a}=H;return{popup:{backgroundColor:t.background,padding:o.padding,...e},title:{color:t.title,fontFamily:r.fontFamily,fontSize:r.titleSize,fontWeight:r.titleWeight,marginHorizontal:o.descriptionHorizontal,textAlign:"center"},titleWrap:{marginTop:o.titleTop,marginBottom:o.titleBottom,marginHorizontal:o.descriptionHorizontal,alignItems:"center"},desc:{color:t.description,fontFamily:r.fontFamily,fontSize:r.descriptionSize,lineHeight:r.descriptionLineHeight},descWrap:{marginHorizontal:o.descriptionHorizontal,marginBottom:o.descriptionBottom},closeBase:{minWidth:o.closeIconSize,minHeight:o.closeIconSize,padding:o.closeIconPadding},closeDef:{width:o.closeIconSize,height:o.closeIconSize},side:{width:a.sideWidth,maxWidth:a.maxWidth},center:{minWidth:a.minWidth,maxWidth:a.centerMaxWidth}}},[H]),[G,J]=(0,_react().useState)(r),[K,Q]=(0,_react().useState)(r),Z=r||K,$=D&&(A||N),ee=(0,_react().useRef)(new(_reactNative().Animated.Value)(0)).current,te=(0,_react().useRef)(null),oe=(0,_react().useRef)(0),re=(0,_react().useRef)(r),ae=(0,_react().useRef)(!1),ne="top"===j||"bottom"===j,ie="left"===j||"right"===j,le="top"===j||"left"===j?-1:1,ce=(0,_react().useCallback)((e,t)=>{oe.current+=1;const o=oe.current;te.current?.stop();const r=t?0:C,a=_reactNative().Animated.timing(ee,{toValue:e?1:0,duration:r,easing:e?EASE_OUT:EASE_IN,useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1});te.current=a,a.start(({finished:t})=>{t&&o===oe.current&&(e?X.current.onOpened?.():(Q(!1),O&&J(!1),X.current.onClosed?.()))})},[O,C,ee]);(0,_react().useEffect)(()=>{r?(J(!0),Q(!0),ce(!0,U)):re.current&&ce(!1,U)},[ce,r,U]),(0,_react().useEffect)(()=>{r&&!re.current&&X.current.onOpen?.(),re.current=r},[r]),(0,_react().useEffect)(()=>()=>{te.current?.stop()},[]);const se=(0,_react().useCallback)(async e=>{if(!ae.current){ae.current=!0;try{if(X.current.beforeClose){if(!1===await X.current.beforeClose(e))return}X.current.onClose?.()}finally{ae.current=!1}}},[]);(0,_react().useEffect)(()=>{if(x)return(0,_platform.addPopStateListener)(()=>{r&&se("close")})},[x,se,r]);const ue=(0,_react().useCallback)(()=>{X.current.onClickOverlay?.(),D&&se("overlay")},[se,D]),de=(0,_react().useCallback)(()=>se("close-icon"),[se]),pe=(0,_react().useCallback)(()=>se("close"),[se]),{zIndex:fe}=(0,_hooks.useOverlayStack)({visible:Z,onClose:pe,closeOnBack:P,lockScroll:I,zIndex:E,type:"popup"}),{overlayRef:_e,overlayProps:me}=(0,_hooks.useAriaOverlay)({isOpen:Z,onClose:()=>se("overlay"),isDismissable:D,overlayProps:{..."android"===_reactNative().Platform.OS?{}:{accessibilityRole:"dialog"},accessibilityLiveRegion:"polite"}}),{onLayout:ge,...ve}=me,ye=(0,_react().useMemo)(()=>L?{...ve,onStartShouldSetResponder:CAPTURE}:ve,[ve,L]),he=placementConfig[j],Se=buildRadius(y,j,H.radius.round),{width:be,height:Re}=(0,_reactNative().useWindowDimensions)(),Ie=ie?be:ne?Re:0,Oe=(0,_react().useMemo)(()=>{if(B)return null;const e=[Ie*le,0];return"y"===he.axis?{translateY:ee.interpolate({inputRange:[0,1],outputRange:e})}:{translateX:ee.interpolate({inputRange:[0,1],outputRange:e})}},[he.axis,le,Ie,B,ee]),Ce=(0,_react().useMemo)(()=>Oe?[Oe]:[],[Oe]),Ee=(0,_react().useMemo)(()=>{const e=V?.transform,t=Array.isArray(e)?[...Ce,...e]:Ce,o={...V,transform:t};return B?{...o,opacity:ee}:null==V?.opacity?{...o,opacity:1}:o},[Ce,V,B,ee]),[Pe,xe]=(0,_react().useState)(0),we=(0,_react().useCallback)(e=>xe(e.nativeEvent.layout.height),[]),Ne=G||r,ke=!Z,Ae=(0,_validate.isRenderable)(i)||(0,_validate.isRenderable)(l),Te=(0,_react().useMemo)(()=>{if(!Ae)return null;const e=H.spacing.closeIconRight+H.spacing.closeIconSize,t=m&&v.startsWith("top-")?v.endsWith("right")?{paddingRight:e}:{paddingLeft:e}:void 0,o=(e,t,o)=>(0,_validate.isRenderable)(e)?(0,_validate.isText)(e)?_react().default.createElement(_reactNative().Text,{style:t},e):_react().default.createElement(_reactNative().View,{style:o},e):null;return _react().default.createElement(_reactNative().View,{style:[S.header,t]},o(i,[S.title,Y.title],Y.titleWrap),o(l,[S.desc,Y.desc],Y.descWrap))},[m,v,l,Y,Ae,i,H.spacing.closeIconRight,H.spacing.closeIconSize]),ze=(0,_react().useMemo)(()=>{if(!m)return null;const e=null!=g,t=v.includes("bottom")?{bottom:H.spacing.closeIconTop}:{top:H.spacing.closeIconTop+Pe},r="rtl"===o,a=v.endsWith("left")?r?{right:H.spacing.closeIconRight}:{left:H.spacing.closeIconRight}:r?{left:H.spacing.closeIconRight}:{right:H.spacing.closeIconRight};return _react().default.createElement(_reactNative().Pressable,{style:[S.closeBase,Y.closeBase,t,a,!e&&Y.closeDef],hitSlop:8,onPress:de},e?g:_react().default.createElement(_reactNativeSystemIcon().Cross,{size:22,fill:H.colors.closeIcon,color:H.colors.closeIcon}))},[g,v,m,Y,de,Pe,H.colors.closeIcon,H.spacing.closeIconRight,H.spacing.closeIconTop]),We=Ae?_react().default.createElement(_react().default.Fragment,null,Te,w):w;if(!Ne)return null;const Le=fe??E,qe=h?_react().default.createElement(_safeAreaView.SafeAreaView,null,We):_react().default.createElement(_react().default.Fragment,null,b&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"top",onLayout:we,pointerEvents:"none"}),We,F&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"bottom",pointerEvents:"none"}));return _react().default.createElement(_Portal.default,null,_react().default.createElement(_reactNative().View,{style:[S.root,Le?{zIndex:Le}:void 0],pointerEvents:"box-none"},_react().default.createElement(_reactNative().View,{style:[S.ctr,he.container],pointerEvents:Z?"auto":"none",accessibilityViewIsModal:Z,accessibilityLiveRegion:"polite",onAccessibilityEscape:pe},s&&Z?_react().default.createElement(AnimatedPressable,_extends({testID:_,style:[S.ovl,{backgroundColor:H.colors.overlay,opacity:ee},u],renderToHardwareTextureAndroid:"android"===_reactNative().Platform.OS,shouldRasterizeIOS:"ios"===_reactNative().Platform.OS,pointerEvents:Z?"auto":"none"},$?{accessibilityRole:"button",accessibilityLabel:d,accessibilityHint:t?.vanPopup?.closeHint??"Double-tap to close"}:{accessible:!1},{onPress:ue})):null,!s&&I&&Z?_react().default.createElement(_reactNative().View,{style:S.lock,pointerEvents:"auto",onStartShouldSetResponder:CAPTURE,onMoveShouldSetResponder:CAPTURE}):null,_react().default.createElement(_reactNative().Animated.View,_extends({ref:_e},ye,{onLayout:ge,renderToHardwareTextureAndroid:"android"===_reactNative().Platform.OS,shouldRasterizeIOS:"ios"===_reactNative().Platform.OS,style:[Y.popup,B&&Y.center,ne&&S.popV,ie&&Y.side,CONTENT_SELF[j],Se,Ee,q,ke&&hiddenStyle]},M),ze,qe))))},S=_reactNative().StyleSheet.create({root:{..._reactNative().StyleSheet.absoluteFillObject,justifyContent:"center"},ctr:{flex:1},ovl:{..._reactNative().StyleSheet.absoluteFillObject,opacity:0},header:{width:"100%"},title:{includeFontPadding:!1},desc:{includeFontPadding:!1},popV:{alignSelf:"stretch"},closeBase:{position:"absolute",zIndex:999,alignItems:"center",justifyContent:"center"},lock:{..._reactNative().StyleSheet.absoluteFillObject}}),Popup=exports.Popup=_react().default.memo(PopupImpl);var _default=exports.default=Popup;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.ToastContent=exports.Toast=void 0;var _Portal=_interopRequireDefault(require("../portal/Portal")),_safeAreaView=require("../safe-area-view"),_hooks=require("../../hooks"),_loading=_interopRequireDefault(require("../loading"));function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}var _validate=require("../../utils/validate"),_utils=require("../../utils"),_platform=require("../../platform"),_animation=require("../../hooks/animation"),_useLocale=require("../config-provider/useLocale"),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,i,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(n=t?a:r){if(n.has(e))return n.get(e);n.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((i=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(i.get||i.set)?n(o,t,i):o[t]=e[t]);return o})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},_extends.apply(null,arguments)}const RT=()=>!0,ToastContentImpl=e=>{const{visible:t,message:r,icon:a,type:n="info",iconSize:i,duration:o=2e3,position:s="middle",forbidClick:c=!1,overlay:u=!1,overlayStyle:l,closeOnClickOverlay:d=!1,closeOnClick:f=!1,loadingIndicator:_,safeAreaInsetTop:m,safeAreaInsetBottom:p,tokensOverride:v,style:g,textStyle:y,onClose:x,onOpen:b,onOpened:h,onClosed:T}=e,E=(0,_useLocale.useLocale)(),N=(0,_tokens.useToastTokens)(v),R=(0,_animation.useReducedMotion)(),{colors:k}=N,{height:
|
|
1
|
+
"use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.ToastContent=exports.Toast=void 0;var _Portal=_interopRequireDefault(require("../portal/Portal")),_safeAreaView=require("../safe-area-view"),_hooks=require("../../hooks"),_loading=_interopRequireDefault(require("../loading"));function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}var _validate=require("../../utils/validate"),_utils=require("../../utils"),_platform=require("../../platform"),_animation=require("../../hooks/animation"),_useLocale=require("../config-provider/useLocale"),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,i,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(n=t?a:r){if(n.has(e))return n.get(e);n.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((i=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(i.get||i.set)?n(o,t,i):o[t]=e[t]);return o})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},_extends.apply(null,arguments)}const RT=()=>!0,ToastContentImpl=e=>{const{visible:t,message:r,icon:a,type:n="info",iconSize:i,duration:o=2e3,position:s="middle",forbidClick:c=!1,overlay:u=!1,overlayStyle:l,closeOnClickOverlay:d=!1,closeOnClick:f=!1,loadingIndicator:_,safeAreaInsetTop:m,safeAreaInsetBottom:p,tokensOverride:v,style:g,textStyle:y,onClose:x,onOpen:b,onOpened:h,onClosed:T}=e,E=(0,_useLocale.useLocale)(),N=(0,_tokens.useToastTokens)(v),R=(0,_animation.useReducedMotion)(),{colors:k}=N,{height:w}=(0,_reactNative().useWindowDimensions)(),O=(0,_validate.isFiniteNumber)(o)?Math.max(0,o):0,[I,C]=(0,_react().useState)(t),M=(0,_react().useRef)(new(_reactNative().Animated.Value)(t?1:0)).current,P=(0,_react().useRef)(null),q=(0,_react().useRef)(0),z=(0,_react().useRef)(x);z.current=x;const A=(0,_react().useRef)(b);A.current=b;const W=(0,_react().useRef)(h);W.current=h;const V=(0,_react().useRef)(T);V.current=T;const{zIndex:D}=(0,_hooks.useOverlayStack)({visible:I,type:"toast"}),H=(0,_react().useRef)(t),j=(0,_react().useRef)(!1),F=w>0?Math.round(w*N.positionOffsetRatio):N.positionOffsetMin,L=void 0!==m?m:"top"===s,B=void 0!==p?p:"bottom"===s,G=(0,_react().useMemo)(()=>"top"===s?{justifyContent:"flex-start",paddingTop:F}:"bottom"===s?{justifyContent:"flex-end",paddingBottom:F}:{justifyContent:"center"},[s,F]);(0,_react().useEffect)(()=>{q.current+=1;const e=q.current;P.current?.stop();const r=R?0:N.animationDuration;t?(C(!0),P.current=_reactNative().Animated.timing(M,{toValue:1,duration:r,easing:_reactNative().Easing.out(_reactNative().Easing.cubic),useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1}),P.current.start()):(P.current=_reactNative().Animated.timing(M,{toValue:0,duration:r,easing:_reactNative().Easing.out(_reactNative().Easing.cubic),useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1}),P.current.start(({finished:t})=>{t&&e===q.current&&C(!1)}))},[M,R,N.animationDuration,t]),(0,_react().useEffect)(()=>()=>{P.current?.stop()},[]),(0,_react().useEffect)(()=>{if(!t||O<=0)return;const e=setTimeout(()=>{z.current?.()},O);return()=>clearTimeout(e)},[O,t]),(0,_react().useEffect)(()=>{if(!t||!(0,_validate.isText)(r))return;const e=String(r);e&&_reactNative().AccessibilityInfo.announceForAccessibility?.(e)},[r,t]);const J=R?0:N.animationDuration;(0,_react().useEffect)(()=>{let e=null;return t?(j.current=!1,!H.current&&(A.current?.(),W.current&&(e=setTimeout(W.current,J)))):H.current&&(j.current=!0),H.current=t,()=>{e&&clearTimeout(e)}},[J,t]),(0,_react().useEffect)(()=>{!I&&j.current&&(j.current=!1,V.current?.())},[I]);const K=(0,_react().useRef)(()=>z.current?.()).current,Q=(0,_hooks.useAriaPress)({disabled:!f,onPress:K,extraProps:{accessibilityRole:f?"button":"alert",accessibilityHint:f?E?.vanToast?.closeHint??"Double-tap to dismiss":void 0,accessibilityLiveRegion:"assertive"}}),U=(0,_react().useMemo)(()=>{if(a)return a;const e=i??N.iconSize;switch(n){case"success":return _react().default.createElement(_reactNativeSystemIcon().Checked,{size:e,fill:k.text,color:k.text});case"fail":return _react().default.createElement(_reactNativeSystemIcon().Close,{size:e,fill:k.text,color:k.text});case"loading":return _??_react().default.createElement(_loading.default,{color:k.text,size:e});default:return null}},[k.text,a,i,_,N.iconSize,n]),X=(0,_react().useMemo)(()=>({marginBottom:N.gap}),[N.gap]),Y=(0,_react().useMemo)(()=>({color:k.text,fontSize:N.fontSize,lineHeight:N.lineHeight,fontFamily:N.fontFamily}),[k.text,N.fontSize,N.fontFamily,N.lineHeight]),Z="info"===n&&!U,$=(0,_react().useMemo)(()=>Z?{minWidth:N.textMinWidth,minHeight:0,paddingVertical:N.textPaddingVertical,paddingHorizontal:N.textPaddingHorizontal}:{minWidth:N.defaultWidth,minHeight:N.defaultMinHeight,padding:N.defaultPadding},[Z,N.defaultMinHeight,N.defaultPadding,N.defaultWidth,N.textMinWidth,N.textPaddingHorizontal,N.textPaddingVertical]),ee=(0,_react().useMemo)(()=>({borderRadius:N.radius,opacity:f&&Q.states.pressed?N.pressedOpacity:M,backgroundColor:N.colors.variants[n],maxWidth:N.maxWidth,...$}),[M,$,f,Q.states.pressed,N.colors.variants,N.maxWidth,N.pressedOpacity,N.radius,n]);if(!I)return null;const te=(0,_validate.isRenderable)(r)&&("string"!=typeof r||""!==r);return _react().default.createElement(_reactNative().View,{style:[S.b,{backgroundColor:N.colors.transparent},G,D?{zIndex:D}:void 0],pointerEvents:c||u||f?"auto":"none"},(u||c)&&_react().default.createElement(_reactNative().Pressable,{testID:"rv-toast-overlay",style:[S.o,{backgroundColor:N.colors.transparent},u&&{backgroundColor:k.backdrop},l],pointerEvents:"auto",onPress:u&&d?K:void 0,onStartShouldSetResponder:RT,onMoveShouldSetResponder:RT}),L&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"top",pointerEvents:"none"}),_react().default.createElement(_reactNative().Pressable,_extends({disabled:!f},Q.interactionProps,{style:S.pw}),_react().default.createElement(_reactNative().Animated.View,{renderToHardwareTextureAndroid:!0,shouldRasterizeIOS:!0,style:[S.t,ee,g]},U&&_react().default.createElement(_reactNative().View,{style:X},(0,_validate.isText)(U)?(0,_utils.renderTextOrNode)(U,[{color:k.text,fontSize:N.iconSize}]):U),te&&((0,_validate.isText)(r)?(0,_utils.renderTextOrNode)(r,[S.m,Y,y]):_react().default.createElement(_reactNative().View,{style:S.mw},r)))),B&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"bottom",pointerEvents:"none"}))},ToastContent=exports.ToastContent=_react().default.memo(ToastContentImpl),ToastImpl=e=>_react().default.createElement(_Portal.default,null,_react().default.createElement(ToastContent,e)),Toast=exports.Toast=_react().default.memo(ToastImpl),S=_reactNative().StyleSheet.create({b:{flex:1,alignItems:"center"},o:{..._reactNative().StyleSheet.absoluteFillObject},pw:{alignItems:"center"},t:{alignItems:"center",justifyContent:"center"},m:{textAlign:"center"},mw:{alignItems:"center"}});var _default=exports.default=Toast;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},_extends.apply(null,arguments)}import React,{useCallback,useId,useImperativeHandle,useMemo,useRef,useState}from"react";import{Platform,Pressable,Text,TextInput,View}from"react-native";import{Clear,QuestionO}from"react-native-system-icon";import Cell from"../cell";import Dialog from"../dialog";import{formatNumberInput}from"../../utils/string";import{isDef,isFiniteNumber,isFunction,isObject,isRenderable,isText}from"../../utils/validate";import{useFieldTokens}from"./tokens";const alignMap={left:"flex-start",center:"center",right:"flex-end"},mapKeyboardType=e=>{switch(e){case"number":return"decimal-pad";case"digit":return"number-pad";case"tel":return"phone-pad";default:return}},FieldSlot=({onPress:e,style:t,children:n,accessibilityRole:r="button"})=>n?e?React.createElement(Pressable,{onPress:e,accessibilityRole:r,style:t},n):React.createElement(View,{style:t},n):null,FieldClearButton=({show:e,tokens:t,clearIcon:n,onPressIn:r,onPressOut:l,onPress:i})=>{if(!e)return null;const o="web"===Platform.OS?{onMouseDown:e=>{e.preventDefault?.(),e.stopPropagation?.()}}:void 0;return React.createElement(Pressable,_extends({style:[t.layout.clearIcon,{paddingHorizontal:t.spacing.rightIconGap}]},o,{onPressIn:r,onPressOut:l,onPress:i,accessibilityRole:"button"}),React.isValidElement(n)?n:React.createElement(Clear,{size:t.sizes.clearIcon,fill:t.colors.clear,color:t.colors.clear}))},FieldInput=({inputRef:e,tokens:t,isTextarea:n,disabled:r,error:l,finalTextAlign:i,lineHeight:o,textareaHeight:a,minHeight:s,inputStyle:c,value:u,onChangeText:d,onFocus:g,onBlur:p,onPressIn:m,rows:f,placeholderTextColor:y,keyboardType:b,onContentSizeChange:h,describedBy:x,secureTextEntry:R,editable:T,restInputProps:w})=>{const I=[n?t.layout.textarea:t.layout.input,{color:r?t.colors.disabled:l?t.colors.error:t.colors.input,fontSize:t.typography.inputSize,textAlign:i,...n?{lineHeight:o,height:a,minHeight:s}:{minHeight:t.sizes.controlMinHeight}},c];return React.createElement(TextInput,_extends({ref:e,style:I,value:u,onChangeText:d,onFocus:g,onBlur:p,onPressIn:m,editable:T,secureTextEntry:R,multiline:n,numberOfLines:n?f:void 0,keyboardType:b,placeholderTextColor:y,onContentSizeChange:n?h:void 0},x?{accessibilityDescribedBy:x}:null,{clearButtonMode:"never"},w))},FieldControlRow=({tokens:e,prefixNode:t,leftIconNode:n,controlNode:r,clearNode:l,rightIconNode:i,suffixNode:o})=>React.createElement(View,{style:e.layout.body},t,n,React.createElement(View,{style:[e.layout.controlWrapper,{minHeight:e.sizes.controlMinHeight}]},r,l),i,o),FieldImpl=(e,t)=>{const{tokensOverride:n,label:r,labelWidth:l,labelAlign:i,inputAlign:o,controlAlign:a,required:s=!1,colon:c=!1,intro:u,description:d,tooltip:g,error:p=!1,errorMessage:m,errorMessageAlign:f="left",disabled:y=!1,readOnly:b=!1,clearable:h=!1,clearTrigger:x,clearIcon:R,leftIcon:T,rightIcon:w,prefix:I,suffix:S,button:C,extra:v,value:k,defaultValue:P="",type:z="text",rows:E,autoSize:M=!1,formatter:F,formatTrigger:H,showWordLimit:O=!1,onOverlimit:L,onClear:N,onClick:A,onClickInput:D,onClickLeftIcon:B,onClickRightIcon:V,border:G,center:W,clickable:_,isLink:j,arrowDirection:q,size:K,titleStyle:Q,contentStyle:$,inputStyle:J,labelStyle:U,introStyle:X,errorMessageStyle:Y,style:Z,androidRipple:ee,children:te,placeholderTextColor:ne,onFocus:re,onBlur:le,onPressIn:ie,onChangeText:oe,maxLength:ae,...se}=e,ce=useFieldTokens(n),ue=l??ce.defaults.labelWidth,de=i??ce.defaults.labelAlign,ge=o??ce.defaults.inputAlign,pe=a??ce.defaults.controlAlign,me=x??ce.defaults.clearTrigger,fe=E??ce.defaults.rows,ye=H??ce.defaults.formatTrigger,be=[{width:ue,minWidth:ue,maxWidth:ue,flexBasis:ue,marginRight:ce.spacing.labelGap,flexShrink:0,flexGrow:0},Q],he=S??C,xe=u??d,Re=ne??(y?ce.colors.disabled:ce.colors.placeholder),Te="textarea"===z,we=void 0!==k,[Ie,Se]=useState(P),Ce=we?k??"":Ie,[ve,ke]=useState(!1),[Pe,ze]=useState(!1),Ee=useRef(!1),Me=useRef(null),Fe=useId(),He=useId(),Oe=useMemo(()=>{const e=[isRenderable(m)?He:null,isRenderable(xe)?Fe:null].filter(Boolean);return e.length?e:void 0},[He,m,Fe,xe]),Le=ce.defaults.textareaLineHeight,Ne=M&&isObject(M)?M:void 0,Ae=Te?Ne&&isDef(Ne.minRows)?Math.max(1,Ne.minRows):Math.max(1,fe):1,De=Te&&Ne&&isDef(Ne.maxRows)?Math.max(1,Ne.maxRows):void 0,Be=useMemo(()=>Te?Math.max(ce.sizes.textareaMinHeight,Ae*Le):void 0,[Te,Le,Ae,ce.sizes.textareaMinHeight]),Ve=useMemo(()=>Te&&De?Math.max(ce.sizes.textareaMinHeight,De*Le):void 0,[Te,Le,De,ce.sizes.textareaMinHeight]),[Ge,We]=useState(Be),_e=useRef(oe);_e.current=oe;const je=useRef(L);je.current=L;const qe=useRef(re);qe.current=re;const Ke=useRef(le);Ke.current=le;const Qe=useRef(ie);Qe.current=ie;const $e=useRef(D);$e.current=D;const Je=useRef(N);Je.current=N;const Ue=useCallback((e,t="onChange")=>F&&t===ye?F(e):e,[ye,F]),Xe=useCallback((e,t="onChange")=>{const n=Ue(e,t);we||Se(n),_e.current?.(n)},[Ue,we]);useImperativeHandle(t,()=>({focus:()=>Me.current?.focus(),blur:()=>Me.current?.blur(),clear:()=>Xe(""),get nativeElement(){return Me.current}}));const Ye="left"!==pe?pe:ge,Ze=h&&!b&&""!==(Ce??"")&&("always"===me||"focus"===me&&(ve||Pe)),et=useCallback(e=>{let t=e??"";if("number"===z||"digit"===z){const e="number"===z;t=formatNumberInput(t,e,e)}isFiniteNumber(ae)&&ae>=0&&t.length>ae&&(je.current?.(t),t=t.slice(0,ae)),Xe(t,"onChange")},[ae,z,Xe]),tt=useCallback(e=>{ke(!0),qe.current?.(e),b&&Me.current?.blur()},[b]),nt=useCallback(e=>{if("web"!==Platform.OS&&Ee.current)return Ee.current=!1,ke(!1),void Ke.current?.(e);Xe(Ce??"","onBlur"),ke(!1),Ke.current?.(e)},[Xe,Ce]),rt=useCallback(e=>{Qe.current?.(e),$e.current?.()},[]),lt=useCallback(e=>{if(!Te)return;const t=e.nativeEvent.contentSize?.height??0;if(!t)return;let n=t;M?(n=Math.max(Be??t,t),Ve&&(n=Math.min(n,Ve))):Be&&(n=Math.max(Be,t)),We(n)},[M,Te,Ve,Be]),it=useCallback(()=>{"web"!==Platform.OS&&(Ee.current=!0),Xe(""),Me.current?.clear?.(),Me.current?.focus?.(),Je.current?.()},[Xe]),ot=useCallback(()=>{ze(!0),"web"!==Platform.OS&&it()},[it]),at=useCallback(()=>{ze(!1),Ee.current=!1},[]),st=isRenderable(te)?React.createElement(View,{style:[ce.layout.children,{minHeight:ce.sizes.controlMinHeight}]},te):React.createElement(FieldInput,{inputRef:Me,tokens:ce,isTextarea:Te,disabled:y,error:p,finalTextAlign:Ye,lineHeight:Le,textareaHeight:Ge,minHeight:Be,inputStyle:J,value:Ce??"",onChangeText:et,onFocus:tt,onBlur:nt,onPressIn:rt,rows:fe,keyboardType:se.keyboardType??mapKeyboardType(z),placeholderTextColor:Re,onContentSizeChange:lt,describedBy:Oe,secureTextEntry:"password"===z,editable:!y&&!b,restInputProps:se}),ct=[{width:"100%",justifyContent:alignMap[pe]},$],ut=e=>isText(e)?React.createElement(Text,{style:[ce.layout.affixText,{color:ce.colors.input,fontSize:ce.typography.inputSize}],numberOfLines:1},e):e,dt=isRenderable(g)?(()=>{const e=React.createElement(QuestionO,{size:ce.sizes.icon,fill:ce.colors.tooltip,color:ce.colors.tooltip});let t=e,n={message:g};if(!React.isValidElement(g)&&!isText(g)){const{icon:r,...l}=g;t=r??e,n=l}return React.createElement(Pressable,{style:[ce.layout.tooltip,{marginLeft:ce.spacing.rightIconGap}],onPress:()=>Dialog.show(n),accessibilityRole:"button"},t)})():null,gt=isRenderable(r)?(()=>{const e=isText(r)?React.createElement(Text,{style:[{color:y?ce.colors.disabled:ce.colors.label,fontSize:ce.typography.labelSize,textAlign:de},U],numberOfLines:1},r,c?":":""):r;return React.createElement(View,{style:ce.layout.labelRow},e,dt)})():null,pt=O&&null!=ae?(()=>{const e=(Ce??"").length,t=isFunction(O)?O({currentCount:e,maxLength:ae}):`${e}/${ae}`;return isRenderable(t)?isText(t)?React.createElement(Text,{style:[ce.layout.wordLimit,{color:ce.colors.wordLimit,fontSize:ce.typography.wordLimitSize??12,textAlign:"right",alignSelf:"flex-end",marginTop:ce.spacing.wordLimitMarginTop}]},t):t:null})():null,mt=isRenderable(m)?isText(m)?React.createElement(Text,{nativeID:He,style:[ce.layout.message,{color:ce.colors.error,fontSize:ce.typography.messageSize,textAlign:f,marginTop:ce.spacing.messageMarginTop},Y],accessibilityLiveRegion:"polite"},m):React.createElement(View,{nativeID:He,style:[ce.layout.message,{alignSelf:alignMap[f],marginTop:ce.spacing.messageMarginTop}],accessibilityLiveRegion:"polite"},m):null,ft=isRenderable(xe)?isText(xe)?React.createElement(Text,{nativeID:Fe,style:[ce.layout.message,{color:ce.colors.intro,fontSize:ce.typography.introSize,textAlign:pe,marginTop:ce.spacing.introMarginTop},X]},xe):React.createElement(View,{nativeID:Fe,style:{marginTop:ce.spacing.introMarginTop}},xe):null,yt=I?React.createElement(View,{style:[ce.layout.prefix,{paddingRight:ce.spacing.prefixGap}]},ut(I)):null,bt=he?React.createElement(View,{style:[ce.layout.suffix,{paddingLeft:ce.spacing.suffixGap}]},ut(he)):null,ht=T?React.createElement(FieldSlot,{onPress:B,style:[ce.layout.leftIcon,{marginRight:ce.spacing.leftIconGap,minWidth:ce.sizes.icon}]},T):null,xt=w?React.createElement(FieldSlot,{onPress:V,style:[ce.layout.rightIcon,{paddingHorizontal:ce.spacing.rightIconGap}]},w):null,Rt=Ze?React.createElement(FieldClearButton,{show:Ze,tokens:ce,clearIcon:R,onPressIn:ot,onPressOut:"web"===Platform.OS?at:void 0,onPress:"web"===Platform.OS?it:void 0}):null;return React.createElement(Cell,{title:gt,icon:void 0,required:s,border:G,center:W,size:K,clickable:_,isLink:j,arrowDirection:q,extra:v,titleStyle:be,style:Z,contentStyle:ct,accessibilityState:p?{invalid:!0}:void 0,accessibilityLabel:isText(r)?String(r):void 0,onPress:A,android_ripple:ee},React.createElement(FieldControlRow,{tokens:ce,prefixNode:yt,leftIconNode:ht,controlNode:st,clearNode:Rt,rightIconNode:xt,suffixNode:bt}),pt,mt,ft)},FieldForwardRef=React.forwardRef(FieldImpl);FieldForwardRef.displayName="Field";export const Field=React.memo(FieldForwardRef);export default Field;
|
|
1
|
+
function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},_extends.apply(null,arguments)}import React,{useCallback,useId,useImperativeHandle,useMemo,useRef,useState}from"react";import{Platform,Pressable,Text,TextInput,View}from"react-native";import{Clear,QuestionO}from"react-native-system-icon";import Cell from"../cell";import Dialog from"../dialog";import{formatNumberInput}from"../../utils/string";import{isDef,isFiniteNumber,isFunction,isObject,isRenderable,isText}from"../../utils/validate";import{useFieldTokens}from"./tokens";const alignMap={left:"flex-start",center:"center",right:"flex-end"},mapKeyboardType=e=>{switch(e){case"number":return"decimal-pad";case"digit":return"number-pad";case"tel":return"phone-pad";default:return}},FieldSlot=({onPress:e,style:t,children:r,accessibilityRole:n="button"})=>r?e?React.createElement(Pressable,{onPress:e,accessibilityRole:n,style:t},r):React.createElement(View,{style:t},r):null,FieldClearButton=({show:e,tokens:t,clearIcon:r,onPressIn:n,onPressOut:l,onPress:i})=>{if(!e)return null;const o="web"===Platform.OS?{onMouseDown:e=>{e.preventDefault?.(),e.stopPropagation?.()}}:void 0;return React.createElement(Pressable,_extends({style:[t.layout.clearIcon,{paddingHorizontal:t.spacing.rightIconGap}]},o,{onPressIn:n,onPressOut:l,onPress:i,accessibilityRole:"button"}),React.isValidElement(r)?r:React.createElement(Clear,{size:t.sizes.clearIcon,fill:t.colors.clear,color:t.colors.clear}))},FieldInput=({inputRef:e,tokens:t,isTextarea:r,disabled:n,error:l,finalTextAlign:i,lineHeight:o,textareaHeight:a,minHeight:s,inputStyle:c,value:u,onChangeText:d,onFocus:g,onBlur:m,onPressIn:p,rows:f,placeholderTextColor:b,keyboardType:y,onContentSizeChange:h,describedBy:x,secureTextEntry:R,editable:T,restInputProps:w})=>{const I=[r?t.layout.textarea:t.layout.input,{color:n?t.colors.disabled:l?t.colors.error:t.colors.input,fontSize:t.typography.inputSize,textAlign:i,...r?{lineHeight:o,height:a,minHeight:s}:{minHeight:t.sizes.controlMinHeight}},c];return React.createElement(TextInput,_extends({ref:e,style:I,value:u,onChangeText:d,onFocus:g,onBlur:m,onPressIn:p,editable:T,secureTextEntry:R,multiline:r,numberOfLines:r?f:void 0,keyboardType:y,placeholderTextColor:b,onContentSizeChange:r?h:void 0},x?{accessibilityDescribedBy:x}:null,{clearButtonMode:"never"},w))},FieldControlRow=({tokens:e,prefixNode:t,leftIconNode:r,controlNode:n,clearNode:l,rightIconNode:i,suffixNode:o})=>React.createElement(View,{style:e.layout.body},t,r,React.createElement(View,{style:[e.layout.controlWrapper,{minHeight:e.sizes.controlMinHeight}]},n,l),i,o),FieldImpl=(e,t)=>{const{tokensOverride:r,label:n,labelWidth:l,labelAlign:i,inputAlign:o,controlAlign:a,required:s=!1,colon:c=!1,intro:u,description:d,tooltip:g,error:m=!1,errorMessage:p,errorMessageAlign:f="left",errorMessagePosition:b="inner",disabled:y=!1,readOnly:h=!1,clearable:x=!1,clearTrigger:R,clearIcon:T,leftIcon:w,rightIcon:I,prefix:S,suffix:C,button:v,extra:P,value:k,defaultValue:E="",type:z="text",rows:M,autoSize:F=!1,formatter:H,formatTrigger:O,showWordLimit:L=!1,onOverlimit:N,onClear:A,onClick:D,onClickInput:B,onClickLeftIcon:V,onClickRightIcon:G,border:W,center:_,clickable:j,isLink:q,arrowDirection:K,size:Q,titleStyle:$,contentStyle:J,inputStyle:U,labelStyle:X,introStyle:Y,errorMessageStyle:Z,style:ee,androidRipple:te,children:re,placeholderTextColor:ne,onFocus:le,onBlur:ie,onPressIn:oe,onChangeText:ae,maxLength:se,...ce}=e,ue=useFieldTokens(r),de=l??ue.defaults.labelWidth,ge=i??ue.defaults.labelAlign,me=o??ue.defaults.inputAlign,pe=a??ue.defaults.controlAlign,fe=R??ue.defaults.clearTrigger,be=M??ue.defaults.rows,ye=O??ue.defaults.formatTrigger,he=[{width:de,minWidth:de,maxWidth:de,flexBasis:de,marginRight:ue.spacing.labelGap,flexShrink:0,flexGrow:0},$],xe=C??v,Re=u??d,Te=ne??(y?ue.colors.disabled:ue.colors.placeholder),we="textarea"===z,Ie=void 0!==k,[Se,Ce]=useState(E),ve=Ie?k??"":Se,[Pe,ke]=useState(!1),[Ee,ze]=useState(!1),Me=useRef(!1),Fe=useRef(null),He=useId(),Oe=useId(),Le=useMemo(()=>{const e=[isRenderable(p)?Oe:null,isRenderable(Re)?He:null].filter(Boolean);return e.length?e:void 0},[Oe,p,He,Re]),Ne=ue.defaults.textareaLineHeight,Ae=F&&isObject(F)?F:void 0,De=we?Ae&&isDef(Ae.minRows)?Math.max(1,Ae.minRows):Math.max(1,be):1,Be=we&&Ae&&isDef(Ae.maxRows)?Math.max(1,Ae.maxRows):void 0,Ve=useMemo(()=>we?Math.max(ue.sizes.textareaMinHeight,De*Ne):void 0,[we,Ne,De,ue.sizes.textareaMinHeight]),Ge=useMemo(()=>we&&Be?Math.max(ue.sizes.textareaMinHeight,Be*Ne):void 0,[we,Ne,Be,ue.sizes.textareaMinHeight]),[We,_e]=useState(Ve),je=useRef(ae);je.current=ae;const qe=useRef(N);qe.current=N;const Ke=useRef(le);Ke.current=le;const Qe=useRef(ie);Qe.current=ie;const $e=useRef(oe);$e.current=oe;const Je=useRef(B);Je.current=B;const Ue=useRef(A);Ue.current=A;const Xe=useCallback((e,t="onChange")=>H&&t===ye?H(e):e,[ye,H]),Ye=useCallback((e,t="onChange")=>{const r=Xe(e,t);Ie||Ce(r),je.current?.(r)},[Xe,Ie]);useImperativeHandle(t,()=>({focus:()=>Fe.current?.focus(),blur:()=>Fe.current?.blur(),clear:()=>Ye(""),get nativeElement(){return Fe.current}}));const Ze="left"!==pe?pe:me,et=x&&!h&&""!==(ve??"")&&("always"===fe||"focus"===fe&&(Pe||Ee)),tt=useCallback(e=>{let t=e??"";if("number"===z||"digit"===z){const e="number"===z;t=formatNumberInput(t,e,e)}isFiniteNumber(se)&&se>=0&&t.length>se&&(qe.current?.(t),t=t.slice(0,se)),Ye(t,"onChange")},[se,z,Ye]),rt=useCallback(e=>{ke(!0),Ke.current?.(e),h&&Fe.current?.blur()},[h]),nt=useCallback(e=>{if("web"!==Platform.OS&&Me.current)return Me.current=!1,ke(!1),void Qe.current?.(e);Ye(ve??"","onBlur"),ke(!1),Qe.current?.(e)},[Ye,ve]),lt=useCallback(e=>{$e.current?.(e),Je.current?.()},[]),it=useCallback(e=>{if(!we)return;const t=e.nativeEvent.contentSize?.height??0;if(!t)return;let r=t;F?(r=Math.max(Ve??t,t),Ge&&(r=Math.min(r,Ge))):Ve&&(r=Math.max(Ve,t)),_e(r)},[F,we,Ge,Ve]),ot=useCallback(()=>{"web"!==Platform.OS&&(Me.current=!0),Ye(""),Fe.current?.clear?.(),Fe.current?.focus?.(),Ue.current?.()},[Ye]),at=useCallback(()=>{ze(!0),"web"!==Platform.OS&&ot()},[ot]),st=useCallback(()=>{ze(!1),Me.current=!1},[]),ct=isRenderable(re)?React.createElement(View,{style:[ue.layout.children,{minHeight:ue.sizes.controlMinHeight}]},re):React.createElement(FieldInput,{inputRef:Fe,tokens:ue,isTextarea:we,disabled:y,error:m,finalTextAlign:Ze,lineHeight:Ne,textareaHeight:We,minHeight:Ve,inputStyle:U,value:ve??"",onChangeText:tt,onFocus:rt,onBlur:nt,onPressIn:lt,rows:be,keyboardType:ce.keyboardType??mapKeyboardType(z),placeholderTextColor:Te,onContentSizeChange:it,describedBy:Le,secureTextEntry:"password"===z,editable:!y&&!h,restInputProps:ce}),ut=[{width:"100%",justifyContent:alignMap[pe]},J],dt=e=>isText(e)?React.createElement(Text,{style:[ue.layout.affixText,{color:ue.colors.input,fontSize:ue.typography.inputSize}],numberOfLines:1},e):e,gt=isRenderable(g)?(()=>{const e=React.createElement(QuestionO,{size:ue.sizes.icon,fill:ue.colors.tooltip,color:ue.colors.tooltip});let t=e,r={message:g};if(!React.isValidElement(g)&&!isText(g)){const{icon:n,...l}=g;t=n??e,r=l}return React.createElement(Pressable,{style:[ue.layout.tooltip,{marginLeft:ue.spacing.rightIconGap}],onPress:()=>Dialog.show(r),accessibilityRole:"button"},t)})():null,mt=isRenderable(n)?(()=>{const e=isText(n)?React.createElement(Text,{style:[{color:y?ue.colors.disabled:ue.colors.label,fontSize:ue.typography.labelSize,textAlign:ge},X],numberOfLines:1},n,c?":":""):n;return React.createElement(View,{style:ue.layout.labelRow},e,gt)})():null,pt=L&&null!=se?(()=>{const e=(ve??"").length,t=isFunction(L)?L({currentCount:e,maxLength:se}):`${e}/${se}`;return isRenderable(t)?isText(t)?React.createElement(Text,{style:[ue.layout.wordLimit,{color:ue.colors.wordLimit,fontSize:ue.typography.wordLimitSize??12,textAlign:"right",alignSelf:"flex-end",marginTop:ue.spacing.wordLimitMarginTop}]},t):t:null})():null,ft=isRenderable(p)?isText(p)?React.createElement(Text,{nativeID:Oe,style:[ue.layout.message,{color:ue.colors.error,fontSize:ue.typography.messageSize,textAlign:f,marginTop:ue.spacing.messageMarginTop},Z],accessibilityLiveRegion:"polite"},p):React.createElement(View,{nativeID:Oe,style:[ue.layout.message,{alignSelf:alignMap[f],marginTop:ue.spacing.messageMarginTop}],accessibilityLiveRegion:"polite"},p):null,bt=isRenderable(Re)?isText(Re)?React.createElement(Text,{nativeID:He,style:[ue.layout.message,{color:ue.colors.intro,fontSize:ue.typography.introSize,textAlign:pe,marginTop:ue.spacing.introMarginTop},Y]},Re):React.createElement(View,{nativeID:He,style:{marginTop:ue.spacing.introMarginTop}},Re):null,yt=S?React.createElement(View,{style:[ue.layout.prefix,{paddingRight:ue.spacing.prefixGap}]},dt(S)):null,ht=xe?React.createElement(View,{style:[ue.layout.suffix,{paddingLeft:ue.spacing.suffixGap}]},dt(xe)):null,xt=w?React.createElement(FieldSlot,{onPress:V,style:[ue.layout.leftIcon,{marginRight:ue.spacing.leftIconGap,minWidth:ue.sizes.icon}]},w):null,Rt=I?React.createElement(FieldSlot,{onPress:G,style:[ue.layout.rightIcon,{paddingHorizontal:ue.spacing.rightIconGap}]},I):null,Tt=et?React.createElement(FieldClearButton,{show:et,tokens:ue,clearIcon:T,onPressIn:at,onPressOut:"web"===Platform.OS?st:void 0,onPress:"web"===Platform.OS?ot:void 0}):null,wt="outer"===b,It=React.createElement(Cell,{title:mt,icon:void 0,required:s,border:W,center:_,size:Q,clickable:j,isLink:q,arrowDirection:K,extra:P,titleStyle:he,style:[ee,wt&&(m||isRenderable(p))?{borderColor:ue.colors.error}:void 0],contentStyle:ut,accessibilityState:m?{invalid:!0}:void 0,accessibilityLabel:isText(n)?String(n):void 0,onPress:D,android_ripple:te},React.createElement(FieldControlRow,{tokens:ue,prefixNode:yt,leftIconNode:xt,controlNode:ct,clearNode:Tt,rightIconNode:Rt,suffixNode:ht}),pt,wt?null:ft,bt);return wt&&ft?React.createElement(React.Fragment,null,It,ft):It},FieldForwardRef=React.forwardRef(FieldImpl);FieldForwardRef.displayName="Field";export const Field=React.memo(FieldForwardRef);export default Field;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)({}).hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},_extends.apply(null,arguments)}import React,{useCallback,useContext,useEffect,useImperativeHandle,useMemo,useRef,useState}from"react";import{View}from"react-native";import{shallowEqualObject,renderTextOrNode}from"../../utils";import{isPromiseLike}from"../../utils/promise";import{isNumber,isString,isText}from"../../utils/validate";import{useLocale}from"../config-provider/useLocale";export const normalizeTrigger=e=>e?Array.isArray(e)?e:[e]:[];export const FORM_ALL_FIELDS_KEY="__form_all__";export const toNamePath=e=>null==e?[]:Array.isArray(e)?e:isNumber(e)?[e]:isString(e)?e.split("."):[String(e)];export const serializeNamePath=e=>toNamePath(e).join(".");export const getValueByName=(e,r)=>toNamePath(r).reduce((e,r)=>{if(null==e)return e;const t=String(r);if(Array.isArray(e)){const r=Number(t);return Number.isFinite(r)?e[r]:e[t]}return"object"==typeof e?e[t]:void 0},e);export const setValueByName=(e,r,t)=>{const n=toNamePath(r);if(!n.length)return e;const a=Array.isArray(e)?[...e]:"object"==typeof e&&null!==e?{...e}:{};let i=a;return n.forEach((e,r)=>{const a=String(e),u=Number(a);if(r===n.length-1)return void(Array.isArray(i)&&Number.isFinite(u)?i[u]=t:i[a]=t);const s=Array.isArray(i)&&Number.isFinite(u)?i[u]:i[a],l=null==s?isNumber(n[r+1])?[]:{}:Array.isArray(s)?[...s]:"object"==typeof s?{...s}:{};Array.isArray(i)&&Number.isFinite(u)?i[u]=l:i[a]=l,i=l}),a};export const FormContext=React.createContext(null);const runRuleValidation=(e,r,t,n)=>{const a=e.message??n??"Validation failed",i=null==r||""===r||Array.isArray(r)&&0===r.length;if(e.required&&(i||e.whitespace&&isString(r)&&0===r.trim().length))return a;if(i)return null;if(e.pattern&&isString(r)&&!e.pattern.test(r))return a;if(void 0!==e.len||void 0!==e.min||void 0!==e.max){const t=isNumber(r)?r:isString(r)||Array.isArray(r)?r.length:0;if(void 0!==e.len&&t!==e.len)return a;if(void 0!==e.min&&t<e.min)return a;if(void 0!==e.max&&t>e.max)return a}if(!e.validator)return null;const u=e=>isString(e)?e:!1===e?a:null,s=e.validator(r,t);return isPromiseLike(s)?s.then(u):u(s)},InternalFormImpl=(e,r)=>{const{initialValues:t,colon:n,labelWidth:a,showValidateMessage:i=!0,onValuesChange:u,onFinish:s,style:l,footer:c,children:o,...m}=e,f=useLocale(),d=useRef({}),g=useRef({}),y=useRef(t??d.current),h=useRef({}),N=useRef(new Map),b=useRef(t??d.current),p=useRef({}),V=useRef(new Set),v=useRef(u),F=useRef(s);v.current=u,F.current=s;const x=t??d.current,[,R]=useState(0),_=useCallback((e,r)=>{V.current.forEach(t=>t(e,r))},[]);useEffect(()=>{shallowEqualObject(y.current,x)||(y.current=x,b.current=x,g.current={},R(e=>e+1),_({[FORM_ALL_FIELDS_KEY]:!0},x))},[x,_]);const A=useCallback((e,r)=>{const t=serializeNamePath(e),n=g.current[t];if(!r.length){if(!n)return;const r={...g.current};return delete r[t],g.current=r,void _({[t]:getValueByName(b.current,e)},b.current)}n?.[0]===r[0]&&n.length===r.length||(g.current={...g.current,[t]:r},_({[t]:getValueByName(b.current,e)},b.current))},[_]),E=useCallback((e,r)=>{const t=serializeNamePath(e),n=h.current[t];if(n?.dependencies?.length)for(const e of n.dependencies){const r=serializeNamePath(e),n=N.current.get(r);n&&(n.delete(t),n.size||N.current.delete(r))}if(h.current[t]={...r,name:e},r.dependencies?.length)for(const e of r.dependencies){const r=serializeNamePath(e),n=N.current.get(r);n?n.add(t):N.current.set(r,new Set([t]))}if(void 0!==r.initialValue){void 0===getValueByName(y.current,e)&&(y.current=setValueByName(y.current,e,r.initialValue));if(void 0===getValueByName(b.current,e)){const n=setValueByName(b.current,e,r.initialValue);b.current=n,_({[t]:r.initialValue},n)}}return()=>{const r=h.current[t];if(delete h.current[t],r?.dependencies?.length)for(const e of r.dependencies){const r=serializeNamePath(e),n=N.current.get(r);n&&(n.delete(t),n.size||N.current.delete(r))}A(e,[])}},[_,A]),P=useRef(f);P.current=f;const B=useCallback(async(e,r,t,n)=>{const a=serializeNamePath(e),i=(p.current[a]??0)+1;p.current[a]=i;const u=h.current[a],s=u?.rules??[];if(!s.length)return A(e,[]),!0;
|
|
1
|
+
function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)({}).hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},_extends.apply(null,arguments)}import React,{useCallback,useContext,useEffect,useImperativeHandle,useMemo,useRef,useState}from"react";import{View}from"react-native";import{shallowEqualObject,renderTextOrNode}from"../../utils";import{isPromiseLike}from"../../utils/promise";import{isNumber,isString,isText}from"../../utils/validate";import{useLocale}from"../config-provider/useLocale";export const normalizeTrigger=e=>e?Array.isArray(e)?e:[e]:[];export const FORM_ALL_FIELDS_KEY="__form_all__";export const toNamePath=e=>null==e?[]:Array.isArray(e)?e:isNumber(e)?[e]:isString(e)?e.split("."):[String(e)];export const serializeNamePath=e=>toNamePath(e).join(".");export const getValueByName=(e,r)=>toNamePath(r).reduce((e,r)=>{if(null==e)return e;const t=String(r);if(Array.isArray(e)){const r=Number(t);return Number.isFinite(r)?e[r]:e[t]}return"object"==typeof e?e[t]:void 0},e);export const setValueByName=(e,r,t)=>{const n=toNamePath(r);if(!n.length)return e;const a=Array.isArray(e)?[...e]:"object"==typeof e&&null!==e?{...e}:{};let i=a;return n.forEach((e,r)=>{const a=String(e),u=Number(a);if(r===n.length-1)return void(Array.isArray(i)&&Number.isFinite(u)?i[u]=t:i[a]=t);const s=Array.isArray(i)&&Number.isFinite(u)?i[u]:i[a],l=null==s?isNumber(n[r+1])?[]:{}:Array.isArray(s)?[...s]:"object"==typeof s?{...s}:{};Array.isArray(i)&&Number.isFinite(u)?i[u]=l:i[a]=l,i=l}),a};export const FormContext=React.createContext(null);const runRuleValidation=(e,r,t,n)=>{const a=e.message??n??"Validation failed",i=null==r||""===r||Array.isArray(r)&&0===r.length;if(e.required&&(i||e.whitespace&&isString(r)&&0===r.trim().length))return a;if(i)return null;if(e.pattern&&isString(r)&&!e.pattern.test(r))return a;if(void 0!==e.len||void 0!==e.min||void 0!==e.max){const t=isNumber(r)?r:isString(r)||Array.isArray(r)?r.length:0;if(void 0!==e.len&&t!==e.len)return a;if(void 0!==e.min&&t<e.min)return a;if(void 0!==e.max&&t>e.max)return a}if(!e.validator)return null;const u=e=>isString(e)?e:!1===e?a:null,s=e.validator(r,t);return isPromiseLike(s)?s.then(u):u(s)},InternalFormImpl=(e,r)=>{const{initialValues:t,colon:n,labelWidth:a,showValidateMessage:i=!0,onValuesChange:u,onFinish:s,style:l,footer:c,children:o,...m}=e,f=useLocale(),d=useRef({}),g=useRef({}),y=useRef(t??d.current),h=useRef({}),N=useRef(new Map),b=useRef(t??d.current),p=useRef({}),V=useRef(new Set),v=useRef(u),F=useRef(s);v.current=u,F.current=s;const x=t??d.current,[,R]=useState(0),_=useCallback((e,r)=>{V.current.forEach(t=>t(e,r))},[]);useEffect(()=>{shallowEqualObject(y.current,x)||(y.current=x,b.current=x,g.current={},R(e=>e+1),_({[FORM_ALL_FIELDS_KEY]:!0},x))},[x,_]);const A=useCallback((e,r)=>{const t=serializeNamePath(e),n=g.current[t];if(!r.length){if(!n)return;const r={...g.current};return delete r[t],g.current=r,void _({[t]:getValueByName(b.current,e)},b.current)}n?.[0]===r[0]&&n.length===r.length||(g.current={...g.current,[t]:r},_({[t]:getValueByName(b.current,e)},b.current))},[_]),E=useCallback((e,r)=>{const t=serializeNamePath(e),n=h.current[t];if(n?.dependencies?.length)for(const e of n.dependencies){const r=serializeNamePath(e),n=N.current.get(r);n&&(n.delete(t),n.size||N.current.delete(r))}if(h.current[t]={...r,name:e},r.dependencies?.length)for(const e of r.dependencies){const r=serializeNamePath(e),n=N.current.get(r);n?n.add(t):N.current.set(r,new Set([t]))}if(void 0!==r.initialValue){void 0===getValueByName(y.current,e)&&(y.current=setValueByName(y.current,e,r.initialValue));if(void 0===getValueByName(b.current,e)){const n=setValueByName(b.current,e,r.initialValue);b.current=n,_({[t]:r.initialValue},n)}}return()=>{const r=h.current[t];if(delete h.current[t],r?.dependencies?.length)for(const e of r.dependencies){const r=serializeNamePath(e),n=N.current.get(r);n&&(n.delete(t),n.size||N.current.delete(r))}A(e,[])}},[_,A]),P=useRef(f);P.current=f;const B=useCallback(async(e,r,t,n)=>{const a=serializeNamePath(e),i=(p.current[a]??0)+1;p.current[a]=i;const u=h.current[a],s=u?.rules??[];if(!s.length)return A(e,[]),!0;const l=r?s.filter(e=>{const t=e.validateTrigger??u.validateTrigger;return!t||normalizeTrigger(t).includes(r)}):s;if(!l.length)return g.current[a]?.length&&A(e,[]),!0;const c=n??b.current,o=t??getValueByName(c,e),m=P.current?.vanForm?.validationFailed;for(const r of l){const t=runRuleValidation(r,o,c,m),n=isPromiseLike(t)?await t:t;if(p.current[a]!==i)return!0;if(n)return A(e,[n]),!1}return p.current[a]!==i||A(e,[]),!0},[A]),S=useCallback(async e=>{const r=e??Object.values(h.current).map(e=>e.name);if((await Promise.all(r.map(e=>B(e)))).some(e=>!e))throw g.current;return b.current},[B]),C=useCallback((e,r,t,n,a)=>{B(r,t,n,a);const i=N.current.get(e);if(i?.size)for(const e of i){const r=h.current[e];r&&B(r.name,t,getValueByName(a,r.name),a)}},[B]),z=useCallback((e,r,t)=>{const n=serializeNamePath(e),a=b.current;if(getValueByName(a,e)===r)return;const i=setValueByName(a,e,r);b.current=i,v.current?.(i,n,r),C(n,e,t,r,i),_({[n]:r},i)},[_,C]),w=useMemo(()=>({submit:async()=>{try{const e=await S();return F.current?.(e),e}catch{return}},getFieldsValue:()=>b.current,setFieldsValue:(e,r)=>{const t=r?.validate??!1,n=b.current;let a=n;const i={};Object.keys(e).forEach(r=>{const n=e[r];getValueByName(a,r)!==n&&(i[r]=n,a=setValueByName(a,r,n),v.current?.(a,r,n),t&&C(r,r,void 0,n,a))}),a!==n&&(b.current=a,_(i,a))},resetFields:()=>{let e=y.current;Object.values(h.current).forEach(r=>{void 0!==r.initialValue&&void 0===getValueByName(e,r.name)&&(e=setValueByName(e,r.name,r.initialValue))}),b.current=e,g.current={},_({[FORM_ALL_FIELDS_KEY]:!0},e)},validateFields:S,getFieldError:e=>g.current[serializeNamePath(e)]??[]}),[S,C,_]);useImperativeHandle(r,()=>w,[w]);const L=useMemo(()=>({getFieldValue:e=>getValueByName(b.current,e),setFieldValue:z,registerField:E,getFieldError:e=>g.current[serializeNamePath(e)],validateField:(e,r)=>B(e,r),getFieldsValue:()=>b.current,subscribe:e=>(V.current.add(e),()=>V.current.delete(e)),form:w,colon:n,labelWidth:a,showValidateMessage:i}),[z,E,B,w,n,a,i]);return React.createElement(FormContext.Provider,{value:L},React.createElement(View,_extends({style:l},m),o,isText(c)?renderTextOrNode(c,[]):c))},InternalFormRef=React.forwardRef(InternalFormImpl),InternalForm=React.memo(InternalFormRef);export const useWatch=(e,r)=>{const t=useContext(FormContext),n=void 0===e?void 0:Array.isArray(e)?e.length&&isText(e[0])?[e]:e:[e],a=useCallback(e=>{const a=e??t?.getFieldsValue?.()??r?.current?.getFieldsValue?.()??{};if(!n)return a;if(1===n.length)return getValueByName(a,n[0]);const i={};for(const e of n)i[serializeNamePath(e)]=getValueByName(a,e);return i},[t,r,n]),[i,u]=useState(()=>a());return useEffect(()=>{if(t?.subscribe)return t.subscribe((e,r)=>{"__form_all__"in e?u(a(r)):n&&!n.some(r=>serializeNamePath(r)in e)||u(a(r))})},[t,a,n]),useEffect(()=>{u(a())},[a]),i};export const FormSubscribe=({to:e,children:r})=>{const t=useContext(FormContext),[n,a]=useState({});return useEffect(()=>{if(t?.subscribe)return t.subscribe(r=>{(!e||"__form_all__"in r||Object.keys(r).some(r=>e.includes(r)))&&a(r)})},[t,e]),React.createElement(React.Fragment,null,r(n,t?.form||null))};export default InternalForm;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var n in o)({}).hasOwnProperty.call(o,n)&&(e[n]=o[n])}return e},_extends.apply(null,arguments)}import React,{useCallback,useEffect,useMemo,useRef,useState}from"react";import{Animated,Easing,Platform,Pressable,StyleSheet,Text,View,useWindowDimensions}from"react-native";import{SafeAreaView}from"../safe-area-view";import{addPopStateListener,nativeDriverEnabled}from"../../platform";import{useReducedMotion}from"../../hooks/animation";import{createPlatformShadow}from"../../utils/createPlatformShadow";import{isRenderable,isText}from"../../utils/validate";import{Cross}from"react-native-system-icon";import Portal from"../portal/Portal";import{useAriaOverlay,useOverlayStack}from"../../hooks";import{useLocale}from"../config-provider/useLocale";import{useDirection}from"../config-provider/useDirection";import{usePopupTokens}from"./tokens";const AnimatedPressable=Animated.createAnimatedComponent(Pressable),EASE_OUT=Easing.bezier(.075,.82,.165,1),EASE_IN=Easing.bezier(.55,.055,.675,.19),CAPTURE=()=>!0,placementConfig={top:{container:{justifyContent:"flex-start",alignItems:"center"},axis:"y"},bottom:{container:{justifyContent:"flex-end",alignItems:"center"},axis:"y"},left:{container:{justifyContent:"center",alignItems:"flex-start"},axis:"x"},right:{container:{justifyContent:"center",alignItems:"flex-end"},axis:"x"},center:{container:{justifyContent:"center",alignItems:"center"},axis:"y"}},buildRadius=(e,t,o)=>e?"top"===t?{borderBottomLeftRadius:o,borderBottomRightRadius:o}:"bottom"===t?{borderTopLeftRadius:o,borderTopRightRadius:o}:"left"===t?{borderTopRightRadius:o,borderBottomRightRadius:o}:"right"===t?{borderTopLeftRadius:o,borderBottomLeftRadius:o}:{borderRadius:o}:void 0,hiddenStyle={opacity:0,shadowOpacity:0,shadowRadius:0,elevation:0},PopupImpl=e=>{const t=useLocale(),o=useDirection(),{visible:n,placement:i,position:r,title:a,description:s,tokensOverride:l,overlay:c=!0,overlayStyle:u,overlayAccessibilityLabel:d=t?.vanPopup?.closeOverlay??"Close overlay",closeOnOverlayPress:p,closeOnClickOverlay:m,overlayTestID:f="popup-overlay",closeable:g=!1,closeIcon:y,closeIconPosition:
|
|
1
|
+
function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var n in o)({}).hasOwnProperty.call(o,n)&&(e[n]=o[n])}return e},_extends.apply(null,arguments)}import React,{useCallback,useEffect,useMemo,useRef,useState}from"react";import{Animated,Easing,Platform,Pressable,StyleSheet,Text,View,useWindowDimensions}from"react-native";import{SafeAreaView}from"../safe-area-view";import{addPopStateListener,nativeDriverEnabled}from"../../platform";import{useReducedMotion}from"../../hooks/animation";import{createPlatformShadow}from"../../utils/createPlatformShadow";import{isRenderable,isText}from"../../utils/validate";import{Cross}from"react-native-system-icon";import Portal from"../portal/Portal";import{useAriaOverlay,useOverlayStack}from"../../hooks";import{useLocale}from"../config-provider/useLocale";import{useDirection}from"../config-provider/useDirection";import{usePopupTokens}from"./tokens";const AnimatedPressable=Animated.createAnimatedComponent(Pressable),EASE_OUT=Easing.bezier(.075,.82,.165,1),EASE_IN=Easing.bezier(.55,.055,.675,.19),CAPTURE=()=>!0,placementConfig={top:{container:{justifyContent:"flex-start",alignItems:"center"},axis:"y"},bottom:{container:{justifyContent:"flex-end",alignItems:"center"},axis:"y"},left:{container:{justifyContent:"center",alignItems:"flex-start"},axis:"x"},right:{container:{justifyContent:"center",alignItems:"flex-end"},axis:"x"},center:{container:{justifyContent:"center",alignItems:"center"},axis:"y"}},CONTENT_SELF={top:{alignSelf:"stretch"},bottom:{alignSelf:"stretch"},left:{alignSelf:"flex-start"},right:{alignSelf:"flex-end"},center:{alignSelf:"center"}},buildRadius=(e,t,o)=>e?"top"===t?{borderBottomLeftRadius:o,borderBottomRightRadius:o}:"bottom"===t?{borderTopLeftRadius:o,borderTopRightRadius:o}:"left"===t?{borderTopRightRadius:o,borderBottomRightRadius:o}:"right"===t?{borderTopLeftRadius:o,borderBottomLeftRadius:o}:{borderRadius:o}:void 0,hiddenStyle={opacity:0,shadowOpacity:0,shadowRadius:0,elevation:0},PopupImpl=e=>{const t=useLocale(),o=useDirection(),{visible:n,placement:i,position:r,title:a,description:s,tokensOverride:l,overlay:c=!0,overlayStyle:u,overlayAccessibilityLabel:d=t?.vanPopup?.closeOverlay??"Close overlay",closeOnOverlayPress:p,closeOnClickOverlay:m,overlayTestID:f="popup-overlay",closeable:g=!1,closeIcon:y,closeIconPosition:h="top-right",round:b,safeArea:R=!1,safeAreaInsetTop:v=!1,safeAreaInsetBottom:E,lockScroll:C=!0,destroyOnClose:I=!1,duration:O=300,zIndex:P,closeOnBackPress:x=!1,closeOnPopstate:A=!1,children:T,beforeClose:w,onClickOverlay:k,onClose:z,onOpen:L,onOpened:W,onClosed:V,stopPropagation:B=!0,style:D,contentAnimationStyle:F,...H}=e,M=i??r??"center",j=m??p??!0,_="center"===M,N=E??!1,U=usePopupTokens(l),X=useReducedMotion(),Y=useRef({onOpened:W,onClosed:V,onOpen:L,onClose:z,beforeClose:w,onClickOverlay:k});Y.current={onOpened:W,onClosed:V,onOpen:L,onClose:z,beforeClose:w,onClickOverlay:k};const q=useMemo(()=>{const e=createPlatformShadow(U.shadow),{colors:t,spacing:o,typography:n,layout:i}=U;return{popup:{backgroundColor:t.background,padding:o.padding,...e},title:{color:t.title,fontFamily:n.fontFamily,fontSize:n.titleSize,fontWeight:n.titleWeight,marginHorizontal:o.descriptionHorizontal,textAlign:"center"},titleWrap:{marginTop:o.titleTop,marginBottom:o.titleBottom,marginHorizontal:o.descriptionHorizontal,alignItems:"center"},desc:{color:t.description,fontFamily:n.fontFamily,fontSize:n.descriptionSize,lineHeight:n.descriptionLineHeight},descWrap:{marginHorizontal:o.descriptionHorizontal,marginBottom:o.descriptionBottom},closeBase:{minWidth:o.closeIconSize,minHeight:o.closeIconSize,padding:o.closeIconPadding},closeDef:{width:o.closeIconSize,height:o.closeIconSize},side:{width:i.sideWidth,maxWidth:i.maxWidth},center:{minWidth:i.minWidth,maxWidth:i.centerMaxWidth}}},[U]),[G,J]=useState(n),[K,Q]=useState(n),Z=n||K,$=j&&(z||w),ee=useRef(new Animated.Value(0)).current,te=useRef(null),oe=useRef(0),ne=useRef(n),ie=useRef(!1),re="top"===M||"bottom"===M,ae="left"===M||"right"===M,se="top"===M||"left"===M?-1:1,le=useCallback((e,t)=>{oe.current+=1;const o=oe.current;te.current?.stop();const n=t?0:O,i=Animated.timing(ee,{toValue:e?1:0,duration:n,easing:e?EASE_OUT:EASE_IN,useNativeDriver:nativeDriverEnabled,isInteraction:!1});te.current=i,i.start(({finished:t})=>{t&&o===oe.current&&(e?Y.current.onOpened?.():(Q(!1),I&&J(!1),Y.current.onClosed?.()))})},[I,O,ee]);useEffect(()=>{n?(J(!0),Q(!0),le(!0,X)):ne.current&&le(!1,X)},[le,n,X]),useEffect(()=>{n&&!ne.current&&Y.current.onOpen?.(),ne.current=n},[n]),useEffect(()=>()=>{te.current?.stop()},[]);const ce=useCallback(async e=>{if(!ie.current){ie.current=!0;try{if(Y.current.beforeClose){if(!1===await Y.current.beforeClose(e))return}Y.current.onClose?.()}finally{ie.current=!1}}},[]);useEffect(()=>{if(A)return addPopStateListener(()=>{n&&ce("close")})},[A,ce,n]);const ue=useCallback(()=>{Y.current.onClickOverlay?.(),j&&ce("overlay")},[ce,j]),de=useCallback(()=>ce("close-icon"),[ce]),pe=useCallback(()=>ce("close"),[ce]),{zIndex:me}=useOverlayStack({visible:Z,onClose:pe,closeOnBack:x,lockScroll:C,zIndex:P,type:"popup"}),{overlayRef:fe,overlayProps:ge}=useAriaOverlay({isOpen:Z,onClose:()=>ce("overlay"),isDismissable:j,overlayProps:{..."android"===Platform.OS?{}:{accessibilityRole:"dialog"},accessibilityLiveRegion:"polite"}}),{onLayout:ye,...Se}=ge,he=useMemo(()=>B?{...Se,onStartShouldSetResponder:CAPTURE}:Se,[Se,B]),be=placementConfig[M],Re=buildRadius(b,M,U.radius.round),{width:ve,height:Ee}=useWindowDimensions(),Ce=ae?ve:re?Ee:0,Ie=useMemo(()=>{if(_)return null;const e=[Ce*se,0];return"y"===be.axis?{translateY:ee.interpolate({inputRange:[0,1],outputRange:e})}:{translateX:ee.interpolate({inputRange:[0,1],outputRange:e})}},[be.axis,se,Ce,_,ee]),Oe=useMemo(()=>Ie?[Ie]:[],[Ie]),Pe=useMemo(()=>{const e=F?.transform,t=Array.isArray(e)?[...Oe,...e]:Oe,o={...F,transform:t};return _?{...o,opacity:ee}:null==F?.opacity?{...o,opacity:1}:o},[Oe,F,_,ee]),[xe,Ae]=useState(0),Te=useCallback(e=>Ae(e.nativeEvent.layout.height),[]),we=G||n,ke=!Z,ze=isRenderable(a)||isRenderable(s),Le=useMemo(()=>{if(!ze)return null;const e=U.spacing.closeIconRight+U.spacing.closeIconSize,t=g&&h.startsWith("top-")?h.endsWith("right")?{paddingRight:e}:{paddingLeft:e}:void 0,o=(e,t,o)=>isRenderable(e)?isText(e)?React.createElement(Text,{style:t},e):React.createElement(View,{style:o},e):null;return React.createElement(View,{style:[S.header,t]},o(a,[S.title,q.title],q.titleWrap),o(s,[S.desc,q.desc],q.descWrap))},[g,h,s,q,ze,a,U.spacing.closeIconRight,U.spacing.closeIconSize]),We=useMemo(()=>{if(!g)return null;const e=null!=y,t=h.includes("bottom")?{bottom:U.spacing.closeIconTop}:{top:U.spacing.closeIconTop+xe},n="rtl"===o,i=h.endsWith("left")?n?{right:U.spacing.closeIconRight}:{left:U.spacing.closeIconRight}:n?{left:U.spacing.closeIconRight}:{right:U.spacing.closeIconRight};return React.createElement(Pressable,{style:[S.closeBase,q.closeBase,t,i,!e&&q.closeDef],hitSlop:8,onPress:de},e?y:React.createElement(Cross,{size:22,fill:U.colors.closeIcon,color:U.colors.closeIcon}))},[y,h,g,q,de,xe,U.colors.closeIcon,U.spacing.closeIconRight,U.spacing.closeIconTop]),Ve=ze?React.createElement(React.Fragment,null,Le,T):T;if(!we)return null;const Be=me??P,De=R?React.createElement(SafeAreaView,null,Ve):React.createElement(React.Fragment,null,v&&React.createElement(SafeAreaView,{edge:"top",onLayout:Te,pointerEvents:"none"}),Ve,N&&React.createElement(SafeAreaView,{edge:"bottom",pointerEvents:"none"}));return React.createElement(Portal,null,React.createElement(View,{style:[S.root,Be?{zIndex:Be}:void 0],pointerEvents:"box-none"},React.createElement(View,{style:[S.ctr,be.container],pointerEvents:Z?"auto":"none",accessibilityViewIsModal:Z,accessibilityLiveRegion:"polite",onAccessibilityEscape:pe},c&&Z?React.createElement(AnimatedPressable,_extends({testID:f,style:[S.ovl,{backgroundColor:U.colors.overlay,opacity:ee},u],renderToHardwareTextureAndroid:"android"===Platform.OS,shouldRasterizeIOS:"ios"===Platform.OS,pointerEvents:Z?"auto":"none"},$?{accessibilityRole:"button",accessibilityLabel:d,accessibilityHint:t?.vanPopup?.closeHint??"Double-tap to close"}:{accessible:!1},{onPress:ue})):null,!c&&C&&Z?React.createElement(View,{style:S.lock,pointerEvents:"auto",onStartShouldSetResponder:CAPTURE,onMoveShouldSetResponder:CAPTURE}):null,React.createElement(Animated.View,_extends({ref:fe},he,{onLayout:ye,renderToHardwareTextureAndroid:"android"===Platform.OS,shouldRasterizeIOS:"ios"===Platform.OS,style:[q.popup,_&&q.center,re&&S.popV,ae&&q.side,CONTENT_SELF[M],Re,Pe,D,ke&&hiddenStyle]},H),We,De))))},S=StyleSheet.create({root:{...StyleSheet.absoluteFillObject,justifyContent:"center"},ctr:{flex:1},ovl:{...StyleSheet.absoluteFillObject,opacity:0},header:{width:"100%"},title:{includeFontPadding:!1},desc:{includeFontPadding:!1},popV:{alignSelf:"stretch"},closeBase:{position:"absolute",zIndex:999,alignItems:"center",justifyContent:"center"},lock:{...StyleSheet.absoluteFillObject}});export const Popup=React.memo(PopupImpl);export default Popup;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},_extends.apply(null,arguments)}import React,{useEffect,useMemo,useRef,useState}from"react";import{AccessibilityInfo,Animated,Easing,Pressable,StyleSheet,View,useWindowDimensions}from"react-native";import Portal from"../portal/Portal";import{SafeAreaView}from"../safe-area-view";import{useAriaPress,useOverlayStack}from"../../hooks";import Loading from"../loading";import{Checked,Close}from"react-native-system-icon";import{isFiniteNumber,isText,isRenderable}from"../../utils/validate";import{renderTextOrNode}from"../../utils";import{nativeDriverEnabled}from"../../platform";import{useReducedMotion}from"../../hooks/animation";import{useLocale}from"../config-provider/useLocale";import{useToastTokens}from"./tokens";const RT=()=>!0,ToastContentImpl=e=>{const{visible:t,message:n,icon:o,type:r="info",iconSize:i,duration:s=2e3,position:a="middle",forbidClick:c=!1,overlay:l=!1,overlayStyle:u,closeOnClickOverlay:d=!1,closeOnClick:m=!1,loadingIndicator:f,safeAreaInsetTop:p,safeAreaInsetBottom:g,tokensOverride:v,style:x,textStyle:b,onClose:R,onOpen:y,onOpened:h,onClosed:E}=e,T=useLocale(),C=useToastTokens(v),O=useReducedMotion(),{colors:
|
|
1
|
+
function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},_extends.apply(null,arguments)}import React,{useEffect,useMemo,useRef,useState}from"react";import{AccessibilityInfo,Animated,Easing,Pressable,StyleSheet,View,useWindowDimensions}from"react-native";import Portal from"../portal/Portal";import{SafeAreaView}from"../safe-area-view";import{useAriaPress,useOverlayStack}from"../../hooks";import Loading from"../loading";import{Checked,Close}from"react-native-system-icon";import{isFiniteNumber,isText,isRenderable}from"../../utils/validate";import{renderTextOrNode}from"../../utils";import{nativeDriverEnabled}from"../../platform";import{useReducedMotion}from"../../hooks/animation";import{useLocale}from"../config-provider/useLocale";import{useToastTokens}from"./tokens";const RT=()=>!0,ToastContentImpl=e=>{const{visible:t,message:n,icon:o,type:r="info",iconSize:i,duration:s=2e3,position:a="middle",forbidClick:c=!1,overlay:l=!1,overlayStyle:u,closeOnClickOverlay:d=!1,closeOnClick:m=!1,loadingIndicator:f,safeAreaInsetTop:p,safeAreaInsetBottom:g,tokensOverride:v,style:x,textStyle:b,onClose:R,onOpen:y,onOpened:h,onClosed:E}=e,T=useLocale(),C=useToastTokens(v),O=useReducedMotion(),{colors:w}=C,{height:I}=useWindowDimensions(),P=isFiniteNumber(s)?Math.max(0,s):0,[k,z]=useState(t),A=useRef(new Animated.Value(t?1:0)).current,M=useRef(null),V=useRef(0),H=useRef(R);H.current=R;const D=useRef(y);D.current=y;const W=useRef(h);W.current=h;const j=useRef(E);j.current=E;const{zIndex:F}=useOverlayStack({visible:k,type:"toast"}),N=useRef(t),L=useRef(!1),_=I>0?Math.round(I*C.positionOffsetRatio):C.positionOffsetMin,B=void 0!==p?p:"top"===a,q=void 0!==g?g:"bottom"===a,G=useMemo(()=>"top"===a?{justifyContent:"flex-start",paddingTop:_}:"bottom"===a?{justifyContent:"flex-end",paddingBottom:_}:{justifyContent:"center"},[a,_]);useEffect(()=>{V.current+=1;const e=V.current;M.current?.stop();const n=O?0:C.animationDuration;t?(z(!0),M.current=Animated.timing(A,{toValue:1,duration:n,easing:Easing.out(Easing.cubic),useNativeDriver:nativeDriverEnabled,isInteraction:!1}),M.current.start()):(M.current=Animated.timing(A,{toValue:0,duration:n,easing:Easing.out(Easing.cubic),useNativeDriver:nativeDriverEnabled,isInteraction:!1}),M.current.start(({finished:t})=>{t&&e===V.current&&z(!1)}))},[A,O,C.animationDuration,t]),useEffect(()=>()=>{M.current?.stop()},[]),useEffect(()=>{if(!t||P<=0)return;const e=setTimeout(()=>{H.current?.()},P);return()=>clearTimeout(e)},[P,t]),useEffect(()=>{if(!t||!isText(n))return;const e=String(n);e&&AccessibilityInfo.announceForAccessibility?.(e)},[n,t]);const J=O?0:C.animationDuration;useEffect(()=>{let e=null;return t?(L.current=!1,!N.current&&(D.current?.(),W.current&&(e=setTimeout(W.current,J)))):N.current&&(L.current=!0),N.current=t,()=>{e&&clearTimeout(e)}},[J,t]),useEffect(()=>{!k&&L.current&&(L.current=!1,j.current?.())},[k]);const K=useRef(()=>H.current?.()).current,Q=useAriaPress({disabled:!m,onPress:K,extraProps:{accessibilityRole:m?"button":"alert",accessibilityHint:m?T?.vanToast?.closeHint??"Double-tap to dismiss":void 0,accessibilityLiveRegion:"assertive"}}),U=useMemo(()=>{if(o)return o;const e=i??C.iconSize;switch(r){case"success":return React.createElement(Checked,{size:e,fill:w.text,color:w.text});case"fail":return React.createElement(Close,{size:e,fill:w.text,color:w.text});case"loading":return f??React.createElement(Loading,{color:w.text,size:e});default:return null}},[w.text,o,i,f,C.iconSize,r]),X=useMemo(()=>({marginBottom:C.gap}),[C.gap]),Y=useMemo(()=>({color:w.text,fontSize:C.fontSize,lineHeight:C.lineHeight,fontFamily:C.fontFamily}),[w.text,C.fontSize,C.fontFamily,C.lineHeight]),Z="info"===r&&!U,$=useMemo(()=>Z?{minWidth:C.textMinWidth,minHeight:0,paddingVertical:C.textPaddingVertical,paddingHorizontal:C.textPaddingHorizontal}:{minWidth:C.defaultWidth,minHeight:C.defaultMinHeight,padding:C.defaultPadding},[Z,C.defaultMinHeight,C.defaultPadding,C.defaultWidth,C.textMinWidth,C.textPaddingHorizontal,C.textPaddingVertical]),ee=useMemo(()=>({borderRadius:C.radius,opacity:m&&Q.states.pressed?C.pressedOpacity:A,backgroundColor:C.colors.variants[r],maxWidth:C.maxWidth,...$}),[A,$,m,Q.states.pressed,C.colors.variants,C.maxWidth,C.pressedOpacity,C.radius,r]);if(!k)return null;const te=isRenderable(n)&&("string"!=typeof n||""!==n);return React.createElement(View,{style:[S.b,{backgroundColor:C.colors.transparent},G,F?{zIndex:F}:void 0],pointerEvents:c||l||m?"auto":"none"},(l||c)&&React.createElement(Pressable,{testID:"rv-toast-overlay",style:[S.o,{backgroundColor:C.colors.transparent},l&&{backgroundColor:w.backdrop},u],pointerEvents:"auto",onPress:l&&d?K:void 0,onStartShouldSetResponder:RT,onMoveShouldSetResponder:RT}),B&&React.createElement(SafeAreaView,{edge:"top",pointerEvents:"none"}),React.createElement(Pressable,_extends({disabled:!m},Q.interactionProps,{style:S.pw}),React.createElement(Animated.View,{renderToHardwareTextureAndroid:!0,shouldRasterizeIOS:!0,style:[S.t,ee,x]},U&&React.createElement(View,{style:X},isText(U)?renderTextOrNode(U,[{color:w.text,fontSize:C.iconSize}]):U),te&&(isText(n)?renderTextOrNode(n,[S.m,Y,b]):React.createElement(View,{style:S.mw},n)))),q&&React.createElement(SafeAreaView,{edge:"bottom",pointerEvents:"none"}))};export const ToastContent=React.memo(ToastContentImpl);const ToastImpl=e=>React.createElement(Portal,null,React.createElement(ToastContent,e));export const Toast=React.memo(ToastImpl);const S=StyleSheet.create({b:{flex:1,alignItems:"center"},o:{...StyleSheet.absoluteFillObject},pw:{alignItems:"center"},t:{alignItems:"center",justifyContent:"center"},m:{textAlign:"center"},mw:{alignItems:"center"}});export default Toast;
|
|
@@ -1,4 +1 @@
|
|
|
1
|
-
import React from
|
|
2
|
-
import type { ActionSheetProps } from './types';
|
|
3
|
-
declare const ActionSheet: React.NamedExoticComponent<ActionSheetProps>;
|
|
4
|
-
export default ActionSheet;
|
|
1
|
+
import React from'react';import type{ActionSheetProps}from'./types';declare const ActionSheet:React.NamedExoticComponent<ActionSheetProps>;export default ActionSheet;
|
|
@@ -1,4 +1 @@
|
|
|
1
|
-
import ActionSheet from
|
|
2
|
-
export type { ActionSheetProps, ActionSheetAction, ActionSheetCloseAction } from './types';
|
|
3
|
-
export { useActionSheetTokens } from './tokens';
|
|
4
|
-
export default ActionSheet;
|
|
1
|
+
import ActionSheet from'./ActionSheet';export type{ActionSheetProps,ActionSheetAction,ActionSheetCloseAction}from'./types';export{useActionSheetTokens}from'./tokens';export default ActionSheet;
|
|
@@ -1,4 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import type { ActionSheetTokens } from './types';
|
|
3
|
-
export declare const createActionSheetTokens: (foundations: Foundations) => ActionSheetTokens;
|
|
4
|
-
export declare const useActionSheetTokens: (overrides?: import("../..").DeepPartial<ActionSheetTokens> | undefined) => ActionSheetTokens;
|
|
1
|
+
import{type Foundations}from'../../design-system/tokens';import type{ActionSheetTokens}from'./types';export declare const createActionSheetTokens:(foundations:Foundations)=>ActionSheetTokens;export declare const useActionSheetTokens:(overrides?:import("../..").DeepPartial<ActionSheetTokens>|undefined)=>ActionSheetTokens;
|
|
@@ -1,87 +1 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type { StyleProp, TextStyle, ViewStyle } from 'react-native';
|
|
3
|
-
import type { DeepPartial } from '../../types';
|
|
4
|
-
import type { PopupProps } from '../popup/Popup';
|
|
5
|
-
export type ActionSheetCloseAction = 'action' | 'cancel' | 'close' | 'close-icon' | 'overlay';
|
|
6
|
-
export interface ActionSheetAction {
|
|
7
|
-
key?: React.Key;
|
|
8
|
-
name?: React.ReactNode;
|
|
9
|
-
subname?: React.ReactNode;
|
|
10
|
-
color?: string;
|
|
11
|
-
disabled?: boolean;
|
|
12
|
-
loading?: boolean;
|
|
13
|
-
icon?: React.ReactNode;
|
|
14
|
-
style?: StyleProp<ViewStyle>;
|
|
15
|
-
onPress?: (action: ActionSheetAction) => void;
|
|
16
|
-
callback?: (action: ActionSheetAction) => void;
|
|
17
|
-
}
|
|
18
|
-
export interface ActionSheetTokens {
|
|
19
|
-
defaults: {
|
|
20
|
-
closeOnClickAction: boolean;
|
|
21
|
-
closeable: boolean;
|
|
22
|
-
round: boolean;
|
|
23
|
-
safeAreaInsetBottom: boolean;
|
|
24
|
-
overlay: boolean;
|
|
25
|
-
lockScroll: boolean;
|
|
26
|
-
};
|
|
27
|
-
layout: {
|
|
28
|
-
popup: ViewStyle;
|
|
29
|
-
panel: ViewStyle;
|
|
30
|
-
header: ViewStyle;
|
|
31
|
-
titleContainer: ViewStyle;
|
|
32
|
-
title: TextStyle;
|
|
33
|
-
titleNode: ViewStyle;
|
|
34
|
-
closeButton: ViewStyle;
|
|
35
|
-
descriptionContainer: ViewStyle;
|
|
36
|
-
description: TextStyle;
|
|
37
|
-
descriptionNode: ViewStyle;
|
|
38
|
-
actions: ViewStyle;
|
|
39
|
-
item: ViewStyle;
|
|
40
|
-
itemWithIcon: ViewStyle;
|
|
41
|
-
itemTextWrapper: ViewStyle;
|
|
42
|
-
itemText: TextStyle;
|
|
43
|
-
subname: TextStyle;
|
|
44
|
-
subnameNode: ViewStyle;
|
|
45
|
-
icon: ViewStyle;
|
|
46
|
-
cancelGap: ViewStyle;
|
|
47
|
-
cancel: ViewStyle;
|
|
48
|
-
cancelText: TextStyle;
|
|
49
|
-
};
|
|
50
|
-
colors: {
|
|
51
|
-
background: string;
|
|
52
|
-
title: string;
|
|
53
|
-
description: string;
|
|
54
|
-
item: string;
|
|
55
|
-
subitem: string;
|
|
56
|
-
cancel: string;
|
|
57
|
-
disabled: string;
|
|
58
|
-
border: string;
|
|
59
|
-
itemBackground: string;
|
|
60
|
-
itemPressedBackground: string;
|
|
61
|
-
cancelBackground: string;
|
|
62
|
-
cancelGapBackground: string;
|
|
63
|
-
};
|
|
64
|
-
typography: {
|
|
65
|
-
title: number;
|
|
66
|
-
item: number;
|
|
67
|
-
description: number;
|
|
68
|
-
};
|
|
69
|
-
spacing: {
|
|
70
|
-
horizontal: number;
|
|
71
|
-
vertical: number;
|
|
72
|
-
cancelGap: number;
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
export interface ActionSheetProps extends Omit<PopupProps, 'children' | 'tokensOverride'> {
|
|
76
|
-
title?: React.ReactNode;
|
|
77
|
-
description?: React.ReactNode;
|
|
78
|
-
cancelText?: React.ReactNode;
|
|
79
|
-
actions?: ActionSheetAction[];
|
|
80
|
-
closeOnClickAction?: boolean;
|
|
81
|
-
closeOnSelect?: boolean;
|
|
82
|
-
children?: React.ReactNode;
|
|
83
|
-
onSelect?: (action: ActionSheetAction, index: number) => void;
|
|
84
|
-
onCancel?: () => void;
|
|
85
|
-
beforeClose?: (action: ActionSheetCloseAction) => boolean | Promise<boolean>;
|
|
86
|
-
tokensOverride?: DeepPartial<ActionSheetTokens>;
|
|
87
|
-
}
|
|
1
|
+
import type*as React from'react';import type{StyleProp,TextStyle,ViewStyle}from'react-native';import type{DeepPartial}from'../../types';import type{PopupProps}from'../popup/Popup';export type ActionSheetCloseAction='action'|'cancel'|'close'|'close-icon'|'overlay';export interface ActionSheetAction{key?:React.Key;name?:React.ReactNode;subname?:React.ReactNode;color?:string;disabled?:boolean;loading?:boolean;icon?:React.ReactNode;style?:StyleProp<ViewStyle>;onPress?:(action:ActionSheetAction)=>void;callback?:(action:ActionSheetAction)=>void;}export interface ActionSheetTokens{defaults:{closeOnClickAction:boolean;closeable:boolean;round:boolean;safeAreaInsetBottom:boolean;overlay:boolean;lockScroll:boolean;};layout:{popup:ViewStyle;panel:ViewStyle;header:ViewStyle;titleContainer:ViewStyle;title:TextStyle;titleNode:ViewStyle;closeButton:ViewStyle;descriptionContainer:ViewStyle;description:TextStyle;descriptionNode:ViewStyle;actions:ViewStyle;item:ViewStyle;itemWithIcon:ViewStyle;itemTextWrapper:ViewStyle;itemText:TextStyle;subname:TextStyle;subnameNode:ViewStyle;icon:ViewStyle;cancelGap:ViewStyle;cancel:ViewStyle;cancelText:TextStyle;};colors:{background:string;title:string;description:string;item:string;subitem:string;cancel:string;disabled:string;border:string;itemBackground:string;itemPressedBackground:string;cancelBackground:string;cancelGapBackground:string;};typography:{title:number;item:number;description:number;};spacing:{horizontal:number;vertical:number;cancelGap:number;};}export interface ActionSheetProps extends Omit<PopupProps,'children'|'tokensOverride'>{title?:React.ReactNode;description?:React.ReactNode;cancelText?:React.ReactNode;actions?:ActionSheetAction[];closeOnClickAction?:boolean;closeOnSelect?:boolean;children?:React.ReactNode;onSelect?:(action:ActionSheetAction,index:number)=>void;onCancel?:()=>void;beforeClose?:(action:ActionSheetCloseAction)=>boolean|Promise<boolean>;tokensOverride?:DeepPartial<ActionSheetTokens>;}
|
|
@@ -1,4 +1 @@
|
|
|
1
|
-
import React from
|
|
2
|
-
import type { AreaProps } from './types';
|
|
3
|
-
declare const Area: React.NamedExoticComponent<AreaProps>;
|
|
4
|
-
export default Area;
|
|
1
|
+
import React from'react';import type{AreaProps}from'./types';declare const Area:React.NamedExoticComponent<AreaProps>;export default Area;
|
|
@@ -1,7 +1 @@
|
|
|
1
|
-
export interface AreaTokens
|
|
2
|
-
defaults: {
|
|
3
|
-
columnsNum: 1 | 2 | 3;
|
|
4
|
-
interactionMode: 'freeze' | 'sync';
|
|
5
|
-
};
|
|
6
|
-
}
|
|
7
|
-
export declare const useAreaTokens: (overrides?: import("../..").DeepPartial<AreaTokens> | undefined) => AreaTokens;
|
|
1
|
+
export interface AreaTokens{defaults:{columnsNum:1|2|3;interactionMode:'freeze'|'sync';};}export declare const useAreaTokens:(overrides?:import("../..").DeepPartial<AreaTokens>|undefined)=>AreaTokens;
|
|
@@ -1,20 +1 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type { PickerProps, PickerOption } from '../picker/types';
|
|
3
|
-
export interface AreaList {
|
|
4
|
-
province_list?: Record<string, string>;
|
|
5
|
-
city_list?: Record<string, string>;
|
|
6
|
-
county_list?: Record<string, string>;
|
|
7
|
-
}
|
|
8
|
-
export interface AreaOption extends PickerOption {
|
|
9
|
-
label: React.ReactNode;
|
|
10
|
-
value: string;
|
|
11
|
-
children?: AreaOption[];
|
|
12
|
-
}
|
|
13
|
-
export interface AreaProps extends Omit<PickerProps, 'columns' | 'onChange' | 'value' | 'defaultValue' | 'onConfirm'> {
|
|
14
|
-
areaList: AreaList;
|
|
15
|
-
columnsNum?: 1 | 2 | 3;
|
|
16
|
-
value?: string[];
|
|
17
|
-
defaultValue?: string[];
|
|
18
|
-
onChange?: (values: string[], options: (AreaOption | undefined)[]) => void;
|
|
19
|
-
onConfirm?: (values: string[], options: (AreaOption | undefined)[]) => void;
|
|
20
|
-
}
|
|
1
|
+
import type*as React from'react';import type{PickerProps,PickerOption}from'../picker/types';export interface AreaList{province_list?:Record<string,string>;city_list?:Record<string,string>;county_list?:Record<string,string>;}export interface AreaOption extends PickerOption{label:React.ReactNode;value:string;children?:AreaOption[];}export interface AreaProps extends Omit<PickerProps,'columns'|'onChange'|'value'|'defaultValue'|'onConfirm'>{areaList:AreaList;columnsNum?:1|2|3;value?:string[];defaultValue?:string[];onChange?:(values:string[],options:(AreaOption|undefined)[])=>void;onConfirm?:(values:string[],options:(AreaOption|undefined)[])=>void;}
|
|
@@ -1,7 +1 @@
|
|
|
1
|
-
import React from
|
|
2
|
-
import { Text, View } from 'react-native';
|
|
3
|
-
import type { AvatarFallbackTextProps, AvatarImageProps, AvatarProps } from './types';
|
|
4
|
-
export declare const AvatarFallbackText: React.ForwardRefExoticComponent<AvatarFallbackTextProps & React.RefAttributes<Text>>;
|
|
5
|
-
export declare const AvatarImage: React.ForwardRefExoticComponent<AvatarImageProps & React.RefAttributes<import("react-native").Image>>;
|
|
6
|
-
export declare const Avatar: React.NamedExoticComponent<AvatarProps & React.RefAttributes<View>>;
|
|
7
|
-
export default Avatar;
|
|
1
|
+
import React from'react';import{Text,View}from'react-native';import type{AvatarFallbackTextProps,AvatarImageProps,AvatarProps}from'./types';export declare const AvatarFallbackText:React.ForwardRefExoticComponent<AvatarFallbackTextProps&React.RefAttributes<Text>>;export declare const AvatarImage:React.ForwardRefExoticComponent<AvatarImageProps&React.RefAttributes<import("react-native").Image>>;export declare const Avatar:React.NamedExoticComponent<AvatarProps&React.RefAttributes<View>>;export default Avatar;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export
|
|
2
|
-
export type { AvatarProps, AvatarShape, AvatarSize } from './types';
|
|
1
|
+
export{Avatar,Avatar as default}from'./Avatar';export type{AvatarProps,AvatarShape,AvatarSize}from'./types';
|
|
@@ -1,4 +1 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type { AvatarTokens } from "./types";
|
|
3
|
-
export declare const createAvatarTokens: (foundations: Foundations) => AvatarTokens;
|
|
4
|
-
export declare const useAvatarTokens: (overrides?: import("../..").DeepPartial<AvatarTokens> | undefined) => AvatarTokens;
|
|
1
|
+
import type{Foundations}from"../../design-system/tokens";import type{AvatarTokens}from"./types";export declare const createAvatarTokens:(foundations:Foundations)=>AvatarTokens;export declare const useAvatarTokens:(overrides?:import("../..").DeepPartial<AvatarTokens>|undefined)=>AvatarTokens;
|