react-native-system-ui 1.0.7 → 1.0.8

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.
Files changed (80) hide show
  1. package/README.md +13 -13
  2. package/dist/cjs/components/calendar/Calendar.js +1 -1
  3. package/dist/cjs/components/cascader/Cascader.js +1 -1
  4. package/dist/cjs/components/cascader/useCascaderExtend.js +1 -1
  5. package/dist/cjs/components/dialog/Dialog.js +1 -1
  6. package/dist/cjs/components/dialog/imperative.js +1 -1
  7. package/dist/cjs/components/field/Field.js +1 -1
  8. package/dist/cjs/components/form/Form.js +1 -1
  9. package/dist/cjs/components/number-keyboard/NumberKeyboard.js +1 -1
  10. package/dist/cjs/components/overlay/Overlay.js +1 -1
  11. package/dist/cjs/components/picker/Picker.js +1 -1
  12. package/dist/cjs/components/popup/Popup.js +1 -1
  13. package/dist/cjs/components/portal/PortalHost.js +1 -1
  14. package/dist/cjs/components/selector/Selector.js +1 -1
  15. package/dist/cjs/components/slider/Slider.js +1 -1
  16. package/dist/cjs/components/stepper/Stepper.js +1 -1
  17. package/dist/cjs/components/swiper/Swiper.js +1 -1
  18. package/dist/cjs/components/tabs/Tabs.js +1 -1
  19. package/dist/cjs/hooks/calendar/utils.js +1 -0
  20. package/dist/cjs/hooks/cascader/utils.js +1 -0
  21. package/dist/cjs/hooks/dialog/ActionButton.js +1 -0
  22. package/dist/cjs/hooks/field/renderers.js +1 -0
  23. package/dist/cjs/hooks/form/utils.js +1 -0
  24. package/dist/cjs/hooks/number-keyboard/utils.js +1 -0
  25. package/dist/cjs/hooks/picker/normalize.js +1 -0
  26. package/dist/cjs/hooks/picker/value.js +1 -0
  27. package/dist/cjs/hooks/popup/utils.js +1 -0
  28. package/dist/cjs/hooks/slider/utils.js +1 -0
  29. package/dist/cjs/hooks/swiper/utils.js +1 -0
  30. package/dist/cjs/hooks/tabs/TabBarItem.js +1 -0
  31. package/dist/cjs/hooks/tabs/useTabsInternals.js +1 -0
  32. package/dist/cjs/utils/compare.js +1 -1
  33. package/dist/es/components/calendar/Calendar.js +1 -1
  34. package/dist/es/components/cascader/Cascader.js +1 -1
  35. package/dist/es/components/cascader/useCascaderExtend.js +1 -1
  36. package/dist/es/components/dialog/Dialog.js +1 -1
  37. package/dist/es/components/dialog/imperative.js +1 -1
  38. package/dist/es/components/field/Field.js +1 -1
  39. package/dist/es/components/form/Form.js +1 -1
  40. package/dist/es/components/number-keyboard/NumberKeyboard.js +1 -1
  41. package/dist/es/components/overlay/Overlay.js +1 -1
  42. package/dist/es/components/picker/Picker.js +1 -1
  43. package/dist/es/components/popup/Popup.js +1 -1
  44. package/dist/es/components/portal/PortalHost.js +1 -1
  45. package/dist/es/components/selector/Selector.js +1 -1
  46. package/dist/es/components/slider/Slider.js +1 -1
  47. package/dist/es/components/stepper/Stepper.js +1 -1
  48. package/dist/es/components/swiper/Swiper.js +1 -1
  49. package/dist/es/components/tabs/Tabs.js +1 -1
  50. package/dist/es/hooks/calendar/utils.js +1 -0
  51. package/dist/es/hooks/cascader/utils.js +1 -0
  52. package/dist/es/hooks/dialog/ActionButton.js +1 -0
  53. package/dist/es/hooks/field/renderers.js +1 -0
  54. package/dist/es/hooks/form/utils.js +1 -0
  55. package/dist/es/hooks/number-keyboard/utils.js +1 -0
  56. package/dist/es/hooks/picker/normalize.js +1 -0
  57. package/dist/es/hooks/picker/value.js +1 -0
  58. package/dist/es/hooks/popup/utils.js +1 -0
  59. package/dist/es/hooks/slider/utils.js +1 -0
  60. package/dist/es/hooks/swiper/utils.js +1 -0
  61. package/dist/es/hooks/tabs/TabBarItem.js +1 -0
  62. package/dist/es/hooks/tabs/useTabsInternals.js +1 -0
  63. package/dist/es/utils/compare.js +1 -1
  64. package/dist/types/components/form/Form.d.ts +1 -1
  65. package/dist/types/components/picker/Picker.d.ts +1 -1
  66. package/dist/types/hooks/calendar/utils.d.ts +1 -0
  67. package/dist/types/hooks/cascader/utils.d.ts +1 -0
  68. package/dist/types/hooks/dialog/ActionButton.d.ts +1 -0
  69. package/dist/types/hooks/field/renderers.d.ts +1 -0
  70. package/dist/types/hooks/form/utils.d.ts +1 -0
  71. package/dist/types/hooks/number-keyboard/utils.d.ts +1 -0
  72. package/dist/types/hooks/picker/normalize.d.ts +1 -0
  73. package/dist/types/hooks/picker/value.d.ts +1 -0
  74. package/dist/types/hooks/popup/utils.d.ts +1 -0
  75. package/dist/types/hooks/slider/utils.d.ts +1 -0
  76. package/dist/types/hooks/swiper/utils.d.ts +1 -0
  77. package/dist/types/hooks/tabs/TabBarItem.d.ts +1 -0
  78. package/dist/types/hooks/tabs/useTabsInternals.d.ts +1 -0
  79. package/dist/types/utils/compare.d.ts +1 -1
  80. package/package.json +109 -109
package/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # react-native-system-ui
2
2
 
3
- 面向 React Native 的高性能设计系统组件库。基于 Design Tokens 驱动主题体系,50+ 组件全量覆盖移动端场景;原生 StyleSheet 零运行时开销,单组件均值 **2.7 KB gzip**;iOS / Android / Web 三端同构,API 一致、行为对齐。
3
+ 面向 React Native 的高性能设计系统组件库。基于 Design Tokens 驱动主题体系,50+ 组件全量覆盖移动端场景;原生 StyleSheet 零运行时开销,单组件均值 **2.6 KB gzip**;iOS / Android / Web 三端同构,API 一致、行为对齐。
4
4
 
5
5
  ## 核心优势
6
6
 
7
- - **极致轻量**:全组件经过逐行精简——冗余 Hook 移除、StyleSheet 合并、计算内联、辅助函数提取;构建产物 esbuild 压缩;按需引入 + Tree Shaking,单组件平均 gzip 仅 **2.7 KB**,最小组件(SafeAreaView)仅 **0.5 KB**。
7
+ - **极致轻量**:全组件经过逐行精简——冗余 Hook 移除、StyleSheet 合并、计算内联、辅助函数提取;构建产物 esbuild 压缩;按需引入 + Tree Shaking,单组件平均 gzip 仅 **2.6 KB**,最小组件(SafeAreaView)仅 **0.5 KB**。
8
8
  - **原生性能**:纯 StyleSheet 驱动,零 CSS-in-JS 运行时;动画基于原生 Animated / LayoutAnimation,无 JS 线程阻塞;列表类组件(Picker、Swiper、Tabs)基于 FlatList / ScrollView 原生滚动,确保 60fps 流畅交互。
9
9
  - **三端同构**:iOS / Android / Web 统一 API 与交互行为;Swiper、Picker 等核心组件在 Web 端自动适配桌面鼠标拖拽与移动端触控,无需业务层额外处理。
10
10
  - **设计系统**:Design Tokens + ThemeProvider 分层架构,组件自管 tokens;支持 light / dark / 品牌主题一键切换,样式定制不侵入组件实现。
@@ -151,29 +151,29 @@ enableNativeWind(cssInterop)
151
151
 
152
152
  ## 组件体积
153
153
 
154
- 按需引入后单组件均值约 **2.7 KB**(各组件目录 gzip 相加估算,数据由 `pnpm run build && pnpm run docs:update-size` 生成)。支持 Tree Shaking,实际打包体积以构建结果为准。
154
+ 按需引入后单组件均值约 **2.6 KB**(各组件目录 gzip 相加估算,数据由 `pnpm run build && pnpm run docs:update-size` 生成)。支持 Tree Shaking,实际打包体积以构建结果为准。
155
155
 
156
156
  | 组件 | gzip | 组件 | gzip | 组件 | gzip |
157
157
  | --- | ---: | --- | ---: | --- | ---: |
158
- | picker | 6.3 KB | tabs | 6.2 KB | form | 4.7 KB |
159
- | dialog | 4.6 KB | cascader | 4.5 KB | field | 4.4 KB |
160
- | calendar | 4.2 KB | slider | 4.1 KB | number-keyboard | 4.0 KB |
161
- | toast | 3.9 KB | swiper | 3.9 KB | popup | 3.8 KB |
162
- | notify | 3.7 KB | image-preview | 3.6 KB | checkbox | 3.6 KB |
158
+ | picker | 5.1 KB | cascader | 4.4 KB | tabs | 4.4 KB |
159
+ | dialog | 4.4 KB | form | 4.3 KB | toast | 3.9 KB |
160
+ | field | 3.8 KB | calendar | 3.8 KB | swiper | 3.8 KB |
161
+ | number-keyboard | 3.8 KB | notify | 3.7 KB | popup | 3.7 KB |
162
+ | slider | 3.6 KB | image-preview | 3.6 KB | checkbox | 3.6 KB |
163
163
  | stepper | 3.6 KB | button | 3.6 KB | cell | 3.4 KB |
164
164
  | radio | 3.3 KB | grid | 3.2 KB | tabbar | 3.0 KB |
165
165
  | notice-bar | 2.9 KB | collapse | 2.8 KB | config-provider | 2.8 KB |
166
166
  | password-input | 2.8 KB | action-sheet | 2.8 KB | image | 2.7 KB |
167
167
  | sidebar | 2.6 KB | datetime-picker | 2.5 KB | share-sheet | 2.4 KB |
168
- | progress | 2.3 KB | selector | 2.2 KB | nav-bar | 2.2 KB |
169
- | portal | 2.1 KB | typography | 2.1 KB | circle | 2.0 KB |
168
+ | selector | 2.4 KB | progress | 2.3 KB | nav-bar | 2.2 KB |
169
+ | portal | 2.2 KB | typography | 2.1 KB | circle | 2.0 KB |
170
170
  | search | 2.0 KB | skeleton | 1.9 KB | badge | 1.9 KB |
171
- | water-mark | 1.9 KB | tag | 1.8 KB | flex | 1.6 KB |
172
- | space | 1.6 KB | avatar | 1.5 KB | divider | 1.4 KB |
171
+ | water-mark | 1.9 KB | tag | 1.8 KB | space | 1.6 KB |
172
+ | avatar | 1.5 KB | flex | 1.5 KB | divider | 1.4 KB |
173
173
  | empty | 1.4 KB | input | 1.3 KB | area | 1.2 KB |
174
174
  | count-down | 1.1 KB | loading | 1.1 KB | switch | 1.0 KB |
175
175
  | overlay | 0.8 KB | error-boundary | 0.6 KB | safe-area-view | 0.5 KB |
176
176
 
177
177
  ## 版本与反馈
178
178
 
