@fto-consult/expo-ui 3.4.1 → 3.6.1

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 (250) hide show
  1. package/bin/index.js +99 -99
  2. package/package.json +3 -3
  3. package/src/components/{AutoResizer/index.js → AutoSizer/AutoResizer.js} +0 -0
  4. package/src/components/AutoSizer/Vertical.js +89 -0
  5. package/src/components/AutoSizer/index.js +3 -0
  6. package/src/components/Countries/resources/countries-normalized.json +1987 -1987
  7. package/src/components/Countries/resources/countries-with-not-extra.json +1211 -1211
  8. package/src/components/Countries/resources/countries.sql +243 -243
  9. package/src/components/Datagrid/Accordion/index.js +1 -3
  10. package/src/components/Datagrid/Common/Common.js +6 -0
  11. package/src/components/Datagrid/SWRDatagrid.js +2 -0
  12. package/src/components/Datagrid/Table/index.js +5 -10
  13. package/src/components/ScrollView/index copy.js +38 -0
  14. package/src/components/ScrollView/index.back.js +84 -0
  15. package/src/components/ScrollView/index.js +16 -68
  16. package/src/components/ScrollView/index.withWeb.js +83 -0
  17. package/src/components/Table/AbsoluteScrollView.js +13 -3
  18. package/src/components/Table/{List.js → List/List.js} +1 -1
  19. package/src/components/Table/{List.native.js → List/List.native.js} +0 -0
  20. package/src/components/Table/List/index.js +15 -0
  21. package/src/components/Table/index.js +1 -2
  22. package/src/layouts/Screen/TableData.js +8 -4
  23. package/src/layouts/Screen/utils.js +5 -2
  24. package/electron/dist/asset-manifest.json +0 -221
  25. package/electron/dist/favicon-16.png +0 -0
  26. package/electron/dist/favicon-32.png +0 -0
  27. package/electron/dist/favicon.ico +0 -0
  28. package/electron/dist/fonts/AntDesign.ttf +0 -0
  29. package/electron/dist/fonts/FontAwesome5_Brands.ttf +0 -0
  30. package/electron/dist/fonts/FontAwesome5_Solid.ttf +0 -0
  31. package/electron/dist/fonts/Fontisto.ttf +0 -0
  32. package/electron/dist/fonts/Foundation.ttf +0 -0
  33. package/electron/dist/fonts/Ionicons.ttf +0 -0
  34. package/electron/dist/fonts/MaterialCommunityIcons.ttf +0 -0
  35. package/electron/dist/fonts/MaterialIcons.ttf +0 -0
  36. package/electron/dist/fonts/SimpleLineIcons.ttf +0 -0
  37. package/electron/dist/index.html +0 -1
  38. package/electron/dist/manifest.json +0 -35
  39. package/electron/dist/pwa/apple-touch-icon/apple-touch-icon-180.png +0 -0
  40. package/electron/dist/pwa/apple-touch-startup-image/apple-touch-startup-image-1125x2436.png +0 -0
  41. package/electron/dist/pwa/apple-touch-startup-image/apple-touch-startup-image-1242x2208.png +0 -0
  42. package/electron/dist/pwa/apple-touch-startup-image/apple-touch-startup-image-1242x2688.png +0 -0
  43. package/electron/dist/pwa/apple-touch-startup-image/apple-touch-startup-image-1536x2048.png +0 -0
  44. package/electron/dist/pwa/apple-touch-startup-image/apple-touch-startup-image-1668x2224.png +0 -0
  45. package/electron/dist/pwa/apple-touch-startup-image/apple-touch-startup-image-1668x2388.png +0 -0
  46. package/electron/dist/pwa/apple-touch-startup-image/apple-touch-startup-image-2048x2732.png +0 -0
  47. package/electron/dist/pwa/apple-touch-startup-image/apple-touch-startup-image-640x1136.png +0 -0
  48. package/electron/dist/pwa/apple-touch-startup-image/apple-touch-startup-image-750x1334.png +0 -0
  49. package/electron/dist/pwa/apple-touch-startup-image/apple-touch-startup-image-828x1792.png +0 -0
  50. package/electron/dist/pwa/chrome-icon/chrome-icon-144.png +0 -0
  51. package/electron/dist/pwa/chrome-icon/chrome-icon-192.png +0 -0
  52. package/electron/dist/pwa/chrome-icon/chrome-icon-512.png +0 -0
  53. package/electron/dist/serve.json +0 -13
  54. package/electron/dist/static/js/2.e3d2de23.chunk.js +0 -2
  55. package/electron/dist/static/js/2.e3d2de23.chunk.js.LICENSE.txt +0 -118
  56. package/electron/dist/static/js/app.6a0a3d72.chunk.js +0 -1
  57. package/electron/dist/static/js/runtime~app.318494c4.js +0 -1
  58. package/electron/dist/static/media/ad.897c877d.png +0 -0
  59. package/electron/dist/static/media/add_photo.255dd6dd.png +0 -0
  60. package/electron/dist/static/media/af.9d0ab233.png +0 -0
  61. package/electron/dist/static/media/ag.152f8fb1.png +0 -0
  62. package/electron/dist/static/media/ai.81342ed3.png +0 -0
  63. package/electron/dist/static/media/al.3ba17dc1.png +0 -0
  64. package/electron/dist/static/media/ao.ff6d0e82.png +0 -0
  65. package/electron/dist/static/media/ar.a157e7e8.png +0 -0
  66. package/electron/dist/static/media/as.af7d5792.png +0 -0
  67. package/electron/dist/static/media/au.d8b2590e.png +0 -0
  68. package/electron/dist/static/media/aw.27c4c0ae.png +0 -0
  69. package/electron/dist/static/media/ax.568ed280.png +0 -0
  70. package/electron/dist/static/media/az.bb76a7dc.png +0 -0
  71. package/electron/dist/static/media/ba.0e3d844b.png +0 -0
  72. package/electron/dist/static/media/bb.4466d275.png +0 -0
  73. package/electron/dist/static/media/bd.56c6c3f7.png +0 -0
  74. package/electron/dist/static/media/bf.fb7bf643.png +0 -0
  75. package/electron/dist/static/media/bi.82121bd1.png +0 -0
  76. package/electron/dist/static/media/bl.c4f6b8c1.png +0 -0
  77. package/electron/dist/static/media/black-gradient-rotated.693a1835.png +0 -0
  78. package/electron/dist/static/media/bm.2b05930c.png +0 -0
  79. package/electron/dist/static/media/bn.fa1d112b.png +0 -0
  80. package/electron/dist/static/media/br.0bdb59a4.png +0 -0
  81. package/electron/dist/static/media/bs.cf3fb4b9.png +0 -0
  82. package/electron/dist/static/media/bt.f7bc1b24.png +0 -0
  83. package/electron/dist/static/media/by.aa680616.png +0 -0
  84. package/electron/dist/static/media/bz.94f967a4.png +0 -0
  85. package/electron/dist/static/media/ca.83c317eb.png +0 -0
  86. package/electron/dist/static/media/cc.7adb7e83.png +0 -0
  87. package/electron/dist/static/media/cd.829a5467.png +0 -0
  88. package/electron/dist/static/media/cf.05804c68.png +0 -0
  89. package/electron/dist/static/media/cg.6142b05b.png +0 -0
  90. package/electron/dist/static/media/ck.e6517d3a.png +0 -0
  91. package/electron/dist/static/media/cl.fedf287b.png +0 -0
  92. package/electron/dist/static/media/cm.13460532.png +0 -0
  93. package/electron/dist/static/media/cn.cb27a726.png +0 -0
  94. package/electron/dist/static/media/color-wheel.233ad67a.png +0 -0
  95. package/electron/dist/static/media/cu.c87a4974.png +0 -0
  96. package/electron/dist/static/media/cv.df006f17.png +0 -0
  97. package/electron/dist/static/media/cw.5600a05a.png +0 -0
  98. package/electron/dist/static/media/cx.3a1ed4dd.png +0 -0
  99. package/electron/dist/static/media/cy.cf9ba1fd.png +0 -0
  100. package/electron/dist/static/media/cz.52a635d1.png +0 -0
  101. package/electron/dist/static/media/dj.97fab2d0.png +0 -0
  102. package/electron/dist/static/media/dm.cffeea69.png +0 -0
  103. package/electron/dist/static/media/do.4446e007.png +0 -0
  104. package/electron/dist/static/media/dz.2a4f02c8.png +0 -0
  105. package/electron/dist/static/media/ec.de3c8959.png +0 -0
  106. package/electron/dist/static/media/eg.995e438f.png +0 -0
  107. package/electron/dist/static/media/eh.df6ab877.png +0 -0
  108. package/electron/dist/static/media/er.c9c33d69.png +0 -0
  109. package/electron/dist/static/media/es.02bde626.png +0 -0
  110. package/electron/dist/static/media/et.97067753.png +0 -0
  111. package/electron/dist/static/media/fj.d9ffe455.png +0 -0
  112. package/electron/dist/static/media/fk.56b62350.png +0 -0
  113. package/electron/dist/static/media/fm.a7a0ab08.png +0 -0
  114. package/electron/dist/static/media/fo.8c98723b.png +0 -0
  115. package/electron/dist/static/media/gb.e2dc562c.png +0 -0
  116. package/electron/dist/static/media/gd.e018fcab.png +0 -0
  117. package/electron/dist/static/media/ge.a23ea813.png +0 -0
  118. package/electron/dist/static/media/gf.46575309.png +0 -0
  119. package/electron/dist/static/media/gg.b6dec865.png +0 -0
  120. package/electron/dist/static/media/gh.791206c9.png +0 -0
  121. package/electron/dist/static/media/gi.691dc59f.png +0 -0
  122. package/electron/dist/static/media/gp.9f13aec5.png +0 -0
  123. package/electron/dist/static/media/gq.ac167f44.png +0 -0
  124. package/electron/dist/static/media/gt.ac025893.png +0 -0
  125. package/electron/dist/static/media/gu.f6b1f79f.png +0 -0
  126. package/electron/dist/static/media/gw.c1155330.png +0 -0
  127. package/electron/dist/static/media/gy.8807a5cd.png +0 -0
  128. package/electron/dist/static/media/hk.ace33e25.png +0 -0
  129. package/electron/dist/static/media/hn.a9dbb8c7.png +0 -0
  130. package/electron/dist/static/media/hr.154eb536.png +0 -0
  131. package/electron/dist/static/media/ht.f2777c6f.png +0 -0
  132. package/electron/dist/static/media/il.1e46d4c0.png +0 -0
  133. package/electron/dist/static/media/im.0cd40434.png +0 -0
  134. package/electron/dist/static/media/in.7b42511c.png +0 -0
  135. package/electron/dist/static/media/io.a66fbed7.png +0 -0
  136. package/electron/dist/static/media/iq.95e38849.png +0 -0
  137. package/electron/dist/static/media/ir.63bb306b.png +0 -0
  138. package/electron/dist/static/media/je.9bb61268.png +0 -0
  139. package/electron/dist/static/media/jm.cb108953.png +0 -0
  140. package/electron/dist/static/media/jo.68d39a37.png +0 -0
  141. package/electron/dist/static/media/jp.c7ac0358.png +0 -0
  142. package/electron/dist/static/media/ke.43bc8ed5.png +0 -0
  143. package/electron/dist/static/media/kg.44ff839a.png +0 -0
  144. package/electron/dist/static/media/kh.f2be65a8.png +0 -0
  145. package/electron/dist/static/media/ki.a5251ff4.png +0 -0
  146. package/electron/dist/static/media/km.e3509f11.png +0 -0
  147. package/electron/dist/static/media/kn.2aa7e9f4.png +0 -0
  148. package/electron/dist/static/media/kp.bafa6d30.png +0 -0
  149. package/electron/dist/static/media/kr.eddab993.png +0 -0
  150. package/electron/dist/static/media/ks.482617ea.png +0 -0
  151. package/electron/dist/static/media/kw.c9acc015.png +0 -0
  152. package/electron/dist/static/media/ky.b28eed47.png +0 -0
  153. package/electron/dist/static/media/kz.705cf40b.png +0 -0
  154. package/electron/dist/static/media/la.eaa60883.png +0 -0
  155. package/electron/dist/static/media/lb.f12e48b3.png +0 -0
  156. package/electron/dist/static/media/lc.c3040f1b.png +0 -0
  157. package/electron/dist/static/media/li.9ff57114.png +0 -0
  158. package/electron/dist/static/media/lk.668fa761.png +0 -0
  159. package/electron/dist/static/media/lr.08a3ba29.png +0 -0
  160. package/electron/dist/static/media/ls.4bcf7705.png +0 -0
  161. package/electron/dist/static/media/ly.42eee630.png +0 -0
  162. package/electron/dist/static/media/ma.728f368e.png +0 -0
  163. package/electron/dist/static/media/md.c58d4da5.png +0 -0
  164. package/electron/dist/static/media/me.61434fc0.png +0 -0
  165. package/electron/dist/static/media/mh.84081090.png +0 -0
  166. package/electron/dist/static/media/mk.4c61eb33.png +0 -0
  167. package/electron/dist/static/media/mm.6d9513ec.png +0 -0
  168. package/electron/dist/static/media/mn.2919ee2b.png +0 -0
  169. package/electron/dist/static/media/mo.5097fc81.png +0 -0
  170. package/electron/dist/static/media/mp.92d6f5ae.png +0 -0
  171. package/electron/dist/static/media/mq.3dcb40dd.png +0 -0
  172. package/electron/dist/static/media/mr.49624c44.png +0 -0
  173. package/electron/dist/static/media/ms.6278c883.png +0 -0
  174. package/electron/dist/static/media/mt.6791f29d.png +0 -0
  175. package/electron/dist/static/media/mv.db8c2815.png +0 -0
  176. package/electron/dist/static/media/mw.bfe46c8a.png +0 -0
  177. package/electron/dist/static/media/mx.4143a6ea.png +0 -0
  178. package/electron/dist/static/media/my.3a9e0a16.png +0 -0
  179. package/electron/dist/static/media/mz.a9a7cad4.png +0 -0
  180. package/electron/dist/static/media/na.fb15ec16.png +0 -0
  181. package/electron/dist/static/media/nc.ca80861c.png +0 -0
  182. package/electron/dist/static/media/ne.66306a2b.png +0 -0
  183. package/electron/dist/static/media/nf.2087392a.png +0 -0
  184. package/electron/dist/static/media/ni.8a8af9c4.png +0 -0
  185. package/electron/dist/static/media/np.fcb697b2.png +0 -0
  186. package/electron/dist/static/media/nr.3df193fa.png +0 -0
  187. package/electron/dist/static/media/nu.36adcc05.png +0 -0
  188. package/electron/dist/static/media/nz.3f54cdbc.png +0 -0
  189. package/electron/dist/static/media/om.b705fe37.png +0 -0
  190. package/electron/dist/static/media/pa.c6eac52a.png +0 -0
  191. package/electron/dist/static/media/pf.fc525a54.png +0 -0
  192. package/electron/dist/static/media/pg.e74ec337.png +0 -0
  193. package/electron/dist/static/media/ph.07b69cb2.png +0 -0
  194. package/electron/dist/static/media/pk.2e6f6e4d.png +0 -0
  195. package/electron/dist/static/media/placeholder.b393bdf6.png +0 -0
  196. package/electron/dist/static/media/pm.a07b0fe5.png +0 -0
  197. package/electron/dist/static/media/pr.2a745d06.png +0 -0
  198. package/electron/dist/static/media/ps.dc835d4b.png +0 -0
  199. package/electron/dist/static/media/pt.1dac29ce.png +0 -0
  200. package/electron/dist/static/media/pw.39ee4879.png +0 -0
  201. package/electron/dist/static/media/py.79fe22b8.png +0 -0
  202. package/electron/dist/static/media/re.d61c1475.png +0 -0
  203. package/electron/dist/static/media/rs.98e0ba03.png +0 -0
  204. package/electron/dist/static/media/rw.a062e5ed.png +0 -0
  205. package/electron/dist/static/media/sa.d8b4fac4.png +0 -0
  206. package/electron/dist/static/media/sb.22cdaa99.png +0 -0
  207. package/electron/dist/static/media/sc.bfa8934e.png +0 -0
  208. package/electron/dist/static/media/sd.c17685b4.png +0 -0
  209. package/electron/dist/static/media/sg.d63e1e98.png +0 -0
  210. package/electron/dist/static/media/sh.3e4eba58.png +0 -0
  211. package/electron/dist/static/media/si.1aef990c.png +0 -0
  212. package/electron/dist/static/media/sk.744710e9.png +0 -0
  213. package/electron/dist/static/media/sm.2add86d0.png +0 -0
  214. package/electron/dist/static/media/sn.cd1d239a.png +0 -0
  215. package/electron/dist/static/media/so.59e58870.png +0 -0
  216. package/electron/dist/static/media/sr.4f2004a0.png +0 -0
  217. package/electron/dist/static/media/ss.4af3b81d.png +0 -0
  218. package/electron/dist/static/media/st.d51dc713.png +0 -0
  219. package/electron/dist/static/media/sv.7ae84ee8.png +0 -0
  220. package/electron/dist/static/media/sx.be650d49.png +0 -0
  221. package/electron/dist/static/media/sy.aff3aad3.png +0 -0
  222. package/electron/dist/static/media/sz.2d1d3b4d.png +0 -0
  223. package/electron/dist/static/media/tc.a260af55.png +0 -0
  224. package/electron/dist/static/media/tg.8f3da96a.png +0 -0
  225. package/electron/dist/static/media/tj.f75888d4.png +0 -0
  226. package/electron/dist/static/media/tk.565e8b1a.png +0 -0
  227. package/electron/dist/static/media/tl.e2a54e11.png +0 -0
  228. package/electron/dist/static/media/tm.c4300af4.png +0 -0
  229. package/electron/dist/static/media/tn.75753d15.png +0 -0
  230. package/electron/dist/static/media/tr.82e5dc1c.png +0 -0
  231. package/electron/dist/static/media/tt.987092e9.png +0 -0
  232. package/electron/dist/static/media/tv.9230640c.png +0 -0
  233. package/electron/dist/static/media/tw.c4a9d7d9.png +0 -0
  234. package/electron/dist/static/media/tz.1efa60a0.png +0 -0
  235. package/electron/dist/static/media/ug.a77c73ae.png +0 -0
  236. package/electron/dist/static/media/us.e2479214.png +0 -0
  237. package/electron/dist/static/media/uy.861eca98.png +0 -0
  238. package/electron/dist/static/media/uz.01ff6d78.png +0 -0
  239. package/electron/dist/static/media/va.27433401.png +0 -0
  240. package/electron/dist/static/media/vc.2cca122b.png +0 -0
  241. package/electron/dist/static/media/ve.af5a8b6b.png +0 -0
  242. package/electron/dist/static/media/vg.04a0bb4c.png +0 -0
  243. package/electron/dist/static/media/vi.23080fa1.png +0 -0
  244. package/electron/dist/static/media/vn.c4418522.png +0 -0
  245. package/electron/dist/static/media/vu.a9b9829b.png +0 -0
  246. package/electron/dist/static/media/wf.c9a34a89.png +0 -0
  247. package/electron/dist/static/media/ws.155d3921.png +0 -0
  248. package/electron/dist/static/media/za.45fc2a3d.png +0 -0
  249. package/electron/dist/static/media/zm.2a5e46b1.png +0 -0
  250. package/electron/dist/static/media/zw.44f54d41.png +0 -0
