@asteby/metacore-runtime-react 49.5.0 → 49.6.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/CHANGELOG.md +6 -0
- package/dist/business/customer-picker.d.ts +8 -2
- package/dist/business/customer-picker.d.ts.map +1 -1
- package/dist/business/customer-picker.js +30 -27
- package/dist/business/index.d.ts +1 -0
- package/dist/business/index.d.ts.map +1 -1
- package/dist/business/index.js +1 -0
- package/dist/business/line-product-cell.d.ts +8 -10
- package/dist/business/line-product-cell.d.ts.map +1 -1
- package/dist/business/line-product-cell.js +13 -90
- package/dist/business/product-options.d.ts +41 -0
- package/dist/business/product-options.d.ts.map +1 -0
- package/dist/business/product-options.js +58 -0
- package/dist/business/product-picker.d.ts +5 -1
- package/dist/business/product-picker.d.ts.map +1 -1
- package/dist/business/product-picker.js +26 -35
- package/dist/business/relate-documents.d.ts +1 -1
- package/dist/business/relate-documents.d.ts.map +1 -1
- package/dist/business/relate-documents.js +6 -8
- package/dist/business/vehicle-picker.d.ts +8 -2
- package/dist/business/vehicle-picker.d.ts.map +1 -1
- package/dist/business/vehicle-picker.js +28 -28
- package/dist/dialogs/dynamic-record.d.ts.map +1 -1
- package/dist/dialogs/dynamic-record.js +28 -43
- package/dist/dynamic-multi-select-field.d.ts.map +1 -1
- package/dist/dynamic-multi-select-field.js +17 -5
- package/dist/dynamic-select-field.d.ts +7 -23
- package/dist/dynamic-select-field.d.ts.map +1 -1
- package/dist/dynamic-select-field.js +67 -161
- package/dist/entity-select.d.ts +5 -2
- package/dist/entity-select.d.ts.map +1 -1
- package/dist/entity-select.js +23 -116
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/record-picker-actions.d.ts +40 -2
- package/dist/record-picker-actions.d.ts.map +1 -1
- package/dist/record-picker-actions.js +44 -4
- package/dist/record-picker-dialog.d.ts +23 -0
- package/dist/record-picker-dialog.d.ts.map +1 -0
- package/dist/record-picker-dialog.js +37 -0
- package/dist/record-picker-option.d.ts +25 -0
- package/dist/record-picker-option.d.ts.map +1 -0
- package/dist/record-picker-option.js +55 -0
- package/dist/record-picker.d.ts +149 -0
- package/dist/record-picker.d.ts.map +1 -0
- package/dist/record-picker.js +372 -0
- package/package.json +1 -1
- package/src/__tests__/business-pickers.test.tsx +6 -3
- package/src/__tests__/document-editor-inline-selects.test.tsx +2 -1
- package/src/__tests__/document-form-dialog.test.tsx +4 -3
- package/src/__tests__/document-lines-grid.test.tsx +2 -1
- package/src/__tests__/record-picker.test.tsx +469 -0
- package/src/business/customer-picker.tsx +87 -98
- package/src/business/index.ts +1 -0
- package/src/business/line-product-cell.tsx +55 -180
- package/src/business/product-options.tsx +119 -0
- package/src/business/product-picker.tsx +63 -126
- package/src/business/relate-documents.tsx +36 -45
- package/src/business/vehicle-picker.tsx +76 -99
- package/src/dialogs/dynamic-record.tsx +44 -97
- package/src/dynamic-multi-select-field.tsx +39 -13
- package/src/dynamic-select-field.tsx +143 -368
- package/src/entity-select.tsx +53 -202
- package/src/index.ts +27 -2
- package/src/record-picker-actions.tsx +101 -8
- package/src/record-picker-dialog.tsx +80 -0
- package/src/record-picker-option.tsx +96 -0
- package/src/record-picker.tsx +971 -0
- package/dist/business/use-async-search.d.ts +0 -10
- package/dist/business/use-async-search.d.ts.map +0 -1
- package/dist/business/use-async-search.js +0 -38
- package/src/business/use-async-search.ts +0 -43
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/** Búsqueda async con debounce y cancelación. `search` debe ser estable (useCallback). */
|
|
2
|
-
export declare function useAsyncSearch<T>(query: string, search: (q: string, signal: AbortSignal) => Promise<T[]>, opts?: {
|
|
3
|
-
minChars?: number;
|
|
4
|
-
delay?: number;
|
|
5
|
-
}): {
|
|
6
|
-
results: T[];
|
|
7
|
-
loading: boolean;
|
|
8
|
-
error: boolean;
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=use-async-search.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-async-search.d.ts","sourceRoot":"","sources":["../../src/business/use-async-search.ts"],"names":[],"mappings":"AAGA,0FAA0F;AAC1F,wBAAgB,cAAc,CAAC,CAAC,EAC5B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,EACxD,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GACjD;IAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAkCpD"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { useEffect, useState } from 'react';
|
|
2
|
-
import { useDebouncedValue } from '../use-debounced-value';
|
|
3
|
-
/** Búsqueda async con debounce y cancelación. `search` debe ser estable (useCallback). */
|
|
4
|
-
export function useAsyncSearch(query, search, opts = {}) {
|
|
5
|
-
const { minChars = 2, delay = 250 } = opts;
|
|
6
|
-
const q = useDebouncedValue(query.trim(), delay);
|
|
7
|
-
const [results, setResults] = useState([]);
|
|
8
|
-
const [loading, setLoading] = useState(false);
|
|
9
|
-
const [error, setError] = useState(false);
|
|
10
|
-
useEffect(() => {
|
|
11
|
-
if (q.length < minChars) {
|
|
12
|
-
setResults([]);
|
|
13
|
-
setLoading(false);
|
|
14
|
-
setError(false);
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
const ctrl = new AbortController();
|
|
18
|
-
setLoading(true);
|
|
19
|
-
setError(false);
|
|
20
|
-
search(q, ctrl.signal)
|
|
21
|
-
.then((rows) => {
|
|
22
|
-
if (!ctrl.signal.aborted)
|
|
23
|
-
setResults(rows);
|
|
24
|
-
})
|
|
25
|
-
.catch(() => {
|
|
26
|
-
if (!ctrl.signal.aborted) {
|
|
27
|
-
setResults([]);
|
|
28
|
-
setError(true);
|
|
29
|
-
}
|
|
30
|
-
})
|
|
31
|
-
.finally(() => {
|
|
32
|
-
if (!ctrl.signal.aborted)
|
|
33
|
-
setLoading(false);
|
|
34
|
-
});
|
|
35
|
-
return () => ctrl.abort();
|
|
36
|
-
}, [q, search, minChars]);
|
|
37
|
-
return { results, loading, error };
|
|
38
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { useEffect, useState } from 'react'
|
|
2
|
-
import { useDebouncedValue } from '../use-debounced-value'
|
|
3
|
-
|
|
4
|
-
/** Búsqueda async con debounce y cancelación. `search` debe ser estable (useCallback). */
|
|
5
|
-
export function useAsyncSearch<T>(
|
|
6
|
-
query: string,
|
|
7
|
-
search: (q: string, signal: AbortSignal) => Promise<T[]>,
|
|
8
|
-
opts: { minChars?: number; delay?: number } = {},
|
|
9
|
-
): { results: T[]; loading: boolean; error: boolean } {
|
|
10
|
-
const { minChars = 2, delay = 250 } = opts
|
|
11
|
-
const q = useDebouncedValue(query.trim(), delay)
|
|
12
|
-
const [results, setResults] = useState<T[]>([])
|
|
13
|
-
const [loading, setLoading] = useState(false)
|
|
14
|
-
const [error, setError] = useState(false)
|
|
15
|
-
|
|
16
|
-
useEffect(() => {
|
|
17
|
-
if (q.length < minChars) {
|
|
18
|
-
setResults([])
|
|
19
|
-
setLoading(false)
|
|
20
|
-
setError(false)
|
|
21
|
-
return
|
|
22
|
-
}
|
|
23
|
-
const ctrl = new AbortController()
|
|
24
|
-
setLoading(true)
|
|
25
|
-
setError(false)
|
|
26
|
-
search(q, ctrl.signal)
|
|
27
|
-
.then((rows) => {
|
|
28
|
-
if (!ctrl.signal.aborted) setResults(rows)
|
|
29
|
-
})
|
|
30
|
-
.catch(() => {
|
|
31
|
-
if (!ctrl.signal.aborted) {
|
|
32
|
-
setResults([])
|
|
33
|
-
setError(true)
|
|
34
|
-
}
|
|
35
|
-
})
|
|
36
|
-
.finally(() => {
|
|
37
|
-
if (!ctrl.signal.aborted) setLoading(false)
|
|
38
|
-
})
|
|
39
|
-
return () => ctrl.abort()
|
|
40
|
-
}, [q, search, minChars])
|
|
41
|
-
|
|
42
|
-
return { results, loading, error }
|
|
43
|
-
}
|