@tecsinapse/react-native-kit 1.23.11 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/dist/cjs/components/atoms/Avatar/Avatar.js +1 -8
  2. package/dist/cjs/components/atoms/Avatar/Avatar.js.map +1 -1
  3. package/dist/cjs/components/atoms/Badge/Badge.js +8 -12
  4. package/dist/cjs/components/atoms/Badge/Badge.js.map +1 -1
  5. package/dist/cjs/components/atoms/BottomNavigator/BottomNavigator.js +14 -16
  6. package/dist/cjs/components/atoms/BottomNavigator/BottomNavigator.js.map +1 -1
  7. package/dist/cjs/components/atoms/BottomNavigator/Item.d.ts +3 -3
  8. package/dist/cjs/components/atoms/BottomNavigator/Item.js +4 -12
  9. package/dist/cjs/components/atoms/BottomNavigator/Item.js.map +1 -1
  10. package/dist/cjs/components/atoms/BottomNavigator/styled.js +4 -10
  11. package/dist/cjs/components/atoms/BottomNavigator/styled.js.map +1 -1
  12. package/dist/cjs/components/atoms/Button/Button.d.ts +1 -1
  13. package/dist/cjs/components/atoms/Button/Button.js +1 -10
  14. package/dist/cjs/components/atoms/Button/Button.js.map +1 -1
  15. package/dist/cjs/components/atoms/Button/States/Error.js +1 -8
  16. package/dist/cjs/components/atoms/Button/States/Error.js.map +1 -1
  17. package/dist/cjs/components/atoms/Button/States/Loading.js +1 -8
  18. package/dist/cjs/components/atoms/Button/States/Loading.js.map +1 -1
  19. package/dist/cjs/components/atoms/Button/States/Success.js +1 -8
  20. package/dist/cjs/components/atoms/Button/States/Success.js.map +1 -1
  21. package/dist/cjs/components/atoms/GroupButton/GroupButtonOption.d.ts +1 -0
  22. package/dist/cjs/components/atoms/GroupButton/GroupButtonOption.js +1 -8
  23. package/dist/cjs/components/atoms/GroupButton/GroupButtonOption.js.map +1 -1
  24. package/dist/cjs/components/atoms/Header/Header.d.ts +1 -1
  25. package/dist/cjs/components/atoms/Header/Header.js +14 -33
  26. package/dist/cjs/components/atoms/Header/Header.js.map +1 -1
  27. package/dist/cjs/components/atoms/Header/styled.js +3 -9
  28. package/dist/cjs/components/atoms/Header/styled.js.map +1 -1
  29. package/dist/cjs/components/atoms/Input/Input.js +37 -38
  30. package/dist/cjs/components/atoms/Input/Input.js.map +1 -1
  31. package/dist/cjs/components/atoms/Input/styled.js +2 -8
  32. package/dist/cjs/components/atoms/Input/styled.js.map +1 -1
  33. package/dist/cjs/components/atoms/InputMask/InputMask.js +37 -40
  34. package/dist/cjs/components/atoms/InputMask/InputMask.js.map +1 -1
  35. package/dist/cjs/components/atoms/InputMask/styled.js +3 -9
  36. package/dist/cjs/components/atoms/InputMask/styled.js.map +1 -1
  37. package/dist/cjs/components/atoms/Modal/ModalGroupManager.js +11 -13
  38. package/dist/cjs/components/atoms/Modal/ModalGroupManager.js.map +1 -1
  39. package/dist/cjs/components/atoms/Modal/ModalLifecycleHandler.js +47 -7
  40. package/dist/cjs/components/atoms/Modal/ModalLifecycleHandler.js.map +1 -1
  41. package/dist/cjs/components/atoms/Modal/ui/BaseModalView.js +20 -21
  42. package/dist/cjs/components/atoms/Modal/ui/BaseModalView.js.map +1 -1
  43. package/dist/cjs/components/atoms/Modal/ui/styled.js +3 -9
  44. package/dist/cjs/components/atoms/Modal/ui/styled.js.map +1 -1
  45. package/dist/cjs/components/atoms/Modal/ui/types.d.ts +2 -1
  46. package/dist/cjs/components/atoms/Modal/useLazyModalManager.js +0 -2
  47. package/dist/cjs/components/atoms/Modal/useLazyModalManager.js.map +1 -1
  48. package/dist/cjs/components/atoms/Modal/useModalManager.js +0 -2
  49. package/dist/cjs/components/atoms/Modal/useModalManager.js.map +1 -1
  50. package/dist/cjs/components/atoms/Modal/useModalRemoteControl.js +0 -2
  51. package/dist/cjs/components/atoms/Modal/useModalRemoteControl.js.map +1 -1
  52. package/dist/cjs/components/atoms/Skeleton/Pulse.d.ts +1 -0
  53. package/dist/cjs/components/atoms/Skeleton/Pulse.js +15 -18
  54. package/dist/cjs/components/atoms/Skeleton/Pulse.js.map +1 -1
  55. package/dist/cjs/components/atoms/Skeleton/Skeleton.js +25 -24
  56. package/dist/cjs/components/atoms/Skeleton/Skeleton.js.map +1 -1
  57. package/dist/cjs/components/atoms/Skeleton/Wave.d.ts +1 -0
  58. package/dist/cjs/components/atoms/Skeleton/Wave.js +47 -30
  59. package/dist/cjs/components/atoms/Skeleton/Wave.js.map +1 -1
  60. package/dist/cjs/components/atoms/Skeleton/animation.js +0 -2
  61. package/dist/cjs/components/atoms/Skeleton/animation.js.map +1 -1
  62. package/dist/cjs/components/atoms/Skeleton/styled.js +1 -7
  63. package/dist/cjs/components/atoms/Skeleton/styled.js.map +1 -1
  64. package/dist/cjs/components/atoms/Skeleton/types.d.ts +1 -1
  65. package/dist/cjs/components/atoms/SnappingSlider/SnappingSlider.js +30 -23
  66. package/dist/cjs/components/atoms/SnappingSlider/SnappingSlider.js.map +1 -1
  67. package/dist/cjs/components/atoms/Tag/Tag.js +17 -14
  68. package/dist/cjs/components/atoms/Tag/Tag.js.map +1 -1
  69. package/dist/cjs/components/atoms/Text/Text.d.ts +1 -1
  70. package/dist/cjs/components/atoms/Text/Text.js +1 -7
  71. package/dist/cjs/components/atoms/Text/Text.js.map +1 -1
  72. package/dist/cjs/components/atoms/Text/styled.js +1 -7
  73. package/dist/cjs/components/atoms/Text/styled.js.map +1 -1
  74. package/dist/cjs/components/atoms/TextArea/TextArea.d.ts +1 -1
  75. package/dist/cjs/components/atoms/TextArea/TextArea.js +42 -39
  76. package/dist/cjs/components/atoms/TextArea/TextArea.js.map +1 -1
  77. package/dist/cjs/components/atoms/TextArea/styled.js +1 -7
  78. package/dist/cjs/components/atoms/TextArea/styled.js.map +1 -1
  79. package/dist/cjs/components/molecules/Calendar/Calendar.d.ts +1 -0
  80. package/dist/cjs/components/molecules/Calendar/Calendar.js +8 -11
  81. package/dist/cjs/components/molecules/Calendar/Calendar.js.map +1 -1
  82. package/dist/cjs/components/molecules/DatePicker/DatePicker.d.ts +2 -1
  83. package/dist/cjs/components/molecules/DatePicker/DatePicker.js +14 -22
  84. package/dist/cjs/components/molecules/DatePicker/DatePicker.js.map +1 -1
  85. package/dist/cjs/components/molecules/DatePicker/styled.js +1 -7
  86. package/dist/cjs/components/molecules/DatePicker/styled.js.map +1 -1
  87. package/dist/cjs/components/molecules/DateTimePicker/DateTimePicker.d.ts +1 -1
  88. package/dist/cjs/components/molecules/DateTimePicker/DateTimePicker.js +13 -20
  89. package/dist/cjs/components/molecules/DateTimePicker/DateTimePicker.js.map +1 -1
  90. package/dist/cjs/components/molecules/DateTimeSelector/DateTimeSelector.js +8 -11
  91. package/dist/cjs/components/molecules/DateTimeSelector/DateTimeSelector.js.map +1 -1
  92. package/dist/cjs/components/molecules/Grid/Grid.d.ts +2 -1
  93. package/dist/cjs/components/molecules/Grid/Grid.js +38 -30
  94. package/dist/cjs/components/molecules/Grid/Grid.js.map +1 -1
  95. package/dist/cjs/components/molecules/Grid/Item/Item.d.ts +3 -2
  96. package/dist/cjs/components/molecules/Grid/Item/Item.js +3 -10
  97. package/dist/cjs/components/molecules/Grid/Item/Item.js.map +1 -1
  98. package/dist/cjs/components/molecules/IconTextButton/IconTextButton.d.ts +1 -1
  99. package/dist/cjs/components/molecules/IconTextButton/IconTextButton.js +25 -24
  100. package/dist/cjs/components/molecules/IconTextButton/IconTextButton.js.map +1 -1
  101. package/dist/cjs/components/molecules/IconTextButton/TextComponent.js +13 -13
  102. package/dist/cjs/components/molecules/IconTextButton/TextComponent.js.map +1 -1
  103. package/dist/cjs/components/molecules/IconTextButton/styled.js +2 -8
  104. package/dist/cjs/components/molecules/IconTextButton/styled.js.map +1 -1
  105. package/dist/cjs/components/molecules/InputPassword/InputPassword.d.ts +1 -1
  106. package/dist/cjs/components/molecules/InputPassword/InputPassword.js +17 -15
  107. package/dist/cjs/components/molecules/InputPassword/InputPassword.js.map +1 -1
  108. package/dist/cjs/components/molecules/LabeledSwitch/LabelComponent.js +11 -13
  109. package/dist/cjs/components/molecules/LabeledSwitch/LabelComponent.js.map +1 -1
  110. package/dist/cjs/components/molecules/LabeledSwitch/LabeledSwitch.d.ts +1 -1
  111. package/dist/cjs/components/molecules/LabeledSwitch/LabeledSwitch.js +31 -26
  112. package/dist/cjs/components/molecules/LabeledSwitch/LabeledSwitch.js.map +1 -1
  113. package/dist/cjs/components/molecules/LabeledSwitch/styled.js +2 -8
  114. package/dist/cjs/components/molecules/LabeledSwitch/styled.js.map +1 -1
  115. package/dist/cjs/components/molecules/Select/Modal.d.ts +1 -0
  116. package/dist/cjs/components/molecules/Select/Modal.js +93 -78
  117. package/dist/cjs/components/molecules/Select/Modal.js.map +1 -1
  118. package/dist/cjs/components/molecules/Select/Select.d.ts +1 -0
  119. package/dist/cjs/components/molecules/Select/Select.js +56 -49
  120. package/dist/cjs/components/molecules/Select/Select.js.map +1 -1
  121. package/dist/cjs/components/molecules/Select/styled.js +14 -20
  122. package/dist/cjs/components/molecules/Select/styled.js.map +1 -1
  123. package/dist/cjs/components/molecules/Snackbar/Snackbar.js +1 -11
  124. package/dist/cjs/components/molecules/Snackbar/Snackbar.js.map +1 -1
  125. package/dist/cjs/components/molecules/Snackbar/styled.js +1 -7
  126. package/dist/cjs/components/molecules/Snackbar/styled.js.map +1 -1
  127. package/dist/cjs/index.js +0 -2
  128. package/dist/cjs/index.js.map +1 -1
  129. package/dist/cjs/utils/date.js +3 -6
  130. package/dist/cjs/utils/date.js.map +1 -1
  131. package/dist/esm/components/atoms/Avatar/Avatar.js +1 -4
  132. package/dist/esm/components/atoms/Avatar/Avatar.js.map +1 -1
  133. package/dist/esm/components/atoms/Badge/Badge.js +8 -8
  134. package/dist/esm/components/atoms/Badge/Badge.js.map +1 -1
  135. package/dist/esm/components/atoms/BottomNavigator/BottomNavigator.js +11 -12
  136. package/dist/esm/components/atoms/BottomNavigator/BottomNavigator.js.map +1 -1
  137. package/dist/esm/components/atoms/BottomNavigator/Item.d.ts +3 -3
  138. package/dist/esm/components/atoms/BottomNavigator/Item.js +1 -8
  139. package/dist/esm/components/atoms/BottomNavigator/Item.js.map +1 -1
  140. package/dist/esm/components/atoms/BottomNavigator/styled.js.map +1 -1
  141. package/dist/esm/components/atoms/Button/Button.d.ts +1 -1
  142. package/dist/esm/components/atoms/Button/Button.js +1 -4
  143. package/dist/esm/components/atoms/Button/Button.js.map +1 -1
  144. package/dist/esm/components/atoms/Button/States/Error.js +1 -4
  145. package/dist/esm/components/atoms/Button/States/Error.js.map +1 -1
  146. package/dist/esm/components/atoms/Button/States/Loading.js +1 -4
  147. package/dist/esm/components/atoms/Button/States/Loading.js.map +1 -1
  148. package/dist/esm/components/atoms/Button/States/Success.js +1 -4
  149. package/dist/esm/components/atoms/Button/States/Success.js.map +1 -1
  150. package/dist/esm/components/atoms/GroupButton/GroupButtonOption.d.ts +1 -0
  151. package/dist/esm/components/atoms/GroupButton/GroupButtonOption.js +1 -4
  152. package/dist/esm/components/atoms/GroupButton/GroupButtonOption.js.map +1 -1
  153. package/dist/esm/components/atoms/Header/Header.d.ts +1 -1
  154. package/dist/esm/components/atoms/Header/Header.js +11 -29
  155. package/dist/esm/components/atoms/Header/Header.js.map +1 -1
  156. package/dist/esm/components/atoms/Input/Input.js +36 -33
  157. package/dist/esm/components/atoms/Input/Input.js.map +1 -1
  158. package/dist/esm/components/atoms/InputMask/InputMask.js +36 -35
  159. package/dist/esm/components/atoms/InputMask/InputMask.js.map +1 -1
  160. package/dist/esm/components/atoms/Modal/ModalGroupManager.js +11 -7
  161. package/dist/esm/components/atoms/Modal/ModalGroupManager.js.map +1 -1
  162. package/dist/esm/components/atoms/Modal/ModalLifecycleHandler.js +46 -0
  163. package/dist/esm/components/atoms/Modal/ModalLifecycleHandler.js.map +1 -1
  164. package/dist/esm/components/atoms/Modal/ui/BaseModalView.js +20 -15
  165. package/dist/esm/components/atoms/Modal/ui/BaseModalView.js.map +1 -1
  166. package/dist/esm/components/atoms/Modal/ui/types.d.ts +2 -1
  167. package/dist/esm/components/atoms/Skeleton/Pulse.d.ts +1 -0
  168. package/dist/esm/components/atoms/Skeleton/Pulse.js +15 -12
  169. package/dist/esm/components/atoms/Skeleton/Pulse.js.map +1 -1
  170. package/dist/esm/components/atoms/Skeleton/Skeleton.js +25 -20
  171. package/dist/esm/components/atoms/Skeleton/Skeleton.js.map +1 -1
  172. package/dist/esm/components/atoms/Skeleton/Wave.d.ts +1 -0
  173. package/dist/esm/components/atoms/Skeleton/Wave.js +30 -25
  174. package/dist/esm/components/atoms/Skeleton/Wave.js.map +1 -1
  175. package/dist/esm/components/atoms/Skeleton/styled.js.map +1 -1
  176. package/dist/esm/components/atoms/Skeleton/types.d.ts +1 -1
  177. package/dist/esm/components/atoms/SnappingSlider/SnappingSlider.js +27 -19
  178. package/dist/esm/components/atoms/SnappingSlider/SnappingSlider.js.map +1 -1
  179. package/dist/esm/components/atoms/Tag/Tag.js +17 -10
  180. package/dist/esm/components/atoms/Tag/Tag.js.map +1 -1
  181. package/dist/esm/components/atoms/Text/Text.d.ts +1 -1
  182. package/dist/esm/components/atoms/Text/Text.js +1 -3
  183. package/dist/esm/components/atoms/Text/Text.js.map +1 -1
  184. package/dist/esm/components/atoms/Text/styled.js.map +1 -1
  185. package/dist/esm/components/atoms/TextArea/TextArea.d.ts +1 -1
  186. package/dist/esm/components/atoms/TextArea/TextArea.js +42 -35
  187. package/dist/esm/components/atoms/TextArea/TextArea.js.map +1 -1
  188. package/dist/esm/components/molecules/Calendar/Calendar.d.ts +1 -0
  189. package/dist/esm/components/molecules/Calendar/Calendar.js +8 -5
  190. package/dist/esm/components/molecules/Calendar/Calendar.js.map +1 -1
  191. package/dist/esm/components/molecules/DatePicker/DatePicker.d.ts +2 -1
  192. package/dist/esm/components/molecules/DatePicker/DatePicker.js +14 -16
  193. package/dist/esm/components/molecules/DatePicker/DatePicker.js.map +1 -1
  194. package/dist/esm/components/molecules/DateTimePicker/DateTimePicker.d.ts +1 -1
  195. package/dist/esm/components/molecules/DateTimePicker/DateTimePicker.js +13 -14
  196. package/dist/esm/components/molecules/DateTimePicker/DateTimePicker.js.map +1 -1
  197. package/dist/esm/components/molecules/DateTimeSelector/DateTimeSelector.js +8 -5
  198. package/dist/esm/components/molecules/DateTimeSelector/DateTimeSelector.js.map +1 -1
  199. package/dist/esm/components/molecules/Grid/Grid.d.ts +2 -1
  200. package/dist/esm/components/molecules/Grid/Grid.js +38 -26
  201. package/dist/esm/components/molecules/Grid/Grid.js.map +1 -1
  202. package/dist/esm/components/molecules/Grid/Item/Item.d.ts +3 -2
  203. package/dist/esm/components/molecules/Grid/Item/Item.js +1 -4
  204. package/dist/esm/components/molecules/Grid/Item/Item.js.map +1 -1
  205. package/dist/esm/components/molecules/IconTextButton/IconTextButton.d.ts +1 -1
  206. package/dist/esm/components/molecules/IconTextButton/IconTextButton.js +25 -20
  207. package/dist/esm/components/molecules/IconTextButton/IconTextButton.js.map +1 -1
  208. package/dist/esm/components/molecules/IconTextButton/TextComponent.js +12 -8
  209. package/dist/esm/components/molecules/IconTextButton/TextComponent.js.map +1 -1
  210. package/dist/esm/components/molecules/InputPassword/InputPassword.d.ts +1 -1
  211. package/dist/esm/components/molecules/InputPassword/InputPassword.js +16 -10
  212. package/dist/esm/components/molecules/InputPassword/InputPassword.js.map +1 -1
  213. package/dist/esm/components/molecules/LabeledSwitch/LabelComponent.js +10 -8
  214. package/dist/esm/components/molecules/LabeledSwitch/LabelComponent.js.map +1 -1
  215. package/dist/esm/components/molecules/LabeledSwitch/LabeledSwitch.d.ts +1 -1
  216. package/dist/esm/components/molecules/LabeledSwitch/LabeledSwitch.js +31 -22
  217. package/dist/esm/components/molecules/LabeledSwitch/LabeledSwitch.js.map +1 -1
  218. package/dist/esm/components/molecules/Select/Modal.d.ts +1 -0
  219. package/dist/esm/components/molecules/Select/Modal.js +90 -72
  220. package/dist/esm/components/molecules/Select/Modal.js.map +1 -1
  221. package/dist/esm/components/molecules/Select/Select.d.ts +1 -0
  222. package/dist/esm/components/molecules/Select/Select.js +53 -45
  223. package/dist/esm/components/molecules/Select/Select.js.map +1 -1
  224. package/dist/esm/components/molecules/Snackbar/Snackbar.js +1 -7
  225. package/dist/esm/components/molecules/Snackbar/Snackbar.js.map +1 -1
  226. package/dist/esm/utils/date.js.map +1 -1
  227. package/package.json +10 -9
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { IBaseModal } from '../../atoms/Modal';
2
3
  import { SelectNativeProps } from './Select';
