@@ -4,10 +4,11 @@ import type { DefaultOptionsRule } from '@js/core/options/utils';
44import type { dxElementWrapper } from '@js/core/renderer' ;
55import $ from '@js/core/renderer' ;
66import { noop } from '@js/core/utils/common' ;
7+ import type { DeferredObj } from '@js/core/utils/deferred' ;
78import { Deferred } from '@js/core/utils/deferred' ;
89import LoadIndicator from '@js/ui/load_indicator' ;
910import type { Properties } from '@js/ui/load_panel' ;
10- import { isFluent , isMaterial } from '@js/ui/themes' ;
11+ import { current , isFluent , isMaterial } from '@js/ui/themes' ;
1112import type { OptionChanged } from '@ts/core/widget/types' ;
1213import type { SupportedKeys } from '@ts/core/widget/widget' ;
1314import Overlay from '@ts/ui/overlay/overlay' ;
@@ -29,6 +30,7 @@ class LoadPanel extends Overlay<LoadPanelProperties> {
2930
3031 _$loadPanelContentWrapper ?: dxElementWrapper ;
3132
33+ // eslint-disable-next-line no-restricted-globals -- needed for delayed panel show
3234 _showTimeout ?: ReturnType < typeof setTimeout > ;
3335
3436 _supportedKeys ( ) : SupportedKeys {
@@ -44,7 +46,7 @@ class LoadPanel extends Overlay<LoadPanelProperties> {
4446 message : messageLocalization . format ( 'Loading' ) ,
4547 width : 222 ,
4648 height : 90 ,
47- // @ts -expect-error ts-error
49+ // @ts -expect-error 'null' is not assignable
4850 animation : null ,
4951 showIndicator : true ,
5052 indicatorSrc : '' ,
@@ -68,8 +70,7 @@ class LoadPanel extends Overlay<LoadPanelProperties> {
6870 } ,
6971 {
7072 device ( ) : boolean {
71- // @ts -expect-error ts-error
72- return isMaterial ( ) ;
73+ return isMaterial ( current ( ) ) ;
7374 } ,
7475 options : {
7576 message : '' ,
@@ -81,8 +82,7 @@ class LoadPanel extends Overlay<LoadPanelProperties> {
8182 } ,
8283 {
8384 device ( ) : boolean {
84- // @ts -expect-error ts-error
85- return isFluent ( ) ;
85+ return isFluent ( current ( ) ) ;
8686 } ,
8787 options : {
8888 width : 'auto' ,
@@ -93,8 +93,7 @@ class LoadPanel extends Overlay<LoadPanelProperties> {
9393 }
9494
9595 _init ( ) : void {
96- // @ts -expect-error ts-error
97- super . _init . apply ( this , arguments ) ;
96+ super . _init ( ) ;
9897 }
9998
10099 _render ( ) : void {
@@ -113,13 +112,15 @@ class LoadPanel extends Overlay<LoadPanelProperties> {
113112 const showIndicator = this . option ( 'showIndicator' ) ;
114113 if ( ! showIndicator ) {
115114 const aria = this . _getAriaAttributes ( ) ;
116- // @ts -expect-error ts-error
115+
116+ // @ts -expect-error attr should have overload
117117 this . $wrapper ( ) . attr ( aria ) ;
118118 }
119119 }
120120
121- _getAriaAttributes ( ) {
121+ _getAriaAttributes ( ) : Record < string , string > {
122122 const { message } = this . option ( ) ;
123+
123124 // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
124125 const label = message || messageLocalization . format ( 'Loading' ) ;
125126
@@ -131,9 +132,8 @@ class LoadPanel extends Overlay<LoadPanelProperties> {
131132 return aria ;
132133 }
133134
134- // @ts -expect-error ts-error
135- _renderContentImpl ( ) : void {
136- super . _renderContentImpl ( ) ;
135+ _renderContentImpl ( ) : Promise < void > {
136+ const result = super . _renderContentImpl ( ) ;
137137
138138 this . $content ( ) . addClass ( LOADPANEL_CONTENT_CLASS ) ;
139139
@@ -145,9 +145,11 @@ class LoadPanel extends Overlay<LoadPanelProperties> {
145145 this . _cleanPreviousContent ( ) ;
146146 this . _renderLoadIndicator ( ) ;
147147 this . _renderMessage ( ) ;
148+
149+ return result ;
148150 }
149151
150- _show ( ) {
152+ _show ( ) : DeferredObj < unknown > | Promise < unknown > {
151153 const { delay } = this . option ( ) ;
152154
153155 if ( ! delay ) {
@@ -158,8 +160,10 @@ class LoadPanel extends Overlay<LoadPanelProperties> {
158160 const callBase = super . _show . bind ( this ) ;
159161
160162 this . _clearShowTimeout ( ) ;
163+
164+ // eslint-disable-next-line no-restricted-globals -- needed for delayed panel show
161165 this . _showTimeout = setTimeout ( ( ) => {
162- // @ts -expect-error ts-error
166+ // @ts -expect-error done should be typed
163167 callBase ( ) . done ( ( ) => {
164168 deferred . resolve ( ) ;
165169 } ) ;
@@ -168,8 +172,9 @@ class LoadPanel extends Overlay<LoadPanelProperties> {
168172 return deferred . promise ( ) ;
169173 }
170174
171- _hide ( ) {
175+ _hide ( ) : DeferredObj < unknown > | Promise < unknown > {
172176 this . _clearShowTimeout ( ) ;
177+
173178 return super . _hide ( ) ;
174179 }
175180
@@ -184,9 +189,12 @@ class LoadPanel extends Overlay<LoadPanelProperties> {
184189
185190 const { message } = this . option ( ) ;
186191
187- if ( ! message ) return ;
192+ if ( ! message ) {
193+ return ;
194+ }
188195
189- const $message = $ ( '<div>' ) . addClass ( LOADPANEL_MESSAGE_CLASS )
196+ const $message = $ ( '<div>' )
197+ . addClass ( LOADPANEL_MESSAGE_CLASS )
190198 . text ( message ) ;
191199
192200 this . _$loadPanelContentWrapper . append ( $message ) ;
@@ -212,7 +220,8 @@ class LoadPanel extends Overlay<LoadPanelProperties> {
212220 _cleanPreviousContent ( ) : void {
213221 this . $content ( ) . find ( `.${ LOADPANEL_MESSAGE_CLASS } ` ) . remove ( ) ;
214222 this . $content ( ) . find ( `.${ LOADPANEL_INDICATOR_CLASS } ` ) . remove ( ) ;
215- delete this . _$indicator ;
223+
224+ this . _$indicator = undefined ;
216225 }
217226
218227 _togglePaneVisible ( ) : void {
0 commit comments