mirror of
				https://github.com/AppFlowy-IO/AppFlowy.git
				synced 2025-10-31 01:54:37 +00:00 
			
		
		
		
	 23b6f94e82
			
		
	
	
		23b6f94e82
		
			
		
	
	
	
	
		
			
			* feat: support multiple images in image block * feat: support drop files on image placeholder * fix: overflow in image placeholder * chore: clean code * feat: refactor to multi image block * feat: drop image on gallery to add * feat: add delete image inside interactive viewer * fix: some mobile improvements * fix: web ci * test: fix tests after dialog changes * test: add basic multi image block test * test: add to test runner * test: open interactive viewer * fix: add delete index to callback * test: add navigation next/previous * ci: fix * ci: fix * ci: fix * test: add network image + deletion tests * fix: remove duplicates after merge * test: add multi image insertion test * ci: try * ci: try --------- Co-authored-by: nathan <nathan@appflowy.io>
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
| const _trailingZerosPattern = r'^(\d+(?:\.\d*?[1-9](?=0|\b))?)\.?0*$';
 | |
| final trailingZerosRegex = RegExp(_trailingZerosPattern);
 | |
| 
 | |
| const _hrefPattern =
 | |
|     r'https?://(?:www\.)?[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,}(?:/[^\s]*)?';
 | |
| final hrefRegex = RegExp(_hrefPattern);
 | |
| 
 | |
| /// This pattern allows for both HTTP and HTTPS Scheme
 | |
| /// It allows for query parameters
 | |
| /// It only allows the following image extensions: .png, .jpg, .gif, .webm
 | |
| ///
 | |
| const _imgUrlPattern =
 | |
|     r'(https?:\/\/)([^\s(["<,>/]*)(\/)[^\s[",><]*(.png|.jpg|.gif|.webm)(\?[^\s[",><]*)?';
 | |
| final imgUrlRegex = RegExp(_imgUrlPattern);
 | |
| 
 | |
| const _imgExtensionPattern = r'\.(gif|jpe?g|tiff?|png|webp|bmp)$';
 | |
| final imgExtensionRegex = RegExp(_imgExtensionPattern);
 | |
| 
 | |
| /// This pattern allows for both HTTP and HTTPS Scheme
 | |
| /// It allows for query parameters
 | |
| /// It only allows the following video extensions:
 | |
| ///  .mp4, .mov, .avi, .webm, .flv, .m4v (mpeg), .mpeg, .h264,
 | |
| ///
 | |
| const _videoUrlPattern =
 | |
|     r'(https?:\/\/)([^\s(["<,>/]*)(\/)[^\s[",><]*(.mp4|.mov|.avi|.webm|.flv|.m4v|.mpeg|.h264)(\?[^\s[",><]*)?';
 | |
| final videoUrlRegex = RegExp(_videoUrlPattern);
 | |
| 
 | |
| /// This pattern matches both youtube.com and shortened youtu.be urls.
 | |
| ///
 | |
| const _youtubeUrlPattern = r'^(https?:\/\/)?(www\.)?(youtube\.com|youtu\.be)\/';
 | |
| final youtubeUrlRegex = RegExp(_youtubeUrlPattern);
 | |
| 
 | |
| const _appflowyCloudUrlPattern = r'^(https:\/\/)(.*)(\.appflowy\.cloud\/)(.*)';
 | |
| final appflowyCloudUrlRegex = RegExp(_appflowyCloudUrlPattern);
 | |
| 
 | |
| const _camelCasePattern = '(?<=[a-z])[A-Z]';
 | |
| final camelCaseRegex = RegExp(_camelCasePattern);
 | |
| 
 | |
| const _macOSVolumesPattern = '^/Volumes/[^/]+';
 | |
| final macOSVolumesRegex = RegExp(_macOSVolumesPattern);
 |