3
4
  interface LoadingProps {
@@ -1,7 +1,5 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var reactCore = require('@tecsinapse/react-core');
6
4
  var React = require('react');
7
5
  var reactNative = require('react-native');
@@ -14,8 +12,7 @@ var BaseModalView = require('../../atoms/Modal/ui/BaseModalView.js');
14
12
  require('uuid');
15
13
  var styled = require('./styled.js');
16
14
 
17
- function _interopNamespace(e) {
18
- if (e && e.__esModule) return e;
15
+ function _interopNamespaceDefault(e) {
19
16
  var n = Object.create(null);
20
17
  if (e) {
21
18
  Object.keys(e).forEach(function (k) {
@@ -28,11 +25,11 @@ function _interopNamespace(e) {
28
25
  }
29
26
  });
30
27
  }
31
- n["default"] = e;
28
+ n.default = e;
32
29
  return Object.freeze(n);
33
30
  }
34
31
 
35
- var React__namespace = /*#__PURE__*/_interopNamespace(React);
32
+ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
36
33
 
37
34
  const Component = ({
38
35
  options,
@@ -113,67 +110,73 @@ const Component = ({
113
110
  close?.();
114
111
  }, [selectedValues]);
115
112
  const optionBuilder = React__namespace.useCallback(
116
- ({ item }) => /* @__PURE__ */ React__namespace.createElement(MemoizedOption, {
117
- item,
118
- type,
119
- handlePressItem,
120
- labelExtractor
121
- }),
113
+ ({ item }) => /* @__PURE__ */ React__namespace.createElement(
114
+ MemoizedOption,
115
+ {
116
+ item,
117
+ type,
118
+ handlePressItem,
119
+ labelExtractor
120
+ }
121
+ ),
122
122
  []
123
123
  );
124
124
  const anyChecked = data.filter((item) => item._checked).length;
125
125
  const dataLengthChanged = data.length;
126
126
  const memoizedFlatlist = React__namespace.useMemo(
127
- () => /* @__PURE__ */ React__namespace.createElement(reactNative.FlatList, {
128
- data,
129
- keyExtractor,
130
- fadingEdgeLength: 200,
131
- renderItem: optionBuilder
132
- }),
127
+ () => /* @__PURE__ */ React__namespace.createElement(
128
+ reactNative.FlatList,
129
+ {
130
+ data,
131
+ keyExtractor,
132
+ fadingEdgeLength: 200,
133
+ renderItem: optionBuilder
134
+ }
135
+ ),
133
136
  [selectedValues, anyChecked, dataLengthChanged]
134
137
  );
135
- const titleTextModal = selectModalTitle ? /* @__PURE__ */ React__namespace.createElement(styled.TextTitleModal, {
136
- typography: "h4",
137
- fontWeight: "bold",
138
- numberOfLines: 3,
139
- style: { maxWidth: reactCore.RFValue(250) }
140
- }, selectModalTitle) : null;
138
+ const titleTextModal = selectModalTitle ? /* @__PURE__ */ React__namespace.createElement(
139
+ styled.TextTitleModal,
140
+ {
141
+ typography: "h4",
142
+ fontWeight: "bold",
143
+ numberOfLines: 3,
144
+ style: { maxWidth: reactCore.RFValue(250) }
145
+ },
146
+ selectModalTitle
147
+ ) : null;
141
148
  const headerContent = selectModalTitleComponent ? selectModalTitleComponent : titleTextModal;
142
- return /* @__PURE__ */ React__namespace.createElement(BaseModalView.ModalView, {
143
- ...others,
144
- BoxComponent: ModalComponent,
145
- showCloseBar: false
146
- }, /* @__PURE__ */ React__namespace.createElement(Header, {
147
- rightButton: {
148
- onPress: close,
149
- icon: {
150
- name: "close",
151
- type: "material-community",
152
- fontColor: "light"
149
+ return /* @__PURE__ */ React__namespace.createElement(BaseModalView.ModalView, { ...others, BoxComponent: ModalComponent, showCloseBar: false }, /* @__PURE__ */ React__namespace.createElement(
150
+ Header,
151
+ {
152
+ rightButton: {
153
+ onPress: close,
154
+ icon: {
155
+ name: "close",
156
+ type: "material-community",
157
+ fontColor: "light"
158
+ }
153
159
  }
160
+ },
161
+ headerContent
162
+ ), !hideSearchBar && /* @__PURE__ */ React__namespace.createElement(styled.SearchBarContainer, null, /* @__PURE__ */ React__namespace.createElement(
163
+ Input,
164
+ {
165
+ placeholder: searchBarPlaceholder,
166
+ value: searchArg,
167
+ onChange: setSearchArg,
168
+ leftComponent: /* @__PURE__ */ React__namespace.createElement(styled.SelectIcon, { name: "search", type: "ionicon", size: "centi" })
154
169
  }
155
- }, headerContent), !hideSearchBar && /* @__PURE__ */ React__namespace.createElement(styled.SearchBarContainer, null, /* @__PURE__ */ React__namespace.createElement(Input, {
156
- placeholder: searchBarPlaceholder,
157
- value: searchArg,
158
- onChange: setSearchArg,
159
- leftComponent: /* @__PURE__ */ React__namespace.createElement(styled.SelectIcon, {
160
- name: "search",
161
- type: "ionicon",
162
- size: "centi"
163
- })
164
- })), loading && /* @__PURE__ */ React__namespace.createElement(styled.FetchIndicator, {
165
- animating: true,
166
- color: "grey",
167
- size: "large"
168
- }), memoizedFlatlist, !_closeOnPick && /* @__PURE__ */ React__namespace.createElement(styled.ModalFooter, null, /* @__PURE__ */ React__namespace.createElement(Button.Button, {
169
- variant: "filled",
170
- color: "primary",
171
- onPress: handleConfirm,
172
- disabled: loading
173
- }, /* @__PURE__ */ React__namespace.createElement(Text, {
174
- fontColor: "light",
175
- fontWeight: "bold"
176
- }, confirmButtonText))));
170
+ )), loading && /* @__PURE__ */ React__namespace.createElement(styled.FetchIndicator, { animating: true, color: "grey", size: "large" }), memoizedFlatlist, !_closeOnPick && /* @__PURE__ */ React__namespace.createElement(styled.ModalFooter, null, /* @__PURE__ */ React__namespace.createElement(
171
+ Button.Button,
172
+ {
173
+ variant: "filled",
174
+ color: "primary",
175
+ onPress: handleConfirm,
176
+ disabled: loading
177
+ },
178
+ /* @__PURE__ */ React__namespace.createElement(Text, { fontColor: "light", fontWeight: "bold" }, confirmButtonText)
179
+ )));
177
180
  };
178
181
  const MemoizedOption = ({
179
182
  handlePressItem,
@@ -183,27 +186,39 @@ const MemoizedOption = ({
183
186
  }) => {
184
187
  return React__namespace.useMemo(() => {
185
188
  const label = labelExtractor(item);
186
- return /* @__PURE__ */ React__namespace.createElement(styled.ListItem, {
187
- onPress: () => handlePressItem(item)
188
- }, /* @__PURE__ */ React__namespace.createElement(reactNative.View, {
189
- pointerEvents: "none"
190
- }, type === "multi" ? /* @__PURE__ */ React__namespace.createElement(reactCore.Checkbox, {
191
- color: "primary",
192
- labelPosition: "right",
193
- checked: item._checked
194
- }, /* @__PURE__ */ React__namespace.createElement(styled.StyledTextItemSelect, {
195
- fontWeight: item._checked ? "bold" : "regular",
196
- ellipsizeMode: "tail",
197
- numberOfLines: 1
198
- }, label)) : /* @__PURE__ */ React__namespace.createElement(reactCore.RadioButton, {
199
- color: "primary",
200
- labelPosition: "right",
201
- checked: item._checked
202
- }, /* @__PURE__ */ React__namespace.createElement(styled.StyledTextItemSelect, {
203
- fontWeight: item._checked ? "bold" : "regular",
204
- ellipsizeMode: "tail",
205
- numberOfLines: 1
206
- }, label))));
189
+ return /* @__PURE__ */ React__namespace.createElement(styled.ListItem, { onPress: () => handlePressItem(item) }, /* @__PURE__ */ React__namespace.createElement(reactNative.View, { pointerEvents: "none" }, type === "multi" ? /* @__PURE__ */ React__namespace.createElement(
190
+ reactCore.Checkbox,
191
+ {
192
+ color: "primary",
193
+ labelPosition: "right",
194
+ checked: item._checked
195
+ },
196
+ /* @__PURE__ */ React__namespace.createElement(
197
+ styled.StyledTextItemSelect,
198
+ {
199
+ fontWeight: item._checked ? "bold" : "regular",
200
+ ellipsizeMode: "tail",
201
+ numberOfLines: 1
202
+ },
203
+ label
204
+ )
205
+ ) : /* @__PURE__ */ React__namespace.createElement(
206
+ reactCore.RadioButton,
207
+ {
208
+ color: "primary",
209
+ labelPosition: "right",
210
+ checked: item._checked
211
+ },
212
+ /* @__PURE__ */ React__namespace.createElement(
213
+ styled.StyledTextItemSelect,
214
+ {
215
+ fontWeight: item._checked ? "bold" : "regular",
216
+ ellipsizeMode: "tail",
217
+ numberOfLines: 1
218
+ },
219
+ label
220
+ )
221
+ )));
207
222
  }, [item._checked]);
208
223
  };
209
224
  const Modal = Component;
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","sources":["../../../../../src/components/molecules/Select/Modal.tsx"],"sourcesContent":["import {\n Checkbox,\n getStatusBarHeight,\n RadioButton,\n RFValue,\n useDebouncedState,\n} from '@tecsinapse/react-core';\nimport * as React from 'react';\nimport { FlatList, ListRenderItemInfo, View } from 'react-native';\nimport { Button } from '../../atoms/Button';\nimport { Header } from '../../atoms/Header';\nimport { Input } from '../../atoms/Input';\nimport { IBaseModal, ModalView } from '../../atoms/Modal';\nimport { Text } from '../../atoms/Text';\nimport { SelectNativeProps } from './Select';\nimport {\n FetchIndicator,\n getStyledModal,\n ListItem,\n ModalFooter,\n SearchBarContainer,\n SelectIcon,\n TextTitleModal,\n StyledTextItemSelect,\n} from './styled';\n\ninterface LoadingProps {\n loading?: boolean;\n}\n\nconst Component = <Data, Type extends 'single' | 'multi'>({\n options,\n keyExtractor,\n labelExtractor,\n hideSearchBar,\n searchBarPlaceholder,\n focused,\n type,\n value,\n onSelect,\n onSearch,\n selectModalTitle,\n selectModalTitleComponent,\n confirmButtonText,\n loading,\n close,\n closeOnPick,\n ...others\n}: SelectNativeProps<Data, Type> & LoadingProps & IBaseModal): JSX.Element => {\n const [selectedValues, setSelectedValues] = React.useState<Data[]>([]);\n const [searchArg, setSearchArg] = useDebouncedState<string>('', onSearch);\n const ModalComponent = React.useMemo(\n () => getStyledModal(getStatusBarHeight(true)),\n []\n );\n const _closeOnPick = closeOnPick && type === 'single';\n\n // Resets the temporary state to the initial state whenever the\n // modal is reopened or the value changes\n React.useEffect(() => {\n setSelectedValues(\n (value ? (type === 'multi' ? value : [value]) : []) as Data[]\n );\n }, [value, focused, setSelectedValues]);\n\n const getData = React.useCallback(\n (options: Data[]) => {\n return options?.map((option, index) => ({\n ...option,\n _checked:\n type === 'multi'\n ? !!selectedValues.find(\n value =>\n keyExtractor(option, index) == keyExtractor(value, index)\n )\n : keyExtractor((selectedValues[0] || {}) as Data, index) ==\n keyExtractor(option, index),\n }));\n },\n [keyExtractor, selectedValues, type]\n );\n\n const data = React.useMemo(\n () => (typeof options !== 'function' ? getData(options) : []),\n [options, getData]\n );\n\n const handlePressItem = React.useCallback(\n (option: Data) => {\n setSelectedValues(selectedValues => {\n if (type === 'multi') {\n const newArr: Data[] = [];\n let found = false;\n for (const value of selectedValues) {\n if (keyExtractor(value) != keyExtractor(option)) newArr.push(value);\n else found = true;\n }\n if (!found) newArr.push(option);\n return newArr;\n }\n return keyExtractor((selectedValues[0] || {}) as Data) ===\n keyExtractor(option)\n ? []\n : [option];\n });\n },\n [selectedValues, setSelectedValues, keyExtractor, type]\n );\n\n React.useEffect(() => {\n if (_closeOnPick && selectedValues[0] && selectedValues[0] !== value) {\n handleConfirm();\n }\n }, [selectedValues[0], value, closeOnPick]);\n\n const handleConfirm = React.useCallback(() => {\n // TS Workaround since TS won't infer the ternary operator's result type correctly\n type OnSelectArg = Parameters<typeof onSelect>[0];\n onSelect(\n (type === 'single' ? selectedValues[0] : selectedValues) as OnSelectArg\n );\n close?.();\n }, [selectedValues]);\n\n const optionBuilder = React.useCallback(\n ({ item }: ListRenderItemInfo<Data & { _checked: boolean }>) => (\n <MemoizedOption\n item={item}\n type={type}\n handlePressItem={handlePressItem}\n labelExtractor={labelExtractor}\n />\n ),\n []\n );\n\n const anyChecked = data.filter(item => item._checked).length;\n const dataLengthChanged = data.length;\n\n const memoizedFlatlist = React.useMemo(\n () => (\n <FlatList\n data={data}\n keyExtractor={keyExtractor}\n fadingEdgeLength={200}\n renderItem={optionBuilder}\n />\n ),\n [selectedValues, anyChecked, dataLengthChanged]\n );\n\n const titleTextModal = selectModalTitle ? (\n <TextTitleModal\n typography=\"h4\"\n fontWeight=\"bold\"\n numberOfLines={3}\n style={{ maxWidth: RFValue(250) }}\n >\n {selectModalTitle}\n </TextTitleModal>\n ) : null;\n\n const headerContent = selectModalTitleComponent\n ? selectModalTitleComponent\n : titleTextModal;\n\n return (\n <ModalView {...others} BoxComponent={ModalComponent} showCloseBar={false}>\n <Header\n rightButton={{\n onPress: close,\n icon: {\n name: 'close',\n type: 'material-community',\n fontColor: 'light',\n },\n }}\n >\n {headerContent}\n </Header>\n\n {!hideSearchBar && (\n <SearchBarContainer>\n <Input\n placeholder={searchBarPlaceholder}\n value={searchArg}\n onChange={setSearchArg}\n leftComponent={\n <SelectIcon name=\"search\" type=\"ionicon\" size=\"centi\" />\n }\n />\n </SearchBarContainer>\n )}\n\n {loading && (\n <FetchIndicator animating={true} color={'grey'} size={'large'} />\n )}\n\n {memoizedFlatlist}\n\n {!_closeOnPick && (\n <ModalFooter>\n <Button\n variant={'filled'}\n color={'primary'}\n onPress={handleConfirm}\n disabled={loading}\n >\n <Text fontColor={'light'} fontWeight=\"bold\">\n {confirmButtonText}\n </Text>\n </Button>\n </ModalFooter>\n )}\n </ModalView>\n );\n};\n\ninterface IOption<T> {\n item: T & { _checked: boolean };\n type: 'single' | 'multi';\n labelExtractor: (option: T) => string;\n handlePressItem: (option: T) => void;\n}\n\nconst MemoizedOption = <T,>({\n handlePressItem,\n labelExtractor,\n item,\n type,\n}: IOption<T>): JSX.Element => {\n return React.useMemo(() => {\n const label = labelExtractor(item);\n return (\n <ListItem onPress={() => handlePressItem(item)}>\n <View pointerEvents={'none'}>\n {type === 'multi' ? (\n <Checkbox\n color={'primary'}\n labelPosition={'right'}\n checked={item._checked}\n >\n <StyledTextItemSelect\n fontWeight={item._checked ? 'bold' : 'regular'}\n ellipsizeMode={'tail'}\n numberOfLines={1}\n >\n {label}\n </StyledTextItemSelect>\n </Checkbox>\n ) : (\n <RadioButton\n color={'primary'}\n labelPosition={'right'}\n checked={item._checked}\n >\n <StyledTextItemSelect\n fontWeight={item._checked ? 'bold' : 'regular'}\n ellipsizeMode={'tail'}\n numberOfLines={1}\n >\n {label}\n </StyledTextItemSelect>\n </RadioButton>\n )}\n </View>\n </ListItem>\n );\n }, [item._checked]);\n};\n\nexport const Modal = Component;\n"],"names":["React","useDebouncedState","getStyledModal","getStatusBarHeight","options","value","selectedValues","FlatList","TextTitleModal","RFValue","ModalView","SearchBarContainer","SelectIcon","FetchIndicator","ModalFooter","Button","ListItem","View","Checkbox","StyledTextItemSelect","RadioButton"],"mappings":"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"}
1
+ {"version":3,"file":"Modal.js","sources":["../../../../../src/components/molecules/Select/Modal.tsx"],"sourcesContent":["import {\n Checkbox,\n getStatusBarHeight,\n RadioButton,\n RFValue,\n useDebouncedState,\n} from '@tecsinapse/react-core';\nimport * as React from 'react';\nimport { FlatList, ListRenderItemInfo, View } from 'react-native';\nimport { Button } from '../../atoms/Button';\nimport { Header } from '../../atoms/Header';\nimport { Input } from '../../atoms/Input';\nimport { IBaseModal, ModalView } from '../../atoms/Modal';\nimport { Text } from '../../atoms/Text';\nimport { SelectNativeProps } from './Select';\nimport {\n FetchIndicator,\n getStyledModal,\n ListItem,\n ModalFooter,\n SearchBarContainer,\n SelectIcon,\n TextTitleModal,\n StyledTextItemSelect,\n} from './styled';\n\ninterface LoadingProps {\n loading?: boolean;\n}\n\nconst Component = <Data, Type extends 'single' | 'multi'>({\n options,\n keyExtractor,\n labelExtractor,\n hideSearchBar,\n searchBarPlaceholder,\n focused,\n type,\n value,\n onSelect,\n onSearch,\n selectModalTitle,\n selectModalTitleComponent,\n confirmButtonText,\n loading,\n close,\n closeOnPick,\n ...others\n}: SelectNativeProps<Data, Type> & LoadingProps & IBaseModal): JSX.Element => {\n const [selectedValues, setSelectedValues] = React.useState<Data[]>([]);\n const [searchArg, setSearchArg] = useDebouncedState<string>('', onSearch);\n const ModalComponent = React.useMemo(\n () => getStyledModal(getStatusBarHeight(true)),\n []\n );\n const _closeOnPick = closeOnPick && type === 'single';\n\n // Resets the temporary state to the initial state whenever the\n // modal is reopened or the value changes\n React.useEffect(() => {\n setSelectedValues(\n (value ? (type === 'multi' ? value : [value]) : []) as Data[]\n );\n }, [value, focused, setSelectedValues]);\n\n const getData = React.useCallback(\n (options: Data[]) => {\n return options?.map((option, index) => ({\n ...option,\n _checked:\n type === 'multi'\n ? !!selectedValues.find(\n value =>\n keyExtractor(option, index) == keyExtractor(value, index)\n )\n : keyExtractor((selectedValues[0] || {}) as Data, index) ==\n keyExtractor(option, index),\n }));\n },\n [keyExtractor, selectedValues, type]\n );\n\n const data = React.useMemo(\n () => (typeof options !== 'function' ? getData(options) : []),\n [options, getData]\n );\n\n const handlePressItem = React.useCallback(\n (option: Data) => {\n setSelectedValues(selectedValues => {\n if (type === 'multi') {\n const newArr: Data[] = [];\n let found = false;\n for (const value of selectedValues) {\n if (keyExtractor(value) != keyExtractor(option)) newArr.push(value);\n else found = true;\n }\n if (!found) newArr.push(option);\n return newArr;\n }\n return keyExtractor((selectedValues[0] || {}) as Data) ===\n keyExtractor(option)\n ? []\n : [option];\n });\n },\n [selectedValues, setSelectedValues, keyExtractor, type]\n );\n\n React.useEffect(() => {\n if (_closeOnPick && selectedValues[0] && selectedValues[0] !== value) {\n handleConfirm();\n }\n }, [selectedValues[0], value, closeOnPick]);\n\n const handleConfirm = React.useCallback(() => {\n // TS Workaround since TS won't infer the ternary operator's result type correctly\n type OnSelectArg = Parameters<typeof onSelect>[0];\n onSelect(\n (type === 'single' ? selectedValues[0] : selectedValues) as OnSelectArg\n );\n close?.();\n }, [selectedValues]);\n\n const optionBuilder = React.useCallback(\n ({ item }: ListRenderItemInfo<Data & { _checked: boolean }>) => (\n <MemoizedOption\n item={item}\n type={type}\n handlePressItem={handlePressItem}\n labelExtractor={labelExtractor}\n />\n ),\n []\n );\n\n const anyChecked = data.filter(item => item._checked).length;\n const dataLengthChanged = data.length;\n\n const memoizedFlatlist = React.useMemo(\n () => (\n <FlatList\n data={data}\n keyExtractor={keyExtractor}\n fadingEdgeLength={200}\n renderItem={optionBuilder}\n />\n ),\n [selectedValues, anyChecked, dataLengthChanged]\n );\n\n const titleTextModal = selectModalTitle ? (\n <TextTitleModal\n typography=\"h4\"\n fontWeight=\"bold\"\n numberOfLines={3}\n style={{ maxWidth: RFValue(250) }}\n >\n {selectModalTitle}\n </TextTitleModal>\n ) : null;\n\n const headerContent = selectModalTitleComponent\n ? selectModalTitleComponent\n : titleTextModal;\n\n return (\n <ModalView {...others} BoxComponent={ModalComponent} showCloseBar={false}>\n <Header\n rightButton={{\n onPress: close,\n icon: {\n name: 'close',\n type: 'material-community',\n fontColor: 'light',\n },\n }}\n >\n {headerContent}\n </Header>\n\n {!hideSearchBar && (\n <SearchBarContainer>\n <Input\n placeholder={searchBarPlaceholder}\n value={searchArg}\n onChange={setSearchArg}\n leftComponent={\n <SelectIcon name=\"search\" type=\"ionicon\" size=\"centi\" />\n }\n />\n </SearchBarContainer>\n )}\n\n {loading && (\n <FetchIndicator animating={true} color={'grey'} size={'large'} />\n )}\n\n {memoizedFlatlist}\n\n {!_closeOnPick && (\n <ModalFooter>\n <Button\n variant={'filled'}\n color={'primary'}\n onPress={handleConfirm}\n disabled={loading}\n >\n <Text fontColor={'light'} fontWeight=\"bold\">\n {confirmButtonText}\n </Text>\n </Button>\n </ModalFooter>\n )}\n </ModalView>\n );\n};\n\ninterface IOption<T> {\n item: T & { _checked: boolean };\n type: 'single' | 'multi';\n labelExtractor: (option: T) => string;\n handlePressItem: (option: T) => void;\n}\n\nconst MemoizedOption = <T,>({\n handlePressItem,\n labelExtractor,\n item,\n type,\n}: IOption<T>): JSX.Element => {\n return React.useMemo(() => {\n const label = labelExtractor(item);\n return (\n <ListItem onPress={() => handlePressItem(item)}>\n <View pointerEvents={'none'}>\n {type === 'multi' ? (\n <Checkbox\n color={'primary'}\n labelPosition={'right'}\n checked={item._checked}\n >\n <StyledTextItemSelect\n fontWeight={item._checked ? 'bold' : 'regular'}\n ellipsizeMode={'tail'}\n numberOfLines={1}\n >\n {label}\n </StyledTextItemSelect>\n </Checkbox>\n ) : (\n <RadioButton\n color={'primary'}\n labelPosition={'right'}\n checked={item._checked}\n >\n <StyledTextItemSelect\n fontWeight={item._checked ? 'bold' : 'regular'}\n ellipsizeMode={'tail'}\n numberOfLines={1}\n >\n {label}\n </StyledTextItemSelect>\n </RadioButton>\n )}\n </View>\n </ListItem>\n );\n }, [item._checked]);\n};\n\nexport const Modal = Component;\n"],"names":["React","useDebouncedState","getStyledModal","getStatusBarHeight","options","value","selectedValues","FlatList","TextTitleModal","RFValue","ModalView","SearchBarContainer","SelectIcon","FetchIndicator","ModalFooter","Button","ListItem","View","Checkbox","StyledTextItemSelect","RadioButton"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { InputContainerProps } from '@tecsinapse/react-core';
2
3
  export interface SelectNativeProps<Data, Type extends 'single' | 'multi'> extends Omit<InputContainerProps, 'value' | 'onChange' | 'onChangeText'> {
3
4
  options: ((searchInput?: string) => Promise<Data[]>) | Data[];
@@ -12,8 +12,7 @@ var Text = require('../../atoms/Text/Text.js');
12
12
  var Modal = require('./Modal.js');
13
13
  var styled = require('./styled.js');
14
14
 
15
- function _interopNamespace(e) {
16
- if (e && e.__esModule) return e;
15
+ function _interopNamespaceDefault(e) {
17
16
  var n = Object.create(null);
18
17
  if (e) {
19
18
  Object.keys(e).forEach(function (k) {
@@ -26,13 +25,14 @@ function _interopNamespace(e) {
26
25
  }
27
26
  });
28
27
  }
29
- n["default"] = e;
28
+ n.default = e;
30
29
  return Object.freeze(n);
31
30
  }
32
31
 
33
- var React__namespace = /*#__PURE__*/_interopNamespace(React);
32
+ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
34
33
 
35
34
  function Select({
35
+ /** Select props */
36
36
  value,
37
37
  options,
38
38
  keyExtractor,
@@ -155,57 +155,64 @@ function Select({
155
155
  }
156
156
  }, [_placeholder, value, selectOptions]);
157
157
  modal.sync(
158
- /* @__PURE__ */ React__namespace.createElement(Modal.Modal, {
159
- options: selectOptions || [],
160
- focused: true,
161
- keyExtractor,
162
- labelExtractor,
163
- groupKeyExtractor,
164
- searchBarPlaceholder,
165
- type,
166
- onSelect,
167
- value,
168
- hideSearchBar,
169
- onSearch: handleOnSearch,
170
- selectModalTitle,
171
- selectModalTitleComponent,
172
- confirmButtonText,
173
- loading,
174
- onClose: () => {
175
- if (typeof options === "function") {
176
- setSelectOptions([]);
177
- }
178
- handleBlur();
179
- },
180
- closeOnPick
181
- })
158
+ /* @__PURE__ */ React__namespace.createElement(
159
+ Modal.Modal,
160
+ {
161
+ options: selectOptions || [],
162
+ focused: true,
163
+ keyExtractor,
164
+ labelExtractor,
165
+ groupKeyExtractor,
166
+ searchBarPlaceholder,
167
+ type,
168
+ onSelect,
169
+ value,
170
+ hideSearchBar,
171
+ onSearch: handleOnSearch,
172
+ selectModalTitle,
173
+ selectModalTitleComponent,
174
+ confirmButtonText,
175
+ loading,
176
+ onClose: () => {
177
+ if (typeof options === "function") {
178
+ setSelectOptions([]);
179
+ }
180
+ handleBlur();
181
+ },
182
+ closeOnPick
183
+ }
184
+ )
182
185
  );
183
186
  const handlePressInput = async () => {
184
187
  modal.show();
185
188
  handleFocus();
186
189
  await handleLazyFocus();
187
190
  };
188
- return /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, controlComponent ? controlComponent(handlePressInput, getDisplayValue() || "") : /* @__PURE__ */ React__namespace.createElement(reactCore.HintInputContainer, {
189
- viewStyle: style,
190
- onPress: handlePressInput,
191
- focused,
192
- disabled,
193
- LabelComponent: Text,
194
- variant,
195
- hint,
196
- hintComponent,
197
- label: _label,
198
- rightComponent: /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, /* @__PURE__ */ React__namespace.createElement(styled.SelectIcon, {
199
- name: "chevron-down",
200
- type: "ionicon",
201
- size: "centi"
202
- }), rightComponent),
203
- ...rest
204
- }, /* @__PURE__ */ React__namespace.createElement(styled.StyledSelectionText, {
205
- numberOfLines,
206
- fontWeight: "bold",
207
- disabled
208
- }, getDisplayValue() || " ")));
191
+ return /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, controlComponent ? controlComponent(handlePressInput, getDisplayValue() || "") : /* @__PURE__ */ React__namespace.createElement(
192
+ reactCore.HintInputContainer,
193
+ {
194
+ viewStyle: style,
195
+ onPress: handlePressInput,
196
+ focused,
197
+ disabled,
198
+ LabelComponent: Text,
199
+ variant,
200
+ hint,
201
+ hintComponent,
202
+ label: _label,
203
+ rightComponent: /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, /* @__PURE__ */ React__namespace.createElement(styled.SelectIcon, { name: "chevron-down", type: "ionicon", size: "centi" }), rightComponent),
204
+ ...rest
205
+ },
206
+ /* @__PURE__ */ React__namespace.createElement(
207
+ styled.StyledSelectionText,
208
+ {
209
+ numberOfLines,
210
+ fontWeight: "bold",
211
+ disabled
212
+ },
213
+ getDisplayValue() || " "
214
+ )
215
+ ));
209
216
  }
210
217
 
211
218
  module.exports = Select;
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sources":["../../../../../src/components/molecules/Select/Select.tsx"],"sourcesContent":["import {\n HintInputContainer,\n InputContainerProps,\n useInputFocus,\n} from '@tecsinapse/react-core';\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport { useLazyModalManager } from '../../atoms/Modal';\nimport { Text } from '../../atoms/Text';\nimport { Modal } from './Modal';\nimport { SelectIcon, StyledSelectionText } from './styled';\n\nexport interface SelectNativeProps<Data, Type extends 'single' | 'multi'>\n extends Omit<InputContainerProps, 'value' | 'onChange' | 'onChangeText'> {\n options: ((searchInput?: string) => Promise<Data[]>) | Data[];\n onSelect: (\n option: Type extends 'single' ? Data | undefined : Data[]\n ) => never | void;\n value: Type extends 'single' ? Data | null | undefined : Data[];\n type: Type;\n\n keyExtractor: (t: Data, index?: number) => string;\n labelExtractor: (t: Data) => string;\n groupKeyExtractor?: (t: Data) => string;\n\n hideSearchBar?: boolean;\n placeholder?: string;\n onFocus?: () => void | never;\n onBlur?: () => void | never;\n onSearch?:\n | ((searchArg: string) => void)\n | ((searchInput?: string) => Promise<Data[]>)\n | never;\n searchBarPlaceholder?: string;\n confirmButtonText?: string;\n selectModalTitle?: string;\n selectModalTitleComponent?: JSX.Element;\n closeOnPick?: boolean;\n controlComponent?: (\n onPress: () => void,\n displayValue?: string\n ) => JSX.Element;\n numberOfLines?: number;\n}\n\nfunction Select<Data, Type extends 'single' | 'multi'>({\n /** Select props */\n value,\n options,\n keyExtractor,\n groupKeyExtractor,\n onSelect,\n type,\n labelExtractor,\n placeholder,\n onFocus,\n onBlur,\n disabled,\n onSearch,\n selectModalTitle,\n selectModalTitleComponent,\n searchBarPlaceholder,\n hideSearchBar,\n confirmButtonText,\n rightComponent,\n variant = 'default',\n hintComponent,\n hint,\n style,\n controlComponent,\n closeOnPick = type === 'single',\n label,\n numberOfLines,\n ...rest\n}: SelectNativeProps<Data, Type>): JSX.Element {\n const { focused, handleBlur, handleFocus } = useInputFocus(\n onFocus,\n onBlur,\n !disabled\n );\n\n const [selectOptions, setSelectOptions] = useState<Data[]>([]);\n const modal = useLazyModalManager();\n\n // TODO: Add Skeleton to modal height when loading is true\n const [loading, setLoading] = useState<boolean>(false);\n\n const onlyLabel = label && !placeholder;\n const hasValue =\n type === 'single' ? !!value : ((value || []) as []).length > 0;\n const _placeholder = onlyLabel ? label : placeholder;\n const _label = hasValue ? label : undefined;\n\n useEffect(() => {\n if (typeof options !== 'function') {\n setSelectOptions(options);\n }\n }, [options]);\n\n const handleLazyFocus = React.useCallback(async () => {\n if (typeof options === 'function' && !onSearch) {\n setLoading(true);\n try {\n const result = await options();\n if (result) {\n if (\n value &&\n !result.find(v => keyExtractor(value as Data) === keyExtractor(v))\n ) {\n setSelectOptions([value as Data, ...result]);\n } else setSelectOptions(result);\n }\n } catch (e) {\n // TODO: Catch error\n } finally {\n setLoading(false);\n }\n }\n }, [options, value, setSelectOptions]);\n\n const handleOnSearch = React.useCallback(\n async (searchInput: string | undefined) => {\n if (searchInput !== undefined && onSearch) {\n setLoading(true);\n modal.requestUpdate();\n try {\n const result = await onSearch(searchInput);\n if (result) {\n if (type === 'single') {\n if (\n value &&\n !result.find(\n v => keyExtractor(value as Data) === keyExtractor(v)\n )\n ) {\n setSelectOptions([value as Data, ...result]);\n } else setSelectOptions(result);\n } else {\n if ((value as Data[])?.length) {\n const selectedValues =\n (value as Data[]).filter(\n v =>\n !result.find(\n current =>\n keyExtractor(v as Data) === keyExtractor(current)\n )\n ) || [];\n setSelectOptions([...selectedValues, ...result]);\n } else {\n setSelectOptions(result);\n }\n }\n }\n } catch (e) {\n // TODO: Catch error\n } finally {\n modal.requestUpdate();\n setLoading(false);\n }\n }\n },\n [options, value, keyExtractor]\n );\n\n const getDisplayValue = React.useCallback(() => {\n if (Array.isArray(value)) {\n if (value.length === 0) return _placeholder;\n else {\n const options =\n selectOptions.length > 0 ? selectOptions : (value as Data[]);\n return options\n ?.reduce(\n (acc, option, index) =>\n value.find(\n key => keyExtractor(option, index) == keyExtractor(key, index)\n )\n ? acc + labelExtractor(option) + ', '\n : acc,\n ''\n )\n .slice(0, -2);\n }\n } else {\n if (!value) return _placeholder;\n const selectedOption = selectOptions?.find(\n (option, index) =>\n keyExtractor(option, index) == keyExtractor(value as Data, index)\n );\n return labelExtractor(selectedOption ?? (value as Data));\n }\n }, [_placeholder, value, selectOptions]);\n\n modal.sync(\n <Modal\n options={selectOptions || []}\n focused={true}\n keyExtractor={keyExtractor}\n labelExtractor={labelExtractor}\n groupKeyExtractor={groupKeyExtractor}\n searchBarPlaceholder={searchBarPlaceholder}\n type={type}\n onSelect={onSelect}\n value={value}\n hideSearchBar={hideSearchBar}\n onSearch={handleOnSearch}\n selectModalTitle={selectModalTitle}\n selectModalTitleComponent={selectModalTitleComponent}\n confirmButtonText={confirmButtonText}\n loading={loading}\n onClose={() => {\n if (typeof options === 'function') {\n setSelectOptions([]);\n }\n handleBlur();\n }}\n closeOnPick={closeOnPick}\n />\n );\n\n const handlePressInput = async () => {\n modal.show();\n handleFocus();\n await handleLazyFocus();\n };\n\n return (\n <>\n {controlComponent ? (\n controlComponent(handlePressInput, getDisplayValue() || '')\n ) : (\n <HintInputContainer\n viewStyle={style}\n onPress={handlePressInput}\n focused={focused}\n disabled={disabled}\n LabelComponent={Text}\n variant={variant}\n hint={hint}\n hintComponent={hintComponent}\n label={_label}\n rightComponent={\n <>\n <SelectIcon name=\"chevron-down\" type=\"ionicon\" size=\"centi\" />\n {rightComponent}\n </>\n }\n {...rest}\n >\n <StyledSelectionText\n numberOfLines={numberOfLines}\n fontWeight=\"bold\"\n disabled={disabled}\n >\n {getDisplayValue() || ' '}\n </StyledSelectionText>\n </HintInputContainer>\n )}\n </>\n );\n}\n\nexport default Select;\n"],"names":["useInputFocus","useState","useLazyModalManager","useEffect","React","options","Modal","HintInputContainer","SelectIcon","StyledSelectionText"],"mappings":"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"}
1
+ {"version":3,"file":"Select.js","sources":["../../../../../src/components/molecules/Select/Select.tsx"],"sourcesContent":["import {\n HintInputContainer,\n InputContainerProps,\n useInputFocus,\n} from '@tecsinapse/react-core';\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport { useLazyModalManager } from '../../atoms/Modal';\nimport { Text } from '../../atoms/Text';\nimport { Modal } from './Modal';\nimport { SelectIcon, StyledSelectionText } from './styled';\n\nexport interface SelectNativeProps<Data, Type extends 'single' | 'multi'>\n extends Omit<InputContainerProps, 'value' | 'onChange' | 'onChangeText'> {\n options: ((searchInput?: string) => Promise<Data[]>) | Data[];\n onSelect: (\n option: Type extends 'single' ? Data | undefined : Data[]\n ) => never | void;\n value: Type extends 'single' ? Data | null | undefined : Data[];\n type: Type;\n\n keyExtractor: (t: Data, index?: number) => string;\n labelExtractor: (t: Data) => string;\n groupKeyExtractor?: (t: Data) => string;\n\n hideSearchBar?: boolean;\n placeholder?: string;\n onFocus?: () => void | never;\n onBlur?: () => void | never;\n onSearch?:\n | ((searchArg: string) => void)\n | ((searchInput?: string) => Promise<Data[]>)\n | never;\n searchBarPlaceholder?: string;\n confirmButtonText?: string;\n selectModalTitle?: string;\n selectModalTitleComponent?: JSX.Element;\n closeOnPick?: boolean;\n controlComponent?: (\n onPress: () => void,\n displayValue?: string\n ) => JSX.Element;\n numberOfLines?: number;\n}\n\nfunction Select<Data, Type extends 'single' | 'multi'>({\n /** Select props */\n value,\n options,\n keyExtractor,\n groupKeyExtractor,\n onSelect,\n type,\n labelExtractor,\n placeholder,\n onFocus,\n onBlur,\n disabled,\n onSearch,\n selectModalTitle,\n selectModalTitleComponent,\n searchBarPlaceholder,\n hideSearchBar,\n confirmButtonText,\n rightComponent,\n variant = 'default',\n hintComponent,\n hint,\n style,\n controlComponent,\n closeOnPick = type === 'single',\n label,\n numberOfLines,\n ...rest\n}: SelectNativeProps<Data, Type>): JSX.Element {\n const { focused, handleBlur, handleFocus } = useInputFocus(\n onFocus,\n onBlur,\n !disabled\n );\n\n const [selectOptions, setSelectOptions] = useState<Data[]>([]);\n const modal = useLazyModalManager();\n\n // TODO: Add Skeleton to modal height when loading is true\n const [loading, setLoading] = useState<boolean>(false);\n\n const onlyLabel = label && !placeholder;\n const hasValue =\n type === 'single' ? !!value : ((value || []) as []).length > 0;\n const _placeholder = onlyLabel ? label : placeholder;\n const _label = hasValue ? label : undefined;\n\n useEffect(() => {\n if (typeof options !== 'function') {\n setSelectOptions(options);\n }\n }, [options]);\n\n const handleLazyFocus = React.useCallback(async () => {\n if (typeof options === 'function' && !onSearch) {\n setLoading(true);\n try {\n const result = await options();\n if (result) {\n if (\n value &&\n !result.find(v => keyExtractor(value as Data) === keyExtractor(v))\n ) {\n setSelectOptions([value as Data, ...result]);\n } else setSelectOptions(result);\n }\n } catch (e) {\n // TODO: Catch error\n } finally {\n setLoading(false);\n }\n }\n }, [options, value, setSelectOptions]);\n\n const handleOnSearch = React.useCallback(\n async (searchInput: string | undefined) => {\n if (searchInput !== undefined && onSearch) {\n setLoading(true);\n modal.requestUpdate();\n try {\n const result = await onSearch(searchInput);\n if (result) {\n if (type === 'single') {\n if (\n value &&\n !result.find(\n v => keyExtractor(value as Data) === keyExtractor(v)\n )\n ) {\n setSelectOptions([value as Data, ...result]);\n } else setSelectOptions(result);\n } else {\n if ((value as Data[])?.length) {\n const selectedValues =\n (value as Data[]).filter(\n v =>\n !result.find(\n current =>\n keyExtractor(v as Data) === keyExtractor(current)\n )\n ) || [];\n setSelectOptions([...selectedValues, ...result]);\n } else {\n setSelectOptions(result);\n }\n }\n }\n } catch (e) {\n // TODO: Catch error\n } finally {\n modal.requestUpdate();\n setLoading(false);\n }\n }\n },\n [options, value, keyExtractor]\n );\n\n const getDisplayValue = React.useCallback(() => {\n if (Array.isArray(value)) {\n if (value.length === 0) return _placeholder;\n else {\n const options =\n selectOptions.length > 0 ? selectOptions : (value as Data[]);\n return options\n ?.reduce(\n (acc, option, index) =>\n value.find(\n key => keyExtractor(option, index) == keyExtractor(key, index)\n )\n ? acc + labelExtractor(option) + ', '\n : acc,\n ''\n )\n .slice(0, -2);\n }\n } else {\n if (!value) return _placeholder;\n const selectedOption = selectOptions?.find(\n (option, index) =>\n keyExtractor(option, index) == keyExtractor(value as Data, index)\n );\n return labelExtractor(selectedOption ?? (value as Data));\n }\n }, [_placeholder, value, selectOptions]);\n\n modal.sync(\n <Modal\n options={selectOptions || []}\n focused={true}\n keyExtractor={keyExtractor}\n labelExtractor={labelExtractor}\n groupKeyExtractor={groupKeyExtractor}\n searchBarPlaceholder={searchBarPlaceholder}\n type={type}\n onSelect={onSelect}\n value={value}\n hideSearchBar={hideSearchBar}\n onSearch={handleOnSearch}\n selectModalTitle={selectModalTitle}\n selectModalTitleComponent={selectModalTitleComponent}\n confirmButtonText={confirmButtonText}\n loading={loading}\n onClose={() => {\n if (typeof options === 'function') {\n setSelectOptions([]);\n }\n handleBlur();\n }}\n closeOnPick={closeOnPick}\n />\n );\n\n const handlePressInput = async () => {\n modal.show();\n handleFocus();\n await handleLazyFocus();\n };\n\n return (\n <>\n {controlComponent ? (\n controlComponent(handlePressInput, getDisplayValue() || '')\n ) : (\n <HintInputContainer\n viewStyle={style}\n onPress={handlePressInput}\n focused={focused}\n disabled={disabled}\n LabelComponent={Text}\n variant={variant}\n hint={hint}\n hintComponent={hintComponent}\n label={_label}\n rightComponent={\n <>\n <SelectIcon name=\"chevron-down\" type=\"ionicon\" size=\"centi\" />\n {rightComponent}\n </>\n }\n {...rest}\n >\n <StyledSelectionText\n numberOfLines={numberOfLines}\n fontWeight=\"bold\"\n disabled={disabled}\n >\n {getDisplayValue() || ' '}\n </StyledSelectionText>\n </HintInputContainer>\n )}\n </>\n );\n}\n\nexport default Select;\n"],"names":["useInputFocus","useState","useLazyModalManager","useEffect","React","options","Modal","HintInputContainer","SelectIcon","StyledSelectionText"],"mappings":"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"}
@@ -1,40 +1,34 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var styled = require('@emotion/native');
6
4
  var reactCore = require('@tecsinapse/react-core');
7
5
  var reactNative = require('react-native');
8
6
  var Input = require('../../atoms/Input/Input.js');
9
7
  var Text = require('../../atoms/Text/Text.js');
10
8
 
11
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
-
13
- var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
14
-
15
9
  const getStyledModal = (safeTop = 0) => {
16
- return styled__default["default"](reactNative.View)`
10
+ return styled(reactNative.View)`
17
11
  padding-top: ${`${reactCore.RFValue(safeTop)}px`};
18
12
  background-color: ${({ theme }) => theme.miscellaneous.bodyColor};
19
13
  height: 100%;
20
14
  `;
21
15
  };
22
- const StyledSelectionText = styled__default["default"](Text)(
16
+ const StyledSelectionText = styled(Text)(
23
17
  (props) => styled.css`
24
18
  line-height: ${props.theme?.typography.h5.lineHeight};
25
19
  ${reactCore.disabledInputStyles(props)};
26
20
  `
27
21
  );
28
- styled__default["default"](reactNative.View)`
22
+ styled(reactNative.View)`
29
23
  aspect-ratio: 1;
30
24
  height: 100%;
31
25
  `;
32
- styled__default["default"](
26
+ styled(
33
27
  reactCore.PressableSurface
34
28
  )`
35
29
  width: 100%;
36
30
  `;
37
- styled__default["default"](reactNative.View)`
31
+ styled(reactNative.View)`
38
32
  position: relative;
39
33
  width: 100%;
40
34
  display: flex;
@@ -44,41 +38,41 @@ styled__default["default"](reactNative.View)`
44
38
  padding: ${({ theme }) => theme.spacing.deca};
45
39
  height: ${reactCore.RFValueStr("75px")};
46
40
  `;
47
- styled__default["default"](reactCore.Button)`
41
+ styled(reactCore.Button)`
48
42
  aspect-ratio: 1;
49
43
  height: 100%;
50
44
  `;
51
- const SearchBarContainer = styled__default["default"](reactNative.View)`
45
+ const SearchBarContainer = styled(reactNative.View)`
52
46
  padding: ${({ theme }) => theme.spacing.deca};
53
47
  position: relative;
54
48
  `;
55
- styled__default["default"](Input)`
49
+ styled(Input)`
56
50
  margin-bottom: ${({ theme }) => theme.spacing.deca};
57
51
  `;
58
- const ListItem = styled__default["default"](reactCore.PressableSurface)`
52
+ const ListItem = styled(reactCore.PressableSurface)`
59
53
  border-bottom-width: ${reactCore.RFValueStr("1px")};
60
54
  border-color: ${({ theme }) => theme.color.secondary.light};
61
55
  padding-vertical: ${({ theme }) => theme.spacing.mili};
62
56
  padding-horizontal: ${({ theme }) => theme.spacing.deca};
63
57
  `;
64
- const ModalFooter = styled__default["default"](reactNative.View)`
58
+ const ModalFooter = styled(reactNative.View)`
65
59
  width: 100%;
66
60
  height: auto;
67
61
  bottom: 0;
68
62
  background-color: ${({ theme }) => theme.miscellaneous.bodyColor};
69
63
  padding: ${({ theme }) => theme.spacing.deca};
70
64
  `;
71
- const SelectIcon = styled__default["default"](reactCore.Icon)`
65
+ const SelectIcon = styled(reactCore.Icon)`
72
66
  padding: ${({ theme }) => theme.spacing.centi};
73
67
  color: ${({ theme }) => theme.color.secondary.medium};
74
68
  `;
75
- const FetchIndicator = styled__default["default"](reactNative.ActivityIndicator)`
69
+ const FetchIndicator = styled(reactNative.ActivityIndicator)`
76
70
  align-self: center;
77
71
  `;
78
- const TextTitleModal = styled__default["default"](Text)`
72
+ const TextTitleModal = styled(Text)`
79
73
  text-align: center;
80
74
  `;
81
- const StyledTextItemSelect = styled__default["default"](Text)`
75
+ const StyledTextItemSelect = styled(Text)`
82
76
  width: 90%;
83
77
  `;
84
78
 
@@ -1 +1 @@
1
- {"version":3,"file":"styled.js","sources":["../../../../../src/components/molecules/Select/styled.ts"],"sourcesContent":["import styled, { css } from '@emotion/native';\nimport {\n Button,\n ButtonProps,\n disabledInputStyles,\n Icon,\n InputContainerProps,\n PressableSurface,\n PressableSurfaceProps,\n RFValue,\n RFValueStr,\n StyleProps,\n} from '@tecsinapse/react-core';\nimport { ActivityIndicator, ModalProps, View, ViewProps } from 'react-native';\nimport { Input, InputNativeProps } from '../../atoms/Input';\nimport { Text } from '../../atoms/Text';\n\nexport const getStyledModal = (safeTop = 0) => {\n return styled(View)<ModalProps & Partial<StyleProps>>`\n padding-top: ${`${RFValue(safeTop)}px`};\n background-color: ${({ theme }) => theme.miscellaneous.bodyColor};\n height: 100%;\n `;\n};\n\nexport const StyledSelectionText = styled(Text)(\n (props: Partial<InputContainerProps> & Partial<StyleProps>) => css`\n line-height: ${props.theme?.typography.h5.lineHeight};\n ${disabledInputStyles(props)};\n `\n);\n\nexport const Dummy = styled(View)`\n aspect-ratio: 1;\n height: 100%;\n`;\n\nexport const StyledPressableSurface = styled(\n PressableSurface\n)<PressableSurfaceProps>`\n width: 100%;\n`;\n\nexport const Header = styled(View)<ViewProps & Partial<StyleProps>>`\n position: relative;\n width: 100%;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n padding: ${({ theme }) => theme.spacing.deca};\n height: ${RFValueStr('75px')};\n`;\n\nexport const CloseButton = styled(Button)<ButtonProps & Partial<StyleProps>>`\n aspect-ratio: 1;\n height: 100%;\n`;\n\nexport const SearchBarContainer = styled(View)<ViewProps & Partial<StyleProps>>`\n padding: ${({ theme }) => theme.spacing.deca};\n position: relative;\n`;\n\nexport const SearchBar = styled(Input)<InputNativeProps & Partial<StyleProps>>`\n margin-bottom: ${({ theme }) => theme.spacing.deca};\n`;\n\nexport const ListItem = styled(PressableSurface)<\n PressableSurfaceProps & Partial<StyleProps>\n>`\n border-bottom-width: ${RFValueStr('1px')};\n border-color: ${({ theme }) => theme.color.secondary.light};\n padding-vertical: ${({ theme }) => theme.spacing.mili};\n padding-horizontal: ${({ theme }) => theme.spacing.deca};\n`;\n\nexport const ModalFooter = styled(View)<Partial<StyleProps>>`\n width: 100%;\n height: auto;\n bottom: 0;\n background-color: ${({ theme }) => theme.miscellaneous.bodyColor};\n padding: ${({ theme }) => theme.spacing.deca};\n`;\n\nexport const SelectIcon = styled(Icon)<Partial<StyleProps>>`\n padding: ${({ theme }) => theme.spacing.centi};\n color: ${({ theme }) => theme.color.secondary.medium};\n`;\n\nexport const FetchIndicator = styled(ActivityIndicator)`\n align-self: center;\n`;\n\nexport const TextTitleModal = styled(Text)<Partial<StyleProps>>`\n text-align: center;\n`;\nexport const StyledTextItemSelect = styled(Text)`\n width: 90%;\n`;\n"],"names":["styled","View","RFValue","css","disabledInputStyles","PressableSurface","RFValueStr","Button","Icon","ActivityIndicator"],"mappings":";;;;;;;;;;;;;;AAiBa,MAAA,cAAA,GAAiB,CAAC,OAAA,GAAU,CAAM,KAAA;AAC7C,EAAA,OAAOA,2BAAOC,gBAAI,CAAA,CAAA;AAAA,iBACD,EAAA,CAAA,EAAGC,kBAAQ,OAAO,CAAA,CAAA,EAAA,CAAA,CAAA;AAAA,sBAAA,EACb,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,aAAc,CAAA,SAAA,CAAA;AAAA;AAAA,EAAA,CAAA,CAAA;AAG3D,EAAA;AAEa,MAAA,mBAAA,GAAsBF,2BAAO,IAAI,CAAA;AAAA,EAC5C,CAAC,KAA8D,KAAAG,UAAA,CAAA;AAAA,iBAC9C,EAAA,KAAA,CAAM,KAAO,EAAA,UAAA,CAAW,EAAG,CAAA,UAAA,CAAA;AAAA,IAAA,EACxCC,8BAAoB,KAAK,CAAA,CAAA;AAAA,EAAA,CAAA;AAE/B,EAAA;AAEqBJ,2BAAOC,gBAAI,CAAA,CAAA;AAAA;AAAA;AAAA,EAAA;AAKMD,0BAAA;AAAA,EACpCK,0BAAA;AACF,CAAA,CAAA;AAAA;AAAA,EAAA;AAIsBL,2BAAOC,gBAAI,CAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAAA,EAOpB,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,OAAQ,CAAA,IAAA,CAAA;AAAA,UAAA,EAC9BK,qBAAW,MAAM,CAAA,CAAA;AAAA,EAAA;AAGFN,2BAAOO,gBAAM,CAAA,CAAA;AAAA;AAAA;AAAA,EAAA;AAK3B,MAAA,kBAAA,GAAqBP,2BAAOC,gBAAI,CAAA,CAAA;AAAA,WAAA,EAChC,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,OAAQ,CAAA,IAAA,CAAA;AAAA;AAAA,EAAA;AAIjBD,2BAAO,KAAK,CAAA,CAAA;AAAA,iBAAA,EAClB,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,OAAQ,CAAA,IAAA,CAAA;AAAA,EAAA;AAGnC,MAAA,QAAA,GAAWA,2BAAOK,0BAAgB,CAAA,CAAA;AAAA,uBAAA,EAGtBC,qBAAW,KAAK,CAAA,CAAA;AAAA,gBAAA,EACvB,CAAC,EAAE,KAAA,EAAY,KAAA,KAAA,CAAM,MAAM,SAAU,CAAA,KAAA,CAAA;AAAA,oBAAA,EACjC,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,OAAQ,CAAA,IAAA,CAAA;AAAA,sBAAA,EAC3B,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,OAAQ,CAAA,IAAA,CAAA;AAAA,EAAA;AAGxC,MAAA,WAAA,GAAcN,2BAAOC,gBAAI,CAAA,CAAA;AAAA;AAAA;AAAA;AAAA,oBAAA,EAIhB,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,aAAc,CAAA,SAAA,CAAA;AAAA,WAAA,EAC5C,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,OAAQ,CAAA,IAAA,CAAA;AAAA,EAAA;AAG7B,MAAA,UAAA,GAAaD,2BAAOQ,cAAI,CAAA,CAAA;AAAA,WAAA,EACxB,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,OAAQ,CAAA,KAAA,CAAA;AAAA,SAAA,EAC/B,CAAC,EAAE,KAAA,EAAY,KAAA,KAAA,CAAM,MAAM,SAAU,CAAA,MAAA,CAAA;AAAA,EAAA;AAGnC,MAAA,cAAA,GAAiBR,2BAAOS,6BAAiB,CAAA,CAAA;AAAA;AAAA,EAAA;AAIzC,MAAA,cAAA,GAAiBT,2BAAO,IAAI,CAAA,CAAA;AAAA;AAAA,EAAA;AAG5B,MAAA,oBAAA,GAAuBA,2BAAO,IAAI,CAAA,CAAA;AAAA;AAAA;;;;;;;;;;;;"}
1
+ {"version":3,"file":"styled.js","sources":["../../../../../src/components/molecules/Select/styled.ts"],"sourcesContent":["import styled, { css } from '@emotion/native';\nimport {\n Button,\n ButtonProps,\n disabledInputStyles,\n Icon,\n InputContainerProps,\n PressableSurface,\n PressableSurfaceProps,\n RFValue,\n RFValueStr,\n StyleProps,\n} from '@tecsinapse/react-core';\nimport { ActivityIndicator, ModalProps, View, ViewProps } from 'react-native';\nimport { Input, InputNativeProps } from '../../atoms/Input';\nimport { Text } from '../../atoms/Text';\n\nexport const getStyledModal = (safeTop = 0) => {\n return styled(View)<ModalProps & Partial<StyleProps>>`\n padding-top: ${`${RFValue(safeTop)}px`};\n background-color: ${({ theme }) => theme.miscellaneous.bodyColor};\n height: 100%;\n `;\n};\n\nexport const StyledSelectionText = styled(Text)(\n (props: Partial<InputContainerProps> & Partial<StyleProps>) => css`\n line-height: ${props.theme?.typography.h5.lineHeight};\n ${disabledInputStyles(props)};\n `\n);\n\nexport const Dummy = styled(View)`\n aspect-ratio: 1;\n height: 100%;\n`;\n\nexport const StyledPressableSurface = styled(\n PressableSurface\n)<PressableSurfaceProps>`\n width: 100%;\n`;\n\nexport const Header = styled(View)<ViewProps & Partial<StyleProps>>`\n position: relative;\n width: 100%;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n padding: ${({ theme }) => theme.spacing.deca};\n height: ${RFValueStr('75px')};\n`;\n\nexport const CloseButton = styled(Button)<ButtonProps & Partial<StyleProps>>`\n aspect-ratio: 1;\n height: 100%;\n`;\n\nexport const SearchBarContainer = styled(View)<ViewProps & Partial<StyleProps>>`\n padding: ${({ theme }) => theme.spacing.deca};\n position: relative;\n`;\n\nexport const SearchBar = styled(Input)<InputNativeProps & Partial<StyleProps>>`\n margin-bottom: ${({ theme }) => theme.spacing.deca};\n`;\n\nexport const ListItem = styled(PressableSurface)<\n PressableSurfaceProps & Partial<StyleProps>\n>`\n border-bottom-width: ${RFValueStr('1px')};\n border-color: ${({ theme }) => theme.color.secondary.light};\n padding-vertical: ${({ theme }) => theme.spacing.mili};\n padding-horizontal: ${({ theme }) => theme.spacing.deca};\n`;\n\nexport const ModalFooter = styled(View)<Partial<StyleProps>>`\n width: 100%;\n height: auto;\n bottom: 0;\n background-color: ${({ theme }) => theme.miscellaneous.bodyColor};\n padding: ${({ theme }) => theme.spacing.deca};\n`;\n\nexport const SelectIcon = styled(Icon)<Partial<StyleProps>>`\n padding: ${({ theme }) => theme.spacing.centi};\n color: ${({ theme }) => theme.color.secondary.medium};\n`;\n\nexport const FetchIndicator = styled(ActivityIndicator)`\n align-self: center;\n`;\n\nexport const TextTitleModal = styled(Text)<Partial<StyleProps>>`\n text-align: center;\n`;\nexport const StyledTextItemSelect = styled(Text)`\n width: 90%;\n`;\n"],"names":["View","RFValue","css","disabledInputStyles","PressableSurface","RFValueStr","Button","Icon","ActivityIndicator"],"mappings":";;;;;;;;AAiBa,MAAA,cAAA,GAAiB,CAAC,OAAA,GAAU,CAAM,KAAA;AAC7C,EAAA,OAAO,OAAOA,gBAAI,CAAA,CAAA;AAAA,iBACD,EAAA,CAAA,EAAGC,kBAAQ,OAAO,CAAA,CAAA,EAAA,CAAA,CAAA;AAAA,sBAAA,EACb,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,aAAc,CAAA,SAAA,CAAA;AAAA;AAAA,EAAA,CAAA,CAAA;AAG3D,EAAA;AAEa,MAAA,mBAAA,GAAsB,OAAO,IAAI,CAAA;AAAA,EAC5C,CAAC,KAA8D,KAAAC,UAAA,CAAA;AAAA,iBAC9C,EAAA,KAAA,CAAM,KAAO,EAAA,UAAA,CAAW,EAAG,CAAA,UAAA,CAAA;AAAA,IAAA,EACxCC,8BAAoB,KAAK,CAAA,CAAA;AAAA,EAAA,CAAA;AAE/B,EAAA;AAEqB,OAAOH,gBAAI,CAAA,CAAA;AAAA;AAAA;AAAA,EAAA;AAKM,MAAA;AAAA,EACpCI,0BAAA;AACF,CAAA,CAAA;AAAA;AAAA,EAAA;AAIsB,OAAOJ,gBAAI,CAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAAA,EAOpB,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,OAAQ,CAAA,IAAA,CAAA;AAAA,UAAA,EAC9BK,qBAAW,MAAM,CAAA,CAAA;AAAA,EAAA;AAGF,OAAOC,gBAAM,CAAA,CAAA;AAAA;AAAA;AAAA,EAAA;AAK3B,MAAA,kBAAA,GAAqB,OAAON,gBAAI,CAAA,CAAA;AAAA,WAAA,EAChC,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,OAAQ,CAAA,IAAA,CAAA;AAAA;AAAA,EAAA;AAIjB,OAAO,KAAK,CAAA,CAAA;AAAA,iBAAA,EAClB,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,OAAQ,CAAA,IAAA,CAAA;AAAA,EAAA;AAGnC,MAAA,QAAA,GAAW,OAAOI,0BAAgB,CAAA,CAAA;AAAA,uBAAA,EAGtBC,qBAAW,KAAK,CAAA,CAAA;AAAA,gBAAA,EACvB,CAAC,EAAE,KAAA,EAAY,KAAA,KAAA,CAAM,MAAM,SAAU,CAAA,KAAA,CAAA;AAAA,oBAAA,EACjC,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,OAAQ,CAAA,IAAA,CAAA;AAAA,sBAAA,EAC3B,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,OAAQ,CAAA,IAAA,CAAA;AAAA,EAAA;AAGxC,MAAA,WAAA,GAAc,OAAOL,gBAAI,CAAA,CAAA;AAAA;AAAA;AAAA;AAAA,oBAAA,EAIhB,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,aAAc,CAAA,SAAA,CAAA;AAAA,WAAA,EAC5C,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,OAAQ,CAAA,IAAA,CAAA;AAAA,EAAA;AAG7B,MAAA,UAAA,GAAa,OAAOO,cAAI,CAAA,CAAA;AAAA,WAAA,EACxB,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,OAAQ,CAAA,KAAA,CAAA;AAAA,SAAA,EAC/B,CAAC,EAAE,KAAA,EAAY,KAAA,KAAA,CAAM,MAAM,SAAU,CAAA,MAAA,CAAA;AAAA,EAAA;AAGnC,MAAA,cAAA,GAAiB,OAAOC,6BAAiB,CAAA,CAAA;AAAA;AAAA,EAAA;AAIzC,MAAA,cAAA,GAAiB,OAAO,IAAI,CAAA,CAAA;AAAA;AAAA,EAAA;AAG5B,MAAA,oBAAA,GAAuB,OAAO,IAAI,CAAA,CAAA;AAAA;AAAA;;;;;;;;;;;;"}