2025-05-04 22:50:18 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  Mathematics  from  '../src/math.js' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  AutoMath  from  '../src/automath.js' ;  
						 
					
						
							
								
									
										
										
										
											2025-05-09 22:28:35 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  {  ClassicEditor ,  Clipboard ,  Paragraph ,  Undo ,  Typing ,  _getModelData  as  getData ,  _setModelData  as  setData  }  from  'ckeditor5' ;  
						 
					
						
							
								
									
										
										
										
											2025-05-10 00:01:38 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  {  describe ,  beforeEach ,  it ,  afterEach ,  vi ,  expect  }  from  "vitest" ;  
						 
					
						
							
								
									
										
										
										
											2019-10-09 13:38:30 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								describe (  'AutoMath - integration' ,  ( )  = >  {  
						 
					
						
							
								
									
										
										
										
											2024-03-20 20:55:51 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									let  editorElement : HTMLDivElement ,  editor : ClassicEditor ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-09 13:38:30 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-03-20 20:55:51 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									beforeEach (  async  ( )  = >  { 
							 
						 
					
						
							
								
									
										
										
										
											2025-03-15 00:24:12 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										editorElement  =  document . createElement (  'div'  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										document . body . appendChild (  editorElement  ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-09 13:38:30 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-06 19:35:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										return  ClassicEditor 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-09 13:38:30 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											. create (  editorElement ,  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-11 19:22:03 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												plugins :  [  Mathematics ,  AutoMath ,  Typing ,  Paragraph  ] , 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-09 22:16:12 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												licenseKey :  "GPL" , 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-11 19:22:03 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												math :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													engine :  (  equation ,  element ,  display  )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														if  (  display  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															element . innerHTML  =  '\\['  +  equation  +  '\\]' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															element . innerHTML  =  '\\('  +  equation  +  '\\)' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-09 13:38:30 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											}  ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											. then (  newEditor  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												editor  =  newEditor ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											}  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									}  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									afterEach (  ( )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										editorElement . remove ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return  editor . destroy ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									}  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									it (  'should load Clipboard plugin' ,  ( )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										expect (  editor . plugins . get (  Clipboard  )  ) . to . instanceOf (  Clipboard  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									}  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									it (  'should load Undo plugin' ,  ( )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										expect (  editor . plugins . get (  Undo  )  ) . to . instanceOf (  Undo  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									}  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									it (  'has proper name' ,  ( )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										expect (  AutoMath . pluginName  ) . to . equal (  'AutoMath'  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									}  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-05-10 00:42:06 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// TODO: It appears that these tests are failing as the text is not replaced with its corresponding equation. What I find strange here:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// The automath plugin currently only seems to trigger a window and not allow inserting convertion a selection into an equation (either the implementation or test is broken).
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// To test on the original repository.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									describe . skip (  'use fake timers' ,  ( )  = >  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-09 13:38:30 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										beforeEach (  ( )  = >  { 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-09 23:56:09 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											vi . useFakeTimers ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-09 13:38:30 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										}  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										afterEach (  ( )  = >  { 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-09 23:56:09 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											vi . useRealTimers ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-09 13:38:30 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										}  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										it (  'replaces pasted text with mathtex element after 100ms' ,  ( )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											setData (  editor . model ,  '<paragraph>[]</paragraph>'  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											pasteHtml (  editor ,  '\\[x^2\\]'  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											expect (  getData (  editor . model  )  ) . to . equal ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												'<paragraph>\\[x^2\\][]</paragraph>' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-05-09 23:56:09 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											vi . advanceTimersByTime (  100  ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-09 13:38:30 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											expect (  getData (  editor . model  )  ) . to . equal ( 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-11 18:10:41 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												'<paragraph>[<mathtex display="true" equation="x^2" type="script"></mathtex>]</paragraph>' 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-09 13:38:30 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										}  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										it (  'replaces pasted text with inline mathtex element after 100ms' ,  ( )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											setData (  editor . model ,  '<paragraph>[]</paragraph>'  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											pasteHtml (  editor ,  '\\(x^2\\)'  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											expect (  getData (  editor . model  )  ) . to . equal ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												'<paragraph>\\(x^2\\)[]</paragraph>' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-05-09 23:56:09 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											vi . advanceTimersByTime (  100  ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-09 13:38:30 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											expect (  getData (  editor . model  )  ) . to . equal ( 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-11 18:10:41 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												'<paragraph>[<mathtex display="false" equation="x^2" type="script"></mathtex>]</paragraph>' 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-09 13:38:30 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										}  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										it (  'can undo auto-mathing' ,  ( )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											setData (  editor . model ,  '<paragraph>[]</paragraph>'  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											pasteHtml (  editor ,  '\\[x^2\\]'  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											expect (  getData (  editor . model  )  ) . to . equal ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												'<paragraph>\\[x^2\\][]</paragraph>' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-05-09 23:56:09 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											vi . advanceTimersByTime (  100  ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-09 13:38:30 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											editor . commands . execute (  'undo'  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											expect (  getData (  editor . model  )  ) . to . equal ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												'<paragraph>\\[x^2\\][]</paragraph>' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										}  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										it (  'works for not collapsed selection inside single element' ,  ( )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											setData (  editor . model ,  '<paragraph>[Foo]</paragraph>'  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											pasteHtml (  editor ,  '\\[x^2\\]'  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-05-09 23:56:09 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											vi . advanceTimersByTime (  100  ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-09 13:38:30 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											expect (  getData (  editor . model  )  ) . to . equal ( 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-11 18:10:41 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												'<paragraph>[<mathtex display="true" equation="x^2" type="script"></mathtex>]</paragraph>' 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-09 13:38:30 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										}  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										it (  'works for not collapsed selection over a few elements' ,  ( )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											setData (  editor . model ,  '<paragraph>Fo[o</paragraph><paragraph>Ba]r</paragraph>'  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											pasteHtml (  editor ,  '\\[x^2\\]'  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-05-09 23:56:09 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											vi . advanceTimersByTime (  100  ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-09 13:38:30 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											expect (  getData (  editor . model  )  ) . to . equal ( 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-11 18:10:41 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												'<paragraph>Fo[<mathtex display="true" equation="x^2" type="script"></mathtex>]r</paragraph>' 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-09 13:38:30 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										}  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										it (  'inserts mathtex in-place (collapsed selection)' ,  ( )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											setData (  editor . model ,  '<paragraph>Foo []Bar</paragraph>'  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											pasteHtml (  editor ,  '\\[x^2\\]'  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-05-09 23:56:09 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											vi . advanceTimersByTime (  100  ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-09 13:38:30 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											expect (  getData (  editor . model  )  ) . to . equal ( 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-11 18:10:41 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												'<paragraph>Foo '  + 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												'[<mathtex display="true" equation="x^2" type="script"></mathtex>]'  + 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												'Bar</paragraph>' 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-09 13:38:30 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										}  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-10-11 18:10:41 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										it (  'inserts math in-place (non-collapsed selection)' ,  ( )  = >  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-09 13:38:30 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											setData (  editor . model ,  '<paragraph>Foo [Bar] Baz</paragraph>'  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											pasteHtml (  editor ,  '\\[x^2\\]'  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-05-09 23:56:09 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											vi . advanceTimersByTime (  100  ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-09 13:38:30 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											expect (  getData (  editor . model  )  ) . to . equal ( 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-11 18:10:41 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												'<paragraph>Foo '  + 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												'[<mathtex display="true" equation="x^2" type="script"></mathtex>]'  + 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												' Baz</paragraph>' 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-09 13:38:30 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										}  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										it (  'does nothing if pasted two equation as text' ,  ( )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											setData (  editor . model ,  '<paragraph>[]</paragraph>'  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											pasteHtml (  editor ,  '\\[x^2\\] \\[\\sqrt{x}2\\]'  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-05-09 23:56:09 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											vi . advanceTimersByTime (  100  ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-09 13:38:30 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											expect (  getData (  editor . model  )  ) . to . equal ( 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-11 18:10:41 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												'<paragraph>\\[x^2\\] \\[\\sqrt{x}2\\][]</paragraph>' 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-09 13:38:30 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										}  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									}  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-03-20 20:55:51 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									function  pasteHtml (  editor : ClassicEditor ,  html : string  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-09 13:38:30 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										editor . editing . view . document . fire (  'paste' ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											dataTransfer : createDataTransfer (  {  'text/html' :  html  }  ) , 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-10 00:17:55 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											preventDefault() { } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											stopPropagation() { } 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-09 13:38:30 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										}  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-03-20 20:55:51 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									function  createDataTransfer (  data : Record < string ,  string >  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-09 13:38:30 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										return  { 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-20 20:55:51 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											getData (  type :  string  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-09 13:38:30 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
												return  data [  type  ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  ) ;