react-native-system-ui 1.0.7 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -13
- package/dist/cjs/components/action-sheet/ActionSheet.js +1 -1
- package/dist/cjs/components/calendar/Calendar.js +1 -1
- package/dist/cjs/components/cascader/Cascader.js +1 -1
- package/dist/cjs/components/cascader/useCascaderExtend.js +1 -1
- package/dist/cjs/components/cell/Cell.js +1 -1
- package/dist/cjs/components/collapse/Collapse.js +1 -1
- package/dist/cjs/components/dialog/Dialog.js +1 -1
- package/dist/cjs/components/dialog/imperative.js +1 -1
- package/dist/cjs/components/empty/Empty.js +1 -1
- package/dist/cjs/components/field/Field.js +1 -1
- package/dist/cjs/components/form/Form.js +1 -1
- package/dist/cjs/components/nav-bar/NavBar.js +1 -1
- package/dist/cjs/components/notice-bar/NoticeBar.js +1 -1
- package/dist/cjs/components/number-keyboard/NumberKeyboard.js +1 -1
- package/dist/cjs/components/overlay/Overlay.js +1 -1
- package/dist/cjs/components/picker/Picker.js +1 -1
- package/dist/cjs/components/popup/Popup.js +1 -1
- package/dist/cjs/components/portal/PortalHost.js +1 -1
- package/dist/cjs/components/search/Search.js +1 -1
- package/dist/cjs/components/selector/Selector.js +1 -1
- package/dist/cjs/components/slider/Slider.js +1 -1
- package/dist/cjs/components/stepper/Stepper.js +1 -1
- package/dist/cjs/components/swiper/Swiper.js +1 -1
- package/dist/cjs/components/tabs/Tabs.js +1 -1
- package/dist/cjs/components/tag/Tag.js +1 -1
- package/dist/cjs/components/toast/Toast.js +1 -1
- package/dist/cjs/hooks/calendar/utils.js +1 -0
- package/dist/cjs/hooks/cascader/utils.js +1 -0
- package/dist/cjs/hooks/dialog/ActionButton.js +1 -0
- package/dist/cjs/hooks/field/renderers.js +1 -0
- package/dist/cjs/hooks/form/utils.js +1 -0
- package/dist/cjs/hooks/number-keyboard/utils.js +1 -0
- package/dist/cjs/hooks/picker/normalize.js +1 -0
- package/dist/cjs/hooks/picker/value.js +1 -0
- package/dist/cjs/hooks/popup/utils.js +1 -0
- package/dist/cjs/hooks/slider/utils.js +1 -0
- package/dist/cjs/hooks/swiper/utils.js +1 -0
- package/dist/cjs/hooks/tabs/TabBarItem.js +1 -0
- package/dist/cjs/hooks/tabs/useTabsInternals.js +1 -0
- package/dist/cjs/utils/compare.js +1 -1
- package/dist/es/components/action-sheet/ActionSheet.js +1 -1
- package/dist/es/components/calendar/Calendar.js +1 -1
- package/dist/es/components/cascader/Cascader.js +1 -1
- package/dist/es/components/cascader/useCascaderExtend.js +1 -1
- package/dist/es/components/cell/Cell.js +1 -1
- package/dist/es/components/collapse/Collapse.js +1 -1
- package/dist/es/components/dialog/Dialog.js +1 -1
- package/dist/es/components/dialog/imperative.js +1 -1
- package/dist/es/components/empty/Empty.js +1 -1
- package/dist/es/components/field/Field.js +1 -1
- package/dist/es/components/form/Form.js +1 -1
- package/dist/es/components/nav-bar/NavBar.js +1 -1
- package/dist/es/components/notice-bar/NoticeBar.js +1 -1
- package/dist/es/components/number-keyboard/NumberKeyboard.js +1 -1
- package/dist/es/components/overlay/Overlay.js +1 -1
- package/dist/es/components/picker/Picker.js +1 -1
- package/dist/es/components/popup/Popup.js +1 -1
- package/dist/es/components/portal/PortalHost.js +1 -1
- package/dist/es/components/search/Search.js +1 -1
- package/dist/es/components/selector/Selector.js +1 -1
- package/dist/es/components/slider/Slider.js +1 -1
- package/dist/es/components/stepper/Stepper.js +1 -1
- package/dist/es/components/swiper/Swiper.js +1 -1
- package/dist/es/components/tabs/Tabs.js +1 -1
- package/dist/es/components/tag/Tag.js +1 -1
- package/dist/es/components/toast/Toast.js +1 -1
- package/dist/es/hooks/calendar/utils.js +1 -0
- package/dist/es/hooks/cascader/utils.js +1 -0
- package/dist/es/hooks/dialog/ActionButton.js +1 -0
- package/dist/es/hooks/field/renderers.js +1 -0
- package/dist/es/hooks/form/utils.js +1 -0
- package/dist/es/hooks/number-keyboard/utils.js +1 -0
- package/dist/es/hooks/picker/normalize.js +1 -0
- package/dist/es/hooks/picker/value.js +1 -0
- package/dist/es/hooks/popup/utils.js +1 -0
- package/dist/es/hooks/slider/utils.js +1 -0
- package/dist/es/hooks/swiper/utils.js +1 -0
- package/dist/es/hooks/tabs/TabBarItem.js +1 -0
- package/dist/es/hooks/tabs/useTabsInternals.js +1 -0
- package/dist/es/utils/compare.js +1 -1
- package/dist/types/components/form/Form.d.ts +1 -1
- package/dist/types/components/picker/Picker.d.ts +1 -1
- package/dist/types/hooks/calendar/utils.d.ts +1 -0
- package/dist/types/hooks/cascader/utils.d.ts +1 -0
- package/dist/types/hooks/dialog/ActionButton.d.ts +1 -0
- package/dist/types/hooks/field/renderers.d.ts +1 -0
- package/dist/types/hooks/form/utils.d.ts +1 -0
- package/dist/types/hooks/number-keyboard/utils.d.ts +1 -0
- package/dist/types/hooks/picker/normalize.d.ts +1 -0
- package/dist/types/hooks/picker/value.d.ts +1 -0
- package/dist/types/hooks/popup/utils.d.ts +1 -0
- package/dist/types/hooks/slider/utils.d.ts +1 -0
- package/dist/types/hooks/swiper/utils.d.ts +1 -0
- package/dist/types/hooks/tabs/TabBarItem.d.ts +1 -0
- package/dist/types/hooks/tabs/useTabsInternals.d.ts +1 -0
- package/dist/types/utils/compare.d.ts +1 -1
- package/package.json +125 -126
package/README.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# react-native-system-ui
|
|
2
2
|
|
|
3
|
-
面向 React Native 的高性能设计系统组件库。基于 Design Tokens 驱动主题体系,50+ 组件全量覆盖移动端场景;原生 StyleSheet 零运行时开销,单组件均值 **2.
|
|
3
|
+
面向 React Native 的高性能设计系统组件库。基于 Design Tokens 驱动主题体系,50+ 组件全量覆盖移动端场景;原生 StyleSheet 零运行时开销,单组件均值 **2.6 KB gzip**;iOS / Android / Web 三端同构,API 一致、行为对齐。
|
|
4
4
|
|
|
5
5
|
## 核心优势
|
|
6
6
|
|
|
7
|
-
- **极致轻量**:全组件经过逐行精简——冗余 Hook 移除、StyleSheet 合并、计算内联、辅助函数提取;构建产物 esbuild 压缩;按需引入 + Tree Shaking,单组件平均 gzip 仅 **2.
|
|
7
|
+
- **极致轻量**:全组件经过逐行精简——冗余 Hook 移除、StyleSheet 合并、计算内联、辅助函数提取;构建产物 esbuild 压缩;按需引入 + Tree Shaking,单组件平均 gzip 仅 **2.6 KB**,最小组件(SafeAreaView)仅 **0.5 KB**。
|
|
8
8
|
- **原生性能**:纯 StyleSheet 驱动,零 CSS-in-JS 运行时;动画基于原生 Animated / LayoutAnimation,无 JS 线程阻塞;列表类组件(Picker、Swiper、Tabs)基于 FlatList / ScrollView 原生滚动,确保 60fps 流畅交互。
|
|
9
9
|
- **三端同构**:iOS / Android / Web 统一 API 与交互行为;Swiper、Picker 等核心组件在 Web 端自动适配桌面鼠标拖拽与移动端触控,无需业务层额外处理。
|
|
10
10
|
- **设计系统**:Design Tokens + ThemeProvider 分层架构,组件自管 tokens;支持 light / dark / 品牌主题一键切换,样式定制不侵入组件实现。
|
|
@@ -151,29 +151,29 @@ enableNativeWind(cssInterop)
|
|
|
151
151
|
|
|
152
152
|
## 组件体积
|
|
153
153
|
|
|
154
|
-
按需引入后单组件均值约 **2.
|
|
154
|
+
按需引入后单组件均值约 **2.6 KB**(各组件目录 gzip 相加估算,数据由 `pnpm run build && pnpm run docs:update-size` 生成)。支持 Tree Shaking,实际打包体积以构建结果为准。
|
|
155
155
|
|
|
156
156
|
| 组件 | gzip | 组件 | gzip | 组件 | gzip |
|
|
157
157
|
| --- | ---: | --- | ---: | --- | ---: |
|
|
158
|
-
| picker |
|
|
159
|
-
| dialog | 4.
|
|
160
|
-
|
|
|
161
|
-
|
|
|
162
|
-
|
|
|
158
|
+
| picker | 5.1 KB | cascader | 4.4 KB | tabs | 4.4 KB |
|
|
159
|
+
| dialog | 4.4 KB | form | 4.3 KB | toast | 3.9 KB |
|
|
160
|
+
| field | 3.8 KB | calendar | 3.8 KB | swiper | 3.8 KB |
|
|
161
|
+
| number-keyboard | 3.8 KB | notify | 3.7 KB | popup | 3.7 KB |
|
|
162
|
+
| slider | 3.6 KB | image-preview | 3.6 KB | checkbox | 3.6 KB |
|
|
163
163
|
| stepper | 3.6 KB | button | 3.6 KB | cell | 3.4 KB |
|
|
164
164
|
| radio | 3.3 KB | grid | 3.2 KB | tabbar | 3.0 KB |
|
|
165
165
|
| notice-bar | 2.9 KB | collapse | 2.8 KB | config-provider | 2.8 KB |
|
|
166
166
|
| password-input | 2.8 KB | action-sheet | 2.8 KB | image | 2.7 KB |
|
|
167
167
|
| sidebar | 2.6 KB | datetime-picker | 2.5 KB | share-sheet | 2.4 KB |
|
|
168
|
-
|
|
|
169
|
-
| portal | 2.
|
|
168
|
+
| selector | 2.4 KB | progress | 2.3 KB | nav-bar | 2.2 KB |
|
|
169
|
+
| portal | 2.2 KB | typography | 2.1 KB | circle | 2.0 KB |
|
|
170
170
|
| search | 2.0 KB | skeleton | 1.9 KB | badge | 1.9 KB |
|
|
171
|
-
| water-mark | 1.9 KB | tag | 1.8 KB |
|
|
172
|
-
|
|
|
171
|
+
| water-mark | 1.9 KB | tag | 1.8 KB | space | 1.6 KB |
|
|
172
|
+
| avatar | 1.5 KB | flex | 1.5 KB | divider | 1.4 KB |
|
|
173
173
|
| empty | 1.4 KB | input | 1.3 KB | area | 1.2 KB |
|
|
174
174
|
| count-down | 1.1 KB | loading | 1.1 KB | switch | 1.0 KB |
|
|
175
175
|
| overlay | 0.8 KB | error-boundary | 0.6 KB | safe-area-view | 0.5 KB |
|
|
176
176
|
|
|
177
177
|
## 版本与反馈
|
|
178
178
|
|
|
179
|
-
当前为 v1.0.
|
|
179
|
+
当前为 v1.0.9,欢迎 issue / PR。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}function
|
|
1
|
+
"use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}function _Close(){const e=_interopRequireDefault(require("react-native-system-icon/Close"));return _Close=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _hooks=require("../../hooks"),_utils=require("../../utils"),_loading=_interopRequireDefault(require("../loading")),_popup=_interopRequireDefault(require("../popup")),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var o,l,n={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return n;if(o=t?a:r){if(o.has(e))return o.get(e);o.set(e,n)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((l=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(l.get||l.set)?o(n,t,l):n[t]=e[t]);return n})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},_extends.apply(null,arguments)}const defaultCloseIcon=_react().default.createElement(_Close().default,{size:18}),ActionSheetHeader=_react().default.memo(({title:e,closeable:t,closeIcon:r,tokens:a,onClose:o})=>{const l=(0,_hooks.useAriaPress)({onPress:o}),{colors:n,typography:c}=a;return _react().default.createElement(_reactNative().View,{style:a.layout.header},_react().default.createElement(_reactNative().View,{style:a.layout.titleContainer},(0,_utils.isText)(e)?(0,_utils.renderTextOrNode)(e,[a.layout.title,{color:n.title,fontSize:c.title}]):_react().default.createElement(_reactNative().View,{style:a.layout.titleNode},e)),t&&_react().default.createElement(_reactNative().Pressable,_extends({style:a.layout.closeButton,accessibilityRole:"button",hitSlop:8},l.interactionProps),_react().default.isValidElement(r)?_react().default.cloneElement(r,{fill:n.description,color:n.description}):(0,_utils.renderTextOrNode)(r,[{color:n.description}])))}),ActionSheetItem=_react().default.memo(({action:e,index:t,tokens:r,onActionPress:a})=>{const{disabled:o,loading:l,name:n,subname:c,icon:i}=e,{colors:s,spacing:u,typography:d}=r,_=(0,_hooks.useAriaPress)({disabled:!!o||!!l,onPress:(0,_react().useCallback)(()=>a(e,t),[e,t,a]),extraProps:{accessibilityRole:"web"===_reactNative().Platform.OS?"menuitem":"button",accessibilityLabel:(0,_utils.isText)(n)?String(n):void 0,accessibilityState:{disabled:!!o,busy:!!l},testID:`rv-action-sheet-item-${t}`}});return _react().default.createElement(_reactNative().Pressable,_extends({style:({pressed:t})=>[r.layout.item,!!i&&r.layout.itemWithIcon,{paddingVertical:u.vertical,paddingHorizontal:u.horizontal,backgroundColor:!t||e.disabled||e.loading?s.itemBackground:s.itemPressedBackground},e.style]},_.interactionProps),!!i&&_react().default.createElement(_reactNative().View,{style:r.layout.icon},(0,_utils.isText)(i)?(0,_utils.renderTextOrNode)(i,[{color:s.item}]):i),l?_react().default.createElement(_loading.default,{size:20}):(0,_utils.isRenderable)(n)?_react().default.createElement(_reactNative().View,{style:r.layout.itemTextWrapper},(0,_utils.renderTextOrNode)(n,[r.layout.itemText,{color:e.disabled?s.disabled:e.color??s.item,fontSize:d.item}]),(0,_utils.isRenderable)(c)&&((0,_utils.isText)(c)?(0,_utils.renderTextOrNode)(c,[r.layout.subname,{color:s.subitem}]):_react().default.createElement(_reactNative().View,{style:r.layout.subnameNode},c))):null)}),ActionSheetCancel=_react().default.memo(({cancelText:e,tokens:t,onPress:r})=>{const{colors:a,spacing:o,typography:l}=t,n=(0,_hooks.useAriaPress)({onPress:r,extraProps:{accessibilityRole:"button",testID:"rv-action-sheet-cancel"}});return _react().default.createElement(_react().default.Fragment,null,_react().default.createElement(_reactNative().View,{style:[t.layout.cancelGap,{height:o.cancelGap,backgroundColor:a.cancelGapBackground}]}),_react().default.createElement(_reactNative().Pressable,_extends({style:[t.layout.cancel,{paddingVertical:o.vertical,paddingHorizontal:o.horizontal,backgroundColor:a.cancelBackground}]},n.interactionProps),(0,_utils.renderTextOrNode)(e,[t.layout.cancelText,{color:a.cancel,fontSize:l.item}])))}),ActionSheetImpl=e=>{const{tokensOverride:t,visible:r,title:a,description:o,cancelText:l,actions:n=[],closeOnClickAction:c,closeOnSelect:i,closeable:s,closeIcon:u=defaultCloseIcon,beforeClose:d,onSelect:_,onCancel:f,onClose:p,children:y,round:m,safeAreaInsetBottom:b,overlay:k,lockScroll:v,style:h,...g}=e,x=(0,_tokens.useActionSheetTokens)(t),C=s??x.defaults.closeable,N=m??x.defaults.round,P=b??x.defaults.safeAreaInsetBottom,S=k??x.defaults.overlay,A=v??x.defaults.lockScroll,E=c??i??x.defaults.closeOnClickAction,R=(0,_utils.isRenderable)(a),w=(0,_utils.isRenderable)(o),O=(0,_utils.isRenderable)(l),T=(0,_react().useRef)("close"),I=(0,_react().useRef)(!1),V=(0,_react().useRef)(d);V.current=d;const q=(0,_react().useRef)(p);q.current=p;const z=(0,_react().useRef)(f);z.current=f;const B=(0,_react().useRef)(_);B.current=_;const W=(0,_react().useCallback)(async e=>{if(!V.current)return!0;try{return!1!==await V.current(e)}catch{return!0}},[]),D=(0,_react().useCallback)(e=>{if(q.current)return"cancel"===e&&z.current?.(),void q.current();z.current?.()},[]),M=(0,_react().useCallback)(async e=>{if(!I.current){I.current=!0;try{if(!await W(e))return;D(e)}finally{I.current=!1}}},[D,W]),j=(0,_react().useCallback)(e=>(T.current=e,W(e)),[W]),H=(0,_react().useCallback)(()=>{D(T.current)},[D]),G=(0,_react().useCallback)((e,t)=>{e.disabled||e.loading||(e.onPress?.(e),e.callback?.(e),B.current?.(e,t),E&&M("action"))},[M,E]),F=(0,_react().useMemo)(()=>[x.layout.popup,h],[x.layout.popup,h]);return _react().default.createElement(_popup.default,_extends({visible:r,placement:"bottom",round:N,safeAreaInsetTop:R&&C,safeAreaInsetBottom:P,overlay:S,lockScroll:A,beforeClose:j,onClose:H,style:F},g),_react().default.createElement(_reactNative().View,{accessibilityRole:"menu",style:[x.layout.panel,{backgroundColor:x.colors.background}]},R&&_react().default.createElement(ActionSheetHeader,{title:a,closeable:C,closeIcon:u,tokens:x,onClose:()=>{M("close-icon")}}),w&&_react().default.createElement(_reactNative().View,{style:x.layout.descriptionContainer},(0,_utils.isText)(o)?(0,_utils.renderTextOrNode)(o,[x.layout.description,{color:x.colors.description,fontSize:x.typography.description}]):_react().default.createElement(_reactNative().View,{style:x.layout.descriptionNode},o),_react().default.createElement(_reactNative().View,{style:(0,_utils.createHairlineView)({position:"bottom",color:x.colors.border,left:0,right:0})})),_react().default.createElement(_reactNative().View,{style:x.layout.actions},n.map((e,t)=>_react().default.createElement(ActionSheetItem,{key:e.key??t,action:e,index:t,tokens:x,onActionPress:G}))),y,O&&_react().default.createElement(ActionSheetCancel,{cancelText:l,tokens:x,onPress:()=>{M("cancel")}})))},ActionSheet=_react().default.memo(ActionSheetImpl);ActionSheet.displayName="ActionSheet";var _default=exports.default=ActionSheet;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _hooks=require("../../hooks"),_utils=require("../../utils"),_validate=require("../../utils/validate"),_popup=_interopRequireDefault(require("../popup")),_useLocale=require("../config-provider/useLocale"),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var a=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,l,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(n=t?r:a){if(n.has(e))return n.get(e);n.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((l=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(l.get||l.set)?n(o,t,l):o[t]=e[t]);return o})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var r in a)({}).hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},_extends.apply(null,arguments)}const DAY_MS=864e5,isSameDay=(e,t)=>e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate(),startOfDay=e=>{const t=new Date(e);return t.setHours(0,0,0,0),t},daysBetween=(e,t)=>Math.round(Math.abs(startOfDay(e).getTime()-startOfDay(t).getTime())/DAY_MS),toArrayValue=e=>e?Array.isArray(e)?e.filter(Boolean).map(e=>new Date(e)):[new Date(e)]:[],DEFAULT_MIN=new Date((new Date).getFullYear()-10,0,1),DEFAULT_MAX=new Date((new Date).getFullYear()+10,11,31),CalendarImpl=e=>{const{tokensOverride:t,value:a,defaultValue:r,minDate:n=DEFAULT_MIN,maxDate:l=DEFAULT_MAX,type:o,title:i,showSubtitle:s,showHeader:u,showConfirm:c,confirmText:d,weekStartsOn:p,weekdays:g,formatMonthTitle:f,allowSameDay:m,maxRange:y,onOverRange:_,poppable:h,visible:b,defaultVisible:O,onVisibleChange:C,closeOnClickOverlay:v,closeOnConfirm:k,popupPlacement:T,popupRound:M,popupProps:w,onOpen:D,onOpened:S,onClose:V,onClosed:x,color:P,onConfirm:N,onSelect:R,style:z,...E}=e,A=(0,_useLocale.useLocale)(),B=A?.vanCalendar,F=(0,_tokens.useCalendarTokens)(t),I=i??B?.title??F.defaults.title,Y=s??F.defaults.showSubtitle,W=u??F.defaults.showHeader,$=d??B?.confirm??F.defaults.confirmText,q=p??F.defaults.weekStartsOn,L=m??F.defaults.allowSameDay,H=h??F.defaults.poppable,j=v??F.defaults.closeOnClickOverlay,U=k??F.defaults.closeOnConfirm,X=T??F.defaults.popupPlacement,G=M??F.defaults.popupRound,J=o??F.defaults.type,K=c??F.defaults.showConfirm[J],[Q,Z]=(0,_hooks.useControllableValue)(e,{defaultValue:!1,valuePropName:"visible",defaultValuePropName:"defaultVisible",trigger:"onVisibleChange"}),{onClose:ee,onClosed:te,onOpen:ae,onOpened:re,closeOnOverlayPress:ne,overlay:le,...oe}=w??{},ie=(0,_react().useRef)({onConfirm:N,onOverRange:_,popupOnOpen:ae,onOpen:D,popupOnOpened:re,onOpened:S,popupOnClose:ee,onClose:V,popupOnClosed:te,onClosed:x});ie.current.onConfirm=N,ie.current.onOverRange=_,ie.current.popupOnOpen=ae,ie.current.onOpen=D,ie.current.popupOnOpened=re,ie.current.onOpened=S,ie.current.popupOnClose=ee,ie.current.onClose=V,ie.current.popupOnClosed=te,ie.current.onClosed=x;const se=(0,_react().useCallback)(()=>{H&&Z(!1)},[H,Z]),ue=(0,_react().useCallback)(()=>{ie.current.popupOnOpen?.(),ie.current.onOpen?.()},[]),ce=(0,_react().useCallback)(()=>{ie.current.popupOnOpened?.(),ie.current.onOpened?.()},[]),de=(0,_react().useCallback)(()=>{se(),ie.current.popupOnClose?.(),ie.current.onClose?.()},[se]),pe=(0,_react().useCallback)(()=>{ie.current.popupOnClosed?.(),ie.current.onClosed?.()},[]),ge=ne??j,fe=le??!0,[me,ye]=(0,_hooks.useControllableValue)(e,{defaultValue:null,valuePropName:"value",defaultValuePropName:"defaultValue",trigger:"onSelect"}),_e=normalizeValue(toArrayValue(me),J),[he,be]=(0,_react().useState)(()=>clampMonth(_e.length?_e[0]:new Date,n,l)),Oe=_e.length?_e[0].getTime():null,Ce=n.getTime(),ve=l.getTime();(0,_react().useEffect)(()=>{if(!_e.length)return;const e=clampMonth(_e[0],n,l);be(t=>isSameMonth(e,t)?t:e)},[Oe,Ce,ve]);const ke=(0,_react().useMemo)(()=>buildMonth(he,q),[he,q]),Te=(0,_react().useMemo)(()=>ke.map(e=>e?{day:e,key:e.toISOString(),timeValue:startOfDay(e).getTime(),dateValue:e.getDate()}:null),[ke]),Me=startOfDay(n).getTime(),we=startOfDay(l).getTime(),De=g??B?.weekdays??F.defaults.weekdays,Se=(0,_react().useMemo)(()=>reorderWeekdays(De,q,F.defaults.weekdays),[De,F.defaults.weekdays,q]),Ve=(0,_react().useMemo)(()=>f?f(he):B?.monthTitle?B.monthTitle(he.getFullYear(),he.getMonth()+1):formatMonth(he),[he,f,B]),xe=startOfMonth(n),Pe=startOfMonth(l),Ne=he.getTime()>xe.getTime(),Re=he.getTime()<Pe.getTime(),ze=(0,_react().useCallback)(e=>be(t=>clampMonth(new Date(t.getFullYear(),t.getMonth()+e,1),n,l)),[n,l]),Ee=(0,_react().useCallback)(()=>ze(-1),[ze]),Ae=(0,_react().useCallback)(()=>ze(1),[ze]),Be="range"===J?_e.length<2:0===_e.length,Fe=F.spacing.column/2,Ie=(0,_react().useCallback)(e=>{K||"range"===J&&e.length<2||"multiple"===J&&0===e.length||e.length&&(ie.current.onConfirm?.(mapValue(e,J)),H&&U&&se())},[K,J,H,U,se]),Ye=(0,_react().useCallback)(()=>{K&&Be||(ie.current.onConfirm?.(mapValue(_e,J)),H&&U&&se())},[K,Be,_e,J,H,U,se]),We=(0,_react().useCallback)(e=>{if("range"===J&&2===e.length){const[t,a]=e;if(!L&&isSameDay(t,a))return!1;if(y&&daysBetween(t,a)+1>y)return ie.current.onOverRange?.(y),!1}return!("multiple"===J&&y&&e.length>y)||(ie.current.onOverRange?.(y),!1)},[J,L,y]),$e=(0,_react().useRef)(void 0),qe=(0,_react().useCallback)(e=>{const t=startOfDay(e).getTime();if(t<Me||t>we)return;let a=[];const r=_e;switch(J){case"single":default:a=[e];break;case"multiple":a=r.find(t=>isSameDay(t,e))?r.filter(t=>!isSameDay(t,e)):[...r,e];break;case"range":if(r.length<1||r.length>1)a=[e];else{const t=r[0];a=isSameDay(t,e)?L?[t,e]:[e]:[t,e].sort((e,t)=>e.getTime()-t.getTime())}}const n=normalizeValue(a,J);We(n)&&(ye(mapValue(n,J)),K||Ie(n))},[_e,J,Me,we,L,We,ye,K,Ie]);$e.current=qe;const Le=(0,_react().useCallback)(e=>$e.current?.(e),[]),He=(0,_react().useMemo)(()=>_e.map(e=>startOfDay(e).getTime()),[_e]),je=(0,_react().useMemo)(()=>new Set(He),[He]),Ue="range"===J&&2===He.length?[He[0],He[1]]:null,Xe=(0,_react().useCallback)((e,t)=>{if(!e)return _react().default.createElement(_reactNative().View,{key:`p-${t}`,style:[F.layout.dayPlaceholder,{paddingVertical:F.spacing.dayPaddingVertical,paddingHorizontal:Fe}]});const{day:a,key:r,timeValue:n,dateValue:l}=e,o=n<Me||n>we,i=je.has(n),s="range"===J&&Ue&&n>Ue[0]&&n<Ue[1],u=[F.layout.dayText,{borderRadius:F.radii.day,color:F.colors.text,minWidth:F.sizing.dayMinWidth}];o?u.push({color:F.colors.disabled}):s?u.push({backgroundColor:F.colors.rangeBackground}):i&&u.push({backgroundColor:P??F.colors.selectedBackground,color:F.colors.selectedText});const c=`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,"0")}-${String(a.getDate()).padStart(2,"0")}${i?", selected":""}${o?", disabled":""}`;return _react().default.createElement(_reactNative().Pressable,{key:r,accessibilityRole:"button",accessibilityLabel:c,accessibilityState:{selected:i,disabled:o},style:[F.layout.dayButton,{paddingVertical:F.spacing.dayPaddingVertical,paddingHorizontal:Fe}],disabled:o,onPress:()=>Le(a),testID:getCalendarDayTestId(a)},_react().default.createElement(_reactNative().Text,{style:u},l))},[je,J,Ue,Me,we,F,P,Le,Fe]),Ge=_react().default.createElement(_reactNative().View,_extends({style:[{backgroundColor:F.colors.background,padding:F.spacing.containerPadding,borderRadius:F.radii.container},z]},E),W?_react().default.createElement(_reactNative().View,{style:[F.layout.header,{marginBottom:F.spacing.headerMarginBottom}]},_react().default.createElement(_reactNative().Pressable,{testID:"calendar-nav-prev",accessibilityRole:"button",accessibilityLabel:"previous month",onPress:Ee,disabled:!Ne},_react().default.createElement(_reactNative().Text,{style:[F.layout.navText,{fontSize:F.sizing.navButtonSize,paddingHorizontal:F.spacing.navPaddingHorizontal},!Ne&&{opacity:.3}]},"<")),_react().default.createElement(_reactNative().View,{style:F.layout.headerCenter},(0,_validate.isRenderable)(I)?(0,_utils.renderTextOrNode)(I,[F.layout.headerTitle,{color:F.colors.text,fontSize:F.typography.headerTitleSize,fontWeight:F.typography.headerTitleWeight}]):null,Y?(0,_utils.renderTextOrNode)(Ve,[F.layout.headerSubtitle,{color:F.colors.headerSubtitle,fontSize:F.typography.headerSubtitleSize}]):null),_react().default.createElement(_reactNative().Pressable,{testID:"calendar-nav-next",accessibilityRole:"button",accessibilityLabel:"next month",onPress:Ae,disabled:!Re},_react().default.createElement(_reactNative().Text,{style:[F.layout.navText,{fontSize:F.sizing.navButtonSize,paddingHorizontal:F.spacing.navPaddingHorizontal},!Re&&{opacity:.3}]},">"))):null,_react().default.createElement(_reactNative().View,{style:[F.layout.weekRow,{marginBottom:F.spacing.weekRowMarginBottom}]},Se.map((e,t)=>_react().default.createElement(_reactNative().View,{key:`w-${t}`,style:[F.layout.weekLabelItem,{paddingHorizontal:Fe}]},(0,_utils.renderTextOrNode)(e,[F.layout.weekLabel,{color:F.colors.text}])))),_react().default.createElement(_reactNative().View,{style:[F.layout.days,{rowGap:F.spacing.row}]},Te.map((e,t)=>Xe(e,t))),K?_react().default.createElement(_reactNative().Pressable,{style:[F.layout.confirmButton,{backgroundColor:P??F.colors.selectedBackground,opacity:Be?.5:1,marginTop:F.spacing.confirmMarginTop,paddingVertical:F.spacing.confirmPaddingVertical,borderRadius:F.radii.confirmButton}],onPress:Ye,disabled:Be},(0,_utils.renderTextOrNode)($,[F.layout.confirmText,{color:F.colors.confirmText,fontWeight:F.typography.confirmTextWeight}])):null);return H?_react().default.createElement(_popup.default,_extends({visible:Q,placement:X,round:G,closeOnOverlayPress:ge,overlay:fe,safeAreaInsetTop:null!=oe?.safeAreaInsetTop?oe.safeAreaInsetTop:W,safeAreaInsetBottom:null!=oe?.safeAreaInsetBottom?oe.safeAreaInsetBottom:"bottom"===X,onOpen:ue,onOpened:ce,onClose:de,onClosed:pe},oe),Ge):Ge};function mapValue(e,t){return"single"===t?e[0]??new Date:("range"===t&&e.length,e)}function normalizeValue(e,t){return"single"===t?e.slice(0,1):"range"===t?e.slice(0,2).sort((e,t)=>e.getTime()-t.getTime()):e}function formatMonth(e){return`${e.getFullYear()}/${e.getMonth()+1}`}function reorderWeekdays(e,t,a){const r=(t%7+7)%7,n=7===e.length?[...e]:a;return[...n.slice(r),...n.slice(0,r)]}function buildMonth(e,t){const a=(t%7+7)%7,r=(startOfMonth(e).getDay()-a+7)%7,n=new Date(e.getFullYear(),e.getMonth()+1,0).getDate(),l=[];for(let e=0;e<r;e+=1)l.push(null);for(let t=1;t<=n;t+=1)l.push(new Date(e.getFullYear(),e.getMonth(),t));for(;l.length<42;)l.push(null);return l}function getCalendarDayTestId(e){return`calendar-day-${e.getFullYear()}-${`${e.getMonth()+1}`.padStart(2,"0")}-${`${e.getDate()}`.padStart(2,"0")}`}function startOfMonth(e){return new Date(e.getFullYear(),e.getMonth(),1)}function clampMonth(e,t,a){const r=startOfMonth(e),n=startOfMonth(t),l=startOfMonth(a);return r.getTime()<n.getTime()?n:r.getTime()>l.getTime()?a:r}function isSameMonth(e,t){return e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()}const Calendar=_react().default.memo(CalendarImpl);Calendar.displayName="Calendar";var _default=exports.default=Calendar;
|
|
1
|
+
"use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _hooks=require("../../hooks"),_utils=require("../../utils"),_validate=require("../../utils/validate"),_popup=_interopRequireDefault(require("../popup")),_useLocale=require("../config-provider/useLocale"),_tokens=require("./tokens"),_utils2=require("../../hooks/calendar/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var a=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var l,n,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(l=t?r:a){if(l.has(e))return l.get(e);l.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(l=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?l(o,t,n):o[t]=e[t]);return o})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var r in a)({}).hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},_extends.apply(null,arguments)}const CalendarImpl=e=>{const{tokensOverride:t,value:a,defaultValue:r,minDate:l=_utils2.DEFAULT_MIN,maxDate:n=_utils2.DEFAULT_MAX,type:o,title:i,showSubtitle:s,showHeader:u,showConfirm:c,confirmText:d,weekStartsOn:p,weekdays:f,formatMonthTitle:_,allowSameDay:g,maxRange:m,onOverRange:y,poppable:b,visible:h,defaultVisible:O,onVisibleChange:v,closeOnClickOverlay:C,closeOnConfirm:k,popupPlacement:T,popupRound:w,popupProps:V,onOpen:S,onOpened:x,onClose:M,onClosed:P,color:D,onConfirm:N,onSelect:R,style:z,...E}=e,B=(0,_useLocale.useLocale)(),I=B?.vanCalendar,q=(0,_tokens.useCalendarTokens)(t),W=i??I?.title??q.defaults.title,L=s??q.defaults.showSubtitle,A=u??q.defaults.showHeader,H=d??I?.confirm??q.defaults.confirmText,$=p??q.defaults.weekStartsOn,j=g??q.defaults.allowSameDay,F=b??q.defaults.poppable,Y=C??q.defaults.closeOnClickOverlay,U=k??q.defaults.closeOnConfirm,G=T??q.defaults.popupPlacement,X=w??q.defaults.popupRound,J=o??q.defaults.type,K=c??q.defaults.showConfirm[J],[Q,Z]=(0,_hooks.useControllableValue)(e,{defaultValue:!1,valuePropName:"visible",defaultValuePropName:"defaultVisible",trigger:"onVisibleChange"}),{onClose:ee,onClosed:te,onOpen:ae,onOpened:re,closeOnOverlayPress:le,overlay:ne,...oe}=V??{},ie=(0,_react().useRef)({onConfirm:N,onOverRange:y,popupOnOpen:ae,onOpen:S,popupOnOpened:re,onOpened:x,popupOnClose:ee,onClose:M,popupOnClosed:te,onClosed:P});ie.current.onConfirm=N,ie.current.onOverRange=y,ie.current.popupOnOpen=ae,ie.current.onOpen=S,ie.current.popupOnOpened=re,ie.current.onOpened=x,ie.current.popupOnClose=ee,ie.current.onClose=M,ie.current.popupOnClosed=te,ie.current.onClosed=P;const se=(0,_react().useCallback)(()=>{F&&Z(!1)},[F,Z]),ue=(0,_react().useCallback)(()=>{ie.current.popupOnOpen?.(),ie.current.onOpen?.()},[]),ce=(0,_react().useCallback)(()=>{ie.current.popupOnOpened?.(),ie.current.onOpened?.()},[]),de=(0,_react().useCallback)(()=>{se(),ie.current.popupOnClose?.(),ie.current.onClose?.()},[se]),pe=(0,_react().useCallback)(()=>{ie.current.popupOnClosed?.(),ie.current.onClosed?.()},[]),fe=le??Y,_e=ne??!0,[ge,me]=(0,_hooks.useControllableValue)(e,{defaultValue:null,valuePropName:"value",defaultValuePropName:"defaultValue",trigger:"onSelect"}),ye=(0,_utils2.normalizeValue)((0,_utils2.toArrayValue)(ge),J),[be,he]=(0,_react().useState)(()=>(0,_utils2.clampMonth)(ye.length?ye[0]:new Date,l,n)),Oe=ye.length?ye[0].getTime():null,ve=l.getTime(),Ce=n.getTime();(0,_react().useEffect)(()=>{if(!ye.length)return;const e=(0,_utils2.clampMonth)(ye[0],l,n);he(t=>(0,_utils2.isSameMonth)(e,t)?t:e)},[Oe,ve,Ce]);const ke=(0,_react().useMemo)(()=>(0,_utils2.buildMonth)(be,$),[be,$]),Te=(0,_react().useMemo)(()=>ke.map(e=>e?{day:e,key:e.toISOString(),timeValue:(0,_utils2.startOfDay)(e).getTime(),dateValue:e.getDate()}:null),[ke]),we=(0,_utils2.startOfDay)(l).getTime(),Ve=(0,_utils2.startOfDay)(n).getTime(),Se=f??I?.weekdays??q.defaults.weekdays,xe=(0,_react().useMemo)(()=>(0,_utils2.reorderWeekdays)(Se,$,q.defaults.weekdays),[Se,q.defaults.weekdays,$]),Me=(0,_react().useMemo)(()=>_?_(be):I?.monthTitle?I.monthTitle(be.getFullYear(),be.getMonth()+1):(0,_utils2.formatMonth)(be),[be,_,I]),Pe=(0,_utils2.startOfMonth)(l),De=(0,_utils2.startOfMonth)(n),Ne=be.getTime()>Pe.getTime(),Re=be.getTime()<De.getTime(),ze=(0,_react().useCallback)(e=>he(t=>(0,_utils2.clampMonth)(new Date(t.getFullYear(),t.getMonth()+e,1),l,n)),[l,n]),Ee=(0,_react().useCallback)(()=>ze(-1),[ze]),Be=(0,_react().useCallback)(()=>ze(1),[ze]),Ie="range"===J?ye.length<2:0===ye.length,qe=q.spacing.column/2,We=(0,_react().useCallback)(e=>{K||"range"===J&&e.length<2||"multiple"===J&&0===e.length||e.length&&(ie.current.onConfirm?.((0,_utils2.mapValue)(e,J)),F&&U&&se())},[K,J,F,U,se]),Le=(0,_react().useCallback)(()=>{K&&Ie||(ie.current.onConfirm?.((0,_utils2.mapValue)(ye,J)),F&&U&&se())},[K,Ie,ye,J,F,U,se]),Ae=(0,_react().useCallback)(e=>{if("range"===J&&2===e.length){const[t,a]=e;if(!j&&(0,_utils2.isSameDay)(t,a))return!1;if(m&&(0,_utils2.daysBetween)(t,a)+1>m)return ie.current.onOverRange?.(m),!1}return!("multiple"===J&&m&&e.length>m)||(ie.current.onOverRange?.(m),!1)},[J,j,m]),He=(0,_react().useRef)(void 0),$e=(0,_react().useCallback)(e=>{const t=(0,_utils2.startOfDay)(e).getTime();if(t<we||t>Ve)return;let a=[];const r=ye;switch(J){case"single":default:a=[e];break;case"multiple":a=r.find(t=>(0,_utils2.isSameDay)(t,e))?r.filter(t=>!(0,_utils2.isSameDay)(t,e)):[...r,e];break;case"range":if(r.length<1||r.length>1)a=[e];else{const t=r[0];a=(0,_utils2.isSameDay)(t,e)?j?[t,e]:[e]:[t,e].sort((e,t)=>e.getTime()-t.getTime())}}const l=(0,_utils2.normalizeValue)(a,J);Ae(l)&&(me((0,_utils2.mapValue)(l,J)),K||We(l))},[ye,J,we,Ve,j,Ae,me,K,We]);He.current=$e;const je=(0,_react().useCallback)(e=>He.current?.(e),[]),Fe=(0,_react().useMemo)(()=>ye.map(e=>(0,_utils2.startOfDay)(e).getTime()),[ye]),Ye=(0,_react().useMemo)(()=>new Set(Fe),[Fe]),Ue="range"===J&&2===Fe.length?[Fe[0],Fe[1]]:null,Ge=(0,_react().useCallback)((e,t)=>{if(!e)return _react().default.createElement(_reactNative().View,{key:`p-${t}`,style:[q.layout.dayPlaceholder,{paddingVertical:q.spacing.dayPaddingVertical,paddingHorizontal:qe}]});const{day:a,key:r,timeValue:l,dateValue:n}=e,o=l<we||l>Ve,i=Ye.has(l),s="range"===J&&Ue&&l>Ue[0]&&l<Ue[1],u=[q.layout.dayText,{borderRadius:q.radii.day,color:q.colors.text,minWidth:q.sizing.dayMinWidth}];o?u.push({color:q.colors.disabled}):s?u.push({backgroundColor:q.colors.rangeBackground}):i&&u.push({backgroundColor:D??q.colors.selectedBackground,color:q.colors.selectedText});const c=`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,"0")}-${String(a.getDate()).padStart(2,"0")}${i?", selected":""}${o?", disabled":""}`;return _react().default.createElement(_reactNative().Pressable,{key:r,accessibilityRole:"button",accessibilityLabel:c,accessibilityState:{selected:i,disabled:o},style:[q.layout.dayButton,{paddingVertical:q.spacing.dayPaddingVertical,paddingHorizontal:qe}],disabled:o,onPress:()=>je(a),testID:(0,_utils2.getCalendarDayTestId)(a)},_react().default.createElement(_reactNative().Text,{style:u},n))},[Ye,J,Ue,we,Ve,q,D,je,qe]),Xe=_react().default.createElement(_reactNative().View,_extends({style:[{backgroundColor:q.colors.background,padding:q.spacing.containerPadding,borderRadius:q.radii.container},z]},E),A?_react().default.createElement(_reactNative().View,{style:[q.layout.header,{marginBottom:q.spacing.headerMarginBottom}]},_react().default.createElement(_reactNative().Pressable,{testID:"calendar-nav-prev",accessibilityRole:"button",accessibilityLabel:"previous month",onPress:Ee,disabled:!Ne},_react().default.createElement(_reactNative().Text,{style:[q.layout.navText,{fontSize:q.sizing.navButtonSize,paddingHorizontal:q.spacing.navPaddingHorizontal},!Ne&&{opacity:.3}]},"<")),_react().default.createElement(_reactNative().View,{style:q.layout.headerCenter},(0,_validate.isRenderable)(W)?(0,_utils.renderTextOrNode)(W,[q.layout.headerTitle,{color:q.colors.text,fontSize:q.typography.headerTitleSize,fontWeight:q.typography.headerTitleWeight}]):null,L?(0,_utils.renderTextOrNode)(Me,[q.layout.headerSubtitle,{color:q.colors.headerSubtitle,fontSize:q.typography.headerSubtitleSize}]):null),_react().default.createElement(_reactNative().Pressable,{testID:"calendar-nav-next",accessibilityRole:"button",accessibilityLabel:"next month",onPress:Be,disabled:!Re},_react().default.createElement(_reactNative().Text,{style:[q.layout.navText,{fontSize:q.sizing.navButtonSize,paddingHorizontal:q.spacing.navPaddingHorizontal},!Re&&{opacity:.3}]},">"))):null,_react().default.createElement(_reactNative().View,{style:[q.layout.weekRow,{marginBottom:q.spacing.weekRowMarginBottom}]},xe.map((e,t)=>_react().default.createElement(_reactNative().View,{key:`w-${t}`,style:[q.layout.weekLabelItem,{paddingHorizontal:qe}]},(0,_utils.renderTextOrNode)(e,[q.layout.weekLabel,{color:q.colors.text}])))),_react().default.createElement(_reactNative().View,{style:[q.layout.days,{rowGap:q.spacing.row}]},Te.map((e,t)=>Ge(e,t))),K?_react().default.createElement(_reactNative().Pressable,{style:[q.layout.confirmButton,{backgroundColor:D??q.colors.selectedBackground,opacity:Ie?.5:1,marginTop:q.spacing.confirmMarginTop,paddingVertical:q.spacing.confirmPaddingVertical,borderRadius:q.radii.confirmButton}],onPress:Le,disabled:Ie},(0,_utils.renderTextOrNode)(H,[q.layout.confirmText,{color:q.colors.confirmText,fontWeight:q.typography.confirmTextWeight}])):null);return F?_react().default.createElement(_popup.default,_extends({visible:Q,placement:G,round:X,closeOnOverlayPress:fe,overlay:_e,safeAreaInsetTop:null!=oe?.safeAreaInsetTop?oe.safeAreaInsetTop:A,safeAreaInsetBottom:null!=oe?.safeAreaInsetBottom?oe.safeAreaInsetBottom:"bottom"===G,onOpen:ue,onOpened:ce,onClose:de,onClosed:pe},oe),Xe):Xe},Calendar=_react().default.memo(CalendarImpl);Calendar.displayName="Calendar";var _default=exports.default=Calendar;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _hooks=require("../../hooks"),_utils=require("../../utils"),_validate=require("../../utils/validate"),_popup=_interopRequireDefault(require("../popup")),_tabs=_interopRequireDefault(require("../tabs")),_useLocale=require("../config-provider/useLocale"),_tokens=require("./tokens"),_useCascaderExtend=require("./useCascaderExtend");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var a=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var o,n,l={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return l;if(o=t?r:a){if(o.has(e))return o.get(e);o.set(e,l)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?o(l,t,n):l[t]=e[t]);return l})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var r in a)({}).hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},_extends.apply(null,arguments)}const getFieldKeys=e=>({textKey:e?.text??"text",valueKey:e?.value??"value",childrenKey:e?.children??"children"}),resolveRows=(e=[],t,a)=>{const r=[];let o=e;return a.forEach(e=>{if(!o?.length)return;const a=o.find(a=>a[t.valueKey]===e);a&&(r.push(a),o=a[t.childrenKey]??[])}),r},CascaderImpl=e=>{const{tokensOverride:t,options:a=[],title:r,placeholder:o,activeColor:n,fieldNames:l,optionRender:i,showHeader:c,closeable:s,closeIcon:u,onChange:d,onClose:p,onFinish:g,onClickTab:f,onTabChange:y,swipeable:_,style:h,testID:b,children:v,poppable:m,visible:C,defaultVisible:x,onVisibleChange:k,closeOnClickOverlay:N,closeOnFinish:T,popupPlacement:S,popupRound:I,popupProps:O,loadingText:E,...w}=e,P=(0,_useLocale.useLocale)(),z=(0,_tokens.useCascaderTokens)(t),V=r??P?.vanCascader?.placeholder??z.defaults.title,R=o??P?.vanCascader?.placeholder??z.defaults.placeholder,L=n??z.colors.tabActive,K=c??z.defaults.showHeader,H=_??z.defaults.swipeable,q=m??z.defaults.poppable,A=N??z.defaults.closeOnClickOverlay,W=T??z.defaults.closeOnFinish,M=S??z.defaults.popupPlacement,B=I??z.defaults.popupRound,D=E??z.defaults.loadingText,[j,F]=(0,_hooks.useControllableValue)(e,{defaultValue:[],trigger:"onChange"}),$=getFieldKeys(l),G=Array.isArray(j)?j:[],[J,Q]=(0,_react().useState)(G),U=s??z.defaults.closeable,[X,Y]=(0,_hooks.useControllableValue)(e,{defaultValue:!1,valuePropName:"visible",defaultValuePropName:"defaultVisible",trigger:"onVisibleChange"}),Z=q?J:G,{tabs:ee,items:te,depth:ae}=(0,_useCascaderExtend.useCascaderExtend)(a,$,Z),{width:re}=(0,_reactNative().useWindowDimensions)(),[oe,ne]=(0,_react().useState)(0),le=(0,_react().useCallback)(e=>{const t=e.nativeEvent.layout.width;t&&ne(e=>e===t?e:t)},[]),ie=resolveRows(a,$,G),[ce,se]=(0,_react().useState)(0);(0,_react().useEffect)(()=>{let e=Array.isArray(Z)?Z.length:0;e>=ae&&(e=Math.max(ae-1,0)),se(t=>t===e?t:e)},[Z.length,ae]),(0,_react().useEffect)(()=>{q&&X||Q(e=>(0,_utils.shallowEqualArray)(e,G)?e:G)},[G,q,X]);const ue=(0,_react().useCallback)(()=>{q&&!X&&(Q(e=>(0,_utils.shallowEqualArray)(e,G)?e:G),Y(!0))},[G,q,X,Y]),de=(0,_react().useRef)(p),pe=(0,_react().useRef)(d),ge=(0,_react().useRef)(g),fe=(0,_react().useRef)(f),ye=(0,_react().useRef)(y);de.current=p,pe.current=d,ge.current=g,fe.current=f,ye.current=y;const _e=(0,_react().useCallback)(e=>{q&&X&&(Y(!1),e&&de.current?.())},[q,X,Y]),he=(0,_react().useCallback)(()=>{q&&(X?_e(!0):ue())},[_e,ue,q,X]),be=(0,_validate.isFunction)(v),ve=be?v:null,me=(0,_react().useCallback)(e=>{const t=(0,_validate.isNumber)(e.index)?e.index:Number(e.name);if(Number.isNaN(t))return;const a=te[t]?.[$.textKey];fe.current?.(t,(0,_validate.isText)(a)?String(a):R)},[te,$.textKey,R]),Ce=(0,_react().useCallback)((e,t)=>{const a=(0,_validate.isNumber)(t)?t:Number(e);Number.isNaN(a)||(se(a),ye.current?.(a))},[]),xe=(0,_react().useCallback)((e,t)=>{if(e.disabled)return;const r=e[$.valueKey];if(null==r)return;const o=[...(q?J:G).slice(0,t),r],n=resolveRows(a,$,o),l=e[$.childrenKey]??[],i=Object.prototype.hasOwnProperty.call(e,$.childrenKey)&&!l.length,c=o.length>=ae,s=!l.length&&!i;q?(Q(o),pe.current?.(o,n)):F(o,n),(s||c)&&(q&&(F(o,n),W&&_e(!0)),ge.current?.(o,n))},[G,W,_e,ae,$,a,J,q,F]),ke=(0,_react().useCallback)(e=>{if(e<=0)return R;const t=te[e-1];if(!t)return R;if(!Object.prototype.hasOwnProperty.call(t,$.childrenKey))return R;return 0===(t[$.childrenKey]??[]).length&&Z.length===e?D:R},[Z.length,te,$.childrenKey,D,R]),Ne=q||be?null:v,Te=_react().default.createElement(_reactNative().View,_extends({testID:b,style:[z.layout.container,{backgroundColor:z.colors.background},h]},w),K?_react().default.createElement(_reactNative().View,{style:[z.layout.header,{height:z.sizing.headerHeight,paddingHorizontal:z.spacing.headerPaddingHorizontal}]},(0,_utils.renderTextOrNode)(V,[z.layout.title,{color:z.colors.headerText,fontSize:z.typography.titleSize,fontWeight:z.typography.titleWeight}]),U?_react().default.createElement(_reactNative().Pressable,{hitSlop:8,onPress:()=>{q?_e(!0):de.current?.()},style:[z.layout.closeButton,{marginLeft:z.spacing.closeButtonMarginLeft}],accessibilityRole:"button",accessibilityLabel:P?.vanCascader?.close??"Close"},u??(e=>_react().default.createElement(_reactNativeSystemIcon().Cross,{size:z.sizing.closeIconSize,fill:e.pressed?z.colors.closeIconActive:z.colors.closeIcon,color:e.pressed?z.colors.closeIconActive:z.colors.closeIcon}))):null):null,(()=>{if(!ee.length)return _react().default.createElement(CascaderOptionList,{optionList:[],tabIndex:0,selectedValue:Z[0],activeColor:L,keys:$,optionRender:i,onSelect:xe,tokens:z,emptyText:ke(0)});const e=!!H,t=oe||re||void 0,a={height:z.sizing.headerHeight,paddingHorizontal:z.spacing.tabNavPaddingHorizontal,paddingVertical:z.spacing.tabNavPaddingVertical,backgroundColor:z.colors.background};return _react().default.createElement(_reactNative().View,{style:z.layout.tabsWrapper,onLayout:le},_react().default.createElement(_tabs.default,{style:t?{width:t}:void 0,active:ce,onChange:Ce,onClickTab:me,align:"center",swipeable:e,swipeThreshold:0,scrollable:!0,animated:!0,duration:300,color:L,lineHeight:z.sizing.indicatorHeight,titleActiveColor:z.colors.tabText,titleInactiveColor:z.colors.tabInactive,tabBarStyle:a,tabStyle:[z.layout.tabsItem,{paddingHorizontal:z.spacing.tabPaddingHorizontal}],titleStyle:[z.layout.tabsTitle,{fontSize:z.typography.tabsTitleSize}],contentStyle:e?void 0:z.layout.tabsContentStatic},ee.map((e,t)=>{const a=te[t],r=(0,_validate.isText)(a?.[$.textKey])?String(a?.[$.textKey]):"",o=!r;return _react().default.createElement(_tabs.default.TabPane,{key:t,name:t,title:e=>_react().default.createElement(_reactNative().Text,{style:[z.layout.tabTitleNode,{color:o?z.colors.tabInactive:z.colors.tabText,fontWeight:o?z.typography.tabTitlePlaceholderWeight:z.typography.tabTitleWeight}]},o?R:r)},_react().default.createElement(CascaderOptionList,{optionList:e,tabIndex:t,selectedValue:Z[t],activeColor:L,keys:$,optionRender:i,onSelect:xe,tokens:z,emptyText:ke(t)}))})))})(),Ne?_react().default.createElement(_reactNative().View,{style:[z.layout.inlineChildren,{paddingVertical:z.spacing.inlineChildrenPaddingVertical,paddingHorizontal:z.spacing.headerPaddingHorizontal}]},Ne):null);if(!q)return Te;const{closeOnOverlayPress:Se,overlay:Ie,onOpen:Oe,onOpened:Ee,onClose:we,onClosed:Pe,...ze}=O??{},Ve=(0,_react().useRef)(we);Ve.current=we;const Re=(0,_react().useCallback)(()=>{Ve.current?.(),_e(!0)},[_e]),Le={open:ue,close:()=>_e(!0),toggle:he},Ke=(0,_react().useCallback)(e=>{if(!_react().default.isValidElement(e))return e;const t=e.props,a=()=>{t.onPress?.(),t.onClick?.(),ue()};return _react().default.cloneElement(e,{onPress:a,onClick:a})},[ue])(ve?ve(G,ie,Le):be?null:v||null);return _react().default.createElement(_react().default.Fragment,null,Ke,_react().default.createElement(_popup.default,_extends({visible:X,placement:M,round:B,closeOnOverlayPress:Se??A,overlay:Ie??!0,safeAreaInsetTop:null!=ze?.safeAreaInsetTop?ze.safeAreaInsetTop:K&&U,safeAreaInsetBottom:null!=ze?.safeAreaInsetBottom?ze.safeAreaInsetBottom:"bottom"===M,onOpen:Oe,onOpened:Ee,onClose:Re,onClosed:Pe},ze,{style:{paddingLeft:0,paddingRight:0}}),Te))},CascaderOptionItem=_react().default.memo(({option:e,tabIndex:t,selected:a,activeColor:r,keys:o,optionRender:n,onSelect:l,tokens:i})=>{const c=e[o.valueKey],s=e[o.textKey],u=!!e.disabled,d=e.color??i.colors.optionText,p=u?i.colors.optionDisabled:a?e.color??r:d,g=[i.layout.optionText,{color:p,fontSize:i.typography.optionTextSize},a?{fontWeight:i.typography.optionTextActiveWeight}:null],f=n?n({option:e,selected:a}):(0,_utils.renderTextOrNode)(s,g),y=(0,_validate.isText)(f)?(0,_utils.renderTextOrNode)(f,g):f;return _react().default.createElement(_reactNative().Pressable,{testID:`cascader-option-${t}-${String(c)}`,style:({pressed:e})=>[i.layout.option,{minHeight:i.sizing.optionMinHeight,paddingVertical:i.spacing.optionPaddingVertical,paddingHorizontal:i.spacing.optionPaddingHorizontal},e&&!u&&{backgroundColor:i.colors.optionActiveBackground}],onPress:()=>l(e,t),disabled:u},_react().default.createElement(_reactNative().View,{style:i.layout.optionContent},_react().default.createElement(_reactNative().View,{style:[i.layout.optionLabel,{marginRight:i.spacing.optionLabelMarginRight}]},y),a?_react().default.createElement(_reactNativeSystemIcon().Checked,{size:i.sizing.selectedIconSize,fill:r,color:r}):null))}),CascaderOptionList=_react().default.memo(({optionList:e,tabIndex:t,selectedValue:a,activeColor:r,keys:o,optionRender:n,onSelect:l,tokens:i,emptyText:c})=>{const s=(0,_react().useCallback)(({item:e})=>_react().default.createElement(CascaderOptionItem,{option:e,tabIndex:t,selected:a===e[o.valueKey],activeColor:r,keys:o,optionRender:n,onSelect:l,tokens:i}),[r,o,l,n,a,t,i]),u=(0,_react().useCallback)(e=>String(e[o.valueKey]),[o.valueKey]);return e.length?_react().default.createElement(_reactNative().FlatList,{data:e,style:[i.layout.optionList,{height:i.sizing.optionListHeight}],contentContainerStyle:{paddingTop:i.spacing.optionListPaddingTop,paddingBottom:i.spacing.optionListPaddingBottom},showsVerticalScrollIndicator:!1,renderItem:s,keyExtractor:u,removeClippedSubviews:!0,initialNumToRender:20,windowSize:5}):_react().default.createElement(_reactNative().View,{style:[i.layout.optionList,{height:i.sizing.optionListHeight}]},_react().default.createElement(_reactNative().Text,{style:[i.layout.empty,{color:i.colors.placeholder,paddingVertical:i.spacing.emptyPaddingVertical,fontSize:i.typography.emptyTextSize}]},c))}),Cascader=_react().default.memo(CascaderImpl);var _default=exports.default=Cascader;
|
|
1
|
+
"use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}function _Checked(){const e=_interopRequireDefault(require("react-native-system-icon/Checked"));return _Checked=function(){return e},e}function _Cross(){const e=_interopRequireDefault(require("react-native-system-icon/Cross"));return _Cross=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _hooks=require("../../hooks"),_utils=require("../../utils"),_validate=require("../../utils/validate"),_popup=_interopRequireDefault(require("../popup")),_tabs=_interopRequireDefault(require("../tabs")),_useLocale=require("../config-provider/useLocale"),_tokens=require("./tokens"),_useCascaderExtend=require("./useCascaderExtend"),_utils2=require("../../hooks/cascader/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var a=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var o,n,l={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return l;if(o=t?r:a){if(o.has(e))return o.get(e);o.set(e,l)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?o(l,t,n):l[t]=e[t]);return l})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var r in a)({}).hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},_extends.apply(null,arguments)}const CascaderImpl=e=>{const{tokensOverride:t,options:a=[],title:r,placeholder:o,activeColor:n,fieldNames:l,optionRender:i,showHeader:s,closeable:c,closeIcon:u,onChange:d,onClose:p,onFinish:_,onClickTab:f,onTabChange:g,swipeable:y,style:h,testID:b,children:v,poppable:m,visible:C,defaultVisible:k,onVisibleChange:x,closeOnClickOverlay:T,closeOnFinish:N,popupPlacement:O,popupRound:E,popupProps:P,loadingText:w,...S}=e,z=(0,_useLocale.useLocale)(),I=(0,_tokens.useCascaderTokens)(t),R=r??z?.vanCascader?.placeholder??I.defaults.title,V=o??z?.vanCascader?.placeholder??I.defaults.placeholder,L=n??I.colors.tabActive,q=s??I.defaults.showHeader,H=y??I.defaults.swipeable,A=m??I.defaults.poppable,K=T??I.defaults.closeOnClickOverlay,W=N??I.defaults.closeOnFinish,D=O??I.defaults.popupPlacement,M=E??I.defaults.popupRound,B=w??I.defaults.loadingText,[j,F]=(0,_hooks.useControllableValue)(e,{defaultValue:[],trigger:"onChange"}),$=(0,_utils2.getFieldKeys)(l),G=Array.isArray(j)?j:[],[J,Q]=(0,_react().useState)(G),U=c??I.defaults.closeable,[X,Y]=(0,_hooks.useControllableValue)(e,{defaultValue:!1,valuePropName:"visible",defaultValuePropName:"defaultVisible",trigger:"onVisibleChange"}),Z=A?J:G,{tabs:ee,items:te,depth:ae}=(0,_useCascaderExtend.useCascaderExtend)(a,$,Z),{width:re}=(0,_reactNative().useWindowDimensions)(),[oe,ne]=(0,_react().useState)(0),le=(0,_react().useCallback)(e=>{const t=e.nativeEvent.layout.width;t&&ne(e=>e===t?e:t)},[]),ie=(0,_utils2.resolveRows)(a,$,G),[se,ce]=(0,_react().useState)(0);(0,_react().useEffect)(()=>{const e=ee.length;let t=Math.max(e-1,0);t>=ae&&(t=Math.max(ae-1,0)),ce(e=>e===t?e:t)},[ee.length,ae]),(0,_react().useEffect)(()=>{A&&X||Q(e=>(0,_utils.shallowEqualArray)(e,G)?e:G)},[G,A,X]);const ue=(0,_react().useCallback)(()=>{A&&!X&&(Q(e=>(0,_utils.shallowEqualArray)(e,G)?e:G),Y(!0))},[G,A,X,Y]),de=(0,_react().useRef)(p),pe=(0,_react().useRef)(d),_e=(0,_react().useRef)(_),fe=(0,_react().useRef)(f),ge=(0,_react().useRef)(g);de.current=p,pe.current=d,_e.current=_,fe.current=f,ge.current=g;const ye=(0,_react().useCallback)(e=>{A&&X&&(Y(!1),e&&de.current?.())},[A,X,Y]),he=(0,_react().useCallback)(()=>{A&&(X?ye(!0):ue())},[ye,ue,A,X]),be=(0,_validate.isFunction)(v),ve=be?v:null,me=(0,_react().useCallback)(e=>{const t=(0,_validate.isNumber)(e.index)?e.index:Number(e.name);if(Number.isNaN(t))return;const a=te[t]?.[$.textKey];fe.current?.(t,(0,_validate.isText)(a)?String(a):V)},[te,$.textKey,V]),Ce=(0,_react().useCallback)((e,t)=>{const a=(0,_validate.isNumber)(t)?t:Number(e);Number.isNaN(a)||(ce(a),ge.current?.(a))},[]),ke=(0,_react().useCallback)((e,t)=>{if(e.disabled)return;const r=e[$.valueKey];if(null==r)return;const o=[...(A?J:G).slice(0,t),r],n=(0,_utils2.resolveRows)(a,$,o),l=e[$.childrenKey]??[],i=Object.prototype.hasOwnProperty.call(e,$.childrenKey)&&!l.length,s=o.length>=ae,c=!l.length&&!i;A?(Q(o),pe.current?.(o,n)):F(o,n),(c||s)&&(A&&(F(o,n),W&&ye(!0)),_e.current?.(o,n))},[G,W,ye,ae,$,a,J,A,F]),xe=(0,_react().useCallback)(e=>{if(e<=0)return V;const t=te[e-1];if(!t)return V;if(!Object.prototype.hasOwnProperty.call(t,$.childrenKey))return V;return 0===(t[$.childrenKey]??[]).length&&Z.length===e?B:V},[Z.length,te,$.childrenKey,B,V]),Te=A||be?null:v,Ne=_react().default.createElement(_reactNative().View,_extends({testID:b,style:[I.layout.container,{backgroundColor:I.colors.background},h]},S),q?_react().default.createElement(_reactNative().View,{style:[I.layout.header,{height:I.sizing.headerHeight,paddingHorizontal:I.spacing.headerPaddingHorizontal}]},(0,_utils.renderTextOrNode)(R,[I.layout.title,{color:I.colors.headerText,fontSize:I.typography.titleSize,fontWeight:I.typography.titleWeight}]),U?_react().default.createElement(_reactNative().Pressable,{hitSlop:8,onPress:()=>{A?ye(!0):de.current?.()},style:[I.layout.closeButton,{marginLeft:I.spacing.closeButtonMarginLeft}],accessibilityRole:"button",accessibilityLabel:z?.vanCascader?.close??"Close"},u??(e=>_react().default.createElement(_Cross().default,{size:I.sizing.closeIconSize,fill:e.pressed?I.colors.closeIconActive:I.colors.closeIcon,color:e.pressed?I.colors.closeIconActive:I.colors.closeIcon}))):null):null,(()=>{if(!ee.length)return _react().default.createElement(CascaderOptionList,{optionList:[],tabIndex:0,selectedValue:Z[0],activeColor:L,keys:$,optionRender:i,onSelect:ke,tokens:I,emptyText:xe(0)});const e=!!H,t=oe||re||void 0,a={height:I.sizing.headerHeight,paddingHorizontal:I.spacing.tabNavPaddingHorizontal,paddingVertical:I.spacing.tabNavPaddingVertical,backgroundColor:I.colors.background};return _react().default.createElement(_reactNative().View,{style:I.layout.tabsWrapper,onLayout:le},_react().default.createElement(_tabs.default,{style:t?{width:t}:void 0,active:se,onChange:Ce,onClickTab:me,align:"center",swipeable:e,swipeThreshold:0,scrollable:!0,animated:!0,duration:300,color:L,lineHeight:I.sizing.indicatorHeight,titleActiveColor:I.colors.tabText,titleInactiveColor:I.colors.tabInactive,tabBarStyle:a,tabStyle:[I.layout.tabsItem,{paddingHorizontal:I.spacing.tabPaddingHorizontal}],titleStyle:[I.layout.tabsTitle,{fontSize:I.typography.tabsTitleSize}],contentStyle:e?void 0:I.layout.tabsContentStatic},ee.map((e,t)=>{const a=te[t],r=(0,_validate.isText)(a?.[$.textKey])?String(a?.[$.textKey]):"",o=!r;return _react().default.createElement(_tabs.default.TabPane,{key:t,name:t,title:e=>_react().default.createElement(_reactNative().Text,{style:[I.layout.tabTitleNode,{color:o?I.colors.tabInactive:I.colors.tabText,fontWeight:o?I.typography.tabTitlePlaceholderWeight:I.typography.tabTitleWeight}]},o?V:r)},_react().default.createElement(CascaderOptionList,{optionList:e,tabIndex:t,selectedValue:Z[t],activeColor:L,keys:$,optionRender:i,onSelect:ke,tokens:I,emptyText:xe(t)}))})))})(),Te?_react().default.createElement(_reactNative().View,{style:[I.layout.inlineChildren,{paddingVertical:I.spacing.inlineChildrenPaddingVertical,paddingHorizontal:I.spacing.headerPaddingHorizontal}]},Te):null);if(!A)return Ne;const{closeOnOverlayPress:Oe,overlay:Ee,onOpen:Pe,onOpened:we,onClose:Se,onClosed:ze,...Ie}=P??{},Re=(0,_react().useRef)(Se);Re.current=Se;const Ve=(0,_react().useCallback)(()=>{Re.current?.(),ye(!0)},[ye]),Le={open:ue,close:()=>ye(!0),toggle:he},qe=(0,_react().useCallback)(e=>{if(!_react().default.isValidElement(e))return e;const t=e.props,a=()=>{t.onPress?.(),t.onClick?.(),ue()};return _react().default.cloneElement(e,{onPress:a,onClick:a})},[ue])(ve?ve(G,ie,Le):be?null:v||null);return _react().default.createElement(_react().default.Fragment,null,qe,_react().default.createElement(_popup.default,_extends({visible:X,placement:D,round:M,closeOnOverlayPress:Oe??K,overlay:Ee??!0,safeAreaInsetTop:null!=Ie?.safeAreaInsetTop?Ie.safeAreaInsetTop:q&&U,safeAreaInsetBottom:null!=Ie?.safeAreaInsetBottom?Ie.safeAreaInsetBottom:"bottom"===D,onOpen:Pe,onOpened:we,onClose:Ve,onClosed:ze},Ie,{style:{paddingLeft:0,paddingRight:0}}),Ne))},CascaderOptionItem=_react().default.memo(({option:e,tabIndex:t,selected:a,activeColor:r,keys:o,optionRender:n,onSelect:l,tokens:i})=>{const s=e[o.valueKey],c=e[o.textKey],u=!!e.disabled,d=e.color??i.colors.optionText,p=u?i.colors.optionDisabled:a?e.color??r:d,_=[i.layout.optionText,{color:p,fontSize:i.typography.optionTextSize},a?{fontWeight:i.typography.optionTextActiveWeight}:null],f=n?n({option:e,selected:a}):(0,_utils.renderTextOrNode)(c,_),g=(0,_validate.isText)(f)?(0,_utils.renderTextOrNode)(f,_):f;return _react().default.createElement(_reactNative().Pressable,{testID:`cascader-option-${t}-${String(s)}`,style:({pressed:e})=>[i.layout.option,{minHeight:i.sizing.optionMinHeight,paddingVertical:i.spacing.optionPaddingVertical,paddingHorizontal:i.spacing.optionPaddingHorizontal},e&&!u&&{backgroundColor:i.colors.optionActiveBackground}],onPress:()=>l(e,t),disabled:u},_react().default.createElement(_reactNative().View,{style:i.layout.optionContent},_react().default.createElement(_reactNative().View,{style:[i.layout.optionLabel,{marginRight:i.spacing.optionLabelMarginRight}]},g),a?_react().default.createElement(_Checked().default,{size:i.sizing.selectedIconSize,fill:r,color:r}):null))}),CascaderOptionList=_react().default.memo(({optionList:e,tabIndex:t,selectedValue:a,activeColor:r,keys:o,optionRender:n,onSelect:l,tokens:i,emptyText:s})=>{const c=(0,_react().useCallback)(({item:e})=>_react().default.createElement(CascaderOptionItem,{option:e,tabIndex:t,selected:a===e[o.valueKey],activeColor:r,keys:o,optionRender:n,onSelect:l,tokens:i}),[r,o,l,n,a,t,i]),u=(0,_react().useCallback)(e=>String(e[o.valueKey]),[o.valueKey]);return e.length?_react().default.createElement(_reactNative().FlatList,{data:e,style:[i.layout.optionList,{height:i.sizing.optionListHeight}],contentContainerStyle:{paddingTop:i.spacing.optionListPaddingTop,paddingBottom:i.spacing.optionListPaddingBottom},showsVerticalScrollIndicator:!1,renderItem:c,keyExtractor:u,removeClippedSubviews:!0,initialNumToRender:20,windowSize:5}):_react().default.createElement(_reactNative().View,{style:[i.layout.optionList,{height:i.sizing.optionListHeight}]},_react().default.createElement(_reactNative().Text,{style:[i.layout.empty,{color:i.colors.placeholder,paddingVertical:i.spacing.emptyPaddingVertical,fontSize:i.typography.emptyTextSize}]},s))}),Cascader=_react().default.memo(CascaderImpl);var _default=exports.default=Cascader;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useCascaderExtend=void 0;const getDepth=(e,t)=>{let r=1;const
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useCascaderExtend=void 0;const getDepth=(e,t)=>{let r=1;const s=(e,n)=>{e?.length&&(n>r&&(r=n),e.forEach(e=>{Object.prototype.hasOwnProperty.call(e,t)&&n+1>r&&(r=n+1);const c=e[t];c?.length&&s(c,n+1)}))};return s(e,1),r},useCascaderExtend=(e=[],t,r)=>{const s=getDepth(e,t.childrenKey),n=[e],c=[];if(r?.length){let s=e;for(let e=0;e<r.length;e+=1){const o=r[e];if(null==o||!s?.length)break;const l=s.find(e=>e[t.valueKey]===o);if(!l)break;c.push(l);if(!Object.prototype.hasOwnProperty.call(l,t.childrenKey))break;const a=l[t.childrenKey]??[];n.push(a),s=a}}return{tabs:n,items:c,depth:s}};exports.useCascaderExtend=useCascaderExtend;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}function
|
|
1
|
+
"use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}function _Arrow(){const e=_interopRequireDefault(require("react-native-system-icon/Arrow"));return _Arrow=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.Cell=void 0;var _hooks=require("../../hooks"),_utils=require("../../utils"),_useDirection=require("../config-provider/useDirection"),_CellContext=require("./CellContext"),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var i,l,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?a:r){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((l=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(l.get||l.set)?i(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 CellImpl=(e,t)=>{const{title:r,value:a,label:i,extra:l,icon:o,rightIcon:n,border:s,clickable:u,isLink:c,required:d,center:_,size:p,arrowDirection:f,tokensOverride:y,children:g,style:v,titleStyle:h,valueStyle:m,labelStyle:b,contentStyle:w,onPress:z,disabled:C,android_ripple:x,...S}=e,N=(0,_tokens.useCellTokens)(y),O=(0,_useDirection.useDirection)(),R=(0,_react().useContext)(_CellContext.CellGroupContext),q=s??N.defaults.border,k=p??N.defaults.size,P=f??N.defaults.arrowDirection,V="rtl"===O?"left"===P?"right":"right"===P?"left":P:P,E=N.typography.lineHeight,T=(0,_utils.isRenderable)(r),L=(0,_utils.isRenderable)(a),W=(0,_utils.isRenderable)(i),D=(0,_utils.isRenderable)(l),M=(0,_utils.isRenderable)(g),j=(0,_utils.isRenderable)(o),H=(0,_utils.isRenderable)(n),G=!T&&!M,A=q&&R.border&&!R.isLast,I=!!c||!!u,F=!C&&(u||!!z||!!S.onLongPress||!!S.onPressIn||!!S.onPressOut),B="large"===k,J=(0,_react().useMemo)(()=>[B?N.layout.containerLarge:N.layout.container,_&&N.layout.center,v],[k,_,N.layout,v]),K=(0,_hooks.useHairline)({show:A,containerStyle:J,color:N.colors.border,width:N.borders.width,defaultPaddingHorizontal:N.sizing.paddingHorizontal}),Q=(0,_react().useMemo)(()=>[N.layout.customContent,{justifyContent:_?"center":"flex-start"},w],[_,N.layout.customContent,w]),{interactionProps:U,states:X}=(0,_hooks.useAriaPress)({disabled:!F,onPress:z??void 0}),Y=F?_reactNative().Pressable:_reactNative().View,Z=F?{android_ripple:x??{color:N.colors.ripple},accessibilityRole:"button",...U}:{};return _react().default.createElement(Y,_extends({ref:t,style:[J,F&&X.pressed&&{opacity:N.defaults.activeOpacity}]},Z,S),j&&_react().default.createElement(_reactNative().View,{style:[N.layout.iconWrapper,{marginRight:N.spacing.iconGap,minHeight:N.sizing.iconSize,minWidth:N.sizing.iconSize}]},o),_react().default.createElement(_reactNative().View,{style:N.layout.body},(T||d)&&_react().default.createElement(_reactNative().View,{style:[N.layout.titleRow,{minHeight:E}]},d&&_react().default.createElement(_reactNative().Text,{style:{color:N.colors.required,marginRight:N.spacing.iconGap/2}},"*"),T&&_react().default.createElement(_reactNative().View,{style:h},(0,_utils.renderTextOrNode)(r,[{color:N.colors.title,fontSize:B?N.typography.largeTitleSize:N.typography.titleSize,fontWeight:N.typography.titleWeight},h],{numberOfLines:1}))),W&&_react().default.createElement(_reactNative().View,{style:[{marginTop:N.spacing.labelMarginTop},b]},(0,_utils.renderTextOrNode)(i,[{color:N.colors.label,fontSize:B?N.typography.largeLabelSize:N.typography.labelSize},b],{numberOfLines:2}))),_react().default.createElement(_reactNative().View,{style:[N.layout.valueContainer,{minHeight:E,marginLeft:N.spacing.valueGap},!_&&G&&N.layout.valueOnlyContainer,_&&N.layout.valueCenter]},L?_react().default.createElement(_reactNative().View,{style:Q},(0,_utils.renderTextOrNode)(a,[N.layout.value,G&&N.layout.valueOnly,{color:N.colors.value,fontSize:B?N.typography.largeValueSize:N.typography.valueSize},m],{numberOfLines:1})):M&&_react().default.createElement(_reactNative().View,{style:Q},(0,_utils.isText)(g)?(0,_utils.renderTextOrNode)(g,[N.layout.value,{color:N.colors.value,fontSize:B?N.typography.largeValueSize:N.typography.valueSize},m]):g)),D&&_react().default.createElement(_reactNative().View,{style:{marginLeft:N.spacing.extraGap}},(0,_utils.renderTextOrNode)(l,{marginLeft:N.spacing.extraGap,color:N.colors.value,fontSize:B?N.typography.largeValueSize:N.typography.valueSize})),H?n:I&&_react().default.createElement(_reactNative().View,{style:[N.layout.rightIconWrapper,N.layout.arrowTransforms[V]]},_react().default.createElement(_Arrow().default,{size:N.sizing.arrowSize,fill:N.colors.arrow})),K)},CellForwardRef=_react().default.forwardRef(CellImpl);CellForwardRef.displayName="Cell";const Cell=exports.Cell=_react().default.memo(CellForwardRef);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}function
|
|
1
|
+
"use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}function _Arrow(){const e=_interopRequireDefault(require("react-native-system-icon/Arrow"));return _Arrow=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Collapse=void 0;var _animation=require("../../hooks/animation"),_cell=require("../cell"),_utils=require("../../utils"),_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,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 CollapseContext=_react().default.createContext(null),normalizeValue=e=>void 0===e?void 0:Array.isArray(e)?e.map(String):null===e?[]:[String(e)],buildOutputValue=(e,t)=>t?e[0]??"":e,CollapseImpl=e=>{const{tokensOverride:t,children:a,accordion:r,value:n,defaultValue:i,onChange:l,border:o,iconPosition:c,expandIcon:s,disabled:u,style:d,...p}=e,_=(0,_tokens.useCollapseTokens)(t),f=r??_.defaults.accordion,m=o??_.defaults.border,b=c??_.defaults.iconPosition,{colors:y}=_,g=void 0!==n,v=normalizeValue(n),C=normalizeValue(i)??[],k=(0,_react().useRef)(l);k.current=l;const[w,h]=(0,_react().useState)(()=>f?C.slice(0,1):C),x=g?f?(v??[]).slice(0,1):v??[]:w,E=(0,_react().useCallback)((e,t)=>{if(u)return;const a=x.includes(e),r=t??!a,n=f?r?[e]:a?[]:x:r?a?x:[...x,e]:a?x.filter(t=>t!==e):x;g||h(n),k.current?.(buildOutputValue(n,f))},[f,x,g,u]),V=(0,_react().useMemo)(()=>({activeKeys:x,toggle:E,accordion:f,iconPosition:b,expandIcon:s,border:m,disabled:u,tokens:_}),[f,x,m,u,s,b,_,E]),P=(0,_react().useMemo)(()=>_react().default.Children.toArray(a).map((e,t)=>{if(!_react().default.isValidElement(e))return e;if(!(0,_utils.isFunction)(e.type)&&!(0,_utils.isObject)(e.type))return e;const a=e.props.name??String(t);return _react().default.cloneElement(e,{name:a,index:t})}),[a]);return _react().default.createElement(CollapseContext.Provider,{value:V},_react().default.createElement(_reactNative().View,_extends({style:[_.layout.container,m&&{backgroundColor:y.background},d]},p),m&&_react().default.createElement(Hairline,{tokens:_,position:"top",color:y.border}),m&&_react().default.createElement(Hairline,{tokens:_,position:"bottom",color:y.border}),P))},Hairline=_react().default.memo(({tokens:e,position:t,color:a,inset:r=0})=>{const n=(0,_utils.createHairlineView)({position:t,color:a,left:r,right:r});return _react().default.createElement(_reactNative().View,{pointerEvents:"none",style:[e.layout.hairline,n]})}),CollapsePanel=_react().default.forwardRef((e,t)=>{const a=(0,_react().useContext)(CollapseContext),r=(0,_animation.useReducedMotion)();if(!a)throw new Error("Collapse.Panel must be used within Collapse");const{activeKeys:n,toggle:i,iconPosition:l,expandIcon:o,disabled:c,tokens:s}=a,{name:u="0",index:d=0,title:p,description:_,label:f,icon:m,extra:b,value:y,border:g=s.defaults.panelBorder,isLink:v=s.defaults.panelIsLink,size:C=s.defaults.panelSize,disabled:k,readOnly:w,children:h,style:x,titleStyle:E,descriptionStyle:V,...P}=e,N=String(u),R=n.includes(N),S=c||k,{colors:z,spacing:O,typography:I}=s,[q,H]=(0,_react().useState)(0),M=(0,_react().useRef)(new(_reactNative().Animated.Value)(R?1:0)).current,A=(0,_react().useRef)(null),j=M.interpolate({inputRange:[0,1],outputRange:["90deg","-90deg"]});(0,_react().useEffect)(()=>{A.current?.stop();const e=_reactNative().Animated.timing(M,{toValue:R?1:0,duration:r?0:s.defaults.animationDuration,easing:_reactNative().Easing.ease,useNativeDriver:!1,isInteraction:!1});return A.current=e,e.start(({finished:e})=>{e&&(A.current=null)}),()=>{A.current?.stop(),A.current=null}},[M,R,r,s.defaults.animationDuration]);const W=_??f,D=b??y,F=(0,_react().useCallback)(()=>{S||w||i(N)},[S,N,w,i]);(0,_react().useImperativeHandle)(t,()=>({toggle:e=>{S||w||i(N,e)}}),[S,N,w,i]);const L=(0,_react().useCallback)(e=>{const t=e.nativeEvent.layout.height;(0,_utils.isNumber)(t)&&Number.isFinite(t)&&H(e=>e===t?e:t)},[]),B=(0,_react().useMemo)(()=>({height:M.interpolate({inputRange:[0,1],outputRange:[0,q]})}),[M,q]),K=(0,_react().useCallback)(()=>(0,_utils.isFunction)(o)?o(R):o||_react().default.createElement(_reactNative().Animated.View,{style:{transform:[{rotate:j}]}},_react().default.createElement(_Arrow().default,{size:16,fill:S?z.disabled:z.arrow})),[z.arrow,z.disabled,o,R,S,j]),T=(0,_react().useMemo)(()=>(0,_utils.renderTextOrNode)(h,{color:S?z.disabled:z.description,fontFamily:I.fontFamily,fontSize:I.descriptionSize,lineHeight:Math.round(1.5*I.descriptionSize)}),[h,z.description,z.disabled,S,I.descriptionSize,I.fontFamily]),G=Boolean(g),J=d>0&&G,Q=R&&G,U=v&&!w,X="left"===l?U||(0,_utils.isRenderable)(m)?_react().default.createElement(_reactNative().View,{style:s.layout.headerIconRow},U&&_react().default.createElement(_reactNative().View,{style:{marginRight:m?s.spacing.iconGap:0}},K()),m):void 0:m,Y="right"===l&&U?K():void 0;return _react().default.createElement(_reactNative().View,_extends({style:[s.layout.panel,{backgroundColor:z.background},x]},P),J&&_react().default.createElement(Hairline,{tokens:s,position:"top",color:z.border,inset:O.paddingHorizontal}),_react().default.createElement(_reactNative().View,{style:s.layout.headerWrapper},_react().default.createElement(_cell.Cell,{title:p,label:W,icon:X,value:D,size:C,border:!1,disabled:S,onPress:w?void 0:F,accessibilityState:{expanded:R,disabled:S},titleStyle:S?[E,{color:z.disabled}]:E,labelStyle:S?[V,{color:z.disabled}]:V,valueStyle:S?{color:z.disabled}:void 0,rightIcon:Y}),Q&&_react().default.createElement(Hairline,{tokens:s,position:"bottom",color:z.border,inset:O.paddingHorizontal})),_react().default.createElement(_reactNative().Animated.View,{style:[s.layout.bodyWrapper,B]},_react().default.createElement(_reactNative().View,{onLayout:L,style:[s.layout.bodyContent,{paddingVertical:O.paddingVertical,paddingHorizontal:O.paddingHorizontal,backgroundColor:z.background}]},T)))});CollapseImpl.Panel=CollapsePanel,CollapseImpl.Item=CollapsePanel;const Collapse=exports.Collapse=Object.assign(_react().default.memo(CollapseImpl),{Panel:CollapsePanel,Item:CollapsePanel});var _default=exports.default=Collapse;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Dialog=void 0;var _useLocale=require("../config-provider/useLocale"),_platform=require("../../platform"),_animation=require("../../hooks/animation"),_hairline=require("../../utils/hairline"),_promise=require("../../utils/promise"),_validate=require("../../utils/validate"),_utils=require("../../utils");function
|
|
1
|
+
"use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Dialog=void 0;var _useLocale=require("../config-provider/useLocale"),_platform=require("../../platform"),_animation=require("../../hooks/animation"),_hairline=require("../../utils/hairline"),_promise=require("../../utils/promise"),_validate=require("../../utils/validate"),_utils=require("../../utils");function _Close(){const e=_interopRequireDefault(require("react-native-system-icon/Close"));return _Close=function(){return e},e}var _button=_interopRequireDefault(require("../button")),_popup=_interopRequireDefault(require("../popup")),_tokens=require("./tokens"),_ActionButton=require("../../hooks/dialog/ActionButton");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var o=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,a,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(n=t?r:o){if(n.has(e))return n.get(e);n.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?n(i,t,a):i[t]=e[t]);return i})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)({}).hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},_extends.apply(null,arguments)}const DialogImpl=e=>{const t=(0,_useLocale.useLocale)(),{visible:o,title:r,message:n,messageAlign:a="center",theme:i="default",width:l,closeable:c=!1,closeIcon:s,overlay:d=!0,overlayStyle:u,overlayTestID:p="dialog-overlay",closeOnBackPress:g=!1,closeOnPopstate:f=!0,closeOnOverlayPress:_=!1,closeOnClickOverlay:m=!1,onClickOverlay:y,onClickCloseIcon:v,beforeClose:b,showCancelButton:h=!1,showConfirmButton:C=!0,cancelButtonText:P,cancelButtonColor:k,cancelProps:x,confirmButtonText:w,confirmButtonColor:N,confirmProps:B,footer:q,contentStyle:O,titleStyle:E,messageStyle:z,tokensOverride:D,style:I,children:H,onCancel:W,onConfirm:L,onClose:R,onClosed:V,...T}=e,A=(0,_tokens.useDialogTokens)(D),M=(0,_animation.useReducedMotion)(),F=(0,_validate.isValidNode)(r),j=(0,_validate.isValidNode)(H),G=(0,_validate.isValidNode)(n)||j,J=h||C,K="round-button"===i,Q=x?.loading,U=B?.loading,X=P??t.cancel,Y=w??t.confirm,Z=(0,_react().useRef)({seq:0,beforeClose:b,onClose:R,onCancel:W,onConfirm:L,onClickCloseIcon:v,cancelLoad:Q,confirmLoad:U});Object.assign(Z.current,{beforeClose:b,onClose:R,onCancel:W,onConfirm:L,onClickCloseIcon:v,cancelLoad:Q,confirmLoad:U});const $=(0,_react().useCallback)((e,t)=>{const o=Z.current;o.seq+=1;const r=o.seq,n=o.beforeClose;if(!n)return void t?.();let a;try{a=n(e)}catch{return}!1!==a&&((0,_promise.isPromiseLike)(a)?a.then(e=>{!1!==e&&Z.current.seq===r&&t?.()}).catch(()=>{}):t?.())},[]),ee=(0,_react().useCallback)(()=>{Z.current.onClickCloseIcon?.(),$("close",()=>Z.current.onClose?.())},[$]),te=(0,_react().useCallback)(()=>{Z.current.cancelLoad||$("cancel",()=>Z.current.onCancel?.())},[$]),oe=(0,_react().useCallback)(()=>{Z.current.confirmLoad||$("confirm",()=>Z.current.onConfirm?.())},[$]),re=(0,_react().useRef)(new(_reactNative().Animated.Value)(.7)).current,ne=(0,_react().useRef)(null);(0,_react().useEffect)(()=>{ne.current?.stop(),re.setValue(o?.7:1);const e=_reactNative().Animated.timing(re,{toValue:o?1:.9,duration:M?0:300,easing:o?_reactNative().Easing.out(_reactNative().Easing.cubic):_reactNative().Easing.in(_reactNative().Easing.cubic),useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1});ne.current=e,e.start()},[re,o,M]),(0,_react().useEffect)(()=>()=>{ne.current?.stop()},[]);const ae={transform:[{scale:re}]},ie=(0,_react().useMemo)(()=>F?{wrap:[S.titleWrap,{paddingTop:G?A.spacing.titlePaddingTop:A.spacing.titleIsolatedPadding,paddingBottom:G?0:A.spacing.titleIsolatedPadding,paddingHorizontal:G?A.spacing.paddingHorizontal:0,marginBottom:G?A.spacing.titleGap:0}],text:[S.title,{color:A.colors.title,fontFamily:A.typography.fontFamily,fontSize:A.typography.titleSize,lineHeight:A.typography.titleLineHeight,fontWeight:A.typography.titleWeight},E]}:null,[F,G,E,A]),le=(0,_react().useMemo)(()=>({text:[S.msg,{color:K?A.colors.title:A.colors.message,fontFamily:A.typography.fontFamily,fontSize:A.typography.messageSize,lineHeight:A.typography.messageLineHeight,textAlign:a},z],content:j?null:{alignItems:"center"===a?"center":"left"===a?"flex-start":"flex-end"},wrap:[S.msgWrap,{paddingTop:F?A.spacing.messagePaddingTop:A.spacing.messagePadding,paddingBottom:K?A.spacing.roundFooterPadding:A.spacing.messagePadding,paddingHorizontal:A.spacing.messagePaddingHorizontal}]}),[K,a,z,j,F,A]),ce=(0,_react().useMemo)(()=>({border:[S.footerBorder,(0,_hairline.createHairlineView)({position:"top",color:A.colors.divider,left:0,right:0,top:0})],round:[S.roundFooter,{paddingTop:A.spacing.messagePaddingTop,paddingHorizontal:A.spacing.messagePaddingHorizontal,paddingBottom:A.spacing.roundFooterPadding}]}),[A]),se=(0,_react().useMemo)(()=>{const e=l?(0,_validate.isNumber)(l)?{width:l}:{width:String(l)}:{width:"90%",maxWidth:A.sizes.maxWidth};return[{backgroundColor:A.colors.background,borderRadius:A.sizes.borderRadius,padding:0},e,I]},[l,I,A]),de=(0,_react().useCallback)(()=>{const e=Z.current.beforeClose;if(!e)return!0;try{return e("close")}catch{return!1}},[]),ue=(0,_react().useMemo)(()=>J&&_react().default.createElement(_reactNative().View,{style:ce.round},h&&_react().default.createElement(_reactNative().View,{style:[S.roundBtnWrap,C&&{marginRight:A.spacing.roundFooterGap}]},_react().default.createElement(_button.default,{block:!0,round:!0,type:"warning",text:X,color:k,loading:Q,disabled:x?.disabled,onPress:te,style:{minHeight:A.sizes.roundButtonHeight}})),C&&_react().default.createElement(_reactNative().View,{style:[S.roundBtnWrap,h&&{marginLeft:A.spacing.roundFooterGap}]},_react().default.createElement(_button.default,{block:!0,round:!0,type:"danger",text:Y,color:N,loading:U,disabled:B?.disabled,onPress:oe,style:{minHeight:A.sizes.roundButtonHeight}}))),[k,Q,x?.disabled,X,N,U,B?.disabled,Y,te,oe,J,ce.round,h,C,A.sizes.roundButtonHeight,A.spacing.roundFooterGap]),pe=(0,_react().useMemo)(()=>J&&_react().default.createElement(_reactNative().View,{style:S.footer},_react().default.createElement(_reactNative().View,{style:ce.border,pointerEvents:"none"}),h&&_react().default.createElement(_ActionButton.ActionButton,{tokens:A,text:X,color:k??A.colors.cancel,dividerPosition:"none",loading:Q,disabled:x?.disabled,onPress:te}),C&&_react().default.createElement(_ActionButton.ActionButton,{tokens:A,text:Y,color:N??A.colors.confirm,dividerPosition:h?"left":"none",loading:U,disabled:B?.disabled,onPress:oe})),[k,Q,x?.disabled,X,N,U,B?.disabled,Y,ce.border,te,oe,J,h,C,A]),ge=q??(K?ue:pe);return _react().default.createElement(_popup.default,_extends({visible:o,placement:"center",round:!0,overlay:d,overlayStyle:u,overlayTestID:p,closeOnBackPress:g,closeOnPopstate:f,closeOnClickOverlay:_||m,onClickOverlay:y,beforeClose:de,onClose:R,onClosed:V,contentAnimationStyle:ae,style:se,accessibilityRole:"android"===_reactNative().Platform.OS?"alert":"alertdialog",accessibilityLabel:"string"==typeof r?r:void 0},T),c&&_react().default.createElement(_reactNative().Pressable,{style:[S.closeIcon,{top:A.spacing.paddingTop/2,right:A.spacing.paddingHorizontal/2,padding:A.spacing.closeIconPadding}],hitSlop:{top:8,bottom:8,left:8,right:8},onPress:ee},s??_react().default.createElement(_Close().default,{size:A.sizes.closeSize,fill:A.colors.closeIcon,color:A.colors.closeIcon})),ie&&_react().default.createElement(_reactNative().View,{style:ie.wrap},(0,_utils.renderTextOrNode)(r,ie.text)),G&&_react().default.createElement(_reactNative().View,{style:[S.content,le.content,O]},j?H:_react().default.createElement(_reactNative().View,{style:le.wrap},(0,_utils.renderTextOrNode)(n,le.text))),ge)},S=_reactNative().StyleSheet.create({titleWrap:{alignItems:"center"},title:{textAlign:"center"},content:{width:"100%"},msg:{textAlign:"center"},footer:{flexDirection:"row",position:"relative"},footerBorder:{position:"absolute",top:0,left:0,right:0,height:0},msgWrap:{width:"100%"},roundFooter:{width:"100%",flexDirection:"row"},roundBtnWrap:{flex:1},closeIcon:{position:"absolute",zIndex:1}}),Dialog=exports.Dialog=_react().default.memo(DialogImpl);Dialog.displayName="Dialog";var _default=exports.default=Dialog;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.__DIALOG_STORE__=exports.DialogImperative=void 0;var _Portal=require("../portal/Portal"),_utils=require("../../utils"),_Dialog=_interopRequireDefault(require("./Dialog"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,o=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,a,s={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return s;if(n=t?o:r){if(n.has(e))return n.get(e);n.set(e,s)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?n(s,t,a):s[t]=e[t]);return s})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var o in r)({}).hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},_extends.apply(null,arguments)}const runHook=async e=>{if(!e)return!0;try{return!1!==await e()}catch(e){return console.error(e),!
|
|
1
|
+
"use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.__DIALOG_STORE__=exports.DialogImperative=void 0;var _Portal=require("../portal/Portal"),_utils=require("../../utils"),_Dialog=_interopRequireDefault(require("./Dialog"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,o=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,a,s={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return s;if(n=t?o:r){if(n.has(e))return n.get(e);n.set(e,s)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?n(s,t,a):s[t]=e[t]);return s})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var o in r)({}).hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},_extends.apply(null,arguments)}const runHook=async e=>{if(!e)return!0;try{return!1!==await e()}catch(e){return console.error(e),!1}},registry=new Map,defaults={default:{},show:{},alert:{},confirm:{}},requestClose=e=>{const t=registry.get(e);t?t.close?t.close():(_Portal.Portal.remove(e),registry.delete(e)):_Portal.Portal.remove(e)},DialogPortalInstance=({options:e,meta:t,portalKeyRef:r})=>{const[o,n]=(0,_react().useState)(!0),a=(0,_react().useCallback)(()=>{n(!1)},[]);(0,_react().useEffect)(()=>{if(!r.current)return;const e=registry.get(r.current);return e&&(e.close=a),()=>{const e=registry.get(r.current??-1);e&&e.close===a&&(e.close=void 0)}},[a,r]),(0,_react().useEffect)(()=>()=>{r.current&®istry.delete(r.current)},[r]);const s=(0,_react().useCallback)(async(r,o)=>{await runHook(()=>e.beforeClose?.(r))&&await runHook(o)&&(("confirm"===r&&"alert"===t.mode||"confirm"===t.mode)&&t.resolve?.("confirm"===r),a())},[a,t,e.beforeClose]),l=(0,_react().useCallback)(()=>{e.onClosed?.(),r.current&&(_Portal.Portal.remove(r.current),registry.delete(r.current))},[e,r]);return _react().default.createElement(_Dialog.default,_extends({},e,{visible:o,onCancel:e.showCancelButton?()=>s("cancel",e.onCancel):e.onCancel,onConfirm:()=>s("confirm",e.onConfirm),onClose:()=>s("close",e.onClose),onClosed:l}))},mount=(e,t)=>{const r={current:0},o=_react().default.createElement(DialogPortalInstance,{options:e,meta:t,portalKeyRef:r}),n=_Portal.Portal.add(o);return r.current=n,registry.set(n,{key:n,options:e,meta:t}),()=>requestClose(n)},normalize=(e,t={})=>{const r={...(0,_utils.deepMerge)((0,_utils.deepMerge)(defaults.default,defaults[e]),t),visible:!0};return(0,_utils.isUndefined)(r.showConfirmButton)&&(r.showConfirmButton=!0),r},setDefaultOptions=(e,t)=>{(0,_utils.isString)(e)?defaults[e]=(0,_utils.deepMerge)(defaults[e],t??{}):defaults.default=(0,_utils.deepMerge)(defaults.default,e)},resetDefaultOptions=e=>{e?defaults[e]={}:(defaults.default={},defaults.show={},defaults.alert={},defaults.confirm={})},DialogImperative=exports.DialogImperative={show:e=>mount(normalize("show",e),{mode:"show"}),alert:e=>new Promise(t=>{mount(normalize("alert",{...e,showCancelButton:!1}),{mode:"alert",resolve:t})}),confirm:e=>new Promise(t=>{mount(normalize("confirm",{showCancelButton:!0,...e}),{mode:"confirm",resolve:e=>t(void 0===e||e)})}),clear:()=>{registry.forEach((e,t)=>requestClose(t))},setDefaultOptions:setDefaultOptions,resetDefaultOptions:resetDefaultOptions},__DIALOG_STORE__=exports.__DIALOG_STORE__={getItems:()=>Array.from(registry.values()).map(({key:e,options:t,meta:r})=>({key:e,options:t,meta:r})),close:requestClose};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function _react(){const e=_interopRequireDefault(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}function
|
|
1
|
+
"use strict";function _react(){const e=_interopRequireDefault(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}function _Description(){const e=_interopRequireDefault(require("react-native-system-icon/Description"));return _Description=function(){return e},e}function _Fail(){const e=_interopRequireDefault(require("react-native-system-icon/Fail"));return _Fail=function(){return e},e}function _Search(){const e=_interopRequireDefault(require("react-native-system-icon/Search"));return _Search=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.Empty=void 0;var _utils=require("../../utils"),_image=_interopRequireDefault(require("../image")),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var r in i)({}).hasOwnProperty.call(i,r)&&(e[r]=i[r])}return e},_extends.apply(null,arguments)}const PRESET_ICONS={default:_Description().default,error:_Fail().default,network:_Fail().default,search:_Search().default},EmptyImpl=e=>{const{tokensOverride:t,image:i,imageSize:r,imageStyle:n,description:a,descriptionStyle:o,children:c,style:l,gap:s,...u}=e,p=(0,_tokens.useEmptyTokens)(t),d=i??p.defaults.image,_=s??p.defaults.gap,f=r??p.sizing.image,g={fontFamily:p.typography.descriptionFontFamily,fontSize:p.typography.descriptionSize,fontWeight:p.typography.descriptionFontWeight};return _react().default.createElement(_reactNative().View,_extends({accessibilityRole:"summary",accessibilityLabel:(0,_utils.isText)(a)?String(a):void 0,style:[p.layout.container,l]},u),(()=>{if(_react().default.isValidElement(d))return _react().default.createElement(_reactNative().View,{style:[p.layout.imageWrapper,{width:f,height:f},n]},d);if((0,_utils.isString)(d)){if(/^https?:/.test(d))return _react().default.createElement(_image.default,{src:d,width:f,height:f,fit:"contain",showLoading:!1,showError:!1,containerStyle:[{backgroundColor:p.colors.imageBackground},n]});const e=PRESET_ICONS[d]||PRESET_ICONS.default;return _react().default.createElement(_reactNative().View,{style:[p.layout.imageWrapper,{width:f,height:f},n]},_react().default.createElement(e,{size:f*p.sizing.iconScale,color:p.colors.icon}))}return null})(),(0,_utils.isRenderable)(a)?(0,_utils.isText)(a)?_react().default.createElement(_reactNative().Text,{style:[p.layout.descriptionText,{marginTop:_,paddingHorizontal:p.spacing.descriptionPaddingHorizontal,color:p.colors.description,fontSize:p.typography.descriptionSize,lineHeight:p.typography.descriptionLineHeight,fontFamily:p.typography.descriptionFontFamily,fontWeight:p.typography.descriptionFontWeight},o]},a):_react().default.createElement(_reactNative().View,{style:{marginTop:_,paddingHorizontal:p.spacing.descriptionPaddingHorizontal}},a):null,(0,_utils.isRenderable)(c)&&_react().default.createElement(_reactNative().View,{style:{marginTop:p.spacing.footerMarginTop}},(0,_utils.renderTextOrNode)(c,g)))},Empty=exports.Empty=_react().default.memo(EmptyImpl);Empty.displayName="Empty";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Field=void 0;var _cell=_interopRequireDefault(require("../cell")),_dialog=_interopRequireDefault(require("../dialog")),_string=require("../../utils/string"),_validate=require("../../utils/validate"),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var l,i,n={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return n;if(l=t?a:r){if(l.has(e))return l.get(e);l.set(e,n)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((i=(l=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(i.get||i.set)?l(n,t,i):n[t]=e[t]);return n})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},_extends.apply(null,arguments)}const alignMap={left:"flex-start",center:"center",right:"flex-end"},mapKeyboardType=e=>{switch(e){case"number":return"decimal-pad";case"digit":return"number-pad";case"tel":return"phone-pad";default:return}},FieldSlot=({onPress:e,style:t,children:r,accessibilityRole:a="button"})=>r?e?_react().default.createElement(_reactNative().Pressable,{onPress:e,accessibilityRole:a,style:t},r):_react().default.createElement(_reactNative().View,{style:t},r):null,FieldClearButton=({show:e,tokens:t,clearIcon:r,onPressIn:a,onPressOut:l,onPress:i})=>{if(!e)return null;const n="web"===_reactNative().Platform.OS?{onMouseDown:e=>{e.preventDefault?.(),e.stopPropagation?.()}}:void 0;return _react().default.createElement(_reactNative().Pressable,_extends({style:[t.layout.clearIcon,{paddingHorizontal:t.spacing.rightIconGap}]},n,{onPressIn:a,onPressOut:l,onPress:i,accessibilityRole:"button"}),_react().default.isValidElement(r)?r:_react().default.createElement(_reactNativeSystemIcon().Clear,{size:t.sizes.clearIcon,fill:t.colors.clear,color:t.colors.clear}))},FieldInput=({inputRef:e,tokens:t,isTextarea:r,disabled:a,error:l,finalTextAlign:i,lineHeight:n,textareaHeight:o,minHeight:c,inputStyle:s,value:u,onChangeText:d,onFocus:f,onBlur:_,onPressIn:g,rows:p,placeholderTextColor:m,keyboardType:y,onContentSizeChange:v,describedBy:b,secureTextEntry:h,editable:x,restInputProps:w})=>{const T=[r?t.layout.textarea:t.layout.input,{color:a?t.colors.disabled:l?t.colors.error:t.colors.input,fontSize:t.typography.inputSize,textAlign:i,...r?{lineHeight:n,height:o,minHeight:c}:{minHeight:t.sizes.controlMinHeight}},s];return _react().default.createElement(_reactNative().TextInput,_extends({ref:e,style:T,value:u,onChangeText:d,onFocus:f,onBlur:_,onPressIn:g,editable:x,secureTextEntry:h,multiline:r,numberOfLines:r?p:void 0,keyboardType:y,placeholderTextColor:m,onContentSizeChange:r?v:void 0},b?{accessibilityDescribedBy:b}:null,{clearButtonMode:"never"},w))},FieldControlRow=({tokens:e,prefixNode:t,leftIconNode:r,controlNode:a,clearNode:l,rightIconNode:i,suffixNode:n})=>_react().default.createElement(_reactNative().View,{style:e.layout.body},t,r,_react().default.createElement(_reactNative().View,{style:[e.layout.controlWrapper,{minHeight:e.sizes.controlMinHeight}]},a,l),i,n),FieldImpl=(e,t)=>{const{tokensOverride:r,label:a,labelWidth:l,labelAlign:i,inputAlign:n,controlAlign:o,required:c=!1,colon:s=!1,intro:u,description:d,tooltip:f,error:_=!1,errorMessage:g,errorMessageAlign:p="left",errorMessagePosition:m="inner",disabled:y=!1,readOnly:v=!1,clearable:b=!1,clearTrigger:h,clearIcon:x,leftIcon:w,rightIcon:T,prefix:S,suffix:R,button:I,extra:N,value:C,defaultValue:M="",type:k="text",rows:P,autoSize:E=!1,formatter:z,formatTrigger:F,showWordLimit:O=!1,onOverlimit:H,onClear:L,onClick:q,onClickInput:D,onClickLeftIcon:A,onClickRightIcon:B,border:W,center:V,clickable:j,isLink:G,arrowDirection:K,size:$,titleStyle:Q,contentStyle:J,inputStyle:U,labelStyle:X,introStyle:Y,errorMessageStyle:Z,style:ee,androidRipple:te,children:re,placeholderTextColor:ae,onFocus:le,onBlur:ie,onPressIn:ne,onChangeText:oe,maxLength:ce,...se}=e,ue=(0,_tokens.useFieldTokens)(r),de=l??ue.defaults.labelWidth,fe=i??ue.defaults.labelAlign,_e=n??ue.defaults.inputAlign,ge=o??ue.defaults.controlAlign,pe=h??ue.defaults.clearTrigger,me=P??ue.defaults.rows,ye=F??ue.defaults.formatTrigger,ve=[{width:de,minWidth:de,maxWidth:de,flexBasis:de,marginRight:ue.spacing.labelGap,flexShrink:0,flexGrow:0},Q],be=R??I,he=u??d,xe=ae??(y?ue.colors.disabled:ue.colors.placeholder),we="textarea"===k,Te=void 0!==C,[Se,Re]=(0,_react().useState)(M),Ie=Te?C??"":Se,[Ne,Ce]=(0,_react().useState)(!1),[Me,ke]=(0,_react().useState)(!1),Pe=(0,_react().useRef)(!1),Ee=(0,_react().useRef)(null),ze=(0,_react().useId)(),Fe=(0,_react().useId)(),Oe=(0,_react().useMemo)(()=>{const e=[(0,_validate.isRenderable)(g)?Fe:null,(0,_validate.isRenderable)(he)?ze:null].filter(Boolean);return e.length?e:void 0},[Fe,g,ze,he]),He=ue.defaults.textareaLineHeight,Le=E&&(0,_validate.isObject)(E)?E:void 0,qe=we?Le&&(0,_validate.isDef)(Le.minRows)?Math.max(1,Le.minRows):Math.max(1,me):1,De=we&&Le&&(0,_validate.isDef)(Le.maxRows)?Math.max(1,Le.maxRows):void 0,Ae=(0,_react().useMemo)(()=>we?Math.max(ue.sizes.textareaMinHeight,qe*He):void 0,[we,He,qe,ue.sizes.textareaMinHeight]),Be=(0,_react().useMemo)(()=>we&&De?Math.max(ue.sizes.textareaMinHeight,De*He):void 0,[we,He,De,ue.sizes.textareaMinHeight]),[We,Ve]=(0,_react().useState)(Ae),je=(0,_react().useRef)(oe);je.current=oe;const Ge=(0,_react().useRef)(H);Ge.current=H;const Ke=(0,_react().useRef)(le);Ke.current=le;const $e=(0,_react().useRef)(ie);$e.current=ie;const Qe=(0,_react().useRef)(ne);Qe.current=ne;const Je=(0,_react().useRef)(D);Je.current=D;const Ue=(0,_react().useRef)(L);Ue.current=L;const Xe=(0,_react().useCallback)((e,t="onChange")=>z&&t===ye?z(e):e,[ye,z]),Ye=(0,_react().useCallback)((e,t="onChange")=>{const r=Xe(e,t);Te||Re(r),je.current?.(r)},[Xe,Te]);(0,_react().useImperativeHandle)(t,()=>({focus:()=>Ee.current?.focus(),blur:()=>Ee.current?.blur(),clear:()=>Ye(""),get nativeElement(){return Ee.current}}));const Ze="left"!==ge?ge:_e,et=b&&!v&&""!==(Ie??"")&&("always"===pe||"focus"===pe&&(Ne||Me)),tt=(0,_react().useCallback)(e=>{let t=e??"";if("number"===k||"digit"===k){const e="number"===k;t=(0,_string.formatNumberInput)(t,e,e)}(0,_validate.isFiniteNumber)(ce)&&ce>=0&&t.length>ce&&(Ge.current?.(t),t=t.slice(0,ce)),Ye(t,"onChange")},[ce,k,Ye]),rt=(0,_react().useCallback)(e=>{Ce(!0),Ke.current?.(e),v&&Ee.current?.blur()},[v]),at=(0,_react().useCallback)(e=>{if("web"!==_reactNative().Platform.OS&&Pe.current)return Pe.current=!1,Ce(!1),void $e.current?.(e);Ye(Ie??"","onBlur"),Ce(!1),$e.current?.(e)},[Ye,Ie]),lt=(0,_react().useCallback)(e=>{Qe.current?.(e),Je.current?.()},[]),it=(0,_react().useCallback)(e=>{if(!we)return;const t=e.nativeEvent.contentSize?.height??0;if(!t)return;let r=t;E?(r=Math.max(Ae??t,t),Be&&(r=Math.min(r,Be))):Ae&&(r=Math.max(Ae,t)),Ve(r)},[E,we,Be,Ae]),nt=(0,_react().useCallback)(()=>{"web"!==_reactNative().Platform.OS&&(Pe.current=!0),Ye(""),Ee.current?.clear?.(),Ee.current?.focus?.(),Ue.current?.()},[Ye]),ot=(0,_react().useCallback)(()=>{ke(!0),"web"!==_reactNative().Platform.OS&&nt()},[nt]),ct=(0,_react().useCallback)(()=>{ke(!1),Pe.current=!1},[]),st=(0,_validate.isRenderable)(re)?_react().default.createElement(_reactNative().View,{style:[ue.layout.children,{minHeight:ue.sizes.controlMinHeight}]},re):_react().default.createElement(FieldInput,{inputRef:Ee,tokens:ue,isTextarea:we,disabled:y,error:_,finalTextAlign:Ze,lineHeight:He,textareaHeight:We,minHeight:Ae,inputStyle:U,value:Ie??"",onChangeText:tt,onFocus:rt,onBlur:at,onPressIn:lt,rows:me,keyboardType:se.keyboardType??mapKeyboardType(k),placeholderTextColor:xe,onContentSizeChange:it,describedBy:Oe,secureTextEntry:"password"===k,editable:!y&&!v,restInputProps:se}),ut=[{width:"100%",justifyContent:alignMap[ge]},J],dt=e=>(0,_validate.isText)(e)?_react().default.createElement(_reactNative().Text,{style:[ue.layout.affixText,{color:ue.colors.input,fontSize:ue.typography.inputSize}],numberOfLines:1},e):e,ft=(0,_validate.isRenderable)(f)?(()=>{const e=_react().default.createElement(_reactNativeSystemIcon().QuestionO,{size:ue.sizes.icon,fill:ue.colors.tooltip,color:ue.colors.tooltip});let t=e,r={message:f};if(!_react().default.isValidElement(f)&&!(0,_validate.isText)(f)){const{icon:a,...l}=f;t=a??e,r=l}return _react().default.createElement(_reactNative().Pressable,{style:[ue.layout.tooltip,{marginLeft:ue.spacing.rightIconGap}],onPress:()=>_dialog.default.show(r),accessibilityRole:"button"},t)})():null,_t=(0,_validate.isRenderable)(a)?(()=>{const e=(0,_validate.isText)(a)?_react().default.createElement(_reactNative().Text,{style:[{color:y?ue.colors.disabled:ue.colors.label,fontSize:ue.typography.labelSize,textAlign:fe},X],numberOfLines:1},a,s?":":""):a;return _react().default.createElement(_reactNative().View,{style:ue.layout.labelRow},e,ft)})():null,gt=O&&null!=ce?(()=>{const e=(Ie??"").length,t=(0,_validate.isFunction)(O)?O({currentCount:e,maxLength:ce}):`${e}/${ce}`;return(0,_validate.isRenderable)(t)?(0,_validate.isText)(t)?_react().default.createElement(_reactNative().Text,{style:[ue.layout.wordLimit,{color:ue.colors.wordLimit,fontSize:ue.typography.wordLimitSize??12,textAlign:"right",alignSelf:"flex-end",marginTop:ue.spacing.wordLimitMarginTop}]},t):t:null})():null,pt=(0,_validate.isRenderable)(g)?(0,_validate.isText)(g)?_react().default.createElement(_reactNative().Text,{nativeID:Fe,style:[ue.layout.message,{color:ue.colors.error,fontSize:ue.typography.messageSize,textAlign:p,marginTop:ue.spacing.messageMarginTop},Z],accessibilityLiveRegion:"polite"},g):_react().default.createElement(_reactNative().View,{nativeID:Fe,style:[ue.layout.message,{alignSelf:alignMap[p],marginTop:ue.spacing.messageMarginTop}],accessibilityLiveRegion:"polite"},g):null,mt=(0,_validate.isRenderable)(he)?(0,_validate.isText)(he)?_react().default.createElement(_reactNative().Text,{nativeID:ze,style:[ue.layout.message,{color:ue.colors.intro,fontSize:ue.typography.introSize,textAlign:ge,marginTop:ue.spacing.introMarginTop},Y]},he):_react().default.createElement(_reactNative().View,{nativeID:ze,style:{marginTop:ue.spacing.introMarginTop}},he):null,yt=S?_react().default.createElement(_reactNative().View,{style:[ue.layout.prefix,{paddingRight:ue.spacing.prefixGap}]},dt(S)):null,vt=be?_react().default.createElement(_reactNative().View,{style:[ue.layout.suffix,{paddingLeft:ue.spacing.suffixGap}]},dt(be)):null,bt=w?_react().default.createElement(FieldSlot,{onPress:A,style:[ue.layout.leftIcon,{marginRight:ue.spacing.leftIconGap,minWidth:ue.sizes.icon}]},w):null,ht=T?_react().default.createElement(FieldSlot,{onPress:B,style:[ue.layout.rightIcon,{paddingHorizontal:ue.spacing.rightIconGap}]},T):null,xt=et?_react().default.createElement(FieldClearButton,{show:et,tokens:ue,clearIcon:x,onPressIn:ot,onPressOut:"web"===_reactNative().Platform.OS?ct:void 0,onPress:"web"===_reactNative().Platform.OS?nt:void 0}):null,wt="outer"===m,Tt=_react().default.createElement(_cell.default,{title:_t,icon:void 0,required:c,border:W,center:V,size:$,clickable:j,isLink:G,arrowDirection:K,extra:N,titleStyle:ve,style:[ee,wt&&(_||(0,_validate.isRenderable)(g))?{borderColor:ue.colors.error}:void 0],contentStyle:ut,accessibilityState:_?{invalid:!0}:void 0,accessibilityLabel:(0,_validate.isText)(a)?String(a):void 0,onPress:q,android_ripple:te},_react().default.createElement(FieldControlRow,{tokens:ue,prefixNode:yt,leftIconNode:bt,controlNode:st,clearNode:xt,rightIconNode:ht,suffixNode:vt}),gt,wt?null:pt,mt);return wt&&pt?_react().default.createElement(_react().default.Fragment,null,Tt,pt):Tt},FieldForwardRef=_react().default.forwardRef(FieldImpl);FieldForwardRef.displayName="Field";const Field=exports.Field=_react().default.memo(FieldForwardRef);var _default=exports.default=Field;
|
|
1
|
+
"use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}function _QuestionO(){const e=_interopRequireDefault(require("react-native-system-icon/QuestionO"));return _QuestionO=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Field=void 0;var _cell=_interopRequireDefault(require("../cell")),_dialog=_interopRequireDefault(require("../dialog")),_string=require("../../utils/string"),_validate=require("../../utils/validate"),_tokens=require("./tokens"),_renderers=require("../../hooks/field/renderers");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var i,l,n={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return n;if(i=t?a:r){if(i.has(e))return i.get(e);i.set(e,n)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((l=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(l.get||l.set)?i(n,t,l):n[t]=e[t]);return n})(e,t)}const FieldImpl=(e,t)=>{const{tokensOverride:r,label:a,labelWidth:i,labelAlign:l,inputAlign:n,controlAlign:o,required:c=!1,colon:s=!1,intro:u,description:d,tooltip:f,error:_=!1,errorMessage:g,errorMessageAlign:p="left",errorMessagePosition:m="inner",disabled:v=!1,readOnly:y=!1,clearable:b=!1,clearTrigger:h,clearIcon:x,leftIcon:R,rightIcon:w,prefix:S,suffix:T,button:k,extra:M,value:C,defaultValue:I="",type:N="text",rows:z,autoSize:F=!1,formatter:E,formatTrigger:P,showWordLimit:O=!1,onOverlimit:q,onClear:L,onClick:D,onClickInput:A,onClickLeftIcon:H,onClickRightIcon:W,border:B,center:G,clickable:V,isLink:j,arrowDirection:Q,size:$,titleStyle:K,contentStyle:J,inputStyle:U,labelStyle:X,introStyle:Y,errorMessageStyle:Z,style:ee,androidRipple:te,children:re,placeholderTextColor:ae,onFocus:ie,onBlur:le,onPressIn:ne,onChangeText:oe,maxLength:ce,...se}=e,ue=(0,_tokens.useFieldTokens)(r),de=i??ue.defaults.labelWidth,fe=l??ue.defaults.labelAlign,_e=n??ue.defaults.inputAlign,ge=o??ue.defaults.controlAlign,pe=h??ue.defaults.clearTrigger,me=z??ue.defaults.rows,ve=P??ue.defaults.formatTrigger,ye=[{width:de,minWidth:de,maxWidth:de,flexBasis:de,marginRight:ue.spacing.labelGap,flexShrink:0,flexGrow:0},K],be=T??k,he=u??d,xe=ae??(v?ue.colors.disabled:ue.colors.placeholder),Re="textarea"===N,we=void 0!==C,[Se,Te]=(0,_react().useState)(I),ke=we?C??"":Se,[Me,Ce]=(0,_react().useState)(!1),[Ie,Ne]=(0,_react().useState)(!1),ze=(0,_react().useRef)(!1),Fe=(0,_react().useRef)(null),Ee=(0,_react().useId)(),Pe=(0,_react().useId)(),Oe=(0,_react().useMemo)(()=>{const e=[(0,_validate.isRenderable)(g)?Pe:null,(0,_validate.isRenderable)(he)?Ee:null].filter(Boolean);return e.length?e:void 0},[Pe,g,Ee,he]),qe=ue.defaults.textareaLineHeight,Le=F&&(0,_validate.isObject)(F)?F:void 0,De=Re?Le&&(0,_validate.isDef)(Le.minRows)?Math.max(1,Le.minRows):Math.max(1,me):1,Ae=Re&&Le&&(0,_validate.isDef)(Le.maxRows)?Math.max(1,Le.maxRows):void 0,He=(0,_react().useMemo)(()=>Re?Math.max(ue.sizes.textareaMinHeight,De*qe):void 0,[Re,qe,De,ue.sizes.textareaMinHeight]),We=(0,_react().useMemo)(()=>Re&&Ae?Math.max(ue.sizes.textareaMinHeight,Ae*qe):void 0,[Re,qe,Ae,ue.sizes.textareaMinHeight]),[Be,Ge]=(0,_react().useState)(He),Ve=(0,_react().useRef)(oe);Ve.current=oe;const je=(0,_react().useRef)(q);je.current=q;const Qe=(0,_react().useRef)(ie);Qe.current=ie;const $e=(0,_react().useRef)(le);$e.current=le;const Ke=(0,_react().useRef)(ne);Ke.current=ne;const Je=(0,_react().useRef)(A);Je.current=A;const Ue=(0,_react().useRef)(L);Ue.current=L;const Xe=(0,_react().useCallback)((e,t="onChange")=>E&&t===ve?E(e):e,[ve,E]),Ye=(0,_react().useCallback)((e,t="onChange")=>{const r=Xe(e,t);we||Te(r),Ve.current?.(r)},[Xe,we]);(0,_react().useImperativeHandle)(t,()=>({focus:()=>Fe.current?.focus(),blur:()=>Fe.current?.blur(),clear:()=>Ye(""),get nativeElement(){return Fe.current}}));const Ze="left"!==ge?ge:_e,et=b&&!y&&""!==(ke??"")&&("always"===pe||"focus"===pe&&(Me||Ie)),tt=(0,_react().useCallback)(e=>{let t=e??"";if("number"===N||"digit"===N){const e="number"===N;t=(0,_string.formatNumberInput)(t,e,e)}(0,_validate.isFiniteNumber)(ce)&&ce>=0&&t.length>ce&&(je.current?.(t),t=t.slice(0,ce)),Ye(t,"onChange")},[ce,N,Ye]),rt=(0,_react().useCallback)(e=>{Ce(!0),Qe.current?.(e),y&&Fe.current?.blur()},[y]),at=(0,_react().useCallback)(e=>{if("web"!==_reactNative().Platform.OS&&ze.current)return ze.current=!1,Ce(!1),void $e.current?.(e);Ye(ke??"","onBlur"),Ce(!1),$e.current?.(e)},[Ye,ke]),it=(0,_react().useCallback)(e=>{Ke.current?.(e),Je.current?.()},[]),lt=(0,_react().useCallback)(e=>{if(!Re)return;const t=e.nativeEvent.contentSize?.height??0;if(!t)return;let r=t;F?(r=Math.max(He??t,t),We&&(r=Math.min(r,We))):He&&(r=Math.max(He,t)),Ge(r)},[F,Re,We,He]),nt=(0,_react().useCallback)(()=>{"web"!==_reactNative().Platform.OS&&(ze.current=!0),Ye(""),Fe.current?.clear?.(),Fe.current?.focus?.(),Ue.current?.()},[Ye]),ot=(0,_react().useCallback)(()=>{Ne(!0),"web"!==_reactNative().Platform.OS&&nt()},[nt]),ct=(0,_react().useCallback)(()=>{Ne(!1),ze.current=!1},[]),st=(0,_validate.isRenderable)(re)?_react().default.createElement(_reactNative().View,{style:[ue.layout.children,{minHeight:ue.sizes.controlMinHeight}]},re):_react().default.createElement(_renderers.FieldInput,{inputRef:Fe,tokens:ue,isTextarea:Re,disabled:v,error:_,finalTextAlign:Ze,lineHeight:qe,textareaHeight:Be,minHeight:He,inputStyle:U,value:ke??"",onChangeText:tt,onFocus:rt,onBlur:at,onPressIn:it,rows:me,keyboardType:se.keyboardType??(0,_renderers.mapKeyboardType)(N),placeholderTextColor:xe,onContentSizeChange:lt,describedBy:Oe,secureTextEntry:"password"===N,editable:!v&&!y,restInputProps:se}),ut=[{width:"100%",justifyContent:_renderers.alignMap[ge]},J],dt=e=>(0,_validate.isText)(e)?_react().default.createElement(_reactNative().Text,{style:[ue.layout.affixText,{color:ue.colors.input,fontSize:ue.typography.inputSize}],numberOfLines:1},e):e,ft=(0,_validate.isRenderable)(f)?(()=>{const e=_react().default.createElement(_QuestionO().default,{size:ue.sizes.icon,fill:ue.colors.tooltip,color:ue.colors.tooltip}),{icon:t,dialogProps:r}=(0,_renderers.resolveTooltipDialog)(f,e);return _react().default.createElement(_reactNative().Pressable,{style:[ue.layout.tooltip,{marginLeft:ue.spacing.rightIconGap}],onPress:()=>_dialog.default.show(r),accessibilityRole:"button"},t)})():null,_t=(0,_validate.isRenderable)(a)?(()=>{const e=(0,_validate.isText)(a)?_react().default.createElement(_reactNative().Text,{style:[{color:v?ue.colors.disabled:ue.colors.label,fontSize:ue.typography.labelSize,textAlign:fe},X],numberOfLines:1},a,s?":":""):a;return _react().default.createElement(_reactNative().View,{style:ue.layout.labelRow},e,ft)})():null,gt=O&&null!=ce?(()=>{const e=(ke??"").length,t=(0,_validate.isFunction)(O)?O({currentCount:e,maxLength:ce}):`${e}/${ce}`;return(0,_validate.isRenderable)(t)?(0,_validate.isText)(t)?_react().default.createElement(_reactNative().Text,{style:[ue.layout.wordLimit,{color:ue.colors.wordLimit,fontSize:ue.typography.wordLimitSize??12,textAlign:"right",alignSelf:"flex-end",marginTop:ue.spacing.wordLimitMarginTop}]},t):t:null})():null,pt=(0,_validate.isRenderable)(g)?(0,_validate.isText)(g)?_react().default.createElement(_reactNative().Text,{nativeID:Pe,style:[ue.layout.message,{color:ue.colors.error,fontSize:ue.typography.messageSize,textAlign:p,marginTop:ue.spacing.messageMarginTop},Z],accessibilityLiveRegion:"polite"},g):_react().default.createElement(_reactNative().View,{nativeID:Pe,style:[ue.layout.message,{alignSelf:_renderers.alignMap[p],marginTop:ue.spacing.messageMarginTop}],accessibilityLiveRegion:"polite"},g):null,mt=(0,_validate.isRenderable)(he)?(0,_validate.isText)(he)?_react().default.createElement(_reactNative().Text,{nativeID:Ee,style:[ue.layout.message,{color:ue.colors.intro,fontSize:ue.typography.introSize,textAlign:ge,marginTop:ue.spacing.introMarginTop},Y]},he):_react().default.createElement(_reactNative().View,{nativeID:Ee,style:{marginTop:ue.spacing.introMarginTop}},he):null,vt=S?_react().default.createElement(_reactNative().View,{style:[ue.layout.prefix,{paddingRight:ue.spacing.prefixGap}]},dt(S)):null,yt=be?_react().default.createElement(_reactNative().View,{style:[ue.layout.suffix,{paddingLeft:ue.spacing.suffixGap}]},dt(be)):null,bt=R?_react().default.createElement(_renderers.FieldSlot,{onPress:H,style:[ue.layout.leftIcon,{marginRight:ue.spacing.leftIconGap,minWidth:ue.sizes.icon}]},R):null,ht=w?_react().default.createElement(_renderers.FieldSlot,{onPress:W,style:[ue.layout.rightIcon,{paddingHorizontal:ue.spacing.rightIconGap}]},w):null,xt=et?_react().default.createElement(_renderers.FieldClearButton,{show:et,tokens:ue,clearIcon:x,onPressIn:ot,onPressOut:"web"===_reactNative().Platform.OS?ct:void 0,onPress:"web"===_reactNative().Platform.OS?nt:void 0}):null,Rt="outer"===m,wt=_react().default.createElement(_cell.default,{title:_t,icon:void 0,required:c,border:B,center:G,size:$,clickable:V,isLink:j,arrowDirection:Q,extra:M,titleStyle:ye,style:[ee,Rt&&(_||(0,_validate.isRenderable)(g))?{borderColor:ue.colors.error}:void 0],contentStyle:ut,accessibilityState:_?{invalid:!0}:void 0,accessibilityLabel:(0,_validate.isText)(a)?String(a):void 0,onPress:D,android_ripple:te},_react().default.createElement(_renderers.FieldControlRow,{tokens:ue,prefixNode:vt,leftIconNode:bt,controlNode:st,clearNode:xt,rightIconNode:ht,suffixNode:yt}),gt,Rt?null:pt,mt);return Rt&&pt?_react().default.createElement(_react().default.Fragment,null,wt,pt):wt},FieldForwardRef=_react().default.forwardRef(FieldImpl);FieldForwardRef.displayName="Field";const Field=exports.Field=_react().default.memo(FieldForwardRef);var _default=exports.default=Field;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.
|
|
1
|
+
"use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.FormSubscribe=exports.FormContext=exports.FORM_ALL_FIELDS_KEY=void 0,Object.defineProperty(exports,"getValueByName",{enumerable:!0,get:function(){return _utils2.getValueByName}}),Object.defineProperty(exports,"normalizeTrigger",{enumerable:!0,get:function(){return _utils2.normalizeTrigger}}),Object.defineProperty(exports,"serializeNamePath",{enumerable:!0,get:function(){return _utils2.serializeNamePath}}),Object.defineProperty(exports,"setValueByName",{enumerable:!0,get:function(){return _utils2.setValueByName}}),Object.defineProperty(exports,"toNamePath",{enumerable:!0,get:function(){return _utils2.toNamePath}}),exports.useWatch=void 0;var _utils=require("../../utils"),_promise=require("../../utils/promise"),_validate=require("../../utils/validate"),_useLocale=require("../config-provider/useLocale"),_utils2=require("../../hooks/form/utils");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,u,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(n=t?a:r){if(n.has(e))return n.get(e);n.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((u=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(u.get||u.set)?n(i,t,u):i[t]=e[t]);return i})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},_extends.apply(null,arguments)}const FORM_ALL_FIELDS_KEY=exports.FORM_ALL_FIELDS_KEY="__form_all__",FormContext=exports.FormContext=_react().default.createContext(null),InternalFormImpl=(e,t)=>{const{initialValues:r,colon:a,labelWidth:n,showValidateMessage:u=!0,onValuesChange:i,onFinish:c,style:s,footer:l,children:o,..._}=e,f=(0,_useLocale.useLocale)(),d=(0,_react().useRef)({}),m=(0,_react().useRef)({}),g=(0,_react().useRef)(r??d.current),p=(0,_react().useRef)({}),b=(0,_react().useRef)(new Map),h=(0,_react().useRef)(r??d.current),F=(0,_react().useRef)({}),y=(0,_react().useRef)(new Set),v=(0,_react().useRef)(i),N=(0,_react().useRef)(c);v.current=i,N.current=c;const V=r??d.current,[,x]=(0,_react().useState)(0),P=(0,_react().useCallback)((e,t)=>{y.current.forEach(r=>r(e,t))},[]);(0,_react().useEffect)(()=>{(0,_utils.deepEqualObject)(g.current,V)||(g.current=V,h.current=V,m.current={},x(e=>e+1),P({[FORM_ALL_FIELDS_KEY]:!0},V))},[V,P]);const E=(0,_react().useCallback)((e,t)=>{const r=(0,_utils2.serializeNamePath)(e),a=m.current[r];if(!t.length){if(!a)return;const t={...m.current};return delete t[r],m.current=t,void P({[r]:(0,_utils2.getValueByName)(h.current,e)},h.current)}a?.[0]===t[0]&&a.length===t.length||(m.current={...m.current,[r]:t},P({[r]:(0,_utils2.getValueByName)(h.current,e)},h.current))},[P]),L=(0,_react().useCallback)((e,t)=>{const r=(0,_utils2.serializeNamePath)(e),a=p.current[r];if(a?.dependencies?.length)for(const e of a.dependencies){const t=(0,_utils2.serializeNamePath)(e),a=b.current.get(t);a&&(a.delete(r),a.size||b.current.delete(t))}if(p.current[r]={...t,name:e},t.dependencies?.length)for(const e of t.dependencies){const t=(0,_utils2.serializeNamePath)(e),a=b.current.get(t);a?a.add(r):b.current.set(t,new Set([r]))}if(void 0!==t.initialValue){void 0===(0,_utils2.getValueByName)(g.current,e)&&(g.current=(0,_utils2.setValueByName)(g.current,e,t.initialValue));if(void 0===(0,_utils2.getValueByName)(h.current,e)){const a=(0,_utils2.setValueByName)(h.current,e,t.initialValue);h.current=a,P({[r]:t.initialValue},a)}}return()=>{const t=p.current[r];if(delete p.current[r],t?.dependencies?.length)for(const e of t.dependencies){const t=(0,_utils2.serializeNamePath)(e),a=b.current.get(t);a&&(a.delete(r),a.size||b.current.delete(t))}E(e,[])}},[P,E]),O=(0,_react().useRef)(f);O.current=f;const R=(0,_react().useCallback)(async(e,t,r,a)=>{const n=(0,_utils2.serializeNamePath)(e),u=(F.current[n]??0)+1;F.current[n]=u;const i=p.current[n],c=i?.rules??[];if(!c.length)return E(e,[]),!0;const s=t?c.filter(e=>{const r=e.validateTrigger??i.validateTrigger;return!r||(0,_utils2.normalizeTrigger)(r).includes(t)}):c;if(!s.length)return m.current[n]?.length&&E(e,[]),!0;const l=a??h.current,o=r??(0,_utils2.getValueByName)(l,e),_=O.current?.vanForm?.validationFailed;for(const t of s){const r=(0,_utils2.runRuleValidation)(t,o,l,_),a=(0,_promise.isPromiseLike)(r)?await r:r;if(F.current[n]!==u)return!0;if(a)return E(e,[a]),!1}return F.current[n]!==u||E(e,[]),!0},[E]),B=(0,_react().useCallback)(async e=>{const t=e??Object.values(p.current).map(e=>e.name);if((await Promise.all(t.map(e=>R(e)))).some(e=>!e))throw m.current;return h.current},[R]),z=(0,_react().useCallback)((e,t,r,a,n)=>{R(t,r,a,n);const u=b.current.get(e);if(u?.size)for(const e of u){const t=p.current[e];t&&R(t.name,r,(0,_utils2.getValueByName)(n,t.name),n)}},[R]),C=(0,_react().useCallback)((e,t,r)=>{const a=(0,_utils2.serializeNamePath)(e),n=h.current;if((0,_utils2.getValueByName)(n,e)===t)return;const u=(0,_utils2.setValueByName)(n,e,t);h.current=u,v.current?.(u,a,t),z(a,e,r,t,u),P({[a]:t},u)},[P,z]),M=(0,_react().useMemo)(()=>({submit:async()=>{try{const e=await B();return N.current?.(e),e}catch{return}},getFieldsValue:()=>h.current,setFieldsValue:(e,t)=>{const r=t?.validate??!1,a=h.current;let n=a;const u={};Object.keys(e).forEach(t=>{const a=e[t];(0,_utils2.getValueByName)(n,t)!==a&&(u[t]=a,n=(0,_utils2.setValueByName)(n,t,a),v.current?.(n,t,a),r&&z(t,t,void 0,a,n))}),n!==a&&(h.current=n,P(u,n))},resetFields:()=>{let e=g.current;Object.values(p.current).forEach(t=>{void 0!==t.initialValue&&void 0===(0,_utils2.getValueByName)(e,t.name)&&(e=(0,_utils2.setValueByName)(e,t.name,t.initialValue))}),g.current=e,h.current=e,m.current={},P({[FORM_ALL_FIELDS_KEY]:!0},e)},validateFields:B,getFieldError:e=>m.current[(0,_utils2.serializeNamePath)(e)]??[]}),[B,z,P]);(0,_react().useImperativeHandle)(t,()=>M,[M]);const j=(0,_react().useMemo)(()=>({getFieldValue:e=>(0,_utils2.getValueByName)(h.current,e),setFieldValue:C,registerField:L,getFieldError:e=>m.current[(0,_utils2.serializeNamePath)(e)],validateField:(e,t)=>R(e,t),getFieldsValue:()=>h.current,subscribe:e=>(y.current.add(e),()=>y.current.delete(e)),form:M,colon:a,labelWidth:n,showValidateMessage:u}),[C,L,R,M,a,n,u]);return _react().default.createElement(FormContext.Provider,{value:j},_react().default.createElement(_reactNative().View,_extends({style:s},_),o,(0,_validate.isText)(l)?(0,_utils.renderTextOrNode)(l,[]):l))},InternalFormRef=_react().default.forwardRef(InternalFormImpl),InternalForm=_react().default.memo(InternalFormRef),useWatch=(e,t)=>{const r=(0,_react().useContext)(FormContext),a=void 0===e?void 0:Array.isArray(e)?e.length&&(0,_validate.isText)(e[0])?[e]:e:[e],n=(0,_react().useCallback)(e=>{const n=e??r?.getFieldsValue?.()??t?.current?.getFieldsValue?.()??{};if(!a)return n;if(1===a.length)return(0,_utils2.getValueByName)(n,a[0]);const u={};for(const e of a)u[(0,_utils2.serializeNamePath)(e)]=(0,_utils2.getValueByName)(n,e);return u},[r,t,a]),[u,i]=(0,_react().useState)(()=>n());return(0,_react().useEffect)(()=>{if(r?.subscribe)return r.subscribe((e,t)=>{FORM_ALL_FIELDS_KEY in e?i(n(t)):a&&!a.some(t=>(0,_utils2.serializeNamePath)(t)in e)||i(n(t))})},[r,n,a]),(0,_react().useEffect)(()=>{i(n())},[n]),u};exports.useWatch=useWatch;const FormSubscribe=({to:e,children:t})=>{const r=(0,_react().useContext)(FormContext),[a,n]=(0,_react().useState)({});return(0,_react().useEffect)(()=>{if(r?.subscribe)return r.subscribe(t=>{(!e||FORM_ALL_FIELDS_KEY in t||Object.keys(t).some(t=>e.includes(t)))&&n(t)})},[r,e]),_react().default.createElement(_react().default.Fragment,null,t(a,r?.form||null))};exports.FormSubscribe=FormSubscribe;var _default=exports.default=InternalForm;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}function
|
|
1
|
+
"use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}function _ArrowLeft(){const e=_interopRequireDefault(require("react-native-system-icon/ArrowLeft"));return _ArrowLeft=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _hooks=require("../../hooks"),_useLocale=require("../config-provider/useLocale"),_useDirection=require("../config-provider/useDirection"),_hairline=require("../../utils/hairline"),_utils=require("../../utils"),_safeAreaView=require("../safe-area-view"),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var i,l,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?a:r){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((l=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(l.get||l.set)?i(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 NavBarBaseImpl=e=>{const{tokensOverride:t,title:r,description:a,children:i,leftText:l,rightText:o,leftIcon:n,rightIcon:s,leftArrow:c,fixed:u,placeholder:d,zIndex:f,border:_,safeAreaInsetTop:y,background:p,tintColor:v,titleStyle:b,descriptionStyle:h,sideStyle:g,onPressLeft:m,onClickLeft:x,onPressRight:w,onClickRight:N,style:k,...R}=e,L=(0,_useLocale.useLocale)(),P=(0,_useDirection.useDirection)(),q=(0,_tokens.useNavBarTokens)(t),B=c??q.defaults.leftArrow,E=u??q.defaults.fixed,O=d??q.defaults.placeholder,A=f??q.defaults.zIndex,V=_??q.defaults.border,I=y??E,S=p??q.colors.background,T=m??x,D=w??N,[z,W]=(0,_react().useState)(q.sizing.height),F=E&&O,M=(0,_react().useCallback)(e=>{if(!F)return;const t=e.nativeEvent.layout.height;W(e=>Math.abs(e-t)<.5?e:t)},[F]),j=v??q.colors.text,C=v??q.colors.icon,$=(0,_hooks.useAriaPress)({disabled:!T,onPress:T,extraProps:{accessibilityRole:"button",accessibilityLabel:(0,_utils.isText)(l)?`${l}`:L?.vanNavBar?.back??"Back"}}),H=(0,_hooks.useAriaPress)({disabled:!D,onPress:D,extraProps:{accessibilityRole:"button",accessibilityLabel:(0,_utils.isText)(o)?`${o}`:L?.vanNavBar?.action??"Actions"}}),X=e=>{const t="left"===e,r=t?l:o,a=t?n:s,i=t?$:H,c=t?T:D,u=t?!0===B?_react().default.createElement(_ArrowLeft().default,{size:18,fill:C,color:C,style:"rtl"===P?{transform:[{scaleX:-1}]}:void 0}):(0,_utils.isRenderable)(B)&&B:null;if(!(!!c||(0,_utils.isRenderable)(u)||(0,_utils.isRenderable)(r)||(0,_utils.isRenderable)(a)))return _react().default.createElement(_reactNative().View,{style:q.layout.sidePlaceholder});const d=_react().default.createElement(_react().default.Fragment,null,u,(0,_utils.isRenderable)(a)?a:null,(0,_utils.isRenderable)(r)?(0,_utils.isText)(r)?_react().default.createElement(_reactNative().Text,{numberOfLines:1,style:[q.layout.sideText,{color:C,fontFamily:q.typography.fontFamily}]},r):r:null),f=[q.layout.side,!t&&q.layout.rightAlign,g];return c?_react().default.createElement(_reactNative().Pressable,_extends({hitSlop:{top:8,right:8,bottom:8,left:8},testID:`rv-navbar-${e}`,style:f},i.interactionProps),d):_react().default.createElement(_reactNative().View,{testID:`rv-navbar-${e}`,style:f},d)},G=(0,_utils.isRenderable)(i)?i:_react().default.createElement(_reactNative().View,{style:q.layout.titleWrapper},(0,_utils.isRenderable)(r)&&(0,_utils.renderTextOrNode)(r,[q.layout.title,{color:j,fontFamily:q.typography.fontFamily,fontSize:q.typography.titleSize,fontWeight:q.typography.titleWeight},b],{numberOfLines:1}),(0,_utils.isRenderable)(a)&&(0,_utils.renderTextOrNode)(a,[q.layout.description,{color:v??q.colors.description,fontFamily:q.typography.fontFamily,fontSize:q.typography.descriptionSize},h],{numberOfLines:1})),J=_react().default.createElement(_reactNative().View,{style:[q.layout.bar,{backgroundColor:S}],onLayout:I?void 0:M},X("left"),_react().default.createElement(_reactNative().View,{style:q.layout.center},G),X("right"),V&&_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"bottom",color:q.colors.border,left:0,right:0})})),K=I?_react().default.createElement(_safeAreaView.SafeAreaView,{onLayout:M,style:{backgroundColor:S}},J):J;return _react().default.createElement(_react().default.Fragment,null,F&&_react().default.createElement(_reactNative().View,{testID:"rv-navbar-placeholder",style:{height:z}}),_react().default.createElement(_reactNative().View,_extends({},R,{accessibilityRole:"web"===_reactNative().Platform.OS?"navigation":void 0,style:[q.layout.container,E&&[q.layout.fixed,{zIndex:A}],k]}),K))},NavBarBase=_react().default.memo(NavBarBaseImpl);NavBarBase.displayName="NavBar";var _default=exports.default=NavBarBase;
|