@@ -4,32 +4,33 @@ export const filterByHiding = (list, value) => {
44 const itemLabel = item . label . toLowerCase ( ) ;
55 const included = itemLabel . includes ( filterValue ) ;
66 // if the item label matches the filter value.
7- item . hidden = ! included ;
7+ item . hiddenByFilter = ! included ;
88 // if it is a parent and its label doesn't match the filter value.
99 if ( itemHasChildren ( item ) ) {
10- if ( isItemHidden ( item ) ) {
10+ if ( isItemHiddenByFilter ( item ) ) {
1111 let childrenIncludedAmount = 0 ;
1212 item . children . forEach ( childItem => {
1313 const childLabel = childItem . label . toLowerCase ( ) ;
1414 const childIncluded = childLabel . includes ( filterValue ) ;
15- childItem . hidden = ! childIncluded ;
15+ childItem . hiddenByFilter = ! childIncluded ;
1616 childrenIncludedAmount += childIncluded ? 1 : 0 ;
1717 } ) ;
18- item . hidden = childrenIncludedAmount === 0 ;
18+ item . hiddenByFilter = childrenIncludedAmount === 0 ;
1919 } else {
20- item . children = makeAllItemsVisible ( item . children ) ;
20+ item . children = makeAllHiddenFilteredItemsVisible ( item . children ) ;
2121 }
2222 }
2323 return item ;
2424 } ) ;
2525} ;
2626
27- export const makeAllItemsVisible = list =>
27+ // We don't want to touch default hidden items that the consumer set to hidden.
28+ export const makeAllHiddenFilteredItemsVisible = list =>
2829 list . map ( item => {
29- item . hidden = false ;
30+ item . hiddenByFilter = false ;
3031 if ( itemHasChildren ( item ) ) {
3132 item . children . forEach ( childItem => {
32- childItem . hidden = false ;
33+ childItem . hiddenByFilter = false ;
3334 } ) ;
3435 }
3536 return item ;
@@ -40,7 +41,7 @@ export const sortItems = (items, sortFactor = 'label') =>
4041
4142export const shouldItemBeChecked = ( item , isMainChecked , resetAllSelected ) => {
4243 let checked = item . checked || false ;
43- const isItemEditable = ! item . disabled || ! item . hidden ;
44+ const isItemEditable = ! item . disabled || ! item . hidden || ! item . isItemHiddenByFilter ;
4445 if ( ! isItemEditable ) {
4546 return checked ;
4647 }
@@ -210,12 +211,12 @@ export const isItemExistOnList = (list, itemLabel) => {
210211export const getFilterredItems = list => {
211212 const filteredItems = [ ] ;
212213 list . forEach ( item => {
213- if ( ! isItemHidden ( item ) ) {
214+ if ( ! isItemHiddenByFilter ( item ) ) {
214215 filteredItems . push ( item ) ;
215216 } else if ( itemHasChildren ( item ) ) {
216217 const filteredChildren = [ ] ;
217218 item . children . forEach ( childItem => {
218- if ( ! isItemHidden ( childItem ) ) {
219+ if ( ! isItemHiddenByFilter ( childItem ) ) {
219220 filteredChildren . push ( childItem ) ;
220221 }
221222 } ) ;
@@ -254,6 +255,6 @@ export const getSelectedFilterredItemsLength = list => {
254255
255256export const isItemSelected = item => item . checked ;
256257
257- export const isItemHidden = item => item . hidden ;
258+ export const isItemHiddenByFilter = item => item . hiddenByFilter ;
258259
259260export const isItemDisabled = item => item . disabled ;
0 commit comments