@neovici/cosmoz-omnitable 8.0.0-beta.9 → 8.0.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.
@@ -9,33 +9,68 @@ import { onItemChange } from './utils-data';
9
9
 
10
10
  // eslint-disable-next-line max-lines-per-function
11
11
  export const useOmnitable = host => {
12
- const
13
- { enabledColumns, hashParam } = host,
12
+ const { enabledColumns, hashParam } = host,
14
13
  columns = useDOMColumns(host, { enabledColumns }),
15
- sortAndGroupOptions = useSortAndGroupOptions(columns, hashParam, host.sortOn, host.groupOn),
14
+ sortAndGroupOptions = useSortAndGroupOptions(
15
+ columns,
16
+ hashParam,
17
+ host.sortOn,
18
+ host.groupOn
19
+ ),
16
20
  { groupOnColumn, groupOnDescending, sortOnColumn, descending } = sortAndGroupOptions,
17
21
  { data, resizeSpeedFactor, settingsId } = host,
18
22
  // TODO: drop filterFunctions
19
- { processedItems, filters, setFilterState, numProcessedItems, filterFunctions, groupsCount } =
20
- useProcessedItems({ data, columns, groupOnColumn, groupOnDescending, sortOnColumn, descending, hashParam }),
23
+ {
24
+ processedItems,
25
+ filters,
26
+ setFilterState,
27
+ numProcessedItems,
28
+ filterFunctions,
29
+ groupsCount
30
+ } = useProcessedItems({
31
+ data,
32
+ columns,
33
+ groupOnColumn,
34
+ groupOnDescending,
35
+ sortOnColumn,
36
+ descending,
37
+ hashParam
38
+ }),
21
39
  [settings, setSettings] = useState([]),
22
- { savedSettings, onSettingsSave, onSettingsReset, hasChangedSettings } = useSavedSettings(settingsId, settings, setSettings),
23
- normalizedSettings = useMemo(() => normalizeSettings(columns, settings, savedSettings), [columns, settings, savedSettings]),
24
- normalizedColumns = useMemo(() => normalizedSettings.map(s => columns.find(c => c.name === s.name)), [columns, ...normalizedSettings.map(s => s.name)]),
25
- layout = useFastLayout({ host, settings: normalizedSettings, setSettings, groupOnColumn, resizeSpeedFactor }),
26
- collapsedColumns = useMemo(() => Array.isArray(settings)
27
- ? settings.reduce((acc, column, index) =>
28
- layout[index] != null
29
- || column.name === groupOnColumn?.name
30
- || column.disabled
40
+ { savedSettings, onSettingsSave, onSettingsReset, hasChangedSettings } =
41
+ useSavedSettings(settingsId, settings, setSettings),
42
+ normalizedSettings = useMemo(
43
+ () => normalizeSettings(columns, settings, savedSettings),
44
+ [columns, settings, savedSettings]
45
+ ),
46
+ normalizedColumns = useMemo(
47
+ () => normalizedSettings.map(s => columns.find(c => c.name === s.name)),
48
+ [columns, ...normalizedSettings.map(s => s.name)]
49
+ ),
50
+ layout = useFastLayout({
51
+ host,
52
+ settings: normalizedSettings,
53
+ setSettings,
54
+ groupOnColumn,
55
+ resizeSpeedFactor
56
+ }),
57
+ collapsedColumns = useMemo(
58
+ () => normalizedSettings.reduce((acc, column, index) =>
59
+ layout[index] != null ||
60
+ column.name === groupOnColumn?.name ||
61
+ column.disabled
31
62
  ? acc
32
63
  : [...acc, columns.find(c => c.name === column.name)],
33
- [])
34
- : []
35
- , [columns, settings, layout]),
64
+ []),
65
+ [columns, normalizedSettings, layout]
66
+ ),
36
67
  hasHiddenFilter = useMemo(
37
- () => [groupOnColumn, ...collapsedColumns, ...normalizedSettings.filter(s => s.disabled)]
38
- .some(column => column && Object.keys(filterFunctions).includes(column.name)),
68
+ () =>
69
+ [
70
+ groupOnColumn,
71
+ ...collapsedColumns,
72
+ ...normalizedSettings.filter(s => s.disabled)
73
+ ].some(column => column && Object.keys(filterFunctions).includes(column.name)),
39
74
  [filterFunctions, normalizedSettings, collapsedColumns]
40
75
  );
41
76
 
@@ -54,7 +89,10 @@ export const useOmnitable = host => {
54
89
  hasChangedSettings,
55
90
  filters,
56
91
  setFilterState,
57
- onItemChange: useCallback((column, item) => value => onItemChange(host, column, item, value), []),
92
+ onItemChange: useCallback(
93
+ (column, item) => value => onItemChange(host, column, item, value),
94
+ []
95
+ ),
58
96
  numProcessedItems,
59
97
  groupsCount,
60
98
  sortedFilteredGroupedItems: processedItems
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neovici/cosmoz-omnitable",
3
- "version": "8.0.0-beta.9",
3
+ "version": "8.0.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"