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
 | |
|                   }
 | |
|                 }
 | |
|               }
 | |
|             }
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| }
 |