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