@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.
@@ -1,4 +1,18 @@
1
- export function useHashState(initial: any, param: any, { suffix, read, write, multi }?: {
2
- suffix?: string | undefined;
3
- }): any[];
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.js"],"names":[],"mappings":"AA0CO;;UA6CN"}
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, value]) => !isEmpty(value)
16
- ? searchParams.set(hashParam + key, value)
14
+ .forEach(([key, val]) => !isEmpty(val)
15
+ ? searchParams.set(hashParam + key, val)
17
16
  : searchParams.delete(hashParam + key)));
18
- export const useHashState = (initial, param, { suffix = '', read, write, multi } = {}) => {
19
- const [link, parseHash] = multi
20
- ? [multiLink, multiParse]
21
- : [singleLink, singleParse],
22
- // Track if hash param was explicitly in URL on mount
23
- hashWasExplicit = useMemo(() => param != null && parseHash(param + suffix, read) != null, []), [state, _setState] = useState(() => param == null ? initial : (parseHash(param + suffix, read) ?? initial)), setState = useCallback((state) => _setState((oldState) => {
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.js"],"names":[],"mappings":"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"}
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) => 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: any;
5
+ groupOnDescending: boolean | undefined;
6
6
  setGroupOnDescending: (value: any) => void;
7
7
  sortOn: any;
8
8
  setSortOn: (value: any) => void;
9
- descending: any;
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: any;
17
+ groupOnDescending: boolean | undefined;
18
18
  setGroupOnDescending: (value: any) => void;
19
19
  sortOn: any;
20
20
  setSortOn: (value: any) => void;
21
- descending: any;
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.0",
3
+ "version": "18.4.0",
4
4
  "description": "[![Build Status](https://travis-ci.org/Neovici/cosmoz-omnitable.svg?branch=master)](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.14.2",
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",