179
- 当前为 v1.0.7,欢迎 issue / PR。
179
+ 当前为 v1.0.8,欢迎 issue / PR。
@@ -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=void 0;var _hooks=require("../../hooks"),_utils=require("../../utils"),_validate=require("../../utils/validate"),_popup=_interopRequireDefault(require("../popup")),_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 a=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,l,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(n=t?r:a){if(n.has(e))return n.get(e);n.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((l=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(l.get||l.set)?n(o,t,l):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 a=arguments[t];for(var r in a)({}).hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},_extends.apply(null,arguments)}const DAY_MS=864e5,isSameDay=(e,t)=>e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate(),startOfDay=e=>{const t=new Date(e);return t.setHours(0,0,0,0),t},daysBetween=(e,t)=>Math.round(Math.abs(startOfDay(e).getTime()-startOfDay(t).getTime())/DAY_MS),toArrayValue=e=>e?Array.isArray(e)?e.filter(Boolean).map(e=>new Date(e)):[new Date(e)]:[],DEFAULT_MIN=new Date((new Date).getFullYear()-10,0,1),DEFAULT_MAX=new Date((new Date).getFullYear()+10,11,31),CalendarImpl=e=>{const{tokensOverride:t,value:a,defaultValue:r,minDate:n=DEFAULT_MIN,maxDate:l=DEFAULT_MAX,type:o,title:i,showSubtitle:s,showHeader:u,showConfirm:c,confirmText:d,weekStartsOn:p,weekdays:g,formatMonthTitle:f,allowSameDay:m,maxRange:y,onOverRange:_,poppable:h,visible:b,defaultVisible:O,onVisibleChange:C,closeOnClickOverlay:v,closeOnConfirm:k,popupPlacement:T,popupRound:M,popupProps:w,onOpen:D,onOpened:S,onClose:V,onClosed:x,color:P,onConfirm:N,onSelect:R,style:z,...E}=e,A=(0,_useLocale.useLocale)(),B=A?.vanCalendar,F=(0,_tokens.useCalendarTokens)(t),I=i??B?.title??F.defaults.title,Y=s??F.defaults.showSubtitle,W=u??F.defaults.showHeader,$=d??B?.confirm??F.defaults.confirmText,q=p??F.defaults.weekStartsOn,L=m??F.defaults.allowSameDay,H=h??F.defaults.poppable,j=v??F.defaults.closeOnClickOverlay,U=k??F.defaults.closeOnConfirm,X=T??F.defaults.popupPlacement,G=M??F.defaults.popupRound,J=o??F.defaults.type,K=c??F.defaults.showConfirm[J],[Q,Z]=(0,_hooks.useControllableValue)(e,{defaultValue:!1,valuePropName:"visible",defaultValuePropName:"defaultVisible",trigger:"onVisibleChange"}),{onClose:ee,onClosed:te,onOpen:ae,onOpened:re,closeOnOverlayPress:ne,overlay:le,...oe}=w??{},ie=(0,_react().useRef)({onConfirm:N,onOverRange:_,popupOnOpen:ae,onOpen:D,popupOnOpened:re,onOpened:S,popupOnClose:ee,onClose:V,popupOnClosed:te,onClosed:x});ie.current.onConfirm=N,ie.current.onOverRange=_,ie.current.popupOnOpen=ae,ie.current.onOpen=D,ie.current.popupOnOpened=re,ie.current.onOpened=S,ie.current.popupOnClose=ee,ie.current.onClose=V,ie.current.popupOnClosed=te,ie.current.onClosed=x;const se=(0,_react().useCallback)(()=>{H&&Z(!1)},[H,Z]),ue=(0,_react().useCallback)(()=>{ie.current.popupOnOpen?.(),ie.current.onOpen?.()},[]),ce=(0,_react().useCallback)(()=>{ie.current.popupOnOpened?.(),ie.current.onOpened?.()},[]),de=(0,_react().useCallback)(()=>{se(),ie.current.popupOnClose?.(),ie.current.onClose?.()},[se]),pe=(0,_react().useCallback)(()=>{ie.current.popupOnClosed?.(),ie.current.onClosed?.()},[]),ge=ne??j,fe=le??!0,[me,ye]=(0,_hooks.useControllableValue)(e,{defaultValue:null,valuePropName:"value",defaultValuePropName:"defaultValue",trigger:"onSelect"}),_e=normalizeValue(toArrayValue(me),J),[he,be]=(0,_react().useState)(()=>clampMonth(_e.length?_e[0]:new Date,n,l)),Oe=_e.length?_e[0].getTime():null,Ce=n.getTime(),ve=l.getTime();(0,_react().useEffect)(()=>{if(!_e.length)return;const e=clampMonth(_e[0],n,l);be(t=>isSameMonth(e,t)?t:e)},[Oe,Ce,ve]);const ke=(0,_react().useMemo)(()=>buildMonth(he,q),[he,q]),Te=(0,_react().useMemo)(()=>ke.map(e=>e?{day:e,key:e.toISOString(),timeValue:startOfDay(e).getTime(),dateValue:e.getDate()}:null),[ke]),Me=startOfDay(n).getTime(),we=startOfDay(l).getTime(),De=g??B?.weekdays??F.defaults.weekdays,Se=(0,_react().useMemo)(()=>reorderWeekdays(De,q,F.defaults.weekdays),[De,F.defaults.weekdays,q]),Ve=(0,_react().useMemo)(()=>f?f(he):B?.monthTitle?B.monthTitle(he.getFullYear(),he.getMonth()+1):formatMonth(he),[he,f,B]),xe=startOfMonth(n),Pe=startOfMonth(l),Ne=he.getTime()>xe.getTime(),Re=he.getTime()<Pe.getTime(),ze=(0,_react().useCallback)(e=>be(t=>clampMonth(new Date(t.getFullYear(),t.getMonth()+e,1),n,l)),[n,l]),Ee=(0,_react().useCallback)(()=>ze(-1),[ze]),Ae=(0,_react().useCallback)(()=>ze(1),[ze]),Be="range"===J?_e.length<2:0===_e.length,Fe=F.spacing.column/2,Ie=(0,_react().useCallback)(e=>{K||"range"===J&&e.length<2||"multiple"===J&&0===e.length||e.length&&(ie.current.onConfirm?.(mapValue(e,J)),H&&U&&se())},[K,J,H,U,se]),Ye=(0,_react().useCallback)(()=>{K&&Be||(ie.current.onConfirm?.(mapValue(_e,J)),H&&U&&se())},[K,Be,_e,J,H,U,se]),We=(0,_react().useCallback)(e=>{if("range"===J&&2===e.length){const[t,a]=e;if(!L&&isSameDay(t,a))return!1;if(y&&daysBetween(t,a)+1>y)return ie.current.onOverRange?.(y),!1}return!("multiple"===J&&y&&e.length>y)||(ie.current.onOverRange?.(y),!1)},[J,L,y]),$e=(0,_react().useRef)(void 0),qe=(0,_react().useCallback)(e=>{const t=startOfDay(e).getTime();if(t<Me||t>we)return;let a=[];const r=_e;switch(J){case"single":default:a=[e];break;case"multiple":a=r.find(t=>isSameDay(t,e))?r.filter(t=>!isSameDay(t,e)):[...r,e];break;case"range":if(r.length<1||r.length>1)a=[e];else{const t=r[0];a=isSameDay(t,e)?L?[t,e]:[e]:[t,e].sort((e,t)=>e.getTime()-t.getTime())}}const n=normalizeValue(a,J);We(n)&&(ye(mapValue(n,J)),K||Ie(n))},[_e,J,Me,we,L,We,ye,K,Ie]);$e.current=qe;const Le=(0,_react().useCallback)(e=>$e.current?.(e),[]),He=(0,_react().useMemo)(()=>_e.map(e=>startOfDay(e).getTime()),[_e]),je=(0,_react().useMemo)(()=>new Set(He),[He]),Ue="range"===J&&2===He.length?[He[0],He[1]]:null,Xe=(0,_react().useCallback)((e,t)=>{if(!e)return _react().default.createElement(_reactNative().View,{key:`p-${t}`,style:[F.layout.dayPlaceholder,{paddingVertical:F.spacing.dayPaddingVertical,paddingHorizontal:Fe}]});const{day:a,key:r,timeValue:n,dateValue:l}=e,o=n<Me||n>we,i=je.has(n),s="range"===J&&Ue&&n>Ue[0]&&n<Ue[1],u=[F.layout.dayText,{borderRadius:F.radii.day,color:F.colors.text,minWidth:F.sizing.dayMinWidth}];o?u.push({color:F.colors.disabled}):s?u.push({backgroundColor:F.colors.rangeBackground}):i&&u.push({backgroundColor:P??F.colors.selectedBackground,color:F.colors.selectedText});const c=`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,"0")}-${String(a.getDate()).padStart(2,"0")}${i?", selected":""}${o?", disabled":""}`;return _react().default.createElement(_reactNative().Pressable,{key:r,accessibilityRole:"button",accessibilityLabel:c,accessibilityState:{selected:i,disabled:o},style:[F.layout.dayButton,{paddingVertical:F.spacing.dayPaddingVertical,paddingHorizontal:Fe}],disabled:o,onPress:()=>Le(a),testID:getCalendarDayTestId(a)},_react().default.createElement(_reactNative().Text,{style:u},l))},[je,J,Ue,Me,we,F,P,Le,Fe]),Ge=_react().default.createElement(_reactNative().View,_extends({style:[{backgroundColor:F.colors.background,padding:F.spacing.containerPadding,borderRadius:F.radii.container},z]},E),W?_react().default.createElement(_reactNative().View,{style:[F.layout.header,{marginBottom:F.spacing.headerMarginBottom}]},_react().default.createElement(_reactNative().Pressable,{testID:"calendar-nav-prev",accessibilityRole:"button",accessibilityLabel:"previous month",onPress:Ee,disabled:!Ne},_react().default.createElement(_reactNative().Text,{style:[F.layout.navText,{fontSize:F.sizing.navButtonSize,paddingHorizontal:F.spacing.navPaddingHorizontal},!Ne&&{opacity:.3}]},"<")),_react().default.createElement(_reactNative().View,{style:F.layout.headerCenter},(0,_validate.isRenderable)(I)?(0,_utils.renderTextOrNode)(I,[F.layout.headerTitle,{color:F.colors.text,fontSize:F.typography.headerTitleSize,fontWeight:F.typography.headerTitleWeight}]):null,Y?(0,_utils.renderTextOrNode)(Ve,[F.layout.headerSubtitle,{color:F.colors.headerSubtitle,fontSize:F.typography.headerSubtitleSize}]):null),_react().default.createElement(_reactNative().Pressable,{testID:"calendar-nav-next",accessibilityRole:"button",accessibilityLabel:"next month",onPress:Ae,disabled:!Re},_react().default.createElement(_reactNative().Text,{style:[F.layout.navText,{fontSize:F.sizing.navButtonSize,paddingHorizontal:F.spacing.navPaddingHorizontal},!Re&&{opacity:.3}]},">"))):null,_react().default.createElement(_reactNative().View,{style:[F.layout.weekRow,{marginBottom:F.spacing.weekRowMarginBottom}]},Se.map((e,t)=>_react().default.createElement(_reactNative().View,{key:`w-${t}`,style:[F.layout.weekLabelItem,{paddingHorizontal:Fe}]},(0,_utils.renderTextOrNode)(e,[F.layout.weekLabel,{color:F.colors.text}])))),_react().default.createElement(_reactNative().View,{style:[F.layout.days,{rowGap:F.spacing.row}]},Te.map((e,t)=>Xe(e,t))),K?_react().default.createElement(_reactNative().Pressable,{style:[F.layout.confirmButton,{backgroundColor:P??F.colors.selectedBackground,opacity:Be?.5:1,marginTop:F.spacing.confirmMarginTop,paddingVertical:F.spacing.confirmPaddingVertical,borderRadius:F.radii.confirmButton}],onPress:Ye,disabled:Be},(0,_utils.renderTextOrNode)($,[F.layout.confirmText,{color:F.colors.confirmText,fontWeight:F.typography.confirmTextWeight}])):null);return H?_react().default.createElement(_popup.default,_extends({visible:Q,placement:X,round:G,closeOnOverlayPress:ge,overlay:fe,safeAreaInsetTop:null!=oe?.safeAreaInsetTop?oe.safeAreaInsetTop:W,safeAreaInsetBottom:null!=oe?.safeAreaInsetBottom?oe.safeAreaInsetBottom:"bottom"===X,onOpen:ue,onOpened:ce,onClose:de,onClosed:pe},oe),Ge):Ge};function mapValue(e,t){return"single"===t?e[0]??new Date:("range"===t&&e.length,e)}function normalizeValue(e,t){return"single"===t?e.slice(0,1):"range"===t?e.slice(0,2).sort((e,t)=>e.getTime()-t.getTime()):e}function formatMonth(e){return`${e.getFullYear()}/${e.getMonth()+1}`}function reorderWeekdays(e,t,a){const r=(t%7+7)%7,n=7===e.length?[...e]:a;return[...n.slice(r),...n.slice(0,r)]}function buildMonth(e,t){const a=(t%7+7)%7,r=(startOfMonth(e).getDay()-a+7)%7,n=new Date(e.getFullYear(),e.getMonth()+1,0).getDate(),l=[];for(let e=0;e<r;e+=1)l.push(null);for(let t=1;t<=n;t+=1)l.push(new Date(e.getFullYear(),e.getMonth(),t));for(;l.length<42;)l.push(null);return l}function getCalendarDayTestId(e){return`calendar-day-${e.getFullYear()}-${`${e.getMonth()+1}`.padStart(2,"0")}-${`${e.getDate()}`.padStart(2,"0")}`}function startOfMonth(e){return new Date(e.getFullYear(),e.getMonth(),1)}function clampMonth(e,t,a){const r=startOfMonth(e),n=startOfMonth(t),l=startOfMonth(a);return r.getTime()<n.getTime()?n:r.getTime()>l.getTime()?a:r}function isSameMonth(e,t){return e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()}const Calendar=_react().default.memo(CalendarImpl);Calendar.displayName="Calendar";var _default=exports.default=Calendar;
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=void 0;var _hooks=require("../../hooks"),_utils=require("../../utils"),_validate=require("../../utils/validate"),_popup=_interopRequireDefault(require("../popup")),_useLocale=require("../config-provider/useLocale"),_tokens=require("./tokens"),_utils2=require("../../hooks/calendar/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var a=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var l,n,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(l=t?r:a){if(l.has(e))return l.get(e);l.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(l=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?l(o,t,n):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 a=arguments[t];for(var r in a)({}).hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},_extends.apply(null,arguments)}const CalendarImpl=e=>{const{tokensOverride:t,value:a,defaultValue:r,minDate:l=_utils2.DEFAULT_MIN,maxDate:n=_utils2.DEFAULT_MAX,type:o,title:i,showSubtitle:s,showHeader:u,showConfirm:c,confirmText:d,weekStartsOn:p,weekdays:f,formatMonthTitle:_,allowSameDay:g,maxRange:m,onOverRange:y,poppable:b,visible:h,defaultVisible:O,onVisibleChange:v,closeOnClickOverlay:C,closeOnConfirm:k,popupPlacement:T,popupRound:w,popupProps:V,onOpen:S,onOpened:x,onClose:M,onClosed:P,color:D,onConfirm:N,onSelect:R,style:z,...E}=e,B=(0,_useLocale.useLocale)(),I=B?.vanCalendar,q=(0,_tokens.useCalendarTokens)(t),W=i??I?.title??q.defaults.title,L=s??q.defaults.showSubtitle,A=u??q.defaults.showHeader,H=d??I?.confirm??q.defaults.confirmText,$=p??q.defaults.weekStartsOn,j=g??q.defaults.allowSameDay,F=b??q.defaults.poppable,Y=C??q.defaults.closeOnClickOverlay,U=k??q.defaults.closeOnConfirm,G=T??q.defaults.popupPlacement,X=w??q.defaults.popupRound,J=o??q.defaults.type,K=c??q.defaults.showConfirm[J],[Q,Z]=(0,_hooks.useControllableValue)(e,{defaultValue:!1,valuePropName:"visible",defaultValuePropName:"defaultVisible",trigger:"onVisibleChange"}),{onClose:ee,onClosed:te,onOpen:ae,onOpened:re,closeOnOverlayPress:le,overlay:ne,...oe}=V??{},ie=(0,_react().useRef)({onConfirm:N,onOverRange:y,popupOnOpen:ae,onOpen:S,popupOnOpened:re,onOpened:x,popupOnClose:ee,onClose:M,popupOnClosed:te,onClosed:P});ie.current.onConfirm=N,ie.current.onOverRange=y,ie.current.popupOnOpen=ae,ie.current.onOpen=S,ie.current.popupOnOpened=re,ie.current.onOpened=x,ie.current.popupOnClose=ee,ie.current.onClose=M,ie.current.popupOnClosed=te,ie.current.onClosed=P;const se=(0,_react().useCallback)(()=>{F&&Z(!1)},[F,Z]),ue=(0,_react().useCallback)(()=>{ie.current.popupOnOpen?.(),ie.current.onOpen?.()},[]),ce=(0,_react().useCallback)(()=>{ie.current.popupOnOpened?.(),ie.current.onOpened?.()},[]),de=(0,_react().useCallback)(()=>{se(),ie.current.popupOnClose?.(),ie.current.onClose?.()},[se]),pe=(0,_react().useCallback)(()=>{ie.current.popupOnClosed?.(),ie.current.onClosed?.()},[]),fe=le??Y,_e=ne??!0,[ge,me]=(0,_hooks.useControllableValue)(e,{defaultValue:null,valuePropName:"value",defaultValuePropName:"defaultValue",trigger:"onSelect"}),ye=(0,_utils2.normalizeValue)((0,_utils2.toArrayValue)(ge),J),[be,he]=(0,_react().useState)(()=>(0,_utils2.clampMonth)(ye.length?ye[0]:new Date,l,n)),Oe=ye.length?ye[0].getTime():null,ve=l.getTime(),Ce=n.getTime();(0,_react().useEffect)(()=>{if(!ye.length)return;const e=(0,_utils2.clampMonth)(ye[0],l,n);he(t=>(0,_utils2.isSameMonth)(e,t)?t:e)},[Oe,ve,Ce]);const ke=(0,_react().useMemo)(()=>(0,_utils2.buildMonth)(be,$),[be,$]),Te=(0,_react().useMemo)(()=>ke.map(e=>e?{day:e,key:e.toISOString(),timeValue:(0,_utils2.startOfDay)(e).getTime(),dateValue:e.getDate()}:null),[ke]),we=(0,_utils2.startOfDay)(l).getTime(),Ve=(0,_utils2.startOfDay)(n).getTime(),Se=f??I?.weekdays??q.defaults.weekdays,xe=(0,_react().useMemo)(()=>(0,_utils2.reorderWeekdays)(Se,$,q.defaults.weekdays),[Se,q.defaults.weekdays,$]),Me=(0,_react().useMemo)(()=>_?_(be):I?.monthTitle?I.monthTitle(be.getFullYear(),be.getMonth()+1):(0,_utils2.formatMonth)(be),[be,_,I]),Pe=(0,_utils2.startOfMonth)(l),De=(0,_utils2.startOfMonth)(n),Ne=be.getTime()>Pe.getTime(),Re=be.getTime()<De.getTime(),ze=(0,_react().useCallback)(e=>he(t=>(0,_utils2.clampMonth)(new Date(t.getFullYear(),t.getMonth()+e,1),l,n)),[l,n]),Ee=(0,_react().useCallback)(()=>ze(-1),[ze]),Be=(0,_react().useCallback)(()=>ze(1),[ze]),Ie="range"===J?ye.length<2:0===ye.length,qe=q.spacing.column/2,We=(0,_react().useCallback)(e=>{K||"range"===J&&e.length<2||"multiple"===J&&0===e.length||e.length&&(ie.current.onConfirm?.((0,_utils2.mapValue)(e,J)),F&&U&&se())},[K,J,F,U,se]),Le=(0,_react().useCallback)(()=>{K&&Ie||(ie.current.onConfirm?.((0,_utils2.mapValue)(ye,J)),F&&U&&se())},[K,Ie,ye,J,F,U,se]),Ae=(0,_react().useCallback)(e=>{if("range"===J&&2===e.length){const[t,a]=e;if(!j&&(0,_utils2.isSameDay)(t,a))return!1;if(m&&(0,_utils2.daysBetween)(t,a)+1>m)return ie.current.onOverRange?.(m),!1}return!("multiple"===J&&m&&e.length>m)||(ie.current.onOverRange?.(m),!1)},[J,j,m]),He=(0,_react().useRef)(void 0),$e=(0,_react().useCallback)(e=>{const t=(0,_utils2.startOfDay)(e).getTime();if(t<we||t>Ve)return;let a=[];const r=ye;switch(J){case"single":default:a=[e];break;case"multiple":a=r.find(t=>(0,_utils2.isSameDay)(t,e))?r.filter(t=>!(0,_utils2.isSameDay)(t,e)):[...r,e];break;case"range":if(r.length<1||r.length>1)a=[e];else{const t=r[0];a=(0,_utils2.isSameDay)(t,e)?j?[t,e]:[e]:[t,e].sort((e,t)=>e.getTime()-t.getTime())}}const l=(0,_utils2.normalizeValue)(a,J);Ae(l)&&(me((0,_utils2.mapValue)(l,J)),K||We(l))},[ye,J,we,Ve,j,Ae,me,K,We]);He.current=$e;const je=(0,_react().useCallback)(e=>He.current?.(e),[]),Fe=(0,_react().useMemo)(()=>ye.map(e=>(0,_utils2.startOfDay)(e).getTime()),[ye]),Ye=(0,_react().useMemo)(()=>new Set(Fe),[Fe]),Ue="range"===J&&2===Fe.length?[Fe[0],Fe[1]]:null,Ge=(0,_react().useCallback)((e,t)=>{if(!e)return _react().default.createElement(_reactNative().View,{key:`p-${t}`,style:[q.layout.dayPlaceholder,{paddingVertical:q.spacing.dayPaddingVertical,paddingHorizontal:qe}]});const{day:a,key:r,timeValue:l,dateValue:n}=e,o=l<we||l>Ve,i=Ye.has(l),s="range"===J&&Ue&&l>Ue[0]&&l<Ue[1],u=[q.layout.dayText,{borderRadius:q.radii.day,color:q.colors.text,minWidth:q.sizing.dayMinWidth}];o?u.push({color:q.colors.disabled}):s?u.push({backgroundColor:q.colors.rangeBackground}):i&&u.push({backgroundColor:D??q.colors.selectedBackground,color:q.colors.selectedText});const c=`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,"0")}-${String(a.getDate()).padStart(2,"0")}${i?", selected":""}${o?", disabled":""}`;return _react().default.createElement(_reactNative().Pressable,{key:r,accessibilityRole:"button",accessibilityLabel:c,accessibilityState:{selected:i,disabled:o},style:[q.layout.dayButton,{paddingVertical:q.spacing.dayPaddingVertical,paddingHorizontal:qe}],disabled:o,onPress:()=>je(a),testID:(0,_utils2.getCalendarDayTestId)(a)},_react().default.createElement(_reactNative().Text,{style:u},n))},[Ye,J,Ue,we,Ve,q,D,je,qe]),Xe=_react().default.createElement(_reactNative().View,_extends({style:[{backgroundColor:q.colors.background,padding:q.spacing.containerPadding,borderRadius:q.radii.container},z]},E),A?_react().default.createElement(_reactNative().View,{style:[q.layout.header,{marginBottom:q.spacing.headerMarginBottom}]},_react().default.createElement(_reactNative().Pressable,{testID:"calendar-nav-prev",accessibilityRole:"button",accessibilityLabel:"previous month",onPress:Ee,disabled:!Ne},_react().default.createElement(_reactNative().Text,{style:[q.layout.navText,{fontSize:q.sizing.navButtonSize,paddingHorizontal:q.spacing.navPaddingHorizontal},!Ne&&{opacity:.3}]},"<")),_react().default.createElement(_reactNative().View,{style:q.layout.headerCenter},(0,_validate.isRenderable)(W)?(0,_utils.renderTextOrNode)(W,[q.layout.headerTitle,{color:q.colors.text,fontSize:q.typography.headerTitleSize,fontWeight:q.typography.headerTitleWeight}]):null,L?(0,_utils.renderTextOrNode)(Me,[q.layout.headerSubtitle,{color:q.colors.headerSubtitle,fontSize:q.typography.headerSubtitleSize}]):null),_react().default.createElement(_reactNative().Pressable,{testID:"calendar-nav-next",accessibilityRole:"button",accessibilityLabel:"next month",onPress:Be,disabled:!Re},_react().default.createElement(_reactNative().Text,{style:[q.layout.navText,{fontSize:q.sizing.navButtonSize,paddingHorizontal:q.spacing.navPaddingHorizontal},!Re&&{opacity:.3}]},">"))):null,_react().default.createElement(_reactNative().View,{style:[q.layout.weekRow,{marginBottom:q.spacing.weekRowMarginBottom}]},xe.map((e,t)=>_react().default.createElement(_reactNative().View,{key:`w-${t}`,style:[q.layout.weekLabelItem,{paddingHorizontal:qe}]},(0,_utils.renderTextOrNode)(e,[q.layout.weekLabel,{color:q.colors.text}])))),_react().default.createElement(_reactNative().View,{style:[q.layout.days,{rowGap:q.spacing.row}]},Te.map((e,t)=>Ge(e,t))),K?_react().default.createElement(_reactNative().Pressable,{style:[q.layout.confirmButton,{backgroundColor:D??q.colors.selectedBackground,opacity:Ie?.5:1,marginTop:q.spacing.confirmMarginTop,paddingVertical:q.spacing.confirmPaddingVertical,borderRadius:q.radii.confirmButton}],onPress:Le,disabled:Ie},(0,_utils.renderTextOrNode)(H,[q.layout.confirmText,{color:q.colors.confirmText,fontWeight:q.typography.confirmTextWeight}])):null);return F?_react().default.createElement(_popup.default,_extends({visible:Q,placement:G,round:X,closeOnOverlayPress:fe,overlay:_e,safeAreaInsetTop:null!=oe?.safeAreaInsetTop?oe.safeAreaInsetTop:A,safeAreaInsetBottom:null!=oe?.safeAreaInsetBottom?oe.safeAreaInsetBottom:"bottom"===G,onOpen:ue,onOpened:ce,onClose:de,onClosed:pe},oe),Xe):Xe},Calendar=_react().default.memo(CalendarImpl);Calendar.displayName="Calendar";var _default=exports.default=Calendar;
@@ -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=void 0;var _hooks=require("../../hooks"),_utils=require("../../utils"),_validate=require("../../utils/validate"),_popup=_interopRequireDefault(require("../popup")),_tabs=_interopRequireDefault(require("../tabs")),_useLocale=require("../config-provider/useLocale"),_tokens=require("./tokens"),_useCascaderExtend=require("./useCascaderExtend");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var a=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var o,n,l={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return l;if(o=t?r:a){if(o.has(e))return o.get(e);o.set(e,l)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?o(l,t,n):l[t]=e[t]);return l})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var r in a)({}).hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},_extends.apply(null,arguments)}const getFieldKeys=e=>({textKey:e?.text??"text",valueKey:e?.value??"value",childrenKey:e?.children??"children"}),resolveRows=(e=[],t,a)=>{const r=[];let o=e;return a.forEach(e=>{if(!o?.length)return;const a=o.find(a=>a[t.valueKey]===e);a&&(r.push(a),o=a[t.childrenKey]??[])}),r},CascaderImpl=e=>{const{tokensOverride:t,options:a=[],title:r,placeholder:o,activeColor:n,fieldNames:l,optionRender:i,showHeader:c,closeable:s,closeIcon:u,onChange:d,onClose:p,onFinish:g,onClickTab:f,onTabChange:y,swipeable:_,style:h,testID:b,children:v,poppable:m,visible:C,defaultVisible:x,onVisibleChange:k,closeOnClickOverlay:N,closeOnFinish:T,popupPlacement:S,popupRound:I,popupProps:O,loadingText:E,...w}=e,P=(0,_useLocale.useLocale)(),z=(0,_tokens.useCascaderTokens)(t),V=r??P?.vanCascader?.placeholder??z.defaults.title,R=o??P?.vanCascader?.placeholder??z.defaults.placeholder,L=n??z.colors.tabActive,K=c??z.defaults.showHeader,H=_??z.defaults.swipeable,q=m??z.defaults.poppable,A=N??z.defaults.closeOnClickOverlay,W=T??z.defaults.closeOnFinish,M=S??z.defaults.popupPlacement,B=I??z.defaults.popupRound,D=E??z.defaults.loadingText,[j,F]=(0,_hooks.useControllableValue)(e,{defaultValue:[],trigger:"onChange"}),$=getFieldKeys(l),G=Array.isArray(j)?j:[],[J,Q]=(0,_react().useState)(G),U=s??z.defaults.closeable,[X,Y]=(0,_hooks.useControllableValue)(e,{defaultValue:!1,valuePropName:"visible",defaultValuePropName:"defaultVisible",trigger:"onVisibleChange"}),Z=q?J:G,{tabs:ee,items:te,depth:ae}=(0,_useCascaderExtend.useCascaderExtend)(a,$,Z),{width:re}=(0,_reactNative().useWindowDimensions)(),[oe,ne]=(0,_react().useState)(0),le=(0,_react().useCallback)(e=>{const t=e.nativeEvent.layout.width;t&&ne(e=>e===t?e:t)},[]),ie=resolveRows(a,$,G),[ce,se]=(0,_react().useState)(0);(0,_react().useEffect)(()=>{let e=Array.isArray(Z)?Z.length:0;e>=ae&&(e=Math.max(ae-1,0)),se(t=>t===e?t:e)},[Z.length,ae]),(0,_react().useEffect)(()=>{q&&X||Q(e=>(0,_utils.shallowEqualArray)(e,G)?e:G)},[G,q,X]);const ue=(0,_react().useCallback)(()=>{q&&!X&&(Q(e=>(0,_utils.shallowEqualArray)(e,G)?e:G),Y(!0))},[G,q,X,Y]),de=(0,_react().useRef)(p),pe=(0,_react().useRef)(d),ge=(0,_react().useRef)(g),fe=(0,_react().useRef)(f),ye=(0,_react().useRef)(y);de.current=p,pe.current=d,ge.current=g,fe.current=f,ye.current=y;const _e=(0,_react().useCallback)(e=>{q&&X&&(Y(!1),e&&de.current?.())},[q,X,Y]),he=(0,_react().useCallback)(()=>{q&&(X?_e(!0):ue())},[_e,ue,q,X]),be=(0,_validate.isFunction)(v),ve=be?v:null,me=(0,_react().useCallback)(e=>{const t=(0,_validate.isNumber)(e.index)?e.index:Number(e.name);if(Number.isNaN(t))return;const a=te[t]?.[$.textKey];fe.current?.(t,(0,_validate.isText)(a)?String(a):R)},[te,$.textKey,R]),Ce=(0,_react().useCallback)((e,t)=>{const a=(0,_validate.isNumber)(t)?t:Number(e);Number.isNaN(a)||(se(a),ye.current?.(a))},[]),xe=(0,_react().useCallback)((e,t)=>{if(e.disabled)return;const r=e[$.valueKey];if(null==r)return;const o=[...(q?J:G).slice(0,t),r],n=resolveRows(a,$,o),l=e[$.childrenKey]??[],i=Object.prototype.hasOwnProperty.call(e,$.childrenKey)&&!l.length,c=o.length>=ae,s=!l.length&&!i;q?(Q(o),pe.current?.(o,n)):F(o,n),(s||c)&&(q&&(F(o,n),W&&_e(!0)),ge.current?.(o,n))},[G,W,_e,ae,$,a,J,q,F]),ke=(0,_react().useCallback)(e=>{if(e<=0)return R;const t=te[e-1];if(!t)return R;if(!Object.prototype.hasOwnProperty.call(t,$.childrenKey))return R;return 0===(t[$.childrenKey]??[]).length&&Z.length===e?D:R},[Z.length,te,$.childrenKey,D,R]),Ne=q||be?null:v,Te=_react().default.createElement(_reactNative().View,_extends({testID:b,style:[z.layout.container,{backgroundColor:z.colors.background},h]},w),K?_react().default.createElement(_reactNative().View,{style:[z.layout.header,{height:z.sizing.headerHeight,paddingHorizontal:z.spacing.headerPaddingHorizontal}]},(0,_utils.renderTextOrNode)(V,[z.layout.title,{color:z.colors.headerText,fontSize:z.typography.titleSize,fontWeight:z.typography.titleWeight}]),U?_react().default.createElement(_reactNative().Pressable,{hitSlop:8,onPress:()=>{q?_e(!0):de.current?.()},style:[z.layout.closeButton,{marginLeft:z.spacing.closeButtonMarginLeft}],accessibilityRole:"button",accessibilityLabel:P?.vanCascader?.close??"Close"},u??(e=>_react().default.createElement(_reactNativeSystemIcon().Cross,{size:z.sizing.closeIconSize,fill:e.pressed?z.colors.closeIconActive:z.colors.closeIcon,color:e.pressed?z.colors.closeIconActive:z.colors.closeIcon}))):null):null,(()=>{if(!ee.length)return _react().default.createElement(CascaderOptionList,{optionList:[],tabIndex:0,selectedValue:Z[0],activeColor:L,keys:$,optionRender:i,onSelect:xe,tokens:z,emptyText:ke(0)});const e=!!H,t=oe||re||void 0,a={height:z.sizing.headerHeight,paddingHorizontal:z.spacing.tabNavPaddingHorizontal,paddingVertical:z.spacing.tabNavPaddingVertical,backgroundColor:z.colors.background};return _react().default.createElement(_reactNative().View,{style:z.layout.tabsWrapper,onLayout:le},_react().default.createElement(_tabs.default,{style:t?{width:t}:void 0,active:ce,onChange:Ce,onClickTab:me,align:"center",swipeable:e,swipeThreshold:0,scrollable:!0,animated:!0,duration:300,color:L,lineHeight:z.sizing.indicatorHeight,titleActiveColor:z.colors.tabText,titleInactiveColor:z.colors.tabInactive,tabBarStyle:a,tabStyle:[z.layout.tabsItem,{paddingHorizontal:z.spacing.tabPaddingHorizontal}],titleStyle:[z.layout.tabsTitle,{fontSize:z.typography.tabsTitleSize}],contentStyle:e?void 0:z.layout.tabsContentStatic},ee.map((e,t)=>{const a=te[t],r=(0,_validate.isText)(a?.[$.textKey])?String(a?.[$.textKey]):"",o=!r;return _react().default.createElement(_tabs.default.TabPane,{key:t,name:t,title:e=>_react().default.createElement(_reactNative().Text,{style:[z.layout.tabTitleNode,{color:o?z.colors.tabInactive:z.colors.tabText,fontWeight:o?z.typography.tabTitlePlaceholderWeight:z.typography.tabTitleWeight}]},o?R:r)},_react().default.createElement(CascaderOptionList,{optionList:e,tabIndex:t,selectedValue:Z[t],activeColor:L,keys:$,optionRender:i,onSelect:xe,tokens:z,emptyText:ke(t)}))})))})(),Ne?_react().default.createElement(_reactNative().View,{style:[z.layout.inlineChildren,{paddingVertical:z.spacing.inlineChildrenPaddingVertical,paddingHorizontal:z.spacing.headerPaddingHorizontal}]},Ne):null);if(!q)return Te;const{closeOnOverlayPress:Se,overlay:Ie,onOpen:Oe,onOpened:Ee,onClose:we,onClosed:Pe,...ze}=O??{},Ve=(0,_react().useRef)(we);Ve.current=we;const Re=(0,_react().useCallback)(()=>{Ve.current?.(),_e(!0)},[_e]),Le={open:ue,close:()=>_e(!0),toggle:he},Ke=(0,_react().useCallback)(e=>{if(!_react().default.isValidElement(e))return e;const t=e.props,a=()=>{t.onPress?.(),t.onClick?.(),ue()};return _react().default.cloneElement(e,{onPress:a,onClick:a})},[ue])(ve?ve(G,ie,Le):be?null:v||null);return _react().default.createElement(_react().default.Fragment,null,Ke,_react().default.createElement(_popup.default,_extends({visible:X,placement:M,round:B,closeOnOverlayPress:Se??A,overlay:Ie??!0,safeAreaInsetTop:null!=ze?.safeAreaInsetTop?ze.safeAreaInsetTop:K&&U,safeAreaInsetBottom:null!=ze?.safeAreaInsetBottom?ze.safeAreaInsetBottom:"bottom"===M,onOpen:Oe,onOpened:Ee,onClose:Re,onClosed:Pe},ze,{style:{paddingLeft:0,paddingRight:0}}),Te))},CascaderOptionItem=_react().default.memo(({option:e,tabIndex:t,selected:a,activeColor:r,keys:o,optionRender:n,onSelect:l,tokens:i})=>{const c=e[o.valueKey],s=e[o.textKey],u=!!e.disabled,d=e.color??i.colors.optionText,p=u?i.colors.optionDisabled:a?e.color??r:d,g=[i.layout.optionText,{color:p,fontSize:i.typography.optionTextSize},a?{fontWeight:i.typography.optionTextActiveWeight}:null],f=n?n({option:e,selected:a}):(0,_utils.renderTextOrNode)(s,g),y=(0,_validate.isText)(f)?(0,_utils.renderTextOrNode)(f,g):f;return _react().default.createElement(_reactNative().Pressable,{testID:`cascader-option-${t}-${String(c)}`,style:({pressed:e})=>[i.layout.option,{minHeight:i.sizing.optionMinHeight,paddingVertical:i.spacing.optionPaddingVertical,paddingHorizontal:i.spacing.optionPaddingHorizontal},e&&!u&&{backgroundColor:i.colors.optionActiveBackground}],onPress:()=>l(e,t),disabled:u},_react().default.createElement(_reactNative().View,{style:i.layout.optionContent},_react().default.createElement(_reactNative().View,{style:[i.layout.optionLabel,{marginRight:i.spacing.optionLabelMarginRight}]},y),a?_react().default.createElement(_reactNativeSystemIcon().Checked,{size:i.sizing.selectedIconSize,fill:r,color:r}):null))}),CascaderOptionList=_react().default.memo(({optionList:e,tabIndex:t,selectedValue:a,activeColor:r,keys:o,optionRender:n,onSelect:l,tokens:i,emptyText:c})=>{const s=(0,_react().useCallback)(({item:e})=>_react().default.createElement(CascaderOptionItem,{option:e,tabIndex:t,selected:a===e[o.valueKey],activeColor:r,keys:o,optionRender:n,onSelect:l,tokens:i}),[r,o,l,n,a,t,i]),u=(0,_react().useCallback)(e=>String(e[o.valueKey]),[o.valueKey]);return e.length?_react().default.createElement(_reactNative().FlatList,{data:e,style:[i.layout.optionList,{height:i.sizing.optionListHeight}],contentContainerStyle:{paddingTop:i.spacing.optionListPaddingTop,paddingBottom:i.spacing.optionListPaddingBottom},showsVerticalScrollIndicator:!1,renderItem:s,keyExtractor:u,removeClippedSubviews:!0,initialNumToRender:20,windowSize:5}):_react().default.createElement(_reactNative().View,{style:[i.layout.optionList,{height:i.sizing.optionListHeight}]},_react().default.createElement(_reactNative().Text,{style:[i.layout.empty,{color:i.colors.placeholder,paddingVertical:i.spacing.emptyPaddingVertical,fontSize:i.typography.emptyTextSize}]},c))}),Cascader=_react().default.memo(CascaderImpl);var _default=exports.default=Cascader;
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=void 0;var _hooks=require("../../hooks"),_utils=require("../../utils"),_validate=require("../../utils/validate"),_popup=_interopRequireDefault(require("../popup")),_tabs=_interopRequireDefault(require("../tabs")),_useLocale=require("../config-provider/useLocale"),_tokens=require("./tokens"),_useCascaderExtend=require("./useCascaderExtend"),_utils2=require("../../hooks/cascader/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var a=new WeakMap,o=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var r,n,l={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return l;if(r=t?o:a){if(r.has(e))return r.get(e);r.set(e,l)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(r=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?r(l,t,n):l[t]=e[t]);return l})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var o in a)({}).hasOwnProperty.call(a,o)&&(e[o]=a[o])}return e},_extends.apply(null,arguments)}const CascaderImpl=e=>{const{tokensOverride:t,options:a=[],title:o,placeholder:r,activeColor:n,fieldNames:l,optionRender:i,showHeader:s,closeable:c,closeIcon:u,onChange:d,onClose:p,onFinish:_,onClickTab:g,onTabChange:f,swipeable:y,style:h,testID:b,children:v,poppable:m,visible:C,defaultVisible:k,onVisibleChange:x,closeOnClickOverlay:N,closeOnFinish:T,popupPlacement:S,popupRound:I,popupProps:O,loadingText:E,...P}=e,w=(0,_useLocale.useLocale)(),z=(0,_tokens.useCascaderTokens)(t),V=o??w?.vanCascader?.placeholder??z.defaults.title,R=r??w?.vanCascader?.placeholder??z.defaults.placeholder,L=n??z.colors.tabActive,q=s??z.defaults.showHeader,H=y??z.defaults.swipeable,A=m??z.defaults.poppable,K=N??z.defaults.closeOnClickOverlay,W=T??z.defaults.closeOnFinish,M=S??z.defaults.popupPlacement,B=I??z.defaults.popupRound,D=E??z.defaults.loadingText,[j,F]=(0,_hooks.useControllableValue)(e,{defaultValue:[],trigger:"onChange"}),$=(0,_utils2.getFieldKeys)(l),G=Array.isArray(j)?j:[],[J,Q]=(0,_react().useState)(G),U=c??z.defaults.closeable,[X,Y]=(0,_hooks.useControllableValue)(e,{defaultValue:!1,valuePropName:"visible",defaultValuePropName:"defaultVisible",trigger:"onVisibleChange"}),Z=A?J:G,{tabs:ee,items:te,depth:ae}=(0,_useCascaderExtend.useCascaderExtend)(a,$,Z),{width:oe}=(0,_reactNative().useWindowDimensions)(),[re,ne]=(0,_react().useState)(0),le=(0,_react().useCallback)(e=>{const t=e.nativeEvent.layout.width;t&&ne(e=>e===t?e:t)},[]),ie=(0,_utils2.resolveRows)(a,$,G),[se,ce]=(0,_react().useState)(0);(0,_react().useEffect)(()=>{const e=ee.length;let t=Math.max(e-1,0);t>=ae&&(t=Math.max(ae-1,0)),ce(e=>e===t?e:t)},[ee.length,ae]),(0,_react().useEffect)(()=>{A&&X||Q(e=>(0,_utils.shallowEqualArray)(e,G)?e:G)},[G,A,X]);const ue=(0,_react().useCallback)(()=>{A&&!X&&(Q(e=>(0,_utils.shallowEqualArray)(e,G)?e:G),Y(!0))},[G,A,X,Y]),de=(0,_react().useRef)(p),pe=(0,_react().useRef)(d),_e=(0,_react().useRef)(_),ge=(0,_react().useRef)(g),fe=(0,_react().useRef)(f);de.current=p,pe.current=d,_e.current=_,ge.current=g,fe.current=f;const ye=(0,_react().useCallback)(e=>{A&&X&&(Y(!1),e&&de.current?.())},[A,X,Y]),he=(0,_react().useCallback)(()=>{A&&(X?ye(!0):ue())},[ye,ue,A,X]),be=(0,_validate.isFunction)(v),ve=be?v:null,me=(0,_react().useCallback)(e=>{const t=(0,_validate.isNumber)(e.index)?e.index:Number(e.name);if(Number.isNaN(t))return;const a=te[t]?.[$.textKey];ge.current?.(t,(0,_validate.isText)(a)?String(a):R)},[te,$.textKey,R]),Ce=(0,_react().useCallback)((e,t)=>{const a=(0,_validate.isNumber)(t)?t:Number(e);Number.isNaN(a)||(ce(a),fe.current?.(a))},[]),ke=(0,_react().useCallback)((e,t)=>{if(e.disabled)return;const o=e[$.valueKey];if(null==o)return;const r=[...(A?J:G).slice(0,t),o],n=(0,_utils2.resolveRows)(a,$,r),l=e[$.childrenKey]??[],i=Object.prototype.hasOwnProperty.call(e,$.childrenKey)&&!l.length,s=r.length>=ae,c=!l.length&&!i;A?(Q(r),pe.current?.(r,n)):F(r,n),(c||s)&&(A&&(F(r,n),W&&ye(!0)),_e.current?.(r,n))},[G,W,ye,ae,$,a,J,A,F]),xe=(0,_react().useCallback)(e=>{if(e<=0)return R;const t=te[e-1];if(!t)return R;if(!Object.prototype.hasOwnProperty.call(t,$.childrenKey))return R;return 0===(t[$.childrenKey]??[]).length&&Z.length===e?D:R},[Z.length,te,$.childrenKey,D,R]),Ne=A||be?null:v,Te=_react().default.createElement(_reactNative().View,_extends({testID:b,style:[z.layout.container,{backgroundColor:z.colors.background},h]},P),q?_react().default.createElement(_reactNative().View,{style:[z.layout.header,{height:z.sizing.headerHeight,paddingHorizontal:z.spacing.headerPaddingHorizontal}]},(0,_utils.renderTextOrNode)(V,[z.layout.title,{color:z.colors.headerText,fontSize:z.typography.titleSize,fontWeight:z.typography.titleWeight}]),U?_react().default.createElement(_reactNative().Pressable,{hitSlop:8,onPress:()=>{A?ye(!0):de.current?.()},style:[z.layout.closeButton,{marginLeft:z.spacing.closeButtonMarginLeft}],accessibilityRole:"button",accessibilityLabel:w?.vanCascader?.close??"Close"},u??(e=>_react().default.createElement(_reactNativeSystemIcon().Cross,{size:z.sizing.closeIconSize,fill:e.pressed?z.colors.closeIconActive:z.colors.closeIcon,color:e.pressed?z.colors.closeIconActive:z.colors.closeIcon}))):null):null,(()=>{if(!ee.length)return _react().default.createElement(CascaderOptionList,{optionList:[],tabIndex:0,selectedValue:Z[0],activeColor:L,keys:$,optionRender:i,onSelect:ke,tokens:z,emptyText:xe(0)});const e=!!H,t=re||oe||void 0,a={height:z.sizing.headerHeight,paddingHorizontal:z.spacing.tabNavPaddingHorizontal,paddingVertical:z.spacing.tabNavPaddingVertical,backgroundColor:z.colors.background};return _react().default.createElement(_reactNative().View,{style:z.layout.tabsWrapper,onLayout:le},_react().default.createElement(_tabs.default,{style:t?{width:t}:void 0,active:se,onChange:Ce,onClickTab:me,align:"center",swipeable:e,swipeThreshold:0,scrollable:!0,animated:!0,duration:300,color:L,lineHeight:z.sizing.indicatorHeight,titleActiveColor:z.colors.tabText,titleInactiveColor:z.colors.tabInactive,tabBarStyle:a,tabStyle:[z.layout.tabsItem,{paddingHorizontal:z.spacing.tabPaddingHorizontal}],titleStyle:[z.layout.tabsTitle,{fontSize:z.typography.tabsTitleSize}],contentStyle:e?void 0:z.layout.tabsContentStatic},ee.map((e,t)=>{const a=te[t],o=(0,_validate.isText)(a?.[$.textKey])?String(a?.[$.textKey]):"",r=!o;return _react().default.createElement(_tabs.default.TabPane,{key:t,name:t,title:e=>_react().default.createElement(_reactNative().Text,{style:[z.layout.tabTitleNode,{color:r?z.colors.tabInactive:z.colors.tabText,fontWeight:r?z.typography.tabTitlePlaceholderWeight:z.typography.tabTitleWeight}]},r?R:o)},_react().default.createElement(CascaderOptionList,{optionList:e,tabIndex:t,selectedValue:Z[t],activeColor:L,keys:$,optionRender:i,onSelect:ke,tokens:z,emptyText:xe(t)}))})))})(),Ne?_react().default.createElement(_reactNative().View,{style:[z.layout.inlineChildren,{paddingVertical:z.spacing.inlineChildrenPaddingVertical,paddingHorizontal:z.spacing.headerPaddingHorizontal}]},Ne):null);if(!A)return Te;const{closeOnOverlayPress:Se,overlay:Ie,onOpen:Oe,onOpened:Ee,onClose:Pe,onClosed:we,...ze}=O??{},Ve=(0,_react().useRef)(Pe);Ve.current=Pe;const Re=(0,_react().useCallback)(()=>{Ve.current?.(),ye(!0)},[ye]),Le={open:ue,close:()=>ye(!0),toggle:he},qe=(0,_react().useCallback)(e=>{if(!_react().default.isValidElement(e))return e;const t=e.props,a=()=>{t.onPress?.(),t.onClick?.(),ue()};return _react().default.cloneElement(e,{onPress:a,onClick:a})},[ue])(ve?ve(G,ie,Le):be?null:v||null);return _react().default.createElement(_react().default.Fragment,null,qe,_react().default.createElement(_popup.default,_extends({visible:X,placement:M,round:B,closeOnOverlayPress:Se??K,overlay:Ie??!0,safeAreaInsetTop:null!=ze?.safeAreaInsetTop?ze.safeAreaInsetTop:q&&U,safeAreaInsetBottom:null!=ze?.safeAreaInsetBottom?ze.safeAreaInsetBottom:"bottom"===M,onOpen:Oe,onOpened:Ee,onClose:Re,onClosed:we},ze,{style:{paddingLeft:0,paddingRight:0}}),Te))},CascaderOptionItem=_react().default.memo(({option:e,tabIndex:t,selected:a,activeColor:o,keys:r,optionRender:n,onSelect:l,tokens:i})=>{const s=e[r.valueKey],c=e[r.textKey],u=!!e.disabled,d=e.color??i.colors.optionText,p=u?i.colors.optionDisabled:a?e.color??o:d,_=[i.layout.optionText,{color:p,fontSize:i.typography.optionTextSize},a?{fontWeight:i.typography.optionTextActiveWeight}:null],g=n?n({option:e,selected:a}):(0,_utils.renderTextOrNode)(c,_),f=(0,_validate.isText)(g)?(0,_utils.renderTextOrNode)(g,_):g;return _react().default.createElement(_reactNative().Pressable,{testID:`cascader-option-${t}-${String(s)}`,style:({pressed:e})=>[i.layout.option,{minHeight:i.sizing.optionMinHeight,paddingVertical:i.spacing.optionPaddingVertical,paddingHorizontal:i.spacing.optionPaddingHorizontal},e&&!u&&{backgroundColor:i.colors.optionActiveBackground}],onPress:()=>l(e,t),disabled:u},_react().default.createElement(_reactNative().View,{style:i.layout.optionContent},_react().default.createElement(_reactNative().View,{style:[i.layout.optionLabel,{marginRight:i.spacing.optionLabelMarginRight}]},f),a?_react().default.createElement(_reactNativeSystemIcon().Checked,{size:i.sizing.selectedIconSize,fill:o,color:o}):null))}),CascaderOptionList=_react().default.memo(({optionList:e,tabIndex:t,selectedValue:a,activeColor:o,keys:r,optionRender:n,onSelect:l,tokens:i,emptyText:s})=>{const c=(0,_react().useCallback)(({item:e})=>_react().default.createElement(CascaderOptionItem,{option:e,tabIndex:t,selected:a===e[r.valueKey],activeColor:o,keys:r,optionRender:n,onSelect:l,tokens:i}),[o,r,l,n,a,t,i]),u=(0,_react().useCallback)(e=>String(e[r.valueKey]),[r.valueKey]);return e.length?_react().default.createElement(_reactNative().FlatList,{data:e,style:[i.layout.optionList,{height:i.sizing.optionListHeight}],contentContainerStyle:{paddingTop:i.spacing.optionListPaddingTop,paddingBottom:i.spacing.optionListPaddingBottom},showsVerticalScrollIndicator:!1,renderItem:c,keyExtractor:u,removeClippedSubviews:!0,initialNumToRender:20,windowSize:5}):_react().default.createElement(_reactNative().View,{style:[i.layout.optionList,{height:i.sizing.optionListHeight}]},_react().default.createElement(_reactNative().Text,{style:[i.layout.empty,{color:i.colors.placeholder,paddingVertical:i.spacing.emptyPaddingVertical,fontSize:i.typography.emptyTextSize}]},s))}),Cascader=_react().default.memo(CascaderImpl);var _default=exports.default=Cascader;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useCascaderExtend=void 0;const getDepth=(e,t)=>{let r=1;const n=(e,s)=>{e?.length&&(s>r&&(r=s),e.forEach(e=>{Object.prototype.hasOwnProperty.call(e,t)&&s+1>r&&(r=s+1);const c=e[t];c?.length&&n(c,s+1)}))};return n(e,1),r},useCascaderExtend=(e=[],t,r)=>{const n=getDepth(e,t.childrenKey),s=r?.length?r.reduce((e,n,s)=>{if(null==n)return e;const c=e[s];if(!c)return e;const d=c.find(e=>e[t.valueKey]===r[s])?.[t.childrenKey];return d&&e.push(d),e},[e]):[e],c=r?.length?r.map((e,r)=>s[r]?.find(r=>r[t.valueKey]===e)):[];return{tabs:s,items:c,depth:n}};exports.useCascaderExtend=useCascaderExtend;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useCascaderExtend=void 0;const getDepth=(e,t)=>{let r=1;const s=(e,n)=>{e?.length&&(n>r&&(r=n),e.forEach(e=>{Object.prototype.hasOwnProperty.call(e,t)&&n+1>r&&(r=n+1);const c=e[t];c?.length&&s(c,n+1)}))};return s(e,1),r},useCascaderExtend=(e=[],t,r)=>{const s=getDepth(e,t.childrenKey),n=[e],c=[];if(r?.length){let s=e;for(let e=0;e<r.length;e+=1){const o=r[e];if(null==o||!s?.length)break;const l=s.find(e=>e[t.valueKey]===o);if(!l)break;c.push(l);if(!Object.prototype.hasOwnProperty.call(l,t.childrenKey))break;const a=l[t.childrenKey]??[];n.push(a),s=a}}return{tabs:n,items:c,depth:s}};exports.useCascaderExtend=useCascaderExtend;
@@ -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.Dialog=void 0;var _useLocale=require("../config-provider/useLocale"),_platform=require("../../platform"),_animation=require("../../hooks/animation"),_hairline=require("../../utils/hairline"),_promise=require("../../utils/promise"),_validate=require("../../utils/validate"),_utils=require("../../utils");function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}var _button=_interopRequireDefault(require("../button")),_popup=_interopRequireDefault(require("../popup")),_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 n,a,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(n=t?r:o){if(n.has(e))return n.get(e);n.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?n(i,t,a):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 ActionButton=e=>{const{text:t,color:o,tokens:r,dividerPosition:n="none",loading:a,disabled:i,onPress:l}=e,c=o??r.colors.confirm,s="none"===n?null:[S.btnDiv,{width:0},(0,_hairline.createHairlineView)({position:n,color:r.colors.divider,top:0,bottom:0,[n]:0})];return _react().default.createElement(_reactNative().Pressable,{accessibilityRole:"button",disabled:i||a,style:({pressed:e})=>[S.btn,{height:r.sizes.actionHeight,opacity:!e||i||a?1:.8}],onPress:i||a?void 0:l},s&&_react().default.createElement(_reactNative().View,{style:s,pointerEvents:"none"}),a?_react().default.createElement(_reactNative().ActivityIndicator,{size:"small",color:c}):(0,_utils.renderTextOrNode)(t??"",{color:c,fontFamily:r.typography.fontFamily,fontSize:r.typography.actionSize,fontWeight:r.typography.actionWeight}))},DialogImpl=e=>{const t=(0,_useLocale.useLocale)(),{visible:o,title:r,message:n,messageAlign:a="center",theme:i="default",width:l,closeable:c=!1,closeIcon:s,overlay:d=!0,overlayStyle:u,overlayTestID:p="dialog-overlay",closeOnBackPress:g=!1,closeOnPopstate:f=!0,closeOnOverlayPress:_=!1,closeOnClickOverlay:m=!1,onClickOverlay:y,onClickCloseIcon:v,beforeClose:b,showCancelButton:h=!1,showConfirmButton:C=!0,cancelButtonText:P,cancelButtonColor:x,cancelProps:w,confirmButtonText:N,confirmButtonColor:k,confirmProps:E,footer:O,contentStyle:I,titleStyle:q,messageStyle:z,tokensOverride:B,style:D,children:H,onCancel:W,onConfirm:V,onClose:L,onClosed:R,...T}=e,F=(0,_tokens.useDialogTokens)(B),M=(0,_animation.useReducedMotion)(),A=(0,_validate.isValidNode)(r),j=(0,_validate.isValidNode)(H),G=(0,_validate.isValidNode)(n)||j,J=h||C,K="round-button"===i,Q=w?.loading,U=E?.loading,X=P??t.cancel,Y=N??t.confirm,Z=(0,_react().useRef)({seq:0,beforeClose:b,onClose:L,onCancel:W,onConfirm:V,onClickCloseIcon:v,cancelLoad:Q,confirmLoad:U});Object.assign(Z.current,{beforeClose:b,onClose:L,onCancel:W,onConfirm:V,onClickCloseIcon:v,cancelLoad:Q,confirmLoad:U});const $=(0,_react().useCallback)((e,t)=>{const o=Z.current;o.seq+=1;const r=o.seq,n=o.beforeClose;if(!n)return void t?.();let a;try{a=n(e)}catch{return void t?.()}!1!==a&&((0,_promise.isPromiseLike)(a)?a.then(e=>{!1!==e&&Z.current.seq===r&&t?.()}).catch(()=>{Z.current.seq===r&&t?.()}):t?.())},[]),ee=(0,_react().useCallback)(()=>{Z.current.onClickCloseIcon?.(),$("close",()=>Z.current.onClose?.())},[$]),te=(0,_react().useCallback)(()=>{Z.current.cancelLoad||$("cancel",()=>Z.current.onCancel?.())},[$]),oe=(0,_react().useCallback)(()=>{Z.current.confirmLoad||$("confirm",()=>Z.current.onConfirm?.())},[$]),re=(0,_react().useRef)(new(_reactNative().Animated.Value)(.7)).current,ne=(0,_react().useRef)(null);(0,_react().useEffect)(()=>{ne.current?.stop(),re.setValue(o?.7:1);const e=_reactNative().Animated.timing(re,{toValue:o?1:.9,duration:M?0:300,easing:o?_reactNative().Easing.out(_reactNative().Easing.cubic):_reactNative().Easing.in(_reactNative().Easing.cubic),useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1});ne.current=e,e.start()},[re,o,M]),(0,_react().useEffect)(()=>()=>{ne.current?.stop()},[]);const ae={transform:[{scale:re}]},ie=(0,_react().useMemo)(()=>A?{wrap:[S.titleWrap,{paddingTop:G?F.spacing.titlePaddingTop:F.spacing.titleIsolatedPadding,paddingBottom:G?0:F.spacing.titleIsolatedPadding,paddingHorizontal:G?F.spacing.paddingHorizontal:0,marginBottom:G?F.spacing.titleGap:0}],text:[S.title,{color:F.colors.title,fontFamily:F.typography.fontFamily,fontSize:F.typography.titleSize,lineHeight:F.typography.titleLineHeight,fontWeight:F.typography.titleWeight},q]}:null,[A,G,q,F]),le=(0,_react().useMemo)(()=>({text:[S.msg,{color:K?F.colors.title:F.colors.message,fontFamily:F.typography.fontFamily,fontSize:F.typography.messageSize,lineHeight:F.typography.messageLineHeight,textAlign:a},z],content:j?null:{alignItems:"center"===a?"center":"left"===a?"flex-start":"flex-end"},wrap:[S.msgWrap,{paddingTop:A?F.spacing.messagePaddingTop:F.spacing.messagePadding,paddingBottom:K?F.spacing.roundFooterPadding:F.spacing.messagePadding,paddingHorizontal:F.spacing.messagePaddingHorizontal}]}),[K,a,z,j,A,F]),ce=(0,_react().useMemo)(()=>({border:[S.footerBorder,(0,_hairline.createHairlineView)({position:"top",color:F.colors.divider,left:0,right:0,top:0})],round:[S.roundFooter,{paddingTop:F.spacing.messagePaddingTop,paddingHorizontal:F.spacing.messagePaddingHorizontal,paddingBottom:F.spacing.roundFooterPadding}]}),[F]),se=(0,_react().useMemo)(()=>{const e=l?(0,_validate.isNumber)(l)?{width:l}:{width:String(l)}:{width:"90%",maxWidth:F.sizes.maxWidth};return[{backgroundColor:F.colors.background,borderRadius:F.sizes.borderRadius,padding:0},e,D]},[l,D,F]),de=(0,_react().useCallback)(()=>{const e=Z.current.beforeClose;if(!e)return!0;try{return e("close")}catch{return!0}},[]),ue=(0,_react().useMemo)(()=>J&&_react().default.createElement(_reactNative().View,{style:ce.round},h&&_react().default.createElement(_reactNative().View,{style:[S.roundBtnWrap,C&&{marginRight:F.spacing.roundFooterGap}]},_react().default.createElement(_button.default,{block:!0,round:!0,type:"warning",text:X,color:x,loading:Q,disabled:w?.disabled,onPress:te,style:{minHeight:F.sizes.roundButtonHeight}})),C&&_react().default.createElement(_reactNative().View,{style:[S.roundBtnWrap,h&&{marginLeft:F.spacing.roundFooterGap}]},_react().default.createElement(_button.default,{block:!0,round:!0,type:"danger",text:Y,color:k,loading:U,disabled:E?.disabled,onPress:oe,style:{minHeight:F.sizes.roundButtonHeight}}))),[x,Q,w?.disabled,X,k,U,E?.disabled,Y,te,oe,J,ce.round,h,C,F.sizes.roundButtonHeight,F.spacing.roundFooterGap]),pe=(0,_react().useMemo)(()=>J&&_react().default.createElement(_reactNative().View,{style:S.footer},_react().default.createElement(_reactNative().View,{style:ce.border,pointerEvents:"none"}),h&&_react().default.createElement(ActionButton,{tokens:F,text:X,color:x??F.colors.cancel,dividerPosition:"none",loading:Q,disabled:w?.disabled,onPress:te}),C&&_react().default.createElement(ActionButton,{tokens:F,text:Y,color:k??F.colors.confirm,dividerPosition:h?"left":"none",loading:U,disabled:E?.disabled,onPress:oe})),[x,Q,w?.disabled,X,k,U,E?.disabled,Y,ce.border,te,oe,J,h,C,F]),ge=O??(K?ue:pe);return _react().default.createElement(_popup.default,_extends({visible:o,placement:"center",round:!0,overlay:d,overlayStyle:u,overlayTestID:p,closeOnBackPress:g,closeOnPopstate:f,closeOnClickOverlay:_||m,onClickOverlay:y,beforeClose:de,onClose:L,onClosed:R,contentAnimationStyle:ae,style:se,accessibilityRole:"android"===_reactNative().Platform.OS?"alert":"alertdialog",accessibilityLabel:"string"==typeof r?r:void 0},T),c&&_react().default.createElement(_reactNative().Pressable,{style:[S.closeIcon,{top:F.spacing.paddingTop/2,right:F.spacing.paddingHorizontal/2,padding:F.spacing.closeIconPadding}],hitSlop:{top:8,bottom:8,left:8,right:8},onPress:ee},s??_react().default.createElement(_reactNativeSystemIcon().Close,{size:F.sizes.closeSize,fill:F.colors.closeIcon,color:F.colors.closeIcon})),ie&&_react().default.createElement(_reactNative().View,{style:ie.wrap},(0,_utils.renderTextOrNode)(r,ie.text)),G&&_react().default.createElement(_reactNative().View,{style:[S.content,le.content,I]},j?H:_react().default.createElement(_reactNative().View,{style:le.wrap},(0,_utils.renderTextOrNode)(n,le.text))),ge)},S=_reactNative().StyleSheet.create({titleWrap:{alignItems:"center"},title:{textAlign:"center"},content:{width:"100%"},msg:{textAlign:"center"},footer:{flexDirection:"row",position:"relative"},footerBorder:{position:"absolute",top:0,left:0,right:0,height:0},btn:{flex:1,alignItems:"center",justifyContent:"center"},btnDiv:{position:"absolute",pointerEvents:"none"},msgWrap:{width:"100%"},roundFooter:{width:"100%",flexDirection:"row"},roundBtnWrap:{flex:1},closeIcon:{position:"absolute",zIndex:1}}),Dialog=exports.Dialog=_react().default.memo(DialogImpl);Dialog.displayName="Dialog";var _default=exports.default=Dialog;
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.Dialog=void 0;var _useLocale=require("../config-provider/useLocale"),_platform=require("../../platform"),_animation=require("../../hooks/animation"),_hairline=require("../../utils/hairline"),_promise=require("../../utils/promise"),_validate=require("../../utils/validate"),_utils=require("../../utils");function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}var _button=_interopRequireDefault(require("../button")),_popup=_interopRequireDefault(require("../popup")),_tokens=require("./tokens"),_ActionButton=require("../../hooks/dialog/ActionButton");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 n,a,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(n=t?r:o){if(n.has(e))return n.get(e);n.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?n(i,t,a):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 DialogImpl=e=>{const t=(0,_useLocale.useLocale)(),{visible:o,title:r,message:n,messageAlign:a="center",theme:i="default",width:l,closeable:c=!1,closeIcon:s,overlay:d=!0,overlayStyle:u,overlayTestID:p="dialog-overlay",closeOnBackPress:g=!1,closeOnPopstate:f=!0,closeOnOverlayPress:_=!1,closeOnClickOverlay:m=!1,onClickOverlay:y,onClickCloseIcon:v,beforeClose:b,showCancelButton:h=!1,showConfirmButton:C=!0,cancelButtonText:P,cancelButtonColor:k,cancelProps:x,confirmButtonText:w,confirmButtonColor:N,confirmProps:B,footer:O,contentStyle:q,titleStyle:E,messageStyle:I,tokensOverride:z,style:D,children:H,onCancel:W,onConfirm:L,onClose:V,onClosed:R,...T}=e,A=(0,_tokens.useDialogTokens)(z),M=(0,_animation.useReducedMotion)(),F=(0,_validate.isValidNode)(r),j=(0,_validate.isValidNode)(H),G=(0,_validate.isValidNode)(n)||j,J=h||C,K="round-button"===i,Q=x?.loading,U=B?.loading,X=P??t.cancel,Y=w??t.confirm,Z=(0,_react().useRef)({seq:0,beforeClose:b,onClose:V,onCancel:W,onConfirm:L,onClickCloseIcon:v,cancelLoad:Q,confirmLoad:U});Object.assign(Z.current,{beforeClose:b,onClose:V,onCancel:W,onConfirm:L,onClickCloseIcon:v,cancelLoad:Q,confirmLoad:U});const $=(0,_react().useCallback)((e,t)=>{const o=Z.current;o.seq+=1;const r=o.seq,n=o.beforeClose;if(!n)return void t?.();let a;try{a=n(e)}catch{return}!1!==a&&((0,_promise.isPromiseLike)(a)?a.then(e=>{!1!==e&&Z.current.seq===r&&t?.()}).catch(()=>{}):t?.())},[]),ee=(0,_react().useCallback)(()=>{Z.current.onClickCloseIcon?.(),$("close",()=>Z.current.onClose?.())},[$]),te=(0,_react().useCallback)(()=>{Z.current.cancelLoad||$("cancel",()=>Z.current.onCancel?.())},[$]),oe=(0,_react().useCallback)(()=>{Z.current.confirmLoad||$("confirm",()=>Z.current.onConfirm?.())},[$]),re=(0,_react().useRef)(new(_reactNative().Animated.Value)(.7)).current,ne=(0,_react().useRef)(null);(0,_react().useEffect)(()=>{ne.current?.stop(),re.setValue(o?.7:1);const e=_reactNative().Animated.timing(re,{toValue:o?1:.9,duration:M?0:300,easing:o?_reactNative().Easing.out(_reactNative().Easing.cubic):_reactNative().Easing.in(_reactNative().Easing.cubic),useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1});ne.current=e,e.start()},[re,o,M]),(0,_react().useEffect)(()=>()=>{ne.current?.stop()},[]);const ae={transform:[{scale:re}]},ie=(0,_react().useMemo)(()=>F?{wrap:[S.titleWrap,{paddingTop:G?A.spacing.titlePaddingTop:A.spacing.titleIsolatedPadding,paddingBottom:G?0:A.spacing.titleIsolatedPadding,paddingHorizontal:G?A.spacing.paddingHorizontal:0,marginBottom:G?A.spacing.titleGap:0}],text:[S.title,{color:A.colors.title,fontFamily:A.typography.fontFamily,fontSize:A.typography.titleSize,lineHeight:A.typography.titleLineHeight,fontWeight:A.typography.titleWeight},E]}:null,[F,G,E,A]),le=(0,_react().useMemo)(()=>({text:[S.msg,{color:K?A.colors.title:A.colors.message,fontFamily:A.typography.fontFamily,fontSize:A.typography.messageSize,lineHeight:A.typography.messageLineHeight,textAlign:a},I],content:j?null:{alignItems:"center"===a?"center":"left"===a?"flex-start":"flex-end"},wrap:[S.msgWrap,{paddingTop:F?A.spacing.messagePaddingTop:A.spacing.messagePadding,paddingBottom:K?A.spacing.roundFooterPadding:A.spacing.messagePadding,paddingHorizontal:A.spacing.messagePaddingHorizontal}]}),[K,a,I,j,F,A]),ce=(0,_react().useMemo)(()=>({border:[S.footerBorder,(0,_hairline.createHairlineView)({position:"top",color:A.colors.divider,left:0,right:0,top:0})],round:[S.roundFooter,{paddingTop:A.spacing.messagePaddingTop,paddingHorizontal:A.spacing.messagePaddingHorizontal,paddingBottom:A.spacing.roundFooterPadding}]}),[A]),se=(0,_react().useMemo)(()=>{const e=l?(0,_validate.isNumber)(l)?{width:l}:{width:String(l)}:{width:"90%",maxWidth:A.sizes.maxWidth};return[{backgroundColor:A.colors.background,borderRadius:A.sizes.borderRadius,padding:0},e,D]},[l,D,A]),de=(0,_react().useCallback)(()=>{const e=Z.current.beforeClose;if(!e)return!0;try{return e("close")}catch{return!1}},[]),ue=(0,_react().useMemo)(()=>J&&_react().default.createElement(_reactNative().View,{style:ce.round},h&&_react().default.createElement(_reactNative().View,{style:[S.roundBtnWrap,C&&{marginRight:A.spacing.roundFooterGap}]},_react().default.createElement(_button.default,{block:!0,round:!0,type:"warning",text:X,color:k,loading:Q,disabled:x?.disabled,onPress:te,style:{minHeight:A.sizes.roundButtonHeight}})),C&&_react().default.createElement(_reactNative().View,{style:[S.roundBtnWrap,h&&{marginLeft:A.spacing.roundFooterGap}]},_react().default.createElement(_button.default,{block:!0,round:!0,type:"danger",text:Y,color:N,loading:U,disabled:B?.disabled,onPress:oe,style:{minHeight:A.sizes.roundButtonHeight}}))),[k,Q,x?.disabled,X,N,U,B?.disabled,Y,te,oe,J,ce.round,h,C,A.sizes.roundButtonHeight,A.spacing.roundFooterGap]),pe=(0,_react().useMemo)(()=>J&&_react().default.createElement(_reactNative().View,{style:S.footer},_react().default.createElement(_reactNative().View,{style:ce.border,pointerEvents:"none"}),h&&_react().default.createElement(_ActionButton.ActionButton,{tokens:A,text:X,color:k??A.colors.cancel,dividerPosition:"none",loading:Q,disabled:x?.disabled,onPress:te}),C&&_react().default.createElement(_ActionButton.ActionButton,{tokens:A,text:Y,color:N??A.colors.confirm,dividerPosition:h?"left":"none",loading:U,disabled:B?.disabled,onPress:oe})),[k,Q,x?.disabled,X,N,U,B?.disabled,Y,ce.border,te,oe,J,h,C,A]),ge=O??(K?ue:pe);return _react().default.createElement(_popup.default,_extends({visible:o,placement:"center",round:!0,overlay:d,overlayStyle:u,overlayTestID:p,closeOnBackPress:g,closeOnPopstate:f,closeOnClickOverlay:_||m,onClickOverlay:y,beforeClose:de,onClose:V,onClosed:R,contentAnimationStyle:ae,style:se,accessibilityRole:"android"===_reactNative().Platform.OS?"alert":"alertdialog",accessibilityLabel:"string"==typeof r?r:void 0},T),c&&_react().default.createElement(_reactNative().Pressable,{style:[S.closeIcon,{top:A.spacing.paddingTop/2,right:A.spacing.paddingHorizontal/2,padding:A.spacing.closeIconPadding}],hitSlop:{top:8,bottom:8,left:8,right:8},onPress:ee},s??_react().default.createElement(_reactNativeSystemIcon().Close,{size:A.sizes.closeSize,fill:A.colors.closeIcon,color:A.colors.closeIcon})),ie&&_react().default.createElement(_reactNative().View,{style:ie.wrap},(0,_utils.renderTextOrNode)(r,ie.text)),G&&_react().default.createElement(_reactNative().View,{style:[S.content,le.content,q]},j?H:_react().default.createElement(_reactNative().View,{style:le.wrap},(0,_utils.renderTextOrNode)(n,le.text))),ge)},S=_reactNative().StyleSheet.create({titleWrap:{alignItems:"center"},title:{textAlign:"center"},content:{width:"100%"},msg:{textAlign:"center"},footer:{flexDirection:"row",position:"relative"},footerBorder:{position:"absolute",top:0,left:0,right:0,height:0},msgWrap:{width:"100%"},roundFooter:{width:"100%",flexDirection:"row"},roundBtnWrap:{flex:1},closeIcon:{position:"absolute",zIndex:1}}),Dialog=exports.Dialog=_react().default.memo(DialogImpl);Dialog.displayName="Dialog";var _default=exports.default=Dialog;
@@ -1 +1 @@
1
- "use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.__DIALOG_STORE__=exports.DialogImperative=void 0;var _Portal=require("../portal/Portal"),_utils=require("../../utils"),_Dialog=_interopRequireDefault(require("./Dialog"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,o=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,a,s={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return s;if(n=t?o:r){if(n.has(e))return n.get(e);n.set(e,s)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?n(s,t,a):s[t]=e[t]);return s})(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 o in r)({}).hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},_extends.apply(null,arguments)}const runHook=async e=>{if(!e)return!0;try{return!1!==await e()}catch(e){return console.error(e),!0}},registry=new Map,defaults={default:{},show:{},alert:{},confirm:{}},requestClose=e=>{const t=registry.get(e);t?t.close?t.close():(_Portal.Portal.remove(e),registry.delete(e)):_Portal.Portal.remove(e)},DialogPortalInstance=({options:e,meta:t,portalKeyRef:r})=>{const[o,n]=(0,_react().useState)(!0),a=(0,_react().useCallback)(()=>{n(!1)},[]);(0,_react().useEffect)(()=>{if(!r.current)return;const e=registry.get(r.current);return e&&(e.close=a),()=>{const e=registry.get(r.current??-1);e&&e.close===a&&(e.close=void 0)}},[a,r]),(0,_react().useEffect)(()=>()=>{r.current&&registry.delete(r.current)},[r]);const s=(0,_react().useCallback)(async(r,o)=>{await runHook(()=>e.beforeClose?.(r))&&await runHook(o)&&(("confirm"===r&&"alert"===t.mode||"confirm"===t.mode)&&t.resolve?.("confirm"===r),a())},[a,t,e.beforeClose]),l=(0,_react().useCallback)(()=>{e.onClosed?.(),r.current&&(_Portal.Portal.remove(r.current),registry.delete(r.current))},[e,r]);return _react().default.createElement(_Dialog.default,_extends({},e,{visible:o,onCancel:e.showCancelButton?()=>s("cancel",e.onCancel):e.onCancel,onConfirm:()=>s("confirm",e.onConfirm),onClose:()=>s("close",e.onClose),onClosed:l}))},mount=(e,t)=>{const r={current:0},o=_react().default.createElement(DialogPortalInstance,{options:e,meta:t,portalKeyRef:r}),n=_Portal.Portal.add(o);return r.current=n,registry.set(n,{key:n,options:e,meta:t}),()=>requestClose(n)},normalize=(e,t={})=>{const r={...(0,_utils.deepMerge)((0,_utils.deepMerge)(defaults.default,defaults[e]),t),visible:!0};return(0,_utils.isUndefined)(r.showConfirmButton)&&(r.showConfirmButton=!0),r},setDefaultOptions=(e,t)=>{(0,_utils.isString)(e)?defaults[e]=(0,_utils.deepMerge)(defaults[e],t??{}):defaults.default=(0,_utils.deepMerge)(defaults.default,e)},resetDefaultOptions=e=>{e?defaults[e]={}:(defaults.default={},defaults.show={},defaults.alert={},defaults.confirm={})},DialogImperative=exports.DialogImperative={show:e=>mount(normalize("show",e),{mode:"show"}),alert:e=>new Promise(t=>{mount(normalize("alert",{...e,showCancelButton:!1}),{mode:"alert",resolve:t})}),confirm:e=>new Promise(t=>{mount(normalize("confirm",{showCancelButton:!0,...e}),{mode:"confirm",resolve:e=>t(void 0===e||e)})}),clear:()=>{registry.forEach((e,t)=>requestClose(t))},setDefaultOptions:setDefaultOptions,resetDefaultOptions:resetDefaultOptions},__DIALOG_STORE__=exports.__DIALOG_STORE__={getItems:()=>Array.from(registry.values()).map(({key:e,options:t,meta:r})=>({key:e,options:t,meta:r})),close:requestClose};
1
+ "use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.__DIALOG_STORE__=exports.DialogImperative=void 0;var _Portal=require("../portal/Portal"),_utils=require("../../utils"),_Dialog=_interopRequireDefault(require("./Dialog"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,o=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,a,s={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return s;if(n=t?o:r){if(n.has(e))return n.get(e);n.set(e,s)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?n(s,t,a):s[t]=e[t]);return s})(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 o in r)({}).hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},_extends.apply(null,arguments)}const runHook=async e=>{if(!e)return!0;try{return!1!==await e()}catch(e){return console.error(e),!1}},registry=new Map,defaults={default:{},show:{},alert:{},confirm:{}},requestClose=e=>{const t=registry.get(e);t?t.close?t.close():(_Portal.Portal.remove(e),registry.delete(e)):_Portal.Portal.remove(e)},DialogPortalInstance=({options:e,meta:t,portalKeyRef:r})=>{const[o,n]=(0,_react().useState)(!0),a=(0,_react().useCallback)(()=>{n(!1)},[]);(0,_react().useEffect)(()=>{if(!r.current)return;const e=registry.get(r.current);return e&&(e.close=a),()=>{const e=registry.get(r.current??-1);e&&e.close===a&&(e.close=void 0)}},[a,r]),(0,_react().useEffect)(()=>()=>{r.current&&registry.delete(r.current)},[r]);const s=(0,_react().useCallback)(async(r,o)=>{await runHook(()=>e.beforeClose?.(r))&&await runHook(o)&&(("confirm"===r&&"alert"===t.mode||"confirm"===t.mode)&&t.resolve?.("confirm"===r),a())},[a,t,e.beforeClose]),l=(0,_react().useCallback)(()=>{e.onClosed?.(),r.current&&(_Portal.Portal.remove(r.current),registry.delete(r.current))},[e,r]);return _react().default.createElement(_Dialog.default,_extends({},e,{visible:o,onCancel:e.showCancelButton?()=>s("cancel",e.onCancel):e.onCancel,onConfirm:()=>s("confirm",e.onConfirm),onClose:()=>s("close",e.onClose),onClosed:l}))},mount=(e,t)=>{const r={current:0},o=_react().default.createElement(DialogPortalInstance,{options:e,meta:t,portalKeyRef:r}),n=_Portal.Portal.add(o);return r.current=n,registry.set(n,{key:n,options:e,meta:t}),()=>requestClose(n)},normalize=(e,t={})=>{const r={...(0,_utils.deepMerge)((0,_utils.deepMerge)(defaults.default,defaults[e]),t),visible:!0};return(0,_utils.isUndefined)(r.showConfirmButton)&&(r.showConfirmButton=!0),r},setDefaultOptions=(e,t)=>{(0,_utils.isString)(e)?defaults[e]=(0,_utils.deepMerge)(defaults[e],t??{}):defaults.default=(0,_utils.deepMerge)(defaults.default,e)},resetDefaultOptions=e=>{e?defaults[e]={}:(defaults.default={},defaults.show={},defaults.alert={},defaults.confirm={})},DialogImperative=exports.DialogImperative={show:e=>mount(normalize("show",e),{mode:"show"}),alert:e=>new Promise(t=>{mount(normalize("alert",{...e,showCancelButton:!1}),{mode:"alert",resolve:t})}),confirm:e=>new Promise(t=>{mount(normalize("confirm",{showCancelButton:!0,...e}),{mode:"confirm",resolve:e=>t(void 0===e||e)})}),clear:()=>{registry.forEach((e,t)=>requestClose(t))},setDefaultOptions:setDefaultOptions,resetDefaultOptions:resetDefaultOptions},__DIALOG_STORE__=exports.__DIALOG_STORE__={getItems:()=>Array.from(registry.values()).map(({key:e,options:t,meta:r})=>({key:e,options:t,meta:r})),close:requestClose};
@@ -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 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
+ "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"),_renderers=require("../../hooks/field/renderers");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)}const 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",errorMessagePosition:m="inner",disabled:v=!1,readOnly:y=!1,clearable:b=!1,clearTrigger:h,clearIcon:x,leftIcon:R,rightIcon:w,prefix:S,suffix:T,button:k,extra:M,value:I,defaultValue:N="",type:C="text",rows:z,autoSize:F=!1,formatter:E,formatTrigger:P,showWordLimit:L=!1,onOverlimit:O,onClear:q,onClick:D,onClickInput:A,onClickLeftIcon:H,onClickRightIcon:W,border:B,center:G,clickable:V,isLink:j,arrowDirection:$,size:K,titleStyle:Q,contentStyle:J,inputStyle:U,labelStyle:X,introStyle:Y,errorMessageStyle:Z,style:ee,androidRipple:te,children:re,placeholderTextColor:ae,onFocus:ie,onBlur:le,onPressIn:ne,onChangeText:oe,maxLength:ce,...se}=e,ue=(0,_tokens.useFieldTokens)(r),de=i??ue.defaults.labelWidth,fe=l??ue.defaults.labelAlign,_e=n??ue.defaults.inputAlign,ge=o??ue.defaults.controlAlign,pe=h??ue.defaults.clearTrigger,me=z??ue.defaults.rows,ve=P??ue.defaults.formatTrigger,ye=[{width:de,minWidth:de,maxWidth:de,flexBasis:de,marginRight:ue.spacing.labelGap,flexShrink:0,flexGrow:0},Q],be=T??k,he=u??d,xe=ae??(v?ue.colors.disabled:ue.colors.placeholder),Re="textarea"===C,we=void 0!==I,[Se,Te]=(0,_react().useState)(N),ke=we?I??"":Se,[Me,Ie]=(0,_react().useState)(!1),[Ne,Ce]=(0,_react().useState)(!1),ze=(0,_react().useRef)(!1),Fe=(0,_react().useRef)(null),Ee=(0,_react().useId)(),Pe=(0,_react().useId)(),Le=(0,_react().useMemo)(()=>{const e=[(0,_validate.isRenderable)(g)?Pe:null,(0,_validate.isRenderable)(he)?Ee:null].filter(Boolean);return e.length?e:void 0},[Pe,g,Ee,he]),Oe=ue.defaults.textareaLineHeight,qe=F&&(0,_validate.isObject)(F)?F:void 0,De=Re?qe&&(0,_validate.isDef)(qe.minRows)?Math.max(1,qe.minRows):Math.max(1,me):1,Ae=Re&&qe&&(0,_validate.isDef)(qe.maxRows)?Math.max(1,qe.maxRows):void 0,He=(0,_react().useMemo)(()=>Re?Math.max(ue.sizes.textareaMinHeight,De*Oe):void 0,[Re,Oe,De,ue.sizes.textareaMinHeight]),We=(0,_react().useMemo)(()=>Re&&Ae?Math.max(ue.sizes.textareaMinHeight,Ae*Oe):void 0,[Re,Oe,Ae,ue.sizes.textareaMinHeight]),[Be,Ge]=(0,_react().useState)(He),Ve=(0,_react().useRef)(oe);Ve.current=oe;const je=(0,_react().useRef)(O);je.current=O;const $e=(0,_react().useRef)(ie);$e.current=ie;const Ke=(0,_react().useRef)(le);Ke.current=le;const Qe=(0,_react().useRef)(ne);Qe.current=ne;const Je=(0,_react().useRef)(A);Je.current=A;const Ue=(0,_react().useRef)(q);Ue.current=q;const Xe=(0,_react().useCallback)((e,t="onChange")=>E&&t===ve?E(e):e,[ve,E]),Ye=(0,_react().useCallback)((e,t="onChange")=>{const r=Xe(e,t);we||Te(r),Ve.current?.(r)},[Xe,we]);(0,_react().useImperativeHandle)(t,()=>({focus:()=>Fe.current?.focus(),blur:()=>Fe.current?.blur(),clear:()=>Ye(""),get nativeElement(){return Fe.current}}));const Ze="left"!==ge?ge:_e,et=b&&!y&&""!==(ke??"")&&("always"===pe||"focus"===pe&&(Me||Ne)),tt=(0,_react().useCallback)(e=>{let t=e??"";if("number"===C||"digit"===C){const e="number"===C;t=(0,_string.formatNumberInput)(t,e,e)}(0,_validate.isFiniteNumber)(ce)&&ce>=0&&t.length>ce&&(je.current?.(t),t=t.slice(0,ce)),Ye(t,"onChange")},[ce,C,Ye]),rt=(0,_react().useCallback)(e=>{Ie(!0),$e.current?.(e),y&&Fe.current?.blur()},[y]),at=(0,_react().useCallback)(e=>{if("web"!==_reactNative().Platform.OS&&ze.current)return ze.current=!1,Ie(!1),void Ke.current?.(e);Ye(ke??"","onBlur"),Ie(!1),Ke.current?.(e)},[Ye,ke]),it=(0,_react().useCallback)(e=>{Qe.current?.(e),Je.current?.()},[]),lt=(0,_react().useCallback)(e=>{if(!Re)return;const t=e.nativeEvent.contentSize?.height??0;if(!t)return;let r=t;F?(r=Math.max(He??t,t),We&&(r=Math.min(r,We))):He&&(r=Math.max(He,t)),Ge(r)},[F,Re,We,He]),nt=(0,_react().useCallback)(()=>{"web"!==_reactNative().Platform.OS&&(ze.current=!0),Ye(""),Fe.current?.clear?.(),Fe.current?.focus?.(),Ue.current?.()},[Ye]),ot=(0,_react().useCallback)(()=>{Ce(!0),"web"!==_reactNative().Platform.OS&&nt()},[nt]),ct=(0,_react().useCallback)(()=>{Ce(!1),ze.current=!1},[]),st=(0,_validate.isRenderable)(re)?_react().default.createElement(_reactNative().View,{style:[ue.layout.children,{minHeight:ue.sizes.controlMinHeight}]},re):_react().default.createElement(_renderers.FieldInput,{inputRef:Fe,tokens:ue,isTextarea:Re,disabled:v,error:_,finalTextAlign:Ze,lineHeight:Oe,textareaHeight:Be,minHeight:He,inputStyle:U,value:ke??"",onChangeText:tt,onFocus:rt,onBlur:at,onPressIn:it,rows:me,keyboardType:se.keyboardType??(0,_renderers.mapKeyboardType)(C),placeholderTextColor:xe,onContentSizeChange:lt,describedBy:Le,secureTextEntry:"password"===C,editable:!v&&!y,restInputProps:se}),ut=[{width:"100%",justifyContent:_renderers.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}),{icon:t,dialogProps:r}=(0,_renderers.resolveTooltipDialog)(f,e);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:v?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=L&&null!=ce?(()=>{const e=(ke??"").length,t=(0,_validate.isFunction)(L)?L({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:Pe,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:Pe,style:[ue.layout.message,{alignSelf:_renderers.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:Ee,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:Ee,style:{marginTop:ue.spacing.introMarginTop}},he):null,vt=S?_react().default.createElement(_reactNative().View,{style:[ue.layout.prefix,{paddingRight:ue.spacing.prefixGap}]},dt(S)):null,yt=be?_react().default.createElement(_reactNative().View,{style:[ue.layout.suffix,{paddingLeft:ue.spacing.suffixGap}]},dt(be)):null,bt=R?_react().default.createElement(_renderers.FieldSlot,{onPress:H,style:[ue.layout.leftIcon,{marginRight:ue.spacing.leftIconGap,minWidth:ue.sizes.icon}]},R):null,ht=w?_react().default.createElement(_renderers.FieldSlot,{onPress:W,style:[ue.layout.rightIcon,{paddingHorizontal:ue.spacing.rightIconGap}]},w):null,xt=et?_react().default.createElement(_renderers.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,Rt="outer"===m,wt=_react().default.createElement(_cell.default,{title:_t,icon:void 0,required:c,border:B,center:G,size:K,clickable:V,isLink:j,arrowDirection:$,extra:M,titleStyle:ye,style:[ee,Rt&&(_||(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:D,android_ripple:te},_react().default.createElement(_renderers.FieldControlRow,{tokens:ue,prefixNode:vt,leftIconNode:bt,controlNode:st,clearNode:xt,rightIconNode:ht,suffixNode:yt}),gt,Rt?null:pt,mt);return Rt&&pt?_react().default.createElement(_react().default.Fragment,null,wt,pt):wt},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;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
+ "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.FormSubscribe=exports.FormContext=exports.FORM_ALL_FIELDS_KEY=void 0,Object.defineProperty(exports,"getValueByName",{enumerable:!0,get:function(){return _utils2.getValueByName}}),Object.defineProperty(exports,"normalizeTrigger",{enumerable:!0,get:function(){return _utils2.normalizeTrigger}}),Object.defineProperty(exports,"serializeNamePath",{enumerable:!0,get:function(){return _utils2.serializeNamePath}}),Object.defineProperty(exports,"setValueByName",{enumerable:!0,get:function(){return _utils2.setValueByName}}),Object.defineProperty(exports,"toNamePath",{enumerable:!0,get:function(){return _utils2.toNamePath}}),exports.useWatch=void 0;var _utils=require("../../utils"),_promise=require("../../utils/promise"),_validate=require("../../utils/validate"),_useLocale=require("../config-provider/useLocale"),_utils2=require("../../hooks/form/utils");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,u,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(n=t?a:r){if(n.has(e))return n.get(e);n.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((u=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(u.get||u.set)?n(i,t,u):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 r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},_extends.apply(null,arguments)}const FORM_ALL_FIELDS_KEY=exports.FORM_ALL_FIELDS_KEY="__form_all__",FormContext=exports.FormContext=_react().default.createContext(null),InternalFormImpl=(e,t)=>{const{initialValues:r,colon:a,labelWidth:n,showValidateMessage:u=!0,onValuesChange:i,onFinish:c,style:s,footer:l,children:o,..._}=e,f=(0,_useLocale.useLocale)(),d=(0,_react().useRef)({}),m=(0,_react().useRef)({}),g=(0,_react().useRef)(r??d.current),p=(0,_react().useRef)({}),b=(0,_react().useRef)(new Map),h=(0,_react().useRef)(r??d.current),F=(0,_react().useRef)({}),y=(0,_react().useRef)(new Set),v=(0,_react().useRef)(i),N=(0,_react().useRef)(c);v.current=i,N.current=c;const V=r??d.current,[,x]=(0,_react().useState)(0),P=(0,_react().useCallback)((e,t)=>{y.current.forEach(r=>r(e,t))},[]);(0,_react().useEffect)(()=>{(0,_utils.deepEqualObject)(g.current,V)||(g.current=V,h.current=V,m.current={},x(e=>e+1),P({[FORM_ALL_FIELDS_KEY]:!0},V))},[V,P]);const E=(0,_react().useCallback)((e,t)=>{const r=(0,_utils2.serializeNamePath)(e),a=m.current[r];if(!t.length){if(!a)return;const t={...m.current};return delete t[r],m.current=t,void P({[r]:(0,_utils2.getValueByName)(h.current,e)},h.current)}a?.[0]===t[0]&&a.length===t.length||(m.current={...m.current,[r]:t},P({[r]:(0,_utils2.getValueByName)(h.current,e)},h.current))},[P]),L=(0,_react().useCallback)((e,t)=>{const r=(0,_utils2.serializeNamePath)(e),a=p.current[r];if(a?.dependencies?.length)for(const e of a.dependencies){const t=(0,_utils2.serializeNamePath)(e),a=b.current.get(t);a&&(a.delete(r),a.size||b.current.delete(t))}if(p.current[r]={...t,name:e},t.dependencies?.length)for(const e of t.dependencies){const t=(0,_utils2.serializeNamePath)(e),a=b.current.get(t);a?a.add(r):b.current.set(t,new Set([r]))}if(void 0!==t.initialValue){void 0===(0,_utils2.getValueByName)(g.current,e)&&(g.current=(0,_utils2.setValueByName)(g.current,e,t.initialValue));if(void 0===(0,_utils2.getValueByName)(h.current,e)){const a=(0,_utils2.setValueByName)(h.current,e,t.initialValue);h.current=a,P({[r]:t.initialValue},a)}}return()=>{const t=p.current[r];if(delete p.current[r],t?.dependencies?.length)for(const e of t.dependencies){const t=(0,_utils2.serializeNamePath)(e),a=b.current.get(t);a&&(a.delete(r),a.size||b.current.delete(t))}E(e,[])}},[P,E]),O=(0,_react().useRef)(f);O.current=f;const R=(0,_react().useCallback)(async(e,t,r,a)=>{const n=(0,_utils2.serializeNamePath)(e),u=(F.current[n]??0)+1;F.current[n]=u;const i=p.current[n],c=i?.rules??[];if(!c.length)return E(e,[]),!0;const s=t?c.filter(e=>{const r=e.validateTrigger??i.validateTrigger;return!r||(0,_utils2.normalizeTrigger)(r).includes(t)}):c;if(!s.length)return m.current[n]?.length&&E(e,[]),!0;const l=a??h.current,o=r??(0,_utils2.getValueByName)(l,e),_=O.current?.vanForm?.validationFailed;for(const t of s){const r=(0,_utils2.runRuleValidation)(t,o,l,_),a=(0,_promise.isPromiseLike)(r)?await r:r;if(F.current[n]!==u)return!0;if(a)return E(e,[a]),!1}return F.current[n]!==u||E(e,[]),!0},[E]),B=(0,_react().useCallback)(async e=>{const t=e??Object.values(p.current).map(e=>e.name);if((await Promise.all(t.map(e=>R(e)))).some(e=>!e))throw m.current;return h.current},[R]),z=(0,_react().useCallback)((e,t,r,a,n)=>{R(t,r,a,n);const u=b.current.get(e);if(u?.size)for(const e of u){const t=p.current[e];t&&R(t.name,r,(0,_utils2.getValueByName)(n,t.name),n)}},[R]),C=(0,_react().useCallback)((e,t,r)=>{const a=(0,_utils2.serializeNamePath)(e),n=h.current;if((0,_utils2.getValueByName)(n,e)===t)return;const u=(0,_utils2.setValueByName)(n,e,t);h.current=u,v.current?.(u,a,t),z(a,e,r,t,u),P({[a]:t},u)},[P,z]),M=(0,_react().useMemo)(()=>({submit:async()=>{try{const e=await B();return N.current?.(e),e}catch{return}},getFieldsValue:()=>h.current,setFieldsValue:(e,t)=>{const r=t?.validate??!1,a=h.current;let n=a;const u={};Object.keys(e).forEach(t=>{const a=e[t];(0,_utils2.getValueByName)(n,t)!==a&&(u[t]=a,n=(0,_utils2.setValueByName)(n,t,a),v.current?.(n,t,a),r&&z(t,t,void 0,a,n))}),n!==a&&(h.current=n,P(u,n))},resetFields:()=>{let e=g.current;Object.values(p.current).forEach(t=>{void 0!==t.initialValue&&void 0===(0,_utils2.getValueByName)(e,t.name)&&(e=(0,_utils2.setValueByName)(e,t.name,t.initialValue))}),g.current=e,h.current=e,m.current={},P({[FORM_ALL_FIELDS_KEY]:!0},e)},validateFields:B,getFieldError:e=>m.current[(0,_utils2.serializeNamePath)(e)]??[]}),[B,z,P]);(0,_react().useImperativeHandle)(t,()=>M,[M]);const j=(0,_react().useMemo)(()=>({getFieldValue:e=>(0,_utils2.getValueByName)(h.current,e),setFieldValue:C,registerField:L,getFieldError:e=>m.current[(0,_utils2.serializeNamePath)(e)],validateField:(e,t)=>R(e,t),getFieldsValue:()=>h.current,subscribe:e=>(y.current.add(e),()=>y.current.delete(e)),form:M,colon:a,labelWidth:n,showValidateMessage:u}),[C,L,R,M,a,n,u]);return _react().default.createElement(FormContext.Provider,{value:j},_react().default.createElement(_reactNative().View,_extends({style:s},_),o,(0,_validate.isText)(l)?(0,_utils.renderTextOrNode)(l,[]):l))},InternalFormRef=_react().default.forwardRef(InternalFormImpl),InternalForm=_react().default.memo(InternalFormRef),useWatch=(e,t)=>{const r=(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??r?.getFieldsValue?.()??t?.current?.getFieldsValue?.()??{};if(!a)return n;if(1===a.length)return(0,_utils2.getValueByName)(n,a[0]);const u={};for(const e of a)u[(0,_utils2.serializeNamePath)(e)]=(0,_utils2.getValueByName)(n,e);return u},[r,t,a]),[u,i]=(0,_react().useState)(()=>n());return(0,_react().useEffect)(()=>{if(r?.subscribe)return r.subscribe((e,t)=>{FORM_ALL_FIELDS_KEY in e?i(n(t)):a&&!a.some(t=>(0,_utils2.serializeNamePath)(t)in e)||i(n(t))})},[r,n,a]),(0,_react().useEffect)(()=>{i(n())},[n]),u};exports.useWatch=useWatch;const FormSubscribe=({to:e,children:t})=>{const r=(0,_react().useContext)(FormContext),[a,n]=(0,_react().useState)({});return(0,_react().useEffect)(()=>{if(r?.subscribe)return r.subscribe(t=>{(!e||FORM_ALL_FIELDS_KEY in t||Object.keys(t).some(t=>e.includes(t)))&&n(t)})},[r,e]),_react().default.createElement(_react().default.Fragment,null,t(a,r?.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=void 0;var _hooks=require("../../hooks"),_platform=require("../../platform"),_animation=require("../../hooks/animation"),_createPlatformShadow=require("../../utils/createPlatformShadow"),_number=require("../../utils/number"),_utils=require("../../utils"),_loading=_interopRequireDefault(require("../loading")),_Portal=_interopRequireDefault(require("../portal/Portal")),_useLocale=require("../config-provider/useLocale"),_safeAreaView=require("../safe-area-view"),_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,o,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(n=t?a:r){if(n.has(e))return n.get(e);n.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((o=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(o.get||o.set)?n(i,t,o):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 r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},_extends.apply(null,arguments)}const registry=new Set,NUM_KEYS=["1","2","3","4","5","6","7","8","9"],ZERO="0",RE_NUM_LIKE=/^\d+$|^\.$|^x$/i,shuffle=e=>{const t=[...e];for(let e=t.length-1;e>0;e--){const r=Math.floor(Math.random()*(e+1));[t[e],t[r]]=[t[r],t[e]]}return t},NumberKeyboard=_react().default.memo(e=>{const{visible:t,title:r,tokensOverride:a,theme:n="default",extraKey:o,randomKeyOrder:i,showDeleteKey:l=!0,closeButtonText:c,deleteButtonText:u,closeButtonLoading:s,onChange:d,onInput:f,onDelete:_,onClose:y,onBlur:p,onHide:g,onShow:m,value:x,defaultValue:h,maxlength:v,blurOnClose:b=!0,safeAreaInsetBottom:k=!0,transition:w=!0,transitionDuration:N=300,numberKeyRender:E,deleteRender:R,extraKeyRender:z,style:A,...M}=e,P=(0,_useLocale.useLocale)(),B=(0,_animation.useReducedMotion)(),q=(0,_tokens.useNumberKeyboardTokens)(a),{colors:F,radii:T,shadow:V,sizing:C,spacing:D,typography:O}=q,[K,H]=(0,_hooks.useControllableValue)(e,{defaultValue:"",valuePropName:"value",defaultValuePropName:"defaultValue",trigger:"onChange"}),L=K??"",W=(()=>{const e=(0,_number.parseNumberLike)(v,void 0);return null!=e&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0})(),I=(0,_react().useRef)(L),$=(0,_react().useRef)(W),j=(0,_react().useRef)(y),G=(0,_react().useRef)(p),U=(0,_react().useRef)(m),Y=(0,_react().useRef)(g),Z=(0,_react().useRef)(_),J=(0,_react().useRef)(f);I.current=L,$.current=W,j.current=y,G.current=p,U.current=m,Y.current=g,Z.current=_,J.current=f;const Q="custom"===n,X=P?.vanNumberKeyboard?.close??"Done",ee=Q?c??X:c,te=(0,_react().useCallback)(()=>{j.current?.(),b&&G.current?.()},[b]),re=(0,_react().useRef)(t);(0,_react().useEffect)(()=>{t&&!re.current&&U.current?.(),!t&&re.current&&Y.current?.(),re.current=t},[t]),(0,_react().useEffect)(()=>(t?(registry.add(te),registry.forEach(e=>{e!==te&&e()})):registry.delete(te),()=>{registry.delete(te)}),[t,te]);const ae=(0,_react().useMemo)(()=>{const e=(i&&t?shuffle(NUM_KEYS):NUM_KEYS).map(e=>({text:e,type:""}));if(Q){const t=Array.isArray(o)?o:o?[o]:[];return 1===t.length?e.push({text:"0",type:"",wider:!0},{text:t[0],type:"extra"}):t.length>=2?e.push({text:t[0],type:"extra"},{text:"0",type:""},{text:t[1],type:"extra"}):e.push({text:"0",type:""}),e}const r=Array.isArray(o)?o[0]??"":o??"";return e.push({text:r,type:"extra"},{text:"0",type:""},{type:l?"delete":"",text:l?void 0:""}),e},[o,Q,i,l,t]),ne=(0,_react().useCallback)((e,t)=>{if("delete"===t){const e=I.current;if(!e)return;return Z.current?.(),void H(e.slice(0,-1))}if("close"===t||"extra"===t&&!e)return void te();if(!e)return;const r=I.current,a=$.current;void 0!==a&&r.length>=a||(J.current?.(e),H(`${r}${e}`))},[te,H]),oe=(0,_react().useMemo)(()=>(0,_createPlatformShadow.createPlatformShadow)(V),[V.color,V.elevation,V.offsetY,V.opacity,V.radius]),ie=(0,_react().useCallback)((e,t,r=!1,a=!1,n)=>{const o=e.type,i=""===o&&!e.text,l=i||r&&s,c=l?void 0:()=>ne(e.text,o),d=r?F.closeBackground:F.keyBackground,f=r?F.closeActiveBackground:F.keyActiveBackground,_=r?F.closeText:F.keyText,y=r?F.closeText:F.keyTextActive,p=n??(r?C.closeHeight:C.keyHeight),g=C.auxFontSize??Math.round(.64*C.fontSize),m=C.defaultIconFontSize??C.fontSize,x=e.text??"",h="delete"===o?R?.()??u??"⌫":"extra"===o?z?z(x):x||"⌨︎":"close"===o?ee??X:E?E(x):x,v="delete"===o&&null==R&&null==u||"extra"===o&&!z&&!x,b="extra"===o&&"string"==typeof h&&RE_NUM_LIKE.test(h),k=""===o?C.fontSize:v?m:b?C.fontSize:g;return _react().default.createElement(_reactNative().Pressable,{key:`${o}-${t}-${e.text??t}`,onPress:c,disabled:l,style:[{opacity:i?1:l?.6:1},a?{width:"100%",flexBasis:"auto",flexGrow:0,alignSelf:"stretch"}:{flexBasis:0,flexGrow:e.wider?2:1,flexShrink:1,minWidth:0}],accessible:!i,accessibilityRole:i?void 0:"button",accessibilityLabel:i?void 0:"delete"===o?"delete":"close"===o?ee??"close":"extra"===o?x||"collapse":x,accessibilityState:i?void 0:{disabled:!!l},accessibilityElementsHidden:i,importantForAccessibility:i?"no-hide-descendants":void 0},({pressed:e})=>{const t=e&&!l,a=l?F.keyBackground:t?f:d,n=t?y:_;return _react().default.createElement(_reactNative().View,{style:[S.k,{height:p,backgroundColor:a,borderRadius:T.key}]},r&&s?_react().default.createElement(_loading.default,{size:18,color:n}):(0,_utils.isRenderable)(h)?(0,_utils.renderTextOrNode)(h,[S.kTxt,{color:n,fontFamily:O.fontFamily,fontSize:k}]):null)})},[s,F.closeActiveBackground,F.closeBackground,F.closeText,F.keyActiveBackground,F.keyBackground,F.keyText,F.keyTextActive,X,u,R,z,ne,E,T.key,C.auxFontSize,C.closeHeight,C.defaultIconFontSize,C.fontSize,C.keyHeight,O.fontFamily,ee]),le=(0,_react().useRef)(new(_reactNative().Animated.Value)(t?1:0)).current,ce=(0,_react().useRef)(null),ue=(0,_react().useRef)(0),[se,de]=(0,_react().useState)(0),[fe,_e]=(0,_react().useState)(t),ye=B||!1===w?0:N;(0,_react().useEffect)(()=>{ue.current+=1;const e=ue.current;t&&_e(!0),ce.current?.stop();const r=_reactNative().Animated.timing(le,{toValue:t?1:0,duration:ye,useNativeDriver:_platform.nativeDriverEnabled,easing:t?_reactNative().Easing.out(_reactNative().Easing.cubic):_reactNative().Easing.in(_reactNative().Easing.cubic),isInteraction:!1});return ce.current=r,r.start(({finished:r})=>{r&&!t&&ue.current===e&&_e(!1)}),()=>{ce.current?.stop(),ce.current=null}},[le,t,ye]);const pe=le.interpolate({inputRange:[0,1],outputRange:[se||320,0]}),ge=(0,_react().useCallback)(e=>{const{height:t}=e.nativeEvent.layout;de(e=>Math.abs(t-e)>.5?t:e)},[]),me=!Q&&(r||c),xe=2*C.keyHeight+D.keyGap,he=(0,_react().useMemo)(()=>{const e=D.keyGap,t=D.paddingHorizontal,a={paddingHorizontal:D.titlePadding},n=[S.dRow,{flexDirection:"column",flexWrap:"nowrap",paddingHorizontal:t,paddingTop:e,paddingBottom:e,gap:e}],o={flexDirection:"row",gap:e},i=[S.cRow,{paddingHorizontal:t,paddingTop:me?0:e,paddingBottom:e,width:"100%"}],c=[S.cMat,{flexDirection:"column",flexWrap:"nowrap",gap:e}],u=[S.cSide,{gap:e,marginLeft:e}],s=ae.map((e,t)=>({key:e,index:t})),d=[];for(let e=0;e<s.length;e+=3)d.push(s.slice(e,e+3));const f=_react().default.createElement(_reactNative().View,{style:n},d.map((e,t)=>_react().default.createElement(_reactNative().View,{key:`l-${t}`,style:o},e.map(e=>ie(e.key,e.index))))),_=[];for(let e=0;e<9&&e<s.length;e+=3)_.push(s.slice(e,e+3));const y=s.slice(9);1===y.length?_.push([{key:{type:""},index:1000001},y[0],{key:{type:""},index:1000002}]):y.length&&_.push(y);const p=_react().default.createElement(_reactNative().View,{style:c},_.map((e,t)=>_react().default.createElement(_reactNative().View,{key:`cl-${t}`,style:o},e.map(e=>ie(e.key,e.index))))),g=l&&ie({type:"delete"},999,!1,!0,xe),m=ie({type:"close"},1e3,!0,!0,xe),x={color:F.title,fontFamily:O.fontFamily,fontSize:C.titleFontSize},h={color:F.title,fontFamily:O.fontFamily,fontSize:C.auxFontSize??Math.round(.64*C.fontSize)};return{headerNode:me?_react().default.createElement(_reactNative().View,{style:[S.hdr,a]},_react().default.createElement(_reactNative().Text,{style:[S.tBold,S.tCenter,x],numberOfLines:1},r),ee&&_react().default.createElement(_reactNative().Pressable,{onPress:te,style:S.hdrClose,accessibilityRole:"button",accessibilityLabel:ee},_react().default.createElement(_reactNative().Text,{style:h},ee))):null,bodyNode:Q?_react().default.createElement(_reactNative().View,{style:i},p,_react().default.createElement(_reactNative().View,{style:u},g,m)):f,safeAreaNode:k&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"bottom"})}},[te,F.title,xe,me,Q,ae,ie,ee,k,C.auxFontSize,C.fontSize,C.titleFontSize,D.keyGap,D.paddingHorizontal,D.titlePadding,O.fontFamily,r,l]);return fe||t?_react().default.createElement(_Portal.default,null,_react().default.createElement(_reactNative().Animated.View,_extends({},M,{pointerEvents:t?"auto":"none",renderToHardwareTextureAndroid:!0,shouldRasterizeIOS:!0,onLayout:ge,style:[S.wrap,oe,A,{transform:[{translateY:pe}],backgroundColor:F.background}]}),he.headerNode,he.bodyNode,he.safeAreaNode)):null}),S=_reactNative().StyleSheet.create({wrap:{position:"absolute",left:0,right:0,bottom:0},hdr:{flexDirection:"row",alignItems:"center",justifyContent:"flex-end",height:44,position:"relative"},tBold:{fontWeight:"600"},tCenter:{position:"absolute",left:12,right:12,textAlign:"center"},hdrClose:{minWidth:56,alignItems:"flex-end"},k:{justifyContent:"center",alignItems:"center"},kTxt:{includeFontPadding:!1,textAlign:"center"},dRow:{flexDirection:"row",flexWrap:"wrap"},cRow:{flexDirection:"row"},cMat:{flex:3,flexDirection:"row",flexWrap:"wrap"},cSide:{flex:1,flexDirection:"column",justifyContent:"flex-start"}});var _default=exports.default=NumberKeyboard;
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=void 0;var _hooks=require("../../hooks"),_platform=require("../../platform"),_animation=require("../../hooks/animation"),_createPlatformShadow=require("../../utils/createPlatformShadow"),_number=require("../../utils/number"),_utils=require("../../utils"),_loading=_interopRequireDefault(require("../loading")),_Portal=_interopRequireDefault(require("../portal/Portal")),_useLocale=require("../config-provider/useLocale"),_safeAreaView=require("../safe-area-view"),_tokens=require("./tokens"),_utils2=require("../../hooks/number-keyboard/utils");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 registry=new Set,NumberKeyboard=_react().default.memo(e=>{const{visible:t,title:r,tokensOverride:a,theme:n="default",extraKey:i,randomKeyOrder:o,showDeleteKey:l=!0,closeButtonText:c,deleteButtonText:u,closeButtonLoading:s,onChange:d,onInput:f,onDelete:_,onClose:y,onBlur:p,onHide:g,onShow:m,value:x,defaultValue:h,maxlength:v,blurOnClose:b=!0,safeAreaInsetBottom:k=!0,transition:w=!0,transitionDuration:N=300,numberKeyRender:R,deleteRender:E,extraKeyRender:z,style:P,...q}=e,B=(0,_useLocale.useLocale)(),A=(0,_animation.useReducedMotion)(),C=(0,_tokens.useNumberKeyboardTokens)(a),{colors:D,radii:F,shadow:T,sizing:V,spacing:M,typography:K}=C,[O,H]=(0,_hooks.useControllableValue)(e,{defaultValue:"",valuePropName:"value",defaultValuePropName:"defaultValue",trigger:"onChange"}),W=O??"",L=(()=>{const e=(0,_number.parseNumberLike)(v,void 0);return null!=e&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0})(),I=(0,_react().useRef)(W),j=(0,_react().useRef)(L),$=(0,_react().useRef)(y),G=(0,_react().useRef)(p),Y=(0,_react().useRef)(m),U=(0,_react().useRef)(g),J=(0,_react().useRef)(_),Q=(0,_react().useRef)(f);I.current=W,j.current=L,$.current=y,G.current=p,Y.current=m,U.current=g,J.current=_,Q.current=f;const X="custom"===n,Z=B?.vanNumberKeyboard?.close??"Done",ee=X?c??Z:c,te=(0,_react().useCallback)(()=>{$.current?.(),b&&G.current?.()},[b]),re=(0,_react().useRef)(t);(0,_react().useEffect)(()=>{t&&!re.current&&Y.current?.(),!t&&re.current&&U.current?.(),re.current=t},[t]),(0,_react().useEffect)(()=>(t?(registry.add(te),registry.forEach(e=>{e!==te&&e()})):registry.delete(te),()=>{registry.delete(te)}),[t,te]);const ae=(0,_react().useMemo)(()=>(0,_utils2.buildKeyboardKeys)({randomKeyOrder:o,visible:t,isCustom:X,extraKey:i,showDeleteKey:l}),[i,X,o,l,t]),ne=(0,_react().useCallback)((e,t)=>{if("delete"===t){const e=I.current;if(!e)return;return J.current?.(),void H(e.slice(0,-1))}if("close"===t||"extra"===t&&!e)return void te();if(!e)return;const r=I.current,a=j.current;void 0!==a&&r.length>=a||(Q.current?.(e),H(`${r}${e}`))},[te,H]),ie=(0,_react().useMemo)(()=>(0,_createPlatformShadow.createPlatformShadow)(T),[T.color,T.elevation,T.offsetY,T.opacity,T.radius]),oe=(0,_react().useCallback)((e,t,r=!1,a=!1,n)=>{const i=e.type,o=""===i&&!e.text,l=o||r&&s,c=l?void 0:()=>ne(e.text,i),d=r?D.closeBackground:D.keyBackground,f=r?D.closeActiveBackground:D.keyActiveBackground,_=r?D.closeText:D.keyText,y=r?D.closeText:D.keyTextActive,p=n??(r?V.closeHeight:V.keyHeight),g=V.auxFontSize??Math.round(.64*V.fontSize),m=V.defaultIconFontSize??V.fontSize,x=e.text??"",h="delete"===i?E?.()??u??"⌫":"extra"===i?z?z(x):x||"⌨︎":"close"===i?ee??Z:R?R(x):x,v="delete"===i&&null==E&&null==u||"extra"===i&&!z&&!x,b="extra"===i&&"string"==typeof h&&_utils2.RE_NUM_LIKE.test(h),k=""===i?V.fontSize:v?m:b?V.fontSize:g;return _react().default.createElement(_reactNative().Pressable,{key:`${i}-${t}-${e.text??t}`,onPress:c,disabled:l,style:[{opacity:o?1:l?.6:1},a?{width:"100%",flexBasis:"auto",flexGrow:0,alignSelf:"stretch"}:{flexBasis:0,flexGrow:e.wider?2:1,flexShrink:1,minWidth:0}],accessible:!o,accessibilityRole:o?void 0:"button",accessibilityLabel:o?void 0:"delete"===i?"delete":"close"===i?ee??"close":"extra"===i?x||"collapse":x,accessibilityState:o?void 0:{disabled:!!l},accessibilityElementsHidden:o,importantForAccessibility:o?"no-hide-descendants":void 0},({pressed:e})=>{const t=e&&!l,a=l?D.keyBackground:t?f:d,n=t?y:_;return _react().default.createElement(_reactNative().View,{style:[S.k,{height:p,backgroundColor:a,borderRadius:F.key}]},r&&s?_react().default.createElement(_loading.default,{size:18,color:n}):(0,_utils.isRenderable)(h)?(0,_utils.renderTextOrNode)(h,[S.kTxt,{color:n,fontFamily:K.fontFamily,fontSize:k}]):null)})},[s,D.closeActiveBackground,D.closeBackground,D.closeText,D.keyActiveBackground,D.keyBackground,D.keyText,D.keyTextActive,Z,u,E,z,ne,R,F.key,V.auxFontSize,V.closeHeight,V.defaultIconFontSize,V.fontSize,V.keyHeight,K.fontFamily,ee]),le=(0,_react().useRef)(new(_reactNative().Animated.Value)(t?1:0)).current,ce=(0,_react().useRef)(null),ue=(0,_react().useRef)(0),[se,de]=(0,_react().useState)(0),[fe,_e]=(0,_react().useState)(t),ye=A||!1===w?0:N;(0,_react().useEffect)(()=>{ue.current+=1;const e=ue.current;t&&_e(!0),ce.current?.stop();const r=_reactNative().Animated.timing(le,{toValue:t?1:0,duration:ye,useNativeDriver:_platform.nativeDriverEnabled,easing:t?_reactNative().Easing.out(_reactNative().Easing.cubic):_reactNative().Easing.in(_reactNative().Easing.cubic),isInteraction:!1});return ce.current=r,r.start(({finished:r})=>{r&&!t&&ue.current===e&&_e(!1)}),()=>{ce.current?.stop(),ce.current=null}},[le,t,ye]);const pe=le.interpolate({inputRange:[0,1],outputRange:[se||320,0]}),ge=(0,_react().useCallback)(e=>{const{height:t}=e.nativeEvent.layout;de(e=>Math.abs(t-e)>.5?t:e)},[]),me=!X&&(r||c),xe=2*V.keyHeight+M.keyGap,he=(0,_react().useMemo)(()=>{const e=M.keyGap,t=M.paddingHorizontal,a={paddingHorizontal:M.titlePadding},n=[S.dRow,{flexDirection:"column",flexWrap:"nowrap",paddingHorizontal:t,paddingTop:e,paddingBottom:e,gap:e}],i={flexDirection:"row",gap:e},o=[S.cRow,{paddingHorizontal:t,paddingTop:me?0:e,paddingBottom:e,width:"100%"}],c=[S.cMat,{flexDirection:"column",flexWrap:"nowrap",gap:e}],u=[S.cSide,{gap:e,marginLeft:e}],s=ae.map((e,t)=>({key:e,index:t})),d=[];for(let e=0;e<s.length;e+=3)d.push(s.slice(e,e+3));const f=_react().default.createElement(_reactNative().View,{style:n},d.map((e,t)=>_react().default.createElement(_reactNative().View,{key:`l-${t}`,style:i},e.map(e=>oe(e.key,e.index))))),_=[];for(let e=0;e<9&&e<s.length;e+=3)_.push(s.slice(e,e+3));const y=s.slice(9);1===y.length?_.push([{key:{type:""},index:1000001},y[0],{key:{type:""},index:1000002}]):y.length&&_.push(y);const p=_react().default.createElement(_reactNative().View,{style:c},_.map((e,t)=>_react().default.createElement(_reactNative().View,{key:`cl-${t}`,style:i},e.map(e=>oe(e.key,e.index))))),g=l&&oe({type:"delete"},999,!1,!0,xe),m=oe({type:"close"},1e3,!0,!0,xe),x={color:D.title,fontFamily:K.fontFamily,fontSize:V.titleFontSize},h={color:D.title,fontFamily:K.fontFamily,fontSize:V.auxFontSize??Math.round(.64*V.fontSize)};return{headerNode:me?_react().default.createElement(_reactNative().View,{style:[S.hdr,a]},_react().default.createElement(_reactNative().Text,{style:[S.tBold,S.tCenter,x],numberOfLines:1},r),ee&&_react().default.createElement(_reactNative().Pressable,{onPress:te,style:S.hdrClose,accessibilityRole:"button",accessibilityLabel:ee},_react().default.createElement(_reactNative().Text,{style:h},ee))):null,bodyNode:X?_react().default.createElement(_reactNative().View,{style:o},p,_react().default.createElement(_reactNative().View,{style:u},g,m)):f,safeAreaNode:k&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"bottom"})}},[te,D.title,xe,me,X,ae,oe,ee,k,V.auxFontSize,V.fontSize,V.titleFontSize,M.keyGap,M.paddingHorizontal,M.titlePadding,K.fontFamily,r,l]);return fe||t?_react().default.createElement(_Portal.default,null,_react().default.createElement(_reactNative().Animated.View,_extends({},q,{pointerEvents:t?"auto":"none",renderToHardwareTextureAndroid:!0,shouldRasterizeIOS:!0,onLayout:ge,style:[S.wrap,ie,P,{transform:[{translateY:pe}],backgroundColor:D.background}]}),he.headerNode,he.bodyNode,he.safeAreaNode)):null}),S=_reactNative().StyleSheet.create({wrap:{position:"absolute",left:0,right:0,bottom:0},hdr:{flexDirection:"row",alignItems:"center",justifyContent:"flex-end",height:44,position:"relative"},tBold:{fontWeight:"600"},tCenter:{position:"absolute",left:12,right:12,textAlign:"center"},hdrClose:{minWidth:56,alignItems:"flex-end"},k:{justifyContent:"center",alignItems:"center"},kTxt:{includeFontPadding:!1,textAlign:"center"},dRow:{flexDirection:"row",flexWrap:"wrap"},cRow:{flexDirection:"row"},cMat:{flex:3,flexDirection:"row",flexWrap:"wrap"},cSide:{flex:1,flexDirection:"column",justifyContent:"flex-start"}});var _default=exports.default=NumberKeyboard;
@@ -1 +1 @@
1
- "use strict";function _react(){const e=_interopRequireDefault(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}function _overlays(){const e=require("@react-native-aria/overlays");return _overlays=function(){return e},e}function _interactions(){const e=require("@react-native-aria/interactions");return _interactions=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Overlay=void 0;var _tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const IS_WEB="web"===_reactNative().Platform.OS,OverlayImpl=(e,r)=>{const{children:t,isOpen:a,visible:n,useRNModal:o,useRNModalOnAndroid:i=!1,isKeyboardDismissable:l=!0,animationPreset:s="fade",onRequestClose:u,style:c}=e,d=(0,_tokens.useOverlayTokens)(),f=o??!IS_WEB,v=IS_WEB?{zIndex:d.layer.zIndex,position:"fixed",top:0,left:0,right:0,bottom:0}:void 0,_=a??n??!1;return(0,_interactions().useKeyboardDismissable)({enabled:!IS_WEB&&_&&l,callback:u??(()=>{})}),_?f||i&&"android"===_reactNative().Platform.OS?_react().default.createElement(_reactNative().Modal,{statusBarTranslucent:!0,transparent:!0,visible:_,onRequestClose:u,animationType:s,ref:r},t):_react().default.createElement(_overlays().OverlayContainer,{style:[c,v]},t):null},OverlayForwardRef=_react().default.forwardRef(OverlayImpl);OverlayForwardRef.displayName="Overlay";const Overlay=exports.Overlay=_react().default.memo(OverlayForwardRef);var _default=exports.default=Overlay;
1
+ "use strict";function _react(){const e=_interopRequireDefault(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}function _overlays(){const e=require("@react-native-aria/overlays");return _overlays=function(){return e},e}function _interactions(){const e=require("@react-native-aria/interactions");return _interactions=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Overlay=void 0;var _tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const IS_WEB="web"===_reactNative().Platform.OS,NOOP=()=>{},OverlayImpl=(e,r)=>{const{children:t,isOpen:a,visible:n,useRNModal:o,useRNModalOnAndroid:i=!1,isKeyboardDismissable:l=!0,animationPreset:s="fade",onRequestClose:u,style:c}=e,d=(0,_tokens.useOverlayTokens)(),f=o??!IS_WEB,v=IS_WEB?{zIndex:d.layer.zIndex,position:"fixed",top:0,left:0,right:0,bottom:0}:void 0,_=a??n??!1;return(0,_interactions().useKeyboardDismissable)({enabled:!IS_WEB&&_&&l,callback:u??NOOP}),_?f||i&&"android"===_reactNative().Platform.OS?_react().default.createElement(_reactNative().Modal,{statusBarTranslucent:!0,transparent:!0,visible:_,onRequestClose:u,animationType:s,ref:r},t):_react().default.createElement(_overlays().OverlayContainer,{style:[c,v]},t):null},OverlayForwardRef=_react().default.forwardRef(OverlayImpl);OverlayForwardRef.displayName="Overlay";const Overlay=exports.Overlay=_react().default.memo(OverlayForwardRef);var _default=exports.default=Overlay;
@@ -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.toArrayValue=exports.prepareColumns=exports.normalizePicker=exports.findEnabledIndex=exports.default=void 0,exports.usePickerValue=usePickerValue;var _loading=_interopRequireDefault(require("../loading")),_useLocale=require("../config-provider/useLocale"),_color=require("../../utils/color"),_validate=require("../../utils/validate"),_utils=require("../../utils"),_tokens=require("./tokens"),_hairline=require("../../utils/hairline");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,l,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)&&((l=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(l.get||l.set)?n(o,t,l):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 toArrayValue=e=>Array.isArray(e)?e.filter(e=>null!=e):null==e?[]:[e];exports.toArrayValue=toArrayValue;const isColumnWithOptions=e=>!!e&&(0,_utils.isObject)(e)&&"options"in e&&Array.isArray(e.options),hasChildren=e=>!!e&&(0,_utils.isObject)(e)&&Array.isArray(e.children)&&e.children.length>0,findEnabledIndex=(e,t)=>{if(!e.length)return-1;const r=Math.min(Math.max(t,0),e.length-1);if(!e[r]?.disabled)return r;for(let t=r+1;t<e.length;t+=1)if(!e[t]?.disabled)return t;for(let t=r-1;t>=0;t-=1)if(!e[t]?.disabled)return t;return-1};exports.findEnabledIndex=findEnabledIndex;const normalizeMultiple=(e,t,r)=>{const a=[],n=[];return e.forEach((e,l)=>{const o=r[l],i=void 0!==t[l]?e.findIndex(e=>e.value===t[l]):-1,c=e.findIndex(e=>e.value===o),s=findEnabledIndex(e,c>=0?c:i>=0?i:0),u=s>=0?e[s]:void 0,d=c>=0&&!e[c]?.disabled;a[l]=d?o:u?.value??t[l]??e[0]?.value,n[l]=u}),{columns:e,values:a,options:n}},normalizeCascade=(e,t)=>{const r=[],a=[],n=[];let l=e,o=0;for(;l&&l.length&&o<10;){r.push(l);const e=t[o],i=l.findIndex(t=>t.value===e||String(t.value)===String(e)),c=findEnabledIndex(l,i>=0?i:0),s=c>=0?l[c]:l[0];if(a[o]=s?.value,n[o]=s,!s||!hasChildren(s))break;l=s.children,o+=1}return{columns:r,values:a,options:n}},prepareColumns=(e=[])=>{if(!Array.isArray(e)||0===e.length)return{type:"single",columnsList:[],defaults:[],cascadeRoot:[]};const t=e.every(e=>!Array.isArray(e)&&!isColumnWithOptions(e)),r=t&&e.some(e=>hasChildren(e));if(r)return{type:"cascade",columnsList:[],defaults:[],cascadeRoot:e};const a=e,n=[],l=[];return t&&!r?(n.push(e),l.push(void 0)):a.forEach(e=>{if(Array.isArray(e))n.push(e),l.push(void 0);else if(isColumnWithOptions(e)){const t=e;n.push(t.options??[]),l.push(t.defaultValue)}}),{type:"multiple",columnsList:n,defaults:l}};exports.prepareColumns=prepareColumns;const normalizePicker=(e,t=[])=>{const r=Array.isArray(t)?t:[];return"cascade"===e.type&&e.cascadeRoot?.length?normalizeCascade(e.cascadeRoot,r):normalizeMultiple(e.columnsList,e.defaults,r)};exports.normalizePicker=normalizePicker;const W=_reactNative().StyleSheet.create({column:{flex:1},option:{justifyContent:"center",alignItems:"center"},grab:{cursor:"pointer",userSelect:"none",touchAction:"none"}}),WheelPickerItemInner=({item:e,index:t,itemHeight:r,active:a,disabled:n,renderItem:l})=>{const o=l(e,t,{active:a,disabled:n});return _react().default.createElement(_reactNative().View,{style:[W.option,{height:r}]},o)},WheelPickerItem=_react().default.memo(WheelPickerItemInner),getVelocityBucket=e=>{const t=Math.abs(e);return t>1.2?2:t>.6?1:0},adjustIndex=(e,t)=>{const r=t.length;if(!r)return 0;const a=(0,_utils.clamp)(e,0,r-1),n=findEnabledIndex(t,a);return n>=0?n:a},indexToOffset=(e,t)=>-e*t,offsetToIndex=(e,t,r,a)=>{const n=-Math.max(0,r-1)*t,l=(0,_utils.clamp)(e,n,0);let o=Math.round(-l/t);o=adjustIndex(o,a);return{index:o,snapOffset:indexToOffset(o,t)}},shouldMomentum=(e,t)=>t<500&&Math.abs(e)>8,momentumTarget=(e,t,r,a,n)=>{const l=Math.abs(e/t)/.0025*(e<0?-1:1),o=(0,_utils.clamp)(r+l,n,0),i=Math.round(-o/a);return indexToOffset(i,a)},WheelPickerInner=({data:e,selectedIndex:t,onChange:r,onInteractStart:a,onInteractEnd:n,renderItem:l,itemHeight:o,visibleRest:i,readOnly:c,indicatorColor:s,decelerationRate:u=_reactNative().Platform.select({ios:.9985,android:.995,default:.995})??"normal",scrollEventThrottle:d=16,swipeDuration:f=300})=>{const m="web"===_reactNative().Platform.OS,_=(0,_react().useRef)(null),p=(0,_react().useRef)(null),h=i*o,v=e.length,y=Math.max(0,v-1),b=-y*o,g=o*(2*i+1),E=(0,_utils.clamp)(t,0,y),x=findEnabledIndex(e,E),k=x>=0?x:E,C=2*i+1,w=v>20*C?32:d,I=v>4*C,R=(0,_react().useCallback)(()=>_react().default.createElement(_reactNative().View,{style:{height:h}}),[h]),V=(0,_react().useMemo)(()=>[S.indicator,{height:o,top:o*i}],[o,i]),T=(0,_react().useRef)(null),P=(0,_react().useRef)(!1),M=(0,_react().useRef)(0),N=(0,_react().useCallback)(()=>{T.current&&(clearTimeout(T.current),T.current=null)},[]),A=(0,_react().useCallback)((t,a)=>{if(c)return;const{index:n,snapOffset:l}=offsetToIndex(-t,o,v,e),i=-l;Math.abs(i-t)>.5&&_.current?.scrollToOffset({offset:i,animated:a}),r(n)},[e,o,r,c,v]);(0,_react().useEffect)(()=>{const e=k*o;m||p.current?.scrollTo({y:e,animated:!1})},[m,o,k]);const[O,D]=(0,_react().useState)(()=>indexToOffset(k,o)),q=(0,_react().useRef)(O),z=(0,_react().useRef)(0),H=(0,_react().useRef)(0),[L,j]=(0,_react().useState)(0),[F,G]=(0,_react().useState)(0),$=(0,_react().useRef)(0),B=(0,_react().useRef)(null),Y=(0,_react().useRef)(0),J=(0,_react().useRef)(null),K=(0,_react().useRef)(null),Q=(0,_react().useRef)(null),U=(0,_react().useRef)(null),X=(0,_react().useRef)(!1),Z=(0,_react().useRef)(a);Z.current=a;const ee=(0,_react().useRef)(n);ee.current=n;const te=(0,_react().useCallback)(()=>{c||X.current||(X.current=!0,Z.current?.())},[c]),re=(0,_react().useCallback)(()=>{X.current&&(X.current=!1,ee.current?.())},[]),ae=(0,_react().useCallback)(()=>{null!=U.current&&"undefined"!=typeof cancelAnimationFrame&&(cancelAnimationFrame(U.current),U.current=null),null!=J.current&&"undefined"!=typeof cancelAnimationFrame&&(cancelAnimationFrame(J.current),J.current=null)},[]),ne=(0,_react().useCallback)(()=>{Q.current&&(clearTimeout(Q.current),Q.current=null)},[]);(0,_react().useEffect)(()=>()=>{N(),ne(),ae()},[N,ne,ae]);const le=(0,_react().useCallback)(e=>{const t=getVelocityBucket(e);t!==$.current&&($.current=t,G(t))},[]),oe=(0,_react().useCallback)(e=>{const t=Date.now(),r=B.current;if(null!=r){const a=Math.max(1,t-r);le(e/a)}B.current=t},[le]);(0,_react().useEffect)(()=>{if(!m)return;ne(),K.current=null,j(0);const e=indexToOffset(k,o);q.current=e,D(e)},[ne,m,o,k,j]);const ie=(0,_react().useCallback)(()=>{if(c)return;const e=K.current;null!=e&&(K.current=null,ne(),j(0),re(),r(e))},[ne,r,c,j]),ce=(0,_react().useCallback)(e=>{if(c)return;te();const t=(0,_utils.clamp)(e,0,y),r=indexToOffset(t,o);ne(),K.current=t,q.current=r,j(f),D(r),f<=0?ie():Q.current=setTimeout(ie,f+80)},[ne,ie,o,y,c,f]),se=(0,_react().useCallback)(t=>{if(c)return;const r=t.nativeEvent?.deltaY??0;r&&(Y.current+=r,null==J.current&&"undefined"!=typeof requestAnimationFrame&&(J.current=requestAnimationFrame(()=>{J.current=null;const t=Y.current;if(Y.current=0,!t)return;oe(t);const r=t>0?1:-1,{index:a}=offsetToIndex(q.current,o,v,e),n=(0,_utils.clamp)(a+r,0,y);ce(n)})))},[e,o,y,c,ce,v,oe]),ue=(0,_utils.clamp)(Math.round(-O/o),0,y),de=(0,_react().useMemo)(()=>{if(!m||v<=0)return{items:null,topSpacer:null,bottomSpacer:null};let t=0,r=y;if(I){const e=Math.max(2*C,8),a=2===F?4*C:1===F?2*C:0,n=Math.min(e+a,Math.max(6*C,24));t=(0,_utils.clamp)(ue-n,0,y),r=(0,_utils.clamp)(ue+n,0,y)}const a=[];for(let n=t;n<=r;n+=1){const t=e[n];t&&a.push(_react().default.createElement(WheelPickerItem,{key:`${n}-${String(t.value??"")}`,item:t,index:n,itemHeight:o,active:n===k,disabled:!!t.disabled,renderItem:l}))}const n=t*o,i=(y-r)*o;return{items:a,topSpacer:n>0&&_react().default.createElement(_reactNative().View,{style:{height:n}}),bottomSpacer:i>0&&_react().default.createElement(_reactNative().View,{style:{height:i}})}},[e,m,o,y,l,k,v,C,ue,F,I]),fe=(0,_react().useMemo)(()=>({transform:[{translateY:O}]}),[O]),me=(0,_react().useMemo)(()=>L?{transitionProperty:"transform",transitionDuration:L+"ms",transitionTimingFunction:"cubic-bezier(0.23, 1, 0.68, 1)",willChange:"transform"}:void 0,[L]),_e=(0,_react().useCallback)(e=>{const t=e.nativeEvent?.propertyName??e.propertyName;t&&"transform"!==t&&"webkitTransform"!==t||ie()},[ie]),pe=(0,_react().useMemo)(()=>_reactNative().PanResponder.create({onStartShouldSetPanResponder:()=>!c,onMoveShouldSetPanResponder:()=>!c,onPanResponderGrant:()=>{ae(),K.current=null,te(),j(0),z.current=q.current,H.current=Date.now()},onPanResponderMove:(e,t)=>{if(c)return;le(t.vy);const r=(0,_utils.clamp)(z.current+t.dy,b,0);q.current=r,"undefined"==typeof requestAnimationFrame?D(r):null!=U.current||(U.current=requestAnimationFrame(()=>{U.current=null,D(q.current)}))},onPanResponderRelease:(t,r)=>{if(c)return;le(0);const a=Date.now()-H.current,n=r.dy;let l=(0,_utils.clamp)(z.current+n,b,0);shouldMomentum(n,a)&&(l=momentumTarget(n,a,z.current,o,b));const{index:i}=offsetToIndex(l,o,v,e);ce(i)},onPanResponderTerminationRequest:()=>!1,onPanResponderTerminate:()=>{re(),j(0)}}),[e,o,b,re,te,c,le,ce,ae,v]),he=!c,ve=(0,_react().useCallback)(()=>he,[he]),ye=(0,_react().useMemo)(()=>({paddingVertical:h}),[h]),be=(0,_react().useCallback)(e=>{M.current=e.nativeEvent.contentOffset.y},[]),ge=(0,_react().useCallback)(()=>{P.current=!1,N(),te()},[N,te]),Ee=(0,_react().useCallback)(e=>{if(c)return;const t=e.nativeEvent.contentOffset.y;M.current=t,N(),T.current=setTimeout(()=>{P.current||(A(M.current,!0),re())},80)},[N,A,re,c]),xe=(0,_react().useCallback)(()=>{P.current=!0,N(),te()},[N,te]),ke=(0,_react().useCallback)(e=>{P.current=!1,N();const t=e.nativeEvent.contentOffset.y;M.current=t,A(t,!1),re()},[N,A,re]);return m?_react().default.createElement(_reactNative().View,_extends({style:[W.column,{height:g},W.grab],onWheel:se},pe.panHandlers),_react().default.createElement(_reactNative().View,{style:V,pointerEvents:"none"},_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"top",color:s,left:0,right:0})}),_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"bottom",color:s,left:0,right:0})})),_react().default.createElement(_reactNative().View,{style:[fe,me],onTransitionEnd:_e},_react().default.createElement(R,null),de.topSpacer,de.items,de.bottomSpacer,_react().default.createElement(R,null))):_react().default.createElement(_reactNative().View,{style:[W.column,{height:g}],collapsable:!1},_react().default.createElement(_reactNative().View,{style:V,pointerEvents:"none"},_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"top",color:s,left:0,right:0})}),_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"bottom",color:s,left:0,right:0})})),_react().default.createElement(_reactNative().ScrollView,{ref:p,showsVerticalScrollIndicator:!1,scrollEventThrottle:w,decelerationRate:u,snapToInterval:o,snapToAlignment:"start",bounces:!1,overScrollMode:"never",nestedScrollEnabled:!0,contentContainerStyle:ye,onStartShouldSetResponderCapture:ve,onMoveShouldSetResponderCapture:ve,onScroll:be,onScrollBeginDrag:ge,onScrollEndDrag:Ee,onMomentumScrollBegin:xe,onMomentumScrollEnd:ke,scrollEnabled:!c},e.map((e,t)=>_react().default.createElement(WheelPickerItem,{key:`${t}-${String(e.value??"")}`,item:e,index:t,itemHeight:o,active:t===k,disabled:!!e.disabled,renderItem:l}))))},WheelPicker=_react().default.memo(WheelPickerInner);function usePickerValue({columns:e,valueProp:t,defaultValue:r,emitConfirmOnAutoSelect:a=!0,onChange:n,onConfirm:l}){const o=(0,_react().useMemo)(()=>prepareColumns(e),[e]),i=void 0!==t,c=(0,_react().useRef)(n),s=(0,_react().useRef)(l);c.current=n,s.current=l;const[u,d]=(0,_react().useState)(()=>normalizePicker(o,toArrayValue(t??r)).values),f=(0,_react().useRef)(u);f.current=u;const m=(0,_react().useCallback)(e=>{f.current=e,d(e)},[]);(0,_react().useEffect)(()=>{if(!i)return;const e=toArrayValue(t);(0,_utils.shallowEqualArray)(f.current,e)||m(e)},[m,i,t]);const _=(0,_react().useMemo)(()=>normalizePicker(o,u),[o,u]);(0,_react().useEffect)(()=>{i||(0,_utils.shallowEqualArray)(u,_.values)||(m(_.values),c.current?.(_.values,_.options),a&&s.current?.(_.values,_.options))},[m,a,u,i,_]);const p=(0,_react().useCallback)((e,t)=>{const r=[...f.current];r[t]=e.value,"cascade"===o.type&&(r.length=t+1);const a=normalizePicker(o,r);(0,_utils.shallowEqualArray)(f.current,a.values)||(m(a.values),c.current?.(a.values,a.options))},[m,o]),h=(0,_react().useCallback)(()=>{s.current?.(_.values,_.options)},[_]);return{preparedColumns:o,normalized:_,handleSelect:p,handleConfirm:h}}const getVisibleCount=e=>{const t=(0,_validate.isFiniteNumber)(e)?Math.max(3,Math.floor(e)):5;return t%2==0?t+1:t},GRADIENT_OVERLAY_ALPHA=.25,GRADIENT_STEPS=[.95,.75,.55,.35],GRADIENT_STEPS_REVERSED=[.35,.55,.75,.95],GradientMask=({height:e,color:t,position:r,maskType:a})=>{const n=[S.gMask,{height:e},"top"===r?{top:0}:{bottom:0}],l=(0,_color.withAlpha)(t,.25);if("solid"===a)return _react().default.createElement(_reactNative().View,{pointerEvents:"none",style:[...n,{backgroundColor:(0,_color.withAlpha)(t,.9)}]});if("web"===_reactNative().Platform.OS){const e="top"===r?"180deg":"0deg";return _react().default.createElement(_reactNative().View,{pointerEvents:"none",style:[...n,{backgroundColor:l,backgroundImage:`linear-gradient(${e}, ${(0,_color.withAlpha)(t,.98)}, ${(0,_color.withAlpha)(t,.4)})`}]})}return _react().default.createElement(_reactNative().View,{pointerEvents:"none",style:[...n,{backgroundColor:l}]},("top"===r?GRADIENT_STEPS:GRADIENT_STEPS_REVERSED).map((e,r)=>_react().default.createElement(_reactNative().View,{key:r,style:{flex:1,backgroundColor:(0,_color.withAlpha)(t,e)}})))},PickerColumn=_react().default.memo(e=>{const{columnIndex:t,options:r,value:a,itemHeight:n,visibleItemCount:l,optionRender:o,getOptionTestID:i,getOptionA11yLabel:c,onSelect:s,tokens:u,readOnly:d,decelerationRate:f,scrollEventThrottle:m,swipeDuration:_}=e,p=Math.max(1,Math.floor((l-1)/2)),h=(0,_react().useMemo)(()=>new Map(r.map((e,t)=>[e.value,t])),[r]),v=(0,_react().useMemo)(()=>{if(!r.length)return 0;const e=h.get(a);return findEnabledIndex(r,"number"==typeof e&&e>=0?e:0)},[r,a,h]),y=(0,_react().useCallback)(e=>{const a=findEnabledIndex(r,e),n=r[a];n&&!n.disabled&&s(n,t,a)},[t,s,r]),{text:b,textDisabled:g,textMuted:E}=u.colors,x={fontSize:u.typography.optionSize,fontFamily:u.typography.fontFamily,fontWeight:u.typography.optionWeight},k=(0,_react().useCallback)((e,r,a)=>{const{active:l=!1,disabled:s=!1}=a??{},u=s?g:l?b:E,d=o?o(e,{columnIndex:t,active:l}):e.label??e.value,f=i?.(e,{columnIndex:t,active:l}),m=c?.(e,{columnIndex:t,active:l});return _react().default.createElement(_reactNative().View,{style:[W.option,{opacity:s?.5:1,minHeight:n}],testID:f,accessible:!!m,accessibilityLabel:m},(0,_validate.isText)(d)?_react().default.createElement(_reactNative().Text,{numberOfLines:1,style:[S.optTxt,x,{color:u}]},d):d)},[b,g,E,t,c,i,n,x,o]);return _react().default.createElement(_reactNative().View,{style:[W.column,{height:n*l}]},_react().default.createElement(WheelPicker,{data:r,itemHeight:n,visibleRest:p,selectedIndex:Math.max(0,v),onChange:y,readOnly:d,indicatorColor:u.colors.indicator,decelerationRate:f,scrollEventThrottle:m,swipeDuration:_,renderItem:k}))}),PickerImpl=e=>{const{tokensOverride:t}=e,r=(0,_useLocale.useLocale)(),a=(0,_tokens.usePickerTokens)(t),{columns:n=[],value:l,defaultValue:o,title:i,showToolbar:c=a.defaults.showToolbar,toolbarPosition:s=a.defaults.toolbarPosition,confirmButtonText:u=r?.confirm??"Confirm",cancelButtonText:d=r?.cancel??"Cancel",itemHeight:f=a.defaults.itemHeight,visibleItemCount:m=a.defaults.visibleItemCount,loading:_=!1,readOnly:p=!1,decelerationRate:h=_reactNative().Platform.select({ios:.999,android:.997,default:.989})??"normal",swipeDuration:v=a.defaults.swipeDuration,scrollEventThrottle:y=16,columnsTop:b,columnsBottom:g,optionRender:E,getOptionTestID:x,getOptionA11yLabel:k,emitConfirmOnAutoSelect:C=!0,maskColor:w,maskType:I=a.defaults.maskType,onChange:R,onConfirm:V,onCancel:T,style:P,testID:M,...N}=e,A=getVisibleCount(m??a.defaults.visibleItemCount),{normalized:O,handleSelect:W,handleConfirm:D,preparedColumns:q}=usePickerValue({columns:n,valueProp:l,defaultValue:o,emitConfirmOnAutoSelect:C,onChange:R,onConfirm:V}),z="cascade"===q.type,H={fontSize:a.typography.toolbarSize,fontFamily:a.typography.fontFamily,fontWeight:a.typography.toolbarWeight},L=(e,t)=>_react().default.isValidElement(e)?_react().default.createElement(_reactNative().View,{style:S.actW},e):(0,_validate.isText)(e)?_react().default.createElement(_reactNative().Text,{numberOfLines:1,style:[S.actTxt,H,{color:t}]},e):_react().default.createElement(_reactNative().View,{style:S.actW}),j=c?_react().default.createElement(_reactNative().View,{style:[S.toolbar,{height:a.spacing.toolbarHeight,paddingHorizontal:a.spacing.actionPadding}]},_react().default.createElement(_reactNative().Pressable,{onPress:T,accessibilityRole:"button"},L(d,a.colors.cancel)),null==(F=i)?_react().default.createElement(_reactNative().View,null):_react().default.isValidElement(F)?_react().default.createElement(_reactNative().View,{style:S.ttlW},F):_react().default.createElement(_reactNative().Text,{style:[S.title,H,{color:a.colors.text}],numberOfLines:1},F),_react().default.createElement(_reactNative().Pressable,{onPress:D,accessibilityRole:"button"},L(u,a.colors.confirm)),_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"bottom",color:a.colors.indicator,left:0,right:0})})):null;var F;const G=f*A,$=Math.max(1,Math.floor((A-1)/2)),B=f*$,Y=B,J=O.columns.length>0,K=w??a.colors.mask,Q=J?O.columns.map((e,t)=>{const r=z?`${t}-${O.values.slice(0,t).map(String).join("|")}`:String(t);return _react().default.createElement(PickerColumn,{key:r,columnIndex:t,options:e,value:O.values[t],itemHeight:f,visibleItemCount:A,decelerationRate:h,scrollEventThrottle:y,optionRender:E,getOptionTestID:x,getOptionA11yLabel:k,readOnly:p,swipeDuration:v,onSelect:W,tokens:a})}):null;return _react().default.createElement(_reactNative().View,_extends({},N,{style:[{backgroundColor:a.colors.background,borderRadius:a.radius.container},P],testID:M}),"top"===s&&j,_react().default.createElement(_reactNative().View,{style:[S.body,{height:G}]},_react().default.createElement(_reactNative().View,{style:S.columns,pointerEvents:_?"none":"auto"},b,Q,g,J&&_react().default.createElement(_react().default.Fragment,null,_react().default.createElement(_reactNative().View,{pointerEvents:"none",style:[S.indicator,{top:B,height:f}]},_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"top",color:a.colors.indicator,left:0,right:0})}),_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"bottom",color:a.colors.indicator,left:0,right:0})})),_react().default.createElement(GradientMask,{position:"top",height:Y,color:K,maskType:I}),_react().default.createElement(GradientMask,{position:"bottom",height:Y,color:K,maskType:I}))),_&&_react().default.createElement(_reactNative().View,{style:[S.loading,{backgroundColor:a.colors.loadingMask}]},_react().default.createElement(_loading.default,null))),"bottom"===s&&j)},S=_reactNative().StyleSheet.create({body:{position:"relative",overflow:"hidden"},columns:{flex:1,flexDirection:"row"},optTxt:{includeFontPadding:!1},indicator:{position:"absolute",left:0,right:0,zIndex:3},gMask:{position:"absolute",left:0,right:0,zIndex:2},toolbar:{flexDirection:"row",alignItems:"center",justifyContent:"space-between"},title:{flex:1,textAlign:"center"},ttlW:{flex:1,alignItems:"center",justifyContent:"center"},actTxt:{minWidth:44,textAlign:"center"},actW:{minWidth:44,alignItems:"center",justifyContent:"center"},loading:{position:"absolute",top:0,left:0,right:0,bottom:0,alignItems:"center",justifyContent:"center"}}),Picker=_react().default.memo(PickerImpl);var _default=exports.default=Picker;
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=void 0,Object.defineProperty(exports,"findEnabledIndex",{enumerable:!0,get:function(){return _normalize.findEnabledIndex}}),Object.defineProperty(exports,"normalizePicker",{enumerable:!0,get:function(){return _normalize.normalizePicker}}),Object.defineProperty(exports,"prepareColumns",{enumerable:!0,get:function(){return _normalize.prepareColumns}}),Object.defineProperty(exports,"toArrayValue",{enumerable:!0,get:function(){return _normalize.toArrayValue}}),Object.defineProperty(exports,"usePickerValue",{enumerable:!0,get:function(){return _value.usePickerValue}});var _loading=_interopRequireDefault(require("../loading")),_useLocale=require("../config-provider/useLocale"),_validate=require("../../utils/validate"),_utils=require("../../utils"),_tokens=require("./tokens"),_hairline=require("../../utils/hairline"),_normalize=require("../../hooks/picker/normalize"),_value=require("../../hooks/picker/value");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,n=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var a,l,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(a=t?n:r){if(a.has(e))return a.get(e);a.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((l=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(l.get||l.set)?a(o,t,l):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 n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},_extends.apply(null,arguments)}const W=_reactNative().StyleSheet.create({column:{flex:1},option:{justifyContent:"center",alignItems:"center"},grab:{cursor:"pointer",userSelect:"none",touchAction:"none"}}),WheelPickerItemInner=({item:e,index:t,itemHeight:r,active:n,disabled:a,renderItem:l})=>{const o=l(e,t,{active:n,disabled:a});return _react().default.createElement(_reactNative().View,{style:[W.option,{height:r}]},o)},WheelPickerItem=_react().default.memo(WheelPickerItemInner),getVelocityBucket=e=>{const t=Math.abs(e);return t>1.2?2:t>.6?1:0},adjustIndex=(e,t)=>{const r=t.length;if(!r)return 0;const n=(0,_utils.clamp)(e,0,r-1),a=(0,_normalize.findEnabledIndex)(t,n);return a>=0?a:n},indexToOffset=(e,t)=>-e*t,offsetToIndex=(e,t,r,n)=>{const a=-Math.max(0,r-1)*t,l=(0,_utils.clamp)(e,a,0);let o=Math.round(-l/t);o=adjustIndex(o,n);return{index:o,snapOffset:indexToOffset(o,t)}},shouldMomentum=(e,t)=>t<500&&Math.abs(e)>8,momentumTarget=(e,t,r,n,a)=>{const l=Math.abs(e/t)/.0025*(e<0?-1:1),o=(0,_utils.clamp)(r+l,a,0),i=Math.round(-o/n);return indexToOffset(i,n)},WheelPickerInner=({data:e,selectedIndex:t,onChange:r,onInteractStart:n,onInteractEnd:a,renderItem:l,itemHeight:o,visibleRest:i,readOnly:c,indicatorColor:u,decelerationRate:s=_reactNative().Platform.select({ios:.9985,android:.995,default:.995})??"normal",scrollEventThrottle:d=16,swipeDuration:m=300})=>{const f="web"===_reactNative().Platform.OS,_=(0,_react().useRef)(null),p=(0,_react().useRef)(null),h=i*o,v=e.length,b=Math.max(0,v-1),g=-b*o,y=o*(2*i+1),x=(0,_utils.clamp)(t,0,b),E=(0,_normalize.findEnabledIndex)(e,x),k=E>=0?E:x,w=2*i+1,C=v>20*w?32:d,I=v>4*w,T=(0,_react().useCallback)(()=>_react().default.createElement(_reactNative().View,{style:{height:h}}),[h]),P=(0,_react().useMemo)(()=>[S.indicator,{height:o,top:o*i}],[o,i]),V=(0,_react().useRef)(null),R=(0,_react().useRef)(!1),M=(0,_react().useRef)(0),N=(0,_react().useCallback)(()=>{V.current&&(clearTimeout(V.current),V.current=null)},[]),O=(0,_react().useCallback)((t,n)=>{if(c)return;const{index:a,snapOffset:l}=offsetToIndex(-t,o,v,e),i=-l;Math.abs(i-t)>.5&&_.current?.scrollToOffset({offset:i,animated:n}),r(a)},[e,o,r,c,v]);(0,_react().useEffect)(()=>{const e=k*o;f||p.current?.scrollTo({y:e,animated:!1})},[f,o,k]);const[D,q]=(0,_react().useState)(()=>indexToOffset(k,o)),z=(0,_react().useRef)(D),H=(0,_react().useRef)(0),j=(0,_react().useRef)(0),[A,F]=(0,_react().useState)(0),[L,B]=(0,_react().useState)(0),$=(0,_react().useRef)(0),G=(0,_react().useRef)(null),Y=(0,_react().useRef)(0),J=(0,_react().useRef)(null),K=(0,_react().useRef)(null),Q=(0,_react().useRef)(null),U=(0,_react().useRef)(null),X=(0,_react().useRef)(!1),Z=(0,_react().useRef)(n);Z.current=n;const ee=(0,_react().useRef)(a);ee.current=a;const te=(0,_react().useCallback)(()=>{c||X.current||(X.current=!0,Z.current?.())},[c]),re=(0,_react().useCallback)(()=>{X.current&&(X.current=!1,ee.current?.())},[]),ne=(0,_react().useCallback)(()=>{null!=U.current&&"undefined"!=typeof cancelAnimationFrame&&(cancelAnimationFrame(U.current),U.current=null),null!=J.current&&"undefined"!=typeof cancelAnimationFrame&&(cancelAnimationFrame(J.current),J.current=null)},[]),ae=(0,_react().useCallback)(()=>{Q.current&&(clearTimeout(Q.current),Q.current=null)},[]);(0,_react().useEffect)(()=>()=>{N(),ae(),ne()},[N,ae,ne]);const le=(0,_react().useCallback)(e=>{const t=getVelocityBucket(e);t!==$.current&&($.current=t,B(t))},[]),oe=(0,_react().useCallback)(e=>{const t=Date.now(),r=G.current;if(null!=r){const n=Math.max(1,t-r);le(e/n)}G.current=t},[le]);(0,_react().useEffect)(()=>{if(!f)return;ae(),K.current=null,F(0);const e=indexToOffset(k,o);z.current=e,q(e)},[ae,f,o,k,F]);const ie=(0,_react().useCallback)(()=>{if(c)return;const e=K.current;null!=e&&(K.current=null,ae(),F(0),re(),r(e))},[ae,r,c,F]),ce=(0,_react().useCallback)(e=>{if(c)return;te();const t=(0,_utils.clamp)(e,0,b),r=indexToOffset(t,o);ae(),K.current=t,z.current=r,F(m),q(r),m<=0?ie():Q.current=setTimeout(ie,m+80)},[ae,ie,o,b,c,m]),ue=(0,_react().useCallback)(t=>{if(c)return;const r=t.nativeEvent?.deltaY??0;r&&(Y.current+=r,null==J.current&&"undefined"!=typeof requestAnimationFrame&&(J.current=requestAnimationFrame(()=>{J.current=null;const t=Y.current;if(Y.current=0,!t)return;oe(t);const r=t>0?1:-1,{index:n}=offsetToIndex(z.current,o,v,e),a=(0,_utils.clamp)(n+r,0,b);ce(a)})))},[e,o,b,c,ce,v,oe]),se=(0,_utils.clamp)(Math.round(-D/o),0,b),de=(0,_react().useMemo)(()=>{if(!f||v<=0)return{items:null,topSpacer:null,bottomSpacer:null};let t=0,r=b;if(I){const e=Math.max(2*w,8),n=2===L?4*w:1===L?2*w:0,a=Math.min(e+n,Math.max(6*w,24));t=(0,_utils.clamp)(se-a,0,b),r=(0,_utils.clamp)(se+a,0,b)}const n=[];for(let a=t;a<=r;a+=1){const t=e[a];t&&n.push(_react().default.createElement(WheelPickerItem,{key:`${a}-${String(t.value??"")}`,item:t,index:a,itemHeight:o,active:a===k,disabled:!!t.disabled,renderItem:l}))}const a=t*o,i=(b-r)*o;return{items:n,topSpacer:a>0&&_react().default.createElement(_reactNative().View,{style:{height:a}}),bottomSpacer:i>0&&_react().default.createElement(_reactNative().View,{style:{height:i}})}},[e,f,o,b,l,k,v,w,se,L,I]),me=(0,_react().useMemo)(()=>({transform:[{translateY:D}]}),[D]),fe=(0,_react().useMemo)(()=>A?{transitionProperty:"transform",transitionDuration:A+"ms",transitionTimingFunction:"cubic-bezier(0.23, 1, 0.68, 1)",willChange:"transform"}:void 0,[A]),_e=(0,_react().useCallback)(e=>{const t=e.nativeEvent?.propertyName??e.propertyName;t&&"transform"!==t&&"webkitTransform"!==t||ie()},[ie]),pe=(0,_react().useMemo)(()=>_reactNative().PanResponder.create({onStartShouldSetPanResponder:()=>!c,onMoveShouldSetPanResponder:()=>!c,onPanResponderGrant:()=>{ne(),K.current=null,te(),F(0),H.current=z.current,j.current=Date.now()},onPanResponderMove:(e,t)=>{if(c)return;le(t.vy);const r=(0,_utils.clamp)(H.current+t.dy,g,0);z.current=r,"undefined"==typeof requestAnimationFrame?q(r):null!=U.current||(U.current=requestAnimationFrame(()=>{U.current=null,q(z.current)}))},onPanResponderRelease:(t,r)=>{if(c)return;le(0);const n=Date.now()-j.current,a=r.dy;let l=(0,_utils.clamp)(H.current+a,g,0);shouldMomentum(a,n)&&(l=momentumTarget(a,n,H.current,o,g));const{index:i}=offsetToIndex(l,o,v,e);ce(i)},onPanResponderTerminationRequest:()=>!1,onPanResponderTerminate:()=>{re(),F(0)}}),[e,o,g,re,te,c,le,ce,ne,v]),he=!c,ve=(0,_react().useCallback)(()=>he,[he]),be=(0,_react().useMemo)(()=>({paddingVertical:h}),[h]),ge=(0,_react().useCallback)(e=>{M.current=e.nativeEvent.contentOffset.y},[]),ye=(0,_react().useCallback)(()=>{R.current=!1,N(),te()},[N,te]),xe=(0,_react().useCallback)(e=>{if(c)return;const t=e.nativeEvent.contentOffset.y;M.current=t,N(),V.current=setTimeout(()=>{R.current||(O(M.current,!0),re())},80)},[N,O,re,c]),Ee=(0,_react().useCallback)(()=>{R.current=!0,N(),te()},[N,te]),ke=(0,_react().useCallback)(e=>{R.current=!1,N();const t=e.nativeEvent.contentOffset.y;M.current=t,O(t,!1),re()},[N,O,re]);return f?_react().default.createElement(_reactNative().View,_extends({style:[W.column,{height:y},W.grab],onWheel:ue},pe.panHandlers),_react().default.createElement(_reactNative().View,{style:P,pointerEvents:"none"},_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"top",color:u,left:0,right:0})}),_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"bottom",color:u,left:0,right:0})})),_react().default.createElement(_reactNative().View,{style:[me,fe],onTransitionEnd:_e},_react().default.createElement(T,null),de.topSpacer,de.items,de.bottomSpacer,_react().default.createElement(T,null))):_react().default.createElement(_reactNative().View,{style:[W.column,{height:y}],collapsable:!1},_react().default.createElement(_reactNative().View,{style:P,pointerEvents:"none"},_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"top",color:u,left:0,right:0})}),_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"bottom",color:u,left:0,right:0})})),_react().default.createElement(_reactNative().ScrollView,{ref:p,showsVerticalScrollIndicator:!1,scrollEventThrottle:C,decelerationRate:s,snapToInterval:o,snapToAlignment:"start",bounces:!1,overScrollMode:"never",nestedScrollEnabled:!0,contentContainerStyle:be,onStartShouldSetResponderCapture:ve,onMoveShouldSetResponderCapture:ve,onScroll:ge,onScrollBeginDrag:ye,onScrollEndDrag:xe,onMomentumScrollBegin:Ee,onMomentumScrollEnd:ke,scrollEnabled:!c},e.map((e,t)=>_react().default.createElement(WheelPickerItem,{key:`${t}-${String(e.value??"")}`,item:e,index:t,itemHeight:o,active:t===k,disabled:!!e.disabled,renderItem:l}))))},WheelPicker=_react().default.memo(WheelPickerInner),PickerColumn=_react().default.memo(e=>{const{columnIndex:t,options:r,value:n,itemHeight:a,visibleItemCount:l,optionRender:o,getOptionTestID:i,getOptionA11yLabel:c,onSelect:u,tokens:s,readOnly:d,decelerationRate:m,scrollEventThrottle:f,swipeDuration:_}=e,p=Math.max(1,Math.floor((l-1)/2)),h=(0,_react().useMemo)(()=>new Map(r.map((e,t)=>[e.value,t])),[r]),v=(0,_react().useMemo)(()=>{if(!r.length)return 0;const e=h.get(n),t="number"==typeof e&&e>=0?e:0;return(0,_normalize.findEnabledIndex)(r,t)},[r,n,h]),b=(0,_react().useCallback)(e=>{const n=(0,_normalize.findEnabledIndex)(r,e),a=r[n];a&&!a.disabled&&u(a,t,n)},[t,u,r]),{text:g,textDisabled:y,textMuted:x}=s.colors,E={fontSize:s.typography.optionSize,fontFamily:s.typography.fontFamily,fontWeight:s.typography.optionWeight},k=(0,_react().useCallback)((e,r,n)=>{const{active:l=!1,disabled:u=!1}=n??{},s=u?y:l?g:x,d=o?o(e,{columnIndex:t,active:l}):e.label??e.value,m=i?.(e,{columnIndex:t,active:l}),f=c?.(e,{columnIndex:t,active:l});return _react().default.createElement(_reactNative().View,{style:[W.option,{opacity:u?.5:1,minHeight:a}],testID:m,accessible:!!f,accessibilityLabel:f},(0,_validate.isText)(d)?_react().default.createElement(_reactNative().Text,{numberOfLines:1,style:[S.optTxt,E,{color:s}]},d):d)},[g,y,x,t,c,i,a,E,o]);return _react().default.createElement(_reactNative().View,{style:[W.column,{height:a*l}]},_react().default.createElement(WheelPicker,{data:r,itemHeight:a,visibleRest:p,selectedIndex:Math.max(0,v),onChange:b,readOnly:d,indicatorColor:s.colors.indicator,decelerationRate:m,scrollEventThrottle:f,swipeDuration:_,renderItem:k}))}),PickerImpl=e=>{const{tokensOverride:t}=e,r=(0,_useLocale.useLocale)(),n=(0,_tokens.usePickerTokens)(t),{columns:a=[],value:l,defaultValue:o,title:i,showToolbar:c=n.defaults.showToolbar,toolbarPosition:u=n.defaults.toolbarPosition,confirmButtonText:s=r?.confirm??"Confirm",cancelButtonText:d=r?.cancel??"Cancel",itemHeight:m=n.defaults.itemHeight,visibleItemCount:f=n.defaults.visibleItemCount,loading:_=!1,readOnly:p=!1,decelerationRate:h=_reactNative().Platform.select({ios:.999,android:.997,default:.989})??"normal",swipeDuration:v=n.defaults.swipeDuration,scrollEventThrottle:b=16,columnsTop:g,columnsBottom:y,optionRender:x,getOptionTestID:E,getOptionA11yLabel:k,emitConfirmOnAutoSelect:w=!0,maskColor:C,maskType:I=n.defaults.maskType,onChange:T,onConfirm:P,onCancel:V,style:R,testID:M,...N}=e,O=(0,_value.getVisibleCount)(f??n.defaults.visibleItemCount),{normalized:W,handleSelect:D,handleConfirm:q,preparedColumns:z}=(0,_value.usePickerValue)({columns:a,valueProp:l,defaultValue:o,emitConfirmOnAutoSelect:w,onChange:T,onConfirm:P}),H="cascade"===z.type,j={fontSize:n.typography.toolbarSize,fontFamily:n.typography.fontFamily,fontWeight:n.typography.toolbarWeight},A=(e,t)=>_react().default.isValidElement(e)?_react().default.createElement(_reactNative().View,{style:S.actW},e):(0,_validate.isText)(e)?_react().default.createElement(_reactNative().Text,{numberOfLines:1,style:[S.actTxt,j,{color:t}]},e):_react().default.createElement(_reactNative().View,{style:S.actW}),F=c?_react().default.createElement(_reactNative().View,{style:[S.toolbar,{height:n.spacing.toolbarHeight,paddingHorizontal:n.spacing.actionPadding}]},_react().default.createElement(_reactNative().Pressable,{onPress:V,accessibilityRole:"button"},A(d,n.colors.cancel)),null==(L=i)?_react().default.createElement(_reactNative().View,null):_react().default.isValidElement(L)?_react().default.createElement(_reactNative().View,{style:S.ttlW},L):_react().default.createElement(_reactNative().Text,{style:[S.title,j,{color:n.colors.text}],numberOfLines:1},L),_react().default.createElement(_reactNative().Pressable,{onPress:q,accessibilityRole:"button"},A(s,n.colors.confirm)),_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"bottom",color:n.colors.indicator,left:0,right:0})})):null;var L;const B=m*O,$=Math.max(1,Math.floor((O-1)/2)),G=m*$,Y=G,J=W.columns.length>0,K=C??n.colors.mask,Q=J?W.columns.map((e,t)=>{const r=H?`${t}-${W.values.slice(0,t).map(String).join("|")}`:String(t);return _react().default.createElement(PickerColumn,{key:r,columnIndex:t,options:e,value:W.values[t],itemHeight:m,visibleItemCount:O,decelerationRate:h,scrollEventThrottle:b,optionRender:x,getOptionTestID:E,getOptionA11yLabel:k,readOnly:p,swipeDuration:v,onSelect:D,tokens:n})}):null;return _react().default.createElement(_reactNative().View,_extends({},N,{style:[{backgroundColor:n.colors.background,borderRadius:n.radius.container},R],testID:M}),"top"===u&&F,_react().default.createElement(_reactNative().View,{style:[S.body,{height:B}]},_react().default.createElement(_reactNative().View,{style:S.columns,pointerEvents:_?"none":"auto"},g,Q,y,J&&_react().default.createElement(_react().default.Fragment,null,_react().default.createElement(_reactNative().View,{pointerEvents:"none",style:[S.indicator,{top:G,height:m}]},_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"top",color:n.colors.indicator,left:0,right:0})}),_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"bottom",color:n.colors.indicator,left:0,right:0})})),_react().default.createElement(_value.GradientMask,{position:"top",height:Y,color:K,maskType:I}),_react().default.createElement(_value.GradientMask,{position:"bottom",height:Y,color:K,maskType:I}))),_&&_react().default.createElement(_reactNative().View,{style:[S.loading,{backgroundColor:n.colors.loadingMask}]},_react().default.createElement(_loading.default,null))),"bottom"===u&&F)},S=_reactNative().StyleSheet.create({body:{position:"relative",overflow:"hidden"},columns:{flex:1,flexDirection:"row"},optTxt:{includeFontPadding:!1},indicator:{position:"absolute",left:0,right:0,zIndex:3},toolbar:{flexDirection:"row",alignItems:"center",justifyContent:"space-between"},title:{flex:1,textAlign:"center"},ttlW:{flex:1,alignItems:"center",justifyContent:"center"},actTxt:{minWidth:44,textAlign:"center"},actW:{minWidth:44,alignItems:"center",justifyContent:"center"},loading:{position:"absolute",top:0,left:0,right:0,bottom:0,alignItems:"center",justifyContent:"center"}}),Picker=_react().default.memo(PickerImpl);var _default=exports.default=Picker;