@libs-ui/services-http-request 0.2.327-2 → 0.2.329-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/api-mockup.d.ts
CHANGED
|
@@ -26,9 +26,11 @@ import { Observable } from 'rxjs';
|
|
|
26
26
|
* const pagedData = await listService.listPaging(params);
|
|
27
27
|
* ```
|
|
28
28
|
*/
|
|
29
|
-
export declare const returnListObject: (data?: Array<any>, functionGetData?: () => Array<any
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
export declare const returnListObject: (data?: Array<any>, functionGetData?: (params?: UtilsHttpParamsRequest) => Array<any>, options?: {
|
|
30
|
+
delay?: number;
|
|
31
|
+
}) => {
|
|
32
|
+
list: <TypeResponse = any>(params?: UtilsHttpParamsRequest) => Promise<IHttpResponse<TypeResponse>>;
|
|
33
|
+
listObservable: <TypeResponse = any>(params?: UtilsHttpParamsRequest) => Observable<IHttpResponse<TypeResponse>>;
|
|
32
34
|
listPaging: <TypeResponse = any>(params: UtilsHttpParamsRequest) => Promise<IHttpResponse<TypeResponse>>;
|
|
33
35
|
};
|
|
34
36
|
/**
|
package/esm2022/api-mockup.mjs
CHANGED
|
@@ -24,37 +24,37 @@ import { delay, lastValueFrom, of, timer } from 'rxjs';
|
|
|
24
24
|
* const pagedData = await listService.listPaging(params);
|
|
25
25
|
* ```
|
|
26
26
|
*/
|
|
27
|
-
export const returnListObject = (data, functionGetData) => {
|
|
27
|
+
export const returnListObject = (data, functionGetData, options) => {
|
|
28
28
|
return {
|
|
29
|
-
list: async () => {
|
|
29
|
+
list: async (params) => {
|
|
30
30
|
if (functionGetData) {
|
|
31
|
-
data = functionGetData();
|
|
31
|
+
data = functionGetData(params);
|
|
32
32
|
}
|
|
33
|
-
await lastValueFrom(timer(
|
|
33
|
+
await lastValueFrom(timer(options?.delay || 0));
|
|
34
34
|
return {
|
|
35
35
|
code: 200,
|
|
36
36
|
data: data || [],
|
|
37
37
|
paging: {},
|
|
38
38
|
};
|
|
39
39
|
},
|
|
40
|
-
listObservable: () => {
|
|
40
|
+
listObservable: (params) => {
|
|
41
41
|
if (functionGetData) {
|
|
42
|
-
data = functionGetData();
|
|
42
|
+
data = functionGetData(params);
|
|
43
43
|
}
|
|
44
44
|
return of({
|
|
45
45
|
code: 200,
|
|
46
46
|
data: data || [],
|
|
47
47
|
paging: {},
|
|
48
|
-
}).pipe(delay(
|
|
48
|
+
}).pipe(delay(options?.delay || 0));
|
|
49
49
|
},
|
|
50
50
|
listPaging: async (params) => {
|
|
51
51
|
if (functionGetData) {
|
|
52
|
-
data = functionGetData();
|
|
52
|
+
data = functionGetData(params);
|
|
53
53
|
}
|
|
54
54
|
const page = parseInt(params.get('page') || '1');
|
|
55
55
|
const per_page = parseInt(params.get('per_page') || '30');
|
|
56
56
|
const result = pagingToList(data, page, per_page);
|
|
57
|
-
await lastValueFrom(timer(
|
|
57
|
+
await lastValueFrom(timer(options?.delay || 0));
|
|
58
58
|
return result;
|
|
59
59
|
},
|
|
60
60
|
};
|
|
@@ -207,4 +207,4 @@ export const pagingToList = (data, page, per_page) => {
|
|
|
207
207
|
},
|
|
208
208
|
};
|
|
209
209
|
};
|
|
210
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLW1vY2t1cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvc2VydmljZXMvaHR0cC1yZXF1ZXN0L3NyYy9hcGktbW9ja3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRixPQUFPLEVBQWMsS0FBSyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRW5FOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUVILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQzlCLElBQWlCLEVBQ2pCLGVBQWtDLEVBS2xDLEVBQUU7SUFDRixPQUFPO1FBQ0wsSUFBSSxFQUFFLEtBQUssSUFBOEQsRUFBRTtZQUN6RSxJQUFJLGVBQWUsRUFBRSxDQUFDO2dCQUNwQixJQUFJLEdBQUcsZUFBZSxFQUFFLENBQUM7WUFDM0IsQ0FBQztZQUNELE1BQU0sYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLEdBQUc7Z0JBQ1QsSUFBSSxFQUFHLElBQVksSUFBSSxFQUFFO2dCQUN6QixNQUFNLEVBQUUsRUFBRTthQUNYLENBQUM7UUFDSixDQUFDO1FBQ0QsY0FBYyxFQUFFLEdBQWdFLEVBQUU7WUFDaEYsSUFBSSxlQUFlLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxHQUFHLGVBQWUsRUFBRSxDQUFDO1lBQzNCLENBQUM7WUFFRCxPQUFPLEVBQUUsQ0FBQztnQkFDUixJQUFJLEVBQUUsR0FBRztnQkFDVCxJQUFJLEVBQUcsSUFBWSxJQUFJLEVBQUU7Z0JBQ3pCLE1BQU0sRUFBRSxFQUFFO2FBQ1gsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FB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QztJQUMxQyxPQUFPO1FBQ0wsSUFBSSxFQUFFLEdBQUc7UUFDVCxJQUFJLEVBQUUsVUFBVTtRQUNoQixNQUFNLEVBQUU7WUFDTixJQUFJLEVBQUUsSUFBSSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQzdDLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTTtZQUN4QixXQUFXLEVBQUUsV0FBVztTQUN6QjtLQUNGLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGxpYnMtdWkvaW50ZXJmYWNlcy10eXBlcyc7XG5pbXBvcnQgeyBVdGlsc0h0dHBQYXJhbXNSZXF1ZXN0LCBnZXQsIGlzTmlsLCBzZXQsIGlzRXF1YWwgfSBmcm9tICdAbGlicy11aS91dGlscyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBkZWxheSwgbGFzdFZhbHVlRnJvbSwgb2YsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogVHLhuqMgduG7gSBjw6FjIHBoxrDGoW5nIHRo4bupYyDEkeG7gyB44butIGzDvSBkYW5oIHPDoWNoIGThu68gbGnhu4d1IG1vY2tcbiAqIEBwYXJhbSBkYXRhIC0gTeG6o25nIGThu68gbGnhu4d1IG3hurdjIMSR4buLbmggxJHhu4MgbW9ja1xuICogQHBhcmFtIGZ1bmN0aW9uR2V0RGF0YSAtIEjDoG0gdMO5eSBjaOG7jW4gxJHhu4MgbOG6pXkgZOG7ryBsaeG7h3UgxJHhu5luZyB0aGF5IHbDrCBz4butIGThu6VuZyBkYXRhIG3hurdjIMSR4buLbmhcbiAqIEByZXR1cm5zIMSQ4buRaSB0xrDhu6NuZyBjaOG7qWEgY8OhYyBwaMawxqFuZyB0aOG7qWM6XG4gKiAgIC0gbGlzdDogVHLhuqMgduG7gSBQcm9taXNlIHbhu5tpIHRvw6BuIGLhu5kgZOG7ryBsaeG7h3UgKGPDsyBkZWxheSAyNTBtcylcbiAqICAgLSBsaXN0T2JzZXJ2YWJsZTogVHLhuqMgduG7gSBPYnNlcnZhYmxlIHbhu5tpIHRvw6BuIGLhu5kgZOG7ryBsaeG7h3UgKGPDsyBkZWxheSAyNTBtcylcbiAqICAgLSBsaXN0UGFnaW5nOiBUcuG6oyB24buBIFByb21pc2UgduG7m2kgZOG7ryBsaeG7h3UgxJHDoyBwaMOibiB0cmFuZyBk4buxYSB0csOqbiBwYXJhbXMgKGPDsyBkZWxheSAyNTBtcylcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbW9ja0RhdGEgPSBbeyBpZDogMSwgbmFtZTogJ0l0ZW0gMScgfSwgeyBpZDogMiwgbmFtZTogJ0l0ZW0gMicgfV07XG4gKiBjb25zdCBsaXN0U2VydmljZSA9IHJldHVybkxpc3RPYmplY3QobW9ja0RhdGEpO1xuICpcbiAqIC8vIEzhuqV5IHRvw6BuIGLhu5kgZOG7ryBsaeG7h3VcbiAqIGNvbnN0IGFsbERhdGEgPSBhd2FpdCBsaXN0U2VydmljZS5saXN0KCk7XG4gKlxuICogLy8gTOG6pXkgZOG7ryBsaeG7h3UgcGjDom4gdHJhbmdcbiAqIGNvbnN0IHBhcmFtcyA9IG5ldyBVdGlsc0h0dHBQYXJhbXNSZXF1ZXN0KCk7XG4gKiBwYXJhbXMuc2V0KCdwYWdlJywgJzEnKTtcbiAqIHBhcmFtcy5zZXQoJ3Blcl9wYWdlJywgJzEwJyk7XG4gKiBjb25zdCBwYWdlZERhdGEgPSBhd2FpdCBsaXN0U2VydmljZS5saXN0UGFnaW5nKHBhcmFtcyk7XG4gKiBgYGBcbiAqL1xuXG5leHBvcnQgY29uc3QgcmV0dXJuTGlzdE9iamVjdCA9IChcbiAgZGF0YT86IEFycmF5PGFueT4sXG4gIGZ1bmN0aW9uR2V0RGF0YT86ICgpID0+IEFycmF5PGFueT5cbik6IHtcbiAgbGlzdDogPFR5cGVSZXNwb25zZSA9IGFueT4oKSA9PiBQcm9taXNlPElIdHRwUmVzcG9uc2U8VHlwZVJlc3BvbnNlPj47XG4gIGxpc3RPYnNlcnZhYmxlOiA8VHlwZVJlc3BvbnNlID0gYW55PigpID0+IE9ic2VydmFibGU8SUh0dHBSZXNwb25zZTxUeXBlUmVzcG9uc2U+PjtcbiAgbGlzdFBhZ2luZzogPFR5cGVSZXNwb25zZSA9IGFueT4ocGFyYW1zOiBVdGlsc0h0dHBQYXJhbXNSZXF1ZXN0KSA9PiBQcm9taXNlPElIdHRwUmVzcG9uc2U8VHlwZVJlc3BvbnNlPj47XG59ID0+IHtcbiAgcmV0dXJuIHtcbiAgICBsaXN0OiBhc3luYyA8VHlwZVJlc3BvbnNlID0gYW55PigpOiBQcm9taXNlPElIdHRwUmVzcG9uc2U8VHlwZVJlc3BvbnNlPj4gPT4ge1xuICAgICAgaWYgKGZ1bmN0aW9uR2V0RGF0YSkge1xuICAgICAgICBkYXRhID0gZnVuY3Rpb25HZXREYXRhKCk7XG4gICAgICB9XG4gICAgICBhd2FpdCBsYXN0VmFsdWVGcm9tKHRpbWVyKDI1MCkpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29kZTogMjAwLFxuICAgICAgICBkYXRhOiAoZGF0YSBhcyBhbnkpIHx8IFtdLFxuICAgICAgICBwYWdpbmc6IHt9LFxuICAgICAgfTtcbiAgICB9LFxuICAgIGxpc3RPYnNlcnZhYmxlOiA8VHlwZVJlc3BvbnNlID0gYW55PigpOiBPYnNlcnZhYmxlPElIdHRwUmVzcG9uc2U8VHlwZVJlc3BvbnNlPj4gPT4ge1xuICAgICAgaWYgKGZ1bmN0aW9uR2V0RGF0YSkge1xuICAgICAgICBkYXRhID0gZnVuY3Rpb25HZXREYXRhKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvZih7XG4gICAgICAgIGNvZGU6IDIwMCxcbiAgICAgICAgZGF0YTogKGRhdGEgYXMgYW55KSB8fCBbXSxcbiAgICAgICAgcGFnaW5nOiB7fSxcbiAgICAgIH0pLnBpcGUoZGVsYXkoMjUwKSk7XG4gICAgfSxcbiAgICBsaXN0UGFnaW5nOiBhc3luYyA8VHlwZVJlc3BvbnNlID0gYW55PihwYXJhbXM6IFV0aWxzSHR0cFBhcmFtc1JlcXVlc3QpOiBQcm9taXNlPElIdHRwUmVzcG9uc2U8VHlwZVJlc3BvbnNlPj4gPT4ge1xuICAgICAgaWYgKGZ1bmN0aW9uR2V0RGF0YSkge1xuICAgICAgICBkYXRhID0gZnVuY3Rpb25HZXREYXRhKCk7XG4gICAgICB9XG4gICAgICBjb25zdCBwYWdlID0gcGFyc2VJbnQocGFyYW1zLmdldCgncGFnZScpIHx8ICcxJyk7XG4gICAgICBjb25zdCBwZXJfcGFnZSA9IHBhcnNlSW50KHBhcmFtcy5nZXQoJ3Blcl9wYWdlJykgfHwgJzMwJyk7XG4gICAgICBjb25zdCByZXN1bHQgPSBwYWdpbmdUb0xpc3QoZGF0YSBhcyBBcnJheTxhbnk+LCBwYWdlLCBwZXJfcGFnZSk7XG5cbiAgICAgIGF3YWl0IGxhc3RWYWx1ZUZyb20odGltZXIoMjUwKSk7XG5cbiAgICAgIHJldHVybiByZXN1bHQgYXMgSUh0dHBSZXNwb25zZTxUeXBlUmVzcG9uc2U+O1xuICAgIH0sXG4gIH07XG59O1xuXG4vKipcbiAqIFThuqFvIG3hu5l0IMSR4buRaSB0xrDhu6NuZyBtb2NrIGRldGFpbCB24bubaSBjw6FjIHBoxrDGoW5nIHRo4bupYyDEkeG7gyBs4bqleSBi4bqjbiBnaGkgcmnDqm5nIGzhursgdGhlbyBraMOzYS5cbiAqIEjhu5cgdHLhu6MgY+G6oyBt4bqjbmcgZOG7ryBsaeG7h3UgdMSpbmggdsOgIGPDoWMgaMOgbSBk4buvIGxp4buHdSDEkeG7mW5nLlxuICpcbiAqIEB0ZW1wbGF0ZSBUeXBlUmVzcG9uc2UgLSBLaeG7g3UgZOG7ryBsaeG7h3UgcGjhuqNuIGjhu5NpIG1vbmcgxJHhu6NpXG4gKiBAdGVtcGxhdGUgVHlwZVBhcmFtcyAtIEtp4buDdSB0aGFtIHPhu5EgSFRUUCAobeG6t2MgxJHhu4tuaCBsw6AgYW55KVxuICpcbiAqIEBwYXJhbSBodHRwUGFyYW1zIC0gVGhhbSBz4buRIEhUVFAgY2jhu6lhOlxuICogICAtIGtleXM6IEtow7NhIChob+G6t2MgY8OhYyBraMOzYSkgY+G6p24gdMOsbSBraeG6v21cbiAqICAgLSBmaWVsZEtleTogVMOqbiB0csaw4budbmcgxJHhu4Mgc28ga2jhu5twICht4bq3YyDEkeG7i25oIGzDoCAnaWQnKVxuICogICAtIGRhdGFSZXNwb25zZU9qZWN0OiBD4budIGJvb2xlYW4gxJHhu4MgxJHhu4tuaCBk4bqhbmcgxJHhu5FpIHTGsOG7o25nIHBo4bqjbiBo4buTaVxuICogQHBhcmFtIGRhdGEgLSBN4bqjbmcgZOG7ryBsaeG7h3UgdMSpbmggdMO5eSBjaOG7jW4gxJHhu4MgdMOsbSBraeG6v21cbiAqIEBwYXJhbSBmdW5jdGlvbkdldERhdGEgLSBIw6BtIHTDuXkgY2jhu41uIHRy4bqjIHbhu4EgZOG7ryBsaeG7h3UgKGPDsyB0aOG7gyBsw6AgUHJvbWlzZSBob+G6t2MgT2JzZXJ2YWJsZSlcbiAqIEBwYXJhbSBpZ25vcmVTcGxpdCAtIE7hur91IHRydWUsIGNvaSBrZXlzIG5oxrAgbeG7mXQgZ2nDoSB0cuG7iyDEkcahbiB0aGF5IHbDrCB0w6FjaCBjaHXhu5dpXG4gKiBAcGFyYW0gc3BsaXRPcGVyYXRvciAtIFRvw6FuIHThu60gdMO5eSBjaOG7iW5oIMSR4buDIHTDoWNoIGtleXMgKG3hurdjIMSR4buLbmggbMOgIGThuqV1IHBo4bqpeSlcbiAqXG4gKiBAcmV0dXJucyDEkOG7kWkgdMaw4bujbmcgduG7m2kgY8OhYyBwaMawxqFuZyB0aOG7qWM6XG4gKiAgIC0gZGV0YWlsQnlEYXRhOiBUw6xtIGtp4bq/bSB0aMO0bmcgcXVhIG3huqNuZyBk4buvIGxp4buHdSB0xKluaCDEkcaw4bujYyBjdW5nIGPhuqVwXG4gKiAgIC0gZGV0YWlsQnlGdW5jdGlvbjogR+G7jWkgZnVuY3Rpb25HZXREYXRhIMSR4buDIGzhuqV5IGThu68gbGnhu4d1IG3hu5tpLCBzYXUgxJHDsyB0w6xtIGtp4bq/bVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBwYXJhbXMgPSBuZXcgVXRpbHNIdHRwUGFyYW1zUmVxdWVzdCh7ZnJvbU9iamVjdDp7a2V5czonMScsZmllbGRLZXk6J2lkJ319KTtcbiAqIGNvbnN0IG1vY2tEZXRhaWwgPSByZXR1cm5EZXRhaWxPYmplY3Q8VXNlcj4ocGFyYW1zLCB1c2VyRGF0YSk7XG4gKiBjb25zdCB1c2VyID0gYXdhaXQgbW9ja0RldGFpbC5kZXRhaWxCeURhdGEoKTtcbiAqIGBgYFxuICovXG5cbmV4cG9ydCBjb25zdCByZXR1cm5EZXRhaWxPYmplY3QgPSA8VHlwZVJlc3BvbnNlLCBUeXBlUGFyYW1zID0gYW55PihcbiAgaHR0cFBhcmFtczogVXRpbHNIdHRwUGFyYW1zUmVxdWVzdDxUeXBlUGFyYW1zPiB8IEh0dHBQYXJhbXMsXG4gIGRhdGE/OiBBcnJheTxhbnk+LFxuICBmdW5jdGlvbkdldERhdGE/OiAoKSA9PiBQcm9taXNlPElIdHRwUmVzcG9uc2U8VHlwZVJlc3BvbnNlPj4gfCBPYnNlcnZhYmxlPElIdHRwUmVzcG9uc2U8VHlwZVJlc3BvbnNlPj4sXG4gIGlnbm9yZVNwbGl0PzogYm9vbGVhbixcbiAgc3BsaXRPcGVyYXRvcj86IHN0cmluZ1xuKToge1xuICBkZXRhaWxCeURhdGE6IDxUeXBlUmVzcG9uc2UgPSBhbnk+KGtleXM/OiBhbnkpID0+IFByb21pc2U8SUh0dHBSZXNwb25zZTxUeXBlUmVzcG9uc2U+PjtcbiAgZGV0YWlsQnlGdW5jdGlvbjogPFR5cGVSZXNwb25zZSA9IGFueT4oa2V5cz86IGFueSkgPT4gUHJvbWlzZTxJSHR0cFJlc3BvbnNlPFR5cGVSZXNwb25zZT4+O1xufSA9PiB7XG4gIGNvbnN0IGtleXNQcmFtczogYW55ID0gaHR0cFBhcmFtcy5nZXQoJ2tleXMnKTtcbiAgY29uc3QgZmllbGRLZXk6IHN0cmluZyA9IGh0dHBQYXJhbXMuZ2V0KCdmaWVsZEtleScpIHx8ICdpZCc7XG4gIGNvbnN0IGRhdGFSZXNwb25zZU9qZWN0OiBhbnkgPSBodHRwUGFyYW1zLmdldCgnZGF0YVJlc3BvbnNlT2plY3QnKTtcblxuICByZXR1cm4ge1xuICAgIGRldGFpbEJ5RGF0YTogYXN5bmMgPFR5cGVSZXNwb25zZT4oa2V5cz86IGFueSk6IFByb21pc2U8SUh0dHBSZXNwb25zZTxUeXBlUmVzcG9uc2U+PiA9PiB7XG4gICAgICByZXR1cm4gZmlsdGVyRGF0YTxUeXBlUmVzcG9uc2U+KGZpZWxkS2V5LCBkYXRhLCBrZXlzID8/IGtleXNQcmFtcywgZGF0YVJlc3BvbnNlT2plY3QsIGlnbm9yZVNwbGl0LCBzcGxpdE9wZXJhdG9yKTtcbiAgICB9LFxuXG4gICAgZGV0YWlsQnlGdW5jdGlvbjogYXN5bmMgPFR5cGVSZXNwb25zZT4oa2V5cz86IGFueSk6IFByb21pc2U8SUh0dHBSZXNwb25zZTxUeXBlUmVzcG9uc2U+PiA9PiB7XG4gICAgICBpZiAoIWZ1bmN0aW9uR2V0RGF0YSkge1xuICAgICAgICByZXR1cm4gYXdhaXQgZmlsdGVyRGF0YTxUeXBlUmVzcG9uc2U+KGZpZWxkS2V5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZGF0YVJlc3BvbnNlT2plY3QsIGlnbm9yZVNwbGl0LCBzcGxpdE9wZXJhdG9yKTtcbiAgICAgIH1cblxuICAgICAgbGV0IGRhdGFSZXN1bHQ6IGFueSA9IGZ1bmN0aW9uR2V0RGF0YSgpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBpZiAoZGF0YVJlc3VsdFsnc3Vic2NyaWJlJ10pIHtcbiAgICAgICAgICBkYXRhUmVzdWx0ID0gYXdhaXQgbGFzdFZhbHVlRnJvbShkYXRhUmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YVJlc3VsdFsndGhlbiddKSB7XG4gICAgICAgICAgZGF0YVJlc3VsdCA9IGF3YWl0IGRhdGFSZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgICAgZGF0YVJlc3VsdCA9IHsgZGF0YTogW10gfTtcbiAgICAgIH1cblxuICAgICAgZGF0YSA9IGRhdGFSZXN1bHQuZGF0YTtcblxuICAgICAgcmV0dXJuIGF3YWl0IGZpbHRlckRhdGE8VHlwZVJlc3BvbnNlPihmaWVsZEtleSwgZGF0YSwga2V5cyB8fCBrZXlzUHJhbXMsIGRhdGFSZXNwb25zZU9qZWN0LCBpZ25vcmVTcGxpdCwgc3BsaXRPcGVyYXRvcik7XG4gICAgfSxcbiAgfTtcbn07XG5cbmNvbnN0IGZpbHRlckRhdGEgPSA8VHlwZVJlc3BvbnNlPihmaWVsZEtleTogc3RyaW5nLCBkYXRhPzogQXJyYXk8YW55Piwga2V5cz86IGFueSwgZGF0YVJlc3BvbnNlT2plY3Q/OiBib29sZWFuLCBpZ25vcmVTcGxpdD86IGJvb2xlYW4sIHNwbGl0T3BlcmF0b3I/OiBzdHJpbmcpOiBJSHR0cFJlc3BvbnNlPFR5cGVSZXNwb25zZT4gPT4ge1xuICBpZiAoIWRhdGEgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnIHx8IGlzTmlsKGtleXMpIHx8IGtleXMgPT09ICcnKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvZGU6IDIwMCxcbiAgICAgIGRhdGE6IHVuZGVmaW5lZCxcbiAgICAgIHBhZ2luZzoge30sXG4gICAgfTtcbiAgfVxuXG4gIGRhdGEgPSBkYXRhIHx8IFtdO1xuXG4gIGlmICghKGRhdGEgaW5zdGFuY2VvZiBBcnJheSkpIHtcbiAgICBkYXRhID0gW2RhdGFdO1xuICB9XG4gIGNvbnN0IHJlc3VsdDogYW55ID0gW107XG5cbiAgaWYgKCFpZ25vcmVTcGxpdCAmJiB0eXBlb2Yga2V5cyA9PT0gJ3N0cmluZycpIHtcbiAgICBrZXlzID0ga2V5cy5zcGxpdChzcGxpdE9wZXJhdG9yIHx8ICcsJyk7XG4gIH1cblxuICBpZiAodHlwZW9mIGtleXMgPT09ICdudW1iZXInIHx8IHR5cGVvZiBrZXlzID09PSAnYm9vbGVhbicgfHwgKHR5cGVvZiBrZXlzID09PSAnc3RyaW5nJyAmJiBpZ25vcmVTcGxpdCkpIHtcbiAgICBrZXlzID0gW2tleXNdO1xuICB9XG5cbiAga2V5cy5mb3JFYWNoKChrZXk6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHJlc3VsdEZpbHRlciA9IGRhdGE/LmZpbHRlcigoZWxEYXRhOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSA9PiBpc0VxdWFsKGdldChlbERhdGEsIGZpZWxkS2V5KSwga2V5LCB7IGlnbm9yZUV4YWN0bHlEYXRhVHlwZTogdHJ1ZSB9KSk7XG5cbiAgICBpZiAocmVzdWx0RmlsdGVyICYmIHJlc3VsdEZpbHRlci5sZW5ndGgpIHtcbiAgICAgIHJlc3VsdC5wdXNoKC4uLnJlc3VsdEZpbHRlcik7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4ge1xuICAgIGNvZGU6IDIwMCxcbiAgICBkYXRhOiByZXN1bHQubGVuZ3RoID8gKGRhdGFSZXNwb25zZU9qZWN0ID8gcmVzdWx0WzBdIDogcmVzdWx0KSA6IHVuZGVmaW5lZCxcbiAgICBwYWdpbmc6IHt9LFxuICB9O1xufTtcblxuY29uc3QgcGVyX3BhZ2UgPSAyMDtcbmNvbnN0IHRvdGFsX2l0ZW1zID0gcGVyX3BhZ2UgKiAxNTAgKyAxNTtcblxuZXhwb3J0IGNvbnN0IGdldENvbmZpZ0xpc3REYXRhRGVtbyA9IChodHRwUGFyYW1zRGV0YWlsOiBVdGlsc0h0dHBQYXJhbXNSZXF1ZXN0PGFueT4gPSBuZXcgVXRpbHNIdHRwUGFyYW1zUmVxdWVzdCgpLCBvYmplY3REYXRhPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiwgZnVuY3Rpb25CdWlsZE9iamVjdD86IChudW1JbmNyZW1lbnQ6IHN0cmluZykgPT4gUmVjb3JkPHN0cmluZywgc3RyaW5nPikgPT4ge1xuICBpZiAoIW9iamVjdERhdGEpIHtcbiAgICBvYmplY3REYXRhID0ge1xuICAgICAgaWQ6ICcnLFxuICAgICAgbmFtZTogJ2l0ZW0gcG9zaXRvbiBpbmRleCAnLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBkYXRhID0gWy4uLkFycmF5KHRvdGFsX2l0ZW1zKS5rZXlzKCldLm1hcCgoXywgaW5kZXgpID0+IHtcbiAgICBpZiAoZnVuY3Rpb25CdWlsZE9iamVjdCkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uQnVpbGRPYmplY3QoYCR7K2luZGV4ICsgMX1gKTtcbiAgICB9XG4gICAgY29uc3Qgb2JqOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgT2JqZWN0LmtleXMob2JqZWN0RGF0YSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBzZXQob2JqLCBrZXksIGAke29iamVjdERhdGFba2V5XX0keytpbmRleCArIDF9YCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIG9iajtcbiAgfSk7XG5cbiAgY29uc3QgbGlzdFNlcnZpY2UgPSByZXR1cm5MaXN0T2JqZWN0KGRhdGEpO1xuICBjb25zdCBkZXRhaWxTZXJ2aWNlID0gcmV0dXJuRGV0YWlsT2JqZWN0KGh0dHBQYXJhbXNEZXRhaWwsIGRhdGEsIHVuZGVmaW5lZCwgZmFsc2UsICc7Jyk7XG4gIHJldHVybiB7XG4gICAgbGlzdDogbGlzdFNlcnZpY2UubGlzdFBhZ2luZyxcbiAgICBkZXRhaWxCeURhdGE6IGRldGFpbFNlcnZpY2UuZGV0YWlsQnlEYXRhLFxuICB9O1xufTtcblxuLyoqXG4gKiBIw6BtIHBow6JuIHRyYW5nIGThu68gbGnhu4d1IHThu6sgbeG7mXQgbeG6o25nXG4gKiBAcGFyYW0gZGF0YSAtIE3huqNuZyBk4buvIGxp4buHdSBj4bqnbiBwaMOibiB0cmFuZ1xuICogQHBhcmFtIHBhZ2UgLSBT4buRIHRyYW5nIGhp4buHbiB04bqhaSAoYuG6r3QgxJHhuqd1IHThu6sgMSlcbiAqIEBwYXJhbSBwZXJfcGFnZSAtIFPhu5EgbMaw4bujbmcgaXRlbSB0csOqbiBt4buXaSB0cmFuZ1xuICogQHJldHVybnMgxJDhu5FpIHTGsOG7o25nIGNo4bupYSBk4buvIGxp4buHdSDEkcOjIHBow6JuIHRyYW5nIHbDoCB0aMO0bmcgdGluIHBow6JuIHRyYW5nXG4gKi9cbmV4cG9ydCBjb25zdCBwYWdpbmdUb0xpc3QgPSAoZGF0YTogQXJyYXk8YW55PiwgcGFnZTogbnVtYmVyLCBwZXJfcGFnZTogbnVtYmVyKSA9PiB7XG4gIGlmICghZGF0YSB8fCAhQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgIHJldHVybiB7XG4gICAgICBjb2RlOiAyMDAsXG4gICAgICBkYXRhOiBbXSxcbiAgICAgIHBhZ2luZzoge1xuICAgICAgICBwYWdlOiBwYWdlLFxuICAgICAgICBwZXJfcGFnZTogcGVyX3BhZ2UsXG4gICAgICAgIHRvdGFsX2l0ZW1zOiAwLFxuICAgICAgICB0b3RhbF9wYWdlczogMCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuICBjb25zdCBzdGFydCA9IChwYWdlIC0gMSkgKiBwZXJfcGFnZTtcbiAgY29uc3QgZW5kID0gc3RhcnQgKyBwZXJfcGFnZTtcbiAgY29uc3QgdG90YWxfcGFnZXMgPSBNYXRoLmNlaWwoZGF0YS5sZW5ndGggLyBwZXJfcGFnZSk7XG4gIGNvbnN0IGRhdGFCeVBhZ2UgPSBkYXRhLnNsaWNlKHN0YXJ0LCBlbmQpO1xuICByZXR1cm4ge1xuICAgIGNvZGU6IDIwMCxcbiAgICBkYXRhOiBkYXRhQnlQYWdlLFxuICAgIHBhZ2luZzoge1xuICAgICAgcGFnZTogcGFnZSA+IHRvdGFsX3BhZ2VzID8gdG90YWxfcGFnZXMgOiBwYWdlLFxuICAgICAgcGVyX3BhZ2U6IHBlcl9wYWdlLFxuICAgICAgdG90YWxfaXRlbXM6IGRhdGEubGVuZ3RoLFxuICAgICAgdG90YWxfcGFnZXM6IHRvdGFsX3BhZ2VzLFxuICAgIH0sXG4gIH07XG59O1xuIl19
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLW1vY2t1cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvc2VydmljZXMvaHR0cC1yZXF1ZXN0L3NyYy9hcGktbW9ja3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRixPQUFPLEVBQWMsS0FBSyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRW5FOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUVILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQzlCLElBQWlCLEVBQ2pCLGVBQWlFLEVBQ2pFLE9BRUMsRUFLRCxFQUFFO0lBQ0YsT0FBTztRQUNMLElBQUksRUFBRSxLQUFLLEVBQXNCLE1BQStCLEVBQXdDLEVBQUU7WUFDeEcsSUFBSSxlQUFlLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNqQyxDQUFDO1lBQ0QsTUFBTSxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoRCxPQUFPO2dCQUNMLElBQUksRUFBRSxHQUFHO2dCQUNULElBQUksRUFBRyxJQUFZLElBQUksRUFBRTtnQkFDekIsTUFBTSxFQUFFLEVBQUU7YUFDWCxDQUFDO1FBQ0osQ0FBQztRQUNELGNBQWMsRUFBRSxDQUFxQixNQUErQixFQUEyQyxFQUFFO1lBQy9HLElBQUksZUFBZSxFQUFFLENBQUM7Z0JBQ3BCLElBQUksR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakMsQ0FBQztZQUVELE9BQU8sRUFBRSxDQUFDO2dCQUNSLElBQUksRUFBRSxHQUFHO2dCQUNULElBQUksRUFBRyxJ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R0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUM7SUFDdEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDMUMsT0FBTztRQUNMLElBQUksRUFBRSxHQUFHO1FBQ1QsSUFBSSxFQUFFLFVBQVU7UUFDaEIsTUFBTSxFQUFFO1lBQ04sSUFBSSxFQUFFLElBQUksR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUM3QyxRQUFRLEVBQUUsUUFBUTtZQUNsQixXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDeEIsV0FBVyxFQUFFLFdBQVc7U0FDekI7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSUh0dHBSZXNwb25zZSB9IGZyb20gJ0BsaWJzLXVpL2ludGVyZmFjZXMtdHlwZXMnO1xuaW1wb3J0IHsgVXRpbHNIdHRwUGFyYW1zUmVxdWVzdCwgZ2V0LCBpc05pbCwgc2V0LCBpc0VxdWFsIH0gZnJvbSAnQGxpYnMtdWkvdXRpbHMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZGVsYXksIGxhc3RWYWx1ZUZyb20sIG9mLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIFRy4bqjIHbhu4EgY8OhYyBwaMawxqFuZyB0aOG7qWMgxJHhu4MgeOG7rSBsw70gZGFuaCBzw6FjaCBk4buvIGxp4buHdSBtb2NrXG4gKiBAcGFyYW0gZGF0YSAtIE3huqNuZyBk4buvIGxp4buHdSBt4bq3YyDEkeG7i25oIMSR4buDIG1vY2tcbiAqIEBwYXJhbSBmdW5jdGlvbkdldERhdGEgLSBIw6BtIHTDuXkgY2jhu41uIMSR4buDIGzhuqV5IGThu68gbGnhu4d1IMSR4buZbmcgdGhheSB2w6wgc+G7rSBk4bulbmcgZGF0YSBt4bq3YyDEkeG7i25oXG4gKiBAcmV0dXJucyDEkOG7kWkgdMaw4bujbmcgY2jhu6lhIGPDoWMgcGjGsMahbmcgdGjhu6ljOlxuICogICAtIGxpc3Q6IFRy4bqjIHbhu4EgUHJvbWlzZSB24bubaSB0b8OgbiBi4buZIGThu68gbGnhu4d1IChjw7MgZGVsYXkgMjUwbXMpXG4gKiAgIC0gbGlzdE9ic2VydmFibGU6IFRy4bqjIHbhu4EgT2JzZXJ2YWJsZSB24bubaSB0b8OgbiBi4buZIGThu68gbGnhu4d1IChjw7MgZGVsYXkgMjUwbXMpXG4gKiAgIC0gbGlzdFBhZ2luZzogVHLhuqMgduG7gSBQcm9taXNlIHbhu5tpIGThu68gbGnhu4d1IMSRw6MgcGjDom4gdHJhbmcgZOG7sWEgdHLDqm4gcGFyYW1zIChjw7MgZGVsYXkgMjUwbXMpXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG1vY2tEYXRhID0gW3sgaWQ6IDEsIG5hbWU6ICdJdGVtIDEnIH0sIHsgaWQ6IDIsIG5hbWU6ICdJdGVtIDInIH1dO1xuICogY29uc3QgbGlzdFNlcnZpY2UgPSByZXR1cm5MaXN0T2JqZWN0KG1vY2tEYXRhKTtcbiAqXG4gKiAvLyBM4bqleSB0b8OgbiBi4buZIGThu68gbGnhu4d1XG4gKiBjb25zdCBhbGxEYXRhID0gYXdhaXQgbGlzdFNlcnZpY2UubGlzdCgpO1xuICpcbiAqIC8vIEzhuqV5IGThu68gbGnhu4d1IHBow6JuIHRyYW5nXG4gKiBjb25zdCBwYXJhbXMgPSBuZXcgVXRpbHNIdHRwUGFyYW1zUmVxdWVzdCgpO1xuICogcGFyYW1zLnNldCgncGFnZScsICcxJyk7XG4gKiBwYXJhbXMuc2V0KCdwZXJfcGFnZScsICcxMCcpO1xuICogY29uc3QgcGFnZWREYXRhID0gYXdhaXQgbGlzdFNlcnZpY2UubGlzdFBhZ2luZyhwYXJhbXMpO1xuICogYGBgXG4gKi9cblxuZXhwb3J0IGNvbnN0IHJldHVybkxpc3RPYmplY3QgPSAoXG4gIGRhdGE/OiBBcnJheTxhbnk+LFxuICBmdW5jdGlvbkdldERhdGE/OiAocGFyYW1zPzogVXRpbHNIdHRwUGFyYW1zUmVxdWVzdCkgPT4gQXJyYXk8YW55PixcbiAgb3B0aW9ucz86IHtcbiAgICBkZWxheT86IG51bWJlcjtcbiAgfVxuKToge1xuICBsaXN0OiA8VHlwZVJlc3BvbnNlID0gYW55PihwYXJhbXM/OiBVdGlsc0h0dHBQYXJhbXNSZXF1ZXN0KSA9PiBQcm9taXNlPElIdHRwUmVzcG9uc2U8VHlwZVJlc3BvbnNlPj47XG4gIGxpc3RPYnNlcnZhYmxlOiA8VHlwZVJlc3BvbnNlID0gYW55PihwYXJhbXM/OiBVdGlsc0h0dHBQYXJhbXNSZXF1ZXN0KSA9PiBPYnNlcnZhYmxlPElIdHRwUmVzcG9uc2U8VHlwZVJlc3BvbnNlPj47XG4gIGxpc3RQYWdpbmc6IDxUeXBlUmVzcG9uc2UgPSBhbnk+KHBhcmFtczogVXRpbHNIdHRwUGFyYW1zUmVxdWVzdCkgPT4gUHJvbWlzZTxJSHR0cFJlc3BvbnNlPFR5cGVSZXNwb25zZT4+O1xufSA9PiB7XG4gIHJldHVybiB7XG4gICAgbGlzdDogYXN5bmMgPFR5cGVSZXNwb25zZSA9IGFueT4ocGFyYW1zPzogVXRpbHNIdHRwUGFyYW1zUmVxdWVzdCk6IFByb21pc2U8SUh0dHBSZXNwb25zZTxUeXBlUmVzcG9uc2U+PiA9PiB7XG4gICAgICBpZiAoZnVuY3Rpb25HZXREYXRhKSB7XG4gICAgICAgIGRhdGEgPSBmdW5jdGlvbkdldERhdGEocGFyYW1zKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IGxhc3RWYWx1ZUZyb20odGltZXIob3B0aW9ucz8uZGVsYXkgfHwgMCkpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29kZTogMjAwLFxuICAgICAgICBkYXRhOiAoZGF0YSBhcyBhbnkpIHx8IFtdLFxuICAgICAgICBwYWdpbmc6IHt9LFxuICAgICAgfTtcbiAgICB9LFxuICAgIGxpc3RPYnNlcnZhYmxlOiA8VHlwZVJlc3BvbnNlID0gYW55PihwYXJhbXM/OiBVdGlsc0h0dHBQYXJhbXNSZXF1ZXN0KTogT2JzZXJ2YWJsZTxJSHR0cFJlc3BvbnNlPFR5cGVSZXNwb25zZT4+ID0+IHtcbiAgICAgIGlmIChmdW5jdGlvbkdldERhdGEpIHtcbiAgICAgICAgZGF0YSA9IGZ1bmN0aW9uR2V0RGF0YShwYXJhbXMpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gb2Yoe1xuICAgICAgICBjb2RlOiAyMDAsXG4gICAgICAgIGRhdGE6IChkYXRhIGFzIGFueSkgfHwgW10sXG4gICAgICAgIHBhZ2luZzoge30sXG4gICAgICB9KS5waXBlKGRlbGF5KG9wdGlvbnM/LmRlbGF5IHx8IDApKTtcbiAgICB9LFxuICAgIGxpc3RQYWdpbmc6IGFzeW5jIDxUeXBlUmVzcG9uc2UgPSBhbnk+KHBhcmFtczogVXRpbHNIdHRwUGFyYW1zUmVxdWVzdCk6IFByb21pc2U8SUh0dHBSZXNwb25zZTxUeXBlUmVzcG9uc2U+PiA9PiB7XG4gICAgICBpZiAoZnVuY3Rpb25HZXREYXRhKSB7XG4gICAgICAgIGRhdGEgPSBmdW5jdGlvbkdldERhdGEocGFyYW1zKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBhZ2UgPSBwYXJzZUludChwYXJhbXMuZ2V0KCdwYWdlJykgfHwgJzEnKTtcbiAgICAgIGNvbnN0IHBlcl9wYWdlID0gcGFyc2VJbnQocGFyYW1zLmdldCgncGVyX3BhZ2UnKSB8fCAnMzAnKTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBhZ2luZ1RvTGlzdChkYXRhIGFzIEFycmF5PGFueT4sIHBhZ2UsIHBlcl9wYWdlKTtcblxuICAgICAgYXdhaXQgbGFzdFZhbHVlRnJvbSh0aW1lcihvcHRpb25zPy5kZWxheSB8fCAwKSk7XG5cbiAgICAgIHJldHVybiByZXN1bHQgYXMgSUh0dHBSZXNwb25zZTxUeXBlUmVzcG9uc2U+O1xuICAgIH0sXG4gIH07XG59O1xuXG4vKipcbiAqIFThuqFvIG3hu5l0IMSR4buRaSB0xrDhu6NuZyBtb2NrIGRldGFpbCB24bubaSBjw6FjIHBoxrDGoW5nIHRo4bupYyDEkeG7gyBs4bqleSBi4bqjbiBnaGkgcmnDqm5nIGzhursgdGhlbyBraMOzYS5cbiAqIEjhu5cgdHLhu6MgY+G6oyBt4bqjbmcgZOG7ryBsaeG7h3UgdMSpbmggdsOgIGPDoWMgaMOgbSBk4buvIGxp4buHdSDEkeG7mW5nLlxuICpcbiAqIEB0ZW1wbGF0ZSBUeXBlUmVzcG9uc2UgLSBLaeG7g3UgZOG7ryBsaeG7h3UgcGjhuqNuIGjhu5NpIG1vbmcgxJHhu6NpXG4gKiBAdGVtcGxhdGUgVHlwZVBhcmFtcyAtIEtp4buDdSB0aGFtIHPhu5EgSFRUUCAobeG6t2MgxJHhu4tuaCBsw6AgYW55KVxuICpcbiAqIEBwYXJhbSBodHRwUGFyYW1zIC0gVGhhbSBz4buRIEhUVFAgY2jhu6lhOlxuICogICAtIGtleXM6IEtow7NhIChob+G6t2MgY8OhYyBraMOzYSkgY+G6p24gdMOsbSBraeG6v21cbiAqICAgLSBmaWVsZEtleTogVMOqbiB0csaw4budbmcgxJHhu4Mgc28ga2jhu5twICht4bq3YyDEkeG7i25oIGzDoCAnaWQnKVxuICogICAtIGRhdGFSZXNwb25zZU9qZWN0OiBD4budIGJvb2xlYW4gxJHhu4MgxJHhu4tuaCBk4bqhbmcgxJHhu5FpIHTGsOG7o25nIHBo4bqjbiBo4buTaVxuICogQHBhcmFtIGRhdGEgLSBN4bqjbmcgZOG7ryBsaeG7h3UgdMSpbmggdMO5eSBjaOG7jW4gxJHhu4MgdMOsbSBraeG6v21cbiAqIEBwYXJhbSBmdW5jdGlvbkdldERhdGEgLSBIw6BtIHTDuXkgY2jhu41uIHRy4bqjIHbhu4EgZOG7ryBsaeG7h3UgKGPDsyB0aOG7gyBsw6AgUHJvbWlzZSBob+G6t2MgT2JzZXJ2YWJsZSlcbiAqIEBwYXJhbSBpZ25vcmVTcGxpdCAtIE7hur91IHRydWUsIGNvaSBrZXlzIG5oxrAgbeG7mXQgZ2nDoSB0cuG7iyDEkcahbiB0aGF5IHbDrCB0w6FjaCBjaHXhu5dpXG4gKiBAcGFyYW0gc3BsaXRPcGVyYXRvciAtIFRvw6FuIHThu60gdMO5eSBjaOG7iW5oIMSR4buDIHTDoWNoIGtleXMgKG3hurdjIMSR4buLbmggbMOgIGThuqV1IHBo4bqpeSlcbiAqXG4gKiBAcmV0dXJucyDEkOG7kWkgdMaw4bujbmcgduG7m2kgY8OhYyBwaMawxqFuZyB0aOG7qWM6XG4gKiAgIC0gZGV0YWlsQnlEYXRhOiBUw6xtIGtp4bq/bSB0aMO0bmcgcXVhIG3huqNuZyBk4buvIGxp4buHdSB0xKluaCDEkcaw4bujYyBjdW5nIGPhuqVwXG4gKiAgIC0gZGV0YWlsQnlGdW5jdGlvbjogR+G7jWkgZnVuY3Rpb25HZXREYXRhIMSR4buDIGzhuqV5IGThu68gbGnhu4d1IG3hu5tpLCBzYXUgxJHDsyB0w6xtIGtp4bq/bVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBwYXJhbXMgPSBuZXcgVXRpbHNIdHRwUGFyYW1zUmVxdWVzdCh7ZnJvbU9iamVjdDp7a2V5czonMScsZmllbGRLZXk6J2lkJ319KTtcbiAqIGNvbnN0IG1vY2tEZXRhaWwgPSByZXR1cm5EZXRhaWxPYmplY3Q8VXNlcj4ocGFyYW1zLCB1c2VyRGF0YSk7XG4gKiBjb25zdCB1c2VyID0gYXdhaXQgbW9ja0RldGFpbC5kZXRhaWxCeURhdGEoKTtcbiAqIGBgYFxuICovXG5cbmV4cG9ydCBjb25zdCByZXR1cm5EZXRhaWxPYmplY3QgPSA8VHlwZVJlc3BvbnNlLCBUeXBlUGFyYW1zID0gYW55PihcbiAgaHR0cFBhcmFtczogVXRpbHNIdHRwUGFyYW1zUmVxdWVzdDxUeXBlUGFyYW1zPiB8IEh0dHBQYXJhbXMsXG4gIGRhdGE/OiBBcnJheTxhbnk+LFxuICBmdW5jdGlvbkdldERhdGE/OiAoKSA9PiBQcm9taXNlPElIdHRwUmVzcG9uc2U8VHlwZVJlc3BvbnNlPj4gfCBPYnNlcnZhYmxlPElIdHRwUmVzcG9uc2U8VHlwZVJlc3BvbnNlPj4sXG4gIGlnbm9yZVNwbGl0PzogYm9vbGVhbixcbiAgc3BsaXRPcGVyYXRvcj86IHN0cmluZ1xuKToge1xuICBkZXRhaWxCeURhdGE6IDxUeXBlUmVzcG9uc2UgPSBhbnk+KGtleXM/OiBhbnkpID0+IFByb21pc2U8SUh0dHBSZXNwb25zZTxUeXBlUmVzcG9uc2U+PjtcbiAgZGV0YWlsQnlGdW5jdGlvbjogPFR5cGVSZXNwb25zZSA9IGFueT4oa2V5cz86IGFueSkgPT4gUHJvbWlzZTxJSHR0cFJlc3BvbnNlPFR5cGVSZXNwb25zZT4+O1xufSA9PiB7XG4gIGNvbnN0IGtleXNQcmFtczogYW55ID0gaHR0cFBhcmFtcy5nZXQoJ2tleXMnKTtcbiAgY29uc3QgZmllbGRLZXk6IHN0cmluZyA9IGh0dHBQYXJhbXMuZ2V0KCdmaWVsZEtleScpIHx8ICdpZCc7XG4gIGNvbnN0IGRhdGFSZXNwb25zZU9qZWN0OiBhbnkgPSBodHRwUGFyYW1zLmdldCgnZGF0YVJlc3BvbnNlT2plY3QnKTtcblxuICByZXR1cm4ge1xuICAgIGRldGFpbEJ5RGF0YTogYXN5bmMgPFR5cGVSZXNwb25zZT4oa2V5cz86IGFueSk6IFByb21pc2U8SUh0dHBSZXNwb25zZTxUeXBlUmVzcG9uc2U+PiA9PiB7XG4gICAgICByZXR1cm4gZmlsdGVyRGF0YTxUeXBlUmVzcG9uc2U+KGZpZWxkS2V5LCBkYXRhLCBrZXlzID8/IGtleXNQcmFtcywgZGF0YVJlc3BvbnNlT2plY3QsIGlnbm9yZVNwbGl0LCBzcGxpdE9wZXJhdG9yKTtcbiAgICB9LFxuXG4gICAgZGV0YWlsQnlGdW5jdGlvbjogYXN5bmMgPFR5cGVSZXNwb25zZT4oa2V5cz86IGFueSk6IFByb21pc2U8SUh0dHBSZXNwb25zZTxUeXBlUmVzcG9uc2U+PiA9PiB7XG4gICAgICBpZiAoIWZ1bmN0aW9uR2V0RGF0YSkge1xuICAgICAgICByZXR1cm4gYXdhaXQgZmlsdGVyRGF0YTxUeXBlUmVzcG9uc2U+KGZpZWxkS2V5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZGF0YVJlc3BvbnNlT2plY3QsIGlnbm9yZVNwbGl0LCBzcGxpdE9wZXJhdG9yKTtcbiAgICAgIH1cblxuICAgICAgbGV0IGRhdGFSZXN1bHQ6IGFueSA9IGZ1bmN0aW9uR2V0RGF0YSgpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBpZiAoZGF0YVJlc3VsdFsnc3Vic2NyaWJlJ10pIHtcbiAgICAgICAgICBkYXRhUmVzdWx0ID0gYXdhaXQgbGFzdFZhbHVlRnJvbShkYXRhUmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YVJlc3VsdFsndGhlbiddKSB7XG4gICAgICAgICAgZGF0YVJlc3VsdCA9IGF3YWl0IGRhdGFSZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgICAgZGF0YVJlc3VsdCA9IHsgZGF0YTogW10gfTtcbiAgICAgIH1cblxuICAgICAgZGF0YSA9IGRhdGFSZXN1bHQuZGF0YTtcblxuICAgICAgcmV0dXJuIGF3YWl0IGZpbHRlckRhdGE8VHlwZVJlc3BvbnNlPihmaWVsZEtleSwgZGF0YSwga2V5cyB8fCBrZXlzUHJhbXMsIGRhdGFSZXNwb25zZU9qZWN0LCBpZ25vcmVTcGxpdCwgc3BsaXRPcGVyYXRvcik7XG4gICAgfSxcbiAgfTtcbn07XG5cbmNvbnN0IGZpbHRlckRhdGEgPSA8VHlwZVJlc3BvbnNlPihmaWVsZEtleTogc3RyaW5nLCBkYXRhPzogQXJyYXk8YW55Piwga2V5cz86IGFueSwgZGF0YVJlc3BvbnNlT2plY3Q/OiBib29sZWFuLCBpZ25vcmVTcGxpdD86IGJvb2xlYW4sIHNwbGl0T3BlcmF0b3I/OiBzdHJpbmcpOiBJSHR0cFJlc3BvbnNlPFR5cGVSZXNwb25zZT4gPT4ge1xuICBpZiAoIWRhdGEgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnIHx8IGlzTmlsKGtleXMpIHx8IGtleXMgPT09ICcnKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvZGU6IDIwMCxcbiAgICAgIGRhdGE6IHVuZGVmaW5lZCxcbiAgICAgIHBhZ2luZzoge30sXG4gICAgfTtcbiAgfVxuXG4gIGRhdGEgPSBkYXRhIHx8IFtdO1xuXG4gIGlmICghKGRhdGEgaW5zdGFuY2VvZiBBcnJheSkpIHtcbiAgICBkYXRhID0gW2RhdGFdO1xuICB9XG4gIGNvbnN0IHJlc3VsdDogYW55ID0gW107XG5cbiAgaWYgKCFpZ25vcmVTcGxpdCAmJiB0eXBlb2Yga2V5cyA9PT0gJ3N0cmluZycpIHtcbiAgICBrZXlzID0ga2V5cy5zcGxpdChzcGxpdE9wZXJhdG9yIHx8ICcsJyk7XG4gIH1cblxuICBpZiAodHlwZW9mIGtleXMgPT09ICdudW1iZXInIHx8IHR5cGVvZiBrZXlzID09PSAnYm9vbGVhbicgfHwgKHR5cGVvZiBrZXlzID09PSAnc3RyaW5nJyAmJiBpZ25vcmVTcGxpdCkpIHtcbiAgICBrZXlzID0gW2tleXNdO1xuICB9XG5cbiAga2V5cy5mb3JFYWNoKChrZXk6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHJlc3VsdEZpbHRlciA9IGRhdGE/LmZpbHRlcigoZWxEYXRhOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSA9PiBpc0VxdWFsKGdldChlbERhdGEsIGZpZWxkS2V5KSwga2V5LCB7IGlnbm9yZUV4YWN0bHlEYXRhVHlwZTogdHJ1ZSB9KSk7XG5cbiAgICBpZiAocmVzdWx0RmlsdGVyICYmIHJlc3VsdEZpbHRlci5sZW5ndGgpIHtcbiAgICAgIHJlc3VsdC5wdXNoKC4uLnJlc3VsdEZpbHRlcik7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4ge1xuICAgIGNvZGU6IDIwMCxcbiAgICBkYXRhOiByZXN1bHQubGVuZ3RoID8gKGRhdGFSZXNwb25zZU9qZWN0ID8gcmVzdWx0WzBdIDogcmVzdWx0KSA6IHVuZGVmaW5lZCxcbiAgICBwYWdpbmc6IHt9LFxuICB9O1xufTtcblxuY29uc3QgcGVyX3BhZ2UgPSAyMDtcbmNvbnN0IHRvdGFsX2l0ZW1zID0gcGVyX3BhZ2UgKiAxNTAgKyAxNTtcblxuZXhwb3J0IGNvbnN0IGdldENvbmZpZ0xpc3REYXRhRGVtbyA9IChodHRwUGFyYW1zRGV0YWlsOiBVdGlsc0h0dHBQYXJhbXNSZXF1ZXN0PGFueT4gPSBuZXcgVXRpbHNIdHRwUGFyYW1zUmVxdWVzdCgpLCBvYmplY3REYXRhPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiwgZnVuY3Rpb25CdWlsZE9iamVjdD86IChudW1JbmNyZW1lbnQ6IHN0cmluZykgPT4gUmVjb3JkPHN0cmluZywgc3RyaW5nPikgPT4ge1xuICBpZiAoIW9iamVjdERhdGEpIHtcbiAgICBvYmplY3REYXRhID0ge1xuICAgICAgaWQ6ICcnLFxuICAgICAgbmFtZTogJ2l0ZW0gcG9zaXRvbiBpbmRleCAnLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBkYXRhID0gWy4uLkFycmF5KHRvdGFsX2l0ZW1zKS5rZXlzKCldLm1hcCgoXywgaW5kZXgpID0+IHtcbiAgICBpZiAoZnVuY3Rpb25CdWlsZE9iamVjdCkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uQnVpbGRPYmplY3QoYCR7K2luZGV4ICsgMX1gKTtcbiAgICB9XG4gICAgY29uc3Qgb2JqOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgT2JqZWN0LmtleXMob2JqZWN0RGF0YSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBzZXQob2JqLCBrZXksIGAke29iamVjdERhdGFba2V5XX0keytpbmRleCArIDF9YCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIG9iajtcbiAgfSk7XG5cbiAgY29uc3QgbGlzdFNlcnZpY2UgPSByZXR1cm5MaXN0T2JqZWN0KGRhdGEpO1xuICBjb25zdCBkZXRhaWxTZXJ2aWNlID0gcmV0dXJuRGV0YWlsT2JqZWN0KGh0dHBQYXJhbXNEZXRhaWwsIGRhdGEsIHVuZGVmaW5lZCwgZmFsc2UsICc7Jyk7XG4gIHJldHVybiB7XG4gICAgbGlzdDogbGlzdFNlcnZpY2UubGlzdFBhZ2luZyxcbiAgICBkZXRhaWxCeURhdGE6IGRldGFpbFNlcnZpY2UuZGV0YWlsQnlEYXRhLFxuICB9O1xufTtcblxuLyoqXG4gKiBIw6BtIHBow6JuIHRyYW5nIGThu68gbGnhu4d1IHThu6sgbeG7mXQgbeG6o25nXG4gKiBAcGFyYW0gZGF0YSAtIE3huqNuZyBk4buvIGxp4buHdSBj4bqnbiBwaMOibiB0cmFuZ1xuICogQHBhcmFtIHBhZ2UgLSBT4buRIHRyYW5nIGhp4buHbiB04bqhaSAoYuG6r3QgxJHhuqd1IHThu6sgMSlcbiAqIEBwYXJhbSBwZXJfcGFnZSAtIFPhu5EgbMaw4bujbmcgaXRlbSB0csOqbiBt4buXaSB0cmFuZ1xuICogQHJldHVybnMgxJDhu5FpIHTGsOG7o25nIGNo4bupYSBk4buvIGxp4buHdSDEkcOjIHBow6JuIHRyYW5nIHbDoCB0aMO0bmcgdGluIHBow6JuIHRyYW5nXG4gKi9cbmV4cG9ydCBjb25zdCBwYWdpbmdUb0xpc3QgPSAoZGF0YTogQXJyYXk8YW55PiwgcGFnZTogbnVtYmVyLCBwZXJfcGFnZTogbnVtYmVyKSA9PiB7XG4gIGlmICghZGF0YSB8fCAhQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgIHJldHVybiB7XG4gICAgICBjb2RlOiAyMDAsXG4gICAgICBkYXRhOiBbXSxcbiAgICAgIHBhZ2luZzoge1xuICAgICAgICBwYWdlOiBwYWdlLFxuICAgICAgICBwZXJfcGFnZTogcGVyX3BhZ2UsXG4gICAgICAgIHRvdGFsX2l0ZW1zOiAwLFxuICAgICAgICB0b3RhbF9wYWdlczogMCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuICBjb25zdCBzdGFydCA9IChwYWdlIC0gMSkgKiBwZXJfcGFnZTtcbiAgY29uc3QgZW5kID0gc3RhcnQgKyBwZXJfcGFnZTtcbiAgY29uc3QgdG90YWxfcGFnZXMgPSBNYXRoLmNlaWwoZGF0YS5sZW5ndGggLyBwZXJfcGFnZSk7XG4gIGNvbnN0IGRhdGFCeVBhZ2UgPSBkYXRhLnNsaWNlKHN0YXJ0LCBlbmQpO1xuICByZXR1cm4ge1xuICAgIGNvZGU6IDIwMCxcbiAgICBkYXRhOiBkYXRhQnlQYWdlLFxuICAgIHBhZ2luZzoge1xuICAgICAgcGFnZTogcGFnZSA+IHRvdGFsX3BhZ2VzID8gdG90YWxfcGFnZXMgOiBwYWdlLFxuICAgICAgcGVyX3BhZ2U6IHBlcl9wYWdlLFxuICAgICAgdG90YWxfaXRlbXM6IGRhdGEubGVuZ3RoLFxuICAgICAgdG90YWxfcGFnZXM6IHRvdGFsX3BhZ2VzLFxuICAgIH0sXG4gIH07XG59O1xuIl19
|
|
@@ -257,37 +257,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
257
257
|
* const pagedData = await listService.listPaging(params);
|
|
258
258
|
* ```
|
|
259
259
|
*/
|
|
260
|
-
const returnListObject = (data, functionGetData) => {
|
|
260
|
+
const returnListObject = (data, functionGetData, options) => {
|
|
261
261
|
return {
|
|
262
|
-
list: async () => {
|
|
262
|
+
list: async (params) => {
|
|
263
263
|
if (functionGetData) {
|
|
264
|
-
data = functionGetData();
|
|
264
|
+
data = functionGetData(params);
|
|
265
265
|
}
|
|
266
|
-
await lastValueFrom(timer(
|
|
266
|
+
await lastValueFrom(timer(options?.delay || 0));
|
|
267
267
|
return {
|
|
268
268
|
code: 200,
|
|
269
269
|
data: data || [],
|
|
270
270
|
paging: {},
|
|
271
271
|
};
|
|
272
272
|
},
|
|
273
|
-
listObservable: () => {
|
|
273
|
+
listObservable: (params) => {
|
|
274
274
|
if (functionGetData) {
|
|
275
|
-
data = functionGetData();
|
|
275
|
+
data = functionGetData(params);
|
|
276
276
|
}
|
|
277
277
|
return of({
|
|
278
278
|
code: 200,
|
|
279
279
|
data: data || [],
|
|
280
280
|
paging: {},
|
|
281
|
-
}).pipe(delay(
|
|
281
|
+
}).pipe(delay(options?.delay || 0));
|
|
282
282
|
},
|
|
283
283
|
listPaging: async (params) => {
|
|
284
284
|
if (functionGetData) {
|
|
285
|
-
data = functionGetData();
|
|
285
|
+
data = functionGetData(params);
|
|
286
286
|
}
|
|
287
287
|
const page = parseInt(params.get('page') || '1');
|
|
288
288
|
const per_page = parseInt(params.get('per_page') || '30');
|
|
289
289
|
const result = pagingToList(data, page, per_page);
|
|
290
|
-
await lastValueFrom(timer(
|
|
290
|
+
await lastValueFrom(timer(options?.delay || 0));
|
|
291
291
|
return result;
|
|
292
292
|
},
|
|
293
293
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libs-ui-services-http-request.mjs","sources":["../../../../../libs-ui/services/http-request/src/http-request.service.ts","../../../../../libs-ui/services/http-request/src/api-mockup.ts","../../../../../libs-ui/services/http-request/src/interfaces/http-request-config.interface.ts","../../../../../libs-ui/services/http-request/src/libs-ui-services-http-request.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpParams } from '@angular/common/http';\nimport { inject, Injectable, Injector } from '@angular/core';\nimport { IPaging } from '@libs-ui/interfaces-types';\nimport { UtilsCache, get, getKeyCacheByArrayObject, isEmpty, set } from '@libs-ui/utils';\nimport { lastValueFrom } from 'rxjs';\nimport { IGuideAutoUpdateArgumentsValue, IGuideAutoUpdateArgumentsValueConfig, IHttpRequestConfig } from './interfaces/index';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LibsUiHttpRequestService {\n private injector = inject(Injector);\n /** Chứa dữ liệu cache memory */\n private serviceStore: Map<string, any> = new Map();\n\n public async callApi<T = any>(httpRequestConfig: IHttpRequestConfig): Promise<T> {\n if (!httpRequestConfig || !httpRequestConfig.functionName) {\n throw 'http request config not exactly httpRequestConfig';\n }\n const serviceOther = get<unknown>(httpRequestConfig, 'serviceOther'); // TODO: sẽ xóa khi migrate hết component\n\n if (serviceOther) {\n set(httpRequestConfig, 'objectInstance', serviceOther);\n }\n\n const { objectInstance, keyCache, functionName, argumentsValue, serviceClass } = httpRequestConfig;\n\n if (!objectInstance && !serviceClass) {\n throw `http request config not exactly objectInstance or serviceName`;\n }\n const instance: any = objectInstance || this.injector.get<T>(serviceClass as any);\n if (!instance) {\n throw `http request notfound service instance`;\n }\n const methodInstance = instance[functionName];\n\n if (!methodInstance) {\n throw `http request config notfound methodInstance name: ${String(functionName)}`;\n }\n const keyCacheMD5: string = getKeyCacheByArrayObject(keyCache || '', argumentsValue);\n const cacheData = await this.getCacheData(httpRequestConfig, keyCacheMD5);\n\n if (cacheData) {\n return Promise.resolve(cacheData);\n }\n\n let callResponse = methodInstance.apply(instance, argumentsValue);\n if (!callResponse.then) {\n callResponse = lastValueFrom(callResponse);\n }\n\n const res = await callResponse;\n\n return await this.setCacheData(res, httpRequestConfig, keyCacheMD5);\n }\n\n private async getCacheData(httpRequestConfig: IHttpRequestConfig, keyCache: string) {\n const { cacheType, convertResponseData } = httpRequestConfig;\n\n if (!cacheType || !keyCache) {\n return undefined;\n }\n if (cacheType === 'service') {\n const data = this.serviceStore.get(keyCache);\n\n return data ? (convertResponseData ? convertResponseData(data) : data) : data;\n }\n const data = await UtilsCache.GetAsync(keyCache, undefined, true);\n\n return data ? (convertResponseData ? convertResponseData(data) : data) : data;\n }\n\n private async setCacheData(data: any, httpRequestConfig: IHttpRequestConfig, keyCache: string) {\n const { cacheType, clearCache, convertResponseData } = httpRequestConfig;\n\n if (!cacheType || !keyCache) {\n return convertResponseData ? convertResponseData(data) : data;\n }\n if (clearCache === true) {\n this.clearCache(cacheType, keyCache);\n }\n if (cacheType === 'service') {\n this.serviceStore.set(keyCache, data);\n\n return convertResponseData ? convertResponseData(data) : data;\n }\n await UtilsCache.SetAsync(keyCache, data, (httpRequestConfig.timeCache || 5) * 60, true);\n\n return convertResponseData ? convertResponseData(data) : data;\n }\n\n private clearCache(cacheType: 'service' | 'local-store', keyCache: string) {\n if (cacheType === 'service') {\n this.serviceStore.delete(keyCache);\n\n return;\n }\n UtilsCache.ClearAsync(keyCache, true);\n }\n\n /**\n * @return trả về trạng thái đã load hết item chưa (ví dụ: dựa vào tham số này để quyết định có tiếp tục gọi api khi scroll ko) .\n */\n public updateArguments(\n argumentsValue: Array<any>,\n objectGetDataUpdate: Record<string, any>,\n pagingStore: IPaging,\n keySearch: string,\n searchOnline: boolean,\n loadedLastItem: boolean,\n guideAutoUpdateArgumentsValue?: IGuideAutoUpdateArgumentsValue\n ): boolean {\n if (!argumentsValue || !(argumentsValue instanceof Array) || loadedLastItem) {\n return true;\n }\n\n if (!guideAutoUpdateArgumentsValue) {\n return this.updateArgumentsDefault(argumentsValue, true, pagingStore, keySearch, searchOnline);\n }\n const { paging, search, other, detailById, sortOrderType, sortOrderBy } = guideAutoUpdateArgumentsValue;\n\n if (search) {\n search.fieldGetValue = 'keySearch';\n this.processUpdateArgumentsValeConfig(argumentsValue, { keySearch }, search);\n }\n if (objectGetDataUpdate?.['storeParamsCallApi'] && typeof objectGetDataUpdate?.['storeParamsCallApi'] === 'object' && !(objectGetDataUpdate?.['storeParamsCallApi'] as any).instanceSort) {\n objectGetDataUpdate['storeParamsCallApi'] = { ...objectGetDataUpdate['storeParamsCallApi'], instanceSort: {} };\n }\n if (sortOrderBy) {\n this.processUpdateArgumentsValeConfig(argumentsValue, objectGetDataUpdate, sortOrderBy);\n }\n if (sortOrderType) {\n this.processUpdateArgumentsValeConfig(argumentsValue, objectGetDataUpdate, sortOrderType);\n }\n if (other && other.length) {\n other.forEach((config) => this.processUpdateArgumentsValeConfig(argumentsValue, objectGetDataUpdate, config));\n }\n if (detailById) {\n detailById.fieldGetValue = detailById.fieldGetValue || detailById.fieldGetValue.trim() || 'key';\n this.processUpdateArgumentsValeConfig(argumentsValue, objectGetDataUpdate, detailById);\n }\n\n if (isEmpty(paging)) {\n return this.updateArgumentsDefault(argumentsValue, false, pagingStore || this.fakeResponsePagingApi()['paging'], keySearch, searchOnline);\n }\n const { page, before, after } = paging;\n\n if (page && objectGetDataUpdate) {\n page.preprocessor = (value: number): number => {\n return ++value;\n };\n const valuePage = +this.processUpdateArgumentsValeConfig(argumentsValue, objectGetDataUpdate, page);\n const valueLastPage = +get(objectGetDataUpdate as any, 'paging.total_pages');\n\n if ((valuePage && Number(valuePage).valueOf() > Number(valueLastPage).valueOf()) || valueLastPage === 0) {\n return true;\n }\n }\n if (before && objectGetDataUpdate && !this.processUpdateArgumentsValeConfig(argumentsValue, objectGetDataUpdate, before) && !get(objectGetDataUpdate, 'paging.fake')) {\n set(objectGetDataUpdate, 'paging.fake', false);\n\n return true;\n }\n if (after && objectGetDataUpdate && !this.processUpdateArgumentsValeConfig(argumentsValue, objectGetDataUpdate, after) && !get(objectGetDataUpdate, 'paging.fake')) {\n set(objectGetDataUpdate, 'paging.fake', false);\n\n return true;\n }\n\n if (!argumentsValue || !argumentsValue.length) {\n return true;\n }\n\n return false;\n }\n\n private updateArgumentsDefault(argumentsValue: Array<any>, updateSearch: boolean, pagingStore: IPaging, keySearch: string, searchOnline: boolean) {\n if (!argumentsValue || !argumentsValue.length) {\n return true;\n }\n\n for (const index in argumentsValue) {\n let argumentValue = argumentsValue[index];\n\n if (!(argumentValue instanceof HttpParams)) {\n continue;\n }\n const pageValue = argumentValue.get('page');\n\n if (searchOnline && updateSearch) {\n argumentValue = argumentValue.set('search', keySearch);\n argumentsValue[index] = argumentValue;\n }\n if (argumentValue.has('before')) {\n argumentValue = argumentValue.set('before', pagingStore?.before);\n argumentsValue[index] = argumentValue;\n }\n if (argumentValue.has('after')) {\n argumentValue = argumentValue.set('after', pagingStore?.after);\n argumentsValue[index] = argumentValue;\n }\n if (Number(pageValue).valueOf() === -1) {\n return true;\n }\n if (!pagingStore || pageValue === undefined) {\n break;\n }\n\n const { page, total_pages } = pagingStore;\n const nextPage = (page || 0) + 1;\n\n if (nextPage && Number(nextPage).valueOf() > Number(total_pages).valueOf()) {\n return true;\n }\n argumentsValue[index] = argumentValue.set('page', nextPage);\n break;\n }\n\n return false;\n }\n\n private processUpdateArgumentsValeConfig(argumentsValue: Array<any>, objectGetDataUpdate: any, config: IGuideAutoUpdateArgumentsValueConfig) {\n if (!config || !objectGetDataUpdate) {\n return undefined;\n }\n if (config.log?.logInputs) {\n console.log('config', config);\n console.log('objectGetDataUpdate', objectGetDataUpdate);\n console.log('argumentsValue', argumentsValue);\n console.log('--------------------------------');\n }\n const { fieldUpdate, fieldGetValue, preprocessor } = config;\n\n if (!fieldUpdate || !fieldGetValue) {\n return undefined;\n }\n\n let value = get(objectGetDataUpdate, fieldGetValue);\n if (config.log?.logGetValue) {\n console.log(`value of objectGetDataUpdate[${fieldGetValue}]: `, value);\n }\n\n if (preprocessor) {\n value = preprocessor(value);\n }\n if (fieldUpdate) {\n let resultOfFieldUpdate = get(argumentsValue, fieldUpdate as any);\n\n if (resultOfFieldUpdate instanceof HttpParams) {\n resultOfFieldUpdate = resultOfFieldUpdate.set(config.subFieldUpdate || 'search', value);\n set(argumentsValue, fieldUpdate as any, resultOfFieldUpdate);\n\n return value;\n }\n if (resultOfFieldUpdate instanceof Array) {\n resultOfFieldUpdate.push(value);\n\n return value;\n }\n if (resultOfFieldUpdate instanceof Object) {\n set(resultOfFieldUpdate, config.subFieldUpdate || 'search', value);\n\n return value;\n }\n set(argumentsValue, fieldUpdate as any, value);\n\n return value;\n }\n\n return value;\n }\n\n public fakeResponsePagingApi(): { paging: IPaging } {\n return {\n paging: {\n page: 0,\n total_pages: 1,\n before: '',\n after: '',\n fake: true,\n },\n };\n }\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpParams } from '@angular/common/http';\nimport { IHttpResponse } from '@libs-ui/interfaces-types';\nimport { UtilsHttpParamsRequest, get, isNil, set, isEqual } from '@libs-ui/utils';\nimport { Observable, delay, lastValueFrom, of, timer } from 'rxjs';\n\n/**\n * Trả về các phương thức để xử lý danh sách dữ liệu mock\n * @param data - Mảng dữ liệu mặc định để mock\n * @param functionGetData - Hàm tùy chọn để lấy dữ liệu động thay vì sử dụng data mặc định\n * @returns Đối tượng chứa các phương thức:\n * - list: Trả về Promise với toàn bộ dữ liệu (có delay 250ms)\n * - listObservable: Trả về Observable với toàn bộ dữ liệu (có delay 250ms)\n * - listPaging: Trả về Promise với dữ liệu đã phân trang dựa trên params (có delay 250ms)\n *\n * @example\n * ```typescript\n * const mockData = [{ id: 1, name: 'Item 1' }, { id: 2, name: 'Item 2' }];\n * const listService = returnListObject(mockData);\n *\n * // Lấy toàn bộ dữ liệu\n * const allData = await listService.list();\n *\n * // Lấy dữ liệu phân trang\n * const params = new UtilsHttpParamsRequest();\n * params.set('page', '1');\n * params.set('per_page', '10');\n * const pagedData = await listService.listPaging(params);\n * ```\n */\n\nexport const returnListObject = (\n data?: Array<any>,\n functionGetData?: () => Array<any>\n): {\n list: <TypeResponse = any>() => Promise<IHttpResponse<TypeResponse>>;\n listObservable: <TypeResponse = any>() => Observable<IHttpResponse<TypeResponse>>;\n listPaging: <TypeResponse = any>(params: UtilsHttpParamsRequest) => Promise<IHttpResponse<TypeResponse>>;\n} => {\n return {\n list: async <TypeResponse = any>(): Promise<IHttpResponse<TypeResponse>> => {\n if (functionGetData) {\n data = functionGetData();\n }\n await lastValueFrom(timer(250));\n return {\n code: 200,\n data: (data as any) || [],\n paging: {},\n };\n },\n listObservable: <TypeResponse = any>(): Observable<IHttpResponse<TypeResponse>> => {\n if (functionGetData) {\n data = functionGetData();\n }\n\n return of({\n code: 200,\n data: (data as any) || [],\n paging: {},\n }).pipe(delay(250));\n },\n listPaging: async <TypeResponse = any>(params: UtilsHttpParamsRequest): Promise<IHttpResponse<TypeResponse>> => {\n if (functionGetData) {\n data = functionGetData();\n }\n const page = parseInt(params.get('page') || '1');\n const per_page = parseInt(params.get('per_page') || '30');\n const result = pagingToList(data as Array<any>, page, per_page);\n\n await lastValueFrom(timer(250));\n\n return result as IHttpResponse<TypeResponse>;\n },\n };\n};\n\n/**\n * Tạo một đối tượng mock detail với các phương thức để lấy bản ghi riêng lẻ theo khóa.\n * Hỗ trợ cả mảng dữ liệu tĩnh và các hàm dữ liệu động.\n *\n * @template TypeResponse - Kiểu dữ liệu phản hồi mong đợi\n * @template TypeParams - Kiểu tham số HTTP (mặc định là any)\n *\n * @param httpParams - Tham số HTTP chứa:\n * - keys: Khóa (hoặc các khóa) cần tìm kiếm\n * - fieldKey: Tên trường để so khớp (mặc định là 'id')\n * - dataResponseOject: Cờ boolean để định dạng đối tượng phản hồi\n * @param data - Mảng dữ liệu tĩnh tùy chọn để tìm kiếm\n * @param functionGetData - Hàm tùy chọn trả về dữ liệu (có thể là Promise hoặc Observable)\n * @param ignoreSplit - Nếu true, coi keys như một giá trị đơn thay vì tách chuỗi\n * @param splitOperator - Toán tử tùy chỉnh để tách keys (mặc định là dấu phẩy)\n *\n * @returns Đối tượng với các phương thức:\n * - detailByData: Tìm kiếm thông qua mảng dữ liệu tĩnh được cung cấp\n * - detailByFunction: Gọi functionGetData để lấy dữ liệu mới, sau đó tìm kiếm\n *\n * @example\n * ```typescript\n * const params = new UtilsHttpParamsRequest({fromObject:{keys:'1',fieldKey:'id'}});\n * const mockDetail = returnDetailObject<User>(params, userData);\n * const user = await mockDetail.detailByData();\n * ```\n */\n\nexport const returnDetailObject = <TypeResponse, TypeParams = any>(\n httpParams: UtilsHttpParamsRequest<TypeParams> | HttpParams,\n data?: Array<any>,\n functionGetData?: () => Promise<IHttpResponse<TypeResponse>> | Observable<IHttpResponse<TypeResponse>>,\n ignoreSplit?: boolean,\n splitOperator?: string\n): {\n detailByData: <TypeResponse = any>(keys?: any) => Promise<IHttpResponse<TypeResponse>>;\n detailByFunction: <TypeResponse = any>(keys?: any) => Promise<IHttpResponse<TypeResponse>>;\n} => {\n const keysPrams: any = httpParams.get('keys');\n const fieldKey: string = httpParams.get('fieldKey') || 'id';\n const dataResponseOject: any = httpParams.get('dataResponseOject');\n\n return {\n detailByData: async <TypeResponse>(keys?: any): Promise<IHttpResponse<TypeResponse>> => {\n return filterData<TypeResponse>(fieldKey, data, keys ?? keysPrams, dataResponseOject, ignoreSplit, splitOperator);\n },\n\n detailByFunction: async <TypeResponse>(keys?: any): Promise<IHttpResponse<TypeResponse>> => {\n if (!functionGetData) {\n return await filterData<TypeResponse>(fieldKey, undefined, undefined, dataResponseOject, ignoreSplit, splitOperator);\n }\n\n let dataResult: any = functionGetData();\n\n try {\n if (dataResult['subscribe']) {\n dataResult = await lastValueFrom(dataResult);\n }\n if (dataResult['then']) {\n dataResult = await dataResult;\n }\n } catch (_) {\n dataResult = { data: [] };\n }\n\n data = dataResult.data;\n\n return await filterData<TypeResponse>(fieldKey, data, keys || keysPrams, dataResponseOject, ignoreSplit, splitOperator);\n },\n };\n};\n\nconst filterData = <TypeResponse>(fieldKey: string, data?: Array<any>, keys?: any, dataResponseOject?: boolean, ignoreSplit?: boolean, splitOperator?: string): IHttpResponse<TypeResponse> => {\n if (!data || typeof data !== 'object' || isNil(keys) || keys === '') {\n return {\n code: 200,\n data: undefined,\n paging: {},\n };\n }\n\n data = data || [];\n\n if (!(data instanceof Array)) {\n data = [data];\n }\n const result: any = [];\n\n if (!ignoreSplit && typeof keys === 'string') {\n keys = keys.split(splitOperator || ',');\n }\n\n if (typeof keys === 'number' || typeof keys === 'boolean' || (typeof keys === 'string' && ignoreSplit)) {\n keys = [keys];\n }\n\n keys.forEach((key: string) => {\n const resultFilter = data?.filter((elData: { [key: string]: any }) => isEqual(get(elData, fieldKey), key, { ignoreExactlyDataType: true }));\n\n if (resultFilter && resultFilter.length) {\n result.push(...resultFilter);\n }\n });\n\n return {\n code: 200,\n data: result.length ? (dataResponseOject ? result[0] : result) : undefined,\n paging: {},\n };\n};\n\nconst per_page = 20;\nconst total_items = per_page * 150 + 15;\n\nexport const getConfigListDataDemo = (httpParamsDetail: UtilsHttpParamsRequest<any> = new UtilsHttpParamsRequest(), objectData?: Record<string, string>, functionBuildObject?: (numIncrement: string) => Record<string, string>) => {\n if (!objectData) {\n objectData = {\n id: '',\n name: 'item positon index ',\n };\n }\n\n const data = [...Array(total_items).keys()].map((_, index) => {\n if (functionBuildObject) {\n return functionBuildObject(`${+index + 1}`);\n }\n const obj: Record<string, string> = {};\n Object.keys(objectData).forEach((key) => {\n set(obj, key, `${objectData[key]}${+index + 1}`);\n });\n return obj;\n });\n\n const listService = returnListObject(data);\n const detailService = returnDetailObject(httpParamsDetail, data, undefined, false, ';');\n return {\n list: listService.listPaging,\n detailByData: detailService.detailByData,\n };\n};\n\n/**\n * Hàm phân trang dữ liệu từ một mảng\n * @param data - Mảng dữ liệu cần phân trang\n * @param page - Số trang hiện tại (bắt đầu từ 1)\n * @param per_page - Số lượng item trên mỗi trang\n * @returns Đối tượng chứa dữ liệu đã phân trang và thông tin phân trang\n */\nexport const pagingToList = (data: Array<any>, page: number, per_page: number) => {\n if (!data || !Array.isArray(data)) {\n return {\n code: 200,\n data: [],\n paging: {\n page: page,\n per_page: per_page,\n total_items: 0,\n total_pages: 0,\n },\n };\n }\n const start = (page - 1) * per_page;\n const end = start + per_page;\n const total_pages = Math.ceil(data.length / per_page);\n const dataByPage = data.slice(start, end);\n return {\n code: 200,\n data: dataByPage,\n paging: {\n page: page > total_pages ? total_pages : page,\n per_page: per_page,\n total_items: data.length,\n total_pages: total_pages,\n },\n };\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { Type } from '@angular/core';\nimport { IGuideAutoUpdateArgumentsValue } from './guild-auto-update-arguments-value.interface';\n\nexport interface IHttpRequestConfig<T = any> {\n serviceClass?: Type<T>; // tên class của component gọi http request\n objectInstance?: T; // là 1 object không được inject trong httpRequest; được sử dụng để lấy data từ 1 đối tượng không phải là service inject\n functionName?: keyof T; // tên hàm muốn gọi trong service\n argumentsValue: Array<any>; // chứa dữ liệu của params truyền vào, mảng có kểu dữ liệu không cần giống nhau vd: hàm function(search:string,age:number,page:Object)={...} thì serviceSpecificParams = ['param',16,{page:1,page:per_page:25}]\n cacheType?: 'service' | 'local-store';\n keyCache?: string; // sử dụng nếu sử dụng cache. khi tạo bộ config sử dụng đối tượng uuid để lấy một id set vào biến này. và biến này sẽ ko thay đổi trong quá trình sử dụng\n timeCache?: number; // đơn vị phút\n clearCache?: boolean;\n guideAutoUpdateArgumentsValue?: IGuideAutoUpdateArgumentsValue; // khai báo không sử dụng cho HttpRequestService. Dùng cho cá component muốn lấy thông tin update arguments để load more khi scroll bottom. Ví dụ như MoLibShareComponentsListViewTemplatesComponentAbstract\n convertResponseData?: (response: any) => any;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"libs-ui-services-http-request.mjs","sources":["../../../../../libs-ui/services/http-request/src/http-request.service.ts","../../../../../libs-ui/services/http-request/src/api-mockup.ts","../../../../../libs-ui/services/http-request/src/interfaces/http-request-config.interface.ts","../../../../../libs-ui/services/http-request/src/libs-ui-services-http-request.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpParams } from '@angular/common/http';\nimport { inject, Injectable, Injector } from '@angular/core';\nimport { IPaging } from '@libs-ui/interfaces-types';\nimport { UtilsCache, get, getKeyCacheByArrayObject, isEmpty, set } from '@libs-ui/utils';\nimport { lastValueFrom } from 'rxjs';\nimport { IGuideAutoUpdateArgumentsValue, IGuideAutoUpdateArgumentsValueConfig, IHttpRequestConfig } from './interfaces/index';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LibsUiHttpRequestService {\n private injector = inject(Injector);\n /** Chứa dữ liệu cache memory */\n private serviceStore: Map<string, any> = new Map();\n\n public async callApi<T = any>(httpRequestConfig: IHttpRequestConfig): Promise<T> {\n if (!httpRequestConfig || !httpRequestConfig.functionName) {\n throw 'http request config not exactly httpRequestConfig';\n }\n const serviceOther = get<unknown>(httpRequestConfig, 'serviceOther'); // TODO: sẽ xóa khi migrate hết component\n\n if (serviceOther) {\n set(httpRequestConfig, 'objectInstance', serviceOther);\n }\n\n const { objectInstance, keyCache, functionName, argumentsValue, serviceClass } = httpRequestConfig;\n\n if (!objectInstance && !serviceClass) {\n throw `http request config not exactly objectInstance or serviceName`;\n }\n const instance: any = objectInstance || this.injector.get<T>(serviceClass as any);\n if (!instance) {\n throw `http request notfound service instance`;\n }\n const methodInstance = instance[functionName];\n\n if (!methodInstance) {\n throw `http request config notfound methodInstance name: ${String(functionName)}`;\n }\n const keyCacheMD5: string = getKeyCacheByArrayObject(keyCache || '', argumentsValue);\n const cacheData = await this.getCacheData(httpRequestConfig, keyCacheMD5);\n\n if (cacheData) {\n return Promise.resolve(cacheData);\n }\n\n let callResponse = methodInstance.apply(instance, argumentsValue);\n if (!callResponse.then) {\n callResponse = lastValueFrom(callResponse);\n }\n\n const res = await callResponse;\n\n return await this.setCacheData(res, httpRequestConfig, keyCacheMD5);\n }\n\n private async getCacheData(httpRequestConfig: IHttpRequestConfig, keyCache: string) {\n const { cacheType, convertResponseData } = httpRequestConfig;\n\n if (!cacheType || !keyCache) {\n return undefined;\n }\n if (cacheType === 'service') {\n const data = this.serviceStore.get(keyCache);\n\n return data ? (convertResponseData ? convertResponseData(data) : data) : data;\n }\n const data = await UtilsCache.GetAsync(keyCache, undefined, true);\n\n return data ? (convertResponseData ? convertResponseData(data) : data) : data;\n }\n\n private async setCacheData(data: any, httpRequestConfig: IHttpRequestConfig, keyCache: string) {\n const { cacheType, clearCache, convertResponseData } = httpRequestConfig;\n\n if (!cacheType || !keyCache) {\n return convertResponseData ? convertResponseData(data) : data;\n }\n if (clearCache === true) {\n this.clearCache(cacheType, keyCache);\n }\n if (cacheType === 'service') {\n this.serviceStore.set(keyCache, data);\n\n return convertResponseData ? convertResponseData(data) : data;\n }\n await UtilsCache.SetAsync(keyCache, data, (httpRequestConfig.timeCache || 5) * 60, true);\n\n return convertResponseData ? convertResponseData(data) : data;\n }\n\n private clearCache(cacheType: 'service' | 'local-store', keyCache: string) {\n if (cacheType === 'service') {\n this.serviceStore.delete(keyCache);\n\n return;\n }\n UtilsCache.ClearAsync(keyCache, true);\n }\n\n /**\n * @return trả về trạng thái đã load hết item chưa (ví dụ: dựa vào tham số này để quyết định có tiếp tục gọi api khi scroll ko) .\n */\n public updateArguments(\n argumentsValue: Array<any>,\n objectGetDataUpdate: Record<string, any>,\n pagingStore: IPaging,\n keySearch: string,\n searchOnline: boolean,\n loadedLastItem: boolean,\n guideAutoUpdateArgumentsValue?: IGuideAutoUpdateArgumentsValue\n ): boolean {\n if (!argumentsValue || !(argumentsValue instanceof Array) || loadedLastItem) {\n return true;\n }\n\n if (!guideAutoUpdateArgumentsValue) {\n return this.updateArgumentsDefault(argumentsValue, true, pagingStore, keySearch, searchOnline);\n }\n const { paging, search, other, detailById, sortOrderType, sortOrderBy } = guideAutoUpdateArgumentsValue;\n\n if (search) {\n search.fieldGetValue = 'keySearch';\n this.processUpdateArgumentsValeConfig(argumentsValue, { keySearch }, search);\n }\n if (objectGetDataUpdate?.['storeParamsCallApi'] && typeof objectGetDataUpdate?.['storeParamsCallApi'] === 'object' && !(objectGetDataUpdate?.['storeParamsCallApi'] as any).instanceSort) {\n objectGetDataUpdate['storeParamsCallApi'] = { ...objectGetDataUpdate['storeParamsCallApi'], instanceSort: {} };\n }\n if (sortOrderBy) {\n this.processUpdateArgumentsValeConfig(argumentsValue, objectGetDataUpdate, sortOrderBy);\n }\n if (sortOrderType) {\n this.processUpdateArgumentsValeConfig(argumentsValue, objectGetDataUpdate, sortOrderType);\n }\n if (other && other.length) {\n other.forEach((config) => this.processUpdateArgumentsValeConfig(argumentsValue, objectGetDataUpdate, config));\n }\n if (detailById) {\n detailById.fieldGetValue = detailById.fieldGetValue || detailById.fieldGetValue.trim() || 'key';\n this.processUpdateArgumentsValeConfig(argumentsValue, objectGetDataUpdate, detailById);\n }\n\n if (isEmpty(paging)) {\n return this.updateArgumentsDefault(argumentsValue, false, pagingStore || this.fakeResponsePagingApi()['paging'], keySearch, searchOnline);\n }\n const { page, before, after } = paging;\n\n if (page && objectGetDataUpdate) {\n page.preprocessor = (value: number): number => {\n return ++value;\n };\n const valuePage = +this.processUpdateArgumentsValeConfig(argumentsValue, objectGetDataUpdate, page);\n const valueLastPage = +get(objectGetDataUpdate as any, 'paging.total_pages');\n\n if ((valuePage && Number(valuePage).valueOf() > Number(valueLastPage).valueOf()) || valueLastPage === 0) {\n return true;\n }\n }\n if (before && objectGetDataUpdate && !this.processUpdateArgumentsValeConfig(argumentsValue, objectGetDataUpdate, before) && !get(objectGetDataUpdate, 'paging.fake')) {\n set(objectGetDataUpdate, 'paging.fake', false);\n\n return true;\n }\n if (after && objectGetDataUpdate && !this.processUpdateArgumentsValeConfig(argumentsValue, objectGetDataUpdate, after) && !get(objectGetDataUpdate, 'paging.fake')) {\n set(objectGetDataUpdate, 'paging.fake', false);\n\n return true;\n }\n\n if (!argumentsValue || !argumentsValue.length) {\n return true;\n }\n\n return false;\n }\n\n private updateArgumentsDefault(argumentsValue: Array<any>, updateSearch: boolean, pagingStore: IPaging, keySearch: string, searchOnline: boolean) {\n if (!argumentsValue || !argumentsValue.length) {\n return true;\n }\n\n for (const index in argumentsValue) {\n let argumentValue = argumentsValue[index];\n\n if (!(argumentValue instanceof HttpParams)) {\n continue;\n }\n const pageValue = argumentValue.get('page');\n\n if (searchOnline && updateSearch) {\n argumentValue = argumentValue.set('search', keySearch);\n argumentsValue[index] = argumentValue;\n }\n if (argumentValue.has('before')) {\n argumentValue = argumentValue.set('before', pagingStore?.before);\n argumentsValue[index] = argumentValue;\n }\n if (argumentValue.has('after')) {\n argumentValue = argumentValue.set('after', pagingStore?.after);\n argumentsValue[index] = argumentValue;\n }\n if (Number(pageValue).valueOf() === -1) {\n return true;\n }\n if (!pagingStore || pageValue === undefined) {\n break;\n }\n\n const { page, total_pages } = pagingStore;\n const nextPage = (page || 0) + 1;\n\n if (nextPage && Number(nextPage).valueOf() > Number(total_pages).valueOf()) {\n return true;\n }\n argumentsValue[index] = argumentValue.set('page', nextPage);\n break;\n }\n\n return false;\n }\n\n private processUpdateArgumentsValeConfig(argumentsValue: Array<any>, objectGetDataUpdate: any, config: IGuideAutoUpdateArgumentsValueConfig) {\n if (!config || !objectGetDataUpdate) {\n return undefined;\n }\n if (config.log?.logInputs) {\n console.log('config', config);\n console.log('objectGetDataUpdate', objectGetDataUpdate);\n console.log('argumentsValue', argumentsValue);\n console.log('--------------------------------');\n }\n const { fieldUpdate, fieldGetValue, preprocessor } = config;\n\n if (!fieldUpdate || !fieldGetValue) {\n return undefined;\n }\n\n let value = get(objectGetDataUpdate, fieldGetValue);\n if (config.log?.logGetValue) {\n console.log(`value of objectGetDataUpdate[${fieldGetValue}]: `, value);\n }\n\n if (preprocessor) {\n value = preprocessor(value);\n }\n if (fieldUpdate) {\n let resultOfFieldUpdate = get(argumentsValue, fieldUpdate as any);\n\n if (resultOfFieldUpdate instanceof HttpParams) {\n resultOfFieldUpdate = resultOfFieldUpdate.set(config.subFieldUpdate || 'search', value);\n set(argumentsValue, fieldUpdate as any, resultOfFieldUpdate);\n\n return value;\n }\n if (resultOfFieldUpdate instanceof Array) {\n resultOfFieldUpdate.push(value);\n\n return value;\n }\n if (resultOfFieldUpdate instanceof Object) {\n set(resultOfFieldUpdate, config.subFieldUpdate || 'search', value);\n\n return value;\n }\n set(argumentsValue, fieldUpdate as any, value);\n\n return value;\n }\n\n return value;\n }\n\n public fakeResponsePagingApi(): { paging: IPaging } {\n return {\n paging: {\n page: 0,\n total_pages: 1,\n before: '',\n after: '',\n fake: true,\n },\n };\n }\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpParams } from '@angular/common/http';\nimport { IHttpResponse } from '@libs-ui/interfaces-types';\nimport { UtilsHttpParamsRequest, get, isNil, set, isEqual } from '@libs-ui/utils';\nimport { Observable, delay, lastValueFrom, of, timer } from 'rxjs';\n\n/**\n * Trả về các phương thức để xử lý danh sách dữ liệu mock\n * @param data - Mảng dữ liệu mặc định để mock\n * @param functionGetData - Hàm tùy chọn để lấy dữ liệu động thay vì sử dụng data mặc định\n * @returns Đối tượng chứa các phương thức:\n * - list: Trả về Promise với toàn bộ dữ liệu (có delay 250ms)\n * - listObservable: Trả về Observable với toàn bộ dữ liệu (có delay 250ms)\n * - listPaging: Trả về Promise với dữ liệu đã phân trang dựa trên params (có delay 250ms)\n *\n * @example\n * ```typescript\n * const mockData = [{ id: 1, name: 'Item 1' }, { id: 2, name: 'Item 2' }];\n * const listService = returnListObject(mockData);\n *\n * // Lấy toàn bộ dữ liệu\n * const allData = await listService.list();\n *\n * // Lấy dữ liệu phân trang\n * const params = new UtilsHttpParamsRequest();\n * params.set('page', '1');\n * params.set('per_page', '10');\n * const pagedData = await listService.listPaging(params);\n * ```\n */\n\nexport const returnListObject = (\n data?: Array<any>,\n functionGetData?: (params?: UtilsHttpParamsRequest) => Array<any>,\n options?: {\n delay?: number;\n }\n): {\n list: <TypeResponse = any>(params?: UtilsHttpParamsRequest) => Promise<IHttpResponse<TypeResponse>>;\n listObservable: <TypeResponse = any>(params?: UtilsHttpParamsRequest) => Observable<IHttpResponse<TypeResponse>>;\n listPaging: <TypeResponse = any>(params: UtilsHttpParamsRequest) => Promise<IHttpResponse<TypeResponse>>;\n} => {\n return {\n list: async <TypeResponse = any>(params?: UtilsHttpParamsRequest): Promise<IHttpResponse<TypeResponse>> => {\n if (functionGetData) {\n data = functionGetData(params);\n }\n await lastValueFrom(timer(options?.delay || 0));\n return {\n code: 200,\n data: (data as any) || [],\n paging: {},\n };\n },\n listObservable: <TypeResponse = any>(params?: UtilsHttpParamsRequest): Observable<IHttpResponse<TypeResponse>> => {\n if (functionGetData) {\n data = functionGetData(params);\n }\n\n return of({\n code: 200,\n data: (data as any) || [],\n paging: {},\n }).pipe(delay(options?.delay || 0));\n },\n listPaging: async <TypeResponse = any>(params: UtilsHttpParamsRequest): Promise<IHttpResponse<TypeResponse>> => {\n if (functionGetData) {\n data = functionGetData(params);\n }\n const page = parseInt(params.get('page') || '1');\n const per_page = parseInt(params.get('per_page') || '30');\n const result = pagingToList(data as Array<any>, page, per_page);\n\n await lastValueFrom(timer(options?.delay || 0));\n\n return result as IHttpResponse<TypeResponse>;\n },\n };\n};\n\n/**\n * Tạo một đối tượng mock detail với các phương thức để lấy bản ghi riêng lẻ theo khóa.\n * Hỗ trợ cả mảng dữ liệu tĩnh và các hàm dữ liệu động.\n *\n * @template TypeResponse - Kiểu dữ liệu phản hồi mong đợi\n * @template TypeParams - Kiểu tham số HTTP (mặc định là any)\n *\n * @param httpParams - Tham số HTTP chứa:\n * - keys: Khóa (hoặc các khóa) cần tìm kiếm\n * - fieldKey: Tên trường để so khớp (mặc định là 'id')\n * - dataResponseOject: Cờ boolean để định dạng đối tượng phản hồi\n * @param data - Mảng dữ liệu tĩnh tùy chọn để tìm kiếm\n * @param functionGetData - Hàm tùy chọn trả về dữ liệu (có thể là Promise hoặc Observable)\n * @param ignoreSplit - Nếu true, coi keys như một giá trị đơn thay vì tách chuỗi\n * @param splitOperator - Toán tử tùy chỉnh để tách keys (mặc định là dấu phẩy)\n *\n * @returns Đối tượng với các phương thức:\n * - detailByData: Tìm kiếm thông qua mảng dữ liệu tĩnh được cung cấp\n * - detailByFunction: Gọi functionGetData để lấy dữ liệu mới, sau đó tìm kiếm\n *\n * @example\n * ```typescript\n * const params = new UtilsHttpParamsRequest({fromObject:{keys:'1',fieldKey:'id'}});\n * const mockDetail = returnDetailObject<User>(params, userData);\n * const user = await mockDetail.detailByData();\n * ```\n */\n\nexport const returnDetailObject = <TypeResponse, TypeParams = any>(\n httpParams: UtilsHttpParamsRequest<TypeParams> | HttpParams,\n data?: Array<any>,\n functionGetData?: () => Promise<IHttpResponse<TypeResponse>> | Observable<IHttpResponse<TypeResponse>>,\n ignoreSplit?: boolean,\n splitOperator?: string\n): {\n detailByData: <TypeResponse = any>(keys?: any) => Promise<IHttpResponse<TypeResponse>>;\n detailByFunction: <TypeResponse = any>(keys?: any) => Promise<IHttpResponse<TypeResponse>>;\n} => {\n const keysPrams: any = httpParams.get('keys');\n const fieldKey: string = httpParams.get('fieldKey') || 'id';\n const dataResponseOject: any = httpParams.get('dataResponseOject');\n\n return {\n detailByData: async <TypeResponse>(keys?: any): Promise<IHttpResponse<TypeResponse>> => {\n return filterData<TypeResponse>(fieldKey, data, keys ?? keysPrams, dataResponseOject, ignoreSplit, splitOperator);\n },\n\n detailByFunction: async <TypeResponse>(keys?: any): Promise<IHttpResponse<TypeResponse>> => {\n if (!functionGetData) {\n return await filterData<TypeResponse>(fieldKey, undefined, undefined, dataResponseOject, ignoreSplit, splitOperator);\n }\n\n let dataResult: any = functionGetData();\n\n try {\n if (dataResult['subscribe']) {\n dataResult = await lastValueFrom(dataResult);\n }\n if (dataResult['then']) {\n dataResult = await dataResult;\n }\n } catch (_) {\n dataResult = { data: [] };\n }\n\n data = dataResult.data;\n\n return await filterData<TypeResponse>(fieldKey, data, keys || keysPrams, dataResponseOject, ignoreSplit, splitOperator);\n },\n };\n};\n\nconst filterData = <TypeResponse>(fieldKey: string, data?: Array<any>, keys?: any, dataResponseOject?: boolean, ignoreSplit?: boolean, splitOperator?: string): IHttpResponse<TypeResponse> => {\n if (!data || typeof data !== 'object' || isNil(keys) || keys === '') {\n return {\n code: 200,\n data: undefined,\n paging: {},\n };\n }\n\n data = data || [];\n\n if (!(data instanceof Array)) {\n data = [data];\n }\n const result: any = [];\n\n if (!ignoreSplit && typeof keys === 'string') {\n keys = keys.split(splitOperator || ',');\n }\n\n if (typeof keys === 'number' || typeof keys === 'boolean' || (typeof keys === 'string' && ignoreSplit)) {\n keys = [keys];\n }\n\n keys.forEach((key: string) => {\n const resultFilter = data?.filter((elData: { [key: string]: any }) => isEqual(get(elData, fieldKey), key, { ignoreExactlyDataType: true }));\n\n if (resultFilter && resultFilter.length) {\n result.push(...resultFilter);\n }\n });\n\n return {\n code: 200,\n data: result.length ? (dataResponseOject ? result[0] : result) : undefined,\n paging: {},\n };\n};\n\nconst per_page = 20;\nconst total_items = per_page * 150 + 15;\n\nexport const getConfigListDataDemo = (httpParamsDetail: UtilsHttpParamsRequest<any> = new UtilsHttpParamsRequest(), objectData?: Record<string, string>, functionBuildObject?: (numIncrement: string) => Record<string, string>) => {\n if (!objectData) {\n objectData = {\n id: '',\n name: 'item positon index ',\n };\n }\n\n const data = [...Array(total_items).keys()].map((_, index) => {\n if (functionBuildObject) {\n return functionBuildObject(`${+index + 1}`);\n }\n const obj: Record<string, string> = {};\n Object.keys(objectData).forEach((key) => {\n set(obj, key, `${objectData[key]}${+index + 1}`);\n });\n return obj;\n });\n\n const listService = returnListObject(data);\n const detailService = returnDetailObject(httpParamsDetail, data, undefined, false, ';');\n return {\n list: listService.listPaging,\n detailByData: detailService.detailByData,\n };\n};\n\n/**\n * Hàm phân trang dữ liệu từ một mảng\n * @param data - Mảng dữ liệu cần phân trang\n * @param page - Số trang hiện tại (bắt đầu từ 1)\n * @param per_page - Số lượng item trên mỗi trang\n * @returns Đối tượng chứa dữ liệu đã phân trang và thông tin phân trang\n */\nexport const pagingToList = (data: Array<any>, page: number, per_page: number) => {\n if (!data || !Array.isArray(data)) {\n return {\n code: 200,\n data: [],\n paging: {\n page: page,\n per_page: per_page,\n total_items: 0,\n total_pages: 0,\n },\n };\n }\n const start = (page - 1) * per_page;\n const end = start + per_page;\n const total_pages = Math.ceil(data.length / per_page);\n const dataByPage = data.slice(start, end);\n return {\n code: 200,\n data: dataByPage,\n paging: {\n page: page > total_pages ? total_pages : page,\n per_page: per_page,\n total_items: data.length,\n total_pages: total_pages,\n },\n };\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { Type } from '@angular/core';\nimport { IGuideAutoUpdateArgumentsValue } from './guild-auto-update-arguments-value.interface';\n\nexport interface IHttpRequestConfig<T = any> {\n serviceClass?: Type<T>; // tên class của component gọi http request\n objectInstance?: T; // là 1 object không được inject trong httpRequest; được sử dụng để lấy data từ 1 đối tượng không phải là service inject\n functionName?: keyof T; // tên hàm muốn gọi trong service\n argumentsValue: Array<any>; // chứa dữ liệu của params truyền vào, mảng có kểu dữ liệu không cần giống nhau vd: hàm function(search:string,age:number,page:Object)={...} thì serviceSpecificParams = ['param',16,{page:1,page:per_page:25}]\n cacheType?: 'service' | 'local-store';\n keyCache?: string; // sử dụng nếu sử dụng cache. khi tạo bộ config sử dụng đối tượng uuid để lấy một id set vào biến này. và biến này sẽ ko thay đổi trong quá trình sử dụng\n timeCache?: number; // đơn vị phút\n clearCache?: boolean;\n guideAutoUpdateArgumentsValue?: IGuideAutoUpdateArgumentsValue; // khai báo không sử dụng cho HttpRequestService. Dùng cho cá component muốn lấy thông tin update arguments để load more khi scroll bottom. Ví dụ như MoLibShareComponentsListViewTemplatesComponentAbstract\n convertResponseData?: (response: any) => any;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libs-ui/services-http-request",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.329-0",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": ">=18.0.0",
|
|
6
6
|
"@angular/core": ">=18.0.0",
|
|
7
|
-
"@libs-ui/interfaces-types": "0.2.
|
|
8
|
-
"@libs-ui/utils": "0.2.
|
|
7
|
+
"@libs-ui/interfaces-types": "0.2.329-0",
|
|
8
|
+
"@libs-ui/utils": "0.2.329-0",
|
|
9
9
|
"rxjs": "~7.8.0"
|
|
10
10
|
},
|
|
11
11
|
"sideEffects": false,
|