ucol-ui 0.1.42 → 0.1.44
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/dist/ucol-ui.d.ts +136 -2
- package/dist/ucol-ui.js +155 -145
- package/dist/ucol-ui.umd.cjs +1 -1
- package/package.json +1 -1
package/dist/ucol-ui.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ export declare interface ActionConfig<T extends Record<string, unknown> = Record
|
|
|
20
20
|
showView?: boolean | ((record: T) => boolean);
|
|
21
21
|
customIcons?: ActionIcons;
|
|
22
22
|
refreshButtonText?: string;
|
|
23
|
+
useDefaultDeleteConfirm?: boolean;
|
|
23
24
|
customActionsColor?: {
|
|
24
25
|
edit?: string;
|
|
25
26
|
delete?: string;
|
|
@@ -180,6 +181,38 @@ export declare interface ColumnsProps<T = Record<string, unknown>> {
|
|
|
180
181
|
sorter?: boolean | ((a: T, b: T) => number);
|
|
181
182
|
}
|
|
182
183
|
|
|
184
|
+
/**
|
|
185
|
+
* Combina múltiples condiciones con operador AND
|
|
186
|
+
* @param conditions - Array de funciones de condición
|
|
187
|
+
* @returns Función que retorna true solo si todas las condiciones son verdaderas
|
|
188
|
+
*
|
|
189
|
+
* @example
|
|
190
|
+
* // Mostrar acciones solo si es draft Y pertenece al usuario actual
|
|
191
|
+
* actionConfig: {
|
|
192
|
+
* showEdit: combineConditions([
|
|
193
|
+
* showActionWhen('status', 'draft'),
|
|
194
|
+
* hideActionWhen('user.uuid', currentUserUuid)
|
|
195
|
+
* ])
|
|
196
|
+
* }
|
|
197
|
+
*/
|
|
198
|
+
export declare const combineConditions: <T extends Record<string, unknown>>(conditions: Array<(record: T) => boolean>) => (record: T) => boolean;
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Combina múltiples condiciones con operador OR
|
|
202
|
+
* @param conditions - Array de funciones de condición
|
|
203
|
+
* @returns Función que retorna true si al menos una condición es verdadera
|
|
204
|
+
*
|
|
205
|
+
* @example
|
|
206
|
+
* // Mostrar acciones si es draft O es del usuario actual
|
|
207
|
+
* actionConfig: {
|
|
208
|
+
* showEdit: combineConditionsOr([
|
|
209
|
+
* showActionWhen('status', 'draft'),
|
|
210
|
+
* showActionWhen('user.uuid', currentUserUuid)
|
|
211
|
+
* ])
|
|
212
|
+
* }
|
|
213
|
+
*/
|
|
214
|
+
export declare const combineConditionsOr: <T extends Record<string, unknown>>(conditions: Array<(record: T) => boolean>) => (record: T) => boolean;
|
|
215
|
+
|
|
183
216
|
/**
|
|
184
217
|
* Crea un generador de acciones tipado para un tipo específico
|
|
185
218
|
* @returns Una función createMoreAction tipada con T
|
|
@@ -267,7 +300,7 @@ declare interface DirectPermissions {
|
|
|
267
300
|
v?: boolean;
|
|
268
301
|
}
|
|
269
302
|
|
|
270
|
-
export declare const DynamicCrud: <T extends Record<string, unknown>>({ columns, data, title, formTitle, formTitles, description, formDescription, fields, showCreateButton, createButtonText, createButtonIcon, icon, layout, actionConfig, searchConfig, headerDirection, showRefreshButton, onRefresh, loading, onCreate, createRedirect, onEdit, onDelete, onView, submitButtonText, apiConfig, initialData, themeConfig, moreActions, formCols, formCustomCols, exportToExcel, backButton, showSearchBar, customFilters, disableWrapper, hiddenActions, widthActionsCol, crudName, permissions, bulkUpload }: DynamicCrudProps<T>) => ReactNode;
|
|
303
|
+
export declare const DynamicCrud: <T extends Record<string, unknown>>({ columns, data, title, formTitle, formTitles, description, formDescription, fields, showCreateButton, createButtonText, createButtonIcon, icon, layout, actionConfig, searchConfig, headerDirection, showRefreshButton, onRefresh, loading, onCreate, createRedirect, onEdit, onDelete, onView, submitButtonText, apiConfig, initialData, themeConfig, moreActions, formCols, formCustomCols, exportToExcel, backButton, showSearchBar, customFilters, disableWrapper, hiddenActions, widthActionsCol, crudName, permissions, bulkUpload, responsiveMode, colsInResponsiveMode, }: DynamicCrudProps<T>) => ReactNode;
|
|
271
304
|
|
|
272
305
|
export declare interface DynamicCrudProps<T extends Record<string, unknown>> {
|
|
273
306
|
title?: string | ReactElement;
|
|
@@ -320,6 +353,8 @@ export declare interface DynamicCrudProps<T extends Record<string, unknown>> {
|
|
|
320
353
|
view?: boolean;
|
|
321
354
|
refresh?: boolean;
|
|
322
355
|
};
|
|
356
|
+
responsiveMode?: boolean;
|
|
357
|
+
colsInResponsiveMode?: ColumnsProps<T>[];
|
|
323
358
|
}
|
|
324
359
|
|
|
325
360
|
export declare const DynamicForm: ({ mode, title, description, icon, layout, cols, fields, submitButtonText, submitEditText, onSubmit, initialData, customCols, }: DynamicFormProps) => default_2.ReactNode;
|
|
@@ -340,7 +375,7 @@ declare interface DynamicFormProps {
|
|
|
340
375
|
customCols?: boolean;
|
|
341
376
|
}
|
|
342
377
|
|
|
343
|
-
export declare const DynamicTable: <T extends Record<string, unknown>>({ title, icon: Icon, description, showSearchBar, showCreateButton, onCreate, onEdit, onDelete, onView, onRefresh, exportToExcel, createButtonText, createButtonIcon, columns, data, loading, moreActions, customFilters, disableWrapper, actionConfig, showRefreshButton, hiddenActions, searchConfig, backButton, widthActionsCol, bulkUpload, onBulkUpload }: DynamicTableProps<T>) => default_2.ReactNode;
|
|
378
|
+
export declare const DynamicTable: <T extends Record<string, unknown>>({ title, icon: Icon, description, showSearchBar, showCreateButton, onCreate, onEdit, onDelete, onView, onRefresh, exportToExcel, createButtonText, createButtonIcon, columns, data, loading, moreActions, customFilters, disableWrapper, actionConfig, showRefreshButton, hiddenActions, searchConfig, backButton, widthActionsCol, bulkUpload, onBulkUpload, responsiveMode, colsInResponsiveMode, }: DynamicTableProps<T>) => default_2.ReactNode;
|
|
344
379
|
|
|
345
380
|
export declare interface DynamicTableProps<T = Record<string, unknown>> {
|
|
346
381
|
title?: string | ReactElement;
|
|
@@ -374,6 +409,8 @@ export declare interface DynamicTableProps<T = Record<string, unknown>> {
|
|
|
374
409
|
widthActionsCol?: string | number;
|
|
375
410
|
bulkUpload?: BulkUploadProps;
|
|
376
411
|
onBulkUpload?: () => void;
|
|
412
|
+
responsiveMode?: boolean;
|
|
413
|
+
colsInResponsiveMode?: ColumnsProps<T>[];
|
|
377
414
|
}
|
|
378
415
|
|
|
379
416
|
export declare interface ExcelConfigProps<T = Record<string, unknown>> {
|
|
@@ -396,6 +433,14 @@ export declare interface FilterItem {
|
|
|
396
433
|
children?: FilterItem[];
|
|
397
434
|
}
|
|
398
435
|
|
|
436
|
+
/**
|
|
437
|
+
* Convierte un objeto anidado en un objeto plano con notación de punto.
|
|
438
|
+
* @param obj Objeto con estructura anidada (ej: {user: {first_name: "John"}})
|
|
439
|
+
* @param parentKey Prefijo para las keys (usado internamente en la recursión)
|
|
440
|
+
* @returns Objeto plano con keys en notación de punto (ej: {"user.first_name": "John"})
|
|
441
|
+
*/
|
|
442
|
+
export declare const flattenObject: (obj: Record<string, unknown>, parentKey?: string) => Record<string, unknown>;
|
|
443
|
+
|
|
399
444
|
export declare interface FormField {
|
|
400
445
|
type: FieldType;
|
|
401
446
|
name: string;
|
|
@@ -433,6 +478,52 @@ export declare const generateColumns: <T extends object>(fields: Record<string,
|
|
|
433
478
|
*/
|
|
434
479
|
export declare const generateFields: (fields: Record<string, SharedFieldConfig>) => FormField[];
|
|
435
480
|
|
|
481
|
+
/**
|
|
482
|
+
* Función auxiliar para acceder a propiedades anidadas usando notación de punto.
|
|
483
|
+
* @param obj Objeto del cual extraer el valor.
|
|
484
|
+
* @param path Ruta de la propiedad (ej: "user.first_name").
|
|
485
|
+
* @returns Valor de la propiedad anidada o undefined si no existe.
|
|
486
|
+
*/
|
|
487
|
+
export declare const getNestedValue: <T extends object>(obj: T, path: string) => unknown;
|
|
488
|
+
|
|
489
|
+
/**
|
|
490
|
+
* Crea una función que oculta acciones cuando un campo del registro coincide con un valor específico
|
|
491
|
+
* @param fieldPath - Ruta del campo a comparar (soporta notación de punto para campos anidados)
|
|
492
|
+
* @param value - Valor con el que comparar
|
|
493
|
+
* @returns Función que retorna false si el valor coincide, true en caso contrario
|
|
494
|
+
*
|
|
495
|
+
* @example
|
|
496
|
+
* // Ocultar acciones si el estado es 'archived'
|
|
497
|
+
* actionConfig: {
|
|
498
|
+
* showEdit: hideActionWhen('status', 'archived'),
|
|
499
|
+
* showDelete: hideActionWhen('status', 'archived')
|
|
500
|
+
* }
|
|
501
|
+
*
|
|
502
|
+
* @example
|
|
503
|
+
* // Ocultar acciones si el user.uuid coincide con el uuid del usuario actual
|
|
504
|
+
* const currentUserUuid = '123-456';
|
|
505
|
+
* actionConfig: {
|
|
506
|
+
* showEdit: hideActionWhen('user.uuid', currentUserUuid),
|
|
507
|
+
* showDelete: hideActionWhen('user.uuid', currentUserUuid)
|
|
508
|
+
* }
|
|
509
|
+
*/
|
|
510
|
+
export declare const hideActionWhen: <T extends Record<string, unknown>>(fieldPath: string, value: unknown) => (record: T) => boolean;
|
|
511
|
+
|
|
512
|
+
/**
|
|
513
|
+
* Crea una función que oculta acciones cuando un campo del registro está incluido en una lista de valores
|
|
514
|
+
* @param fieldPath - Ruta del campo a comparar
|
|
515
|
+
* @param values - Array de valores a comparar
|
|
516
|
+
* @returns Función que retorna false si el valor está en la lista, true en caso contrario
|
|
517
|
+
*
|
|
518
|
+
* @example
|
|
519
|
+
* // Ocultar acciones si el estado es 'archived' o 'deleted'
|
|
520
|
+
* actionConfig: {
|
|
521
|
+
* showEdit: hideActionWhenIn('status', ['archived', 'deleted']),
|
|
522
|
+
* showDelete: hideActionWhenIn('status', ['archived', 'deleted'])
|
|
523
|
+
* }
|
|
524
|
+
*/
|
|
525
|
+
export declare const hideActionWhenIn: <T extends Record<string, unknown>>(fieldPath: string, values: unknown[]) => (record: T) => boolean;
|
|
526
|
+
|
|
436
527
|
export declare interface MoreActions<T = Record<string, unknown>> {
|
|
437
528
|
key: string;
|
|
438
529
|
label?: string;
|
|
@@ -451,6 +542,19 @@ declare type MutationConfig<TData, TError, TVariables> = {
|
|
|
451
542
|
onSettled?: (data: TData | undefined, error: TError | null) => void;
|
|
452
543
|
};
|
|
453
544
|
|
|
545
|
+
/**
|
|
546
|
+
* Niega una condición
|
|
547
|
+
* @param condition - Función de condición a negar
|
|
548
|
+
* @returns Función que retorna el opuesto de la condición
|
|
549
|
+
*
|
|
550
|
+
* @example
|
|
551
|
+
* // Ocultar acciones si NO es draft
|
|
552
|
+
* actionConfig: {
|
|
553
|
+
* showEdit: not(showActionWhen('status', 'draft'))
|
|
554
|
+
* }
|
|
555
|
+
*/
|
|
556
|
+
export declare const not: <T extends Record<string, unknown>>(condition: (record: T) => boolean) => (record: T) => boolean;
|
|
557
|
+
|
|
454
558
|
/**
|
|
455
559
|
* Componente de Notificación
|
|
456
560
|
* @description Muestra una notificación con un mensaje
|
|
@@ -560,6 +664,14 @@ export declare interface SelectDependencyConfig {
|
|
|
560
664
|
transformRequest?: (value: string | number) => Record<string, string>;
|
|
561
665
|
}
|
|
562
666
|
|
|
667
|
+
/**
|
|
668
|
+
* Función auxiliar para establecer propiedades anidadas usando notación de punto.
|
|
669
|
+
* @param obj Objeto en el cual establecer el valor.
|
|
670
|
+
* @param path Ruta de la propiedad (ej: "user.first_name").
|
|
671
|
+
* @param value Valor a establecer.
|
|
672
|
+
*/
|
|
673
|
+
export declare const setNestedValue: (obj: Record<string, unknown>, path: string, value: unknown) => void;
|
|
674
|
+
|
|
563
675
|
export declare interface SharedFieldConfig<T = Record<string, unknown>> {
|
|
564
676
|
key: string;
|
|
565
677
|
title: string;
|
|
@@ -597,6 +709,21 @@ export declare interface SharedFieldConfig<T = Record<string, unknown>> {
|
|
|
597
709
|
radioConfig?: RadioConfig;
|
|
598
710
|
}
|
|
599
711
|
|
|
712
|
+
/**
|
|
713
|
+
* Crea una función que muestra acciones solo cuando un campo del registro coincide con un valor específico
|
|
714
|
+
* @param fieldPath - Ruta del campo a comparar (soporta notación de punto para campos anidados)
|
|
715
|
+
* @param value - Valor con el que comparar
|
|
716
|
+
* @returns Función que retorna true si el valor coincide, false en caso contrario
|
|
717
|
+
*
|
|
718
|
+
* @example
|
|
719
|
+
* // Mostrar acciones solo si el estado es 'draft'
|
|
720
|
+
* actionConfig: {
|
|
721
|
+
* showEdit: showActionWhen('status', 'draft'),
|
|
722
|
+
* showDelete: showActionWhen('status', 'draft')
|
|
723
|
+
* }
|
|
724
|
+
*/
|
|
725
|
+
export declare const showActionWhen: <T extends Record<string, unknown>>(fieldPath: string, value: unknown) => (record: T) => boolean;
|
|
726
|
+
|
|
600
727
|
declare type SortFunction<T> = (a: T, b: T) => number;
|
|
601
728
|
|
|
602
729
|
/**
|
|
@@ -639,6 +766,13 @@ export declare interface ThemeConfig {
|
|
|
639
766
|
|
|
640
767
|
export declare const Title: ({ level, children, className, style }: CustomTitleProps) => JSX.Element;
|
|
641
768
|
|
|
769
|
+
/**
|
|
770
|
+
* Convierte un objeto plano con notación de punto en un objeto anidado.
|
|
771
|
+
* @param flatObj Objeto plano con keys en notación de punto (ej: {"user.first_name": "John"})
|
|
772
|
+
* @returns Objeto con estructura anidada (ej: {user: {first_name: "John"}})
|
|
773
|
+
*/
|
|
774
|
+
export declare const unflattenObject: (flatObj: Record<string, unknown>) => Record<string, unknown>;
|
|
775
|
+
|
|
642
776
|
declare interface UploadConfig {
|
|
643
777
|
textButton?: string;
|
|
644
778
|
iconButton?: string;
|