@fto-consult/expo-ui 2.16.11 → 2.18.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.
- package/package.json +2 -2
- package/src/components/Countries/resources/countries-normalized.json +1987 -1987
- package/src/components/Countries/resources/countries-with-not-extra.json +1211 -1211
- package/src/components/Countries/resources/countries.sql +243 -243
- package/src/components/Datagrid/Accordion/index.js +16 -1
- package/src/components/Datagrid/Common/Common.js +328 -28
- package/src/components/Datagrid/Footer/index.js +20 -16
- package/src/components/Datagrid/RenderTypes/index.web.js +2 -2
- package/src/components/Datagrid/Table/index.js +6 -2
- package/src/components/Label/index.js +1 -1
- package/src/components/List/FlashList.js +2 -0
- package/src/components/Table/index.js +12 -9
|
@@ -3,9 +3,9 @@ import View from "$ecomponents/View";
|
|
|
3
3
|
import React from "$react";
|
|
4
4
|
import memoize from "$react/memoize";
|
|
5
5
|
export {default as FooterItem} from "./Footer";
|
|
6
|
+
import {parseDecimal} from "$utils";
|
|
6
7
|
|
|
7
8
|
export const evalSingleValue = ({data,columnDef,field,result,displayLabel,onlyVisible})=>{
|
|
8
|
-
result = defaultObj(result)
|
|
9
9
|
data = data || {}
|
|
10
10
|
if(!isNonNullString(field) || !isObj(columnDef)) return result;
|
|
11
11
|
onlyVisible = defaultBool(onlyVisible,true);
|
|
@@ -17,22 +17,26 @@ export const evalSingleValue = ({data,columnDef,field,result,displayLabel,onlyVi
|
|
|
17
17
|
if(!isDecimal(val)){
|
|
18
18
|
return result;
|
|
19
19
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
label,
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
val = parseDecimal(val.toFixed(10));
|
|
21
|
+
(Array.isArray(result) ? result : [result]).map((currentResult)=>{
|
|
22
|
+
currentResult = defaultObj(currentResult);
|
|
23
|
+
if(!isObj(currentResult[field])){
|
|
24
|
+
let label = defaultStr(columnDef.label,columnDef.text);
|
|
25
|
+
if(!label && displayLabel !== false) return currentResult;
|
|
26
|
+
currentResult[field] = {
|
|
27
|
+
label,
|
|
28
|
+
visible : columnDef.visible,
|
|
29
|
+
format : defaultStr(columnDef.format).toLowerCase()
|
|
30
|
+
}
|
|
27
31
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
const obj = currentResult[field];
|
|
33
|
+
obj.max = isDecimal(obj.max) ? Math.max(obj.max,val) : val;
|
|
34
|
+
obj.min = isDecimal(obj.min) ? Math.min(obj.min,val) : val;
|
|
35
|
+
obj.count = isDecimal(obj.count) ? (obj.count = obj.count +1) : 1;
|
|
36
|
+
obj.sum = isDecimal(obj.sum) ? (parseDecimal((obj.sum+val).toFixed(10))) : val;
|
|
37
|
+
obj.average = obj.sum / obj.count;
|
|
38
|
+
return currentResult;
|
|
39
|
+
})
|
|
36
40
|
return result;
|
|
37
41
|
}
|
|
38
42
|
export const evalValues = memoize(({data,columns,onlyVisible,displayLabel})=>{
|
|
@@ -4,10 +4,10 @@ export default {
|
|
|
4
4
|
code:'fixed',icon:fixedIcon,
|
|
5
5
|
label:'Tableau virtuel optimisé',
|
|
6
6
|
desktop:true,
|
|
7
|
-
|
|
7
|
+
tooltip : "Les éléments de liste s'affichent dans un tableau virtuel optimisé",
|
|
8
8
|
},
|
|
9
9
|
virtual : {code:'virtual',icon:virtualIcon,
|
|
10
10
|
label:'Tableau virtuel',
|
|
11
|
-
|
|
11
|
+
tooltip : "Les éléments de liste s'affichent dans un tableau virtuel", desktop:true
|
|
12
12
|
}
|
|
13
13
|
}
|
|
@@ -28,6 +28,7 @@ const DatagridFactory = (Factory)=>{
|
|
|
28
28
|
return true;
|
|
29
29
|
}
|
|
30
30
|
renderRowCell(args){
|
|
31
|
+
if(args.renderRowCell === false || args.isSectionListHeader === true) return super.renderRowCell(args);
|
|
31
32
|
const {render} = super.renderRowCell(args);
|
|
32
33
|
return render;
|
|
33
34
|
}
|
|
@@ -174,14 +175,14 @@ const DatagridFactory = (Factory)=>{
|
|
|
174
175
|
restItems = [
|
|
175
176
|
...this.renderCustomMenu(),
|
|
176
177
|
...(selectableMultiple ? [{
|
|
177
|
-
label : "
|
|
178
|
+
label : "Sélectionner "+max.formatNumber(),
|
|
178
179
|
icon : "select-all",
|
|
179
180
|
onPress : (x,event)=>{
|
|
180
181
|
this.handleAllRowsToggle(true);
|
|
181
182
|
}
|
|
182
183
|
},
|
|
183
184
|
{
|
|
184
|
-
label : "Tout
|
|
185
|
+
label : "Tout désélectionner",
|
|
185
186
|
onPress : (x,event)=>{
|
|
186
187
|
this.handleAllRowsToggle(false);
|
|
187
188
|
},
|
|
@@ -277,6 +278,7 @@ const DatagridFactory = (Factory)=>{
|
|
|
277
278
|
] : visibleColumns}
|
|
278
279
|
|
|
279
280
|
/>
|
|
281
|
+
{this.renderSectionListMenu()}
|
|
280
282
|
<View testID={testID+"_HeaderPagination"} style = {styles.paginationItem}>
|
|
281
283
|
<BottomSheetMenu
|
|
282
284
|
testID={testID+"_HeaderMenus"}
|
|
@@ -321,6 +323,8 @@ const DatagridFactory = (Factory)=>{
|
|
|
321
323
|
<Table
|
|
322
324
|
ref = {this.listRef}
|
|
323
325
|
{...rest}
|
|
326
|
+
getItemType = {this.getFlashListItemType.bind(this)}
|
|
327
|
+
renderItem = {this.renderFlashListItem.bind(this)}
|
|
324
328
|
hasFooters = {hasFooterFields}
|
|
325
329
|
showFilters = {showFilters}
|
|
326
330
|
showFooters = {showFooters}
|
|
@@ -104,7 +104,7 @@ LabelComponentExported.propTypes = {
|
|
|
104
104
|
primary : PropTypes.bool,
|
|
105
105
|
error : PropTypes.bool,///si le label est liée à une text field sur laquelle il y a erreur
|
|
106
106
|
secondary : PropTypes.bool,
|
|
107
|
-
color : PropTypes.
|
|
107
|
+
color : PropTypes.string,
|
|
108
108
|
selectable : PropTypes.bool, //si le texte est sélectionnable
|
|
109
109
|
underlined : PropTypes.bool,//si le style underlined sera appliqué au label
|
|
110
110
|
splitText : PropTypes.bool,///si le texte lorsqu'il est long sera splité
|
|
@@ -12,6 +12,8 @@ const FlashListComponent = React.forwardRef((props,ref)=>{
|
|
|
12
12
|
ListHeaderComponent={() => (
|
|
13
13
|
<View testID={(testID||'RN_FlashListComponent')+"_Header"}>{props.children}</View>
|
|
14
14
|
)}
|
|
15
|
+
disableAutoLayout
|
|
16
|
+
disableHorizontalListHeightMeasurement = {props.horizontal?undefined : true}
|
|
15
17
|
{...props}
|
|
16
18
|
contentContainerStyle = {undefined}
|
|
17
19
|
style = {undefined}
|
|
@@ -43,7 +43,7 @@ const getOnScrollCb = (refs,pos,cb2)=>{
|
|
|
43
43
|
return isMobileNative()? cb : debounce(cb,200);
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
const TableComponent = React.forwardRef(({containerProps,renderEmpty,isRowSelected,headerScrollViewProps,footerScrollViewProps,scrollViewProps,showFooters,renderFooterCell,footerCellContainerProps,filterCellContainerProps,headerContainerProps,headerCellContainerProps,headerProps,rowProps:customRowProps,renderCell,cellContainerProps,hasFooters,renderHeaderCell,renderFilterCell,columnProps,getRowKey,columnsWidths,colsWidths,footerContainerProps,showFilters,columns,data,testID,...props},tableRef)=>{
|
|
46
|
+
const TableComponent = React.forwardRef(({containerProps,renderEmpty,renderItem,isRowSelected,headerScrollViewProps,footerScrollViewProps,scrollViewProps,showFooters,renderFooterCell,footerCellContainerProps,filterCellContainerProps,headerContainerProps,headerCellContainerProps,headerProps,rowProps:customRowProps,renderCell,cellContainerProps,hasFooters,renderHeaderCell,renderFilterCell,columnProps,getRowKey,columnsWidths,colsWidths,footerContainerProps,showFilters,columns,data,testID,...props},tableRef)=>{
|
|
47
47
|
containerProps = defaultObj(containerProps);
|
|
48
48
|
testID = defaultStr(testID,"RN_TableComponent");
|
|
49
49
|
cellContainerProps = defaultObj(cellContainerProps);
|
|
@@ -263,7 +263,6 @@ const TableComponent = React.forwardRef(({containerProps,renderEmpty,isRowSelect
|
|
|
263
263
|
>
|
|
264
264
|
<FlashList
|
|
265
265
|
containerProps = {{style:[cStyle]}}
|
|
266
|
-
//prepareItems = {Array.isArray(items)? false : undefined}
|
|
267
266
|
estimatedItemSize = {200}
|
|
268
267
|
{...props}
|
|
269
268
|
onContentSizeChange = {(width,height)=>{
|
|
@@ -311,7 +310,14 @@ const TableComponent = React.forwardRef(({containerProps,renderEmpty,isRowSelect
|
|
|
311
310
|
})}
|
|
312
311
|
renderItem = {(arg)=>{
|
|
313
312
|
const item = arg.item, data = arg.item,allData=Array.isArray(item.items)? item.items : data;
|
|
314
|
-
|
|
313
|
+
arg.allData = arg.allData;arg.isTable = true; arg.isAccordion = false;
|
|
314
|
+
arg.columns = visibleColumns;
|
|
315
|
+
const selected = typeof isRowSelected=='function'? isRowSelected(item,arg.index):undefined;
|
|
316
|
+
const rowArgs = {...arg,selected,isTable:true,allData,row:data,rowData:data,rowIndex:arg.index};
|
|
317
|
+
const rProps = getRowProps ? getRowProps(rowArgs) : {};
|
|
318
|
+
const rowStyle = getRowStyle(rowArgs);
|
|
319
|
+
const sItem = typeof renderItem == 'function'? renderItem({...arg,rowProps:rProps,rowStyle}) : undefined;
|
|
320
|
+
const cells = sItem && React.isValidElement(sItem) ? sItem : !isObj(item) ? null : visibleColumns.map((i,index)=>{
|
|
315
321
|
const cellValue = data[i];
|
|
316
322
|
const col = defaultObj(cols[i]);
|
|
317
323
|
const cellArgs = {...col,...arg,containerProps:{},columnIndex:col.index,style:{width:col.width},cellValue,data,rowData:data,row:data,rowIndex:arg.index};
|
|
@@ -328,13 +334,9 @@ const TableComponent = React.forwardRef(({containerProps,renderEmpty,isRowSelect
|
|
|
328
334
|
{content}
|
|
329
335
|
</View>);
|
|
330
336
|
});
|
|
331
|
-
|
|
332
|
-
const rowArgs = {...arg,selected,isTable:true,allData,row:data,cells,rowData:data,rowIndex:arg.index};
|
|
333
|
-
const rProps = getRowProps ? getRowProps(rowArgs) : {};
|
|
334
|
-
const rowStyle = getRowStyle(rowArgs);
|
|
335
|
-
return <View testID={testID+"_Row_"+arg.index} {...rowProps} {...rProps} style={[styles.row,rowProps.style,rowStyle,styles.rowNoPadding,rProps.style]}>
|
|
337
|
+
return cells ? <View testID={testID+"_Row_"+arg.index} {...rowProps} {...rProps} style={[styles.row,rowProps.style,rowStyle,styles.rowNoPadding,rProps.style]}>
|
|
336
338
|
{cells}
|
|
337
|
-
</View
|
|
339
|
+
</View> : null
|
|
338
340
|
}}
|
|
339
341
|
/>
|
|
340
342
|
<AbsoluteScrollView
|
|
@@ -490,6 +492,7 @@ TableComponent.popTypes = {
|
|
|
490
492
|
PropTypes.func,
|
|
491
493
|
PropTypes.object
|
|
492
494
|
]),
|
|
495
|
+
renderItem : PropTypes.func,//la fonction permettant de gérer le rendu des item
|
|
493
496
|
headerScrollViewProps : PropTypes.object,
|
|
494
497
|
footerScrollViewProps : PropTypes.object,
|
|
495
498
|
}
|