11import type { ToolbarItemComponent } from '@js/common' ;
2+ import type { DataSourceOptions } from '@js/common/data' ;
3+ import type { dxElementWrapper } from '@js/core/renderer' ;
24import $ from '@js/core/renderer' ;
35import { each } from '@js/core/utils/iterator' ;
6+ import type { DxEvent } from '@js/events' ;
47import type { Item } from '@js/ui/toolbar' ;
8+ import type { ActionConfig } from '@ts/core/widget/component' ;
9+ import type { ItemRenderInfo , ItemTemplate } from '@ts/ui/collection/collection_widget.base' ;
510import { ListBase } from '@ts/ui/list/m_list.base' ;
611
712const TOOLBAR_MENU_ACTION_CLASS = 'dx-toolbar-menu-action' ;
@@ -28,11 +33,11 @@ export default class ToolbarMenuList extends ListBase {
2833 this . _setMenuRole ( ) ;
2934 }
3035
31- _getSections ( ) {
36+ _getSections ( ) : dxElementWrapper {
3237 return this . _itemContainer ( ) . children ( ) ;
3338 }
3439
35- _itemElements ( ) {
40+ _itemElements ( ) : dxElementWrapper {
3641 return this . _getSections ( ) . children ( this . _itemSelector ( ) ) ;
3742 }
3843
@@ -51,9 +56,8 @@ export default class ToolbarMenuList extends ListBase {
5156 } ) ;
5257 }
5358
54- _renderItems ( ) : void {
55- // @ts -expect-error ts-error
56- super . _renderItems . apply ( this , arguments ) ;
59+ _renderItems ( items : Item ) : void {
60+ super . _renderItems ( items ) ;
5761 this . _updateSections ( ) ;
5862 }
5963
@@ -69,20 +73,25 @@ export default class ToolbarMenuList extends ListBase {
6973 $sections . not ( ':empty' ) . eq ( - 1 ) . addClass ( TOOLBAR_MENU_LAST_SECTION_CLASS ) ;
7074 }
7175
72- _renderItem ( index , item , itemContainer , $after ) {
76+ _renderItem (
77+ index : number ,
78+ item : Item ,
79+ _$container : dxElementWrapper ,
80+ $itemToReplace : dxElementWrapper ,
81+ ) : dxElementWrapper {
7382 const $container = this [ `_$${ item . location ?? 'menu' } Section` ] ;
74- const itemElement = super . _renderItem ( index , item , $container , $after ) ;
83+ const $ itemElement = super . _renderItem ( index , item , $container , $itemToReplace ) ;
7584
7685 const itemCssClasses = this . _getItemCssClasses ( item ) ;
77- itemElement . addClass ( itemCssClasses . join ( ' ' ) ) ;
86+ $ itemElement. addClass ( itemCssClasses . join ( ' ' ) ) ;
7887
79- return itemElement ;
88+ return $ itemElement;
8089 }
8190
8291 _getItemCssClasses ( item : Item ) : string [ ] {
8392 const cssClasses : string [ ] = [ ] ;
8493 const actionableComponents = this . _getActionableComponents ( ) ;
85-
94+ // @ts -expect-error ts-error
8695 if ( this . _getItemTemplateName ( { itemData : item } ) ) {
8796 cssClasses . push ( TOOLBAR_MENU_CUSTOM_CLASS ) ;
8897 }
@@ -112,22 +121,26 @@ export default class ToolbarMenuList extends ListBase {
112121 return [ 'dxButton' , 'dxButtonGroup' ] ;
113122 }
114123
115- _getItemTemplateName ( args ) {
124+ _getItemTemplateName ( args : ItemRenderInfo < Item > ) : ItemTemplate < Item > {
116125 const template = super . _getItemTemplateName ( args ) ;
117-
118126 const data = args . itemData ;
119127 const menuTemplate = data ?. menuItemTemplate ;
120128
121- return menuTemplate || template ;
129+ return menuTemplate ?? template ;
122130 }
123131
124- _dataSourceOptions ( ) {
132+ // eslint-disable-next-line class-methods-use-this
133+ _dataSourceOptions ( ) : DataSourceOptions {
125134 return {
126135 paginate : false ,
127136 } ;
128137 }
129138
130- _itemClickHandler ( e , args , config ) : void {
139+ _itemClickHandler (
140+ e : DxEvent ,
141+ args ?: Record < string , unknown > ,
142+ config ?: ActionConfig ,
143+ ) : void {
131144 if ( $ ( e . target ) . closest ( `.${ TOOLBAR_MENU_ACTION_CLASS } ` ) . length ) {
132145 super . _itemClickHandler ( e , args , config ) ;
133146 }
0 commit comments