@m4l/components 9.3.19-BE171025-beta.1 → 9.3.19-BE241025-beta.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.
- package/components/DataGrid/DataGrid.js +9 -4
- package/components/DataGrid/Datagrid.styles.js +270 -0
- package/components/DataGrid/constants.js +2 -2
- package/components/DataGrid/contexts/DataGridContext/index.js +322 -112
- package/components/DataGrid/contexts/DataGridContext/types.d.ts +63 -4
- package/components/DataGrid/dictionary.d.ts +5 -0
- package/components/DataGrid/dictionary.js +6 -1
- package/components/DataGrid/formatters/ColumnSetCheckFormatter/formatter.js +2 -2
- package/components/DataGrid/hooks/useModalCardDetail.d.ts +6 -0
- package/components/DataGrid/hooks/useModalCardDetail.js +74 -0
- package/components/DataGrid/hooks/useProcessedColumns.d.ts +50 -0
- package/components/DataGrid/hooks/useProcessedColumns.js +44 -0
- package/components/DataGrid/icons.d.ts +7 -0
- package/components/DataGrid/icons.js +5 -1
- package/components/DataGrid/index.d.ts +1 -1
- package/components/DataGrid/slots/DataGridEnum.d.ts +22 -1
- package/components/DataGrid/slots/DataGridEnum.js +21 -0
- package/components/DataGrid/slots/DataGridSlot.d.ts +24 -0
- package/components/DataGrid/slots/DataGridSlot.js +123 -21
- package/components/DataGrid/subcomponents/Cards/hooks/useCardContent.d.ts +9 -0
- package/components/DataGrid/subcomponents/Cards/hooks/useCardContent.js +91 -0
- package/components/DataGrid/subcomponents/Cards/index.d.ts +5 -0
- package/components/DataGrid/subcomponents/Cards/index.js +40 -0
- package/components/DataGrid/subcomponents/Cards/subcomponents/CardDetails/index.d.ts +8 -0
- package/components/DataGrid/subcomponents/Cards/subcomponents/CardDetails/index.js +79 -0
- package/components/DataGrid/subcomponents/Cards/subcomponents/CardHeader/index.d.ts +7 -0
- package/components/DataGrid/subcomponents/Cards/subcomponents/CardHeader/index.js +98 -0
- package/components/DataGrid/subcomponents/Cards/subcomponents/CardRow/index.d.ts +6 -0
- package/components/DataGrid/subcomponents/Cards/subcomponents/CardRow/index.js +71 -0
- package/components/DataGrid/subcomponents/Cards/subcomponents/IntersectCard/index.d.ts +20 -0
- package/components/DataGrid/subcomponents/Cards/subcomponents/IntersectCard/index.js +46 -0
- package/components/DataGrid/subcomponents/Cards/subcomponents/LazyLoadCard/index.d.ts +17 -0
- package/components/DataGrid/subcomponents/Cards/subcomponents/LazyLoadCard/index.js +34 -0
- package/components/DataGrid/subcomponents/Cards/types.d.ts +118 -0
- package/components/DataGrid/subcomponents/CheckboxCellAdapter/index.d.ts +7 -0
- package/components/DataGrid/subcomponents/CheckboxCellAdapter/index.js +43 -0
- package/components/DataGrid/subcomponents/CheckboxCellAdapter/types.d.ts +7 -0
- package/components/DataGrid/subcomponents/ControlNavigate/ControlNavigate.js +1 -1
- package/components/DataGrid/subcomponents/HeaderActions/index.js +5 -3
- package/components/DataGrid/subcomponents/HeaderActions/subcomponents/RowsCount/index.js +1 -1
- package/components/DataGrid/subcomponents/HeaderActions/subcomponents/Settings/index.js +11 -2
- package/components/DataGrid/subcomponents/HeaderActions/subcomponents/Settings/subcomponents/ColumnsConfig/index.js +1 -1
- package/components/DataGrid/subcomponents/HeaderActions/subcomponents/Settings/subcomponents/ColumnsConfigCards/index.d.ts +2 -0
- package/components/DataGrid/subcomponents/HeaderActions/subcomponents/Settings/subcomponents/ColumnsConfigCards/index.js +304 -0
- package/components/DataGrid/subcomponents/HeaderActions/subcomponents/Settings/subcomponents/ColumnsConfigCards/types.d.ts +31 -0
- package/components/DataGrid/subcomponents/HeaderActions/subcomponents/ViewMode/index.d.ts +4 -0
- package/components/DataGrid/subcomponents/HeaderActions/subcomponents/ViewMode/index.js +125 -0
- package/components/DataGrid/subcomponents/HeaderActions/subcomponents/hooks/useModalSettings/index.js +2 -2
- package/components/DataGrid/subcomponents/HeaderActions/subcomponents/hooks/useModalSettingsCards/index.d.ts +7 -0
- package/components/DataGrid/subcomponents/HeaderActions/subcomponents/hooks/useModalSettingsCards/index.js +74 -0
- package/components/DataGrid/subcomponents/HeaderActions/subcomponents/hooks/useModalSettingsCards/types.d.ts +4 -0
- package/components/DataGrid/subcomponents/RenderContent/index.d.ts +5 -0
- package/components/DataGrid/subcomponents/RenderContent/index.js +11 -0
- package/components/DataGrid/subcomponents/Table/hooks/useHeaderMenuActions.js +2 -2
- package/components/DataGrid/subcomponents/Table/hooks/useSortColumnsRows.js +1 -1
- package/components/DataGrid/subcomponents/Table/index.js +1 -1
- package/components/DataGrid/subcomponents/Table/subcomponents/ActionsColumn.js +1 -1
- package/components/DataGrid/subcomponents/Table/subcomponents/DraggableHeaderRenderer.js +1 -1
- package/components/DataGrid/subcomponents/Table/subcomponents/HeaderRenderClick/HeaderRenderClick.js +1 -1
- package/components/DataGrid/subcomponents/editors/TextEditor/index.js +1 -1
- package/components/DataGrid/tests/components/CardDetails.test.d.ts +1 -0
- package/components/DataGrid/tests/components/CardHeader.test.d.ts +1 -0
- package/components/DataGrid/tests/components/CardRow.test.d.ts +1 -0
- package/components/DataGrid/tests/components/Cards.test.d.ts +1 -0
- package/components/DataGrid/tests/components/CheckboxCellAdapter.test.d.ts +1 -0
- package/components/DataGrid/tests/components/ColumnsConfigCards.test.d.ts +1 -0
- package/components/DataGrid/tests/components/IntersectCard.test.d.ts +1 -0
- package/components/DataGrid/tests/components/ViewMode.test.d.ts +1 -0
- package/components/DataGrid/tests/helpers/types.d.ts +1 -0
- package/components/DataGrid/tests/helpers/useCardsViewConfig.d.ts +24 -0
- package/components/DataGrid/tests/helpers/useCustomCardExample.d.ts +7 -0
- package/components/DataGrid/tests/hooks/useCardContent.test.d.ts +1 -0
- package/components/DataGrid/tests/hooks/useModalDetail.test.d.ts +1 -0
- package/components/DataGrid/tests/hooks/useModalSettingsCards.test.d.ts +1 -0
- package/components/DataGrid/tests/hooks/useProcessedColumns.test.d.ts +1 -0
- package/components/DataGrid/types.d.ts +87 -5
- package/components/DynamicFilter/helpers/formatToInitialFilters.js +3 -3
- package/components/DynamicFilter/subcomponents/FieldTypes/BooleanFilter/helpers.js +11 -3
- package/components/DynamicFilter/subcomponents/FieldTypes/DateTimeFilter/helpers.js +16 -4
- package/components/DynamicFilter/subcomponents/FieldTypes/NumberFilter/helpers.js +11 -8
- package/components/DynamicFilter/subcomponents/FieldTypes/SelectAsyncFilter/helpers.js +21 -8
- package/components/DynamicFilter/subcomponents/FieldTypes/SelectFilter/helpers.js +18 -8
- package/components/DynamicFilter/subcomponents/FieldTypes/StringFilter/helpers.js +5 -3
- package/components/EditLabel/hooks/useEditLabel.d.ts +1 -0
- package/components/LanguagePopover/LanguagePopover.js +2 -0
- package/components/MFIsolationApp/MFIsolationApp.js +3 -6
- package/components/MFIsolationApp/subcomponents/AppBarSettings/AppBarSettings.js +1 -1
- package/components/MFIsolationAppStorybook/MFIsolationAppStorybook.js +4 -20
- package/components/MFIsolationAppStorybook/types.d.ts +0 -4
- package/components/MenuActions/MenuActions.js +105 -55
- package/components/hook-form/RHFAutocomplete/RHFAutocomplete.d.ts +1 -1
- package/components/hook-form/RHFAutocomplete/RHFAutocomplete.js +4 -4
- package/components/hook-form/RHFAutocomplete/types.d.ts +2 -2
- package/components/hook-form/RHFAutocompleteAsync/RHFAutocompleteAsync.js +4 -4
- package/components/hook-form/RHFAutocompleteAsync/slots/RHFAutocompleteSlotsAsync.d.ts +1 -1
- package/components/mui_extended/Autocomplete/Autocomplete.d.ts +4 -8
- package/components/mui_extended/Autocomplete/Autocomplete.js +92 -67
- package/components/mui_extended/Autocomplete/Autocomplete.styles.js +11 -5
- package/components/mui_extended/Autocomplete/RenderAdornment/RenderAdornment.d.ts +6 -0
- package/components/mui_extended/Autocomplete/RenderAdornment/RenderAdornment.js +45 -0
- package/components/mui_extended/Autocomplete/hooks/useEndAdornments.js +2 -1
- package/components/mui_extended/Autocomplete/hooks/useStartAdornments.d.ts +4 -12
- package/components/mui_extended/Autocomplete/hooks/useStartAdornments.js +72 -23
- package/components/mui_extended/Autocomplete/hooks/useValuesAndHandlers.d.ts +0 -2
- package/components/mui_extended/Autocomplete/hooks/useValuesAndHandlers.js +0 -13
- package/components/mui_extended/Autocomplete/renderOptions/index.d.ts +4 -17
- package/components/mui_extended/Autocomplete/renderOptions/index.js +42 -5
- package/components/mui_extended/Autocomplete/renderOptions/types.d.ts +7 -0
- package/components/mui_extended/Autocomplete/slots/AutocompleteSlots.js +2 -2
- package/components/mui_extended/Autocomplete/types.d.ts +10 -3
- package/components/mui_extended/MenuItem/MenuItem.styles.js +4 -1
- package/contexts/AppearanceComponentContext/AppearanceComponentContext.js +4 -1
- package/hooks/useDataGridPersistence/helpers.d.ts +2 -2
- package/hooks/useDataGridPersistence/useDataGridPersistence.d.ts +2 -2
- package/hooks/useDataGridPersistence/useDataGridPersistence.js +5 -0
- package/index.js +8 -8
- package/package.json +1 -1
- package/components/MFIsolationAppStorybook/icons.js +0 -6
- package/components/MFIsolationAppStorybook/subcomponents/AppBarSettings/AppBarSettings.d.ts +0 -4
- package/components/MFIsolationAppStorybook/subcomponents/AppBarSettings/AppBarSettings.js +0 -21
- package/components/MFIsolationAppStorybook/subcomponents/AppBarSettings/index.d.ts +0 -1
- package/components/MFIsolationAppStorybook/subcomponents/AppBarSettings/index.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { O as InputTextEditorStyled } from "../../../slots/DataGridSlot.js";
|
|
3
3
|
function autoFocusAndSelect(input) {
|
|
4
4
|
input?.focus();
|
|
5
5
|
input?.select();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -25,6 +25,7 @@ export interface SeedProps {
|
|
|
25
25
|
withEditors?: boolean;
|
|
26
26
|
aligns?: Record<string, ColumnAlign>;
|
|
27
27
|
names?: Record<string, string>;
|
|
28
|
+
visibleColumns?: string[];
|
|
28
29
|
}
|
|
29
30
|
export type GetColumnsProps = Omit<SeedProps, 'quantity'>;
|
|
30
31
|
export type ColumnType = 'string' | 'number' | 'boolean' | 'date' | 'custom';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { CardsViewConfig } from '../../types';
|
|
2
|
+
interface UseCardsViewConfigProps {
|
|
3
|
+
/**
|
|
4
|
+
* Si es true, retorna cardsViewConfig con columnsConfig básica
|
|
5
|
+
*/
|
|
6
|
+
withBasicConfig?: boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Si es true, retorna cardsViewConfig con customRender
|
|
9
|
+
*/
|
|
10
|
+
withCustomRender?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Si es true, retorna cardsViewConfig solo con enabled=true (para demostrar error)
|
|
13
|
+
*/
|
|
14
|
+
withEnabledOnly?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Si es true, retorna cardsViewConfig con columnKey inválido (para demostrar error)
|
|
17
|
+
*/
|
|
18
|
+
withInvalidColumnKey?: boolean;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Hook helper que genera configuraciones de cardsViewConfig para testing
|
|
22
|
+
*/
|
|
23
|
+
export declare const useCardsViewConfigHelper: <TRow = any>(props?: UseCardsViewConfigProps) => CardsViewConfig<TRow> | undefined;
|
|
24
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -5,7 +5,7 @@ import { MenuAction } from '../MenuActions/types';
|
|
|
5
5
|
import { ActionsSlots, ColumnIconFormatterSlots, ColumnsConfigSlots, ControlNavigateSlots, DataGridSlots, RowsCountSlots, TableSlots, TextEditorSlots } from './slots/DataGridEnum';
|
|
6
6
|
import { OverridesStyleRules } from '@mui/material/styles/overrides';
|
|
7
7
|
import { DATAGRID_PREFIX_NAME } from './constants';
|
|
8
|
-
import {
|
|
8
|
+
import { IGridConfigExtended, ViewMode } from './contexts/DataGridContext/types';
|
|
9
9
|
import { Sizes } from '@m4l/styles';
|
|
10
10
|
import { PagerProps } from '../Pager';
|
|
11
11
|
import { SettingsProps } from './subcomponents/HeaderActions/subcomponents/Settings/types';
|
|
@@ -61,10 +61,10 @@ export interface ColumnConfig {
|
|
|
61
61
|
position?: number;
|
|
62
62
|
frozen?: Maybe<boolean>;
|
|
63
63
|
}
|
|
64
|
-
type KeyUserColumns = keyof
|
|
64
|
+
type KeyUserColumns = keyof IGridConfigExtended;
|
|
65
65
|
export interface ChangeUserColumn<T extends KeyUserColumns = KeyUserColumns> {
|
|
66
66
|
reason: T;
|
|
67
|
-
userConfig:
|
|
67
|
+
userConfig: IGridConfigExtended[T];
|
|
68
68
|
}
|
|
69
69
|
export type OnChangeUserColumns = (props: ChangeUserColumn) => void;
|
|
70
70
|
export type SortApplied = {
|
|
@@ -139,7 +139,7 @@ export interface GridProps<TRow, TSummaryRow, TKey extends RowKey = RowKey> exte
|
|
|
139
139
|
/**
|
|
140
140
|
* Propiedad opcional que recibe la configuración de las columnas
|
|
141
141
|
*/
|
|
142
|
-
defaultUserColumns?:
|
|
142
|
+
defaultUserColumns?: IGridConfigExtended;
|
|
143
143
|
/**
|
|
144
144
|
* Propiedad que recibe la función que se ejecuta cuando se cambian
|
|
145
145
|
* las configuraciones de las columnas.
|
|
@@ -150,6 +150,15 @@ export interface GridProps<TRow, TSummaryRow, TKey extends RowKey = RowKey> exte
|
|
|
150
150
|
* @default 'medium'
|
|
151
151
|
*/
|
|
152
152
|
size?: Extract<Sizes, 'small' | 'medium'>;
|
|
153
|
+
/**
|
|
154
|
+
* Modo por defecto de visualización
|
|
155
|
+
*/
|
|
156
|
+
defaultViewMode?: ViewMode;
|
|
157
|
+
/**
|
|
158
|
+
* Configuración de la vista de "cards"
|
|
159
|
+
* Incluye habilitación, configuración de columnas y renderizado personalizado
|
|
160
|
+
*/
|
|
161
|
+
cardsViewConfig?: CardsViewConfig<TRow>;
|
|
153
162
|
}
|
|
154
163
|
export declare const DATAGRID_TEST_ID = "m4ldatagrid";
|
|
155
164
|
export declare const PREFIX_TEST_ATTRIBUTE = "data-testid";
|
|
@@ -170,6 +179,79 @@ export interface ActionsProps {
|
|
|
170
179
|
leftActions?: React.ReactNode;
|
|
171
180
|
rightActions?: React.ReactNode;
|
|
172
181
|
}
|
|
173
|
-
|
|
182
|
+
/**
|
|
183
|
+
* Props para el hook useModalDetail
|
|
184
|
+
*/
|
|
185
|
+
export interface UseModalDetailProps<TRow> {
|
|
186
|
+
row: TRow;
|
|
187
|
+
columns: readonly Column<TRow, any>[];
|
|
188
|
+
viewMode: ViewMode;
|
|
189
|
+
onRowsChange?: Maybe<(rows: TRow[], data: RowsChangeData<TRow, any>) => void>;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Configuración de una columna específica en vista "cards"
|
|
193
|
+
*/
|
|
194
|
+
export interface CardColumnConfig {
|
|
195
|
+
/**
|
|
196
|
+
* Key de la columna (debe coincidir con la key de la columna)
|
|
197
|
+
*/
|
|
198
|
+
columnKey: string;
|
|
199
|
+
/**
|
|
200
|
+
* Si se debe mostrar el título/label de esta columna en la card (Solo si no existe una config previa)
|
|
201
|
+
*/
|
|
202
|
+
showTitle: boolean;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Cards con columnsConfig
|
|
206
|
+
*/
|
|
207
|
+
export interface CardsViewConfigWithColumns {
|
|
208
|
+
columnsConfig: CardColumnConfig[];
|
|
209
|
+
customRender?: never;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Cards con customRender
|
|
213
|
+
*/
|
|
214
|
+
export interface CardsViewConfigWithCustomRender<TRow> {
|
|
215
|
+
columnsConfig?: never;
|
|
216
|
+
customRender: {
|
|
217
|
+
renderContent: (row: TRow) => React.ReactNode;
|
|
218
|
+
minHeight: number;
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Configuración para la vista de "cards"
|
|
223
|
+
*
|
|
224
|
+
* IMPORTANTE:
|
|
225
|
+
* Es OBLIGATORIO configurar al menos 1 columna cuando customRender=undefined
|
|
226
|
+
* Se ignora completamente si customRender está definido
|
|
227
|
+
* @throws Error si customRender=undefined y array está vacío
|
|
228
|
+
*/
|
|
229
|
+
export type CardsViewConfig<TRow> = CardsViewConfigWithColumns | CardsViewConfigWithCustomRender<TRow>;
|
|
230
|
+
/**
|
|
231
|
+
* Opciones para el procesamiento de columnas
|
|
232
|
+
*/
|
|
233
|
+
export interface ProcessedColumnsOptions {
|
|
234
|
+
/**
|
|
235
|
+
* Si es true, aplica el filtro de visibilidad configurado por el usuario.
|
|
236
|
+
* Si es false, muestra TODAS las columnas.
|
|
237
|
+
* @default true
|
|
238
|
+
*/
|
|
239
|
+
applyVisibilityFilter?: boolean;
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Props para el hook useCardContent
|
|
243
|
+
*/
|
|
244
|
+
export interface CardContentProps<TRow> {
|
|
245
|
+
row: TRow;
|
|
246
|
+
columns: readonly Column<TRow, any>[];
|
|
247
|
+
originalColumns: readonly Column<TRow, any>[];
|
|
248
|
+
onRowsChange?: Maybe<(rows: TRow[], data: RowsChangeData<TRow, any>) => void>;
|
|
249
|
+
}
|
|
250
|
+
export type DataGridOwnerState<TRow, TSummaryRow, TKey extends RowKey = RowKey> = Pick<DataGridProps<TRow, TSummaryRow, TKey>, 'visibleCustomHeader'> & {
|
|
251
|
+
viewMode?: ViewMode;
|
|
252
|
+
isActive?: boolean;
|
|
253
|
+
hasActions?: boolean;
|
|
254
|
+
hasCheckedRows?: boolean;
|
|
255
|
+
};
|
|
174
256
|
export type DataGridSlotsType = DataGridSlots | TextEditorSlots | ActionsSlots | RowsCountSlots | ColumnsConfigSlots | TableSlots | ControlNavigateSlots | ColumnIconFormatterSlots;
|
|
175
257
|
export type DataGridStyles = OverridesStyleRules<DataGridSlotsType, typeof DATAGRID_PREFIX_NAME, Theme>;
|
|
@@ -30,9 +30,9 @@ function formatToInitialFilters(appliedFilters) {
|
|
|
30
30
|
return {
|
|
31
31
|
name: af.field.name,
|
|
32
32
|
operator: af.operator,
|
|
33
|
-
...operand1 ? { operand1 } : {},
|
|
34
|
-
...operand2 ? { operand2 } : {},
|
|
35
|
-
...operandArray ? { operandArray } : {}
|
|
33
|
+
...operand1 !== void 0 ? { operand1 } : {},
|
|
34
|
+
...operand2 !== void 0 ? { operand2 } : {},
|
|
35
|
+
...operandArray !== void 0 ? { operandArray } : {}
|
|
36
36
|
};
|
|
37
37
|
});
|
|
38
38
|
}
|
|
@@ -11,12 +11,16 @@ class BooleanFilterHelpers {
|
|
|
11
11
|
*/
|
|
12
12
|
getDefaultFilter(field, fixed) {
|
|
13
13
|
const defaultOperand1 = field.defaultOperand1;
|
|
14
|
+
let isSet = false;
|
|
15
|
+
if (defaultOperand1 !== void 0 && typeof defaultOperand1 === "boolean") {
|
|
16
|
+
isSet = true;
|
|
17
|
+
}
|
|
14
18
|
const defaultFilter = {
|
|
15
19
|
id: 0,
|
|
16
20
|
fieldType: "boolean",
|
|
17
21
|
field,
|
|
18
22
|
fixed,
|
|
19
|
-
isSet
|
|
23
|
+
isSet,
|
|
20
24
|
operator: "e",
|
|
21
25
|
operand1: true
|
|
22
26
|
};
|
|
@@ -45,7 +49,9 @@ class BooleanFilterHelpers {
|
|
|
45
49
|
const operator = filterValueBoolean ? filterValueBoolean.operator : field.defaultOperator ?? "e";
|
|
46
50
|
const formValueOperand1 = filterValueBoolean ? {
|
|
47
51
|
value: filterValueBoolean.operand1,
|
|
48
|
-
label: getLabel(
|
|
52
|
+
label: getLabel(
|
|
53
|
+
`${DYNAMIC_FILTER_DICTIONARY_ID}.operand_${filterValueBoolean.operand1}`
|
|
54
|
+
)
|
|
49
55
|
} : null;
|
|
50
56
|
return {
|
|
51
57
|
fieldType: "boolean",
|
|
@@ -63,7 +69,9 @@ class BooleanFilterHelpers {
|
|
|
63
69
|
const labelOperands = filter.operand1 ? getLabel(DICCTIONARY.operand_true) : getLabel(DICCTIONARY.operand_false);
|
|
64
70
|
return {
|
|
65
71
|
labelField: filter.field.label ?? getLabel(filter.field.dictionaryId),
|
|
66
|
-
labelOperator: getLabel(
|
|
72
|
+
labelOperator: getLabel(
|
|
73
|
+
`${DYNAMIC_FILTER_DICTIONARY_ID}.operator_${filter.operator}`
|
|
74
|
+
),
|
|
67
75
|
labelOperands
|
|
68
76
|
};
|
|
69
77
|
}
|
|
@@ -18,12 +18,16 @@ class DateTimeFilterHelpers {
|
|
|
18
18
|
defaultEndDate.setHours(23, 59, 59, 999);
|
|
19
19
|
const defaultOperand1 = field.defaultOperand1 && field.defaultOperand1 instanceof Date ? field.defaultOperand1 : defaultStartDate;
|
|
20
20
|
const defaultOperand2 = field.defaultOperand2 && field.defaultOperand2 instanceof Date ? field.defaultOperand2 : defaultEndDate;
|
|
21
|
+
let isSet = false;
|
|
22
|
+
if (defaultOperand1 !== void 0) {
|
|
23
|
+
isSet = true;
|
|
24
|
+
}
|
|
21
25
|
return {
|
|
22
26
|
id: 0,
|
|
23
27
|
fieldType: "datetime",
|
|
24
28
|
field,
|
|
25
29
|
fixed,
|
|
26
|
-
isSet
|
|
30
|
+
isSet,
|
|
27
31
|
operator: "b",
|
|
28
32
|
operand1: defaultOperand1,
|
|
29
33
|
operand2: defaultOperand2
|
|
@@ -83,13 +87,21 @@ class DateTimeFilterHelpers {
|
|
|
83
87
|
labelOperands = filter.operand1 && filter.operand2 ? `${dateFormatter.formatDate(
|
|
84
88
|
filter.operand1,
|
|
85
89
|
dateFormatter.datetimeFormat
|
|
86
|
-
)} - ${dateFormatter.formatDate(
|
|
90
|
+
)} - ${dateFormatter.formatDate(
|
|
91
|
+
filter.operand2,
|
|
92
|
+
dateFormatter.datetimeFormat
|
|
93
|
+
)}` : "";
|
|
87
94
|
} else {
|
|
88
|
-
labelOperands = filter.operand1 ? dateFormatter.formatDate(
|
|
95
|
+
labelOperands = filter.operand1 ? dateFormatter.formatDate(
|
|
96
|
+
filter.operand1,
|
|
97
|
+
dateFormatter.datetimeFormat
|
|
98
|
+
) : "";
|
|
89
99
|
}
|
|
90
100
|
return {
|
|
91
101
|
labelField: filter.field.label ?? getLabel(filter.field.dictionaryId),
|
|
92
|
-
labelOperator: getLabel(
|
|
102
|
+
labelOperator: getLabel(
|
|
103
|
+
`${DYNAMIC_FILTER_DICTIONARY_ID}.operator_${filter.operator}`
|
|
104
|
+
),
|
|
93
105
|
labelOperands
|
|
94
106
|
};
|
|
95
107
|
}
|
|
@@ -15,12 +15,10 @@ class NumberFilterHelpers {
|
|
|
15
15
|
const defaultOperand1 = field.defaultOperand1 ?? null;
|
|
16
16
|
const defaultOperand2 = field.defaultOperand2 ?? null;
|
|
17
17
|
let isSet = false;
|
|
18
|
-
if (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
isSet = defaultOperand1 !== null ? true : false;
|
|
23
|
-
}
|
|
18
|
+
if (["b"].includes(dOperator)) {
|
|
19
|
+
isSet = defaultOperand1 !== null && defaultOperand2 !== null ? true : false;
|
|
20
|
+
} else {
|
|
21
|
+
isSet = defaultOperand1 !== null ? true : false;
|
|
24
22
|
}
|
|
25
23
|
return {
|
|
26
24
|
id: 0,
|
|
@@ -85,7 +83,9 @@ class NumberFilterHelpers {
|
|
|
85
83
|
}
|
|
86
84
|
return {
|
|
87
85
|
labelField: filter.field.label ?? getLabel(filter.field.dictionaryId),
|
|
88
|
-
labelOperator: getLabel(
|
|
86
|
+
labelOperator: getLabel(
|
|
87
|
+
`${DYNAMIC_FILTER_DICTIONARY_ID}.operator_${filter.operator}`
|
|
88
|
+
),
|
|
89
89
|
labelOperands
|
|
90
90
|
};
|
|
91
91
|
}
|
|
@@ -100,7 +100,10 @@ class NumberFilterHelpers {
|
|
|
100
100
|
),
|
|
101
101
|
formValueOperand2: Yup.mixed().when(["formValueOperator.id"], {
|
|
102
102
|
is: "b",
|
|
103
|
-
then: Yup.number().typeError(getLabel(DICCTIONARY.error_operand_mustbe_number)).min(
|
|
103
|
+
then: Yup.number().typeError(getLabel(DICCTIONARY.error_operand_mustbe_number)).min(
|
|
104
|
+
Yup.ref("formValueOperand1"),
|
|
105
|
+
getLabel(DICCTIONARY.error_less_than_start)
|
|
106
|
+
)
|
|
104
107
|
})
|
|
105
108
|
});
|
|
106
109
|
}
|
|
@@ -27,13 +27,16 @@ class SelectAsyncFilterHelpers {
|
|
|
27
27
|
let operandsArray = [];
|
|
28
28
|
if (isMultiple) {
|
|
29
29
|
dOperator = field.defaultOperator ?? "in";
|
|
30
|
-
isSet =
|
|
30
|
+
isSet = defaultOperandsArray !== null && defaultOperandsArray.length > 0;
|
|
31
31
|
if (field.defaultOperandsArray !== void 0 && Array.isArray(field.defaultOperandsArray)) {
|
|
32
|
-
operandsArray = filterValidOperandsArraySelectAsync(
|
|
32
|
+
operandsArray = filterValidOperandsArraySelectAsync(
|
|
33
|
+
field.defaultOperandsArray,
|
|
34
|
+
field
|
|
35
|
+
);
|
|
33
36
|
}
|
|
34
37
|
} else {
|
|
35
38
|
dOperator = field.defaultOperator ?? "e";
|
|
36
|
-
isSet =
|
|
39
|
+
isSet = defaultOperand1 ? true : false;
|
|
37
40
|
}
|
|
38
41
|
const defaultCommonFilter = {
|
|
39
42
|
id: 0,
|
|
@@ -122,15 +125,21 @@ class SelectAsyncFilterHelpers {
|
|
|
122
125
|
let labelOperands = "";
|
|
123
126
|
if (isMultiple) {
|
|
124
127
|
labelOperands = operandsArray?.reduce?.((label, operand) => {
|
|
125
|
-
const textLabel = field.selectAsyncOptions?.getOptionLabel?.(
|
|
128
|
+
const textLabel = field.selectAsyncOptions?.getOptionLabel?.(
|
|
129
|
+
operand
|
|
130
|
+
) || "";
|
|
126
131
|
return label ? `${label} | ${textLabel}` : textLabel;
|
|
127
132
|
}, "")?.toString() || "?";
|
|
128
133
|
} else {
|
|
129
|
-
labelOperands = (field.selectAsyncOptions?.getOptionLabel?.(
|
|
134
|
+
labelOperands = (field.selectAsyncOptions?.getOptionLabel?.(
|
|
135
|
+
filter.operand1
|
|
136
|
+
) ?? "?") + "";
|
|
130
137
|
}
|
|
131
138
|
return {
|
|
132
139
|
labelField: filter.field.label ?? getLabel(filter.field.dictionaryId),
|
|
133
|
-
labelOperator: getLabel(
|
|
140
|
+
labelOperator: getLabel(
|
|
141
|
+
`${DYNAMIC_FILTER_DICTIONARY_ID}.operator_${filter.operator}`
|
|
142
|
+
),
|
|
134
143
|
labelOperands
|
|
135
144
|
};
|
|
136
145
|
}
|
|
@@ -163,7 +172,9 @@ class SelectAsyncFilterHelpers {
|
|
|
163
172
|
return false;
|
|
164
173
|
}
|
|
165
174
|
if (isMultiple) {
|
|
166
|
-
if (SELECT_ASYNC_OPERATORS_MULTIPLE.findIndex(
|
|
175
|
+
if (SELECT_ASYNC_OPERATORS_MULTIPLE.findIndex(
|
|
176
|
+
(f) => f === filter.operator
|
|
177
|
+
) === -1) {
|
|
167
178
|
return false;
|
|
168
179
|
}
|
|
169
180
|
if (!filter.operandsArray || typeof filter.operandsArray !== "object") {
|
|
@@ -180,7 +191,9 @@ class SelectAsyncFilterHelpers {
|
|
|
180
191
|
return false;
|
|
181
192
|
}
|
|
182
193
|
} else {
|
|
183
|
-
if (SELECT_ASYNC_OPERATORS_SINGLE.findIndex(
|
|
194
|
+
if (SELECT_ASYNC_OPERATORS_SINGLE.findIndex(
|
|
195
|
+
(f) => f === filter.operator
|
|
196
|
+
) === -1) {
|
|
184
197
|
return false;
|
|
185
198
|
}
|
|
186
199
|
if (!filter.operand1 || typeof filter.operand1 !== "object") {
|
|
@@ -26,13 +26,15 @@ class SelectFilterHelpers {
|
|
|
26
26
|
let operandsArray = [];
|
|
27
27
|
if (isMultiple) {
|
|
28
28
|
dOperator = field.defaultOperator ?? "in";
|
|
29
|
-
isSet =
|
|
29
|
+
isSet = defaultOperandsArray !== null && defaultOperandsArray.length > 0;
|
|
30
30
|
if (field.defaultOperandsArray !== void 0 && Array.isArray(field.defaultOperandsArray)) {
|
|
31
|
-
operandsArray = filterValidOperandsArraySelect(
|
|
31
|
+
operandsArray = filterValidOperandsArraySelect(
|
|
32
|
+
field.defaultOperandsArray
|
|
33
|
+
);
|
|
32
34
|
}
|
|
33
35
|
} else {
|
|
34
36
|
dOperator = field.defaultOperator ?? "e";
|
|
35
|
-
isSet =
|
|
37
|
+
isSet = defaultOperand1 !== null;
|
|
36
38
|
}
|
|
37
39
|
const defaultCommonFilter = {
|
|
38
40
|
id: 0,
|
|
@@ -123,7 +125,9 @@ class SelectFilterHelpers {
|
|
|
123
125
|
let labelOperands = "";
|
|
124
126
|
if (isMultiple) {
|
|
125
127
|
labelOperands = operandsArray?.reduce?.((label, operand) => {
|
|
126
|
-
const textLabel = field.selectOptions?.options.find(
|
|
128
|
+
const textLabel = field.selectOptions?.options.find(
|
|
129
|
+
(option) => option.id === operand
|
|
130
|
+
)?.label || "";
|
|
127
131
|
return label ? `${label} | ${textLabel}` : textLabel;
|
|
128
132
|
}, "")?.toString() || "?";
|
|
129
133
|
} else {
|
|
@@ -131,7 +135,9 @@ class SelectFilterHelpers {
|
|
|
131
135
|
}
|
|
132
136
|
return {
|
|
133
137
|
labelField: filter.field.label ?? getLabel(filter.field.dictionaryId),
|
|
134
|
-
labelOperator: getLabel(
|
|
138
|
+
labelOperator: getLabel(
|
|
139
|
+
`${DYNAMIC_FILTER_DICTIONARY_ID}.operator_${filter.operator}`
|
|
140
|
+
),
|
|
135
141
|
labelOperands
|
|
136
142
|
};
|
|
137
143
|
}
|
|
@@ -147,9 +153,13 @@ class SelectFilterHelpers {
|
|
|
147
153
|
}),
|
|
148
154
|
formValueOperand1: Yup.mixed().when(["multiple"], {
|
|
149
155
|
is: false,
|
|
150
|
-
then: Yup.mixed().test(
|
|
151
|
-
|
|
152
|
-
|
|
156
|
+
then: Yup.mixed().test(
|
|
157
|
+
"is-string-or-number",
|
|
158
|
+
getLabel(DICCTIONARY.error_operand_required),
|
|
159
|
+
(value) => {
|
|
160
|
+
return typeof value === "string" || typeof value === "number";
|
|
161
|
+
}
|
|
162
|
+
).required(getLabel(DICCTIONARY.error_operand_required))
|
|
153
163
|
})
|
|
154
164
|
});
|
|
155
165
|
}
|
|
@@ -12,8 +12,8 @@ class StringFilterHelpers {
|
|
|
12
12
|
getDefaultFilter(field, fixed) {
|
|
13
13
|
const defaultOperand1 = field.defaultOperand1;
|
|
14
14
|
let isSet = false;
|
|
15
|
-
if (
|
|
16
|
-
isSet =
|
|
15
|
+
if (defaultOperand1 !== null && typeof defaultOperand1 === "string") {
|
|
16
|
+
isSet = true;
|
|
17
17
|
}
|
|
18
18
|
const defaultFilter = {
|
|
19
19
|
id: 0,
|
|
@@ -64,7 +64,9 @@ class StringFilterHelpers {
|
|
|
64
64
|
const labelOperands = filter.operand1 !== void 0 ? filter.operand1 + "" : "";
|
|
65
65
|
return {
|
|
66
66
|
labelField: filter.field.label ?? getLabel(filter.field.dictionaryId),
|
|
67
|
-
labelOperator: getLabel(
|
|
67
|
+
labelOperator: getLabel(
|
|
68
|
+
`${DYNAMIC_FILTER_DICTIONARY_ID}.operator_${filter.operator}`
|
|
69
|
+
),
|
|
68
70
|
labelOperands
|
|
69
71
|
};
|
|
70
72
|
}
|
|
@@ -5,6 +5,7 @@ export interface UseEditLabelProps {
|
|
|
5
5
|
export interface UseEditLabelReturn {
|
|
6
6
|
inEdition: boolean;
|
|
7
7
|
value: string;
|
|
8
|
+
inputRef: React.RefObject<HTMLInputElement>;
|
|
8
9
|
buttonSubmitRef: React.RefObject<HTMLButtonElement>;
|
|
9
10
|
buttonCancelRef: React.RefObject<HTMLButtonElement>;
|
|
10
11
|
handleChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
@@ -70,6 +70,8 @@ function LanguagePopover(props) {
|
|
|
70
70
|
ownerState: {
|
|
71
71
|
size: currentSize
|
|
72
72
|
},
|
|
73
|
+
role: "button",
|
|
74
|
+
"aria-label": "Language selector",
|
|
73
75
|
size: currentSize,
|
|
74
76
|
className: classRoot,
|
|
75
77
|
...getPropDataTestId(LANGUAGE_POPOVER_KEY_COMPONENT, LanguagePopoverSlots.root),
|
|
@@ -43,7 +43,7 @@ function MFIsolationApp(props) {
|
|
|
43
43
|
forcedDeviceType,
|
|
44
44
|
areasStoreId,
|
|
45
45
|
areasStoreDevtoolsEnabled,
|
|
46
|
-
appBarSettings =
|
|
46
|
+
appBarSettings = true
|
|
47
47
|
} = props;
|
|
48
48
|
const eventEmitter = useMemo(() => new EventEmitter(), []);
|
|
49
49
|
const events_add_listener = useCallback(
|
|
@@ -134,12 +134,9 @@ function MFIsolationApp(props) {
|
|
|
134
134
|
onLoad,
|
|
135
135
|
loadAreasFromNetwork: activeAreasNetwork,
|
|
136
136
|
loadCookiesFromNetwork: activeCookiesFromNetwork,
|
|
137
|
-
|
|
138
|
-
console.log("onSelectLayout", modId);
|
|
139
|
-
},
|
|
140
|
-
children: /* @__PURE__ */ jsxs(Stack, { width: "100%", height: "100%", flexDirection: "column", overflow: "hidden", position: "relative", children: [
|
|
137
|
+
children: /* @__PURE__ */ jsxs(Stack, { width: "100%", height: "100%", flexDirection: "column", position: "absolute", children: [
|
|
141
138
|
appBarSettings && /* @__PURE__ */ jsx(AppBarSettings, {}),
|
|
142
|
-
/* @__PURE__ */ jsx(Stack, { width: "100%", flexGrow: 1, flexDirection: "column",
|
|
139
|
+
/* @__PURE__ */ jsx(Stack, { width: "100%", flexGrow: 1, flexDirection: "column", position: "relative", children })
|
|
143
140
|
] })
|
|
144
141
|
}
|
|
145
142
|
)
|
|
@@ -12,7 +12,7 @@ function AppBarSettings() {
|
|
|
12
12
|
/* @__PURE__ */ jsx(Stack, { width: "100%", height: "100%" }),
|
|
13
13
|
/* @__PURE__ */ jsxs(Stack, { flexDirection: "row", gap: 2, height: "100%", width: "auto", alignItems: "center", children: [
|
|
14
14
|
/* @__PURE__ */ jsx(LanguagePopover, {}),
|
|
15
|
-
/* @__PURE__ */ jsx(IconButton, { src: `${host_static_assets}/${environment_assets}/${PATH_ICONS.SETTINGS}`, onClick: handleOpen })
|
|
15
|
+
/* @__PURE__ */ jsx(IconButton, { role: "button", "aria-label": "Toggle App Bar Settings", src: `${host_static_assets}/${environment_assets}/${PATH_ICONS.SETTINGS}`, onClick: handleOpen })
|
|
16
16
|
] })
|
|
17
17
|
] });
|
|
18
18
|
}
|
|
@@ -5,7 +5,7 @@ import { createBrowserHistory } from "history";
|
|
|
5
5
|
import EventEmitter from "eventemitter3";
|
|
6
6
|
import NProgress from "nprogress";
|
|
7
7
|
import { DeviceTypeProvider, ThemeSettingsProvider, LocalesProvider } from "@m4l/graphics";
|
|
8
|
-
import { EnvironmentProvider, HostToolsProvider, NetworkProvider } from "@m4l/core";
|
|
8
|
+
import { EnvironmentProvider, HostToolsProvider, NetworkProvider, axiosOperation } from "@m4l/core";
|
|
9
9
|
import { A as AppearanceComponentProvider } from "../../contexts/AppearanceComponentContext/AppearanceComponentContext.js";
|
|
10
10
|
import enLocale from "date-fns/locale/en-US";
|
|
11
11
|
import { c as createToaster } from "../ToastContainer/helpers/toaster.js";
|
|
@@ -13,10 +13,7 @@ import { M as MFAuthAppStorybook } from "./subcomponents/MFAuthAppStorybook/MFAu
|
|
|
13
13
|
import { B as BaseModule } from "../BaseModule/BaseModule.js";
|
|
14
14
|
import { S as SettingsLayout } from "../SettingsLayout/SettingsLayout.js";
|
|
15
15
|
import { T as ToastContainer } from "../ToastContainer/ToastContainer.js";
|
|
16
|
-
import { A as AppBarSettings } from "./subcomponents/AppBarSettings/AppBarSettings.js";
|
|
17
16
|
import { P as PopupsProvider } from "../popups/components/PopupsProvider/contexts/PopupsContext/PopupsContext.js";
|
|
18
|
-
import { A as AreasProvider } from "../areas/contexts/AreasContext/index.js";
|
|
19
|
-
import { S as Stack } from "../mui_extended/Stack/Stack.js";
|
|
20
17
|
const LOCALE_HOST_EN = {
|
|
21
18
|
lang: "en",
|
|
22
19
|
script: void 0,
|
|
@@ -43,13 +40,11 @@ function MFIsolationAppStorybook(props) {
|
|
|
43
40
|
moduleNameField,
|
|
44
41
|
privileges,
|
|
45
42
|
componentsDictionary,
|
|
46
|
-
onLoad,
|
|
47
43
|
// observedDivRef,
|
|
48
44
|
moduleDictionaryLoaded,
|
|
49
45
|
forcedDeviceType,
|
|
50
46
|
areasStoreId,
|
|
51
|
-
areasStoreDevtoolsEnabled
|
|
52
|
-
appBarSettings = false
|
|
47
|
+
areasStoreDevtoolsEnabled
|
|
53
48
|
} = props;
|
|
54
49
|
const eventEmitter = useMemo(() => new EventEmitter(), []);
|
|
55
50
|
const events_add_listener = useCallback(
|
|
@@ -113,14 +108,7 @@ function MFIsolationAppStorybook(props) {
|
|
|
113
108
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
114
109
|
[]
|
|
115
110
|
);
|
|
116
|
-
|
|
117
|
-
return Promise.resolve({
|
|
118
|
-
data: [],
|
|
119
|
-
status: 200,
|
|
120
|
-
statusText: "OK"
|
|
121
|
-
});
|
|
122
|
-
}, []);
|
|
123
|
-
return /* @__PURE__ */ jsx(EnvironmentProvider, { ...environment, children: /* @__PURE__ */ jsx(HostToolsProvider, { ...hostTools, children: /* @__PURE__ */ jsx(NetworkProvider, { axiosOperation: mockNetworkOperation, children: /* @__PURE__ */ jsx(unstable_HistoryRouter, { history, children: /* @__PURE__ */ jsx(DeviceTypeProvider, { forcedDeviceType, children: /* @__PURE__ */ jsx(MFAuthAppStorybook, { children: /* @__PURE__ */ jsx(ThemeSettingsProvider, { children: /* @__PURE__ */ jsx(LocalesProvider, { isMicroFrontEnd: true, localeHost: LOCALE_HOST_EN, children: /* @__PURE__ */ jsx(
|
|
111
|
+
return /* @__PURE__ */ jsx(EnvironmentProvider, { ...environment, children: /* @__PURE__ */ jsx(HostToolsProvider, { ...hostTools, children: /* @__PURE__ */ jsx(NetworkProvider, { axiosOperation, children: /* @__PURE__ */ jsx(unstable_HistoryRouter, { history, children: /* @__PURE__ */ jsx(DeviceTypeProvider, { forcedDeviceType, children: /* @__PURE__ */ jsx(MFAuthAppStorybook, { children: /* @__PURE__ */ jsx(ThemeSettingsProvider, { children: /* @__PURE__ */ jsx(LocalesProvider, { isMicroFrontEnd: true, localeHost: LOCALE_HOST_EN, children: /* @__PURE__ */ jsx(
|
|
124
112
|
BaseModule,
|
|
125
113
|
{
|
|
126
114
|
moduleId,
|
|
@@ -132,17 +120,13 @@ function MFIsolationAppStorybook(props) {
|
|
|
132
120
|
children: /* @__PURE__ */ jsxs(AppearanceComponentProvider, { children: [
|
|
133
121
|
/* @__PURE__ */ jsx(SettingsLayout, {}),
|
|
134
122
|
/* @__PURE__ */ jsx(ToastContainer, { containerId: toastContainerId }),
|
|
135
|
-
" ",
|
|
136
123
|
/* @__PURE__ */ jsx(
|
|
137
124
|
PopupsProvider,
|
|
138
125
|
{
|
|
139
126
|
baseZindex: 1e3,
|
|
140
127
|
storeId: areasStoreId,
|
|
141
128
|
storeDevtoolsEnabled: areasStoreDevtoolsEnabled,
|
|
142
|
-
children
|
|
143
|
-
appBarSettings && /* @__PURE__ */ jsx(AppBarSettings, {}),
|
|
144
|
-
/* @__PURE__ */ jsx(Stack, { width: "100%", flexGrow: 1, flexDirection: "column", overflow: "hidden", position: "relative", children })
|
|
145
|
-
] }) })
|
|
129
|
+
children
|
|
146
130
|
}
|
|
147
131
|
)
|
|
148
132
|
] })
|
|
@@ -8,10 +8,6 @@ export type MFIsolationAppStorybookProps = BaseModuleProps & {
|
|
|
8
8
|
host_api_remote: string;
|
|
9
9
|
host_static_assets: string;
|
|
10
10
|
environment_assets: string;
|
|
11
|
-
onLoad: () => void;
|
|
12
|
-
activeAreasNetwork?: boolean;
|
|
13
|
-
activeCookiesFromNetwork?: boolean;
|
|
14
|
-
appBarSettings?: boolean;
|
|
15
11
|
/**
|
|
16
12
|
* Diccionario de componentes, se puede proporcionar ya el diccionario cargado, para evitar que se llame al endpoint nuevamente.
|
|
17
13
|
*/
|