@@ -5,7 +5,8 @@ import domAdapter from '@js/core/dom_adapter';
55import Guid from '@js/core/guid' ;
66import type { dxElementWrapper } from '@js/core/renderer' ;
77import $ from '@js/core/renderer' ;
8- import { equalByValue } from '@js/core/utils/common' ;
8+ // @ts -expect-error
9+ import { equalByValue , getKeyHash } from '@js/core/utils/common' ;
910import type { DeferredObj } from '@js/core/utils/deferred' ;
1011// @ts -expect-error
1112import { Deferred , fromPromise , when } from '@js/core/utils/deferred' ;
@@ -131,7 +132,7 @@ class EditingControllerImpl extends modules.ViewController {
131132
132133 protected _saveEditorHandler : any ;
133134
134- private _internalState : any ;
135+ private _internalState ! : Map < unknown , any > ;
135136
136137 protected _refocusEditCell : any ;
137138
@@ -193,7 +194,7 @@ class EditingControllerImpl extends modules.ViewController {
193194 this . _updateEditButtons ( ) ;
194195
195196 if ( ! this . _internalState ) {
196- this . _internalState = [ ] ;
197+ this . _internalState = new Map ( ) ;
197198 }
198199
199200 this . component . _optionsByReference [ EDITING_EDITROWKEY_OPTION_NAME ] = true ;
@@ -272,7 +273,7 @@ class EditingControllerImpl extends modules.ViewController {
272273 }
273274
274275 private _getInternalData ( key ) {
275- return this . _internalState . filter ( ( item ) => equalByValue ( item . key , key ) ) [ 0 ] ;
276+ return this . _internalState . get ( getKeyHash ( key ) ) ;
276277 }
277278
278279 public _addInternalData ( params ) {
@@ -282,7 +283,7 @@ class EditingControllerImpl extends modules.ViewController {
282283 return extend ( internalData , params ) ;
283284 }
284285
285- this . _internalState . push ( params ) ;
286+ this . _internalState . set ( getKeyHash ( params . key ) , params ) ;
286287 return params ;
287288 }
288289
@@ -1329,12 +1330,7 @@ class EditingControllerImpl extends modules.ViewController {
13291330 }
13301331
13311332 private _removeInternalData ( key ) {
1332- const internalData = this . _getInternalData ( key ) ;
1333- const index = this . _internalState . indexOf ( internalData ) ;
1334-
1335- if ( index > - 1 ) {
1336- this . _internalState . splice ( index , 1 ) ;
1337- }
1333+ this . _internalState . delete ( getKeyHash ( key ) ) ;
13381334 }
13391335
13401336 private _updateInsertAfterOrBeforeKeys ( changes , index ) {
@@ -1770,8 +1766,7 @@ class EditingControllerImpl extends modules.ViewController {
17701766 return deferred . promise ( ) ;
17711767 }
17721768
1773- // @ts -expect-error
1774- private _resolveAfterSave ( deferred , { cancel, error } = { } ) {
1769+ private _resolveAfterSave ( deferred , { cancel = undefined , error = undefined } = { } ) {
17751770 // @ts -expect-error
17761771 when ( this . _afterSaveEditData ( cancel ) ) . done ( ( ) => {
17771772 deferred . resolve ( error ) ;
@@ -1860,7 +1855,6 @@ class EditingControllerImpl extends modules.ViewController {
18601855 } ) . done ( ( ) => {
18611856 this . _resolveAfterSave ( deferred ) ;
18621857 } ) . fail ( ( error ) => {
1863- // @ts -expect-error
18641858 this . _resolveAfterSave ( deferred , { error } ) ;
18651859 } ) ;
18661860 }
0 commit comments