@@ -446,40 +446,25 @@ define(
446
446
* Custom widgets can be added to this object like [attribute]: function(facet, templates)
447
447
* Function must return an array [<widget name>: string, <widget options>: object]
448
448
**/
449
- var customAttributeFacet = {
449
+ const customAttributeFacet = {
450
450
categories : function ( facet , templates ) {
451
- var hierarchical_levels = [ ] ;
452
- for ( var l = 0 ; l < 10 ; l ++ ) {
451
+ const hierarchical_levels = [ ] ;
452
+ for ( let l = 0 ; l < 10 ; l ++ ) {
453
453
hierarchical_levels . push ( 'categories.level' + l . toString ( ) ) ;
454
454
}
455
455
456
-
457
- //return array of items starting from root based on category
458
- const findRoot = ( items ) => {
459
- const root = items . find ( element => algoliaConfig . request . path . startsWith ( element . value ) ) ;
460
-
461
- if ( ! root ) {
462
- return items ;
463
- }
464
- if ( ! root . data ) {
465
- return [ ] ;
466
- }
467
-
468
- return findRoot ( root . data ) ;
469
-
470
- } ;
471
-
472
- var hierarchicalMenuParams = {
456
+ const hierarchicalMenuParams = {
473
457
container : facet . wrapper . appendChild ( createISWidgetContainer ( facet . attribute ) ) ,
474
458
attributes : hierarchical_levels ,
475
459
separator : algoliaConfig . instant . categorySeparator ,
476
460
templates : templates ,
477
461
showParentLevel : true ,
478
- limit : 999 , // arbitrarily high number - as premature truncate of results can prevent preselection for large category lists
462
+ limit : algoliaConfig . maxValuesPerFacet ,
463
+ rootPath : algoliaConfig . request . path ,
479
464
sortBy : [ 'name:asc' ] ,
480
465
transformItems ( items ) {
481
466
return ( algoliaConfig . isCategoryPage )
482
- ? findRoot ( items ) . map (
467
+ ? items . map (
483
468
item => {
484
469
return {
485
470
...item ,
@@ -726,4 +711,4 @@ define(
726
711
return options ;
727
712
}
728
713
}
729
- ) ;
714
+ ) ;
0 commit comments