{
  "$schema": "http://json-schema.org/draft-07/schema",
  "$id": "PLACEHOLDER_SCHEMATICS_ID",
  "title": "PLACEHOLDER_SCHEMATICS_TITLE",
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "format": "path",
      "description": "The path to create the component.",
      "visible": false
    },
    "project": {
      "type": "string",
      "description": "The name of the project.",
      "$default": {
        "$source": "projectName"
      }
    },
    "name": {
      "type": "string",
      "description": "The name of the component.",
      "$default": {
        "$source": "argv",
        "index": 0
      },
      "x-prompt": "What should be the name of the component?"
    },
    "displayBlock": {
      "description": "Specifies if the style will contain `:host { display: block; }`.",
      "type": "boolean",
      "default": false,
      "alias": "b"
    },
    "inlineStyle": {
      "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",
      "default": false,
      "alias": "s"
    },
    "inlineTemplate": {
      "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",
      "default": false,
      "alias": "t"
    },
    "standalone": {
      "description": "Whether the generated component is standalone.",
      "type": "boolean",
      "default": true
    },
    "viewEncapsulation": {
      "description": "The view encapsulation strategy to use in the new component.",
      "enum": ["Emulated", "Native", "None", "ShadowDom"],
      "type": "string",
      "alias": "v"
    },
    "changeDetection": {
      "description": "Specifies the change detection strategy.",
      "enum": ["Default", "OnPush"],
      "type": "string",
      "default": "Default",
      "alias": "c"
    },
    "prefix": {
      "type": "string",
      "description": "The prefix to apply to the generated component selector.",
      "alias": "p",
      "oneOf": [
        {
          "maxLength": 0
        },
        {
          "minLength": 1,
          "format": "html-selector"
        }
      ]
    },
    "style": {
      "description": "The file extension or preprocessor to use for style files, or 'none' to skip generating the style file.",
      "type": "string",
      "default": "css",
      "enum": [
        "css",
        "scss",
        "sass",
        "less",
        "styl",
        "none"
      ]
    },
    "type": {
      "type": "string",
      "description": "Append a custom type to the component's filename. For example, if you set the type to `container`, the file will be named `my-component.container.ts`."
    },
    "skipTests": {
      "type": "boolean",
      "description": "When true, does not create \"spec.ts\" test files for the new component.",
      "default": false
    },
    "flat": {
      "type": "boolean",
      "description": "Flag to indicate if a dir is created.",
      "default": false
    },
    "skipImport": {
      "type": "boolean",
      "description": "When true, does not import this component into the owning NgModule.",
      "default": false
    },
    "selector": {
      "type": "string",
      "format": "html-selector",
      "description": "The selector to use for the component."
    },
    "skipSelector": {
      "type": "boolean",
      "default": false,
      "description": "Skip the generation of an HTML selector for the component."
    },
    "module": {
      "type": "string",
      "description": "Allows specification of the declaring module.",
      "alias": "m"
    },
    "export": {
      "type": "boolean",
      "default": false,
      "description": "When true, the declaring NgModule exports this component."
    },
    "exportDefault": {
      "type": "boolean",
      "default": false,
      "description": "Use a default export for the component in its TypeScript file instead of a named export."
    },
    "ngHtml": {
      "type": "boolean",
      "default": false,
      "description": "Generate component template files with an '.ng.html' file extension instead of '.html'."
    },
    "entryComponent": {
      "type": "boolean",
      "default": false,
      "description": "When true, the new component is the entry component of the declaring NgModule."
    },
    "classnameWithModule": {
      "type": "boolean",
      "description": "When true, Use module class name as additional prefix for the component classname.",
      "default": false
    }
  },
  "required": [
    "name"
  ]
}
