@codeleap/mobile 1.3.1 → 1.4.2

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 (206) hide show
  1. package/.eslintignore +2 -0
  2. package/.eslintrc.js +3 -0
  3. package/.vscode/settings.json +11 -0
  4. package/CodeLeap-Mobile-Packages.code-workspace +8 -0
  5. package/dist/components/ActivityIndicator.d.ts +13 -13
  6. package/dist/components/ActivityIndicator.js +50 -48
  7. package/dist/components/ActivityIndicator.js.map +1 -1
  8. package/dist/components/Animated.d.ts +15 -103
  9. package/dist/components/Animated.js +54 -54
  10. package/dist/components/Animated.js.map +1 -1
  11. package/dist/components/Button.d.ts +119 -110
  12. package/dist/components/Button.js +77 -57
  13. package/dist/components/Button.js.map +1 -1
  14. package/dist/components/Checkbox/index.d.ts +14 -14
  15. package/dist/components/Checkbox/index.js +73 -74
  16. package/dist/components/Checkbox/index.js.map +1 -1
  17. package/dist/components/Checkbox/styles.d.ts +52 -48
  18. package/dist/components/Checkbox/styles.js +48 -48
  19. package/dist/components/Checkbox/styles.js.map +1 -1
  20. package/dist/components/ContentView.d.ts +10 -10
  21. package/dist/components/ContentView.js +50 -48
  22. package/dist/components/ContentView.js.map +1 -1
  23. package/dist/components/FileInput.d.ts +26 -19
  24. package/dist/components/FileInput.js +174 -112
  25. package/dist/components/FileInput.js.map +1 -1
  26. package/dist/components/Icon.d.ts +12 -13
  27. package/dist/components/Icon.js +66 -46
  28. package/dist/components/Icon.js.map +1 -1
  29. package/dist/components/Image.d.ts +18 -16
  30. package/dist/components/Image.js +53 -47
  31. package/dist/components/Image.js.map +1 -1
  32. package/dist/components/List.d.ts +11 -0
  33. package/dist/components/List.js +77 -0
  34. package/dist/components/List.js.map +1 -0
  35. package/dist/components/Modal/index.d.ts +25 -24
  36. package/dist/components/Modal/index.js +108 -115
  37. package/dist/components/Modal/index.js.map +1 -1
  38. package/dist/components/Modal/styles.d.ts +66 -62
  39. package/dist/components/Modal/styles.js +64 -61
  40. package/dist/components/Modal/styles.js.map +1 -1
  41. package/dist/components/Navigation/Navigation.d.ts +3 -0
  42. package/dist/components/Navigation/Navigation.js +84 -0
  43. package/dist/components/Navigation/Navigation.js.map +1 -0
  44. package/dist/components/Navigation/constants.d.ts +5 -0
  45. package/dist/components/Navigation/constants.js +11 -0
  46. package/dist/components/Navigation/constants.js.map +1 -0
  47. package/dist/components/Navigation/index.d.ts +3 -0
  48. package/dist/components/Navigation/index.js +16 -0
  49. package/dist/components/Navigation/index.js.map +1 -0
  50. package/dist/components/Navigation/types.d.ts +26 -0
  51. package/dist/components/Navigation/types.js +8 -0
  52. package/dist/components/Navigation/types.js.map +1 -0
  53. package/dist/components/Navigation/utils.d.ts +3 -0
  54. package/dist/components/Navigation/utils.js +70 -0
  55. package/dist/components/Navigation/utils.js.map +1 -0
  56. package/dist/components/Overlay.d.ts +16 -16
  57. package/dist/components/Overlay.js +65 -67
  58. package/dist/components/Overlay.js.map +1 -1
  59. package/dist/components/Pager/index.d.ts +19 -0
  60. package/dist/components/Pager/index.js +164 -0
  61. package/dist/components/Pager/index.js.map +1 -0
  62. package/dist/components/Pager/styles.d.ts +51 -0
  63. package/dist/components/Pager/styles.js +44 -0
  64. package/dist/components/Pager/styles.js.map +1 -0
  65. package/dist/components/RadioInput/index.d.ts +26 -25
  66. package/dist/components/RadioInput/index.js +68 -74
  67. package/dist/components/RadioInput/index.js.map +1 -1
  68. package/dist/components/RadioInput/styles.d.ts +54 -50
  69. package/dist/components/RadioInput/styles.js +44 -44
  70. package/dist/components/RadioInput/styles.js.map +1 -1
  71. package/dist/components/Scroll.d.ts +11 -10
  72. package/dist/components/Scroll.js +75 -72
  73. package/dist/components/Scroll.js.map +1 -1
  74. package/dist/components/Sections.d.ts +11 -0
  75. package/dist/components/Sections.js +77 -0
  76. package/dist/components/Sections.js.map +1 -0
  77. package/dist/components/Select/index.d.ts +5 -2
  78. package/dist/components/Select/index.js +144 -30
  79. package/dist/components/Select/index.js.map +1 -1
  80. package/dist/components/Select/styles.d.ts +9 -0
  81. package/dist/components/Select/styles.js +57 -0
  82. package/dist/components/Select/styles.js.map +1 -0
  83. package/dist/components/Select/types.d.ts +33 -0
  84. package/dist/components/Select/types.js +3 -0
  85. package/dist/components/Select/types.js.map +1 -0
  86. package/dist/components/Slider/Mark.d.ts +3 -0
  87. package/dist/components/Slider/Mark.js +32 -0
  88. package/dist/components/Slider/Mark.js.map +1 -0
  89. package/dist/components/Slider/Thumb.d.ts +7 -0
  90. package/dist/components/Slider/Thumb.js +30 -0
  91. package/dist/components/Slider/Thumb.js.map +1 -0
  92. package/dist/components/Slider/index.d.ts +3 -0
  93. package/dist/components/Slider/index.js +94 -0
  94. package/dist/components/Slider/index.js.map +1 -0
  95. package/dist/components/{Slider.d.ts → Slider/types.d.ts} +25 -20
  96. package/dist/components/Slider/types.js +3 -0
  97. package/dist/components/Slider/types.js.map +1 -0
  98. package/dist/components/Switch.d.ts +13 -13
  99. package/dist/components/Switch.js +71 -72
  100. package/dist/components/Switch.js.map +1 -1
  101. package/dist/components/Text.d.ts +12 -12
  102. package/dist/components/Text.js +48 -48
  103. package/dist/components/Text.js.map +1 -1
  104. package/dist/components/TextInput.d.ts +162 -146
  105. package/dist/components/TextInput.js +149 -146
  106. package/dist/components/TextInput.js.map +1 -1
  107. package/dist/components/Touchable.d.ts +14 -13
  108. package/dist/components/Touchable.js +57 -59
  109. package/dist/components/Touchable.js.map +1 -1
  110. package/dist/components/View.d.ts +114 -192
  111. package/dist/components/View.js +50 -50
  112. package/dist/components/View.js.map +1 -1
  113. package/dist/components/{index.d.ts → components.d.ts} +24 -21
  114. package/dist/components/{index.js → components.js} +37 -34
  115. package/dist/components/components.js.map +1 -0
  116. package/dist/index.d.ts +5 -3
  117. package/dist/index.js +24 -21
  118. package/dist/index.js.map +1 -1
  119. package/dist/modules/documentPicker.d.ts +3 -1
  120. package/dist/modules/documentPicker.js +11 -9
  121. package/dist/modules/documentPicker.js.map +1 -1
  122. package/dist/modules/fastImage.d.ts +1 -1
  123. package/dist/modules/fastImage.js +9 -9
  124. package/dist/modules/fastImage.js.map +1 -1
  125. package/dist/modules/reactNavigation.d.ts +3 -0
  126. package/dist/modules/reactNavigation.js +11 -0
  127. package/dist/modules/reactNavigation.js.map +1 -0
  128. package/dist/modules/types/fileTypes.d.ts +138 -0
  129. package/dist/modules/types/fileTypes.js +3 -0
  130. package/dist/modules/types/fileTypes.js.map +1 -0
  131. package/dist/types/utility.d.ts +2 -2
  132. package/dist/types/utility.js +2 -2
  133. package/dist/types/utility.js.map +0 -0
  134. package/dist/utils/OSAlert.d.ts +31 -31
  135. package/dist/utils/OSAlert.js +141 -88
  136. package/dist/utils/OSAlert.js.map +1 -1
  137. package/dist/utils/misc.d.ts +2 -0
  138. package/dist/utils/misc.js +26 -0
  139. package/dist/utils/misc.js.map +1 -0
  140. package/dist/utils/styles.d.ts +1 -1
  141. package/dist/utils/styles.js +12 -12
  142. package/dist/utils/styles.js.map +1 -1
  143. package/package.json +40 -35
  144. package/src/components/ActivityIndicator.tsx +46 -37
  145. package/src/components/Animated.tsx +34 -31
  146. package/src/components/Button.tsx +95 -62
  147. package/src/components/Checkbox/index.tsx +81 -68
  148. package/src/components/Checkbox/styles.ts +72 -63
  149. package/src/components/ContentView.tsx +58 -52
  150. package/src/components/FileInput.tsx +179 -69
  151. package/src/components/Icon.tsx +58 -35
  152. package/src/components/Image.tsx +59 -43
  153. package/src/components/List.tsx +100 -0
  154. package/src/components/Modal/index.tsx +158 -143
  155. package/src/components/Modal/styles.ts +133 -122
  156. package/src/components/Navigation/Navigation.tsx +58 -0
  157. package/src/components/Navigation/constants.ts +8 -0
  158. package/src/components/Navigation/index.tsx +3 -0
  159. package/src/components/Navigation/types.ts +35 -0
  160. package/src/components/Navigation/utils.tsx +59 -0
  161. package/src/components/Overlay.tsx +77 -72
  162. package/src/components/Pager/index.tsx +240 -0
  163. package/src/components/Pager/styles.ts +51 -0
  164. package/src/components/RadioInput/index.tsx +101 -76
  165. package/src/components/RadioInput/styles.ts +67 -62
  166. package/src/components/Scroll.tsx +98 -87
  167. package/src/components/Sections.tsx +100 -0
  168. package/src/components/Select/index.tsx +184 -8
  169. package/src/components/Select/styles.ts +81 -0
  170. package/src/components/Select/types.ts +41 -0
  171. package/src/components/Slider/Mark.tsx +46 -0
  172. package/src/components/Slider/Thumb.tsx +29 -0
  173. package/src/components/Slider/index.tsx +123 -0
  174. package/src/components/Slider/types.ts +25 -0
  175. package/src/components/Switch.tsx +81 -73
  176. package/src/components/Text.tsx +30 -31
  177. package/src/components/TextInput.tsx +204 -206
  178. package/src/components/Touchable.tsx +65 -51
  179. package/src/components/View.tsx +46 -43
  180. package/src/components/components.ts +26 -0
  181. package/src/index.ts +6 -3
  182. package/src/modules/documentPicker.ts +7 -2
  183. package/src/modules/fastImage.ts +2 -2
  184. package/src/modules/index.d.ts +496 -0
  185. package/src/modules/reactNavigation.ts +4 -0
  186. package/src/modules/types/documentPicker.d.ts +215 -0
  187. package/src/modules/types/fileTypes.ts +138 -0
  188. package/src/types/utility.ts +3 -3
  189. package/src/utils/OSAlert.ts +180 -122
  190. package/src/utils/misc.ts +24 -0
  191. package/src/utils/styles.ts +14 -17
  192. package/dist/components/Drawer.d.ts +0 -23
  193. package/dist/components/Drawer.js +0 -78
  194. package/dist/components/Drawer.js.map +0 -1
  195. package/dist/components/Navigation.d.ts +0 -30
  196. package/dist/components/Navigation.js +0 -126
  197. package/dist/components/Navigation.js.map +0 -1
  198. package/dist/components/Slider.js +0 -130
  199. package/dist/components/Slider.js.map +0 -1
  200. package/dist/components/index.js.map +0 -1
  201. package/dist/modules/cropPicker.d.ts +0 -1
  202. package/dist/modules/cropPicker.js +0 -10
  203. package/dist/modules/cropPicker.js.map +0 -1
  204. package/src/components/Navigation.tsx +0 -125
  205. package/src/components/Slider.tsx +0 -198
  206. package/src/components/index.ts +0 -23
