{
  "root": true,
  "ignorePatterns": [
    "node_modules/**/*",
    "dist/**/*",
    "dist-ps/**/*",
    "nuget/**/*",
    "build/**/*",
    "bundle/**/*",
    "src/generated/**/*",
    "src/coverage/**/*",
    "*.log",
    "*.lock",
    ".temp/**/*",
    ".tmp/**/*",
    "*.html",
    "*.css",
    "*.json",
    "*.spec.ts"
  ],
  "plugins": [
    "import",
    "deprecation",
    "unused-imports"
  ],
  "overrides": [
    {
      "files": [
        "*.ts"
      ],
      "parserOptions": {
        "project": [
          "tsconfig.json"
        ],
        "createDefaultProgram": true
      },
      "extends": [
        "plugin:@angular-eslint/recommended",
        "plugin:@angular-eslint/template/process-inline-templates"
      ],
      "rules": {
        "import/order": [
          "error",
          {
            "alphabetize": {
              "order": "asc",
              "caseInsensitive": true
            }
          }
        ],
        "@angular-eslint/component-selector": [
          "error",
          {
            "type": "element",
            "prefix": "sme",
            "style": "kebab-case"
          }
        ],
        "@angular-eslint/directive-selector": [
          "error",
          {
            "type": "attribute",
            "prefix": "sme",
            "style": "camelCase"
          }
        ],
        "@typescript-eslint/naming-convention": [
          "error",
          {
            "selector": "enumMember",
            "format": [
              "PascalCase"
            ]
          }
        ],
        "@angular-eslint/pipe-prefix": [
          "error",
          {
            "prefixes": [
              "sme"
            ]
          }
        ],
        "comma-dangle": [
          "error",
          "never"
        ],
        "eol-last": [
          "error",
          "always"
        ],
        "no-multiple-empty-lines": [
          "error",
          {
            "max": 1,
            "maxEOF": 0,
            "maxBOF": 0
          }
        ],
        "@typescript-eslint/consistent-type-definitions": "error",
        "max-len": [
          "warn",
          {
            "code": 180
          }
        ],
        "@typescript-eslint/no-inferrable-types": [
          "error",
          {
            "ignoreParameters": true
          }
        ],
        "@typescript-eslint/no-misused-new": "error",
        "@typescript-eslint/semi": [
          "error",
          "always"
        ],
        "@typescript-eslint/type-annotation-spacing": "error",
        "curly": "error",
        "eqeqeq": [
          "error",
          "smart"
        ],
        "no-caller": "error",
        "no-console": [
          "error",
          {
            "allow": [
              "debug",
              "info",
              "time",
              "timeEnd",
              "trace"
            ]
          }
        ],
        "no-debugger": "error",
        "no-eval": "error",
        "no-new-wrappers": "error",
        "no-trailing-spaces": "error",
        "no-undef-init": "error",
        "no-unused-labels": "error",
        "no-var": "error",
        "deprecation/deprecation": "off",
        "unused-imports/no-unused-imports": "warn",
        "unused-imports/no-unused-vars": [
          "off",
          { "vars": "all", "varsIgnorePattern": "^_", "args": "after-used", "argsIgnorePattern": "^_" }
        ]
      }
    },
    {
      "files": [
        "*.html"
      ],
      "extends": [
        "plugin:@angular-eslint/template/recommended"
      ],
      "rules": {}
    }
  ]
}