{
    "description": "Creates a new generic component definition in the given or default project.",
    "properties": {
        "changeDetection": {
            "alias": "c",
            "default": "Default",
            "description": "The change detection strategy to use in the new component.",
            "enum": [
                "Default",
                "OnPush"
            ],
            "type": "string"
        },
        "displayBlock": {
            "alias": "b",
            "default": false,
            "description": "Specifies if the style will contain `:host { display: block; }`.",
            "type": "boolean"
        },
        "entryComponent": {
            "default": false,
            "description": "When true, the new component is the entry component of the declaring NgModule.",
            "type": "boolean",
            "x-deprecated": "Since version 9.0.0 with Ivy, entryComponents is no longer necessary."
        },
        "export": {
            "default": false,
            "description": "When true, the declaring NgModule exports this component.",
            "type": "boolean",
            "x-user-analytics": 19
        },
        "flat": {
            "default": false,
            "description": "When true, creates the new files at the top level of the current project.",
            "type": "boolean"
        },
        "inlineStyle": {
            "alias": "s",
            "default": false,
            "description": "When true, includes styles inline in the component.ts file. Only CSS styles can be included inline. By default, an external styles file is created and referenced in the component.ts file.",
            "type": "boolean",
            "x-user-analytics": 9
        },
        "inlineTemplate": {
            "alias": "t",
            "default": false,
            "description": "When true, includes template inline in the component.ts file. By default, an external template file is created and referenced in the component.ts file.",
            "type": "boolean",
            "x-user-analytics": 10
        },
        "lintFix": {
            "default": false,
            "description": "When true, applies lint fixes after generating the component.",
            "type": "boolean",
            "x-user-analytics": 15
        },
        "module": {
            "alias": "m",
            "description": "The declaring NgModule.",
            "type": "string"
        },
        "name": {
            "$default": {
                "$source": "argv",
                "index": 0
            },
            "description": "The name of the component.",
            "type": "string",
            "x-prompt": "What name would you like to use for the component?"
        },
        "path": {
            "description": "The path at which to create the component file, relative to the current workspace. Default is a folder with the same name as the component in the project root.",
            "format": "path",
            "type": "string",
            "visible": false
        },
        "prefix": {
            "alias": "p",
            "description": "The prefix to apply to the generated component selector.",
            "oneOf": [
                {
                    "maxLength": 0
                },
                {
                    "format": "html-selector",
                    "minLength": 1
                }
            ],
            "type": "string"
        },
        "project": {
            "$default": {
                "$source": "projectName"
            },
            "description": "The name of the project.",
            "type": "string"
        },
        "selector": {
            "description": "The HTML selector to use for this component.",
            "format": "html-selector",
            "type": "string"
        },
        "skipImport": {
            "default": false,
            "description": "When true, does not import this component into the owning NgModule.",
            "type": "boolean",
            "x-user-analytics": 18
        },
        "skipSelector": {
            "default": false,
            "description": "Specifies if the component should have a selector or not.",
            "type": "boolean"
        },
        "skipTests": {
            "default": false,
            "description": "When true, does not create \"spec.ts\" test files for the new component.",
            "type": "boolean",
            "x-user-analytics": 12
        },
        "style": {
            "default": "css",
            "description": "The file extension or preprocessor to use for style files.",
            "enum": [
                "css",
                "scss",
                "sass",
                "less",
                "styl"
            ],
            "type": "string",
            "x-user-analytics": 5
        },
        "type": {
            "default": "Component",
            "description": "Adds a developer-defined type to the filename, in the format \"name.type.ts\".",
            "type": "string"
        },
        "viewEncapsulation": {
            "alias": "v",
            "description": "The view encapsulation strategy to use in the new component.",
            "enum": [
                "Emulated",
                "Native",
                "None",
                "ShadowDom"
            ],
            "type": "string",
            "x-user-analytics": 11
        }
    },
    "required": [
        "name"
    ],
    "title": "Angular Component Options Schema",
    "type": "object"
}