@fto-consult/expo-ui 6.77.7 → 6.78.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fto-consult/expo-ui",
3
- "version": "6.77.7",
3
+ "version": "6.78.1",
4
4
  "description": "Bibliothèque de composants UI Expo,react-native",
5
5
  "main": "main",
6
6
  "scripts": {
@@ -71,7 +71,7 @@
71
71
  "@expo/html-elements": "^0.5.1",
72
72
  "@expo/vector-icons": "^13.0.0",
73
73
  "@faker-js/faker": "^8.0.2",
74
- "@fto-consult/common": "^3.62.14",
74
+ "@fto-consult/common": "^3.63.2",
75
75
  "@pchmn/expo-material3-theme": "^1.3.1",
76
76
  "@react-native-async-storage/async-storage": "1.18.2",
77
77
  "@react-native-community/datetimepicker": "7.2.0",
@@ -39,7 +39,7 @@ import { renderRowCell,formatValue,arrayValueSeparator } from "./utils";
39
39
  import Button from "$ecomponents/Button";
40
40
  import stableHash from "stable-hash";
41
41
  import * as XLSX from "xlsx";
42
- import {convertToSQL} from "$ecomponents/Filter";
42
+ import {parseMangoQueries} from "$ecomponents/Filter";
43
43
  import events from "../events";
44
44
  import {MORE_ICON} from "$ecomponents/Icon"
45
45
  import ActivityIndicator from "$ecomponents/ActivityIndicator";
@@ -3194,9 +3194,9 @@ export default class CommonDatagridComponent extends AppComponent {
3194
3194
  if(this.isClearingAllFilters) return;
3195
3195
  return this.doFilter(arg);
3196
3196
  }
3197
- ///si les filtres devront être convertis au format SQL
3197
+ ///si les filtres devront être parsé, pour être preparés au format SQL
3198
3198
  canConvertFiltersToSQL(){
3199
- return !!(this.props.convertFiltersToSQL);;
3199
+ return !!(this.props.parseMangoQueries);;
3200
3200
  }
3201
3201
  /*** retourne la liste des colonnes sur lesquelles on peut effectuer un filtre*/
3202
3202
  getFilterableColumnsNames(){
@@ -3205,15 +3205,15 @@ export default class CommonDatagridComponent extends AppComponent {
3205
3205
  }
3206
3206
  /*** récupère les filtres en cours du datagrid
3207
3207
  * @param {boolean} prepare si les filtres seront apprêtés grace à la méthode prepareFilters de $cFilters
3208
- * @param {boolean} convertFiltersToSQL si les filtres seront convertis au formatSQL
3208
+ * @param {boolean} parseMangoQueries, si l'on doit parser les filtres initialement au format mangoqueries, les preparer au format SQL
3209
3209
  */
3210
3210
  getFilters(args){
3211
3211
  args = defaultObj(args);
3212
3212
  const prepare = typeof args.prepare =='boolean'? args.prepare : typeof args.prepareFilters =='boolean' ? args.prepareFilters : true;
3213
3213
  this.filters = extendObj(true,{},this.filteredValues,this.filters);
3214
- const convertFiltersToSQL = typeof args.convertToSQL =="boolean"? args.convertToSQL : typeof args.convertFiltersToSQL =="boolean"? args.convertFiltersToSQL : false;
3214
+ const parseMangoQueries = typeof args.parseMangoQueries =="boolean"? args.parseMangoQueries : typeof args.parseMangoQueries =="boolean"? args.parseMangoQueries : false;
3215
3215
  if(prepare === false) return this.filters;
3216
- return prepareFilters(this.filters,{filter:this.canHandleFilterVal.bind(this),convertToSQL:convertFiltersToSQL});
3216
+ return prepareFilters(this.filters,{filter:this.canHandleFilterVal.bind(this),parseMangoQueries});
3217
3217
  }
3218
3218
  hasFilters (){
3219
3219
  if(!this.isFilterable()) return false;
@@ -3301,14 +3301,14 @@ export default class CommonDatagridComponent extends AppComponent {
3301
3301
  force = cb;
3302
3302
  cb = undefined;
3303
3303
  }
3304
- fetchOptions = this.getFetchOptions({fetchOptions,convertToSQL:false});
3304
+ fetchOptions = this.getFetchOptions({fetchOptions,parseMangoQueries:false});
3305
3305
  if(typeof this.props.fetchOptionsMutator =='function' && this.props.fetchOptionsMutator(fetchOptions) === false){
3306
3306
  this.isFetchingData = false;
3307
3307
  return resolve(sData);
3308
3308
  }
3309
3309
  if(this.beforeFetchData({fetchOptions,force,context:this,renderProgressBar}) === false) return resolve(sData);
3310
3310
  if(this.canConvertFiltersToSQL()){
3311
- fetchOptions.selector = convertToSQL(fetchOptions.selector);
3311
+ fetchOptions.selector = parseMangoQueries(fetchOptions.selector);
3312
3312
  }
3313
3313
  if(typeof this.props.beforeFetchData =='function' && this.props.beforeFetchData({...rest,renderProgressBar,context:this,force,fetchOptions,options:fetchOptions}) === false){
3314
3314
  this.isFetchingData = false;
@@ -3463,7 +3463,7 @@ export default class CommonDatagridComponent extends AppComponent {
3463
3463
  }
3464
3464
  /*** récupère les fetchOptions du datagrid */
3465
3465
  getFetchOptions({fetchOptions}){
3466
- const fetchFilters = this.getFilters({convertToSQL : false});
3466
+ const fetchFilters = this.getFilters({parseMangoQueries : false});
3467
3467
  fetchOptions = Object.clone(isObj(fetchOptions)? fetchOptions : {});
3468
3468
  fetchOptions.selector = defaultObj(fetchOptions.selector);
3469
3469
  fetchOptions.dataSources = this.currentDataSources;
@@ -3952,7 +3952,7 @@ CommonDatagridComponent.propTypes = {
3952
3952
  ]),
3953
3953
  filterable : PropTypes.bool, //si le composant peut être filtrable
3954
3954
  /*** si les filtres de données seront convertis au format SQL avant d'effectuer la requête distante */
3955
- convertFiltersToSQL : PropTypes.bool,
3955
+ parseMangoQueries : PropTypes.bool,
3956
3956
  isLoading : PropTypes.bool,///si les données sont en train d'être chargées
3957
3957
  session : PropTypes.bool, /// si les données de sessions seront persistées
3958
3958
  exportTableProps : PropTypes.oneOfType([
@@ -4,8 +4,8 @@ import PropTypes from "prop-types";
4
4
  import actions from "$actions";
5
5
  /****
6
6
  * la fonction fetchOptionsMutator permet éventuellemnt de faire une mutations sur les options fetchOptions avant qu'elle ne soit appliquée pour la recherche. elle
7
- * est appelée avant que la fonction convertToSQL ne soit appelée, bien évidemement si la props convertToSQL est active pour le datagrid
8
- * la fonction beforeFetchData est appelée immédiatement avant l'execution de la requête fetch et après que la fonction converttoSQL soit appelée
7
+ * est appelée avant que la fonction parseMangoQueriesToSQL ne soit appelée, bien évidemement si la props parseMangoQueriesToSQL est active pour le datagrid
8
+ * la fonction beforeFetchData est appelée immédiatement avant l'execution de la requête fetch et après que la fonction parseMangoQueriestoSQL soit appelée
9
9
  */
10
10
  export default class CommonTableDatagrid extends CommonDatagrid{
11
11
  constructor(props){
@@ -175,7 +175,7 @@ const SWRDatagridComponent = React.forwardRef((props,ref)=>{
175
175
  opts = defaultObj(opts);
176
176
  opts.fetchOptions = isObj(opts.fetchOptions)? Object.clone(opts.fetchOptions) : {};
177
177
  extendObj(true,opts.fetchOptions,fetchOptionsRef.current);
178
- if(props.convertFiltersToSQL === false){
178
+ if(props.parseMangoQueries === false){
179
179
  opts.fetchOptions.selector = extendObj(true,{},opts.fetchOptions.selector,fetchOptionsRef.current?.selector);
180
180
  }
181
181
  opts.fetchOptions.sort = sortRef.current;
@@ -7,7 +7,7 @@ import {defaultStr,extendObj,isFunction,defaultVal,isObjOrArray,defaultObj} from
7
7
  import PropTypes from "prop-types";
8
8
  import actions from "$cactions";
9
9
  import {navigateToTableData} from "$enavigation/utils";
10
- import {getFetchOptions,prepareFilters,convertToSQL as convFiltersToSQL} from "$cutils/filters";
10
+ import {getFetchOptions,prepareFilters,parseMangoQueries as filtersParseMangoQueries} from "$cutils/filters";
11
11
  import fetch from "$capi"
12
12
  import React from "$react";
13
13
  import useApp from "$econtext/hooks";
@@ -19,7 +19,7 @@ import DateLib from "$lib/date";
19
19
  * foreignKeyTable : la tableData dans laquelle effectuer les donées de la requêtes
20
20
  * foreignKeyLabel : Le libélé dans la table étrangère
21
21
  */
22
- const TableDataSelectField = React.forwardRef(({foreignKeyColumn,foreignKeyLabelRenderers,isStructData,getForeignKeyTable:cGetForeignKeyTable,prepareFilters:cPrepareFilters,bindUpsert2RemoveEvents,onAdd,showAdd:customShowAdd,canShowAdd,foreignKeyTable,fetchItemsPath,foreignKeyLabel,foreignKeyLabelIndex,dropdownActions,fields,fetchItems:customFetchItem,convertFiltersToSQL,mutateFetchedItems,onFetchItems,isFilter,isUpdate,isDocEditing,items,onAddProps,fetchOptions,...props},ref)=>{
22
+ const TableDataSelectField = React.forwardRef(({foreignKeyColumn,foreignKeyLabelRenderers,isStructData,getForeignKeyTable:cGetForeignKeyTable,prepareFilters:cPrepareFilters,bindUpsert2RemoveEvents,onAdd,showAdd:customShowAdd,canShowAdd,foreignKeyTable,fetchItemsPath,foreignKeyLabel,foreignKeyLabelIndex,dropdownActions,fields,fetchItems:customFetchItem,parseMangoQueries,mutateFetchedItems,onFetchItems,isFilter,isUpdate,isDocEditing,items,onAddProps,fetchOptions,...props},ref)=>{
23
23
  props.data = defaultObj(props.data);
24
24
  const type = defaultStr(props.type)?.toLowerCase();
25
25
  isStructData = isStructData || type?.replaceAll("-","").replaceAll("_","").trim().contains("structdata");
@@ -37,7 +37,7 @@ const TableDataSelectField = React.forwardRef(({foreignKeyColumn,foreignKeyLabel
37
37
  }
38
38
  }
39
39
  const getForeignKeyTable = typeof cGetForeignKeyTable =='function'? cGetForeignKeyTable : isStructData ? getStructData: appGetForeignKeyTable;
40
- convertFiltersToSQL = defaultBool(convertFiltersToSQL,datagrid?.convertFiltersToSQL);
40
+ parseMangoQueries = defaultBool(parseMangoQueries,datagrid?.parseMangoQueries);
41
41
  const foreignKeyTableStr = defaultStr(foreignKeyTable,props.tableName,props.table);
42
42
  if(typeof getForeignKeyTable !=='function'){
43
43
  console.error("la fonction getTableData non définie des les paramètres d'initialisation de l'application!!! Rassurez vous d'avoir définier cette fonction!!, options : foreignKeyTable:",foreignKeyTable,"foreignKeyColumn:",foreignKeyColumn,props)
@@ -147,8 +147,8 @@ const TableDataSelectField = React.forwardRef(({foreignKeyColumn,foreignKeyLabel
147
147
  if(!isMounted()) return;
148
148
  if(typeof beforeFetchItems ==='function' && beforeFetchItems({fetchOptions}) === false) return;
149
149
  let opts = Object.clone(fetchOptions);
150
- if(convertFiltersToSQL){
151
- opts.selector = convFiltersToSQL(opts.selector);
150
+ if(parseMangoQueries){
151
+ opts.selector = filtersParseMangoQueries(opts.selector);
152
152
  opts = getFetchOptions(opts);
153
153
  delete opts.selector;
154
154
  } else {
@@ -357,7 +357,7 @@ TableDataSelectField.propTypes = {
357
357
  itemValue : PropTypes.func,
358
358
  renderItem : PropTypes.func,
359
359
  renderText : PropTypes.func,
360
- convertFiltersToSQL : PropTypes.oneOfType([
360
+ parseMangoQueries : PropTypes.oneOfType([
361
361
  PropTypes.func,
362
362
  PropTypes.bool,
363
363
  ]),// si l'on doit convertir les selecteurs de filtres au format SQl
@@ -52,7 +52,7 @@ Object.map(Utils,(v,i)=>{
52
52
  }, la liste des tables de données
53
53
  structsData : {object}, la liste des données de structures
54
54
  handleHelpScreen : {boolean}, //si l'écran d'aide sera pris en compte, l'écran d'aide ainsi que les écrans des termes d'utilisations et autres
55
- convertFiltersToSQL : {boolean}, si les filtres de datagrid ou filtres seront convertis au format SQL
55
+ parseMangoQueries : {boolean}, si les filtres de datagrid ou filtres seront convertis au format SQL
56
56
  components : {
57
57
  MainProvider : {ReactComponent}, //le composant qui permet de wrapper le contenu de l'application expo. Nb, ce composant ne peut utiliser ni les routes, nis les DialogProvider,
58
58
  logo : ReactNode | ReactComponent | object {
@@ -88,7 +88,7 @@ Object.map(Utils,(v,i)=>{
88
88
  swrConfig : {object},//les paramètres de configuration de l'objet swr utilisée dans le composant SWRDatagrid
89
89
  realm : {}, //les options de configurations de la base de données realmdb
90
90
  */
91
- const Provider = ({children,getTableData,handleHelpScreen,navigation,swrConfig,auth:cAuth,components:cComponents,convertFiltersToSQL,getStructData,tablesData,structsData,...props})=>{
91
+ const Provider = ({children,getTableData,handleHelpScreen,navigation,swrConfig,auth:cAuth,components:cComponents,parseMangoQueries,getStructData,tablesData,structsData,...props})=>{
92
92
  require('$session');///initializing session
93
93
  const {extendAppTheme} = appConfig;
94
94
  const { theme : pTheme } = useMaterial3Theme();
@@ -165,8 +165,8 @@ const Provider = ({children,getTableData,handleHelpScreen,navigation,swrConfig,a
165
165
  }
166
166
  }
167
167
  },swrConfig);
168
- if(convertFiltersToSQL !== undefined){
169
- appConfig.set("convertFiltersToSQL",convertFiltersToSQL);
168
+ if(parseMangoQueries !== undefined){
169
+ appConfig.set("parseMangoQueries",parseMangoQueries);
170
170
  }
171
171
  const colorScheme = useColorScheme();
172
172
  const isColorShemeDark = colorScheme ==="dark";
@@ -300,7 +300,7 @@ const Provider = ({children,getTableData,handleHelpScreen,navigation,swrConfig,a
300
300
  ...props,
301
301
  handleHelpScreen,
302
302
  navigation,
303
- convertFiltersToSQL,
303
+ parseMangoQueries,
304
304
  auth,
305
305
  components : {
306
306
  ...components,