diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.ts index e00cda5b55..2527ab033d 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.ts @@ -102,17 +102,7 @@ export class ModalComponent implements OnDestroy { destroy$ = new Subject(); get isFormDirty(): boolean { - let node: HTMLDivElement; - if (!this.modalContent) { - node = document.getElementById('modal-container') as HTMLDivElement; - } - - const nodes = getFlatNodes( - ((node || this.modalContent.nativeElement).querySelector('#abp-modal-body') as HTMLElement) - .childNodes, - ); - - return hasNgDirty(nodes); + return Boolean(document.querySelector('.modal-dialog .ng-dirty')); } constructor(private renderer: Renderer2, private confirmationService: ConfirmationService) {} @@ -178,17 +168,3 @@ export class ModalComponent implements OnDestroy { this.init.emit(); } } - -function getFlatNodes(nodes: NodeList): HTMLElement[] { - return Array.from(nodes).reduce( - (acc, val) => [ - ...acc, - ...(val.childNodes && val.childNodes.length ? getFlatNodes(val.childNodes) : [val]), - ], - [], - ); -} - -function hasNgDirty(nodes: HTMLElement[]) { - return nodes.findIndex(node => (node.className || '').indexOf('ng-dirty') > -1) > -1; -}