package/bin/index.js CHANGED
@@ -1,99 +1,99 @@
1
- //#!/usr/bin/env node
2
- /**@see : https://blog.shahednasser.com/how-to-create-a-npx-tool/ */
3
- 'use strict';
4
- process.on('unhandledRejection', err => {
5
- throw err;
6
- });
7
- const supportedScript = {
8
- "start" : true,//start electron
9
- "build" : true, //script pour faire un build
10
- }
11
- const path= require("path");
12
- const fs = require("fs");
13
- const dir = path.resolve(__dirname);
14
- const electronDir = path.resolve(dir, "..","electron");
15
- const exec = require("../electron/exec");
16
- const args = process.argv.slice(2);
17
- let projectRoot = process.cwd();
18
- const createDir = require("../electron/createDir");
19
- const copyDir = require("../electron/copyDir");
20
- const parsedArgs = require("./parseArgs")(args,supportedScript);
21
- if(!parsedArgs.script || !(parsedArgs.script in supportedScript)){
22
- console.error ("Erreur : script invalide, vous devez spécifier script figurant parmi les script : ["+Object.keys(supportedScript).join(", ")+"]");
23
- process.exit();
24
- }
25
- const {script} = parsedArgs;
26
- let cmd = null;
27
- /****
28
- * 1. installer electron globallement : npm i -g electron@latest
29
- * cmde : [cmd] start electron config=[path-to-config-relative-to-project-dir]
30
- * splash=[path-to-splashcreen-relative-to-project-root]
31
- * output-dir|out = [path-to-output-dir-relative-to-root-project]
32
- * */
33
- if(parsedArgs.electron){
34
- const pathsJSON = path.resolve(electronDir,"paths.json");
35
- if(!fs.existsSync(pathsJSON)){
36
- throw "Le fichier des chemins d'accès à l'application est innexistant, rassurez vous de tester l'application en environnement web, via la cmde <npx expo start>, avant l'exécution du script electron."
37
- }
38
- const paths = require(`${pathsJSON}`);
39
- if(typeof paths !=='object' || !paths || !paths.projectRoot){
40
- throw "Fichiers des chemins d'application invalide!!! merci d'exécuter l'application en environnement web|android|ios puis réessayez"
41
- }
42
- projectRoot = path.resolve(projectRoot);
43
- const out = parsedArgs.out || parsedArgs["output-dir"];
44
- const outDir = out && path.dirname(out) && path.resolve(projectRoot,path.dirname(out),"electron") || path.resolve(projectRoot,"dist","electron")
45
- if(!createDir(outDir)){
46
- throw "Impossible de créer le répertoire <<"+outDir+">> du fichier binaire!!";
47
- }
48
- const logoPath = paths.logo || paths.$assets && path.resolve(paths.$assets,"logo.png") || paths.$images && path.resolve(paths.$images,"logo.png");
49
- if(!logoPath || !fs.existsSync(logoPath)){
50
- if(logoPath){
51
- console.warn("Logo de l'application innexistant!! Vous devez spécifier le logo de votre application, fichier ["+(logoPath)+"]")
52
- }
53
- }
54
- const buildOutDir = path.resolve(electronDir,"dist");
55
- const indexFile = path.resolve(buildOutDir,"index.html");
56
- const webBuildDir = path.resolve(projectRoot,"web-build");
57
- const promise = new Promise((resolve,reject)=>{
58
- const next = ()=>{
59
- if(fs.existsSync(webBuildDir)){
60
- return copyDir(webBuildDir,buildOutDir).catch(reject).then(resolve);
61
- } else {
62
- reject("fichier web-build exporté par electron innexistant!!");
63
- }
64
- }
65
- if(parsedArgs.compile || !fs.existsSync(path.resolve(webBuildDir,"index.html"))){
66
- cmd = "npx expo export:web";
67
- console.log("******************** exporting app : "+cmd);
68
- return exec({cmd,projectRoot}).then(next).catch(reject);
69
- }
70
- next();
71
- });
72
- return promise.then(()=>{
73
- if(!fs.existsSync(buildOutDir) || !fs.existsSync(indexFile)){
74
- throw "répertoire d'export web invalide où innexistant ["+buildOutDir+"]"
75
- }
76
- switch(script){
77
- case "start":
78
- cmd = "electron "+electronDir;
79
- return new Promise((resolve,reject)=>{
80
- exec({
81
- cmd,
82
- projectRoot : electronDir,
83
- }).finally(()=>{
84
- console.log("ant to exit");
85
- })
86
- setTimeout(resolve,1000)
87
- })
88
- break;
89
- case "build":
90
- break;
91
- }
92
- }).catch((e)=>{
93
- console.log(e," is cathing ggg");
94
- }).finally(()=>{
95
- process.exit();
96
- });
97
- } else {
98
- process.exit();
99
- }
1
+ //#!/usr/bin/env node
2
+ /**@see : https://blog.shahednasser.com/how-to-create-a-npx-tool/ */
3
+ 'use strict';
4
+ process.on('unhandledRejection', err => {
5
+ throw err;
6
+ });
7
+ const supportedScript = {
8
+ "start" : true,//start electron
9
+ "build" : true, //script pour faire un build
10
+ }
11
+ const path= require("path");
12
+ const fs = require("fs");
13
+ const dir = path.resolve(__dirname);
14
+ const electronDir = path.resolve(dir, "..","electron");
15
+ const exec = require("../electron/exec");
16
+ const args = process.argv.slice(2);
17
+ let projectRoot = process.cwd();
18
+ const createDir = require("../electron/createDir");
19
+ const copyDir = require("../electron/copyDir");
20
+ const parsedArgs = require("./parseArgs")(args,supportedScript);
21
+ if(!parsedArgs.script || !(parsedArgs.script in supportedScript)){
22
+ console.error ("Erreur : script invalide, vous devez spécifier script figurant parmi les script : ["+Object.keys(supportedScript).join(", ")+"]");
23
+ process.exit();
24
+ }
25
+ const {script} = parsedArgs;
26
+ let cmd = null;
27
+ /****
28
+ * 1. installer electron globallement : npm i -g electron@latest
29
+ * cmde : [cmd] start electron config=[path-to-config-relative-to-project-dir]
30
+ * splash=[path-to-splashcreen-relative-to-project-root]
31
+ * output-dir|out = [path-to-output-dir-relative-to-root-project]
32
+ * */
33
+ if(parsedArgs.electron){
34
+ const pathsJSON = path.resolve(electronDir,"paths.json");
35
+ if(!fs.existsSync(pathsJSON)){
36
+ throw "Le fichier des chemins d'accès à l'application est innexistant, rassurez vous de tester l'application en environnement web, via la cmde <npx expo start>, avant l'exécution du script electron."
37
+ }
38
+ const paths = require(`${pathsJSON}`);
39
+ if(typeof paths !=='object' || !paths || !paths.projectRoot){
40
+ throw "Fichiers des chemins d'application invalide!!! merci d'exécuter l'application en environnement web|android|ios puis réessayez"
41
+ }
42
+ projectRoot = path.resolve(projectRoot);
43
+ const out = parsedArgs.out || parsedArgs["output-dir"];
44
+ const outDir = out && path.dirname(out) && path.resolve(projectRoot,path.dirname(out),"electron") || path.resolve(projectRoot,"dist","electron")
45
+ if(!createDir(outDir)){
46
+ throw "Impossible de créer le répertoire <<"+outDir+">> du fichier binaire!!";
47
+ }
48
+ const logoPath = paths.logo || paths.$assets && path.resolve(paths.$assets,"logo.png") || paths.$images && path.resolve(paths.$images,"logo.png");
49
+ if(!logoPath || !fs.existsSync(logoPath)){
50
+ if(logoPath){
51
+ console.warn("Logo de l'application innexistant!! Vous devez spécifier le logo de votre application, fichier ["+(logoPath)+"]")
52
+ }
53
+ }
54
+ const buildOutDir = path.resolve(electronDir,"dist");
55
+ const indexFile = path.resolve(buildOutDir,"index.html");
56
+ const webBuildDir = path.resolve(projectRoot,"web-build");
57
+ const promise = new Promise((resolve,reject)=>{
58
+ const next = ()=>{
59
+ if(fs.existsSync(webBuildDir)){
60
+ return copyDir(webBuildDir,buildOutDir).catch(reject).then(resolve);
61
+ } else {
62
+ reject("fichier web-build exporté par electron innexistant!!");
63
+ }
64
+ }
65
+ if(parsedArgs.compile || !fs.existsSync(path.resolve(webBuildDir,"index.html"))){
66
+ cmd = "npx expo export:web";
67
+ console.log("******************** exporting app : "+cmd);
68
+ return exec({cmd,projectRoot}).then(next).catch(reject);
69
+ }
70
+ next();
71
+ });
72
+ return promise.then(()=>{
73
+ if(!fs.existsSync(buildOutDir) || !fs.existsSync(indexFile)){
74
+ throw "répertoire d'export web invalide où innexistant ["+buildOutDir+"]"
75
+ }
76
+ switch(script){
77
+ case "start":
78
+ cmd = "electron "+electronDir;
79
+ return new Promise((resolve,reject)=>{
80
+ exec({
81
+ cmd,
82
+ projectRoot : electronDir,
83
+ }).finally(()=>{
84
+ console.log("ant to exit");
85
+ })
86
+ setTimeout(resolve,1000)
87
+ })
88
+ break;
89
+ case "build":
90
+ break;
91
+ }
92
+ }).catch((e)=>{
93
+ console.log(e," is cathing ggg");
94
+ }).finally(()=>{
95
+ process.exit();
96
+ });
97
+ } else {
98
+ process.exit();
99
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fto-consult/expo-ui",
3
- "version": "3.4.1",
3
+ "version": "3.6.1",
4
4
  "description": "Bibliothèque de composants UI Expo,react-native",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -61,7 +61,7 @@
61
61
  "@emotion/native": "^11.10.0",
62
62
  "@expo/html-elements": "^0.2.0",
63
63
  "@expo/vector-icons": "^13.0.0",
64
- "@fto-consult/common": "^2.15.2",
64
+ "@fto-consult/common": "^2.15.4",
65
65
  "@gorhom/portal": "^1.0.14",
66
66
  "@react-native-async-storage/async-storage": "~1.17.3",
67
67
  "@react-native-community/datetimepicker": "6.5.2",
@@ -105,7 +105,7 @@
105
105
  "react-native-svg": "13.4.0",
106
106
  "react-native-web": "~0.18.7",
107
107
  "react-native-webview": "11.23.1",
108
- "react-virtuoso": "^4.0.3",
108
+ "react-virtuoso": "^4.0.6",
109
109
  "sharp-cli": "^2.1.0",
110
110
  "tippy.js": "^6.3.7",
111
111
  "use-event-callback": "^0.1.0",
@@ -0,0 +1,89 @@
1
+ import React from '$react';
2
+ import { Dimensions} from 'react-native';
3
+ import PropTypes from "prop-types";
4
+ import View from "$ecomponents/View";
5
+ import theme from "$theme";
6
+ import {defaultStr,defaultObj,defaultNumber} from "$utils";
7
+ import APP from "$capp/instance";
8
+ import ActivityIndicator from "$ecomponents/ActivityIndicator";
9
+ import {isWeb} from "$cplatform";
10
+
11
+ /***
12
+ * ce composant a pour but de définir la taille d'un contenu en se basant sur sa positin top, de manière à ce que, le contentu du composant fit
13
+ * le reste de la taille de la page, avec comme valeur de la props minHeight
14
+ */
15
+ const AutoSizerVerticalComponent = React.forwardRef(({onLayout,isScrollView,withActivityIndicator,testID,withPadding,maxHeight,minHeight,style,children:cChildren,...rest},ref) => {
16
+ testID = defaultStr(testID,'RN_AutoSizerVerticalComponent');
17
+ const hasUpdateLayoutRef = React.useRef(false);
18
+ const layoutRef = React.useRef(null);
19
+ const [layout,setLayout] = React.useState(Dimensions.get("window"));
20
+ const {height,width} = layout;
21
+ const hasInitializedRef = React.useRef(false);
22
+ const children = React.useStableMemo(()=>cChildren,[cChildren]);
23
+ withActivityIndicator = typeof withActivityIndicator =='boolean'? withActivityIndicator : !isScrollView;
24
+ const updateLayout = ()=>{
25
+ return new Promise((resolve)=>{
26
+ hasUpdateLayoutRef.current = true;
27
+ if(layoutRef.current && layoutRef.current.measureInWindow){
28
+ layoutRef.current.measureInWindow((x, y, width, height) => {
29
+ const r = {...Dimensions.get("window"),layout:{ x, y, width, height }};
30
+ setLayout(r);
31
+ hasInitializedRef.current = true;
32
+ resolve(r);
33
+ });
34
+ } else {
35
+ setLayout(Dimensions.get("window"))
36
+ }
37
+ })
38
+ }
39
+ React.setRef(ref,{
40
+ updateLayout,
41
+ layoutRef,
42
+ ref : layoutRef
43
+ });
44
+ React.useEffect(()=>{
45
+ const onResizePage = ()=>{
46
+ setTimeout(()=>{
47
+ updateLayout();
48
+ },300);
49
+ }
50
+ APP.on(APP.EVENTS.RESIZE_PAGE,onResizePage);
51
+ return ()=>{
52
+ APP.off(APP.EVENTS.RESIZE_PAGE,onResizePage);
53
+ React.setRef(ref,null);
54
+ }
55
+ },[]);
56
+ const hasUpdateLayout = hasUpdateLayoutRef.current;
57
+ const cStyle ={width:'100%',maxHeight:Math.max(height-100,250)};
58
+ const contentLayout = defaultObj(layout.layout);
59
+ cStyle.minHeight = Math.min(Math.max(layout.height-defaultNumber(contentLayout.y),minHeight && minHeight ||250));
60
+ const cMaxHeight = layout.height-defaultNumber(contentLayout.y);
61
+ if(cMaxHeight>=250){
62
+ cStyle.maxHeight = cMaxHeight;
63
+ }
64
+ if(withPadding !== false){
65
+ cStyle.paddingBottom = 50;
66
+ }
67
+ const fStyle = !hasUpdateLayout && withActivityIndicator !== false && {flex:1,flexDirection:'column',maxHeight:cStyle.maxHeight,maxWidth : Math.max(layout.width-defaultNumber(contentLayout.x)),justifyContent:'center',alignItems:'center'} || {};
68
+ return <View ref={layoutRef}
69
+ onLayout={(a,b,c)=>{
70
+ if(onLayout && onLayout(a,b,c) === false) return;
71
+ if(!hasInitializedRef.current){
72
+ updateLayout();
73
+ }
74
+ }}
75
+ {...rest}
76
+ style={[theme.styles.w100,cStyle,style,fStyle,maxHeight && {maxHeight}, minHeight && {minHeight}]} testID={testID+"_ScrollViewContainer"}>
77
+ {hasUpdateLayout || withActivityIndicator === false ?children : <ActivityIndicator size={'large'}/>}
78
+ </View>
79
+ });
80
+
81
+ AutoSizerVerticalComponent.displayName = "AutoSizerVerticalComponent";
82
+ export default AutoSizerVerticalComponent;
83
+
84
+ AutoSizerVerticalComponent.propTypes = {
85
+ ...defaultObj(View.propTypes),
86
+ withActivityIndicator : PropTypes.bool,//si l'on utilisera l'activity indicator pour le chargement du contentu
87
+ maxHeight : PropTypes.number,
88
+ minHeight : PropTypes.number,
89
+ }
@@ -0,0 +1,3 @@
1
+ export {default as Vertical} from "./Vertical";
2
+
3
+ export {default} from "./AutoResizer";