react-native-system-ui 1.0.4 → 1.0.5

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 (209) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/components/action-sheet/ActionSheet.js +1 -1
  3. package/dist/cjs/components/action-sheet/types.js +1 -0
  4. package/dist/cjs/components/area/types.js +1 -0
  5. package/dist/cjs/components/avatar/types.js +1 -0
  6. package/dist/cjs/components/badge/types.js +1 -0
  7. package/dist/cjs/components/button/types.js +1 -0
  8. package/dist/cjs/components/calendar/types.js +1 -0
  9. package/dist/cjs/components/cascader/types.js +1 -0
  10. package/dist/cjs/components/cell/types.js +1 -0
  11. package/dist/cjs/components/checkbox/Checkbox.js +1 -1
  12. package/dist/cjs/components/checkbox/types.js +1 -0
  13. package/dist/cjs/components/circle/types.js +1 -0
  14. package/dist/cjs/components/collapse/Collapse.js +1 -1
  15. package/dist/cjs/components/collapse/types.js +1 -0
  16. package/dist/cjs/components/config-provider/locale/types.js +1 -0
  17. package/dist/cjs/components/config-provider/types.js +1 -0
  18. package/dist/cjs/components/count-down/types.js +1 -0
  19. package/dist/cjs/components/datetime-picker/types.js +1 -0
  20. package/dist/cjs/components/dialog/Dialog.js +1 -1
  21. package/dist/cjs/components/dialog/types.js +1 -0
  22. package/dist/cjs/components/divider/types.js +1 -0
  23. package/dist/cjs/components/empty/types.js +1 -0
  24. package/dist/cjs/components/error-boundary/types.js +1 -0
  25. package/dist/cjs/components/field/types.js +1 -0
  26. package/dist/cjs/components/flex/types.js +1 -0
  27. package/dist/cjs/components/form/Form.js +1 -1
  28. package/dist/cjs/components/form/FormItem.js +1 -1
  29. package/dist/cjs/components/form/FormList.js +1 -1
  30. package/dist/cjs/components/form/types.js +1 -0
  31. package/dist/cjs/components/grid/types.js +1 -0
  32. package/dist/cjs/components/image/types.js +1 -0
  33. package/dist/cjs/components/image-preview/ImagePreview.js +1 -1
  34. package/dist/cjs/components/image-preview/types.js +1 -0
  35. package/dist/cjs/components/input/types.js +1 -0
  36. package/dist/cjs/components/loading/types.js +1 -0
  37. package/dist/cjs/components/nav-bar/NavBar.js +1 -1
  38. package/dist/cjs/components/nav-bar/types.js +1 -0
  39. package/dist/cjs/components/notice-bar/NoticeBar.js +1 -1
  40. package/dist/cjs/components/notice-bar/types.js +1 -0
  41. package/dist/cjs/components/notify/types.js +1 -0
  42. package/dist/cjs/components/number-keyboard/types.js +1 -0
  43. package/dist/cjs/components/overlay/types.js +1 -0
  44. package/dist/cjs/components/password-input/types.js +1 -0
  45. package/dist/cjs/components/picker/Picker.js +1 -1
  46. package/dist/cjs/components/picker/types.js +1 -0
  47. package/dist/cjs/components/popup/Popup.js +1 -1
  48. package/dist/cjs/components/popup/types.js +1 -0
  49. package/dist/cjs/components/portal/types.js +1 -0
  50. package/dist/cjs/components/progress/types.js +1 -0
  51. package/dist/cjs/components/radio/types.js +1 -0
  52. package/dist/cjs/components/safe-area-view/types.js +1 -0
  53. package/dist/cjs/components/search/types.js +1 -0
  54. package/dist/cjs/components/selector/types.js +1 -0
  55. package/dist/cjs/components/share-sheet/ShareSheet.js +1 -1
  56. package/dist/cjs/components/share-sheet/types.js +1 -0
  57. package/dist/cjs/components/sidebar/types.js +1 -0
  58. package/dist/cjs/components/skeleton/types.js +1 -0
  59. package/dist/cjs/components/slider/Slider.js +1 -1
  60. package/dist/cjs/components/slider/types.js +1 -0
  61. package/dist/cjs/components/space/types.js +1 -0
  62. package/dist/cjs/components/stepper/types.js +1 -0
  63. package/dist/cjs/components/swiper/types.js +1 -0
  64. package/dist/cjs/components/switch/types.js +1 -0
  65. package/dist/cjs/components/tabbar/types.js +1 -0
  66. package/dist/cjs/components/tabs/Tabs.js +1 -1
  67. package/dist/cjs/components/tabs/types.js +1 -0
  68. package/dist/cjs/components/tag/types.js +1 -0
  69. package/dist/cjs/components/theme.js +1 -0
  70. package/dist/cjs/components/toast/Toast.js +1 -1
  71. package/dist/cjs/components/toast/types.js +1 -0
  72. package/dist/cjs/components/typography/types.js +1 -0
  73. package/dist/cjs/components/water-mark/types.js +1 -0
  74. package/dist/es/components/action-sheet/ActionSheet.js +1 -1
  75. package/dist/es/components/action-sheet/types.js +1 -0
  76. package/dist/es/components/area/types.js +1 -0
  77. package/dist/es/components/avatar/types.js +1 -0
  78. package/dist/es/components/badge/types.js +1 -0
  79. package/dist/es/components/button/types.js +1 -0
  80. package/dist/es/components/calendar/types.js +1 -0
  81. package/dist/es/components/cascader/types.js +1 -0
  82. package/dist/es/components/cell/types.js +1 -0
  83. package/dist/es/components/checkbox/Checkbox.js +1 -1
  84. package/dist/es/components/checkbox/types.js +1 -0
  85. package/dist/es/components/circle/types.js +1 -0
  86. package/dist/es/components/collapse/Collapse.js +1 -1
  87. package/dist/es/components/collapse/types.js +1 -0
  88. package/dist/es/components/config-provider/locale/types.js +1 -0
  89. package/dist/es/components/config-provider/types.js +1 -0
  90. package/dist/es/components/count-down/types.js +1 -0
  91. package/dist/es/components/datetime-picker/types.js +1 -0
  92. package/dist/es/components/dialog/Dialog.js +1 -1
  93. package/dist/es/components/dialog/types.js +1 -0
  94. package/dist/es/components/divider/types.js +1 -0
  95. package/dist/es/components/empty/types.js +1 -0
  96. package/dist/es/components/error-boundary/types.js +1 -0
  97. package/dist/es/components/field/types.js +1 -0
  98. package/dist/es/components/flex/types.js +1 -0
  99. package/dist/es/components/form/Form.js +1 -1
  100. package/dist/es/components/form/FormItem.js +1 -1
  101. package/dist/es/components/form/FormList.js +1 -1
  102. package/dist/es/components/form/types.js +1 -0
  103. package/dist/es/components/grid/types.js +1 -0
  104. package/dist/es/components/image/types.js +1 -0
  105. package/dist/es/components/image-preview/ImagePreview.js +1 -1
  106. package/dist/es/components/image-preview/types.js +1 -0
  107. package/dist/es/components/input/types.js +1 -0
  108. package/dist/es/components/loading/types.js +1 -0
  109. package/dist/es/components/nav-bar/NavBar.js +1 -1
  110. package/dist/es/components/nav-bar/types.js +1 -0
  111. package/dist/es/components/notice-bar/NoticeBar.js +1 -1
  112. package/dist/es/components/notice-bar/types.js +1 -0
  113. package/dist/es/components/notify/types.js +1 -0
  114. package/dist/es/components/number-keyboard/types.js +1 -0
  115. package/dist/es/components/overlay/types.js +1 -0
  116. package/dist/es/components/password-input/types.js +1 -0
  117. package/dist/es/components/picker/Picker.js +1 -1
  118. package/dist/es/components/picker/types.js +1 -0
  119. package/dist/es/components/popup/Popup.js +1 -1
  120. package/dist/es/components/popup/types.js +1 -0
  121. package/dist/es/components/portal/types.js +1 -0
  122. package/dist/es/components/progress/types.js +1 -0
  123. package/dist/es/components/radio/types.js +1 -0
  124. package/dist/es/components/safe-area-view/types.js +1 -0
  125. package/dist/es/components/search/types.js +1 -0
  126. package/dist/es/components/selector/types.js +1 -0
  127. package/dist/es/components/share-sheet/ShareSheet.js +1 -1
  128. package/dist/es/components/share-sheet/types.js +1 -0
  129. package/dist/es/components/sidebar/types.js +1 -0
  130. package/dist/es/components/skeleton/types.js +1 -0
  131. package/dist/es/components/slider/Slider.js +1 -1
  132. package/dist/es/components/slider/types.js +1 -0
  133. package/dist/es/components/space/types.js +1 -0
  134. package/dist/es/components/stepper/types.js +1 -0
  135. package/dist/es/components/swiper/types.js +1 -0
  136. package/dist/es/components/switch/types.js +1 -0
  137. package/dist/es/components/tabbar/types.js +1 -0
  138. package/dist/es/components/tabs/Tabs.js +1 -1
  139. package/dist/es/components/tabs/types.js +1 -0
  140. package/dist/es/components/tag/types.js +1 -0
  141. package/dist/es/components/theme.js +1 -0
  142. package/dist/es/components/toast/Toast.js +1 -1
  143. package/dist/es/components/toast/types.js +1 -0
  144. package/dist/es/components/typography/types.js +1 -0
  145. package/dist/es/components/water-mark/types.js +1 -0
  146. package/dist/types/components/action-sheet/types.d.ts +87 -0
  147. package/dist/types/components/area/types.d.ts +20 -0
  148. package/dist/types/components/avatar/types.d.ts +62 -0
  149. package/dist/types/components/badge/types.d.ts +57 -0
  150. package/dist/types/components/button/types.d.ts +109 -0
  151. package/dist/types/components/calendar/types.d.ts +111 -0
  152. package/dist/types/components/cascader/types.d.ts +142 -0
  153. package/dist/types/components/cell/types.d.ts +112 -0
  154. package/dist/types/components/checkbox/types.d.ts +99 -0
  155. package/dist/types/components/circle/types.d.ts +51 -0
  156. package/dist/types/components/collapse/types.d.ts +45 -0
  157. package/dist/types/components/config-provider/locale/types.d.ts +130 -0
  158. package/dist/types/components/config-provider/types.d.ts +10 -0
  159. package/dist/types/components/count-down/types.d.ts +29 -0
  160. package/dist/types/components/datetime-picker/types.d.ts +38 -0
  161. package/dist/types/components/dialog/types.d.ts +70 -0
  162. package/dist/types/components/divider/types.d.ts +48 -0
  163. package/dist/types/components/empty/types.d.ts +44 -0
  164. package/dist/types/components/error-boundary/types.d.ts +18 -0
  165. package/dist/types/components/field/types.d.ts +86 -0
  166. package/dist/types/components/flex/types.d.ts +37 -0
  167. package/dist/types/components/form/Form.d.ts +6 -0
  168. package/dist/types/components/form/types.d.ts +68 -0
  169. package/dist/types/components/grid/types.d.ts +77 -0
  170. package/dist/types/components/image/types.d.ts +53 -0
  171. package/dist/types/components/image-preview/types.d.ts +55 -0
  172. package/dist/types/components/input/types.d.ts +42 -0
  173. package/dist/types/components/loading/types.d.ts +32 -0
  174. package/dist/types/components/nav-bar/types.d.ts +67 -0
  175. package/dist/types/components/notice-bar/types.d.ts +26 -0
  176. package/dist/types/components/notify/types.d.ts +64 -0
  177. package/dist/types/components/number-keyboard/types.d.ts +35 -0
  178. package/dist/types/components/overlay/types.d.ts +13 -0
  179. package/dist/types/components/password-input/types.d.ts +35 -0
  180. package/dist/types/components/picker/types.d.ts +73 -0
  181. package/dist/types/components/popup/types.d.ts +41 -0
  182. package/dist/types/components/portal/types.d.ts +1 -0
  183. package/dist/types/components/progress/types.d.ts +51 -0
  184. package/dist/types/components/radio/types.d.ts +95 -0
  185. package/dist/types/components/safe-area-view/types.d.ts +1 -0
  186. package/dist/types/components/search/types.d.ts +28 -0
  187. package/dist/types/components/selector/types.d.ts +74 -0
  188. package/dist/types/components/share-sheet/types.d.ts +26 -0
  189. package/dist/types/components/sidebar/types.d.ts +64 -0
  190. package/dist/types/components/skeleton/types.d.ts +45 -0
  191. package/dist/types/components/slider/types.d.ts +38 -0
  192. package/dist/types/components/space/types.d.ts +39 -0
  193. package/dist/types/components/stepper/types.d.ts +46 -0
  194. package/dist/types/components/swiper/types.d.ts +29 -0
  195. package/dist/types/components/switch/types.d.ts +33 -0
  196. package/dist/types/components/tabbar/types.d.ts +39 -0
  197. package/dist/types/components/tabs/types.d.ts +64 -0
  198. package/dist/types/components/tag/types.d.ts +69 -0
  199. package/dist/types/components/theme.d.ts +112 -0
  200. package/dist/types/components/toast/types.d.ts +1 -0
  201. package/dist/types/components/typography/types.d.ts +66 -0
  202. package/dist/types/components/water-mark/types.d.ts +58 -0
  203. package/package.json +3 -3
  204. package/dist/cjs/components/form/FormContext.js +0 -1
  205. package/dist/cjs/components/form/utils.js +0 -1
  206. package/dist/es/components/form/FormContext.js +0 -1
  207. package/dist/es/components/form/utils.js +0 -1
  208. package/dist/types/components/form/FormContext.d.ts +0 -2
  209. package/dist/types/components/form/utils.d.ts +0 -7