@@ -0,0 +1,215 @@
1
+ import { ModalPropsIOS } from 'react-native'
2
+ import type { PlatformTypes, SupportedPlatforms } from './fileTypes'
3
+
4
+ export declare type DocumentPickerResponse = {
5
+ uri: string
6
+ name: string
7
+ copyError?: string
8
+ fileCopyUri: string | null
9
+ type: string | null
10
+ size: number | null
11
+ }
12
+ export declare const types: Readonly<{
13
+ readonly allFiles: '*/*'
14
+ readonly audio: 'audio/*'
15
+ readonly csv: 'text/csv'
16
+ readonly doc: 'application/msword'
17
+ readonly docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
18
+ readonly images: 'image/*'
19
+ readonly pdf: 'application/pdf'
20
+ readonly plainText: 'text/plain'
21
+ readonly ppt: 'application/vnd.ms-powerpoint'
22
+ readonly pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation'
23
+ readonly video: 'video/*'
24
+ readonly xls: 'application/vnd.ms-excel'
25
+ readonly xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
26
+ readonly zip: 'application/zip'
27
+ }> | Readonly<{
28
+ readonly allFiles: 'public.item'
29
+ readonly audio: 'public.audio'
30
+ readonly csv: 'public.comma-separated-values-text'
31
+ readonly doc: 'com.microsoft.word.doc'
32
+ readonly docx: 'org.openxmlformats.wordprocessingml.document'
33
+ readonly images: 'public.image'
34
+ readonly pdf: 'com.adobe.pdf'
35
+ readonly plainText: 'public.plain-text'
36
+ readonly ppt: 'com.microsoft.powerpoint.ppt'
37
+ readonly pptx: 'org.openxmlformats.presentationml.presentation'
38
+ readonly video: 'public.movie'
39
+ readonly xls: 'com.microsoft.excel.xls'
40
+ readonly xlsx: 'org.openxmlformats.spreadsheetml.sheet'
41
+ readonly zip: 'public.zip-archive'
42
+ }> | Readonly<{
43
+ readonly allFiles: '*'
44
+ readonly audio: '.3g2 .3gp .aac .adt .adts .aif .aifc .aiff .asf .au .m3u .m4a .m4b .mid .midi .mp2 .mp3 .mp4 .rmi .snd .wav .wax .wma'
45
+ readonly csv: '.csv'
46
+ readonly doc: '.doc'
47
+ readonly docx: '.docx'
48
+ readonly images: '.jpeg .jpg .png'
49
+ readonly pdf: '.pdf'
50
+ readonly plainText: '.txt'
51
+ readonly ppt: '.ppt'
52
+ readonly pptx: '.pptx'
53
+ readonly video: '.mp4'
54
+ readonly xls: '.xls'
55
+ readonly xlsx: '.xlsx'
56
+ readonly zip: '.zip .gz'
57
+ }>
58
+ export declare type DirectoryPickerResponse = {
59
+ uri: string
60
+ }
61
+ export declare type DocumentPickerOptions<OS extends SupportedPlatforms> = {
62
+ type?: string | PlatformTypes[OS][keyof PlatformTypes[OS]] | Array<PlatformTypes[OS][keyof PlatformTypes[OS]] | string>
63
+ mode?: 'import' | 'open'
64
+ copyTo?: 'cachesDirectory' | 'documentDirectory'
65
+ allowMultiSelection?: boolean
66
+ } & Pick<ModalPropsIOS, 'presentationStyle'>
67
+ export declare function pickDirectory<
68
+ OS extends SupportedPlatforms>(params?: Pick<DocumentPickerOptions<OS>, 'presentationStyle'>): Promise<DirectoryPickerResponse | null>
69
+ export declare function pickMultiple<OS extends SupportedPlatforms>(opts?: DocumentPickerOptions<OS>): Promise<DocumentPickerResponse[]>
70
+ export declare function pickSingle<OS extends SupportedPlatforms>(opts?: DocumentPickerOptions<OS>): Promise<DocumentPickerResponse>
71
+ export declare function pick<OS extends SupportedPlatforms>(opts?: DocumentPickerOptions<OS>): Promise<DocumentPickerResponse[]>
72
+ export declare function releaseSecureAccess(uris: Array<string>): Promise<void>
73
+ export declare type NativeModuleErrorShape = Error & {
74
+ code?: string
75
+ }
76
+ export declare function isCancel(err: unknown): boolean
77
+ export declare function isInProgress(err: unknown): boolean
78
+
79
+ export type DocumentPicker = {
80
+ isCancel: typeof isCancel
81
+ releaseSecureAccess: typeof releaseSecureAccess
82
+ pickDirectory: typeof pickDirectory
83
+ pick: typeof pick
84
+ pickMultiple: typeof pickMultiple
85
+ pickSingle: typeof pickSingle
86
+ types: Readonly<{
87
+ readonly allFiles: '*/*'
88
+ readonly audio: 'audio/*'
89
+ readonly csv: 'text/csv'
90
+ readonly doc: 'application/msword'
91
+ readonly docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
92
+ readonly images: 'image/*'
93
+ readonly pdf: 'application/pdf'
94
+ readonly plainText: 'text/plain'
95
+ readonly ppt: 'application/vnd.ms-powerpoint'
96
+ readonly pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation'
97
+ readonly video: 'video/*'
98
+ readonly xls: 'application/vnd.ms-excel'
99
+ readonly xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
100
+ readonly zip: 'application/zip'
101
+ }> | Readonly<{
102
+ readonly allFiles: 'public.item'
103
+ readonly audio: 'public.audio'
104
+ readonly csv: 'public.comma-separated-values-text'
105
+ readonly doc: 'com.microsoft.word.doc'
106
+ readonly docx: 'org.openxmlformats.wordprocessingml.document'
107
+ readonly images: 'public.image'
108
+ readonly pdf: 'com.adobe.pdf'
109
+ readonly plainText: 'public.plain-text'
110
+ readonly ppt: 'com.microsoft.powerpoint.ppt'
111
+ readonly pptx: 'org.openxmlformats.presentationml.presentation'
112
+ readonly video: 'public.movie'
113
+ readonly xls: 'com.microsoft.excel.xls'
114
+ readonly xlsx: 'org.openxmlformats.spreadsheetml.sheet'
115
+ readonly zip: 'public.zip-archive'
116
+ }> | Readonly<{
117
+ readonly allFiles: '*'
118
+ readonly audio: '.3g2 .3gp .aac .adt .adts .aif .aifc .aiff .asf .au .m3u .m4a .m4b .mid .midi .mp2 .mp3 .mp4 .rmi .snd .wav .wax .wma'
119
+ readonly csv: '.csv'
120
+ readonly doc: '.doc'
121
+ readonly docx: '.docx'
122
+ readonly images: '.jpeg .jpg .png'
123
+ readonly pdf: '.pdf'
124
+ readonly plainText: '.txt'
125
+ readonly ppt: '.ppt'
126
+ readonly pptx: '.pptx'
127
+ readonly video: '.mp4'
128
+ readonly xls: '.xls'
129
+ readonly xlsx: '.xlsx'
130
+ readonly zip: '.zip .gz'
131
+ }>
132
+ perPlatformTypes: {
133
+ android: Readonly<{
134
+ readonly allFiles: '*/*'
135
+ readonly audio: 'audio/*'
136
+ readonly csv: 'text/csv'
137
+ readonly doc: 'application/msword'
138
+ readonly docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
139
+ readonly images: 'image/*'
140
+ readonly pdf: 'application/pdf'
141
+ readonly plainText: 'text/plain'
142
+ readonly ppt: 'application/vnd.ms-powerpoint'
143
+ readonly pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation'
144
+ readonly video: 'video/*'
145
+ readonly xls: 'application/vnd.ms-excel'
146
+ readonly xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
147
+ readonly zip: 'application/zip'
148
+ }>
149
+ ios: Readonly<{
150
+ readonly allFiles: 'public.item'
151
+ readonly audio: 'public.audio'
152
+ readonly csv: 'public.comma-separated-values-text'
153
+ readonly doc: 'com.microsoft.word.doc'
154
+ readonly docx: 'org.openxmlformats.wordprocessingml.document'
155
+ readonly images: 'public.image'
156
+ readonly pdf: 'com.adobe.pdf'
157
+ readonly plainText: 'public.plain-text'
158
+ readonly ppt: 'com.microsoft.powerpoint.ppt'
159
+ readonly pptx: 'org.openxmlformats.presentationml.presentation'
160
+ readonly video: 'public.movie'
161
+ readonly xls: 'com.microsoft.excel.xls'
162
+ readonly xlsx: 'org.openxmlformats.spreadsheetml.sheet'
163
+ readonly zip: 'public.zip-archive'
164
+ }>
165
+ windows: Readonly<{
166
+ readonly allFiles: '*'
167
+ readonly audio: '.3g2 .3gp .aac .adt .adts .aif .aifc .aiff .asf .au .m3u .m4a .m4b .mid .midi .mp2 .mp3 .mp4 .rmi .snd .wav .wax .wma'
168
+ readonly csv: '.csv'
169
+ readonly doc: '.doc'
170
+ readonly docx: '.docx'
171
+ readonly images: '.jpeg .jpg .png'
172
+ readonly pdf: '.pdf'
173
+ readonly plainText: '.txt'
174
+ readonly ppt: '.ppt'
175
+ readonly pptx: '.pptx'
176
+ readonly video: '.mp4'
177
+ readonly xls: '.xls'
178
+ readonly xlsx: '.xlsx'
179
+ readonly zip: '.zip .gz'
180
+ }>
181
+ macos: Readonly<{
182
+ readonly allFiles: '*'
183
+ readonly audio: '.3g2 .3gp .aac .adt .adts .aif .aifc .aiff .asf .au .m3u .m4a .m4b .mid .midi .mp2 .mp3 .mp4 .rmi .snd .wav .wax .wma'
184
+ readonly csv: '.csv'
185
+ readonly doc: '.doc'
186
+ readonly docx: '.docx'
187
+ readonly images: '.jpeg .jpg .png'
188
+ readonly pdf: '.pdf'
189
+ readonly plainText: '.txt'
190
+ readonly ppt: '.ppt'
191
+ readonly pptx: '.pptx'
192
+ readonly video: '.mp4'
193
+ readonly xls: '.xls'
194
+ readonly xlsx: '.xlsx'
195
+ readonly zip: '.zip .gz'
196
+ }>
197
+ web: Readonly<{
198
+ readonly allFiles: '*'
199
+ readonly audio: '.3g2 .3gp .aac .adt .adts .aif .aifc .aiff .asf .au .m3u .m4a .m4b .mid .midi .mp2 .mp3 .mp4 .rmi .snd .wav .wax .wma'
200
+ readonly csv: '.csv'
201
+ readonly doc: '.doc'
202
+ readonly docx: '.docx'
203
+ readonly images: '.jpeg .jpg .png'
204
+ readonly pdf: '.pdf'
205
+ readonly plainText: '.txt'
206
+ readonly ppt: '.ppt'
207
+ readonly pptx: '.pptx'
208
+ readonly video: '.mp4'
209
+ readonly xls: '.xls'
210
+ readonly xlsx: '.xlsx'
211
+ readonly zip: '.zip .gz'
212
+ }>
213
+ }
214
+ }
215
+
@@ -0,0 +1,138 @@
1
+ declare const mimeTypes: Readonly<{
2
+ readonly allFiles: '*/*'
3
+ readonly audio: 'audio/*'
4
+ readonly csv: 'text/csv'
5
+ readonly doc: 'application/msword'
6
+ readonly docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
7
+ readonly images: 'image/*'
8
+ readonly pdf: 'application/pdf'
9
+ readonly plainText: 'text/plain'
10
+ readonly ppt: 'application/vnd.ms-powerpoint'
11
+ readonly pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation'
12
+ readonly video: 'video/*'
13
+ readonly xls: 'application/vnd.ms-excel'
14
+ readonly xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
15
+ readonly zip: 'application/zip'
16
+ }>
17
+ declare const utis: Readonly<{
18
+ readonly allFiles: 'public.item'
19
+ readonly audio: 'public.audio'
20
+ readonly csv: 'public.comma-separated-values-text'
21
+ readonly doc: 'com.microsoft.word.doc'
22
+ readonly docx: 'org.openxmlformats.wordprocessingml.document'
23
+ readonly images: 'public.image'
24
+ readonly pdf: 'com.adobe.pdf'
25
+ readonly plainText: 'public.plain-text'
26
+ readonly ppt: 'com.microsoft.powerpoint.ppt'
27
+ readonly pptx: 'org.openxmlformats.presentationml.presentation'
28
+ readonly video: 'public.movie'
29
+ readonly xls: 'com.microsoft.excel.xls'
30
+ readonly xlsx: 'org.openxmlformats.spreadsheetml.sheet'
31
+ readonly zip: 'public.zip-archive'
32
+ }>
33
+ declare const extensions: Readonly<{
34
+ readonly allFiles: '*'
35
+ readonly audio: '.3g2 .3gp .aac .adt .adts .aif .aifc .aiff .asf .au .m3u .m4a .m4b .mid .midi .mp2 .mp3 .mp4 .rmi .snd .wav .wax .wma'
36
+ readonly csv: '.csv'
37
+ readonly doc: '.doc'
38
+ readonly docx: '.docx'
39
+ readonly images: '.jpeg .jpg .png'
40
+ readonly pdf: '.pdf'
41
+ readonly plainText: '.txt'
42
+ readonly ppt: '.ppt'
43
+ readonly pptx: '.pptx'
44
+ readonly video: '.mp4'
45
+ readonly xls: '.xls'
46
+ readonly xlsx: '.xlsx'
47
+ readonly zip: '.zip .gz'
48
+ }>
49
+ export declare type PlatformTypes = {
50
+ android: typeof mimeTypes
51
+ ios: typeof utis
52
+ windows: typeof extensions
53
+ }
54
+ export declare type SupportedPlatforms = 'ios' | 'android' | 'windows'
55
+ export declare const perPlatformTypes: {
56
+ android: Readonly<{
57
+ readonly allFiles: '*/*'
58
+ readonly audio: 'audio/*'
59
+ readonly csv: 'text/csv'
60
+ readonly doc: 'application/msword'
61
+ readonly docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
62
+ readonly images: 'image/*'
63
+ readonly pdf: 'application/pdf'
64
+ readonly plainText: 'text/plain'
65
+ readonly ppt: 'application/vnd.ms-powerpoint'
66
+ readonly pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation'
67
+ readonly video: 'video/*'
68
+ readonly xls: 'application/vnd.ms-excel'
69
+ readonly xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
70
+ readonly zip: 'application/zip'
71
+ }>
72
+ ios: Readonly<{
73
+ readonly allFiles: 'public.item'
74
+ readonly audio: 'public.audio'
75
+ readonly csv: 'public.comma-separated-values-text'
76
+ readonly doc: 'com.microsoft.word.doc'
77
+ readonly docx: 'org.openxmlformats.wordprocessingml.document'
78
+ readonly images: 'public.image'
79
+ readonly pdf: 'com.adobe.pdf'
80
+ readonly plainText: 'public.plain-text'
81
+ readonly ppt: 'com.microsoft.powerpoint.ppt'
82
+ readonly pptx: 'org.openxmlformats.presentationml.presentation'
83
+ readonly video: 'public.movie'
84
+ readonly xls: 'com.microsoft.excel.xls'
85
+ readonly xlsx: 'org.openxmlformats.spreadsheetml.sheet'
86
+ readonly zip: 'public.zip-archive'
87
+ }>
88
+ windows: Readonly<{
89
+ readonly allFiles: '*'
90
+ readonly audio: '.3g2 .3gp .aac .adt .adts .aif .aifc .aiff .asf .au .m3u .m4a .m4b .mid .midi .mp2 .mp3 .mp4 .rmi .snd .wav .wax .wma'
91
+ readonly csv: '.csv'
92
+ readonly doc: '.doc'
93
+ readonly docx: '.docx'
94
+ readonly images: '.jpeg .jpg .png'
95
+ readonly pdf: '.pdf'
96
+ readonly plainText: '.txt'
97
+ readonly ppt: '.ppt'
98
+ readonly pptx: '.pptx'
99
+ readonly video: '.mp4'
100
+ readonly xls: '.xls'
101
+ readonly xlsx: '.xlsx'
102
+ readonly zip: '.zip .gz'
103
+ }>
104
+ macos: Readonly<{
105
+ readonly allFiles: '*'
106
+ readonly audio: '.3g2 .3gp .aac .adt .adts .aif .aifc .aiff .asf .au .m3u .m4a .m4b .mid .midi .mp2 .mp3 .mp4 .rmi .snd .wav .wax .wma'
107
+ readonly csv: '.csv'
108
+ readonly doc: '.doc'
109
+ readonly docx: '.docx'
110
+ readonly images: '.jpeg .jpg .png'
111
+ readonly pdf: '.pdf'
112
+ readonly plainText: '.txt'
113
+ readonly ppt: '.ppt'
114
+ readonly pptx: '.pptx'
115
+ readonly video: '.mp4'
116
+ readonly xls: '.xls'
117
+ readonly xlsx: '.xlsx'
118
+ readonly zip: '.zip .gz'
119
+ }>
120
+ web: Readonly<{
121
+ readonly allFiles: '*'
122
+ readonly audio: '.3g2 .3gp .aac .adt .adts .aif .aifc .aiff .asf .au .m3u .m4a .m4b .mid .midi .mp2 .mp3 .mp4 .rmi .snd .wav .wax .wma'
123
+ readonly csv: '.csv'
124
+ readonly doc: '.doc'
125
+ readonly docx: '.docx'
126
+ readonly images: '.jpeg .jpg .png'
127
+ readonly pdf: '.pdf'
128
+ readonly plainText: '.txt'
129
+ readonly ppt: '.ppt'
130
+ readonly pptx: '.pptx'
131
+ readonly video: '.mp4'
132
+ readonly xls: '.xls'
133
+ readonly xlsx: '.xlsx'
134
+ readonly zip: '.zip .gz'
135
+ }>
136
+ }
137
+ export declare const typesAreEqual: true
138
+ export {}
@@ -1,3 +1,3 @@
1
- import { StyleProp } from "react-native";
2
-
3
- export type StylesOf<C extends string> = Partial<Record<C, StyleProp<any>> >
1
+ import { StyleProp } from 'react-native'
2
+
3
+ export type StylesOf<C extends string> = Partial<Record<C, StyleProp<any>>>
@@ -1,122 +1,180 @@
1
- /* eslint no-restricted-imports: 'off' */
2
- import { Alert, AlertButton } from 'react-native'
3
-
4
-
5
- /**
6
- * Alert.{function} receives three parameters, the last one being an object:
7
- *
8
- * @param {string} title text to appear in title
9
- * @param {string} body text to appear in body
10
- * @param {object} options array of buttons and callbacks
11
- *
12
- * options properties
13
- * @property {string} name object description
14
- * @property {function} run callback function to run on press
15
- */
16
-
17
- type NativeAlertArgs = Parameters<typeof Alert.alert>
18
-
19
- type OSAlertArgs = {
20
- title:NativeAlertArgs['0'],
21
- body?: NativeAlertArgs['1']
22
- options?: NativeAlertArgs['2']
23
- }
24
- type AlertEvent = AlertButton['onPress']
25
-
26
- type NamedEvents<E extends string> = Partial<Record<E, AlertEvent>>
27
-
28
- function ask({ title, body, options = null }:OSAlertArgs) {
29
-
30
- if (!title) {
31
- title = 'Quick quetion'
32
- }
33
- OSAlert({
34
- title,
35
- body,
36
- options,
37
- })
38
- }
39
-
40
- function warn({ title, body, onAccept, onReject }:OSAlertArgs & NamedEvents<'onReject'|'onAccept'>) {
41
-
42
- if (!title) {
43
- title = 'Hang on'
44
- }
45
- if (!body) {
46
- body = 'Are you sure?'
47
- }
48
- if (!onReject) {
49
- onReject = () => null
50
- }
51
- OSAlert({
52
- title,
53
- body,
54
- options: [
55
- {
56
- text: 'Cancel',
57
- onPress:onReject,
58
- },
59
- {
60
- text: 'OK',
61
- style: 'destructive',
62
- onPress: onAccept,
63
- },
64
- ],
65
- })
66
- }
67
-
68
- function info({ title, body, onDismiss = () => null }:OSAlertArgs & NamedEvents<'onDismiss'>) {
69
-
70
- if (!title) {
71
- title = 'FYI'
72
- }
73
- OSAlert({
74
- title,
75
- body,
76
- options: [
77
- {
78
- text: 'OK',
79
- onPress:onDismiss,
80
- },
81
- ],
82
- })
83
- }
84
-
85
- function OSError({ title, body, onDismiss = () => null }:OSAlertArgs & NamedEvents<'onDismiss'>) {
86
- if (!title) {
87
- title = 'Whoops!'
88
- }
89
- if (!body) {
90
- body = 'Something went wrong'
91
- }
92
- OSAlert({
93
- title,
94
- body,
95
- options: [
96
- {
97
- text: 'OK',
98
- onPress: () => onDismiss(),
99
- },
100
- ],
101
- })
102
- }
103
-
104
- function OSAlert(params:OSAlertArgs) {
105
- Alert.alert(
106
- params.title,
107
- params.body,
108
- params.options,
109
- {
110
- cancelable: false,
111
- },
112
- )
113
- }
114
-
115
-
116
- export default {
117
- ask,
118
- warn,
119
- info,
120
- error: OSError,
121
- }
122
-
1
+ /* eslint no-restricted-imports: 'off' */
2
+ /* eslint prefer-const: 'off' */
3
+ import { Alert, AlertButton } from 'react-native'
4
+
5
+ /**
6
+ * Alert.{function} receives three parameters, the last one being an object:
7
+ *
8
+ * @param {string} title text to appear in title
9
+ * @param {string} body text to appear in body
10
+ * @param {object} options array of buttons and callbacks
11
+ *
12
+ * options properties
13
+ * @property {string} name object description
14
+ * @property {function} run callback function to run on press
15
+ */
16
+
17
+ type NativeAlertArgs = Parameters<typeof Alert.alert>
18
+
19
+ type OSAlertArgs = {
20
+ title: NativeAlertArgs['0']
21
+ body?: NativeAlertArgs['1']
22
+ options?: NativeAlertArgs['2']
23
+ }
24
+ type AlertEvent = AlertButton['onPress']
25
+ type OSAlertType = 'info' | 'error' | 'warn' | 'ask'
26
+ type NamedEvents<E extends string> = Partial<Record<E, AlertEvent>>
27
+
28
+ const currentAlerts = {
29
+
30
+ }
31
+
32
+ function generateAlertID(from:OSAlertArgs & {type: OSAlertType}) {
33
+ return [
34
+ from.type,
35
+ from.title,
36
+ from.body,
37
+ ].join('-')
38
+ }
39
+
40
+ function shouldShowAlert(args:OSAlertArgs, type: OSAlertType) {
41
+ const alertId = generateAlertID({ ...args, type })
42
+
43
+ if (!Object.keys(currentAlerts).includes(alertId)) {
44
+ currentAlerts[alertId] = true
45
+
46
+ return alertId
47
+ }
48
+
49
+ return ''
50
+ }
51
+
52
+ function popAlert(id:string) {
53
+ delete currentAlerts[id]
54
+ }
55
+
56
+ function ask({ title, body, options = null }: OSAlertArgs) {
57
+ if (!title) {
58
+ title = 'Quick quetion'
59
+ }
60
+ OSAlert({
61
+ title,
62
+ body,
63
+ options,
64
+ })
65
+ }
66
+
67
+ function warn(args: OSAlertArgs & NamedEvents<'onReject' | 'onAccept'>) {
68
+ const id = shouldShowAlert(args, 'warn')
69
+
70
+ if (!id) return
71
+ let {
72
+ title,
73
+ body,
74
+ onAccept,
75
+ onReject,
76
+ } = args
77
+
78
+ if (!title) {
79
+ title = 'Hang on'
80
+ }
81
+ if (!body) {
82
+ body = 'Are you sure?'
83
+ }
84
+ if (!onReject) {
85
+ onReject = () => null
86
+ }
87
+ OSAlert({
88
+ title,
89
+ body,
90
+ options: [
91
+ {
92
+ text: 'Cancel',
93
+ onPress: () => {
94
+ popAlert(id)
95
+ onReject()
96
+ },
97
+ },
98
+ {
99
+ text: 'OK',
100
+ style: 'destructive',
101
+ onPress: () => {
102
+ popAlert(id)
103
+ onAccept?.()
104
+ },
105
+ },
106
+ ],
107
+ })
108
+ }
109
+
110
+ function info(args: OSAlertArgs & NamedEvents<'onDismiss'>) {
111
+ const id = shouldShowAlert(args, 'info')
112
+
113
+ if (!id) return
114
+ let {
115
+ title,
116
+ body,
117
+ onDismiss = () => null,
118
+ } = args
119
+
120
+ if (!title) {
121
+ title = 'FYI'
122
+ }
123
+ OSAlert({
124
+ title,
125
+ body,
126
+ options: [
127
+ {
128
+ text: 'OK',
129
+ onPress: () => {
130
+ popAlert(id)
131
+ onDismiss?.()
132
+ },
133
+ },
134
+ ],
135
+ })
136
+ }
137
+
138
+ function OSError(args: OSAlertArgs & NamedEvents<'onDismiss'>) {
139
+ const id = shouldShowAlert(args, 'error')
140
+
141
+ if (!id) return
142
+
143
+ let {
144
+ title,
145
+ body,
146
+ } = args
147
+
148
+ if (!title) {
149
+ title = 'Whoops!'
150
+ }
151
+ if (!body) {
152
+ body = 'Something went wrong'
153
+ }
154
+ OSAlert({
155
+ title,
156
+ body,
157
+ options: [
158
+ {
159
+ text: 'OK',
160
+ onPress: () => {
161
+ popAlert(id)
162
+ args?.onDismiss?.()
163
+ },
164
+ },
165
+ ],
166
+ })
167
+ }
168
+
169
+ function OSAlert(params: OSAlertArgs) {
170
+ Alert.alert(params.title, params.body, params.options, {
171
+ cancelable: false,
172
+ })
173
+ }
174
+
175
+ export default {
176
+ ask,
177
+ warn,
178
+ info,
179
+ error: OSError,
180
+ }