@neovici/cosmoz-omnitable 18.3.0 → 18.4.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/dist/lib/use-hash-state.d.ts +17 -3
- package/dist/lib/use-hash-state.d.ts.map +1 -1
- package/dist/lib/use-hash-state.js +24 -12
- package/dist/lib/use-hash-state.js.map +1 -1
- package/dist/lib/use-processed-items.d.ts +2 -2
- package/dist/lib/use-sort-and-group-options.d.ts +4 -4
- package/package.json +2 -2
|
@@ -1,4 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
type SingleCodec<T> = (value: string) => T;
|
|
2
|
+
type MultiCodec<T> = (entry: [string, string]) => [string, T];
|
|
3
|
+
type SingleHashStateOpts<T> = {
|
|
4
|
+
suffix?: string;
|
|
5
|
+
read?: SingleCodec<T>;
|
|
6
|
+
write?: (value: T) => string;
|
|
7
|
+
multi?: false;
|
|
8
|
+
};
|
|
9
|
+
type MultiHashStateOpts<T extends Record<string, unknown>> = {
|
|
10
|
+
suffix?: string;
|
|
11
|
+
read?: MultiCodec<T[keyof T]>;
|
|
12
|
+
write?: (entry: [string, T[keyof T]]) => [string, string | undefined];
|
|
13
|
+
multi: true;
|
|
14
|
+
};
|
|
15
|
+
export declare function useHashState<T>(initial: T, param: string | null | undefined, opts?: SingleHashStateOpts<T>): [T, (value: T | ((prev: T) => T)) => void];
|
|
16
|
+
export declare function useHashState<T extends Record<string, unknown>>(initial: T, param: string | null | undefined, opts: MultiHashStateOpts<T>): [T, (value: T | ((prev: T) => T)) => void];
|
|
17
|
+
export {};
|
|
4
18
|
//# sourceMappingURL=use-hash-state.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-hash-state.d.ts","sourceRoot":"","sources":["../../src/lib/use-hash-state.
|
|
1
|
+
{"version":3,"file":"use-hash-state.d.ts","sourceRoot":"","sources":["../../src/lib/use-hash-state.ts"],"names":[],"mappings":"AASA,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,CAAC;AAC3C,KAAK,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAE9D,KAAK,mBAAmB,CAAC,CAAC,IAAI;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACtB,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC;IAC7B,KAAK,CAAC,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,KAAK,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9B,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACtE,KAAK,EAAE,IAAI,CAAC;CACZ,CAAC;AA6CF,wBAAgB,YAAY,CAAC,CAAC,EAC7B,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAChC,IAAI,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC3B,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;AAE9C,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7D,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAChC,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,GACzB,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { useCallback, useEffect, useMemo, useState } from '@pionjs/pion';
|
|
2
1
|
import { navigate } from '@neovici/cosmoz-router';
|
|
3
2
|
import { identity, invoke } from '@neovici/cosmoz-utils/function';
|
|
4
3
|
import { hashUrl, multiParse, singleParse, } from '@neovici/cosmoz-utils/location';
|
|
4
|
+
import { useCallback, useEffect, useMemo, useState } from '@pionjs/pion';
|
|
5
5
|
const makeLinker = (parameterize) => (hashParam, value, codec = identity) => {
|
|
6
6
|
const url = hashUrl(), searchParams = new URLSearchParams(url.hash.replace('#', ''));
|
|
7
|
-
// TODO: make parameterize pure
|
|
8
7
|
parameterize(hashParam, value, codec, searchParams);
|
|
9
8
|
return ('#!' +
|
|
10
9
|
Object.assign(url, { hash: searchParams }).href.replace(location.origin, ''));
|
|
@@ -12,18 +11,31 @@ const makeLinker = (parameterize) => (hashParam, value, codec = identity) => {
|
|
|
12
11
|
? searchParams.set(hashParam, codec(value))
|
|
13
12
|
: searchParams.delete(hashParam)), multiLink = makeLinker((hashParam, value, codec, searchParams) => Object.entries(value)
|
|
14
13
|
.map(codec)
|
|
15
|
-
.forEach(([key,
|
|
16
|
-
? searchParams.set(hashParam + key,
|
|
14
|
+
.forEach(([key, val]) => !isEmpty(val)
|
|
15
|
+
? searchParams.set(hashParam + key, val)
|
|
17
16
|
: searchParams.delete(hashParam + key)));
|
|
18
|
-
export
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
export function useHashState(initial, param, { suffix = '', read, write, multi, } = {}) {
|
|
18
|
+
const link = multi ? multiLink : singleLink, hashWasExplicit = useMemo(() => {
|
|
19
|
+
if (param == null)
|
|
20
|
+
return false;
|
|
21
|
+
if (multi) {
|
|
22
|
+
return (multiParse(param + suffix, read) !=
|
|
23
|
+
null);
|
|
24
|
+
}
|
|
25
|
+
return (singleParse(param + suffix, read) != null);
|
|
26
|
+
}, []), [state, _setState] = useState(() => {
|
|
27
|
+
if (param == null)
|
|
28
|
+
return initial;
|
|
29
|
+
if (multi) {
|
|
30
|
+
const result = multiParse(param + suffix, read);
|
|
31
|
+
return (result ?? initial);
|
|
32
|
+
}
|
|
33
|
+
const result = singleParse(param + suffix, read);
|
|
34
|
+
return (result ?? initial);
|
|
35
|
+
}), setState = useCallback((state) => _setState((oldState) => {
|
|
24
36
|
const newState = invoke(state, oldState);
|
|
25
37
|
if (param != null) {
|
|
26
|
-
navigate(link(param + suffix, newState, write), null, {
|
|
38
|
+
navigate(link(param + suffix, newState, (write ?? identity)), null, {
|
|
27
39
|
notify: false,
|
|
28
40
|
});
|
|
29
41
|
}
|
|
@@ -42,5 +54,5 @@ export const useHashState = (initial, param, { suffix = '', read, write, multi }
|
|
|
42
54
|
}
|
|
43
55
|
}, [initial, param, hashWasExplicit, setState]);
|
|
44
56
|
return [state, setState];
|
|
45
|
-
}
|
|
57
|
+
}
|
|
46
58
|
//# sourceMappingURL=use-hash-state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-hash-state.js","sourceRoot":"","sources":["../../src/lib/use-hash-state.
|
|
1
|
+
{"version":3,"file":"use-hash-state.js","sourceRoot":"","sources":["../../src/lib/use-hash-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,10 +8,10 @@ export function useProcessedItems({ data, columns, hashParam, sortAndGroupOption
|
|
|
8
8
|
}): {
|
|
9
9
|
processedItems: any;
|
|
10
10
|
visibleData: any[];
|
|
11
|
-
filters: any;
|
|
11
|
+
filters: [any, any];
|
|
12
12
|
filterFunctions: {
|
|
13
13
|
[k: string]: any;
|
|
14
14
|
};
|
|
15
|
-
setFilterState: (name: any, state: any) =>
|
|
15
|
+
setFilterState: (name: any, state: any) => void;
|
|
16
16
|
};
|
|
17
17
|
//# sourceMappingURL=use-processed-items.d.ts.map
|
|
@@ -2,11 +2,11 @@ export function useSortAndGroupOptions(columns: any, hashParam: any, settings: a
|
|
|
2
2
|
sortAndGroup: {
|
|
3
3
|
groupOn: any;
|
|
4
4
|
setGroupOn: (value: any) => void;
|
|
5
|
-
groupOnDescending:
|
|
5
|
+
groupOnDescending: boolean | undefined;
|
|
6
6
|
setGroupOnDescending: (value: any) => void;
|
|
7
7
|
sortOn: any;
|
|
8
8
|
setSortOn: (value: any) => void;
|
|
9
|
-
descending:
|
|
9
|
+
descending: boolean | undefined;
|
|
10
10
|
setDescending: (value: any) => void;
|
|
11
11
|
columns: any;
|
|
12
12
|
};
|
|
@@ -14,11 +14,11 @@ export function useSortAndGroupOptions(columns: any, hashParam: any, settings: a
|
|
|
14
14
|
sortOnColumn: any;
|
|
15
15
|
groupOn: any;
|
|
16
16
|
setGroupOn: (value: any) => void;
|
|
17
|
-
groupOnDescending:
|
|
17
|
+
groupOnDescending: boolean | undefined;
|
|
18
18
|
setGroupOnDescending: (value: any) => void;
|
|
19
19
|
sortOn: any;
|
|
20
20
|
setSortOn: (value: any) => void;
|
|
21
|
-
descending:
|
|
21
|
+
descending: boolean | undefined;
|
|
22
22
|
setDescending: (value: any) => void;
|
|
23
23
|
columns: any;
|
|
24
24
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neovici/cosmoz-omnitable",
|
|
3
|
-
"version": "18.
|
|
3
|
+
"version": "18.4.0",
|
|
4
4
|
"description": "[](https://travis-ci.org/Neovici/cosmoz-omnitable)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"web-components"
|
|
@@ -117,7 +117,7 @@
|
|
|
117
117
|
"@neovici/cosmoz-input": "^5.0.0",
|
|
118
118
|
"@neovici/cosmoz-router": "^11.0.0",
|
|
119
119
|
"@neovici/cosmoz-spinner": "^1.0.1",
|
|
120
|
-
"@neovici/cosmoz-utils": "^6.
|
|
120
|
+
"@neovici/cosmoz-utils": "^6.20.2",
|
|
121
121
|
"@neovici/nullxlsx": "^3.0.0",
|
|
122
122
|
"@pionjs/pion": "^2.0.0",
|
|
123
123
|
"@polymer/polymer": "^3.3.0",
|