{
    "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"
        },
        "entryComponent": {
            "default": false,
            "description": "When true, the new component is the entry component of the declaring NgModule.",
            "type": "boolean"
        },
        "export": {
            "default": false,
            "description": "When true, the declaring NgModule exports this component.",
            "type": "boolean"
        },
        "flat": {
            "default": false,
            "description": "When true, creates the new files at the top level of the current project.",
            "type": "boolean"
        },
        "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"
        },
        "lintFix": {
            "default": false,
            "description": "When true, applies lint fixes after generating the component.",
            "type": "boolean"
        },
        "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"
        },
        "skipTests": {
            "default": false,
            "description": "When true, does not create \"spec.ts\" test files for the new component.",
            "type": "boolean"
        },
        "spec": {
            "default": true,
            "description": "When true (the default), generates a  \"spec.ts\" test file for the new component.",
            "type": "boolean",
            "x-deprecated": "Use \"skipTests\" instead."
        },
        "viewEncapsulation": {
            "alias": "v",
            "description": "The view encapsulation strategy to use in the new component.",
            "enum": [
                "Emulated",
                "Native",
                "None",
                "ShadowDom"
            ],
            "type": "string"
        }
    },
    "required": [
        "name"
    ],
    "title": "Angular Component with Alyle UI Options Schema",
    "type": "object"
}