@fto-consult/expo-ui 8.50.10 → 8.51.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.
- package/bin/create-app/src/database/tables/users/accordion.js +1 -1
- package/bin/create-app/src/database/tables/users/datagrid.js +6 -1
- package/bin/create-app/src/database/tables/users/fields.js +17 -4
- package/bin/create-app/src/database/tables/users/index.js +2 -1
- package/bin/create-app/src/database/tables/users/utils.js +1 -1
- package/bin/create-app/src/layouts/TableData/List.js +3 -1
- package/bin/create-app/src/screens/TableData/TableDataScreen.js +1 -0
- package/bin/update.js +15 -13
- package/package.json +8 -8
@@ -6,9 +6,14 @@ import addIcon from "./addIcon";
|
|
6
6
|
import newElementLabel from "./newElementLabel";
|
7
7
|
import { generateData } from "./utils";
|
8
8
|
|
9
|
+
const dataRef = {current : []};
|
10
|
+
|
9
11
|
export default {
|
10
12
|
fetcher : (url,options)=>{ //la fonction fetcher à passer au composant SWRDatagrid
|
11
|
-
|
13
|
+
if(!dataRef.current.length){
|
14
|
+
dataRef.current = generateData(1000);
|
15
|
+
}
|
16
|
+
return Promise.resolve(dataRef.current); //génère 100 utilisateurs à l'aide de la librarire faker
|
12
17
|
},
|
13
18
|
accordionProps : {
|
14
19
|
accordion,
|
@@ -1,7 +1,22 @@
|
|
1
1
|
|
2
2
|
export default {
|
3
|
+
avatar : {
|
4
|
+
type : "image",
|
5
|
+
label: 'Avatar',
|
6
|
+
withLabel : false,
|
7
|
+
size : 150,//la taille de l'avatar
|
8
|
+
datagrid : {
|
9
|
+
size : 50,
|
10
|
+
},
|
11
|
+
responsiveProps : {
|
12
|
+
style : [{width:"100%",padding:10,alignItems:"center"}]
|
13
|
+
},
|
14
|
+
sortable : false, //on ne peut trier les avatars
|
15
|
+
filterable : false, //on ne peut également filtrer
|
16
|
+
},
|
3
17
|
userId : {
|
4
18
|
primaryKey : true,
|
19
|
+
upper : false,
|
5
20
|
text :"Id",
|
6
21
|
type : "id", //il s'agit d'un champ de type id
|
7
22
|
visibleOnlyOnEditing : true, //l'id de sera généré depuis la base de données, donc pas question d'afficher au moment de création de la table data
|
@@ -14,14 +29,12 @@ export default {
|
|
14
29
|
amount : {
|
15
30
|
type : "number",
|
16
31
|
label : "Amount",
|
32
|
+
format : "number",
|
17
33
|
},
|
18
34
|
email : {
|
19
35
|
type : "email",
|
20
36
|
label : 'Email',
|
21
|
-
|
22
|
-
avatar : {
|
23
|
-
type : "image",
|
24
|
-
label: 'Avatar',
|
37
|
+
width : 180,
|
25
38
|
},
|
26
39
|
birthdate : {
|
27
40
|
type : "date",
|
@@ -1,7 +1,8 @@
|
|
1
1
|
export default {
|
2
2
|
table : require("./table").default,
|
3
3
|
icon : 'material-people',
|
4
|
-
|
4
|
+
fields : require("./fields").default,
|
5
|
+
label : "Exemple table : Utilisateurs",
|
5
6
|
datagrid : require("./datagrid").default,
|
6
7
|
perms : require("./perms").default,
|
7
8
|
newElementLabel : require("./newElementLabel").default,
|
@@ -5,7 +5,7 @@ export function createRandomUser (){
|
|
5
5
|
username: faker.internet.userName(),
|
6
6
|
amount : faker.number.int(),
|
7
7
|
email: faker.internet.email(),
|
8
|
-
avatar: faker.image.
|
8
|
+
avatar: faker.image.avatar(),
|
9
9
|
password: faker.internet.password(),
|
10
10
|
birthdate: faker.date.birthdate(),
|
11
11
|
registeredAt: faker.date.past(),
|
@@ -16,7 +16,6 @@ const TableDataListLayoutComponent = forwardRef(
|
|
16
16
|
filterable={true} //si la table de données est filterable, spécifiez la valeur false, pour que les données ne soit pas filtrable
|
17
17
|
canFetchOnlyVisibleColumns={false} //si uniquement les colonnes visisible seront récupérérs depuis la base de données, via le champ fields des options envoyés à la fonction fetcher
|
18
18
|
parseMangoQueries = {true} //Spécifiez la valeur false, si vous utilisez une base de données qui accepte les requêtes mangoes (Voir https://www.mongodb.com/docs/manual/tutorial/query-documents) et true pour un backend lié à une BD relationnelle
|
19
|
-
{...rProps}
|
20
19
|
{...defaultObj(tableObj.datagrid)} //les props du datagrid lié à la table data
|
21
20
|
exportToExcelIsAllowed={"{0}:exporttoexcel".sprintf(tableName)} //la permission pour l'export des données de la table data au format Excel, vous pouvez définir également une fonction de la forme : ()=><boolean>
|
22
21
|
exportToPDFIsAllowed={"{0}:exporttopdf".sprintf(tableName)} //la permission pour l'export des données au format pdf, vous pouvez également définir une fonction de la forme : ()=><boolean>
|
@@ -26,6 +25,9 @@ const TableDataListLayoutComponent = forwardRef(
|
|
26
25
|
if(typeof fetcher ==="function"){
|
27
26
|
return fetcher(url,opts);
|
28
27
|
}
|
28
|
+
if(typeof tableObj?.datagrid?.fetcher ==="function"){
|
29
|
+
return tableObj?.datagrid.fetcher(url,opts);
|
30
|
+
}
|
29
31
|
delete opts.fields;
|
30
32
|
delete opts?.fetchOptions?.fields;
|
31
33
|
console.log(opts.fetchOptions," les options à utiliser pour effectuer le fetch distant des données");
|
@@ -31,6 +31,7 @@ export default class TableDataScreenItem extends TableData{
|
|
31
31
|
*/
|
32
32
|
upsertToDB({data,tableName,...rest}){
|
33
33
|
notify.error("Consultez le fichier : $src/screens/TableData/TableDataScreen.js afin d'implémenter la logique d'enregistrement en base de données de la données : "+JSON.stringify(data));
|
34
|
+
return false;
|
34
35
|
return Promise.resolve({data});
|
35
36
|
}
|
36
37
|
prepareComponentProps (...rest){
|
package/bin/update.js
CHANGED
@@ -1,17 +1,22 @@
|
|
1
1
|
const fs = require("fs");
|
2
2
|
const path = require("path");
|
3
3
|
const projectRoot = process.cwd();
|
4
|
-
const {exec,writeFile} = require("@fto-consult/node-utils");
|
4
|
+
const {exec,writeFile,isPlainObj} = require("@fto-consult/node-utils");
|
5
5
|
const dependencies = require("./create-app/dependencies");
|
6
6
|
const dependenciesArr = Object.keys(dependencies);
|
7
7
|
const dependenciesPath = path.resolve(__dirname,"create-app","dependencies.js")
|
8
8
|
const mainJSONPath = path.resolve(projectRoot,"package.json");
|
9
|
+
const euiPackageJSON = require("../package.json");
|
10
|
+
const euDevDependencies = isPlainObj(euiPackageJSON?.devDependencies) ? euiPackageJSON?.devDependencies : {};
|
9
11
|
if(fs.existsSync(mainJSONPath)){
|
10
12
|
const packageObj = JSON.parse(fs.readFileSync(mainJSONPath));
|
11
13
|
const packageDev = typeof packageObj?.dependencies =="object" && packageObj?.dependencies || {};
|
14
|
+
const devDependencies = [];
|
12
15
|
const filterdDObj = {};
|
13
16
|
dependenciesArr.filter((v,index)=>{
|
14
|
-
if(
|
17
|
+
if(euDevDependencies[packageDev[v]]){
|
18
|
+
devDependencies.push(packageDev[v]);
|
19
|
+
} else if((!!packageDev[v] && v !=="expo") || ["expo-intent-launcher"].includes(v)){
|
15
20
|
filterdDObj[v] = true;
|
16
21
|
return true;
|
17
22
|
}
|
@@ -19,17 +24,13 @@ if(fs.existsSync(mainJSONPath)){
|
|
19
24
|
});
|
20
25
|
const filteredDeps = Object.keys(filterdDObj);
|
21
26
|
if(filteredDeps.length){
|
22
|
-
exec(`npm install expo@latest`,{projectRoot}).finally(()=>{
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
return exec(`npx expo install ${script}`,{projectRoot}).finally(next);
|
30
|
-
}
|
31
|
-
next().finally((i)=>{
|
32
|
-
//exec(`npm install`,{projectRoot}).finally(()=>{
|
27
|
+
exec(`npm install @fto-consult/expo-ui@latest expo@latest`,{projectRoot}).finally(()=>{
|
28
|
+
exec(`npx expo install ${filteredDeps.join(" ")}`,{projectRoot}).finally((i)=>{
|
29
|
+
(new Promise((resolve)=>{
|
30
|
+
devDependencies.length ? exec(`npm uninstall ${devDependencies.join(" ")}`,{projectRoot}).finally(()=>{
|
31
|
+
exec(`npm install -D ${devDependencies.join(" ")}`,{projectRoot}).finally(resolve);
|
32
|
+
}) : resolve({});
|
33
|
+
})).finally(()=>{
|
33
34
|
const newPackageJS = JSON.parse(fs.readFileSync(mainJSONPath));
|
34
35
|
let hasChanged = false;
|
35
36
|
if(newPackageJS?.dependencies && typeof newPackageJS?.dependencies =="object"){
|
@@ -51,6 +52,7 @@ if(fs.existsSync(mainJSONPath)){
|
|
51
52
|
}
|
52
53
|
}
|
53
54
|
//})
|
55
|
+
})
|
54
56
|
});
|
55
57
|
})
|
56
58
|
} else {
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@fto-consult/expo-ui",
|
3
|
-
"version": "8.
|
3
|
+
"version": "8.51.1",
|
4
4
|
"description": "Bibliothèque de composants UI Expo,react-native",
|
5
5
|
"react-native-paper-doc": "https://github.com/callstack/react-native-paper/tree/main/docs/docs/guides",
|
6
6
|
"scripts": {
|
@@ -47,7 +47,7 @@
|
|
47
47
|
"delete-node-modules": "rimraf ./**/node_modules",
|
48
48
|
"dev": "npx expo start --no-dev --minify -c",
|
49
49
|
"modifier-url-remote-git": "git remote set-url origin 'https://borispipo@github.com/borispipo/smart-eneo.git'",
|
50
|
-
"update": "npm i @fto-consult/common@latest
|
50
|
+
"update": "npm i @fto-consult/common@latest react-native-web react-native-big-list@latest apexcharts@latest file-saver@latest google-libphonenumber@latest react-native-iphone-x-helper@latest react-native-mime-types@latest react-native-paper@latest react-native-paper-dates@latest react-virtuoso@latest tippy.js@latest xlsx@latest && npm run update-apexchart && npm run find-licenses && npm i -D @fto-consult/node-utils@latest"
|
51
51
|
},
|
52
52
|
"bin": {
|
53
53
|
"expo-ui": "bin/index.js"
|
@@ -70,9 +70,7 @@
|
|
70
70
|
"@emotion/react": "^11.11.1",
|
71
71
|
"@faker-js/faker": "^8.0.2",
|
72
72
|
"@fto-consult/common": "^4.36.0",
|
73
|
-
"@fto-consult/node-utils": "^1.7.1",
|
74
73
|
"apexcharts": "^3.47.0",
|
75
|
-
"crypto-browserify": "^3.12.0",
|
76
74
|
"file-saver": "^2.0.5",
|
77
75
|
"google-libphonenumber": "^3.2.34",
|
78
76
|
"html2canvas": "^1.4.1",
|
@@ -91,17 +89,19 @@
|
|
91
89
|
"react-virtuoso": "^4.7.2",
|
92
90
|
"readable-stream": "^4.5.2",
|
93
91
|
"sanitize-filename": "^1.6.3",
|
94
|
-
"sharp-cli": "^2.1.0",
|
95
|
-
"stream-browserify": "^3.0.0",
|
96
92
|
"tippy.js": "^6.3.7",
|
97
|
-
"vm": "^0.1.0",
|
98
93
|
"xlsx": "^0.18.5"
|
99
94
|
},
|
100
95
|
"devDependencies": {
|
101
96
|
"@babel/plugin-proposal-export-namespace-from": "^7.18.9",
|
102
97
|
"@expo/metro-config": "~0.17.1",
|
103
98
|
"@expo/webpack-config": "^19.0.1",
|
99
|
+
"@fto-consult/node-utils": "^1.7.1",
|
104
100
|
"babel-plugin-inline-dotenv": "^1.7.0",
|
105
|
-
"babel-plugin-module-resolver": "^5.0.0"
|
101
|
+
"babel-plugin-module-resolver": "^5.0.0",
|
102
|
+
"crypto-browserify": "^3.12.0",
|
103
|
+
"sharp-cli": "^2.1.1",
|
104
|
+
"stream-browserify": "^3.0.0",
|
105
|
+
"vm": "^0.1.0"
|
106
106
|
}
|
107
107
|
}
|