119 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
		
		
			
		
	
	
			119 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
|  | { | ||
|  |   "title": "JSON schema for menu.json", | ||
|  |   "$schema": "http://json-schema.org/draft-07/schema#", | ||
|  |   "type": "object", | ||
|  |   "additionalProperties": true, | ||
|  |   "propertyNames": { | ||
|  |     "enum": [ | ||
|  |       "fileContextMenu" | ||
|  |     ] | ||
|  |   }, | ||
|  |   "properties": { | ||
|  |     "fileContextMenu": { | ||
|  |       "description": "Indicates the name of the fileContextMenu.", | ||
|  |       "type": "array", | ||
|  |       "minItems": 1, | ||
|  |       "maxItems": 5, | ||
|  |       "uniqueItems": true, | ||
|  |       "items": { | ||
|  |         "type": "object", | ||
|  |         "required": [ | ||
|  |           "abilityName", | ||
|  |           "menuItem", | ||
|  |           "menuHandler", | ||
|  |           "menuContext" | ||
|  |         ], | ||
|  |         "propertyNames": { | ||
|  |           "enum": [ | ||
|  |             "abilityName", | ||
|  |             "menuItem", | ||
|  |             "menuHandler", | ||
|  |             "menuContext" | ||
|  |           ] | ||
|  |         }, | ||
|  |         "properties": { | ||
|  |           "abilityName": { | ||
|  |             "description": "Indicates the name of the ability.", | ||
|  |             "type": "string", | ||
|  |             "pattern": "^[a-zA-Z][0-9a-zA-Z_.]*$", | ||
|  |             "maxLength": 255 | ||
|  |           }, | ||
|  |           "menuItem": { | ||
|  |             "description": "Indicates the name of the menuItem.", | ||
|  |             "type": "string", | ||
|  |             "maxLength": 255, | ||
|  |             "pattern": "^[$]string:[0-9a-zA-Z_.]+|(?=.*[{])(?=.*[}])[0-9a-zA-Z_.{}]+$" | ||
|  |           }, | ||
|  |           "menuHandler": { | ||
|  |             "description": "Indicates the name of the menuHandler.", | ||
|  |             "type": "string", | ||
|  |             "pattern": "^[a-zA-Z][0-9a-zA-Z_.]*$", | ||
|  |             "maxLength": 255 | ||
|  |           }, | ||
|  |           "menuContext": { | ||
|  |             "description": "Indicates the name of the menuContext.", | ||
|  |             "type": "array", | ||
|  |             "minItems": 1, | ||
|  |             "uniqueItems": true, | ||
|  |             "items": { | ||
|  |               "type": "object", | ||
|  |               "required": [ | ||
|  |                 "menuKind" | ||
|  |               ], | ||
|  |               "propertyNames": { | ||
|  |                 "enum": [ | ||
|  |                   "menuKind", | ||
|  |                   "menuRule", | ||
|  |                   "fileSupportType", | ||
|  |                   "fileNotSupportType" | ||
|  |                 ] | ||
|  |               }, | ||
|  |               "properties": { | ||
|  |                 "menuKind": { | ||
|  |                   "description": "Indicates the name of the menuKind.", | ||
|  |                   "type": "integer", | ||
|  |                   "enum": [ | ||
|  |                     0, | ||
|  |                     1, | ||
|  |                     2, | ||
|  |                     3 | ||
|  |                   ] | ||
|  |                 }, | ||
|  |                 "menuRule": { | ||
|  |                   "description": "Indicates the name of the menuRule.", | ||
|  |                   "type": "string", | ||
|  |                   "enum": [ | ||
|  |                     "single", | ||
|  |                     "multi", | ||
|  |                     "both" | ||
|  |                   ] | ||
|  |                 }, | ||
|  |                 "fileSupportType": { | ||
|  |                   "description": "Indicates the name of the fileSupportType.", | ||
|  |                   "type": "array", | ||
|  |                   "maxItems": 100, | ||
|  |                   "items": { | ||
|  |                     "type": "string", | ||
|  |                     "pattern": "^\\.[a-zA-Z]+|\\*$", | ||
|  |                     "maxLength": 20 | ||
|  |                   } | ||
|  |                 }, | ||
|  |                 "fileNotSupportType": { | ||
|  |                   "description": "Indicates the name of the fileNotSupportType.", | ||
|  |                   "type": "array", | ||
|  |                   "maxItems": 100, | ||
|  |                   "items": { | ||
|  |                     "type": "string", | ||
|  |                     "pattern": "^\\.[a-zA-Z]+$", | ||
|  |                     "maxLength": 20 | ||
|  |                   } | ||
|  |                 } | ||
|  |               } | ||
|  |             } | ||
|  |           } | ||
|  |         } | ||
|  |       } | ||
|  |     } | ||
|  |   } | ||
|  | } |