@@ -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?null==U.current&&(U.current=requestAnimationFrame(()=>{U.current=null,D(q.current)})):D(r)},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.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;
@@ -0,0 +1 @@
1
+ "use strict";
@@ -1 +1 @@
1
- "use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Popup=void 0;var _safeAreaView=require("../safe-area-view"),_platform=require("../../platform"),_animation=require("../../hooks/animation"),_createPlatformShadow=require("../../utils/createPlatformShadow"),_validate=require("../../utils/validate");function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}var _Portal=_interopRequireDefault(require("../portal/Portal")),_hooks=require("../../hooks"),_useLocale=require("../config-provider/useLocale"),_useDirection=require("../config-provider/useDirection"),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var o=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var a,n,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(a=t?r:o){if(a.has(e))return a.get(e);a.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?a(i,t,n):i[t]=e[t]);return i})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)({}).hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},_extends.apply(null,arguments)}const AnimatedPressable=_reactNative().Animated.createAnimatedComponent(_reactNative().Pressable),EASE_OUT=_reactNative().Easing.bezier(.075,.82,.165,1),EASE_IN=_reactNative().Easing.bezier(.55,.055,.675,.19),CAPTURE=()=>!0,placementConfig={top:{container:{justifyContent:"flex-start",alignItems:"center"},axis:"y"},bottom:{container:{justifyContent:"flex-end",alignItems:"center"},axis:"y"},left:{container:{justifyContent:"center",alignItems:"flex-start"},axis:"x"},right:{container:{justifyContent:"center",alignItems:"flex-end"},axis:"x"},center:{container:{justifyContent:"center",alignItems:"center"},axis:"y"}},buildRadius=(e,t,o)=>{if(e)return"top"===t?{borderBottomLeftRadius:o,borderBottomRightRadius:o}:"bottom"===t?{borderTopLeftRadius:o,borderTopRightRadius:o}:"left"===t?{borderTopRightRadius:o,borderBottomRightRadius:o}:"right"===t?{borderTopLeftRadius:o,borderBottomLeftRadius:o}:{borderRadius:o}},hiddenStyle={opacity:0,shadowOpacity:0,shadowRadius:0,elevation:0},PopupImpl=e=>{const t=(0,_useLocale.useLocale)(),o=(0,_useDirection.useDirection)(),{visible:r,placement:a,position:n,title:i,description:c,tokensOverride:l,overlay:s=!0,overlayStyle:u,overlayAccessibilityLabel:d=t?.vanPopup?.closeOverlay??"Close overlay",closeOnOverlayPress:p,closeOnClickOverlay:f,overlayTestID:_="popup-overlay",closeable:m=!1,closeIcon:y,closeIconPosition:v="top-right",round:g,safeArea:h=!1,safeAreaInsetTop:b=!1,safeAreaInsetBottom:R,lockScroll:I=!0,destroyOnClose:P=!0,duration:O=300,zIndex:C,closeOnBackPress:E=!1,closeOnPopstate:x=!1,children:w,beforeClose:k,onClickOverlay:A,onClose:N,onOpen:z,onOpened:T,onClosed:W,stopPropagation:q=!0,style:L,contentAnimationStyle:V,...M}=e,j=a??n??"center",D=f??p??!0,B="center"===j,H=R??!1,F=(0,_tokens.usePopupTokens)(l),U=(0,_animation.useReducedMotion)(),X=(0,_react().useRef)({onOpened:T,onClosed:W,onOpen:z,onClose:N,beforeClose:k,onClickOverlay:A});X.current={onOpened:T,onClosed:W,onOpen:z,onClose:N,beforeClose:k,onClickOverlay:A};const Y=(0,_react().useMemo)(()=>{const e=(0,_createPlatformShadow.createPlatformShadow)(F.shadow),{colors:t,spacing:o,typography:r,layout:a}=F;return{popup:{backgroundColor:t.background,padding:o.padding,...e},title:{color:t.title,fontFamily:r.fontFamily,fontSize:r.titleSize,fontWeight:r.titleWeight,marginHorizontal:o.descriptionHorizontal,textAlign:"center"},titleWrap:{marginTop:o.titleTop,marginBottom:o.titleBottom,marginHorizontal:o.descriptionHorizontal,alignItems:"center"},desc:{color:t.description,fontFamily:r.fontFamily,fontSize:r.descriptionSize,lineHeight:r.descriptionLineHeight},descWrap:{marginHorizontal:o.descriptionHorizontal,marginBottom:o.descriptionBottom},closeBase:{minWidth:o.closeIconSize,minHeight:o.closeIconSize,padding:o.closeIconPadding},closeDef:{width:o.closeIconSize,height:o.closeIconSize},side:{width:a.sideWidth,maxWidth:a.maxWidth},center:{minWidth:a.minWidth,maxWidth:a.centerMaxWidth}}},[F]),[G,J]=(0,_react().useState)(r),[K,Q]=(0,_react().useState)(r),Z=r||K,$=D&&(N||k),ee=(0,_react().useRef)(new(_reactNative().Animated.Value)(0)).current,te=(0,_react().useRef)(null),oe=(0,_react().useRef)(0),re=(0,_react().useRef)(r),ae=(0,_react().useRef)(!1),ne="top"===j||"bottom"===j,ie="left"===j||"right"===j,ce="top"===j||"left"===j?-1:1,le=(0,_react().useCallback)((e,t)=>{oe.current+=1;const o=oe.current;te.current?.stop();const r=t?0:O,a=_reactNative().Animated.timing(ee,{toValue:e?1:0,duration:r,easing:e?EASE_OUT:EASE_IN,useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1});te.current=a,a.start(({finished:t})=>{t&&o===oe.current&&(e?X.current.onOpened?.():(Q(!1),P&&J(!1),X.current.onClosed?.()))})},[P,O,ee]);(0,_react().useEffect)(()=>{r?(J(!0),Q(!0),le(!0,U)):re.current&&le(!1,U)},[le,r,U]),(0,_react().useEffect)(()=>{r&&!re.current&&X.current.onOpen?.(),re.current=r},[r]),(0,_react().useEffect)(()=>()=>{te.current?.stop()},[]);const se=(0,_react().useCallback)(async e=>{if(!ae.current){ae.current=!0;try{if(X.current.beforeClose){if(!1===await X.current.beforeClose(e))return}X.current.onClose?.()}finally{ae.current=!1}}},[]);(0,_react().useEffect)(()=>{if(x)return(0,_platform.addPopStateListener)(()=>{r&&se("close")})},[x,se,r]);const ue=(0,_react().useCallback)(()=>{X.current.onClickOverlay?.(),D&&se("overlay")},[se,D]),de=(0,_react().useCallback)(()=>se("close-icon"),[se]),pe=(0,_react().useCallback)(()=>se("close"),[se]),{zIndex:fe}=(0,_hooks.useOverlayStack)({visible:Z,onClose:pe,closeOnBack:E,lockScroll:I,zIndex:C,type:"popup"}),{overlayRef:_e,overlayProps:me}=(0,_hooks.useAriaOverlay)({isOpen:Z,onClose:()=>se("overlay"),isDismissable:D,overlayProps:{..."android"===_reactNative().Platform.OS?{}:{accessibilityRole:"dialog"},accessibilityLiveRegion:"polite"}}),{onLayout:ye,...ve}=me,ge=(0,_react().useMemo)(()=>q?{...ve,onStartShouldSetResponder:CAPTURE}:ve,[ve,q]),he=placementConfig[j],be=buildRadius(g,j,F.radius.round),{width:Se,height:Re}=(0,_reactNative().useWindowDimensions)(),Ie=ie?Se:ne?Re:0,Pe=(0,_react().useMemo)(()=>{if(B)return null;const e=[Ie*ce,0];return"y"===he.axis?{translateY:ee.interpolate({inputRange:[0,1],outputRange:e})}:{translateX:ee.interpolate({inputRange:[0,1],outputRange:e})}},[he.axis,ce,Ie,B,ee]),Oe=(0,_react().useMemo)(()=>Pe?[Pe]:[],[Pe]),Ce=(0,_react().useMemo)(()=>{const e=V?.transform,t=Array.isArray(e)?[...Oe,...e]:Oe,o={...V,transform:t};return B?{...o,opacity:ee}:null==V?.opacity?{...o,opacity:1}:o},[Oe,V,B,ee]),[Ee,xe]=(0,_react().useState)(0),we=(0,_react().useCallback)(e=>xe(e.nativeEvent.layout.height),[]),ke=G||r,Ae=!Z,Ne=(0,_validate.isRenderable)(i)||(0,_validate.isRenderable)(c),ze=(0,_react().useMemo)(()=>{if(!Ne)return null;const e=F.spacing.closeIconRight+F.spacing.closeIconSize,t=m&&v.startsWith("top-")?v.endsWith("right")?{paddingRight:e}:{paddingLeft:e}:void 0,o=(e,t,o)=>(0,_validate.isRenderable)(e)?(0,_validate.isText)(e)?_react().default.createElement(_reactNative().Text,{style:t},e):_react().default.createElement(_reactNative().View,{style:o},e):null;return _react().default.createElement(_reactNative().View,{style:[S.header,t]},o(i,[S.title,Y.title],Y.titleWrap),o(c,[S.desc,Y.desc],Y.descWrap))},[m,v,c,Y,Ne,i,F.spacing.closeIconRight,F.spacing.closeIconSize]),Te=(0,_react().useMemo)(()=>{if(!m)return null;const e=null!=y,t=v.includes("bottom")?{bottom:F.spacing.closeIconTop}:{top:F.spacing.closeIconTop+Ee},r="rtl"===o,a=v.endsWith("left")?r?{right:F.spacing.closeIconRight}:{left:F.spacing.closeIconRight}:r?{left:F.spacing.closeIconRight}:{right:F.spacing.closeIconRight};return _react().default.createElement(_reactNative().Pressable,{style:[S.closeBase,Y.closeBase,t,a,!e&&Y.closeDef],hitSlop:8,onPress:de},e?y:_react().default.createElement(_reactNativeSystemIcon().Cross,{size:22,fill:F.colors.closeIcon,color:F.colors.closeIcon}))},[y,v,m,Y,de,Ee,F.colors.closeIcon,F.spacing.closeIconRight,F.spacing.closeIconTop]),We=Ne?_react().default.createElement(_react().default.Fragment,null,ze,w):w;if(!ke)return null;const qe=fe??C,Le=h?_react().default.createElement(_safeAreaView.SafeAreaView,null,We):_react().default.createElement(_react().default.Fragment,null,b&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"top",onLayout:we,pointerEvents:"none"}),We,H&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"bottom",pointerEvents:"none"}));return _react().default.createElement(_Portal.default,null,_react().default.createElement(_reactNative().View,{style:[S.root,qe?{zIndex:qe}:void 0],pointerEvents:"box-none"},_react().default.createElement(_reactNative().View,{style:[S.ctr,he.container],pointerEvents:Z?"auto":"none",accessibilityViewIsModal:Z,accessibilityLiveRegion:"polite",onAccessibilityEscape:pe},s&&Z?_react().default.createElement(AnimatedPressable,_extends({testID:_,style:[S.ovl,{backgroundColor:F.colors.overlay,opacity:ee},u],renderToHardwareTextureAndroid:"android"===_reactNative().Platform.OS,shouldRasterizeIOS:"ios"===_reactNative().Platform.OS,pointerEvents:Z?"auto":"none"},$?{accessibilityRole:"button",accessibilityLabel:d,accessibilityHint:t?.vanPopup?.closeHint??"Double-tap to close"}:{accessible:!1},{onPress:ue})):null,!s&&I&&Z?_react().default.createElement(_reactNative().View,{style:S.lock,pointerEvents:"auto",onStartShouldSetResponder:CAPTURE,onMoveShouldSetResponder:CAPTURE}):null,_react().default.createElement(_reactNative().Animated.View,_extends({ref:_e},ge,{onLayout:ye,renderToHardwareTextureAndroid:"android"===_reactNative().Platform.OS,shouldRasterizeIOS:"ios"===_reactNative().Platform.OS,style:[Y.popup,B&&Y.center,ne&&S.popV,ie&&Y.side,be,Ce,L,Ae&&hiddenStyle]},M),Te,Le))))},S=_reactNative().StyleSheet.create({root:{..._reactNative().StyleSheet.absoluteFillObject,justifyContent:"center"},ctr:{flex:1},ovl:{..._reactNative().StyleSheet.absoluteFillObject,opacity:0},header:{width:"100%"},title:{includeFontPadding:!1},desc:{includeFontPadding:!1},popV:{alignSelf:"stretch"},closeBase:{position:"absolute",zIndex:999,alignItems:"center",justifyContent:"center"},lock:{..._reactNative().StyleSheet.absoluteFillObject}}),Popup=exports.Popup=_react().default.memo(PopupImpl);var _default=exports.default=Popup;
1
+ "use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Popup=void 0;var _safeAreaView=require("../safe-area-view"),_platform=require("../../platform"),_animation=require("../../hooks/animation"),_createPlatformShadow=require("../../utils/createPlatformShadow"),_validate=require("../../utils/validate");function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}var _Portal=_interopRequireDefault(require("../portal/Portal")),_hooks=require("../../hooks"),_useLocale=require("../config-provider/useLocale"),_useDirection=require("../config-provider/useDirection"),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var o=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var a,n,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(a=t?r:o){if(a.has(e))return a.get(e);a.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?a(i,t,n):i[t]=e[t]);return i})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)({}).hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},_extends.apply(null,arguments)}const AnimatedPressable=_reactNative().Animated.createAnimatedComponent(_reactNative().Pressable),EASE_OUT=_reactNative().Easing.bezier(.075,.82,.165,1),EASE_IN=_reactNative().Easing.bezier(.55,.055,.675,.19),CAPTURE=()=>!0,placementConfig={top:{container:{justifyContent:"flex-start",alignItems:"center"},axis:"y"},bottom:{container:{justifyContent:"flex-end",alignItems:"center"},axis:"y"},left:{container:{justifyContent:"center",alignItems:"flex-start"},axis:"x"},right:{container:{justifyContent:"center",alignItems:"flex-end"},axis:"x"},center:{container:{justifyContent:"center",alignItems:"center"},axis:"y"}},buildRadius=(e,t,o)=>e?"top"===t?{borderBottomLeftRadius:o,borderBottomRightRadius:o}:"bottom"===t?{borderTopLeftRadius:o,borderTopRightRadius:o}:"left"===t?{borderTopRightRadius:o,borderBottomRightRadius:o}:"right"===t?{borderTopLeftRadius:o,borderBottomLeftRadius:o}:{borderRadius:o}:void 0,hiddenStyle={opacity:0,shadowOpacity:0,shadowRadius:0,elevation:0},PopupImpl=e=>{const t=(0,_useLocale.useLocale)(),o=(0,_useDirection.useDirection)(),{visible:r,placement:a,position:n,title:i,description:c,tokensOverride:l,overlay:s=!0,overlayStyle:u,overlayAccessibilityLabel:d=t?.vanPopup?.closeOverlay??"Close overlay",closeOnOverlayPress:p,closeOnClickOverlay:f,overlayTestID:_="popup-overlay",closeable:m=!1,closeIcon:v,closeIconPosition:y="top-right",round:g,safeArea:h=!1,safeAreaInsetTop:b=!1,safeAreaInsetBottom:R,lockScroll:I=!0,destroyOnClose:P=!0,duration:O=300,zIndex:C,closeOnBackPress:E=!1,closeOnPopstate:x=!1,children:w,beforeClose:k,onClickOverlay:A,onClose:N,onOpen:z,onOpened:T,onClosed:W,stopPropagation:q=!0,style:L,contentAnimationStyle:V,...M}=e,j=a??n??"center",D=f??p??!0,B="center"===j,H=R??!1,F=(0,_tokens.usePopupTokens)(l),U=(0,_animation.useReducedMotion)(),X=(0,_react().useRef)({onOpened:T,onClosed:W,onOpen:z,onClose:N,beforeClose:k,onClickOverlay:A});X.current={onOpened:T,onClosed:W,onOpen:z,onClose:N,beforeClose:k,onClickOverlay:A};const Y=(0,_react().useMemo)(()=>{const e=(0,_createPlatformShadow.createPlatformShadow)(F.shadow),{colors:t,spacing:o,typography:r,layout:a}=F;return{popup:{backgroundColor:t.background,padding:o.padding,...e},title:{color:t.title,fontFamily:r.fontFamily,fontSize:r.titleSize,fontWeight:r.titleWeight,marginHorizontal:o.descriptionHorizontal,textAlign:"center"},titleWrap:{marginTop:o.titleTop,marginBottom:o.titleBottom,marginHorizontal:o.descriptionHorizontal,alignItems:"center"},desc:{color:t.description,fontFamily:r.fontFamily,fontSize:r.descriptionSize,lineHeight:r.descriptionLineHeight},descWrap:{marginHorizontal:o.descriptionHorizontal,marginBottom:o.descriptionBottom},closeBase:{minWidth:o.closeIconSize,minHeight:o.closeIconSize,padding:o.closeIconPadding},closeDef:{width:o.closeIconSize,height:o.closeIconSize},side:{width:a.sideWidth,maxWidth:a.maxWidth},center:{minWidth:a.minWidth,maxWidth:a.centerMaxWidth}}},[F]),[G,J]=(0,_react().useState)(r),[K,Q]=(0,_react().useState)(r),Z=r||K,$=D&&(N||k),ee=(0,_react().useRef)(new(_reactNative().Animated.Value)(0)).current,te=(0,_react().useRef)(null),oe=(0,_react().useRef)(0),re=(0,_react().useRef)(r),ae=(0,_react().useRef)(!1),ne="top"===j||"bottom"===j,ie="left"===j||"right"===j,ce="top"===j||"left"===j?-1:1,le=(0,_react().useCallback)((e,t)=>{oe.current+=1;const o=oe.current;te.current?.stop();const r=t?0:O,a=_reactNative().Animated.timing(ee,{toValue:e?1:0,duration:r,easing:e?EASE_OUT:EASE_IN,useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1});te.current=a,a.start(({finished:t})=>{t&&o===oe.current&&(e?X.current.onOpened?.():(Q(!1),P&&J(!1),X.current.onClosed?.()))})},[P,O,ee]);(0,_react().useEffect)(()=>{r?(J(!0),Q(!0),le(!0,U)):re.current&&le(!1,U)},[le,r,U]),(0,_react().useEffect)(()=>{r&&!re.current&&X.current.onOpen?.(),re.current=r},[r]),(0,_react().useEffect)(()=>()=>{te.current?.stop()},[]);const se=(0,_react().useCallback)(async e=>{if(!ae.current){ae.current=!0;try{if(X.current.beforeClose){if(!1===await X.current.beforeClose(e))return}X.current.onClose?.()}finally{ae.current=!1}}},[]);(0,_react().useEffect)(()=>{if(x)return(0,_platform.addPopStateListener)(()=>{r&&se("close")})},[x,se,r]);const ue=(0,_react().useCallback)(()=>{X.current.onClickOverlay?.(),D&&se("overlay")},[se,D]),de=(0,_react().useCallback)(()=>se("close-icon"),[se]),pe=(0,_react().useCallback)(()=>se("close"),[se]),{zIndex:fe}=(0,_hooks.useOverlayStack)({visible:Z,onClose:pe,closeOnBack:E,lockScroll:I,zIndex:C,type:"popup"}),{overlayRef:_e,overlayProps:me}=(0,_hooks.useAriaOverlay)({isOpen:Z,onClose:()=>se("overlay"),isDismissable:D,overlayProps:{..."android"===_reactNative().Platform.OS?{}:{accessibilityRole:"dialog"},accessibilityLiveRegion:"polite"}}),{onLayout:ve,...ye}=me,ge=(0,_react().useMemo)(()=>q?{...ye,onStartShouldSetResponder:CAPTURE}:ye,[ye,q]),he=placementConfig[j],be=buildRadius(g,j,F.radius.round),{width:Se,height:Re}=(0,_reactNative().useWindowDimensions)(),Ie=ie?Se:ne?Re:0,Pe=(0,_react().useMemo)(()=>{if(B)return null;const e=[Ie*ce,0];return"y"===he.axis?{translateY:ee.interpolate({inputRange:[0,1],outputRange:e})}:{translateX:ee.interpolate({inputRange:[0,1],outputRange:e})}},[he.axis,ce,Ie,B,ee]),Oe=(0,_react().useMemo)(()=>Pe?[Pe]:[],[Pe]),Ce=(0,_react().useMemo)(()=>{const e=V?.transform,t=Array.isArray(e)?[...Oe,...e]:Oe,o={...V,transform:t};return B?{...o,opacity:ee}:null==V?.opacity?{...o,opacity:1}:o},[Oe,V,B,ee]),[Ee,xe]=(0,_react().useState)(0),we=(0,_react().useCallback)(e=>xe(e.nativeEvent.layout.height),[]),ke=G||r,Ae=!Z,Ne=(0,_validate.isRenderable)(i)||(0,_validate.isRenderable)(c),ze=(0,_react().useMemo)(()=>{if(!Ne)return null;const e=F.spacing.closeIconRight+F.spacing.closeIconSize,t=m&&y.startsWith("top-")?y.endsWith("right")?{paddingRight:e}:{paddingLeft:e}:void 0,o=(e,t,o)=>(0,_validate.isRenderable)(e)?(0,_validate.isText)(e)?_react().default.createElement(_reactNative().Text,{style:t},e):_react().default.createElement(_reactNative().View,{style:o},e):null;return _react().default.createElement(_reactNative().View,{style:[S.header,t]},o(i,[S.title,Y.title],Y.titleWrap),o(c,[S.desc,Y.desc],Y.descWrap))},[m,y,c,Y,Ne,i,F.spacing.closeIconRight,F.spacing.closeIconSize]),Te=(0,_react().useMemo)(()=>{if(!m)return null;const e=null!=v,t=y.includes("bottom")?{bottom:F.spacing.closeIconTop}:{top:F.spacing.closeIconTop+Ee},r="rtl"===o,a=y.endsWith("left")?r?{right:F.spacing.closeIconRight}:{left:F.spacing.closeIconRight}:r?{left:F.spacing.closeIconRight}:{right:F.spacing.closeIconRight};return _react().default.createElement(_reactNative().Pressable,{style:[S.closeBase,Y.closeBase,t,a,!e&&Y.closeDef],hitSlop:8,onPress:de},e?v:_react().default.createElement(_reactNativeSystemIcon().Cross,{size:22,fill:F.colors.closeIcon,color:F.colors.closeIcon}))},[v,y,m,Y,de,Ee,F.colors.closeIcon,F.spacing.closeIconRight,F.spacing.closeIconTop]),We=Ne?_react().default.createElement(_react().default.Fragment,null,ze,w):w;if(!ke)return null;const qe=fe??C,Le=h?_react().default.createElement(_safeAreaView.SafeAreaView,null,We):_react().default.createElement(_react().default.Fragment,null,b&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"top",onLayout:we,pointerEvents:"none"}),We,H&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"bottom",pointerEvents:"none"}));return _react().default.createElement(_Portal.default,null,_react().default.createElement(_reactNative().View,{style:[S.root,qe?{zIndex:qe}:void 0],pointerEvents:"box-none"},_react().default.createElement(_reactNative().View,{style:[S.ctr,he.container],pointerEvents:Z?"auto":"none",accessibilityViewIsModal:Z,accessibilityLiveRegion:"polite",onAccessibilityEscape:pe},s&&Z?_react().default.createElement(AnimatedPressable,_extends({testID:_,style:[S.ovl,{backgroundColor:F.colors.overlay,opacity:ee},u],renderToHardwareTextureAndroid:"android"===_reactNative().Platform.OS,shouldRasterizeIOS:"ios"===_reactNative().Platform.OS,pointerEvents:Z?"auto":"none"},$?{accessibilityRole:"button",accessibilityLabel:d,accessibilityHint:t?.vanPopup?.closeHint??"Double-tap to close"}:{accessible:!1},{onPress:ue})):null,!s&&I&&Z?_react().default.createElement(_reactNative().View,{style:S.lock,pointerEvents:"auto",onStartShouldSetResponder:CAPTURE,onMoveShouldSetResponder:CAPTURE}):null,_react().default.createElement(_reactNative().Animated.View,_extends({ref:_e},ge,{onLayout:ve,renderToHardwareTextureAndroid:"android"===_reactNative().Platform.OS,shouldRasterizeIOS:"ios"===_reactNative().Platform.OS,style:[Y.popup,B&&Y.center,ne&&S.popV,ie&&Y.side,be,Ce,L,Ae&&hiddenStyle]},M),Te,Le))))},S=_reactNative().StyleSheet.create({root:{..._reactNative().StyleSheet.absoluteFillObject,justifyContent:"center"},ctr:{flex:1},ovl:{..._reactNative().StyleSheet.absoluteFillObject,opacity:0},header:{width:"100%"},title:{includeFontPadding:!1},desc:{includeFontPadding:!1},popV:{alignSelf:"stretch"},closeBase:{position:"absolute",zIndex:999,alignItems:"center",justifyContent:"center"},lock:{..._reactNative().StyleSheet.absoluteFillObject}}),Popup=exports.Popup=_react().default.memo(PopupImpl);var _default=exports.default=Popup;
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ "use strict";
@@ -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"),_hairline=require("../../utils/hairline"),_validate=require("../../utils/validate"),_utils=require("../../utils"),_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,i,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)&&((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 a=arguments[t];for(var r in a)({}).hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},_extends.apply(null,arguments)}const no=e=>e&&0!==e.length?Array.isArray(e[0])?e:[e]:[],ShareSheetOptionItem=_react().default.memo(({option:e,index:t,columns:a,tokens:r,onSelect:n})=>{const i={width:100/a+"%"},o={width:r.sizing.icon,height:r.sizing.icon},c=(0,_hooks.useAriaPress)({onPress:()=>n(e,t),extraProps:{accessibilityRole:"menuitem",accessibilityLabel:(0,_validate.isText)(e.name)?String(e.name):void 0,testID:`rv-share-sheet-item-${t}`}}),l=(0,_validate.isText)(e.icon)?(0,_utils.renderTextOrNode)(e.icon,[]):e.icon;return _react().default.createElement(_reactNative().Pressable,_extends({style:[S.o,i]},c.interactionProps),_react().default.createElement(_reactNative().View,{style:[S.ic,o,{marginHorizontal:r.spacing.iconMarginHorizontal}]},l),(0,_validate.isValidNode)(e.name)&&(0,_utils.renderTextOrNode)(e.name,[S.ot,{color:r.colors.option,fontFamily:r.typography.fontFamily,fontSize:r.typography.option,paddingHorizontal:r.spacing.optionTextPaddingHorizontal}]),(0,_validate.isValidNode)(e.description)&&((0,_validate.isText)(e.description)?(0,_utils.renderTextOrNode)(e.description,[S.od,{color:r.colors.optionDesc,fontFamily:r.typography.fontFamily,marginTop:r.spacing.gap,fontSize:r.typography.optionDesc,paddingHorizontal:r.spacing.optionDescPaddingHorizontal}]):_react().default.createElement(_reactNative().View,{style:[S.odn,{marginTop:r.spacing.gap,paddingHorizontal:r.spacing.optionDescPaddingHorizontal}]},e.description)))}),ShareSheetCancel=_react().default.memo(({cancelText:e,tokens:t,onPress:a})=>{const r=(0,_hooks.useAriaPress)({onPress:a,extraProps:{testID:"rv-share-sheet-cancel",accessibilityRole:"button"}});return _react().default.createElement(_reactNative().View,{style:{backgroundColor:t.colors.divider}},_react().default.createElement(_reactNative().Pressable,_extends({style:[S.c,{backgroundColor:t.colors.background,paddingVertical:t.spacing.cancelPaddingVertical,marginTop:t.spacing.cancelMarginTop}]},r.interactionProps),(0,_utils.renderTextOrNode)(e,[S.ct,{color:t.colors.option,fontFamily:t.typography.fontFamily,fontSize:t.typography.cancel}])))}),ShareSheetImpl=e=>{const t=(0,_useLocale.useLocale)(),{visible:a,title:r,description:n,cancelText:i=t?.vanShareSheet?.cancel??t?.cancel??"Cancel",options:o,columns:c=4,closeOnSelect:l=!0,safeAreaInsetBottom:s=!0,children:d,tokensOverride:p,onSelect:u,onCancel:g,onClose:_,lockScroll:f=!0,overlay:h=!0,round:m=!0,style:y,placement:v,position:x,...T}=e,k=(0,_tokens.useShareSheetTokens)(p),P=no(o),b=(0,_validate.isFiniteNumber)(c)?Math.max(1,Math.floor(c)):4,N=(0,_validate.isValidNode)(r),w=(0,_validate.isValidNode)(n),z=(0,_validate.isValidNode)(i),M=(0,_react().useRef)(g),V=(0,_react().useRef)(_),O=(0,_react().useRef)(u);M.current=g,V.current=_,O.current=u;const E=(0,_react().useCallback)(e=>{e&&M.current?.(),V.current?.()},[]),q=(0,_react().useCallback)((e,t)=>{O.current?.(e,t),e.onPress?.(e),l&&E()},[E,l]),C=(0,_react().useCallback)(()=>E(!0),[E]),I=[S.w,{backgroundColor:k.colors.background}],F=[S.or,{paddingLeft:k.spacing.gap,paddingVertical:12}],H=(0,_react().useMemo)(()=>{if(!P.length)return null;let e=0;return P.map((t,a)=>_react().default.createElement(_reactNative().View,{key:a},a>0&&_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"top",color:k.colors.border,left:k.spacing.horizontal,right:k.spacing.horizontal})}),_react().default.createElement(_reactNative().View,{style:F},t.map(t=>{const a=e++;return _react().default.createElement(ShareSheetOptionItem,{key:t.key??a,option:t,index:a,columns:b,tokens:k,onSelect:q})}))))},[P,F,q,b,k]),R=(0,_react().useMemo)(()=>N||w?_react().default.createElement(_reactNative().View,{style:[S.h,{paddingTop:k.spacing.headerPaddingTop,paddingHorizontal:k.spacing.headerPaddingHorizontal,paddingBottom:k.spacing.headerPaddingBottom}]},N&&((0,_validate.isText)(r)?(0,_utils.renderTextOrNode)(r,[S.t,{color:k.colors.title,fontFamily:k.typography.fontFamily,fontSize:k.typography.title,marginTop:k.spacing.titleMarginTop}]):_react().default.createElement(_reactNative().View,{style:[S.n,{marginTop:k.spacing.nodeMarginTop}]},r)),w&&((0,_validate.isText)(n)?(0,_utils.renderTextOrNode)(n,[S.d,{color:k.colors.description,fontFamily:k.typography.fontFamily,fontSize:k.typography.description,marginTop:k.spacing.descriptionMarginTop}]):_react().default.createElement(_reactNative().View,{style:[S.n,{marginTop:k.spacing.nodeMarginTop}]},n))):null,[n,w,N,r,k.colors.description,k.colors.title,k.spacing.descriptionMarginTop,k.spacing.headerPaddingBottom,k.spacing.headerPaddingHorizontal,k.spacing.headerPaddingTop,k.spacing.nodeMarginTop,k.spacing.titleMarginTop,k.typography.description,k.typography.fontFamily,k.typography.title]),A=[{padding:k.spacing.popupPadding},y];return _react().default.createElement(_popup.default,_extends({},T,{visible:a,placement:"bottom",round:m,safeAreaInsetBottom:s,overlay:h,lockScroll:f,onClose:C,style:A}),_react().default.createElement(_reactNative().View,{accessibilityRole:"menu",style:I},R,H,d,z&&_react().default.createElement(ShareSheetCancel,{cancelText:i,tokens:k,onPress:C})))},S=_reactNative().StyleSheet.create({w:{width:"100%"},h:{alignItems:"center"},t:{fontWeight:"normal",textAlign:"center"},d:{textAlign:"center"},n:{alignItems:"center"},or:{flexDirection:"row",flexWrap:"wrap"},o:{alignItems:"center",justifyContent:"center"},ic:{alignItems:"center",justifyContent:"center"},ot:{fontWeight:"500",textAlign:"center"},od:{textAlign:"center"},odn:{alignItems:"center"},c:{alignItems:"center"},ct:{fontWeight:"500"}}),ShareSheet=_react().default.memo(ShareSheetImpl);ShareSheet.displayName="ShareSheet";var _default=exports.default=ShareSheet;
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"),_hairline=require("../../utils/hairline"),_validate=require("../../utils/validate"),_utils=require("../../utils"),_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,i,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)&&((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 a=arguments[t];for(var r in a)({}).hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},_extends.apply(null,arguments)}const no=e=>e&&0!==e.length?Array.isArray(e[0])?e:[e]:[],ShareSheetOptionItem=_react().default.memo(({option:e,index:t,columns:a,tokens:r,onSelect:n})=>{const i={width:100/a+"%"},o={width:r.sizing.icon,height:r.sizing.icon},c=(0,_hooks.useAriaPress)({onPress:()=>n(e,t),extraProps:{accessibilityRole:"web"===_reactNative().Platform.OS?"menuitem":"button",accessibilityLabel:(0,_validate.isText)(e.name)?String(e.name):void 0,testID:`rv-share-sheet-item-${t}`}}),l=(0,_validate.isText)(e.icon)?(0,_utils.renderTextOrNode)(e.icon,[]):e.icon;return _react().default.createElement(_reactNative().Pressable,_extends({style:[S.o,i]},c.interactionProps),_react().default.createElement(_reactNative().View,{style:[S.ic,o,{marginHorizontal:r.spacing.iconMarginHorizontal}]},l),(0,_validate.isValidNode)(e.name)&&(0,_utils.renderTextOrNode)(e.name,[S.ot,{color:r.colors.option,fontFamily:r.typography.fontFamily,fontSize:r.typography.option,paddingHorizontal:r.spacing.optionTextPaddingHorizontal}]),(0,_validate.isValidNode)(e.description)&&((0,_validate.isText)(e.description)?(0,_utils.renderTextOrNode)(e.description,[S.od,{color:r.colors.optionDesc,fontFamily:r.typography.fontFamily,marginTop:r.spacing.gap,fontSize:r.typography.optionDesc,paddingHorizontal:r.spacing.optionDescPaddingHorizontal}]):_react().default.createElement(_reactNative().View,{style:[S.odn,{marginTop:r.spacing.gap,paddingHorizontal:r.spacing.optionDescPaddingHorizontal}]},e.description)))}),ShareSheetCancel=_react().default.memo(({cancelText:e,tokens:t,onPress:a})=>{const r=(0,_hooks.useAriaPress)({onPress:a,extraProps:{testID:"rv-share-sheet-cancel",accessibilityRole:"button"}});return _react().default.createElement(_reactNative().View,{style:{backgroundColor:t.colors.divider}},_react().default.createElement(_reactNative().Pressable,_extends({style:[S.c,{backgroundColor:t.colors.background,paddingVertical:t.spacing.cancelPaddingVertical,marginTop:t.spacing.cancelMarginTop}]},r.interactionProps),(0,_utils.renderTextOrNode)(e,[S.ct,{color:t.colors.option,fontFamily:t.typography.fontFamily,fontSize:t.typography.cancel}])))}),ShareSheetImpl=e=>{const t=(0,_useLocale.useLocale)(),{visible:a,title:r,description:n,cancelText:i=t?.vanShareSheet?.cancel??t?.cancel??"Cancel",options:o,columns:c=4,closeOnSelect:l=!0,safeAreaInsetBottom:s=!0,children:d,tokensOverride:p,onSelect:u,onCancel:g,onClose:_,lockScroll:f=!0,overlay:m=!0,round:h=!0,style:y,placement:v,position:x,...T}=e,b=(0,_tokens.useShareSheetTokens)(p),P=no(o),k=(0,_validate.isFiniteNumber)(c)?Math.max(1,Math.floor(c)):4,N=(0,_validate.isValidNode)(r),w=(0,_validate.isValidNode)(n),z=(0,_validate.isValidNode)(i),M=(0,_react().useRef)(g),O=(0,_react().useRef)(_),V=(0,_react().useRef)(u);M.current=g,O.current=_,V.current=u;const E=(0,_react().useCallback)(e=>{e&&M.current?.(),O.current?.()},[]),q=(0,_react().useCallback)((e,t)=>{V.current?.(e,t),e.onPress?.(e),l&&E()},[E,l]),C=(0,_react().useCallback)(()=>E(!0),[E]),I=[S.w,{backgroundColor:b.colors.background}],F=[S.or,{paddingLeft:b.spacing.gap,paddingVertical:12}],H=(0,_react().useMemo)(()=>{if(!P.length)return null;let e=0;return P.map((t,a)=>_react().default.createElement(_reactNative().View,{key:a},a>0&&_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"top",color:b.colors.border,left:b.spacing.horizontal,right:b.spacing.horizontal})}),_react().default.createElement(_reactNative().View,{style:F},t.map(t=>{const a=e++;return _react().default.createElement(ShareSheetOptionItem,{key:t.key??a,option:t,index:a,columns:k,tokens:b,onSelect:q})}))))},[P,F,q,k,b]),R=(0,_react().useMemo)(()=>N||w?_react().default.createElement(_reactNative().View,{style:[S.h,{paddingTop:b.spacing.headerPaddingTop,paddingHorizontal:b.spacing.headerPaddingHorizontal,paddingBottom:b.spacing.headerPaddingBottom}]},N&&((0,_validate.isText)(r)?(0,_utils.renderTextOrNode)(r,[S.t,{color:b.colors.title,fontFamily:b.typography.fontFamily,fontSize:b.typography.title,marginTop:b.spacing.titleMarginTop}]):_react().default.createElement(_reactNative().View,{style:[S.n,{marginTop:b.spacing.nodeMarginTop}]},r)),w&&((0,_validate.isText)(n)?(0,_utils.renderTextOrNode)(n,[S.d,{color:b.colors.description,fontFamily:b.typography.fontFamily,fontSize:b.typography.description,marginTop:b.spacing.descriptionMarginTop}]):_react().default.createElement(_reactNative().View,{style:[S.n,{marginTop:b.spacing.nodeMarginTop}]},n))):null,[n,w,N,r,b.colors.description,b.colors.title,b.spacing.descriptionMarginTop,b.spacing.headerPaddingBottom,b.spacing.headerPaddingHorizontal,b.spacing.headerPaddingTop,b.spacing.nodeMarginTop,b.spacing.titleMarginTop,b.typography.description,b.typography.fontFamily,b.typography.title]),A=[{padding:b.spacing.popupPadding},y];return _react().default.createElement(_popup.default,_extends({},T,{visible:a,placement:"bottom",round:h,safeAreaInsetBottom:s,overlay:m,lockScroll:f,onClose:C,style:A}),_react().default.createElement(_reactNative().View,{accessibilityRole:"menu",style:I},R,H,d,z&&_react().default.createElement(ShareSheetCancel,{cancelText:i,tokens:b,onPress:C})))},S=_reactNative().StyleSheet.create({w:{width:"100%"},h:{alignItems:"center"},t:{fontWeight:"normal",textAlign:"center"},d:{textAlign:"center"},n:{alignItems:"center"},or:{flexDirection:"row",flexWrap:"wrap"},o:{alignItems:"center",justifyContent:"center"},ic:{alignItems:"center",justifyContent:"center"},ot:{fontWeight:"500",textAlign:"center"},od:{textAlign:"center"},odn:{alignItems:"center"},c:{alignItems:"center"},ct:{fontWeight:"500"}}),ShareSheet=_react().default.memo(ShareSheetImpl);ShareSheet.displayName="ShareSheet";var _default=exports.default=ShareSheet;
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ "use strict";
@@ -1 +1 @@
1
- "use strict";function _slider(){const e=require("@react-native-aria/slider");return _slider=function(){return e},e}function _utils(){const e=require("@react-native-aria/utils");return _utils=function(){return e},e}function _slider2(){const e=require("@react-stately/slider");return _slider2=function(){return e},e}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.Slider=void 0;var _tokens=require("./tokens"),_number=require("../../utils/number"),_hairline=require("../../utils/hairline"),_utils2=require("../../utils"),_validate=require("../../utils/validate"),_hooks=require("../../hooks");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 isSameLayout=(e,t)=>e.width===t.width&&e.height===t.height&&e.x===t.x&&e.y===t.y,normalizeValue=(e,t,r,a)=>{if(t){const t=Array.isArray(e)?e:(0,_validate.isFiniteNumber)(e)?[r,e]:[r,r],n=(0,_validate.isFiniteNumber)(t[0])?(0,_utils2.clamp)(t[0],r,a):r,i=(0,_validate.isFiniteNumber)(t[1]??t[0])?(0,_utils2.clamp)(t[1]??t[0],r,a):r;return n<=i?[n,i]:[i,n]}const n=Array.isArray(e)?e[0]:e;return[(0,_validate.isFiniteNumber)(n)?(0,_utils2.clamp)(n,r,a):r]},toSliderValue=(e,t,r)=>{if(t){const t=e[0]??r;return[t,e[1]??t]}return e[0]??r},createAccessibilityProps=e=>{if(!e)return{};const{role:t,"aria-value":r,accessibilityActions:a,onAccessibilityAction:n,disabled:i}=e;return{accessible:!0,accessibilityRole:t??"adjustable",accessibilityValue:r,accessibilityActions:a,onAccessibilityAction:n,accessibilityState:{disabled:i}}},defaultNumberFormatter="undefined"!=typeof Intl&&(0,_validate.isFunction)(Intl.NumberFormat)?new Intl.NumberFormat:{format:e=>String(e)},START_KEYS=["onResponderGrant","onPanResponderGrant"],MOVE_KEYS=["onResponderMove","onPanResponderMove"],END_KEYS=["onResponderRelease","onResponderTerminate","onPanResponderRelease","onPanResponderTerminate"],useTrackLayout=()=>{const e=(0,_react().useRef)(null),t=(0,_react().useRef)(null),[r,a]=(0,_react().useState)({width:0,height:0,x:0,y:0}),n=(0,_react().useCallback)(r=>{const{layout:n}=r.nativeEvent,i={width:Math.max(n.width,1),height:Math.max(n.height,1),x:n.x??0,y:n.y??0};a(e=>isSameLayout(e,i)?e:i),"web"===_reactNative().Platform.OS&&"undefined"!=typeof requestAnimationFrame&&null==t.current&&(t.current=requestAnimationFrame(()=>{t.current=null;const r=e.current;r?.measureInWindow&&r.measureInWindow((e,t,r,n)=>{const i={width:Math.max(r,1),height:Math.max(n,1),x:e,y:t};a(e=>isSameLayout(e,i)?e:i)})}))},[]);return(0,_react().useEffect)(()=>()=>{null!=t.current&&"function"==typeof cancelAnimationFrame&&cancelAnimationFrame(t.current),t.current=null},[]),{trackRef:e,trackLayout:r,handleTrackLayout:n}},ThumbNode=_react().default.memo(({index:e,orientation:t,ariaReverse:r,trackLayout:a,isDisabled:n,state:i,size:o,activeColor:u,content:c,visualPercent:s,thumbBackgroundColor:l,thumbElevation:d,indicatorSize:m,indicatorColor:f,webGestureStyle:h,enhanceHandlers:_})=>{const b=(0,_react().useRef)(null),{thumbProps:v,inputProps:p}=(0,_slider().useSliderThumb)({index:e,trackLayout:a,inputRef:b,isDisabled:n,orientation:t},i,r),y=v,g=_(y,e)??y??{},w=-o/2,k={width:o,height:o,borderRadius:o/2,borderColor:u,transform:[{translateX:w},{translateY:w}],..."vertical"===t?{top:`${s}%`,left:"50%"}:{left:`${s}%`,top:"50%"},...c?{}:{backgroundColor:l,elevation:d}},x={width:m,height:m,borderRadius:m/2,backgroundColor:f},R=createAccessibilityProps(p);return _react().default.createElement(_reactNative().View,_extends({},g,R,{pointerEvents:n?"none":"auto",style:[c?S.thw:S.t,h,k]}),null!=c?(0,_validate.isText)(c)?(0,_utils2.renderTextOrNode)(c,[]):c:_react().default.createElement(_reactNative().View,{style:x}),!c&&_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"all",color:u,borderRadius:o/2})}))});ThumbNode.displayName="ThumbNode";const SliderImpl=e=>{const{value:t,min:r=0,max:a=100,step:n=1,range:i=!1,vertical:o=!1,reverse:u=!1,disabled:c=!1,readOnly:s=!1,activeColor:l,inactiveColor:d,barHeight:m,trackHeight:f,buttonSize:h,thumbSize:_,tokensOverride:b,button:v,leftButton:p,rightButton:y,thumb:g,leftThumb:w,rightThumb:k,ariaLabel:x,onChange:R,onChangeAfter:M,onDragStart:N,onDragEnd:E,style:C,onLayout:F,...T}=e,A=(0,_tokens.useSliderTokens)(b),P=o?"vertical":"horizontal",{trackRef:V,trackLayout:z,handleTrackLayout:q}=useTrackLayout(),L=(0,_number.parseNumber)(r,0),O=(0,_number.parseNumber)(a,100),D=(0,_number.parseNumber)(n,1),j=D>0?D:1,I=Math.max(0,(0,_number.parseNumber)(m??f,A.track.height)),Y=Math.max(0,(0,_number.parseNumber)(h??_,A.thumb.size)),K=c||s,W=l??A.colors.active,H=d??A.colors.inactive,$=Math.max(O-L,1e-5),B=normalizeValue(t,i,L,O),G=void 0!==t,X=(0,_react().useRef)(R),J=(0,_react().useRef)(M),Q=(0,_react().useRef)(N),U=(0,_react().useRef)(E);X.current=R,J.current=M,Q.current=N,U.current=E;const Z=(0,_react().useCallback)(e=>toSliderValue(e,i,L),[i,L]),ee=(0,_react().useCallback)(e=>{X.current?.(Z(e))},[Z]),te=(0,_react().useCallback)(e=>{J.current?.(Z(e))},[Z]),re=(0,_react().useMemo)(()=>({minValue:L,maxValue:O,step:j,isDisabled:K,numberFormatter:defaultNumberFormatter,orientation:P,value:G?B:void 0,defaultValue:G?void 0:B,onChange:ee,onChangeEnd:te}),[K,ee,te,G,B,P,O,L,j]),ae=(0,_slider2().useSliderState)(re),ne="horizontal"===P?u||(0,_utils().isRTL)():u,ie="horizontal"===P?ne:u,{trackProps:oe}=(0,_slider().useSlider)({orientation:P,isDisabled:K,"aria-label":x??"Slider"},ae,z,ie),ue=oe,{style:ce,onLayout:se,...le}=ue,de=(0,_react().useCallback)(e=>{q(e),se?.(e)},[q,se]),me=(0,_react().useCallback)(e=>{if(K)return;if(!ae.values.every((e,t)=>!ae.isThumbDragging(t)))return;const{locationX:t,locationY:r,pageX:a,pageY:n}=e.nativeEvent,i=(0,_validate.isFiniteNumber)(t)?t:(0,_validate.isFiniteNumber)(a)?a-(z.x??0):0,o=(0,_validate.isFiniteNumber)(r)?r:(0,_validate.isFiniteNumber)(n)?n-(z.y??0):0,c="vertical"===P?z.height:z.width,s=("vertical"===P?o:i)/Math.max(c,1),l="vertical"===P?u?s:1-s:ne?1-s:s,d=ae.getPercentValue(Math.min(1,Math.max(0,l))),m=ae.values.reduce((e,t,r)=>Math.abs(t-d)<Math.abs(ae.values[e]-d)?r:e,0);m>=0&&ae.isThumbEditable(m)&&(e.preventDefault?.(),ae.setFocusedThumb(m),ae.setThumbDragging(m,!0),ae.setThumbValue(m,d),ae.setThumbDragging(m,!1))},[K,P,u,ne,ae,z.height,z.width,z.x,z.y]),{interactionProps:fe}=(0,_hooks.useAriaPress)({disabled:K,onPress:me,extraProps:le}),he=Z(ae.values),_e=(0,_react().useRef)(he),be=(0,_react().useRef)([]),ve=(0,_react().useRef)([]),pe=(0,_react().useRef)([]),ye=(0,_react().useRef)([]),ge=(0,_react().useRef)(new WeakMap);_e.current=he,(0,_react().useEffect)(()=>()=>{const e="function"==typeof cancelAnimationFrame?cancelAnimationFrame:void 0;if(e){for(const t of pe.current)null!=t&&e(t);pe.current=[],ye.current=[]}},[]);const Se=(0,_react().useCallback)((e,t)=>{if(!e)return e;if(!Q.current&&!U.current)return e;const r=ge.current.get(e),a=r?.get(t);if(a)return a;if(!(START_KEYS.some(t=>(0,_validate.isFunction)(e[t]))||MOVE_KEYS.some(t=>(0,_validate.isFunction)(e[t]))||END_KEYS.some(t=>(0,_validate.isFunction)(e[t]))))return e;const n={...e},i="function"==typeof requestAnimationFrame?requestAnimationFrame:void 0,o="function"==typeof cancelAnimationFrame?cancelAnimationFrame:void 0;for(const e of MOVE_KEYS){const r=n[e];if(!(0,_validate.isFunction)(r))continue;const a=r;n[e]=(...e)=>{i?(ye.current[t]=e,null==pe.current[t]&&(pe.current[t]=i(()=>{pe.current[t]=null;const e=ye.current[t];e&&(ye.current[t]=null,a(...e))}))):a(...e)}}const u=(e,t)=>{if(!t)return;const r=n[e];n[e]=(...e)=>{(0,_validate.isFunction)(r)&&r(...e),t(e[0])}},c=(e,t)=>{if(!t)return;const r=n[e];n[e]=(...e)=>{t(e[0]),(0,_validate.isFunction)(r)&&r(...e)}};for(const e of START_KEYS)u(e,()=>{be.current[t]=!1,ve.current[t]=_e.current});for(const e of MOVE_KEYS)c(e,e=>{be.current[t]||(be.current[t]=!0,Q.current?.(e,ve.current[t]??_e.current))});const s=e=>{be.current[t]&&(be.current[t]=!1,ve.current[t]=void 0,U.current?.(e,_e.current));const r=pe.current[t];null!=r&&o&&(o(r),pe.current[t]=null),ye.current[t]=null};for(const e of END_KEYS)u(e,s);const l=r??new Map;return l.set(t,n),r||ge.current.set(e,l),n},[]),we=ae.values,ke=(0,_react().useMemo)(()=>we.map(e=>((e??L)-L)/$*100),[L,$,we]),xe=(0,_react().useMemo)(()=>ke.map(e=>"vertical"===P?u?e:100-e:ne?100-e:e),[P,u,ne,ke]),Re=(0,_react().useMemo)(()=>{const e=xe[0]??0,t=xe[1]??e;return i&&xe.length>1?{offset:Math.min(e,t),size:Math.max(e,t)-Math.min(e,t)}:("horizontal"===P?!ne:u)?{offset:0,size:e}:{offset:e,size:100-e}},[P,i,u,ne,xe]),{track:{radius:Me}}=A,Ne=(0,_react().useMemo)(()=>({backgroundColor:W,borderRadius:Me,..."vertical"===P?{left:0,width:"100%",height:`${Math.max(Re.size,0)}%`,top:`${Math.max(Re.offset,0)}%`}:{top:0,height:"100%",width:`${Math.max(Re.size,0)}%`,left:`${Math.max(Re.offset,0)}%`}}),[Re.offset,Re.size,P,W,Me]),Ee=(0,_react().useMemo)(()=>"vertical"===P?[S.tv,{width:I,backgroundColor:H,alignSelf:"center"}]:[S.th,{height:I,backgroundColor:H}],[P,H,I]),Ce=(0,_validate.isFunction)(v)?v({value:he}):v??g,Fe=p??w??Ce,Te=y??k??Ce,Ae=(0,_react().useCallback)((e,t)=>t>1?0===e?Fe:Te:Ce,[Fe,Te,Ce]),Pe="web"===_reactNative().Platform.OS?{touchAction:"horizontal"===P?"pan-y":"pan-x",userSelect:"none"}:void 0,Ve=[S.tp,"vertical"===P?S.tpv:null,Pe],ze=(0,_react().useCallback)(e=>[Ve,ce(e)],[Ve,ce]),qe=ce&&(0,_validate.isFunction)(ce)?ze:[Ve,ce],{spacing:{containerPaddingVertical:Le},layout:{verticalMinHeight:Oe,verticalWidth:De},states:{disabledOpacity:je}}=A,Ie=[S.c,{paddingVertical:Le},"vertical"===P&&[S.vc,{minHeight:Oe,width:De}],c&&{opacity:je},C];return _react().default.createElement(_reactNative().View,_extends({style:Ie,onLayout:F},T),_react().default.createElement(_reactNative().View,{style:[S.tw,"vertical"===P&&S.twv]},_react().default.createElement(_reactNative().Pressable,_extends({ref:V},fe,{disabled:K,onLayout:de,style:qe}),_react().default.createElement(_reactNative().View,{style:[S.tb,{borderRadius:Me},...Ee]},_react().default.createElement(_reactNative().View,{style:[S.a,Ne]}))),we.map((e,t)=>_react().default.createElement(ThumbNode,{key:`thumb-${t}`,index:t,orientation:P,ariaReverse:ie,trackLayout:z,isDisabled:K,state:ae,size:Y,activeColor:W,content:Ae(t,we.length),visualPercent:xe[t]??0,thumbBackgroundColor:A.colors.thumbBackground,thumbElevation:A.thumb.elevation,indicatorSize:A.thumb.indicatorSize,indicatorColor:A.colors.thumbIndicator,webGestureStyle:Pe,enhanceHandlers:Se}))))},S=_reactNative().StyleSheet.create({c:{position:"relative",justifyContent:"center",width:"100%"},vc:{height:"100%",alignItems:"center",paddingVertical:0},tw:{width:"100%",justifyContent:"center",position:"relative"},twv:{flex:1,justifyContent:"center",alignItems:"center",width:"100%"},tp:{width:"100%",justifyContent:"center"},tpv:{flex:1,alignItems:"center"},tb:{overflow:"hidden",position:"relative"},th:{width:"100%"},tv:{height:"100%"},a:{position:"absolute"},t:{position:"absolute",alignItems:"center",justifyContent:"center"},thw:{position:"absolute",alignItems:"center",justifyContent:"center"}}),Slider=exports.Slider=_react().default.memo(SliderImpl);var _default=exports.default=Slider;
1
+ "use strict";function _slider(){const e=require("@react-native-aria/slider");return _slider=function(){return e},e}function _utils(){const e=require("@react-native-aria/utils");return _utils=function(){return e},e}function _slider2(){const e=require("@react-stately/slider");return _slider2=function(){return e},e}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.Slider=void 0;var _tokens=require("./tokens"),_number=require("../../utils/number"),_hairline=require("../../utils/hairline"),_utils2=require("../../utils"),_validate=require("../../utils/validate"),_hooks=require("../../hooks");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 isSameLayout=(e,t)=>e.width===t.width&&e.height===t.height&&e.x===t.x&&e.y===t.y,normalizeValue=(e,t,r,a)=>t?(()=>{const t=Array.isArray(e)?e:(0,_validate.isFiniteNumber)(e)?[r,e]:[r,r],n=(0,_validate.isFiniteNumber)(t[0])?(0,_utils2.clamp)(t[0],r,a):r,i=(0,_validate.isFiniteNumber)(t[1]??t[0])?(0,_utils2.clamp)(t[1]??t[0],r,a):r;return n<=i?[n,i]:[i,n]})():(()=>{const t=Array.isArray(e)?e[0]:e;return[(0,_validate.isFiniteNumber)(t)?(0,_utils2.clamp)(t,r,a):r]})(),toSliderValue=(e,t,r)=>t?[e[0]??r,e[1]??e[0]??r]:e[0]??r,createAccessibilityProps=e=>e?(()=>{const{role:t,"aria-value":r,accessibilityActions:a,onAccessibilityAction:n,disabled:i}=e;return{accessible:!0,accessibilityRole:t??"adjustable",accessibilityValue:r,accessibilityActions:a,onAccessibilityAction:n,accessibilityState:{disabled:i}}})():{},defaultNumberFormatter="undefined"!=typeof Intl&&(0,_validate.isFunction)(Intl.NumberFormat)?new Intl.NumberFormat:{format:e=>String(e)},START_KEYS=["onResponderGrant","onPanResponderGrant"],MOVE_KEYS=["onResponderMove","onPanResponderMove"],END_KEYS=["onResponderRelease","onResponderTerminate","onPanResponderRelease","onPanResponderTerminate"],useTrackLayout=()=>{const e=(0,_react().useRef)(null),t=(0,_react().useRef)(null),[r,a]=(0,_react().useState)({width:0,height:0,x:0,y:0}),n=(0,_react().useCallback)(r=>{const{layout:n}=r.nativeEvent,i={width:Math.max(n.width,1),height:Math.max(n.height,1),x:n.x??0,y:n.y??0};a(e=>isSameLayout(e,i)?e:i),"web"===_reactNative().Platform.OS&&"undefined"!=typeof requestAnimationFrame&&null==t.current&&(t.current=requestAnimationFrame(()=>{t.current=null;const r=e.current;r?.measureInWindow&&r.measureInWindow((e,t,r,n)=>{const i={width:Math.max(r,1),height:Math.max(n,1),x:e,y:t};a(e=>isSameLayout(e,i)?e:i)})}))},[]);return(0,_react().useEffect)(()=>()=>{null!=t.current&&"function"==typeof cancelAnimationFrame&&cancelAnimationFrame(t.current),t.current=null},[]),{trackRef:e,trackLayout:r,handleTrackLayout:n}},ThumbNode=_react().default.memo(({index:e,orientation:t,ariaReverse:r,trackLayout:a,isDisabled:n,state:i,size:o,activeColor:u,content:c,visualPercent:s,thumbBackgroundColor:l,thumbElevation:d,indicatorSize:m,indicatorColor:f,webGestureStyle:h,enhanceHandlers:_})=>{const b=(0,_react().useRef)(null),{thumbProps:v,inputProps:p}=(0,_slider().useSliderThumb)({index:e,trackLayout:a,inputRef:b,isDisabled:n,orientation:t},i,r),y=v,g=_(y,e)??y??{},w=-o/2,k={width:o,height:o,borderRadius:o/2,borderColor:u,transform:[{translateX:w},{translateY:w}],..."vertical"===t?{top:`${s}%`,left:"50%"}:{left:`${s}%`,top:"50%"},...c?{}:{backgroundColor:l,elevation:d}},x={width:m,height:m,borderRadius:m/2,backgroundColor:f},R=createAccessibilityProps(p);return _react().default.createElement(_reactNative().View,_extends({},g,R,{pointerEvents:n?"none":"auto",style:[c?S.thw:S.t,h,k]}),null!=c?(0,_validate.isText)(c)?(0,_utils2.renderTextOrNode)(c,[]):c:_react().default.createElement(_reactNative().View,{style:x}),!c&&_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"all",color:u,borderRadius:o/2})}))});ThumbNode.displayName="ThumbNode";const SliderImpl=e=>{const{value:t,min:r=0,max:a=100,step:n=1,range:i=!1,vertical:o=!1,reverse:u=!1,disabled:c=!1,readOnly:s=!1,activeColor:l,inactiveColor:d,barHeight:m,trackHeight:f,buttonSize:h,thumbSize:_,tokensOverride:b,button:v,leftButton:p,rightButton:y,thumb:g,leftThumb:w,rightThumb:k,ariaLabel:x,onChange:R,onChangeAfter:M,onDragStart:N,onDragEnd:E,style:C,onLayout:F,...T}=e,A=(0,_tokens.useSliderTokens)(b),P=o?"vertical":"horizontal",{trackRef:V,trackLayout:z,handleTrackLayout:q}=useTrackLayout(),L=(0,_number.parseNumber)(r,0),O=(0,_number.parseNumber)(a,100),D=(0,_number.parseNumber)(n,1),j=D>0?D:1,I=Math.max(0,(0,_number.parseNumber)(m??f,A.track.height)),Y=Math.max(0,(0,_number.parseNumber)(h??_,A.thumb.size)),K=c||s,W=l??A.colors.active,H=d??A.colors.inactive,$=Math.max(O-L,1e-5),B=normalizeValue(t,i,L,O),G=void 0!==t,X=(0,_react().useRef)(R),J=(0,_react().useRef)(M),Q=(0,_react().useRef)(N),U=(0,_react().useRef)(E);X.current=R,J.current=M,Q.current=N,U.current=E;const Z=(0,_react().useCallback)(e=>toSliderValue(e,i,L),[i,L]),ee=(0,_react().useCallback)(e=>{X.current?.(Z(e))},[Z]),te=(0,_react().useCallback)(e=>{J.current?.(Z(e))},[Z]),re=(0,_react().useMemo)(()=>({minValue:L,maxValue:O,step:j,isDisabled:K,numberFormatter:defaultNumberFormatter,orientation:P,value:G?B:void 0,defaultValue:G?void 0:B,onChange:ee,onChangeEnd:te}),[K,ee,te,G,B,P,O,L,j]),ae=(0,_slider2().useSliderState)(re),ne="horizontal"===P?u||(0,_utils().isRTL)():u,ie="horizontal"===P?ne:u,{trackProps:oe}=(0,_slider().useSlider)({orientation:P,isDisabled:K,"aria-label":x??"Slider"},ae,z,ie),ue=oe,{style:ce,onLayout:se,...le}=ue,de=(0,_react().useCallback)(e=>{q(e),se?.(e)},[q,se]),me=(0,_react().useCallback)(e=>{if(K)return;if(!ae.values.every((e,t)=>!ae.isThumbDragging(t)))return;const{locationX:t,locationY:r,pageX:a,pageY:n}=e.nativeEvent,i=(0,_validate.isFiniteNumber)(t)?t:(0,_validate.isFiniteNumber)(a)?a-(z.x??0):0,o=(0,_validate.isFiniteNumber)(r)?r:(0,_validate.isFiniteNumber)(n)?n-(z.y??0):0,c="vertical"===P?z.height:z.width,s=("vertical"===P?o:i)/Math.max(c,1),l="vertical"===P?u?s:1-s:ne?1-s:s,d=ae.getPercentValue(Math.min(1,Math.max(0,l))),m=ae.values.reduce((e,t,r)=>Math.abs(t-d)<Math.abs(ae.values[e]-d)?r:e,0);m>=0&&ae.isThumbEditable(m)&&(e.preventDefault?.(),ae.setFocusedThumb(m),ae.setThumbDragging(m,!0),ae.setThumbValue(m,d),ae.setThumbDragging(m,!1))},[K,P,u,ne,ae,z.height,z.width,z.x,z.y]),{interactionProps:fe}=(0,_hooks.useAriaPress)({disabled:K,onPress:me,extraProps:le}),he=Z(ae.values),_e=(0,_react().useRef)(he),be=(0,_react().useRef)([]),ve=(0,_react().useRef)([]),pe=(0,_react().useRef)([]),ye=(0,_react().useRef)([]),ge=(0,_react().useRef)(new WeakMap);_e.current=he,(0,_react().useEffect)(()=>()=>{const e="function"==typeof cancelAnimationFrame?cancelAnimationFrame:void 0;if(e){for(const t of pe.current)null!=t&&e(t);pe.current=[],ye.current=[]}},[]);const Se=(0,_react().useCallback)((e,t)=>{if(!e)return e;if(!Q.current&&!U.current)return e;const r=ge.current.get(e),a=r?.get(t);if(a)return a;if(!(START_KEYS.some(t=>(0,_validate.isFunction)(e[t]))||MOVE_KEYS.some(t=>(0,_validate.isFunction)(e[t]))||END_KEYS.some(t=>(0,_validate.isFunction)(e[t]))))return e;const n={...e},i="function"==typeof requestAnimationFrame?requestAnimationFrame:void 0,o="function"==typeof cancelAnimationFrame?cancelAnimationFrame:void 0;for(const e of MOVE_KEYS){const r=n[e];if(!(0,_validate.isFunction)(r))continue;const a=r;n[e]=(...e)=>{i?(ye.current[t]=e,null==pe.current[t]&&(pe.current[t]=i(()=>{pe.current[t]=null;const e=ye.current[t];e&&(ye.current[t]=null,a(...e))}))):a(...e)}}const u=(e,t)=>{if(!t)return;const r=n[e];n[e]=(...e)=>{(0,_validate.isFunction)(r)&&r(...e),t(e[0])}},c=(e,t)=>{if(!t)return;const r=n[e];n[e]=(...e)=>{t(e[0]),(0,_validate.isFunction)(r)&&r(...e)}};for(const e of START_KEYS)u(e,()=>{be.current[t]=!1,ve.current[t]=_e.current});for(const e of MOVE_KEYS)c(e,e=>{be.current[t]||(be.current[t]=!0,Q.current?.(e,ve.current[t]??_e.current))});const s=e=>{be.current[t]&&(be.current[t]=!1,ve.current[t]=void 0,U.current?.(e,_e.current));const r=pe.current[t];null!=r&&o&&(o(r),pe.current[t]=null),ye.current[t]=null};for(const e of END_KEYS)u(e,s);const l=r??new Map;return l.set(t,n),r||ge.current.set(e,l),n},[]),we=ae.values,ke=(0,_react().useMemo)(()=>we.map(e=>((e??L)-L)/$*100),[L,$,we]),xe=(0,_react().useMemo)(()=>ke.map(e=>"vertical"===P?u?e:100-e:ne?100-e:e),[P,u,ne,ke]),Re=(0,_react().useMemo)(()=>{const e=xe[0]??0,t=xe[1]??e;return i&&xe.length>1?{offset:Math.min(e,t),size:Math.max(e,t)-Math.min(e,t)}:("horizontal"===P?!ne:u)?{offset:0,size:e}:{offset:e,size:100-e}},[P,i,u,ne,xe]),{track:{radius:Me}}=A,Ne=(0,_react().useMemo)(()=>({backgroundColor:W,borderRadius:Me,..."vertical"===P?{left:0,width:"100%",height:`${Math.max(Re.size,0)}%`,top:`${Math.max(Re.offset,0)}%`}:{top:0,height:"100%",width:`${Math.max(Re.size,0)}%`,left:`${Math.max(Re.offset,0)}%`}}),[Re.offset,Re.size,P,W,Me]),Ee=(0,_react().useMemo)(()=>"vertical"===P?[S.tv,{width:I,backgroundColor:H,alignSelf:"center"}]:[S.th,{height:I,backgroundColor:H}],[P,H,I]),Ce=(0,_validate.isFunction)(v)?v({value:he}):v??g,Fe=p??w??Ce,Te=y??k??Ce,Ae=(0,_react().useCallback)((e,t)=>t>1?0===e?Fe:Te:Ce,[Fe,Te,Ce]),Pe="web"===_reactNative().Platform.OS?{touchAction:"horizontal"===P?"pan-y":"pan-x",userSelect:"none"}:void 0,Ve=[S.tp,"vertical"===P?S.tpv:null,Pe],ze=(0,_react().useCallback)(e=>[Ve,ce(e)],[Ve,ce]),qe=ce&&(0,_validate.isFunction)(ce)?ze:[Ve,ce],{spacing:{containerPaddingVertical:Le},layout:{verticalMinHeight:Oe,verticalWidth:De},states:{disabledOpacity:je}}=A,Ie=[S.c,{paddingVertical:Le},"vertical"===P&&[S.vc,{minHeight:Oe,width:De}],c&&{opacity:je},C];return _react().default.createElement(_reactNative().View,_extends({style:Ie,onLayout:F},T),_react().default.createElement(_reactNative().View,{style:[S.tw,"vertical"===P&&S.twv]},_react().default.createElement(_reactNative().Pressable,_extends({ref:V},fe,{disabled:K,onLayout:de,style:qe}),_react().default.createElement(_reactNative().View,{style:[S.tb,{borderRadius:Me},...Ee]},_react().default.createElement(_reactNative().View,{style:[S.a,Ne]}))),we.map((e,t)=>_react().default.createElement(ThumbNode,{key:`thumb-${t}`,index:t,orientation:P,ariaReverse:ie,trackLayout:z,isDisabled:K,state:ae,size:Y,activeColor:W,content:Ae(t,we.length),visualPercent:xe[t]??0,thumbBackgroundColor:A.colors.thumbBackground,thumbElevation:A.thumb.elevation,indicatorSize:A.thumb.indicatorSize,indicatorColor:A.colors.thumbIndicator,webGestureStyle:Pe,enhanceHandlers:Se}))))},S=_reactNative().StyleSheet.create({c:{position:"relative",justifyContent:"center",width:"100%"},vc:{height:"100%",alignItems:"center",paddingVertical:0},tw:{width:"100%",justifyContent:"center",position:"relative"},twv:{flex:1,justifyContent:"center",alignItems:"center",width:"100%"},tp:{width:"100%",justifyContent:"center"},tpv:{flex:1,alignItems:"center"},tb:{overflow:"hidden",position:"relative"},th:{width:"100%"},tv:{height:"100%"},a:{position:"absolute"},t:{position:"absolute",alignItems:"center",justifyContent:"center"},thw:{position:"absolute",alignItems:"center",justifyContent:"center"}}),Slider=exports.Slider=_react().default.memo(SliderImpl);var _default=exports.default=Slider;
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ "use strict";
@@ -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.TabPane=void 0;var _hooks=require("../../hooks"),_animation=require("../../hooks/animation"),_hairline=require("../../utils/hairline"),_number=require("../../utils/number"),_validate=require("../../utils/validate"),_tokens=require("./tokens");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,i,l={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return l;if(n=t?r:a){if(n.has(e))return n.get(e);n.set(e,l)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((i=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(i.get||i.set)?n(l,t,i):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 TabPane=()=>null;exports.TabPane=TabPane,TabPane.displayName="Tabs.TabPane";const hasRaf="function"==typeof requestAnimationFrame&&"function"==typeof cancelAnimationFrame,requestFrame=hasRaf?requestAnimationFrame:e=>setTimeout(e,16),cancelFrame=e=>{null!=e&&(hasRaf?cancelAnimationFrame:clearTimeout)(e)},isTabPaneElement=e=>!!_react().default.isValidElement(e)&&(e.type===TabPane||"Tabs.TabPane"===e.type.displayName),useTabsAnimation=({type:e,animated:t,scrollable:a,align:r,panes:n,nameIndexMap:i,resolvedLineWidth:l,resolvedDuration:c,currentName:o,layoutMap:s,navContainerWidthRef:u})=>{const d=(0,_react().useRef)(new(_reactNative().Animated.Value)(0)).current,f=(0,_react().useRef)(new(_reactNative().Animated.Value)(0)).current,m=(0,_react().useRef)(!1),p=(0,_react().useRef)(null),_=(0,_react().useCallback)((o,m)=>{if(null==o||"line"!==e)return!1;const _=!a&&"start"!==r&&u.current>0&&n.length>0,h=i.get(o)??-1,b=_?u.current/n.length:0,g=_?{x:Math.max(h,0)*b,width:b}:s.current.get(o);if(!g||h<0)return!1;p.current?.stop();const v=(e,a)=>_reactNative().Animated.timing(e,{toValue:a,duration:m||!t?0:c,useNativeDriver:!1,isInteraction:!1}),y=l??g.width,S=l?g.x+(g.width-y)/2:g.x,x=_reactNative().Animated.parallel([v(d,S),v(f,y)]);return p.current=x,x.start(({finished:e})=>{e&&(p.current=null)}),!0},[r,t,f,d,i,n.length,c,l,a,e,s,u]);return(0,_react().useEffect)(()=>{if(null==o)return;const e=m.current;_(o,!e)&&!m.current&&(m.current=!0)},[_,o]),(0,_react().useEffect)(()=>()=>{p.current?.stop(),p.current=null},[]),{indicatorX:d,indicatorWidth:f,indicatorInitializedRef:m,animateIndicator:_}},useTabsScroll=({scrollable:e,animated:t,currentName:a,resolvedDuration:r,layoutMap:n,navContainerWidthRef:i,navContentWidthRef:l})=>{const c=(0,_react().useRef)(null),o=(0,_react().useRef)(new(_reactNative().Animated.Value)(0)).current,s=(0,_react().useRef)(null),u=(0,_react().useRef)(!1),d=(0,_react().useRef)(0),f=(0,_react().useRef)(null),m=(0,_react().useCallback)(c=>{if(!e||null==a)return;const m=n.current.get(a),p=i.current;if(!m||!p)return;const _=l.current,h=m.x-(p-m.width)/2,b=Math.max(_-p,0),g=Math.max(0,Math.min(h,b));if(!(b<=0||Math.abs(g-d.current)<1)){if(s.current?.stop(),s.current=null,cancelFrame(f.current),f.current=null,c||!t)return u.current=!0,o.setValue(g),void(f.current=requestFrame(()=>{f.current=null,u.current=!1}));o.setValue(d.current),u.current=!0,s.current=_reactNative().Animated.timing(o,{toValue:g,duration:r,useNativeDriver:!1,isInteraction:!1}),s.current.start(({finished:e})=>{s.current=null,u.current=!1,e&&(d.current=g)})}},[t,a,o,r,e,n,i,l]);(0,_react().useEffect)(()=>{if(!e)return;const t=o.addListener(({value:e})=>{const t=d.current;d.current=e,Math.abs(e-t)>=.5&&c.current?.scrollTo({x:e,y:0,animated:!1})});return()=>o.removeListener(t)},[o,e]),(0,_react().useEffect)(()=>()=>{cancelFrame(f.current),f.current=null},[]);const p=(0,_react().useCallback)(e=>{u.current=!1,s.current?.stop(),s.current=null,d.current=e.nativeEvent.contentOffset.x},[]),_=(0,_react().useCallback)(e=>{u.current||(d.current=e.nativeEvent.contentOffset.x)},[]);return{navScrollRef:c,navScrollX:o,scrollIntoView:m,handleNavScrollBeginDrag:p,handleNavScroll:_}},TabBarItemInner=({pane:e,isActive:t,align:a,scrollable:r,type:n,ellipsis:i,tokens:l,color:c,titleActiveColor:o,titleInactiveColor:s,tabStyle:u,titleStyle:d,descriptionStyle:f,onSelect:m,onLayout:p,isLast:_})=>{const h=!!e.disabled,b=(0,_hooks.useAriaPress)({onPress:t=>m(e,e.index,t),extraProps:{accessibilityRole:"tab",accessibilityState:{selected:t,disabled:h},testID:`rv-tabs-item-${e.name}`}}),g="capsule"===n,v="jumbo"===n,y="card"===n,x=(0,_validate.isFunction)(e.title)?e.title(t):e.title??e.name,w=(0,_validate.isFunction)(e.description)?e.description(t):e.description,T=o??(y?l.colors.cardActiveText:g?l.colors.capsuleActiveText:c??l.colors.textActive),E=s??(y?c??l.colors.cardBorder:g?l.colors.capsuleText:l.colors.text),k=e.disabled?l.colors.textDisabled:t?T:E,R=h?l.colors.textDisabled:v?t?l.colors.jumboDescriptionActive:l.colors.jumboDescription:t?l.colors.descriptionActive:l.colors.description,N=!r&&("start"!==a||y),C=y||v||g,V=C?0:l.tabList.paddingHorizontal,P=C?0:l.tabList.paddingVertical,I=[S.lblW,v&&S.lblWJ,y&&S.cardLbl,y&&{paddingHorizontal:l.card.paddingHorizontal,paddingVertical:l.card.paddingVertical},g&&{flex:1,alignSelf:"stretch",paddingHorizontal:l.capsule.paddingHorizontal,paddingVertical:l.capsule.paddingVertical},v&&{paddingHorizontal:l.jumbo.paddingHorizontal,paddingVertical:l.jumbo.paddingVertical,alignItems:"center"}].filter(Boolean),H=g?[{flex:1,alignSelf:"stretch",justifyContent:"center",alignItems:"center",borderRadius:l.capsule.radius,backgroundColor:t?c??l.colors.capsuleActiveBackground:l.colors.capsuleBackground}]:null,M=[S.title,{color:k,fontFamily:l.typography.fontFamily,fontSize:v?l.typography.jumboTitleSize:l.typography.titleSize,fontWeight:t?l.typography.titleActiveWeight:l.typography.titleWeight,lineHeight:v?l.typography.jumboLineHeight:void 0,textAlign:"center"},i&&!v?S.ellipsis:null,d],A=v?l.spacing.jumboDescriptionMarginTop:l.spacing.descriptionMarginTop,z=v?{backgroundColor:t?l.colors.jumboDescriptionActiveBackground:l.colors.jumboDescriptionBackground,paddingHorizontal:l.jumbo.descriptionPaddingHorizontal,paddingVertical:l.jumbo.descriptionPaddingVertical,borderRadius:l.jumbo.descriptionRadius}:null,L=(0,_react().useCallback)(t=>p(e.name,t),[p,e.name]);return _react().default.createElement(_reactNative().Pressable,_extends({},b.interactionProps,{onLayout:L,style:[S.tabI,N?S.flexI:null,{paddingHorizontal:V,paddingVertical:P},y?{backgroundColor:t?c??l.colors.cardActiveBackground:l.colors.cardBackground}:null,u]}),_react().default.createElement(_reactNative().View,{style:I},H?_react().default.createElement(_reactNative().View,{style:H},_react().default.createElement(_reactNative().Text,{style:M,numberOfLines:i&&!v?1:void 0},x)):_react().default.createElement(_reactNative().Text,{style:M,numberOfLines:i&&!v?1:void 0},x),(0,_validate.isRenderable)(w)&&((0,_validate.isText)(w)?_react().default.createElement(_reactNative().Text,{style:[S.descTxt,{color:R,fontFamily:l.typography.fontFamily,fontSize:l.typography.descriptionSize,marginTop:A,textAlign:"center"},z,f]},w):_react().default.createElement(_reactNative().View,{style:[{marginTop:A,alignItems:"center"},z]},w)),(0,_validate.isRenderable)(e.badge)&&_react().default.createElement(_reactNative().View,{style:{marginTop:l.spacing.badgeMarginTop}},(0,_validate.isText)(e.badge)?_react().default.createElement(_reactNative().Text,{style:{color:l.colors.badgeText,fontFamily:l.typography.fontFamily,fontSize:l.typography.badgeTextSize}},e.badge):e.badge)),y&&!_&&_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"right",color:c??l.colors.cardBorder,top:0,bottom:0})}))},TabBarItem=(0,_react().memo)(TabBarItemInner),TabsBaseInner=(e,t)=>{const{tokensOverride:a,children:r,type:n,align:i,ellipsis:l,swipeThreshold:c,animated:o,duration:s,lazyRender:u,lazyRenderPlaceholder:d,scrollable:f,swipeable:m,color:p,background:_,border:h,navLeft:b,navRight:g,navBottom:v,tabBarStyle:y,tabStyle:x,titleStyle:w,descriptionStyle:T,contentStyle:E,lineWidth:k,lineHeight:R,titleActiveColor:N,titleInactiveColor:C,beforeChange:V,onClickTab:P,onChange:I,style:H,...M}=e,A=(0,_tokens.useTabsTokens)(a),z=(0,_animation.useReducedMotion)(),L=n??A.defaults.type,j=i??A.defaults.align,B=l??A.defaults.ellipsis,W=c??A.defaults.swipeThreshold,D=o??A.defaults.animated,F=s??A.defaults.duration,O=u??A.defaults.lazyRender,q=_??A.tabList.background,X=(0,_number.parseNumberLike)(k??A.indicator.width),J=null!=X&&X<0?void 0:X,$=Math.max(0,(0,_number.parseNumberLike)(R)??A.indicator.height),G=z?0:Math.max(0,(0,_number.parseNumberLike)(F)??A.defaults.duration),K=Math.max(0,(0,_number.parseNumberLike)(W)??A.defaults.swipeThreshold),Q=m?(0,_validate.isObject)(m)?{autoHeight:m.autoHeight??!0,preventScroll:m.preventScroll??!0}:{autoHeight:!0,preventScroll:!0}:void 0,U=!!Q,Y=(0,_react().useMemo)(()=>{const e=[];let t=0;const a=r=>{_react().Children.forEach(r,r=>{if(!(0,_react().isValidElement)(r))return;const n=r;if(n.type===_react().default.Fragment)return void a(n.props.children);if(!isTabPaneElement(n))return;const i=n.props,l=i.name??t;e.push({...i,key:n.key??l,name:l,index:t}),t+=1})};return a(r),e},[r]),Z=Y[0]?.name,[ee,te]=(0,_hooks.useControllableValue)(e,{defaultValue:Z,valuePropName:"active",defaultValuePropName:"defaultActive",trigger:"onChange"}),ae=null==ee?Z:Y.some(e=>e.name===ee)?ee:Z,re=(0,_react().useRef)(ae);(0,_react().useEffect)(()=>{re.current=ae},[ae]);const ne=(0,_react().useMemo)(()=>{const e=new Map;return Y.forEach(t=>{e.set(t.name,t.index)}),e},[Y]),ie=null==ae?-1:ne.get(ae)??-1,le=(0,_react().useRef)(new Set),ce=(0,_react().useRef)(new Map),oe=(0,_react().useRef)(0),se=(0,_react().useRef)(0),ue=(0,_react().useRef)(null),de=(0,_react().useRef)(new Map),fe=(0,_react().useRef)(null),me=(0,_react().useRef)(!1),[pe,_e]=(0,_react().useState)(0),[he,be]=(0,_react().useState)(void 0);(0,_react().useEffect)(()=>{null!=ae&&le.current.add(ae)},[ae]),(0,_react().useEffect)(()=>{const e=new Set(Y.map(e=>e.name));Array.from(de.current.keys()).forEach(t=>{e.has(t)||de.current.delete(t)}),Array.from(ce.current.keys()).forEach(t=>{e.has(t)||ce.current.delete(t)})},[Y]);const ge=U&&Q?.autoHeight;(0,_react().useEffect)(()=>{ge||de.current.clear()},[ge]),(0,_react().useEffect)(()=>{if(!U||!Q?.autoHeight)return void be(void 0);const e=null!=ae?de.current.get(ae):void 0;be(e?e.height:void 0)},[ae,U,Q?.autoHeight]),(0,_react().useEffect)(()=>()=>{cancelFrame(ue.current),ue.current=null},[]);const ve=(0,_validate.isBoolean)(f)?f:Y.length>K||!1===B,ye=p??A.colors.indicator,Se=$?$/2:A.indicator.radius,{indicatorX:xe,indicatorWidth:we,indicatorInitializedRef:Te,animateIndicator:Ee}=useTabsAnimation({type:L,animated:D,scrollable:ve,align:j,panes:Y,nameIndexMap:ne,resolvedLineWidth:J,resolvedLineHeight:$,resolvedDuration:G,currentName:ae,layoutMap:ce,navContainerWidthRef:oe}),{navScrollRef:ke,scrollIntoView:Re,handleNavScrollBeginDrag:Ne,handleNavScroll:Ce}=useTabsScroll({scrollable:ve,animated:D,currentName:ae,resolvedDuration:G,layoutMap:ce,navContainerWidthRef:oe,navContentWidthRef:se}),Ve=(0,_react().useCallback)((e,t)=>{const{x:a,width:r}=t.nativeEvent.layout;if(ce.current.set(e,{x:a,width:r}),e===re.current){const t=Te.current;Ee(e,!t)&&!Te.current&&(Te.current=!0)}},[Ee,Te]),Pe=(0,_react().useCallback)(e=>{const{width:t}=e.nativeEvent.layout;if(oe.current=t,!ve&&"start"!==j&&"line"===L&&null!=ae){const e=Te.current;Ee(ae,!e)&&!Te.current&&(Te.current=!0)}},[j,Ee,ae,ve,L,Te]),Ie=(0,_react().useCallback)(e=>{const t=e.nativeEvent.layout.width;_e(e=>e===t?e:t)},[]),He=(0,_react().useRef)(V);He.current=V;const Me=(0,_react().useCallback)(e=>{if(!He.current)return Promise.resolve(!0);try{return Promise.resolve(He.current(e)).then(e=>!1!==e).catch(()=>!1)}catch(e){return Promise.resolve(!1)}},[]),Ae=(0,_react().useRef)(0),ze=(0,_react().useCallback)((e,t)=>{Ae.current+=1;const a=Ae.current;Me(e).then(r=>{r&&Ae.current===a&&te(e,t)})},[Me,te]),Le=(0,_react().useCallback)((e,t)=>{if(U&&Q?.autoHeight){const{height:a}=t.nativeEvent.layout;de.current.set(e,{height:a}),e===ae&&be(a)}},[ae,U,Q?.autoHeight]),je=(0,_react().useRef)(null);(0,_react().useEffect)(()=>{je.current=null},[ae]);const Be=(0,_react().useCallback)(e=>{if(!U||pe<=0)return;const t=Math.round(e/pe);if(je.current===t)return;je.current=t;const a=Y[t];a&&a.name!==re.current&&(me.current=!0,ze(a.name,a.index))},[pe,U,Y,ze]),We=(0,_react().useCallback)(e=>{Be(e.nativeEvent.contentOffset.x)},[Be]),De=(0,_react().useCallback)(e=>{Be(e.nativeEvent.contentOffset.x)},[Be]);(0,_react().useEffect)(()=>{if(!U||!fe.current||pe<=0)return;if(me.current)return void(me.current=!1);if(ie<0)return;const e=fe.current?.getNode?.()??fe.current;e?.scrollTo&&e.scrollTo({x:pe*ie,y:0,animated:!0})},[ie,pe,U]);const Fe=(0,_react().useRef)(P);Fe.current=P;const Oe=(0,_react().useCallback)((e,t,a)=>{const r={name:e.name,index:t,disabled:!!e.disabled,event:a};Fe.current?.(r),e.disabled||e.name===re.current||ze(e.name,t)},[ze]),qe=(0,_react().useCallback)((e,t)=>{const a=Y.find(t=>t.name===e&&!t.disabled);a&&te(a.name,a.index)},[Y,te]);(0,_react().useImperativeHandle)(t,()=>({scrollTo:qe}),[qe]);const Xe=(0,_react().useRef)(!0);(0,_react().useEffect)(()=>{Xe.current&&(Xe.current=!1,Re(!0))},[Re]),(0,_react().useEffect)(()=>{Xe.current||Re()},[ae,Re]);const Je=h??!1,$e="line"===L,Ge="jumbo"===L?A.jumbo.height:"card"===L?A.card.height:A.tabList.height,Ke="web"===_reactNative().Platform.OS&&"line"!==L&&"card"!==L?A.tabList.paddingBottom:0,Qe=$e?"line"===L?0:A.indicator.offset:0;if(0===Y.length)return null;const Ue=$e?_react().default.createElement(_reactNative().Animated.View,{testID:"rv-tabs-indicator",style:[S.ind,{height:$,borderRadius:Se,backgroundColor:ye,width:we,bottom:Qe,transform:[{translateX:xe}]}]}):null,Ye=(0,_react().useMemo)(()=>Y.map(e=>_react().default.createElement(TabBarItem,{key:e.key,pane:e,isActive:e.name===ae,align:j,scrollable:ve,type:L,ellipsis:B,tokens:A,color:p,titleActiveColor:N,titleInactiveColor:C,tabStyle:x,titleStyle:w,descriptionStyle:T,onSelect:Oe,onLayout:Ve,isLast:e.index===Y.length-1})),[j,p,ae,T,B,Oe,Ve,Y,ve,x,N,C,w,A,L]),Ze=(0,_react().useCallback)(e=>{const t=se.current;se.current=e,0===t||Xe.current?Re(!0):Math.abs(e-t)>1&&(cancelFrame(ue.current),ue.current=requestFrame(()=>{ue.current=null,Re()}))},[Re]),et=ve?_react().default.createElement(_reactNative().ScrollView,{horizontal:!0,ref:ke,accessibilityRole:"tablist",showsHorizontalScrollIndicator:!1,scrollEventThrottle:16,onScrollBeginDrag:Ne,onScroll:Ce,onContentSizeChange:Ze,contentContainerStyle:S.navC},Ye,Ue):_react().default.createElement(_reactNative().View,{accessibilityRole:"tablist",style:[S.navC,S.navCSta]},Ye,Ue),tt=_react().default.createElement(_reactNative().View,{style:[S.wrap,{backgroundColor:q},y]},b&&_react().default.createElement(_reactNative().View,{style:{paddingHorizontal:A.spacing.navSidePaddingHorizontal}},b),_react().default.createElement(_reactNative().View,{style:[S.nav,{minHeight:Ge+Ke,paddingBottom:Ke},"card"===L?{borderRadius:A.card.radius,marginHorizontal:A.card.marginHorizontal,overflow:"hidden"}:null],onLayout:Pe},et,"card"===L&&_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"all",color:p??A.colors.cardBorder,borderRadius:A.card.radius})})),g&&_react().default.createElement(_reactNative().View,{style:{paddingHorizontal:A.spacing.navSidePaddingHorizontal}},g),Je&&"line"===L&&_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"bottom",color:A.colors.border,left:0,right:0})})),at=(0,_react().useMemo)(()=>Y.map(e=>{const t=e.name===ae,a=!O||t||le.current.has(e.name);if(!a&&!U)return null;const r=U&&Q?.autoHeight?t=>Le(e.name,t):void 0,n=[S.pane,U?S.swipePane:null,U&&pe>0&&{width:pe},U||t?null:S.hidPane],i=a?e.children:d||null;return _react().default.createElement(_reactNative().View,{key:e.key,testID:`rv-tabs-pane-${e.name}`,onLayout:r,style:n},i)}),[pe,ae,Le,U,O,d,Y,Q?.autoHeight]),rt=[S.content,E],nt=[S.content,E,Q?.autoHeight&&void 0!==he&&{height:he}],it=U?_react().default.createElement(_reactNative().View,{style:nt},_react().default.createElement(_reactNative().Animated.ScrollView,{ref:fe,horizontal:!0,pagingEnabled:!0,scrollEventThrottle:16,showsHorizontalScrollIndicator:!1,onMomentumScrollEnd:We,onScrollEndDrag:De,nestedScrollEnabled:!1===Q?.preventScroll,directionalLockEnabled:!1!==Q?.preventScroll},at)):_react().default.createElement(_reactNative().View,{style:rt},at);return _react().default.createElement(_reactNative().View,_extends({},M,{style:[S.ctr,H],onLayout:Ie}),tt,v&&_react().default.createElement(_reactNative().View,{style:{marginTop:A.spacing.navBottomMarginTop}},v),it)},S=_reactNative().StyleSheet.create({ctr:{width:"100%"},wrap:{flexDirection:"row",alignItems:"center",position:"relative"},nav:{flex:1,position:"relative",alignSelf:"stretch"},navC:{flexDirection:"row",alignItems:"center",height:"100%",position:"relative"},navCSta:{flex:1},lblW:{justifyContent:"center",alignItems:"center",flexDirection:"column"},lblWJ:{alignItems:"center"},cardLbl:{flexDirection:"row",justifyContent:"center",alignItems:"center"},tabI:{flexShrink:0,height:"100%",alignSelf:"stretch",alignItems:"center",justifyContent:"center",flexDirection:"row"},flexI:{flexGrow:1},title:{includeFontPadding:!1},descTxt:{includeFontPadding:!1},ellipsis:{maxWidth:"100%",flexShrink:1},ind:{position:"absolute",bottom:0,left:0},content:{width:"100%"},pane:{width:"100%"},swipePane:{flexShrink:0},hidPane:{display:"none"}}),TabsBaseRef=_react().default.forwardRef(TabsBaseInner),TabsWithPane=Object.assign(_react().default.memo(TabsBaseRef),{TabPane:TabPane});var _default=exports.default=TabsWithPane;
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.TabPane=void 0;var _hooks=require("../../hooks"),_animation=require("../../hooks/animation"),_hairline=require("../../utils/hairline"),_number=require("../../utils/number"),_validate=require("../../utils/validate"),_tokens=require("./tokens");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,i,l={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return l;if(n=t?r:a){if(n.has(e))return n.get(e);n.set(e,l)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((i=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(i.get||i.set)?n(l,t,i):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 TabPane=()=>null;exports.TabPane=TabPane,TabPane.displayName="Tabs.TabPane";const hasRaf="function"==typeof requestAnimationFrame&&"function"==typeof cancelAnimationFrame,requestFrame=hasRaf?requestAnimationFrame:e=>setTimeout(e,16),cancelFrame=e=>{null!=e&&(hasRaf?cancelAnimationFrame:clearTimeout)(e)},isTabPaneElement=e=>!!_react().default.isValidElement(e)&&(e.type===TabPane||"Tabs.TabPane"===e.type.displayName),useTabsAnimation=({type:e,animated:t,scrollable:a,align:r,panes:n,nameIndexMap:i,resolvedLineWidth:l,resolvedDuration:c,currentName:o,layoutMap:s,navContainerWidthRef:u})=>{const d=(0,_react().useRef)(new(_reactNative().Animated.Value)(0)).current,f=(0,_react().useRef)(new(_reactNative().Animated.Value)(0)).current,m=(0,_react().useRef)(!1),p=(0,_react().useRef)(null),_=(0,_react().useCallback)((o,m)=>{if(null==o||"line"!==e)return!1;const _=!a&&"start"!==r&&u.current>0&&n.length>0,h=i.get(o)??-1,b=_?u.current/n.length:0,g=_?{x:Math.max(h,0)*b,width:b}:s.current.get(o);if(!g||h<0)return!1;p.current?.stop();const v=(e,a)=>_reactNative().Animated.timing(e,{toValue:a,duration:m||!t?0:c,useNativeDriver:!1,isInteraction:!1}),y=l??g.width,S=l?g.x+(g.width-y)/2:g.x,x=_reactNative().Animated.parallel([v(d,S),v(f,y)]);return p.current=x,x.start(({finished:e})=>{e&&(p.current=null)}),!0},[r,t,f,d,i,n.length,c,l,a,e,s,u]);return(0,_react().useEffect)(()=>{if(null==o)return;const e=m.current;_(o,!e)&&!m.current&&(m.current=!0)},[_,o]),(0,_react().useEffect)(()=>()=>{p.current?.stop(),p.current=null},[]),{indicatorX:d,indicatorWidth:f,indicatorInitializedRef:m,animateIndicator:_}},useTabsScroll=({scrollable:e,animated:t,currentName:a,resolvedDuration:r,layoutMap:n,navContainerWidthRef:i,navContentWidthRef:l})=>{const c=(0,_react().useRef)(null),o=(0,_react().useRef)(new(_reactNative().Animated.Value)(0)).current,s=(0,_react().useRef)(null),u=(0,_react().useRef)(!1),d=(0,_react().useRef)(0),f=(0,_react().useRef)(null),m=(0,_react().useCallback)(c=>{if(!e||null==a)return;const m=n.current.get(a),p=i.current;if(!m||!p)return;const _=l.current,h=m.x-(p-m.width)/2,b=Math.max(_-p,0),g=Math.max(0,Math.min(h,b));if(!(b<=0||Math.abs(g-d.current)<1)){if(s.current?.stop(),s.current=null,cancelFrame(f.current),f.current=null,c||!t)return u.current=!0,o.setValue(g),void(f.current=requestFrame(()=>{f.current=null,u.current=!1}));o.setValue(d.current),u.current=!0,s.current=_reactNative().Animated.timing(o,{toValue:g,duration:r,useNativeDriver:!1,isInteraction:!1}),s.current.start(({finished:e})=>{s.current=null,u.current=!1,e&&(d.current=g)})}},[t,a,o,r,e,n,i,l]);(0,_react().useEffect)(()=>{if(!e)return;const t=o.addListener(({value:e})=>{const t=d.current;d.current=e,Math.abs(e-t)>=.5&&c.current?.scrollTo({x:e,y:0,animated:!1})});return()=>o.removeListener(t)},[o,e]),(0,_react().useEffect)(()=>()=>{cancelFrame(f.current),f.current=null},[]);const p=(0,_react().useCallback)(e=>{u.current=!1,s.current?.stop(),s.current=null,d.current=e.nativeEvent.contentOffset.x},[]),_=(0,_react().useCallback)(e=>{u.current||(d.current=e.nativeEvent.contentOffset.x)},[]);return{navScrollRef:c,navScrollX:o,scrollIntoView:m,handleNavScrollBeginDrag:p,handleNavScroll:_}},TabBarItemInner=({pane:e,isActive:t,align:a,scrollable:r,type:n,ellipsis:i,tokens:l,color:c,titleActiveColor:o,titleInactiveColor:s,tabStyle:u,titleStyle:d,descriptionStyle:f,onSelect:m,onLayout:p,isLast:_})=>{const h=!!e.disabled,b=(0,_hooks.useAriaPress)({onPress:t=>m(e,e.index,t),extraProps:{accessibilityRole:"tab",accessibilityState:{selected:t,disabled:h},testID:`rv-tabs-item-${e.name}`}}),g="capsule"===n,v="jumbo"===n,y="card"===n,x=(0,_validate.isFunction)(e.title)?e.title(t):e.title??e.name,w=(0,_validate.isFunction)(e.description)?e.description(t):e.description,T=o??(y?l.colors.cardActiveText:g?l.colors.capsuleActiveText:c??l.colors.textActive),E=s??(y?c??l.colors.cardBorder:g?l.colors.capsuleText:l.colors.text),k=e.disabled?l.colors.textDisabled:t?T:E,R=h?l.colors.textDisabled:v?t?l.colors.jumboDescriptionActive:l.colors.jumboDescription:t?l.colors.descriptionActive:l.colors.description,N=!r&&("start"!==a||y),C=y||v||g,V=C?0:l.tabList.paddingHorizontal,P=C?0:l.tabList.paddingVertical,I=[S.lblW,v&&S.lblWJ,y&&S.cardLbl,y&&{paddingHorizontal:l.card.paddingHorizontal,paddingVertical:l.card.paddingVertical},g&&{flex:1,alignSelf:"stretch",paddingHorizontal:l.capsule.paddingHorizontal,paddingVertical:l.capsule.paddingVertical},v&&{paddingHorizontal:l.jumbo.paddingHorizontal,paddingVertical:l.jumbo.paddingVertical,alignItems:"center"}].filter(Boolean),H=g?[{flex:1,alignSelf:"stretch",justifyContent:"center",alignItems:"center",borderRadius:l.capsule.radius,backgroundColor:t?c??l.colors.capsuleActiveBackground:l.colors.capsuleBackground}]:null,M=[S.title,{color:k,fontFamily:l.typography.fontFamily,fontSize:v?l.typography.jumboTitleSize:l.typography.titleSize,fontWeight:t?l.typography.titleActiveWeight:l.typography.titleWeight,lineHeight:v?l.typography.jumboLineHeight:void 0,textAlign:"center"},i&&!v?S.ellipsis:null,d],A=v?l.spacing.jumboDescriptionMarginTop:l.spacing.descriptionMarginTop,z=v?{backgroundColor:t?l.colors.jumboDescriptionActiveBackground:l.colors.jumboDescriptionBackground,paddingHorizontal:l.jumbo.descriptionPaddingHorizontal,paddingVertical:l.jumbo.descriptionPaddingVertical,borderRadius:l.jumbo.descriptionRadius}:null,L=(0,_react().useCallback)(t=>p(e.name,t),[p,e.name]);return _react().default.createElement(_reactNative().Pressable,_extends({},b.interactionProps,{onLayout:L,style:[S.tabI,N?S.flexI:null,{paddingHorizontal:V,paddingVertical:P},y?{backgroundColor:t?c??l.colors.cardActiveBackground:l.colors.cardBackground}:null,u]}),_react().default.createElement(_reactNative().View,{style:I},H?_react().default.createElement(_reactNative().View,{style:H},_react().default.createElement(_reactNative().Text,{style:M,numberOfLines:i&&!v?1:void 0},x)):_react().default.createElement(_reactNative().Text,{style:M,numberOfLines:i&&!v?1:void 0},x),(0,_validate.isRenderable)(w)&&((0,_validate.isText)(w)?_react().default.createElement(_reactNative().Text,{style:[S.descTxt,{color:R,fontFamily:l.typography.fontFamily,fontSize:l.typography.descriptionSize,marginTop:A,textAlign:"center"},z,f]},w):_react().default.createElement(_reactNative().View,{style:[{marginTop:A,alignItems:"center"},z]},w)),(0,_validate.isRenderable)(e.badge)&&_react().default.createElement(_reactNative().View,{style:{marginTop:l.spacing.badgeMarginTop}},(0,_validate.isText)(e.badge)?_react().default.createElement(_reactNative().Text,{style:{color:l.colors.badgeText,fontFamily:l.typography.fontFamily,fontSize:l.typography.badgeTextSize}},e.badge):e.badge)),y&&!_&&_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"right",color:c??l.colors.cardBorder,top:0,bottom:0})}))},TabBarItem=(0,_react().memo)(TabBarItemInner),TabsBaseInner=(e,t)=>{const{tokensOverride:a,children:r,type:n,align:i,ellipsis:l,swipeThreshold:c,animated:o,duration:s,lazyRender:u,lazyRenderPlaceholder:d,scrollable:f,swipeable:m,color:p,background:_,border:h,navLeft:b,navRight:g,navBottom:v,tabBarStyle:y,tabStyle:x,titleStyle:w,descriptionStyle:T,contentStyle:E,lineWidth:k,lineHeight:R,titleActiveColor:N,titleInactiveColor:C,beforeChange:V,onClickTab:P,onChange:I,style:H,...M}=e,A=(0,_tokens.useTabsTokens)(a),z=(0,_animation.useReducedMotion)(),L=n??A.defaults.type,j=i??A.defaults.align,B=l??A.defaults.ellipsis,W=c??A.defaults.swipeThreshold,D=o??A.defaults.animated,F=s??A.defaults.duration,O=u??A.defaults.lazyRender,q=_??A.tabList.background,X=(0,_number.parseNumberLike)(k??A.indicator.width),J=null!=X&&X<0?void 0:X,$=Math.max(0,(0,_number.parseNumberLike)(R)??A.indicator.height),G=z?0:Math.max(0,(0,_number.parseNumberLike)(F)??A.defaults.duration),K=Math.max(0,(0,_number.parseNumberLike)(W)??A.defaults.swipeThreshold),Q=m?(0,_validate.isObject)(m)?{autoHeight:m.autoHeight??!0,preventScroll:m.preventScroll??!0}:{autoHeight:!0,preventScroll:!0}:void 0,U=!!Q,Y=(0,_react().useMemo)(()=>{const e=[];let t=0;const a=r=>{_react().Children.forEach(r,r=>{if(!(0,_react().isValidElement)(r))return;const n=r;if(n.type===_react().default.Fragment)return void a(n.props.children);if(!isTabPaneElement(n))return;const i=n.props,l=i.name??t;e.push({...i,key:n.key??l,name:l,index:t}),t+=1})};return a(r),e},[r]),Z=Y[0]?.name,[ee,te]=(0,_hooks.useControllableValue)(e,{defaultValue:Z,valuePropName:"active",defaultValuePropName:"defaultActive",trigger:"onChange"}),ae=null==ee?Z:Y.some(e=>e.name===ee)?ee:Z,re=(0,_react().useRef)(ae);(0,_react().useEffect)(()=>{re.current=ae},[ae]);const ne=(0,_react().useMemo)(()=>{const e=new Map;return Y.forEach(t=>{e.set(t.name,t.index)}),e},[Y]),ie=null==ae?-1:ne.get(ae)??-1,le=(0,_react().useRef)(new Set),ce=(0,_react().useRef)(new Map),oe=(0,_react().useRef)(0),se=(0,_react().useRef)(0),ue=(0,_react().useRef)(null),de=(0,_react().useRef)(new Map),fe=(0,_react().useRef)(null),me=(0,_react().useRef)(!1),[pe,_e]=(0,_react().useState)(0),[he,be]=(0,_react().useState)(void 0);(0,_react().useEffect)(()=>{null!=ae&&le.current.add(ae)},[ae]),(0,_react().useEffect)(()=>{const e=new Set(Y.map(e=>e.name));Array.from(de.current.keys()).forEach(t=>{e.has(t)||de.current.delete(t)}),Array.from(ce.current.keys()).forEach(t=>{e.has(t)||ce.current.delete(t)})},[Y]);const ge=U&&Q?.autoHeight;(0,_react().useEffect)(()=>{ge||de.current.clear()},[ge]),(0,_react().useEffect)(()=>{if(!U||!Q?.autoHeight)return void be(void 0);const e=null!=ae?de.current.get(ae):void 0;be(e?e.height:void 0)},[ae,U,Q?.autoHeight]),(0,_react().useEffect)(()=>()=>{cancelFrame(ue.current),ue.current=null},[]);const ve=(0,_validate.isBoolean)(f)?f:Y.length>K||!1===B,ye=p??A.colors.indicator,Se=$?$/2:A.indicator.radius,{indicatorX:xe,indicatorWidth:we,indicatorInitializedRef:Te,animateIndicator:Ee}=useTabsAnimation({type:L,animated:D,scrollable:ve,align:j,panes:Y,nameIndexMap:ne,resolvedLineWidth:J,resolvedLineHeight:$,resolvedDuration:G,currentName:ae,layoutMap:ce,navContainerWidthRef:oe}),{navScrollRef:ke,scrollIntoView:Re,handleNavScrollBeginDrag:Ne,handleNavScroll:Ce}=useTabsScroll({scrollable:ve,animated:D,currentName:ae,resolvedDuration:G,layoutMap:ce,navContainerWidthRef:oe,navContentWidthRef:se}),Ve=(0,_react().useCallback)((e,t)=>{const{x:a,width:r}=t.nativeEvent.layout;if(ce.current.set(e,{x:a,width:r}),e===re.current){const t=Te.current;Ee(e,!t)&&!Te.current&&(Te.current=!0)}},[Ee,Te]),Pe=(0,_react().useCallback)(e=>{const{width:t}=e.nativeEvent.layout;if(oe.current=t,!ve&&"start"!==j&&"line"===L&&null!=ae){const e=Te.current;Ee(ae,!e)&&!Te.current&&(Te.current=!0)}},[j,Ee,ae,ve,L,Te]),Ie=(0,_react().useCallback)(e=>{const t=e.nativeEvent.layout.width;_e(e=>e===t?e:t)},[]),He=(0,_react().useRef)(V);He.current=V;const Me=(0,_react().useCallback)(e=>{if(!He.current)return Promise.resolve(!0);try{return Promise.resolve(He.current(e)).then(e=>!1!==e).catch(()=>!1)}catch{return Promise.resolve(!1)}},[]),Ae=(0,_react().useRef)(0),ze=(0,_react().useCallback)((e,t)=>{Ae.current+=1;const a=Ae.current;Me(e).then(r=>{r&&Ae.current===a&&te(e,t)})},[Me,te]),Le=(0,_react().useCallback)((e,t)=>{if(U&&Q?.autoHeight){const{height:a}=t.nativeEvent.layout;de.current.set(e,{height:a}),e===ae&&be(a)}},[ae,U,Q?.autoHeight]),je=(0,_react().useRef)(null);(0,_react().useEffect)(()=>{je.current=null},[ae]);const Be=(0,_react().useCallback)(e=>{if(!U||pe<=0)return;const t=Math.round(e/pe);if(je.current===t)return;je.current=t;const a=Y[t];a&&a.name!==re.current&&(me.current=!0,ze(a.name,a.index))},[pe,U,Y,ze]),We=(0,_react().useCallback)(e=>{Be(e.nativeEvent.contentOffset.x)},[Be]),De=(0,_react().useCallback)(e=>{Be(e.nativeEvent.contentOffset.x)},[Be]);(0,_react().useEffect)(()=>{if(!U||!fe.current||pe<=0)return;if(me.current)return void(me.current=!1);if(ie<0)return;const e=fe.current?.getNode?.()??fe.current;e?.scrollTo&&e.scrollTo({x:pe*ie,y:0,animated:!0})},[ie,pe,U]);const Fe=(0,_react().useRef)(P);Fe.current=P;const Oe=(0,_react().useCallback)((e,t,a)=>{const r={name:e.name,index:t,disabled:!!e.disabled,event:a};Fe.current?.(r),e.disabled||e.name===re.current||ze(e.name,t)},[ze]),qe=(0,_react().useCallback)((e,t)=>{const a=Y.find(t=>t.name===e&&!t.disabled);a&&te(a.name,a.index)},[Y,te]);(0,_react().useImperativeHandle)(t,()=>({scrollTo:qe}),[qe]);const Xe=(0,_react().useRef)(!0);(0,_react().useEffect)(()=>{Xe.current&&(Xe.current=!1,Re(!0))},[Re]),(0,_react().useEffect)(()=>{Xe.current||Re()},[ae,Re]);const Je=h??!1,$e="line"===L,Ge="jumbo"===L?A.jumbo.height:"card"===L?A.card.height:A.tabList.height,Ke="web"===_reactNative().Platform.OS&&"line"!==L&&"card"!==L?A.tabList.paddingBottom:0,Qe=$e?"line"===L?0:A.indicator.offset:0;if(0===Y.length)return null;const Ue=$e?_react().default.createElement(_reactNative().Animated.View,{testID:"rv-tabs-indicator",style:[S.ind,{height:$,borderRadius:Se,backgroundColor:ye,width:we,bottom:Qe,transform:[{translateX:xe}]}]}):null,Ye=(0,_react().useMemo)(()=>Y.map(e=>_react().default.createElement(TabBarItem,{key:e.key,pane:e,isActive:e.name===ae,align:j,scrollable:ve,type:L,ellipsis:B,tokens:A,color:p,titleActiveColor:N,titleInactiveColor:C,tabStyle:x,titleStyle:w,descriptionStyle:T,onSelect:Oe,onLayout:Ve,isLast:e.index===Y.length-1})),[j,p,ae,T,B,Oe,Ve,Y,ve,x,N,C,w,A,L]),Ze=(0,_react().useCallback)(e=>{const t=se.current;se.current=e,0===t||Xe.current?Re(!0):Math.abs(e-t)>1&&(cancelFrame(ue.current),ue.current=requestFrame(()=>{ue.current=null,Re()}))},[Re]),et=ve?_react().default.createElement(_reactNative().ScrollView,{horizontal:!0,ref:ke,accessibilityRole:"tablist",showsHorizontalScrollIndicator:!1,scrollEventThrottle:16,onScrollBeginDrag:Ne,onScroll:Ce,onContentSizeChange:Ze,contentContainerStyle:S.navC},Ye,Ue):_react().default.createElement(_reactNative().View,{accessibilityRole:"tablist",style:[S.navC,S.navCSta]},Ye,Ue),tt=_react().default.createElement(_reactNative().View,{style:[S.wrap,{backgroundColor:q},y]},b&&_react().default.createElement(_reactNative().View,{style:{paddingHorizontal:A.spacing.navSidePaddingHorizontal}},b),_react().default.createElement(_reactNative().View,{style:[S.nav,{minHeight:Ge+Ke,paddingBottom:Ke},"card"===L?{borderRadius:A.card.radius,marginHorizontal:A.card.marginHorizontal,overflow:"hidden"}:null],onLayout:Pe},et,"card"===L&&_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"all",color:p??A.colors.cardBorder,borderRadius:A.card.radius})})),g&&_react().default.createElement(_reactNative().View,{style:{paddingHorizontal:A.spacing.navSidePaddingHorizontal}},g),Je&&"line"===L&&_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"bottom",color:A.colors.border,left:0,right:0})})),at=(0,_react().useMemo)(()=>Y.map(e=>{const t=e.name===ae,a=!O||t||le.current.has(e.name);if(!a&&!U)return null;const r=U&&Q?.autoHeight?t=>Le(e.name,t):void 0,n=[S.pane,U?S.swipePane:null,U&&pe>0&&{width:pe},U||t?null:S.hidPane],i=a?e.children:d||null;return _react().default.createElement(_reactNative().View,{key:e.key,testID:`rv-tabs-pane-${e.name}`,onLayout:r,style:n},i)}),[pe,ae,Le,U,O,d,Y,Q?.autoHeight]),rt=[S.content,E],nt=[S.content,E,Q?.autoHeight&&void 0!==he&&{height:he}],it=U?_react().default.createElement(_reactNative().View,{style:nt},_react().default.createElement(_reactNative().Animated.ScrollView,{ref:fe,horizontal:!0,pagingEnabled:!0,scrollEventThrottle:16,showsHorizontalScrollIndicator:!1,onMomentumScrollEnd:We,onScrollEndDrag:De,nestedScrollEnabled:!1===Q?.preventScroll,directionalLockEnabled:!1!==Q?.preventScroll},at)):_react().default.createElement(_reactNative().View,{style:rt},at);return _react().default.createElement(_reactNative().View,_extends({},M,{style:[S.ctr,H],onLayout:Ie}),tt,v&&_react().default.createElement(_reactNative().View,{style:{marginTop:A.spacing.navBottomMarginTop}},v),it)},S=_reactNative().StyleSheet.create({ctr:{width:"100%"},wrap:{flexDirection:"row",alignItems:"center",position:"relative"},nav:{flex:1,position:"relative",alignSelf:"stretch"},navC:{flexDirection:"row",alignItems:"center",height:"100%",position:"relative"},navCSta:{flex:1},lblW:{justifyContent:"center",alignItems:"center",flexDirection:"column"},lblWJ:{alignItems:"center"},cardLbl:{flexDirection:"row",justifyContent:"center",alignItems:"center"},tabI:{flexShrink:0,height:"100%",alignSelf:"stretch",alignItems:"center",justifyContent:"center",flexDirection:"row"},flexI:{flexGrow:1},title:{includeFontPadding:!1},descTxt:{includeFontPadding:!1},ellipsis:{maxWidth:"100%",flexShrink:1},ind:{position:"absolute",bottom:0,left:0},content:{width:"100%"},pane:{width:"100%"},swipePane:{flexShrink:0},hidPane:{display:"none"}}),TabsBaseRef=_react().default.forwardRef(TabsBaseInner),TabsWithPane=Object.assign(_react().default.memo(TabsBaseRef),{TabPane:TabPane});var _default=exports.default=TabsWithPane;
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ "use strict";
@@ -1 +1 @@
1
- "use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.ToastContent=exports.Toast=void 0;var _Portal=_interopRequireDefault(require("../portal/Portal")),_safeAreaView=require("../safe-area-view"),_hooks=require("../../hooks"),_loading=_interopRequireDefault(require("../loading"));function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}var _validate=require("../../utils/validate"),_utils=require("../../utils"),_platform=require("../../platform"),_animation=require("../../hooks/animation"),_useLocale=require("../config-provider/useLocale"),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,i,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(n=t?a:r){if(n.has(e))return n.get(e);n.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((i=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(i.get||i.set)?n(o,t,i):o[t]=e[t]);return o})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},_extends.apply(null,arguments)}const RT=()=>!0,ToastContentImpl=e=>{const{visible:t,message:r,icon:a,type:n="info",iconSize:i,duration:o=2e3,position:s="middle",forbidClick:c=!1,overlay:u=!1,overlayStyle:l,closeOnClickOverlay:d=!1,closeOnClick:f=!1,loadingIndicator:_,safeAreaInsetTop:m,safeAreaInsetBottom:p,tokensOverride:v,style:g,textStyle:y,onClose:x,onOpen:b,onOpened:h,onClosed:T}=e,E=(0,_useLocale.useLocale)(),N=(0,_tokens.useToastTokens)(v),R=(0,_animation.useReducedMotion)(),{colors:k}=N,{height:O}=(0,_reactNative().useWindowDimensions)(),w=(0,_validate.isFiniteNumber)(o)?Math.max(0,o):0,[C,I]=(0,_react().useState)(t),M=(0,_react().useRef)(new(_reactNative().Animated.Value)(t?1:0)).current,P=(0,_react().useRef)(null),q=(0,_react().useRef)(0),z=(0,_react().useRef)(x);z.current=x;const A=(0,_react().useRef)(b);A.current=b;const W=(0,_react().useRef)(h);W.current=h;const V=(0,_react().useRef)(T);V.current=T;const{zIndex:D}=(0,_hooks.useOverlayStack)({visible:C,type:"toast"}),H=(0,_react().useRef)(t),j=(0,_react().useRef)(!1),F=O>0?Math.round(O*N.positionOffsetRatio):N.positionOffsetMin,L=void 0!==m?m:"top"===s,B=void 0!==p?p:"bottom"===s,G=(0,_react().useMemo)(()=>"top"===s?{justifyContent:"flex-start",paddingTop:F}:"bottom"===s?{justifyContent:"flex-end",paddingBottom:F}:{justifyContent:"center"},[s,F]);(0,_react().useEffect)(()=>{q.current+=1;const e=q.current;P.current?.stop();const r=R?0:N.animationDuration;t?(I(!0),P.current=_reactNative().Animated.timing(M,{toValue:1,duration:r,easing:_reactNative().Easing.out(_reactNative().Easing.cubic),useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1}),P.current.start()):(P.current=_reactNative().Animated.timing(M,{toValue:0,duration:r,easing:_reactNative().Easing.out(_reactNative().Easing.cubic),useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1}),P.current.start(({finished:t})=>{t&&e===q.current&&I(!1)}))},[M,R,N.animationDuration,t]),(0,_react().useEffect)(()=>()=>{P.current?.stop()},[]),(0,_react().useEffect)(()=>{if(!t||w<=0)return;const e=setTimeout(()=>{z.current?.()},w);return()=>clearTimeout(e)},[w,t]),(0,_react().useEffect)(()=>{if(!t||!(0,_validate.isText)(r))return;const e=String(r);e&&_reactNative().AccessibilityInfo.announceForAccessibility?.(e)},[r,t]);const J=R?0:N.animationDuration;(0,_react().useEffect)(()=>{let e=null;if(t){if(j.current=!1,!H.current&&(A.current?.(),W.current)){const t=W.current;e=setTimeout(t,J)}}else H.current&&(j.current=!0);return H.current=t,()=>{e&&clearTimeout(e)}},[J,t]),(0,_react().useEffect)(()=>{!C&&j.current&&(j.current=!1,V.current?.())},[C]);const K=(0,_react().useRef)(()=>z.current?.()).current,Q=(0,_hooks.useAriaPress)({disabled:!f,onPress:K,extraProps:{accessibilityRole:f?"button":"alert",accessibilityHint:f?E?.vanToast?.closeHint??"Double-tap to dismiss":void 0,accessibilityLiveRegion:"assertive"}}),U=(0,_react().useMemo)(()=>{if(a)return a;const e=i??N.iconSize;switch(n){case"success":return _react().default.createElement(_reactNativeSystemIcon().Checked,{size:e,fill:k.text,color:k.text});case"fail":return _react().default.createElement(_reactNativeSystemIcon().Close,{size:e,fill:k.text,color:k.text});case"loading":return _??_react().default.createElement(_loading.default,{color:k.text,size:e});default:return null}},[k.text,a,i,_,N.iconSize,n]),X=(0,_react().useMemo)(()=>({marginBottom:N.gap}),[N.gap]),Y=(0,_react().useMemo)(()=>({color:k.text,fontSize:N.fontSize,lineHeight:N.lineHeight,fontFamily:N.fontFamily}),[k.text,N.fontSize,N.fontFamily,N.lineHeight]),Z="info"===n&&!U,$=(0,_react().useMemo)(()=>Z?{minWidth:N.textMinWidth,minHeight:0,paddingVertical:N.textPaddingVertical,paddingHorizontal:N.textPaddingHorizontal}:{minWidth:N.defaultWidth,minHeight:N.defaultMinHeight,padding:N.defaultPadding},[Z,N.defaultMinHeight,N.defaultPadding,N.defaultWidth,N.textMinWidth,N.textPaddingHorizontal,N.textPaddingVertical]),ee=(0,_react().useMemo)(()=>({borderRadius:N.radius,opacity:f&&Q.states.pressed?N.pressedOpacity:M,backgroundColor:N.colors.variants[n],maxWidth:N.maxWidth,...$}),[M,$,f,Q.states.pressed,N.colors.variants,N.maxWidth,N.pressedOpacity,N.radius,n]);if(!C)return null;const te=(0,_validate.isRenderable)(r)&&("string"!=typeof r||""!==r);return _react().default.createElement(_reactNative().View,{style:[S.b,{backgroundColor:N.colors.transparent},G,D?{zIndex:D}:void 0],pointerEvents:c||u||f?"auto":"none"},(u||c)&&_react().default.createElement(_reactNative().Pressable,{testID:"rv-toast-overlay",style:[S.o,{backgroundColor:N.colors.transparent},u&&{backgroundColor:k.backdrop},l],pointerEvents:"auto",onPress:u&&d?K:void 0,onStartShouldSetResponder:RT,onMoveShouldSetResponder:RT}),L&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"top",pointerEvents:"none"}),_react().default.createElement(_reactNative().Pressable,_extends({disabled:!f},Q.interactionProps),_react().default.createElement(_reactNative().Animated.View,{renderToHardwareTextureAndroid:!0,shouldRasterizeIOS:!0,style:[S.t,ee,g]},U&&_react().default.createElement(_reactNative().View,{style:X},(0,_validate.isText)(U)?(0,_utils.renderTextOrNode)(U,[{color:k.text,fontSize:N.iconSize}]):U),te&&((0,_validate.isText)(r)?(0,_utils.renderTextOrNode)(r,[S.m,Y,y]):_react().default.createElement(_reactNative().View,{style:S.mw},r)))),B&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"bottom",pointerEvents:"none"}))},ToastContent=exports.ToastContent=_react().default.memo(ToastContentImpl),ToastImpl=e=>_react().default.createElement(_Portal.default,null,_react().default.createElement(ToastContent,e)),Toast=exports.Toast=_react().default.memo(ToastImpl),S=_reactNative().StyleSheet.create({b:{flex:1,alignItems:"center"},o:{..._reactNative().StyleSheet.absoluteFillObject},t:{alignItems:"center",justifyContent:"center"},m:{textAlign:"center"},mw:{alignItems:"center"}});var _default=exports.default=Toast;
1
+ "use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.ToastContent=exports.Toast=void 0;var _Portal=_interopRequireDefault(require("../portal/Portal")),_safeAreaView=require("../safe-area-view"),_hooks=require("../../hooks"),_loading=_interopRequireDefault(require("../loading"));function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}var _validate=require("../../utils/validate"),_utils=require("../../utils"),_platform=require("../../platform"),_animation=require("../../hooks/animation"),_useLocale=require("../config-provider/useLocale"),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,i,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(n=t?a:r){if(n.has(e))return n.get(e);n.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((i=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(i.get||i.set)?n(o,t,i):o[t]=e[t]);return o})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},_extends.apply(null,arguments)}const RT=()=>!0,ToastContentImpl=e=>{const{visible:t,message:r,icon:a,type:n="info",iconSize:i,duration:o=2e3,position:s="middle",forbidClick:c=!1,overlay:u=!1,overlayStyle:l,closeOnClickOverlay:d=!1,closeOnClick:f=!1,loadingIndicator:_,safeAreaInsetTop:m,safeAreaInsetBottom:p,tokensOverride:v,style:g,textStyle:y,onClose:x,onOpen:b,onOpened:h,onClosed:T}=e,E=(0,_useLocale.useLocale)(),N=(0,_tokens.useToastTokens)(v),R=(0,_animation.useReducedMotion)(),{colors:k}=N,{height:O}=(0,_reactNative().useWindowDimensions)(),w=(0,_validate.isFiniteNumber)(o)?Math.max(0,o):0,[C,I]=(0,_react().useState)(t),M=(0,_react().useRef)(new(_reactNative().Animated.Value)(t?1:0)).current,P=(0,_react().useRef)(null),q=(0,_react().useRef)(0),z=(0,_react().useRef)(x);z.current=x;const A=(0,_react().useRef)(b);A.current=b;const W=(0,_react().useRef)(h);W.current=h;const V=(0,_react().useRef)(T);V.current=T;const{zIndex:D}=(0,_hooks.useOverlayStack)({visible:C,type:"toast"}),H=(0,_react().useRef)(t),j=(0,_react().useRef)(!1),F=O>0?Math.round(O*N.positionOffsetRatio):N.positionOffsetMin,L=void 0!==m?m:"top"===s,B=void 0!==p?p:"bottom"===s,G=(0,_react().useMemo)(()=>"top"===s?{justifyContent:"flex-start",paddingTop:F}:"bottom"===s?{justifyContent:"flex-end",paddingBottom:F}:{justifyContent:"center"},[s,F]);(0,_react().useEffect)(()=>{q.current+=1;const e=q.current;P.current?.stop();const r=R?0:N.animationDuration;t?(I(!0),P.current=_reactNative().Animated.timing(M,{toValue:1,duration:r,easing:_reactNative().Easing.out(_reactNative().Easing.cubic),useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1}),P.current.start()):(P.current=_reactNative().Animated.timing(M,{toValue:0,duration:r,easing:_reactNative().Easing.out(_reactNative().Easing.cubic),useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1}),P.current.start(({finished:t})=>{t&&e===q.current&&I(!1)}))},[M,R,N.animationDuration,t]),(0,_react().useEffect)(()=>()=>{P.current?.stop()},[]),(0,_react().useEffect)(()=>{if(!t||w<=0)return;const e=setTimeout(()=>{z.current?.()},w);return()=>clearTimeout(e)},[w,t]),(0,_react().useEffect)(()=>{if(!t||!(0,_validate.isText)(r))return;const e=String(r);e&&_reactNative().AccessibilityInfo.announceForAccessibility?.(e)},[r,t]);const J=R?0:N.animationDuration;(0,_react().useEffect)(()=>{let e=null;return t?(j.current=!1,!H.current&&(A.current?.(),W.current&&(e=setTimeout(W.current,J)))):H.current&&(j.current=!0),H.current=t,()=>{e&&clearTimeout(e)}},[J,t]),(0,_react().useEffect)(()=>{!C&&j.current&&(j.current=!1,V.current?.())},[C]);const K=(0,_react().useRef)(()=>z.current?.()).current,Q=(0,_hooks.useAriaPress)({disabled:!f,onPress:K,extraProps:{accessibilityRole:f?"button":"alert",accessibilityHint:f?E?.vanToast?.closeHint??"Double-tap to dismiss":void 0,accessibilityLiveRegion:"assertive"}}),U=(0,_react().useMemo)(()=>{if(a)return a;const e=i??N.iconSize;switch(n){case"success":return _react().default.createElement(_reactNativeSystemIcon().Checked,{size:e,fill:k.text,color:k.text});case"fail":return _react().default.createElement(_reactNativeSystemIcon().Close,{size:e,fill:k.text,color:k.text});case"loading":return _??_react().default.createElement(_loading.default,{color:k.text,size:e});default:return null}},[k.text,a,i,_,N.iconSize,n]),X=(0,_react().useMemo)(()=>({marginBottom:N.gap}),[N.gap]),Y=(0,_react().useMemo)(()=>({color:k.text,fontSize:N.fontSize,lineHeight:N.lineHeight,fontFamily:N.fontFamily}),[k.text,N.fontSize,N.fontFamily,N.lineHeight]),Z="info"===n&&!U,$=(0,_react().useMemo)(()=>Z?{minWidth:N.textMinWidth,minHeight:0,paddingVertical:N.textPaddingVertical,paddingHorizontal:N.textPaddingHorizontal}:{minWidth:N.defaultWidth,minHeight:N.defaultMinHeight,padding:N.defaultPadding},[Z,N.defaultMinHeight,N.defaultPadding,N.defaultWidth,N.textMinWidth,N.textPaddingHorizontal,N.textPaddingVertical]),ee=(0,_react().useMemo)(()=>({borderRadius:N.radius,opacity:f&&Q.states.pressed?N.pressedOpacity:M,backgroundColor:N.colors.variants[n],maxWidth:N.maxWidth,...$}),[M,$,f,Q.states.pressed,N.colors.variants,N.maxWidth,N.pressedOpacity,N.radius,n]);if(!C)return null;const te=(0,_validate.isRenderable)(r)&&("string"!=typeof r||""!==r);return _react().default.createElement(_reactNative().View,{style:[S.b,{backgroundColor:N.colors.transparent},G,D?{zIndex:D}:void 0],pointerEvents:c||u||f?"auto":"none"},(u||c)&&_react().default.createElement(_reactNative().Pressable,{testID:"rv-toast-overlay",style:[S.o,{backgroundColor:N.colors.transparent},u&&{backgroundColor:k.backdrop},l],pointerEvents:"auto",onPress:u&&d?K:void 0,onStartShouldSetResponder:RT,onMoveShouldSetResponder:RT}),L&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"top",pointerEvents:"none"}),_react().default.createElement(_reactNative().Pressable,_extends({disabled:!f},Q.interactionProps),_react().default.createElement(_reactNative().Animated.View,{renderToHardwareTextureAndroid:!0,shouldRasterizeIOS:!0,style:[S.t,ee,g]},U&&_react().default.createElement(_reactNative().View,{style:X},(0,_validate.isText)(U)?(0,_utils.renderTextOrNode)(U,[{color:k.text,fontSize:N.iconSize}]):U),te&&((0,_validate.isText)(r)?(0,_utils.renderTextOrNode)(r,[S.m,Y,y]):_react().default.createElement(_reactNative().View,{style:S.mw},r)))),B&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"bottom",pointerEvents:"none"}))},ToastContent=exports.ToastContent=_react().default.memo(ToastContentImpl),ToastImpl=e=>_react().default.createElement(_Portal.default,null,_react().default.createElement(ToastContent,e)),Toast=exports.Toast=_react().default.memo(ToastImpl),S=_reactNative().StyleSheet.create({b:{flex:1,alignItems:"center"},o:{..._reactNative().StyleSheet.absoluteFillObject},t:{alignItems:"center",justifyContent:"center"},m:{textAlign:"center"},mw:{alignItems:"center"}});var _default=exports.default=Toast;
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ "use strict";
@@ -1 +1 @@
1
- function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)({}).hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},_extends.apply(null,arguments)}import React,{useCallback,useMemo,useRef}from"react";import{Pressable,View}from"react-native";import{Close}from"react-native-system-icon";import{useAriaPress}from"../../hooks";import{createHairlineView,isRenderable,isText,renderTextOrNode}from"../../utils";import Loading from"../loading";import Popup from"../popup";import{useActionSheetTokens}from"./tokens";const defaultCloseIcon=React.createElement(Close,{size:18}),ActionSheetHeader=React.memo(({title:e,closeable:t,closeIcon:o,tokens:r,onClose:n})=>{const a=useAriaPress({onPress:n}),{colors:l,typography:c}=r;return React.createElement(View,{style:r.layout.header},React.createElement(View,{style:r.layout.titleContainer},isText(e)?renderTextOrNode(e,[r.layout.title,{color:l.title,fontSize:c.title}]):React.createElement(View,{style:r.layout.titleNode},e)),t&&React.createElement(Pressable,_extends({style:r.layout.closeButton,accessibilityRole:"button",hitSlop:8},a.interactionProps),React.isValidElement(o)?React.cloneElement(o,{fill:l.description,color:l.description}):renderTextOrNode(o,[{color:l.description}])))}),ActionSheetItem=React.memo(({action:e,index:t,tokens:o,onActionPress:r})=>{const{disabled:n,loading:a,name:l,subname:c,icon:s}=e,{colors:i,spacing:u,typography:d}=o,m=useAriaPress({disabled:!!n||!!a,onPress:useCallback(()=>r(e,t),[e,t,r]),extraProps:{accessibilityRole:"menuitem",accessibilityLabel:isText(l)?String(l):void 0,accessibilityState:{disabled:!!n,busy:!!a},testID:`rv-action-sheet-item-${t}`}});return React.createElement(Pressable,_extends({style:({pressed:t})=>[o.layout.item,!!s&&o.layout.itemWithIcon,{paddingVertical:u.vertical,paddingHorizontal:u.horizontal,backgroundColor:!t||e.disabled||e.loading?i.itemBackground:i.itemPressedBackground},e.style]},m.interactionProps),!!s&&React.createElement(View,{style:o.layout.icon},isText(s)?renderTextOrNode(s,[{color:i.item}]):s),a?React.createElement(Loading,{size:20}):isRenderable(l)?React.createElement(View,{style:o.layout.itemTextWrapper},renderTextOrNode(l,[o.layout.itemText,{color:e.disabled?i.disabled:e.color??i.item,fontSize:d.item}]),isRenderable(c)&&(isText(c)?renderTextOrNode(c,[o.layout.subname,{color:i.subitem}]):React.createElement(View,{style:o.layout.subnameNode},c))):null)}),ActionSheetCancel=React.memo(({cancelText:e,tokens:t,onPress:o})=>{const{colors:r,spacing:n,typography:a}=t,l=useAriaPress({onPress:o,extraProps:{accessibilityRole:"button",testID:"rv-action-sheet-cancel"}});return React.createElement(React.Fragment,null,React.createElement(View,{style:[t.layout.cancelGap,{height:n.cancelGap,backgroundColor:r.cancelGapBackground}]}),React.createElement(Pressable,_extends({style:[t.layout.cancel,{paddingVertical:n.vertical,paddingHorizontal:n.horizontal,backgroundColor:r.cancelBackground}]},l.interactionProps),renderTextOrNode(e,[t.layout.cancelText,{color:r.cancel,fontSize:a.item}])))}),ActionSheetImpl=e=>{const{tokensOverride:t,visible:o,title:r,description:n,cancelText:a,actions:l=[],closeOnClickAction:c,closeOnSelect:s,closeable:i,closeIcon:u=defaultCloseIcon,beforeClose:d,onSelect:m,onCancel:y,onClose:p,children:b,round:R,safeAreaInsetBottom:f,overlay:k,lockScroll:h,style:g,...x}=e,C=useActionSheetTokens(t),A=i??C.defaults.closeable,S=R??C.defaults.round,P=f??C.defaults.safeAreaInsetBottom,E=k??C.defaults.overlay,T=h??C.defaults.lockScroll,w=c??s??C.defaults.closeOnClickAction,V=isRenderable(r),v=isRenderable(n),I=isRenderable(a),O=useRef("close"),N=useRef(!1),z=useRef(d);z.current=d;const B=useRef(p);B.current=p;const _=useRef(y);_.current=y;const H=useRef(m);H.current=m;const G=useCallback(async e=>{if(!z.current)return!0;try{return!1!==await z.current(e)}catch{return!0}},[]),L=useCallback(e=>{if(B.current)return"cancel"===e&&_.current?.(),void B.current();_.current?.()},[]),j=useCallback(async e=>{if(!N.current){N.current=!0;try{if(!await G(e))return;L(e)}finally{N.current=!1}}},[L,G]),D=useCallback(e=>(O.current=e,G(e)),[G]),M=useCallback(()=>{L(O.current)},[L]),W=useCallback((e,t)=>{e.disabled||e.loading||(e.onPress?.(e),e.callback?.(e),H.current?.(e,t),w&&j("action"))},[j,w]),F=useMemo(()=>[C.layout.popup,g],[C.layout.popup,g]);return React.createElement(Popup,_extends({visible:o,placement:"bottom",round:S,safeAreaInsetTop:V&&A,safeAreaInsetBottom:P,overlay:E,lockScroll:T,beforeClose:D,onClose:M,style:F},x),React.createElement(View,{accessibilityRole:"menu",style:[C.layout.panel,{backgroundColor:C.colors.background}]},V&&React.createElement(ActionSheetHeader,{title:r,closeable:A,closeIcon:u,tokens:C,onClose:()=>{j("close-icon")}}),v&&React.createElement(View,{style:C.layout.descriptionContainer},isText(n)?renderTextOrNode(n,[C.layout.description,{color:C.colors.description,fontSize:C.typography.description}]):React.createElement(View,{style:C.layout.descriptionNode},n),React.createElement(View,{style:createHairlineView({position:"bottom",color:C.colors.border,left:0,right:0})})),React.createElement(View,{style:C.layout.actions},l.map((e,t)=>React.createElement(ActionSheetItem,{key:e.key??t,action:e,index:t,tokens:C,onActionPress:W}))),b,I&&React.createElement(ActionSheetCancel,{cancelText:a,tokens:C,onPress:()=>{j("cancel")}})))},ActionSheet=React.memo(ActionSheetImpl);ActionSheet.displayName="ActionSheet";export default ActionSheet;
1
+ function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)({}).hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},_extends.apply(null,arguments)}import React,{useCallback,useMemo,useRef}from"react";import{Platform,Pressable,View}from"react-native";import{Close}from"react-native-system-icon";import{useAriaPress}from"../../hooks";import{createHairlineView,isRenderable,isText,renderTextOrNode}from"../../utils";import Loading from"../loading";import Popup from"../popup";import{useActionSheetTokens}from"./tokens";const defaultCloseIcon=React.createElement(Close,{size:18}),ActionSheetHeader=React.memo(({title:e,closeable:t,closeIcon:o,tokens:r,onClose:a})=>{const n=useAriaPress({onPress:a}),{colors:l,typography:c}=r;return React.createElement(View,{style:r.layout.header},React.createElement(View,{style:r.layout.titleContainer},isText(e)?renderTextOrNode(e,[r.layout.title,{color:l.title,fontSize:c.title}]):React.createElement(View,{style:r.layout.titleNode},e)),t&&React.createElement(Pressable,_extends({style:r.layout.closeButton,accessibilityRole:"button",hitSlop:8},n.interactionProps),React.isValidElement(o)?React.cloneElement(o,{fill:l.description,color:l.description}):renderTextOrNode(o,[{color:l.description}])))}),ActionSheetItem=React.memo(({action:e,index:t,tokens:o,onActionPress:r})=>{const{disabled:a,loading:n,name:l,subname:c,icon:s}=e,{colors:i,spacing:u,typography:d}=o,m=useAriaPress({disabled:!!a||!!n,onPress:useCallback(()=>r(e,t),[e,t,r]),extraProps:{accessibilityRole:"web"===Platform.OS?"menuitem":"button",accessibilityLabel:isText(l)?String(l):void 0,accessibilityState:{disabled:!!a,busy:!!n},testID:`rv-action-sheet-item-${t}`}});return React.createElement(Pressable,_extends({style:({pressed:t})=>[o.layout.item,!!s&&o.layout.itemWithIcon,{paddingVertical:u.vertical,paddingHorizontal:u.horizontal,backgroundColor:!t||e.disabled||e.loading?i.itemBackground:i.itemPressedBackground},e.style]},m.interactionProps),!!s&&React.createElement(View,{style:o.layout.icon},isText(s)?renderTextOrNode(s,[{color:i.item}]):s),n?React.createElement(Loading,{size:20}):isRenderable(l)?React.createElement(View,{style:o.layout.itemTextWrapper},renderTextOrNode(l,[o.layout.itemText,{color:e.disabled?i.disabled:e.color??i.item,fontSize:d.item}]),isRenderable(c)&&(isText(c)?renderTextOrNode(c,[o.layout.subname,{color:i.subitem}]):React.createElement(View,{style:o.layout.subnameNode},c))):null)}),ActionSheetCancel=React.memo(({cancelText:e,tokens:t,onPress:o})=>{const{colors:r,spacing:a,typography:n}=t,l=useAriaPress({onPress:o,extraProps:{accessibilityRole:"button",testID:"rv-action-sheet-cancel"}});return React.createElement(React.Fragment,null,React.createElement(View,{style:[t.layout.cancelGap,{height:a.cancelGap,backgroundColor:r.cancelGapBackground}]}),React.createElement(Pressable,_extends({style:[t.layout.cancel,{paddingVertical:a.vertical,paddingHorizontal:a.horizontal,backgroundColor:r.cancelBackground}]},l.interactionProps),renderTextOrNode(e,[t.layout.cancelText,{color:r.cancel,fontSize:n.item}])))}),ActionSheetImpl=e=>{const{tokensOverride:t,visible:o,title:r,description:a,cancelText:n,actions:l=[],closeOnClickAction:c,closeOnSelect:s,closeable:i,closeIcon:u=defaultCloseIcon,beforeClose:d,onSelect:m,onCancel:y,onClose:p,children:b,round:f,safeAreaInsetBottom:R,overlay:k,lockScroll:h,style:g,...x}=e,C=useActionSheetTokens(t),P=i??C.defaults.closeable,S=f??C.defaults.round,A=R??C.defaults.safeAreaInsetBottom,E=k??C.defaults.overlay,T=h??C.defaults.lockScroll,w=c??s??C.defaults.closeOnClickAction,V=isRenderable(r),v=isRenderable(a),I=isRenderable(n),O=useRef("close"),N=useRef(!1),z=useRef(d);z.current=d;const B=useRef(p);B.current=p;const _=useRef(y);_.current=y;const H=useRef(m);H.current=m;const G=useCallback(async e=>{if(!z.current)return!0;try{return!1!==await z.current(e)}catch{return!0}},[]),L=useCallback(e=>{if(B.current)return"cancel"===e&&_.current?.(),void B.current();_.current?.()},[]),j=useCallback(async e=>{if(!N.current){N.current=!0;try{if(!await G(e))return;L(e)}finally{N.current=!1}}},[L,G]),D=useCallback(e=>(O.current=e,G(e)),[G]),M=useCallback(()=>{L(O.current)},[L]),W=useCallback((e,t)=>{e.disabled||e.loading||(e.onPress?.(e),e.callback?.(e),H.current?.(e,t),w&&j("action"))},[j,w]),F=useMemo(()=>[C.layout.popup,g],[C.layout.popup,g]);return React.createElement(Popup,_extends({visible:o,placement:"bottom",round:S,safeAreaInsetTop:V&&P,safeAreaInsetBottom:A,overlay:E,lockScroll:T,beforeClose:D,onClose:M,style:F},x),React.createElement(View,{accessibilityRole:"menu",style:[C.layout.panel,{backgroundColor:C.colors.background}]},V&&React.createElement(ActionSheetHeader,{title:r,closeable:P,closeIcon:u,tokens:C,onClose:()=>{j("close-icon")}}),v&&React.createElement(View,{style:C.layout.descriptionContainer},isText(a)?renderTextOrNode(a,[C.layout.description,{color:C.colors.description,fontSize:C.typography.description}]):React.createElement(View,{style:C.layout.descriptionNode},a),React.createElement(View,{style:createHairlineView({position:"bottom",color:C.colors.border,left:0,right:0})})),React.createElement(View,{style:C.layout.actions},l.map((e,t)=>React.createElement(ActionSheetItem,{key:e.key??t,action:e,index:t,tokens:C,onActionPress:W}))),b,I&&React.createElement(ActionSheetCancel,{cancelText:n,tokens:C,onPress:()=>{j("cancel")}})))},ActionSheet=React.memo(ActionSheetImpl);ActionSheet.displayName="ActionSheet";export default ActionSheet;
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1 @@
1
+ export{};
@@ -1 +1 @@
1
- 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 l in a)({}).hasOwnProperty.call(a,l)&&(e[l]=a[l])}return e},_extends.apply(null,arguments)}import React,{useContext,useEffect,useImperativeHandle,useRef}from"react";import{Platform,Pressable,Text,View}from"react-native";import{useCheckbox,useCheckboxGroupItem}from"@react-native-aria/checkbox";import{useToggleState}from"@react-stately/toggle";import{CheckboxGroupContext}from"./CheckboxContext";import{useCheckboxTokens}from"./tokens";import{createHairlineView}from"../../utils";import{isRenderable,isText}from"../../utils/validate";const EMPTY_CHECKBOX_GROUP_STATE={value:[],isDisabled:!1,isReadOnly:!1,isSelected:()=>!1,setValue:()=>{},addValue:()=>{},removeValue:()=>{},toggleValue:()=>{}},CheckboxImpl=(e,t)=>{const{children:a,name:l,value:o,iconRender:i,bindGroup:c,shape:s,iconSize:r,checkedColor:n,labelPosition:d,labelDisabled:u,disabled:b,style:p,labelStyle:h,tokensOverride:m,hitSlop:f=8,accessibilityLabel:g,"aria-label":k,onClick:y,onChange:x,...R}=e,C=useCheckboxTokens(m),S=useContext(CheckboxGroupContext),v=c??C.defaults.bindGroup,E=s??S?.shape??C.defaults.shape,V=r??S?.iconSize??C.defaults.iconSize,P=n??S?.checkedColor??C.colors.checkedBackground,T=i??S?.iconRender,w=d??C.defaults.labelPosition,_=u??S?.labelDisabled??C.defaults.labelDisabled,O=Boolean(b||S?.state.isDisabled),B=o??l,D=null==B?void 0:String(B),G=useRef(null);useImperativeHandle(t,()=>G.current);const H=useToggleState({isSelected:e.checked,defaultSelected:e.defaultChecked,onChange:x}),z=!!S&&void 0!==D&&v,{onBlur:F,onFocus:I,...L}=R;useEffect(()=>{if(S&&v&&void 0!==D&&void 0!==B)return S.registerValue(D,B,O),()=>S.unregisterValue(D)},[v,S,D,B,O]);const W=g??k??(isText(a)?String(a):void 0)??D??"checkbox",M=G,{inputProps:j}=useCheckboxGroupItem({...L,value:D??"",isDisabled:O,"aria-label":W},z&&S?S.state:EMPTY_CHECKBOX_GROUP_STATE,M),{inputProps:A}=useCheckbox({...L,isDisabled:O,value:D,"aria-label":W},H,M),K=z&&S?j:A,U=z&&S?S.state.isSelected(D):void 0!==e.checked?e.checked:H.isSelected,X="round"===E?V/2:C.radii.square,Y=O?C.colors.disabledBorder:U?P:C.colors.border,q=O?C.colors.disabledBackground:U?P:C.colors.background,J=O||_?C.colors.labelDisabled:C.colors.label,N="left"===w?{marginRight:C.spacing.gap}:{marginLeft:C.spacing.gap},Q=K?.onPress,Z=K?{...K,onPress:t=>{y?.(t),z&&S?.max&&!U&&S.state.value.length>=S.max||(Q?Q(t):z&&S&&void 0!==D?U?S.state.removeValue(D):S.state.addValue(D):void 0===e.checked?x&&H.setSelected(!H.isSelected):x?.(!e.checked))}}:{},$=isRenderable(a)?isText(a)?React.createElement(Text,{accessible:!1,style:[C.layout.label,{color:J,fontSize:C.typography.fontSize,lineHeight:C.typography.fontSize*C.typography.lineHeightMultiplier,fontFamily:C.typography.fontFamily,fontWeight:C.typography.fontWeight},h]},a):React.createElement(View,{accessible:!1,style:h},a):null,ee={width:V,height:V,borderRadius:X,backgroundColor:q};let te=React.createElement(View,{style:[C.layout.icon,ee]},U&&React.createElement(Text,{style:[C.layout.checkmark,{color:C.colors.checkmark,fontSize:V*C.icon.scale}]},"✓"),React.createElement(View,{style:createHairlineView({position:"all",color:Y,borderRadius:X})}));T&&(te=T({checked:Boolean(U),disabled:Boolean(O)})??null);const ae=!O&&!_,le=$&&React.createElement(View,{style:[C.layout.labelWrapper,N],pointerEvents:_?"none":void 0,accessible:!1},$),oe=[C.layout.iconWrapper,"left"===w?{marginLeft:C.spacing.gap}:{marginRight:C.spacing.gap}],ie=ae?React.createElement(View,{style:oe},te):React.createElement(Pressable,_extends({},Z,{ref:G,disabled:O,accessibilityLabel:W,accessibilityRole:"checkbox",accessibilityState:{checked:U,disabled:!!O},style:oe,hitSlop:f}),te),ce="left"===w?React.createElement(React.Fragment,null,le,ie):React.createElement(React.Fragment,null,ie,le);return ae?React.createElement(Pressable,_extends({},Z,{ref:G,disabled:O,accessibilityLabel:W,accessibilityRole:"checkbox",accessibilityState:{checked:U,disabled:!!O},style:({pressed:e})=>[C.layout.container,p,"web"===Platform.OS&&{cursor:"pointer"},e&&{opacity:.8}],hitSlop:f}),ce):React.createElement(View,{style:[C.layout.container,p]},ce)},CheckboxForwardRef=React.forwardRef(CheckboxImpl);export const Checkbox=React.memo(CheckboxForwardRef);export default Checkbox;
1
+ 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 l in a)({}).hasOwnProperty.call(a,l)&&(e[l]=a[l])}return e},_extends.apply(null,arguments)}import React,{useContext,useEffect,useImperativeHandle,useRef}from"react";import{Platform,Pressable,Text,View}from"react-native";import{useCheckbox,useCheckboxGroupItem}from"@react-native-aria/checkbox";import{useToggleState}from"@react-stately/toggle";import{CheckboxGroupContext}from"./CheckboxContext";import{useCheckboxTokens}from"./tokens";import{createHairlineView}from"../../utils";import{isRenderable,isText}from"../../utils/validate";const EMPTY_CHECKBOX_GROUP_STATE={value:[],isDisabled:!1,isReadOnly:!1,isSelected:()=>!1,setValue:()=>{},addValue:()=>{},removeValue:()=>{},toggleValue:()=>{}},CheckboxImpl=(e,t)=>{const{children:a,name:l,value:o,iconRender:i,bindGroup:c,shape:r,iconSize:s,checkedColor:n,labelPosition:d,labelDisabled:u,disabled:b,style:p,labelStyle:h,tokensOverride:m,hitSlop:f=8,accessibilityLabel:g,"aria-label":k,onClick:y,onChange:x,...R}=e,C=useCheckboxTokens(m),S=useContext(CheckboxGroupContext),v=c??C.defaults.bindGroup,E=r??S?.shape??C.defaults.shape,V=s??S?.iconSize??C.defaults.iconSize,P=n??S?.checkedColor??C.colors.checkedBackground,T=i??S?.iconRender,w=d??C.defaults.labelPosition,_=u??S?.labelDisabled??C.defaults.labelDisabled,O=Boolean(b||S?.state.isDisabled),B=o??l,D=null==B?void 0:String(B),G=useRef(null);useImperativeHandle(t,()=>G.current);const H=useToggleState({isSelected:e.checked,defaultSelected:e.defaultChecked,onChange:x}),z=!!S&&void 0!==D&&v,{onBlur:F,onFocus:I,...L}=R;useEffect(()=>{if(S&&v&&void 0!==D&&void 0!==B)return S.registerValue(D,B,O),()=>S.unregisterValue(D)},[v,S,D,B,O]);const W=g??k??(isText(a)?String(a):void 0)??D??"checkbox",M=G,{inputProps:j}=useCheckboxGroupItem({...L,value:D??"",isDisabled:O,"aria-label":W},z&&S?S.state:EMPTY_CHECKBOX_GROUP_STATE,M),{inputProps:A}=useCheckbox({...L,isDisabled:O,value:D,"aria-label":W},H,M),K=z&&S?j:A,U=z&&S?S.state.isSelected(D):void 0!==e.checked?e.checked:H.isSelected,X="round"===E?V/2:C.radii.square,Y=O?C.colors.disabledBorder:U?P:C.colors.border,q=O?C.colors.disabledBackground:U?P:C.colors.background,J=O||_?C.colors.labelDisabled:C.colors.label,N="left"===w?{marginRight:C.spacing.gap}:{marginLeft:C.spacing.gap},Q=K?.onPress,Z=K?{...K,onPress:t=>{y?.(t),z&&S?.max&&!U&&S.state.value.length>=S.max||(Q?Q(t):z&&S&&void 0!==D?U?S.state.removeValue(D):S.state.addValue(D):void 0===e.checked?x&&H.setSelected(!H.isSelected):x?.(!e.checked))}}:{},$=isRenderable(a)?isText(a)?React.createElement(Text,{accessible:!1,style:[C.layout.label,{color:J,fontSize:C.typography.fontSize,lineHeight:C.typography.fontSize*C.typography.lineHeightMultiplier,fontFamily:C.typography.fontFamily,fontWeight:C.typography.fontWeight},h]},a):React.createElement(View,{accessible:!1,style:h},a):null,ee={width:V,height:V,borderRadius:X,backgroundColor:q},te=React.createElement(View,{style:[C.layout.icon,ee]},U&&React.createElement(Text,{style:[C.layout.checkmark,{color:C.colors.checkmark,fontSize:V*C.icon.scale}]},"✓"),React.createElement(View,{style:createHairlineView({position:"all",color:Y,borderRadius:X})})),ae=T?T({checked:Boolean(U),disabled:Boolean(O)})??null:te,le=!O&&!_,oe=$&&React.createElement(View,{style:[C.layout.labelWrapper,N],pointerEvents:_?"none":void 0,accessible:!1},$),ie=[C.layout.iconWrapper,"left"===w?{marginLeft:C.spacing.gap}:{marginRight:C.spacing.gap}],ce=le?React.createElement(View,{style:ie},ae):React.createElement(Pressable,_extends({},Z,{ref:G,disabled:O,accessibilityLabel:W,accessibilityRole:"checkbox",accessibilityState:{checked:U,disabled:!!O},style:ie,hitSlop:f}),ae),re="left"===w?React.createElement(React.Fragment,null,oe,ce):React.createElement(React.Fragment,null,ce,oe);return le?React.createElement(Pressable,_extends({},Z,{ref:G,disabled:O,accessibilityLabel:W,accessibilityRole:"checkbox",accessibilityState:{checked:U,disabled:!!O},style:({pressed:e})=>[C.layout.container,p,"web"===Platform.OS&&{cursor:"pointer"},e&&{opacity:.8}],hitSlop:f}),re):React.createElement(View,{style:[C.layout.container,p]},re)},CheckboxForwardRef=React.forwardRef(CheckboxImpl);export const Checkbox=React.memo(CheckboxForwardRef);export default Checkbox;
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1 @@
1
+ export{};