From 3433f399351214abfbf9155bb2171a13daa3456f Mon Sep 17 00:00:00 2001 From: Kristiyan Kostadinov Date: Tue, 29 Apr 2025 11:29:32 +0200 Subject: [PATCH 1/3] build: remove linting from docs site Removes the linting from the docs site directory so that we can consolidate it with the rest of the project. --- .github/workflows/ci.material-aio.yml | 16 +- .github/workflows/pr.material-aio.yml | 16 +- docs/.eslintrc.json | 94 -- docs/BUILD.bazel | 8 - docs/angular.json | 12 - docs/defs.bzl | 40 - docs/package.json | 13 - docs/scenes/.eslintrc.json | 3 - .../app/shared/doc-viewer/doc-viewer.spec.ts | 2 - .../stack-blitz/stack-blitz-writer.spec.ts | 4 - docs/src/assets/stack-blitz/src/main.ts | 2 - pnpm-lock.yaml | 871 ------------------ 12 files changed, 2 insertions(+), 1079 deletions(-) delete mode 100644 docs/.eslintrc.json delete mode 100644 docs/scenes/.eslintrc.json diff --git a/.github/workflows/ci.material-aio.yml b/.github/workflows/ci.material-aio.yml index a9758e5e6318..c62ff067985d 100644 --- a/.github/workflows/ci.material-aio.yml +++ b/.github/workflows/ci.material-aio.yml @@ -17,20 +17,6 @@ defaults: shell: bash jobs: - lint: - runs-on: ubuntu-latest - steps: - - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b - - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@e4bf37af223483ce00f9316d227fd62cd744dc4b - - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@e4bf37af223483ce00f9316d227fd62cd744dc4b - - name: Install node modules - run: pnpm install --frozen-lockfile - - name: Execute Linting - run: pnpm bazel test --test_tag_filters=lint //docs/... - build: runs-on: ubuntu-latest steps: @@ -57,7 +43,7 @@ jobs: - name: Install node modules run: pnpm install --frozen-lockfile - name: Execute Tests - run: pnpm bazel test --test_tag_filters=-lint,-e2e,-audit //docs/... + run: pnpm bazel test --test_tag_filters=-e2e,-audit //docs/... - name: Store Test Logs uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6 if: always() diff --git a/.github/workflows/pr.material-aio.yml b/.github/workflows/pr.material-aio.yml index 74ddd6b2a426..59b8ee2777a3 100644 --- a/.github/workflows/pr.material-aio.yml +++ b/.github/workflows/pr.material-aio.yml @@ -15,20 +15,6 @@ defaults: shell: bash jobs: - lint: - runs-on: ubuntu-latest - steps: - - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b - - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@e4bf37af223483ce00f9316d227fd62cd744dc4b - - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@e4bf37af223483ce00f9316d227fd62cd744dc4b - - name: Install node modules - run: pnpm install --frozen-lockfile - - name: Execute Linting - run: pnpm bazel test --test_tag_filters=lint //docs/... - build: runs-on: ubuntu-latest steps: @@ -55,7 +41,7 @@ jobs: - name: Install node modules run: pnpm install --frozen-lockfile - name: Execute Tests - run: pnpm bazel test --test_tag_filters=-lint,-e2e,-audit //docs/... + run: pnpm bazel test --test_tag_filters=-e2e,-audit //docs/... - name: Store Test Logs uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6 if: always() diff --git a/docs/.eslintrc.json b/docs/.eslintrc.json deleted file mode 100644 index d074c3945aa0..000000000000 --- a/docs/.eslintrc.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "root": true, - "ignorePatterns": ["*.d.ts", "src/assets/stack-blitz/**/*.ts"], - "overrides": [ - { - "files": ["*.ts"], - "plugins": ["@stylistic", "@typescript-eslint", "ban"], - "parserOptions": { - "project": ["tsconfig.json", "e2e/tsconfig.json"], - "createDefaultProgram": true - }, - "extends": [ - "plugin:@angular-eslint/recommended", - "plugin:@angular-eslint/template/process-inline-templates", - "plugin:@stylistic/disable-legacy" - ], - "rules": { - "@angular-eslint/component-class-suffix": "off", - "@angular-eslint/component-selector": "off", - "@angular-eslint/directive-class-suffix": "off", - "@angular-eslint/directive-selector": "off", - "@angular-eslint/no-host-metadata-property": "off", - "@typescript-eslint/dot-notation": "off", - "@typescript-eslint/member-delimiter-style": "off", - "@typescript-eslint/naming-convention": "off", - "@typescript-eslint/explicit-member-accessibility": [ - "off", - { - "accessibility": "explicit" - } - ], - "@typescript-eslint/no-inferrable-types": "off", - "@typescript-eslint/member-ordering": "off", - "@typescript-eslint/no-unused-vars": "error", - "@typescript-eslint/no-non-null-assertion": "off", - "@typescript-eslint/ban-types": "off", - "@stylistic/quotes": [ - "error", - "single", - { - "avoidEscape": true, - "allowTemplateLiterals": true - } - ], - "@stylistic/semi": ["error"], - "arrow-parens": ["off", "always"], - "brace-style": ["error", "1tbs"], - "import/order": "off", - "linebreak-style": ["error", "unix"], - "ban/ban": [ - "error", - { - "name": "fit" - }, - { - "name": "fdescribe" - }, - { - "name": "xit" - }, - { - "name": "xdescribe" - }, - { - "name": ["Object", "assign"], - "message": "Use the spread operator instead." - } - ], - "no-duplicate-imports": "error", - "no-redeclare": "error", - "object-shorthand": "off", - "no-underscore-dangle": "off", - "prefer-arrow/prefer-arrow-functions": "off", - "jsdoc/newline-after-description": "off", - "quote-props": "off" - } - }, - { - "files": ["*.html"], - "extends": ["plugin:@angular-eslint/template/recommended"], - "rules": { - "@angular-eslint/template/alt-text": "error", - "@angular-eslint/template/elements-content": "error", - "@angular-eslint/template/table-scope": "error", - "@angular-eslint/template/valid-aria": "error", - "@angular-eslint/template/click-events-have-key-events": "error", - "@angular-eslint/template/mouse-events-have-key-events": "error", - "@angular-eslint/template/no-autofocus": "error", - "@angular-eslint/template/no-distracting-elements": "error", - "@angular-eslint/template/no-positive-tabindex": "error" - } - } - ] -} diff --git a/docs/BUILD.bazel b/docs/BUILD.bazel index 2cd2451af5a5..6995fad73b1d 100644 --- a/docs/BUILD.bazel +++ b/docs/BUILD.bazel @@ -26,14 +26,6 @@ copy_to_bin( ], ) -# Lint config files -copy_to_bin( - name = "ng-base-lint-config", - srcs = [ - ".eslintrc.json", - ], -) - # The main application ng_app( name = "app", diff --git a/docs/angular.json b/docs/angular.json index 464021ffe022..031f7853a4f5 100644 --- a/docs/angular.json +++ b/docs/angular.json @@ -179,12 +179,6 @@ ] } }, - "lint": { - "builder": "@angular-eslint/builder:lint", - "options": { - "lintFilePatterns": ["src/**/*.ts", "src/**/*.html"] - } - }, "e2e": { "builder": "@angular-devkit/build-angular:protractor", "options": { @@ -290,12 +284,6 @@ } } }, - "lint": { - "builder": "@angular-eslint/builder:lint", - "options": { - "lintFilePatterns": ["scenes/**/*.ts", "scenes/**/*.html"] - } - }, "e2e": { "builder": "@angular-devkit/build-angular:protractor", "options": { diff --git a/docs/defs.bzl b/docs/defs.bzl index 0551bb96c4e2..815a4876077b 100644 --- a/docs/defs.bzl +++ b/docs/defs.bzl @@ -86,28 +86,6 @@ E2E_DEPS = [ "//docs:node_modules/webdriver-manager", ] -LINT_CONFIG = COMMON_CONFIG + [ - # Lint uses the e2e config - "//docs:ng-base-test-config", - ":ng-e2e-config", - "//docs:ng-base-lint-config", - "//docs:node_modules/@angular-eslint/builder", - "//docs:node_modules/@angular-eslint/eslint-plugin", - "//docs:node_modules/@angular-eslint/eslint-plugin-template", - "//docs:node_modules/@angular-eslint/template-parser", - "//docs:node_modules/eslint-plugin-ban", - "//docs:node_modules/eslint-plugin-import", - "//docs:node_modules/eslint-plugin-jsdoc", - "//docs:node_modules/eslint-plugin-prefer-arrow", - "//docs:node_modules/@typescript-eslint/eslint-plugin", - "//docs:node_modules/@typescript-eslint/parser", - "//docs:node_modules/@stylistic/eslint-plugin", -] -LINT_DEPS = [ - # TODO(bazel): this should be included as a transitive of @angular-devkit/architect-cli!? - "//docs:node_modules/@angular-devkit/architect", -] - # buildifier: disable=unused-variable def ng_app(name, project_name = None, deps = [], test_deps = [], e2e_deps = [], **kwargs): """ @@ -164,16 +142,6 @@ def ng_app(name, project_name = None, deps = [], test_deps = [], e2e_deps = [], visibility = ["//visibility:private"], ) - # Lint config files in addition to the root - if native.package_name() != "": - copy_to_bin( - name = "lint-config", - srcs = [ - ".eslintrc.json", - ], - visibility = ["//visibility:private"], - ) - project_name = project_name if project_name else name native.alias( @@ -234,14 +202,6 @@ def ng_app(name, project_name = None, deps = [], test_deps = [], e2e_deps = [], # **kwargs # ) - _architect_test( - project_name, - "lint", - srcs = srcs + test_srcs + e2e_srcs + deps + test_deps + NG_COMMON_DEPS + LINT_DEPS + LINT_CONFIG + ([":lint-config"] if native.package_name() != "" else []), - tags = tags + ["lint"], - **kwargs - ) - def _architect_build(project_name, configuration = None, args = [], srcs = [], **kwargs): output_dir = "%s%s" % (project_name, ".%s" % configuration if configuration else "") diff --git a/docs/package.json b/docs/package.json index a56b92594c9a..f14a0c420022 100644 --- a/docs/package.json +++ b/docs/package.json @@ -10,7 +10,6 @@ "start:prod": "ng serve --configuration production", "start:scenes": "ng serve scenes", "start:emulators": "firebase emulators:start", - "lint": "ng lint", "test": "ng test", "e2e": "ng e2e", "build": "ng build", @@ -58,24 +57,12 @@ "@angular-devkit/architect": "catalog:", "@angular-devkit/architect-cli": "catalog:", "@angular-devkit/build-angular": "catalog:", - "@angular-eslint/builder": "19.3.0", - "@angular-eslint/eslint-plugin": "19.3.0", - "@angular-eslint/eslint-plugin-template": "19.3.0", - "@angular-eslint/template-parser": "19.3.0", "@angular/cli": "catalog:", "@angular/compiler-cli": "catalog:", "@bazel/bazelisk": "^1.12.1", - "@stylistic/eslint-plugin": "^2.6.2", "@types/jasmine": "5.1.7", "@types/node": "^22.14.1", "@types/shelljs": "0.8.15", - "@typescript-eslint/eslint-plugin": "8.29.1", - "@typescript-eslint/parser": "8.29.1", - "eslint": "^8.56.0", - "eslint-plugin-ban": "^1.5.2", - "eslint-plugin-import": "^2.22.1", - "eslint-plugin-jsdoc": "^48.2.1", - "eslint-plugin-prefer-arrow": "^1.2.3", "firebase-tools": "^11.0.1", "jasmine-core": "5.6.0", "jasmine-spec-reporter": "7.0.0", diff --git a/docs/scenes/.eslintrc.json b/docs/scenes/.eslintrc.json deleted file mode 100644 index 659ccca5615d..000000000000 --- a/docs/scenes/.eslintrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "../.eslintrc.json" -} diff --git a/docs/src/app/shared/doc-viewer/doc-viewer.spec.ts b/docs/src/app/shared/doc-viewer/doc-viewer.spec.ts index adafa3963edc..947d8fe5353c 100644 --- a/docs/src/app/shared/doc-viewer/doc-viewer.spec.ts +++ b/docs/src/app/shared/doc-viewer/doc-viewer.spec.ts @@ -220,7 +220,6 @@ class DocViewerTestComponent { } const FAKE_DOCS: {[key: string]: string} = { - /* eslint-disable @typescript-eslint/naming-convention */ 'http://material.angular.io/simple-doc.html': '
my docs page
', 'http://material.angular.io/doc-with-example.html': `
Check out this example:
@@ -259,7 +258,6 @@ const FAKE_DOCS: {[key: string]: string} = { data-docs-api-module-import-button="import {MatIconModule} from '@angular/material/icon';"> `, - /* eslint-enable @typescript-eslint/naming-convention */ }; @Component({ diff --git a/docs/src/app/shared/stack-blitz/stack-blitz-writer.spec.ts b/docs/src/app/shared/stack-blitz/stack-blitz-writer.spec.ts index 28fa4b4a3ca4..0c2563b8410d 100644 --- a/docs/src/app/shared/stack-blitz/stack-blitz-writer.spec.ts +++ b/docs/src/app/shared/stack-blitz/stack-blitz-writer.spec.ts @@ -8,10 +8,8 @@ const testExampleId = 'my-test-example-id'; const testExampleBasePath = `/docs-content/examples-source/cdk/my-comp/${testExampleId}`; const FAKE_DOCS: {[key: string]: string} = { - /* eslint-disable @typescript-eslint/naming-convention */ '/assets/stack-blitz/src/index.html': '', '/assets/stack-blitz/src/main.ts': `import {MaterialDocsExample} from './material-docs-example';`, - /* eslint-enable @typescript-eslint/naming-convention */ [`${testExampleBasePath}/test.ts`]: 'ExampleComponent', [`${testExampleBasePath}/test.html`]: ``, [`${testExampleBasePath}/src/detail.ts`]: 'DetailComponent', @@ -102,7 +100,6 @@ describe('StackBlitzWriter', () => { flushMicrotasks(); const expectedFiles = jasmine.objectContaining({ - /* eslint-disable @typescript-eslint/naming-convention */ 'angular.json': 'fake', 'src/main.ts': `import {ExampleComponent} from './test';`, 'src/test.ts': 'fake', @@ -112,7 +109,6 @@ describe('StackBlitzWriter', () => { /** Copyright ${new Date().getFullYear()} Google LLC. All Rights Reserved. Use of this source code is governed by an MIT-style license that can be found in the LICENSE file at https://angular.io/license */`, - /* eslint-enable @typescript-eslint/naming-convention */ }); expect(openProjectSpy).toHaveBeenCalledTimes(1); diff --git a/docs/src/assets/stack-blitz/src/main.ts b/docs/src/assets/stack-blitz/src/main.ts index f1de1092050a..6ea53290170a 100644 --- a/docs/src/assets/stack-blitz/src/main.ts +++ b/docs/src/assets/stack-blitz/src/main.ts @@ -1,5 +1,4 @@ import '@angular/localize/init'; -import {importProvidersFrom} from '@angular/core'; import {bootstrapApplication} from '@angular/platform-browser'; import {provideHttpClient} from '@angular/common/http'; import {provideAnimations} from '@angular/platform-browser/animations'; @@ -7,7 +6,6 @@ import {VERSION as CDK_VERSION} from '@angular/cdk'; import {VERSION as MAT_VERSION, provideNativeDateAdapter} from '@angular/material/core'; import {MaterialDocsExample} from './example/material-docs-example'; -/* eslint-disable no-console */ console.info('Angular CDK version', CDK_VERSION.full); console.info('Angular Material version', MAT_VERSION.full); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b05ac98be3d0..b8489bf0ab11 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -464,18 +464,6 @@ importers: '@angular-devkit/build-angular': specifier: 'catalog:' version: 20.0.0-next.5(xomw6as5tm6jityr54yfpr3pvu) - '@angular-eslint/builder': - specifier: 19.3.0 - version: 19.3.0(chokidar@4.0.3)(eslint@8.57.1)(typescript@5.8.2) - '@angular-eslint/eslint-plugin': - specifier: 19.3.0 - version: 19.3.0(@typescript-eslint/utils@8.29.1(eslint@8.57.1)(typescript@5.8.2))(eslint@8.57.1)(typescript@5.8.2) - '@angular-eslint/eslint-plugin-template': - specifier: 19.3.0 - version: 19.3.0(@angular-eslint/template-parser@19.3.0(eslint@8.57.1)(typescript@5.8.2))(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.2))(@typescript-eslint/types@8.29.1)(@typescript-eslint/utils@8.29.1(eslint@8.57.1)(typescript@5.8.2))(eslint@8.57.1)(typescript@5.8.2) - '@angular-eslint/template-parser': - specifier: 19.3.0 - version: 19.3.0(eslint@8.57.1)(typescript@5.8.2) '@angular/cli': specifier: 'catalog:' version: 20.0.0-next.5(@types/node@22.14.1)(chokidar@4.0.3) @@ -485,9 +473,6 @@ importers: '@bazel/bazelisk': specifier: ^1.12.1 version: 1.12.1 - '@stylistic/eslint-plugin': - specifier: ^2.6.2 - version: 2.13.0(eslint@8.57.1)(typescript@5.8.2) '@types/jasmine': specifier: 5.1.7 version: 5.1.7 @@ -497,27 +482,6 @@ importers: '@types/shelljs': specifier: 0.8.15 version: 0.8.15 - '@typescript-eslint/eslint-plugin': - specifier: 8.29.1 - version: 8.29.1(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.2))(eslint@8.57.1)(typescript@5.8.2) - '@typescript-eslint/parser': - specifier: 8.29.1 - version: 8.29.1(eslint@8.57.1)(typescript@5.8.2) - eslint: - specifier: ^8.56.0 - version: 8.57.1 - eslint-plugin-ban: - specifier: ^1.5.2 - version: 1.6.0 - eslint-plugin-import: - specifier: ^2.22.1 - version: 2.31.0(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.2))(eslint@8.57.1) - eslint-plugin-jsdoc: - specifier: ^48.2.1 - version: 48.11.0(eslint@8.57.1) - eslint-plugin-prefer-arrow: - specifier: ^1.2.3 - version: 1.2.3(eslint@8.57.1) firebase-tools: specifier: ^11.0.1 version: 11.30.0(encoding@0.1.13) @@ -789,10 +753,6 @@ packages: engines: {node: ^20.11.1 || >=22.11.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} hasBin: true - '@angular-devkit/architect@0.1902.7': - resolution: {integrity: sha512-XPKbesrGJ3qOHLcwb3y8X14NlBIwxnh9OvsfyqgBujByJq0LIg4CaU/GrX0Lo4RmX3UQBli668TjFgmIkMTL7Q==} - engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - '@angular-devkit/architect@0.2000.0-next.5': resolution: {integrity: sha512-6w0P3WcWbAZeIHJU7xBCufg609vyxokUWbQiN9cdqNX4AhcFZnOJ8uE0jCAWxJedu8FIhjvKXld6640IF8S3OA==} engines: {node: ^20.11.1 || >=22.11.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} @@ -854,15 +814,6 @@ packages: webpack: ^5.30.0 webpack-dev-server: ^5.0.2 - '@angular-devkit/core@19.2.7': - resolution: {integrity: sha512-WeX/7HuNooJ4UhvVdremj6it0cX3nreG0/5r3QfrQd5Tz3sCHnh/lO5TW31gHtSqVgPjBGmzSzsyZ1Mi0lI7FA==} - engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - peerDependencies: - chokidar: ^4.0.0 - peerDependenciesMeta: - chokidar: - optional: true - '@angular-devkit/core@20.0.0-next.5': resolution: {integrity: sha512-iclWoXoWpckFYg8wo364KSaq+N8merOUSK5rUqjrlrtjXyjM2KPUi3jSrodHnoNoJwkPqqfcS5vnXJBPZhotEQ==} engines: {node: ^20.11.1 || >=22.11.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} @@ -876,45 +827,6 @@ packages: resolution: {integrity: sha512-2TvXkCnavUeH7kZNsZ88rEI1YA7LsjFncs1Td6aAezthyo3cXpigL8VPS459XespJo2hseYR3n52gW8LO/7VXQ==} engines: {node: ^20.11.1 || >=22.11.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - '@angular-eslint/builder@19.3.0': - resolution: {integrity: sha512-j9xNrzZJq29ONSG6EaeQHve0Squkm6u6Dm8fZgWP7crTFOrtLXn7Wxgxuyl9eddpbWY1Ov1gjFuwBVnxIdyAqg==} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: 5.8.2 - - '@angular-eslint/bundled-angular-compiler@19.3.0': - resolution: {integrity: sha512-63Zci4pvnUR1iSkikFlNbShF1tO5HOarYd8fvNfmOZwFfZ/1T3j3bCy9YbE+aM5SYrWqPaPP/OcwZ3wJ8WNvqA==} - - '@angular-eslint/eslint-plugin-template@19.3.0': - resolution: {integrity: sha512-WyouppTpOYut+wvv13wlqqZ8EHoDrCZxNfGKuEUYK1BPmQlTB8EIZfQH4iR1rFVS28Rw+XRIiXo1x3oC0SOfnA==} - peerDependencies: - '@angular-eslint/template-parser': '*' - '@typescript-eslint/parser': '*' - '@typescript-eslint/types': ^7.11.0 || ^8.0.0 - '@typescript-eslint/utils': ^7.11.0 || ^8.0.0 - eslint: ^8.57.0 || ^9.0.0 - typescript: 5.8.2 - - '@angular-eslint/eslint-plugin@19.3.0': - resolution: {integrity: sha512-nBLslLI20KnVbqlfNW7GcnI9R6cYCvRGjOE2QYhzxM316ciAQ62tvQuXP9ZVnRBLSKDAVnMeC0eTq9O4ysrxrQ==} - peerDependencies: - '@typescript-eslint/utils': ^7.11.0 || ^8.0.0 - eslint: ^8.57.0 || ^9.0.0 - typescript: 5.8.2 - - '@angular-eslint/template-parser@19.3.0': - resolution: {integrity: sha512-VxMNgsHXMWbbmZeBuBX5i8pzsSSEaoACVpaE+j8Muk60Am4Mxc0PytJm4n3znBSvI3B7Kq2+vStSRYPkOER4lA==} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: 5.8.2 - - '@angular-eslint/utils@19.3.0': - resolution: {integrity: sha512-ovvbQh96FIJfepHqLCMdKFkPXr3EbcvYc9kMj9hZyIxs/9/VxwPH7x25mMs4VsL6rXVgH2FgG5kR38UZlcTNNw==} - peerDependencies: - '@typescript-eslint/utils': ^7.11.0 || ^8.0.0 - eslint: ^8.57.0 || ^9.0.0 - typescript: 5.8.2 - '@angular/animations@20.0.0-next.5': resolution: {integrity: sha512-Ys3nI47vkOcVCcqAOT8Gozwl/4qpfNXo5EDLw5eKksiKlJTkpJtNu1Ljxk34hJwTTqdYYYOIgHxaJTTf5XdxuQ==} engines: {node: ^20.11.1 || >=22.11.0} @@ -1610,10 +1522,6 @@ packages: resolution: {integrity: sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==} engines: {node: '>=14.17.0'} - '@es-joy/jsdoccomment@0.46.0': - resolution: {integrity: sha512-C3Axuq1xd/9VqFZpW4YAzOx5O9q/LP46uIQy/iNDpHG3fmPa6TBtvfglMCs3RBiBxAIi0Go97r8+jvTt55XMyQ==} - engines: {node: '>=16'} - '@esbuild/aix-ppc64@0.25.2': resolution: {integrity: sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==} engines: {node: '>=18'} @@ -1896,24 +1804,6 @@ packages: cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.6.0': - resolution: {integrity: sha512-WhCn7Z7TauhBtmzhvKpoQs0Wwb/kBcy4CwpuI0/eEIr2Lx2auxmulAzLr91wVZJaz47iUZdkXOK7WlAfxGKCnA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.12.1': - resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@eslint/js@8.57.1': - resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@firebase/app-types@0.7.0': resolution: {integrity: sha512-6fbHQwDv2jp/v6bXhBw2eSRbNBpxHcd1NBF864UksSMVIqIyri9qpJB1Mn6sGZE+bnDsSQBC5j2TbMxYsJQkQg==} @@ -1999,19 +1889,6 @@ packages: engines: {node: '>=6'} hasBin: true - '@humanwhocodes/config-array@0.13.0': - resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead - - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead - '@inquirer/checkbox@4.1.5': resolution: {integrity: sha512-swPczVU+at65xa5uPfNP9u3qx/alNwiaykiI/ExpsmMSQW55trmZcwhYWzw/7fj+n6Q8z1eENvR7vFfq9oPSAQ==} engines: {node: '>=18'} @@ -2656,10 +2533,6 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@pkgr/core@0.1.2': - resolution: {integrity: sha512-fdDH1LSGfZdTH2sxdpVMw31BanV28K/Gry0cVFxaNP77neJSkd82mM8ErPNYs9e+0O7SdHBLTDzDgwUuy18RnQ==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@pnpm/config.env-replace@1.1.0': resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} engines: {node: '>=12.22.0'} @@ -2839,9 +2712,6 @@ packages: cpu: [x64] os: [win32] - '@rtsao/scc@1.1.0': - resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - '@schematics/angular@20.0.0-next.5': resolution: {integrity: sha512-euFaM/xjHasUSDS/JVMzb9u/SWJMK5/bCdbZRyANZfarjYxkFSLV0CaTrIEgls0R5SmEKryNzMOwo51YsD43Gg==} engines: {node: ^20.11.1 || >=22.11.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} @@ -2904,12 +2774,6 @@ packages: '@stackblitz/sdk@1.11.0': resolution: {integrity: sha512-DFQGANNkEZRzFk1/rDP6TcFdM82ycHE+zfl9C/M/jXlH68jiqHWHFMQURLELoD8koxvu/eW5uhg94NSAZlYrUQ==} - '@stylistic/eslint-plugin@2.13.0': - resolution: {integrity: sha512-RnO1SaiCFHn666wNz2QfZEFxvmiNRqhzaMXHXxXXKt+MEP7aajlPxUSMIQpKAaJfverpovEYqjBOXDq6dDcaOQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=8.40.0' - '@szmarczak/http-timer@1.1.2': resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} engines: {node: '>=6'} @@ -3032,9 +2896,6 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/json5@0.0.29': - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/keyv@3.1.4': resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} @@ -3178,56 +3039,6 @@ packages: '@types/youtube@0.1.0': resolution: {integrity: sha512-Pg33m3X2mFgdmhtvzOlAfUfgOa3341N3/2JCrVY/mXVxb4hagcqqEG6w4vGCfB64StQNWHSj/T8Eotb1Rko/FQ==} - '@typescript-eslint/eslint-plugin@8.29.1': - resolution: {integrity: sha512-ba0rr4Wfvg23vERs3eB+P3lfj2E+2g3lhWcCVukUuhtcdUx5lSIFZlGFEBHKr+3zizDa/TvZTptdNHVZWAkSBg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 - eslint: ^8.57.0 || ^9.0.0 - typescript: 5.8.2 - - '@typescript-eslint/parser@8.29.1': - resolution: {integrity: sha512-zczrHVEqEaTwh12gWBIJWj8nx+ayDcCJs06yoNMY0kwjMWDM6+kppljY+BxWI06d2Ja+h4+WdufDcwMnnMEWmg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: 5.8.2 - - '@typescript-eslint/scope-manager@8.29.1': - resolution: {integrity: sha512-2nggXGX5F3YrsGN08pw4XpMLO1Rgtnn4AzTegC2MDesv6q3QaTU5yU7IbS1tf1IwCR0Hv/1EFygLn9ms6LIpDA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/type-utils@8.29.1': - resolution: {integrity: sha512-DkDUSDwZVCYN71xA4wzySqqcZsHKic53A4BLqmrWFFpOpNSoxX233lwGu/2135ymTCR04PoKiEEEvN1gFYg4Tw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: 5.8.2 - - '@typescript-eslint/types@8.29.1': - resolution: {integrity: sha512-VT7T1PuJF1hpYC3AGm2rCgJBjHL3nc+A/bhOp9sGMKfi5v0WufsX/sHCFBfNTx2F+zA6qBc/PD0/kLRLjdt8mQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/typescript-estree@8.29.1': - resolution: {integrity: sha512-l1enRoSaUkQxOQnbi0KPUtqeZkSiFlqrx9/3ns2rEDhGKfTa+88RmXqedC1zmVTOWrLc2e6DEJrTA51C9iLH5g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: 5.8.2 - - '@typescript-eslint/utils@8.29.1': - resolution: {integrity: sha512-QAkFEbytSaB8wnmB+DflhUPz6CLbFWE2SnSCrRMEa+KnXIzDYbpsn++1HGvnfAsUY44doDXmvRkO5shlM/3UfA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: 5.8.2 - - '@typescript-eslint/visitor-keys@8.29.1': - resolution: {integrity: sha512-RGLh5CRaUEf02viP5c1Vh1cMGffQscyHe7HPAzGpfmfflFg1wUz2rYxd+OZqwpeypYvZ8UxSxuIpF++fmOzEcg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@ungap/structured-clone@1.3.0': - resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - '@vitejs/plugin-basic-ssl@2.0.0': resolution: {integrity: sha512-gc9Tjg8bUxBVSTzeWT3Njc0Cl3PakHFKdNfABnZWiUgbxqmHDEn7uECv3fHVylxoYgNzAcmU7ZrILz+BwSo3sA==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -3473,10 +3284,6 @@ packages: resolution: {integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==} engines: {node: '>= 10'} - are-docs-informative@0.0.2: - resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} - engines: {node: '>=14'} - arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} @@ -3486,10 +3293,6 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-query@5.3.2: - resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} - engines: {node: '>= 0.4'} - array-buffer-byte-length@1.0.2: resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} @@ -3500,10 +3303,6 @@ packages: array-flatten@3.0.0: resolution: {integrity: sha512-zPMVc3ZYlGLNk4mpK1NzP2wg0ml9t7fUgDsayR5Y5rSzxQilzR9FGu/EH2jQOcKSAeAfWeylyW8juy3OkWRvNA==} - array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} - engines: {node: '>= 0.4'} - array-union@1.0.2: resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==} engines: {node: '>=0.10.0'} @@ -3516,18 +3315,6 @@ packages: resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} engines: {node: '>=0.10.0'} - array.prototype.findlastindex@1.2.6: - resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==} - engines: {node: '>= 0.4'} - - array.prototype.flat@1.3.3: - resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} - engines: {node: '>= 0.4'} - - array.prototype.flatmap@1.3.3: - resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} - engines: {node: '>= 0.4'} - arraybuffer.prototype.slice@1.0.4: resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} engines: {node: '>= 0.4'} @@ -3608,10 +3395,6 @@ packages: resolution: {integrity: sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==} engines: {node: '>=4'} - axobject-query@4.1.0: - resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} - engines: {node: '>= 0.4'} - b4a@1.6.7: resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} @@ -4124,10 +3907,6 @@ packages: resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} engines: {node: '>= 6'} - comment-parser@1.4.1: - resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} - engines: {node: '>= 12.0.0'} - commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} @@ -4552,14 +4331,6 @@ packages: resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} engines: {node: '>=6'} - doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dom-serialize@2.2.1: resolution: {integrity: sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==} @@ -4738,10 +4509,6 @@ packages: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} - es-shim-unscopables@1.1.0: - resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} - engines: {node: '>= 0.4'} - es-to-primitive@1.3.0: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} @@ -4819,67 +4586,10 @@ packages: engines: {node: '>=6.0'} hasBin: true - eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - - eslint-module-utils@2.12.0: - resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - - eslint-plugin-ban@1.6.0: - resolution: {integrity: sha512-gZptoV+SFHOHO57/5lmPvizMvSXrjFatP9qlVQf3meL/WHo9TxSoERygrMlESl19CPh95U86asTxohT8OprwDw==} - engines: {node: '>=0.10.0'} - - eslint-plugin-import@2.31.0: - resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - - eslint-plugin-jsdoc@48.11.0: - resolution: {integrity: sha512-d12JHJDPNo7IFwTOAItCeJY1hcqoIxE0lHA8infQByLilQ9xkqrRa6laWCnsuCrf+8rUnvxXY1XuTbibRBNylA==} - engines: {node: '>=18'} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - - eslint-plugin-prefer-arrow@1.2.3: - resolution: {integrity: sha512-J9I5PKCOJretVuiZRGvPQxCbllxGAV/viI20JO3LYblAodofBxyMnZAJ+WGeClHgANnSJberTNoFWWjrWKBuXQ==} - peerDependencies: - eslint: '>=2.0.0' - eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-scope@8.3.0: - resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint-visitor-keys@1.3.0: resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} engines: {node: '>=4'} @@ -4888,24 +4598,10 @@ packages: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@4.2.0: - resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - eslint@8.57.1: - resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. - hasBin: true - esniff@2.0.1: resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} engines: {node: '>=0.10'} - espree@10.3.0: - resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - espree@7.3.1: resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==} engines: {node: ^10.12.0 || >=12.0.0} @@ -5400,10 +5096,6 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} @@ -5487,9 +5179,6 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - grpc-gcp@1.0.1: resolution: {integrity: sha512-06r73IoGaAIpzT+DRPnw7V5BXvZ5mjy1OcKqSPX+ZHOgbLxT+lJfz8IN83z/sbA3t55ZX88MfDaaCjDGdveVIA==} engines: {node: '>=12'} @@ -6273,10 +5962,6 @@ packages: jsbn@1.1.0: resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} - jsdoc-type-pratt-parser@4.0.0: - resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} - engines: {node: '>=12.0.0'} - jsdoc@4.0.4: resolution: {integrity: sha512-zeFezwyXeG4syyYHbvh1A967IAqq/67yXtXvuL5wnqCkFZe8I0vKfm+EO+YEvLguo6w9CDUbrAXVtJSHh2E8rw==} engines: {node: '>=12.0.0'} @@ -6329,16 +6014,9 @@ packages: json-schema@0.4.0: resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - json-stringify-safe@5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true - json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} @@ -6491,10 +6169,6 @@ packages: resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} engines: {node: '>= 0.8.0'} - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - libsodium-wrappers@0.7.15: resolution: {integrity: sha512-E4anqJQwcfiC6+Yrl01C1m8p99wEhLmJSs0VQqST66SbQXXBoaJY0pF4BNjRYa/sOQAxx6lXAaAFIlx+15tXJQ==} @@ -6631,9 +6305,6 @@ packages: lodash.keys@2.4.1: resolution: {integrity: sha512-ZpJhwvUXHSNL5wYd1RM6CUa2ZuqorG9ngoJ9Ix5Cce+uX7I5O/E06FCJdhSZ33b5dVyeQDnIlWH7B2s5uByZ7g==} - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - lodash.once@4.1.1: resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} @@ -7058,9 +6729,6 @@ packages: nash@3.0.0: resolution: {integrity: sha512-M5SahEycXUmko3zOvsBkF6p94CWLhnyy9hfpQ9Qzp+rQkQ8D1OaTlfTl1OBWktq9Fak3oDXKU+ev7tiMaMu+1w==} - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - needle@3.3.1: resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==} engines: {node: '>= 4.4.x'} @@ -7243,18 +6911,6 @@ packages: resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} engines: {node: '>= 0.4'} - object.fromentries@2.0.8: - resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} - engines: {node: '>= 0.4'} - - object.groupby@1.0.3: - resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} - engines: {node: '>= 0.4'} - - object.values@1.2.1: - resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} - engines: {node: '>= 0.4'} - objectdiff@1.1.0: resolution: {integrity: sha512-erLmuAAfFoU13H1ud2b8btqsCLjHaSmQh5h+BoZSjMbIaeHp9v5xCSyEWN/AJHge4dHBR/dY/QhpuVMhYLoF+g==} engines: {node: '>=0.2.0'} @@ -7318,10 +6974,6 @@ packages: resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} engines: {node: '>= 0.8.0'} - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - ora@3.4.0: resolution: {integrity: sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==} engines: {node: '>=6'} @@ -7434,10 +7086,6 @@ packages: parse-cache-control@1.0.1: resolution: {integrity: sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==} - parse-imports@2.2.1: - resolution: {integrity: sha512-OL/zLggRp8mFhKL0rNORUTR4yBYujK/uU+xZL+/0Rgm2QE4nLO9v8PzEweSJEbMGKmDRjJE4R3IMJlL2di4JeQ==} - engines: {node: '>= 18'} - parse-json@4.0.0: resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} engines: {node: '>=4'} @@ -7653,10 +7301,6 @@ packages: resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} engines: {node: '>= 0.8.0'} - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - prepend-http@2.0.0: resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} engines: {node: '>=4'} @@ -7996,10 +7640,6 @@ packages: require-main-filename@2.0.0: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} - requireindex@1.2.0: - resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==} - engines: {node: '>=0.10.5'} - requirejs@2.3.7: resolution: {integrity: sha512-DouTG8T1WanGok6Qjg2SXuCMzszOo0eHeH9hDZ5Y4x8Je+9JB38HdTLT4/VA8OaUhBa0JPVHJ0pyBkM1z+pDsw==} engines: {node: '>=0.4.0'} @@ -8156,9 +7796,6 @@ packages: resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} engines: {npm: '>=2.0.0'} - rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - rxjs@7.8.2: resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} @@ -8374,9 +8011,6 @@ packages: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} engines: {node: '>=12'} - slashes@3.0.12: - resolution: {integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==} - slice-ansi@4.0.0: resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} engines: {node: '>=10'} @@ -8470,9 +8104,6 @@ packages: spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - spdx-expression-parse@4.0.0: - resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} - spdx-license-ids@3.0.21: resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==} @@ -8703,10 +8334,6 @@ packages: swap-case@1.1.2: resolution: {integrity: sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==} - synckit@0.9.2: - resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==} - engines: {node: ^14.18.0 || >=16.0.0} - table@6.9.0: resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==} engines: {node: '>=10.0.0'} @@ -8782,9 +8409,6 @@ packages: text-hex@1.0.0: resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - thingies@1.21.0: resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} engines: {node: '>=10.18'} @@ -8878,12 +8502,6 @@ packages: trough@1.0.5: resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==} - ts-api-utils@2.1.0: - resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} - engines: {node: '>=18.12'} - peerDependencies: - typescript: 5.8.2 - ts-node@10.9.2: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true @@ -8898,9 +8516,6 @@ packages: '@swc/wasm': optional: true - tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} - tsec@0.2.2: resolution: {integrity: sha512-gKm+nnIKcE9xtrJw2cIJFjfuDGK0AvH3r4RayTEIkUvja/s9z9GPFgcSdEaapm6N10KrmWWcLjsHlKmH2tqzMw==} hasBin: true @@ -8971,10 +8586,6 @@ packages: resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} engines: {node: '>= 0.8.0'} - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - type-fest@0.18.1: resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} engines: {node: '>=10'} @@ -9656,13 +9267,6 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular-devkit/architect@0.1902.7(chokidar@4.0.3)': - dependencies: - '@angular-devkit/core': 19.2.7(chokidar@4.0.3) - rxjs: 7.8.1 - transitivePeerDependencies: - - chokidar - '@angular-devkit/architect@0.2000.0-next.5(chokidar@4.0.3)': dependencies: '@angular-devkit/core': 20.0.0-next.5(chokidar@4.0.3) @@ -9770,17 +9374,6 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular-devkit/core@19.2.7(chokidar@4.0.3)': - dependencies: - ajv: 8.17.1 - ajv-formats: 3.0.1 - jsonc-parser: 3.3.1 - picomatch: 4.0.2 - rxjs: 7.8.1 - source-map: 0.7.4 - optionalDependencies: - chokidar: 4.0.3 - '@angular-devkit/core@20.0.0-next.5(chokidar@4.0.3)': dependencies: ajv: 8.17.1 @@ -9802,52 +9395,6 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular-eslint/builder@19.3.0(chokidar@4.0.3)(eslint@8.57.1)(typescript@5.8.2)': - dependencies: - '@angular-devkit/architect': 0.1902.7(chokidar@4.0.3) - '@angular-devkit/core': 19.2.7(chokidar@4.0.3) - eslint: 8.57.1 - typescript: 5.8.2 - transitivePeerDependencies: - - chokidar - - '@angular-eslint/bundled-angular-compiler@19.3.0': {} - - '@angular-eslint/eslint-plugin-template@19.3.0(@angular-eslint/template-parser@19.3.0(eslint@8.57.1)(typescript@5.8.2))(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.2))(@typescript-eslint/types@8.29.1)(@typescript-eslint/utils@8.29.1(eslint@8.57.1)(typescript@5.8.2))(eslint@8.57.1)(typescript@5.8.2)': - dependencies: - '@angular-eslint/bundled-angular-compiler': 19.3.0 - '@angular-eslint/template-parser': 19.3.0(eslint@8.57.1)(typescript@5.8.2) - '@angular-eslint/utils': 19.3.0(@typescript-eslint/utils@8.29.1(eslint@8.57.1)(typescript@5.8.2))(eslint@8.57.1)(typescript@5.8.2) - '@typescript-eslint/parser': 8.29.1(eslint@8.57.1)(typescript@5.8.2) - '@typescript-eslint/types': 8.29.1 - '@typescript-eslint/utils': 8.29.1(eslint@8.57.1)(typescript@5.8.2) - aria-query: 5.3.2 - axobject-query: 4.1.0 - eslint: 8.57.1 - typescript: 5.8.2 - - '@angular-eslint/eslint-plugin@19.3.0(@typescript-eslint/utils@8.29.1(eslint@8.57.1)(typescript@5.8.2))(eslint@8.57.1)(typescript@5.8.2)': - dependencies: - '@angular-eslint/bundled-angular-compiler': 19.3.0 - '@angular-eslint/utils': 19.3.0(@typescript-eslint/utils@8.29.1(eslint@8.57.1)(typescript@5.8.2))(eslint@8.57.1)(typescript@5.8.2) - '@typescript-eslint/utils': 8.29.1(eslint@8.57.1)(typescript@5.8.2) - eslint: 8.57.1 - typescript: 5.8.2 - - '@angular-eslint/template-parser@19.3.0(eslint@8.57.1)(typescript@5.8.2)': - dependencies: - '@angular-eslint/bundled-angular-compiler': 19.3.0 - eslint: 8.57.1 - eslint-scope: 8.3.0 - typescript: 5.8.2 - - '@angular-eslint/utils@19.3.0(@typescript-eslint/utils@8.29.1(eslint@8.57.1)(typescript@5.8.2))(eslint@8.57.1)(typescript@5.8.2)': - dependencies: - '@angular-eslint/bundled-angular-compiler': 19.3.0 - '@typescript-eslint/utils': 8.29.1(eslint@8.57.1)(typescript@5.8.2) - eslint: 8.57.1 - typescript: 5.8.2 - '@angular/animations@20.0.0-next.5(@angular/common@20.0.0-next.5(@angular/compiler-cli@20.0.0-next.5(@angular/compiler@20.0.0-next.5)(typescript@5.8.2))(@angular/core@20.0.0-next.5(@angular/compiler@20.0.0-next.5)(rxjs@6.6.7)(zone.js@0.15.0))(rxjs@6.6.7))(@angular/compiler-cli@20.0.0-next.5(@angular/compiler@20.0.0-next.5)(typescript@5.8.2))(@angular/core@20.0.0-next.5(@angular/compiler@20.0.0-next.5)(rxjs@6.6.7)(zone.js@0.15.0))': dependencies: '@angular/common': 20.0.0-next.5(@angular/compiler-cli@20.0.0-next.5(@angular/compiler@20.0.0-next.5)(typescript@5.8.2))(@angular/core@20.0.0-next.5(@angular/compiler@20.0.0-next.5)(rxjs@6.6.7)(zone.js@0.15.0))(rxjs@6.6.7) @@ -10759,12 +10306,6 @@ snapshots: '@discoveryjs/json-ext@0.6.3': {} - '@es-joy/jsdoccomment@0.46.0': - dependencies: - comment-parser: 1.4.1 - esquery: 1.6.0 - jsdoc-type-pratt-parser: 4.0.0 - '@esbuild/aix-ppc64@0.25.2': optional: true @@ -10906,29 +10447,6 @@ snapshots: '@esbuild/win32-x64@0.25.2': optional: true - '@eslint-community/eslint-utils@4.6.0(eslint@8.57.1)': - dependencies: - eslint: 8.57.1 - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.12.1': {} - - '@eslint/eslintrc@2.1.4': - dependencies: - ajv: 6.12.6 - debug: 4.4.0(supports-color@10.0.0) - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.2 - import-fresh: 3.3.1 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@eslint/js@8.57.1': {} - '@firebase/app-types@0.7.0': {} '@google-cloud/common@5.0.2(encoding@0.1.13)(supports-color@10.0.0)': @@ -11084,18 +10602,6 @@ snapshots: protobufjs: 7.4.0 yargs: 17.7.2 - '@humanwhocodes/config-array@0.13.0': - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.4.0(supports-color@10.0.0) - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/object-schema@2.0.3': {} - '@inquirer/checkbox@4.1.5(@types/node@22.14.1)': dependencies: '@inquirer/core': 10.1.10(@types/node@22.14.1) @@ -11724,8 +11230,6 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@pkgr/core@0.1.2': {} - '@pnpm/config.env-replace@1.1.0': {} '@pnpm/network.ca-file@1.0.2': @@ -11882,8 +11386,6 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.39.0': optional: true - '@rtsao/scc@1.1.0': {} - '@schematics/angular@20.0.0-next.5(chokidar@4.0.3)': dependencies: '@angular-devkit/core': 20.0.0-next.5(chokidar@4.0.3) @@ -11970,18 +11472,6 @@ snapshots: '@stackblitz/sdk@1.11.0': {} - '@stylistic/eslint-plugin@2.13.0(eslint@8.57.1)(typescript@5.8.2)': - dependencies: - '@typescript-eslint/utils': 8.29.1(eslint@8.57.1)(typescript@5.8.2) - eslint: 8.57.1 - eslint-visitor-keys: 4.2.0 - espree: 10.3.0 - estraverse: 5.3.0 - picomatch: 4.0.2 - transitivePeerDependencies: - - supports-color - - typescript - '@szmarczak/http-timer@1.1.2': dependencies: defer-to-connect: 1.1.3 @@ -12126,8 +11616,6 @@ snapshots: '@types/json-schema@7.0.15': {} - '@types/json5@0.0.29': {} - '@types/keyv@3.1.4': dependencies: '@types/node': 22.14.1 @@ -12277,85 +11765,6 @@ snapshots: '@types/youtube@0.1.0': {} - '@typescript-eslint/eslint-plugin@8.29.1(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.2))(eslint@8.57.1)(typescript@5.8.2)': - dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.29.1(eslint@8.57.1)(typescript@5.8.2) - '@typescript-eslint/scope-manager': 8.29.1 - '@typescript-eslint/type-utils': 8.29.1(eslint@8.57.1)(typescript@5.8.2) - '@typescript-eslint/utils': 8.29.1(eslint@8.57.1)(typescript@5.8.2) - '@typescript-eslint/visitor-keys': 8.29.1 - eslint: 8.57.1 - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.8.2) - typescript: 5.8.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.2)': - dependencies: - '@typescript-eslint/scope-manager': 8.29.1 - '@typescript-eslint/types': 8.29.1 - '@typescript-eslint/typescript-estree': 8.29.1(typescript@5.8.2) - '@typescript-eslint/visitor-keys': 8.29.1 - debug: 4.4.0(supports-color@10.0.0) - eslint: 8.57.1 - typescript: 5.8.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@8.29.1': - dependencies: - '@typescript-eslint/types': 8.29.1 - '@typescript-eslint/visitor-keys': 8.29.1 - - '@typescript-eslint/type-utils@8.29.1(eslint@8.57.1)(typescript@5.8.2)': - dependencies: - '@typescript-eslint/typescript-estree': 8.29.1(typescript@5.8.2) - '@typescript-eslint/utils': 8.29.1(eslint@8.57.1)(typescript@5.8.2) - debug: 4.4.0(supports-color@10.0.0) - eslint: 8.57.1 - ts-api-utils: 2.1.0(typescript@5.8.2) - typescript: 5.8.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@8.29.1': {} - - '@typescript-eslint/typescript-estree@8.29.1(typescript@5.8.2)': - dependencies: - '@typescript-eslint/types': 8.29.1 - '@typescript-eslint/visitor-keys': 8.29.1 - debug: 4.4.0(supports-color@10.0.0) - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.1 - ts-api-utils: 2.1.0(typescript@5.8.2) - typescript: 5.8.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.29.1(eslint@8.57.1)(typescript@5.8.2)': - dependencies: - '@eslint-community/eslint-utils': 4.6.0(eslint@8.57.1) - '@typescript-eslint/scope-manager': 8.29.1 - '@typescript-eslint/types': 8.29.1 - '@typescript-eslint/typescript-estree': 8.29.1(typescript@5.8.2) - eslint: 8.57.1 - typescript: 5.8.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/visitor-keys@8.29.1': - dependencies: - '@typescript-eslint/types': 8.29.1 - eslint-visitor-keys: 4.2.0 - - '@ungap/structured-clone@1.3.0': {} - '@vitejs/plugin-basic-ssl@2.0.0(vite@6.2.5(@types/node@22.14.1)(jiti@1.21.7)(less@4.3.0)(sass@1.86.3)(terser@5.39.0)(yaml@2.7.1))': dependencies: vite: 6.2.5(@types/node@22.14.1)(jiti@1.21.7)(less@4.3.0)(sass@1.86.3)(terser@5.39.0)(yaml@2.7.1) @@ -12625,8 +12034,6 @@ snapshots: tar-stream: 2.2.0 zip-stream: 4.1.1 - are-docs-informative@0.0.2: {} - arg@4.1.3: {} argparse@1.0.10: @@ -12635,8 +12042,6 @@ snapshots: argparse@2.0.1: {} - aria-query@5.3.2: {} - array-buffer-byte-length@1.0.2: dependencies: call-bound: 1.0.4 @@ -12646,15 +12051,6 @@ snapshots: array-flatten@3.0.0: {} - array-includes@3.1.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - is-string: 1.1.1 - array-union@1.0.2: dependencies: array-uniq: 1.0.3 @@ -12663,30 +12059,6 @@ snapshots: array-uniq@1.0.3: {} - array.prototype.findlastindex@1.2.6: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-shim-unscopables: 1.1.0 - - array.prototype.flat@1.3.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-shim-unscopables: 1.1.0 - - array.prototype.flatmap@1.3.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-shim-unscopables: 1.1.0 - arraybuffer.prototype.slice@1.0.4: dependencies: array-buffer-byte-length: 1.0.2 @@ -12759,8 +12131,6 @@ snapshots: axe-core@4.7.2: {} - axobject-query@4.1.0: {} - b4a@1.6.7: {} babel-loader@10.0.0(@babel/core@7.26.10)(webpack@5.99.5(esbuild@0.25.2)): @@ -13359,8 +12729,6 @@ snapshots: commander@6.2.1: {} - comment-parser@1.4.1: {} - commondir@1.0.1: {} compare-semver@1.1.0: @@ -13781,14 +13149,6 @@ snapshots: dependencies: '@leichtgewicht/ip-codec': 2.0.5 - doctrine@2.1.0: - dependencies: - esutils: 2.0.3 - - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - dom-serialize@2.2.1: dependencies: custom-event: 1.0.1 @@ -14035,10 +13395,6 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.2 - es-shim-unscopables@1.1.0: - dependencies: - hasown: 2.0.2 - es-to-primitive@1.3.0: dependencies: is-callable: 1.2.7 @@ -14169,142 +13525,15 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-import-resolver-node@0.3.9: - dependencies: - debug: 3.2.7 - is-core-module: 2.16.1 - resolve: 1.22.10 - transitivePeerDependencies: - - supports-color - - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1): - dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 8.29.1(eslint@8.57.1)(typescript@5.8.2) - eslint: 8.57.1 - eslint-import-resolver-node: 0.3.9 - transitivePeerDependencies: - - supports-color - - eslint-plugin-ban@1.6.0: - dependencies: - requireindex: 1.2.0 - - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.2))(eslint@8.57.1): - dependencies: - '@rtsao/scc': 1.1.0 - array-includes: 3.1.8 - array.prototype.findlastindex: 1.2.6 - array.prototype.flat: 1.3.3 - array.prototype.flatmap: 1.3.3 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.57.1 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1) - hasown: 2.0.2 - is-core-module: 2.16.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.1 - semver: 6.3.1 - string.prototype.trimend: 1.0.9 - tsconfig-paths: 3.15.0 - optionalDependencies: - '@typescript-eslint/parser': 8.29.1(eslint@8.57.1)(typescript@5.8.2) - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - eslint-plugin-jsdoc@48.11.0(eslint@8.57.1): - dependencies: - '@es-joy/jsdoccomment': 0.46.0 - are-docs-informative: 0.0.2 - comment-parser: 1.4.1 - debug: 4.4.0(supports-color@10.0.0) - escape-string-regexp: 4.0.0 - eslint: 8.57.1 - espree: 10.3.0 - esquery: 1.6.0 - parse-imports: 2.2.1 - semver: 7.7.1 - spdx-expression-parse: 4.0.0 - synckit: 0.9.2 - transitivePeerDependencies: - - supports-color - - eslint-plugin-prefer-arrow@1.2.3(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - eslint-scope@5.1.1: dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 - eslint-scope@7.2.2: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-scope@8.3.0: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - eslint-visitor-keys@1.3.0: {} eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.2.0: {} - - eslint@8.57.1: - dependencies: - '@eslint-community/eslint-utils': 4.6.0(eslint@8.57.1) - '@eslint-community/regexpp': 4.12.1 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.1 - '@humanwhocodes/config-array': 0.13.0 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.3.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.0(supports-color@10.0.0) - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.6.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - esniff@2.0.1: dependencies: d: 1.0.2 @@ -14312,12 +13541,6 @@ snapshots: event-emitter: 0.3.5 type: 2.7.3 - espree@10.3.0: - dependencies: - acorn: 8.14.1 - acorn-jsx: 5.3.2(acorn@8.14.1) - eslint-visitor-keys: 4.2.0 - espree@7.3.1: dependencies: acorn: 7.4.1 @@ -15085,10 +14308,6 @@ snapshots: globals@11.12.0: {} - globals@13.24.0: - dependencies: - type-fest: 0.20.2 - globalthis@1.0.4: dependencies: define-properties: 1.2.1 @@ -15275,8 +14494,6 @@ snapshots: graceful-fs@4.2.11: {} - graphemer@1.4.0: {} - grpc-gcp@1.0.1: dependencies: '@grpc/grpc-js': 1.13.2 @@ -16093,8 +15310,6 @@ snapshots: jsbn@1.1.0: {} - jsdoc-type-pratt-parser@4.0.0: {} - jsdoc@4.0.4: dependencies: '@babel/parser': 7.27.0 @@ -16147,14 +15362,8 @@ snapshots: json-schema@0.4.0: {} - json-stable-stringify-without-jsonify@1.0.1: {} - json-stringify-safe@5.0.1: {} - json5@1.0.2: - dependencies: - minimist: 1.2.8 - json5@2.2.3: {} jsonc-parser@3.3.1: {} @@ -16380,11 +15589,6 @@ snapshots: prelude-ls: 1.1.2 type-check: 0.3.2 - levn@0.4.1: - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - libsodium-wrappers@0.7.15: dependencies: libsodium: 0.7.15 @@ -16580,8 +15784,6 @@ snapshots: lodash._shimkeys: 2.4.1 lodash.isobject: 2.4.1 - lodash.merge@4.6.2: {} - lodash.once@4.1.1: {} lodash.snakecase@4.1.1: {} @@ -17031,8 +16233,6 @@ snapshots: lodash: 4.17.21 minimist: 1.2.8 - natural-compare@1.4.0: {} - needle@3.3.1: dependencies: iconv-lite: 0.6.3 @@ -17236,26 +16436,6 @@ snapshots: has-symbols: 1.1.0 object-keys: 1.1.1 - object.fromentries@2.0.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - - object.groupby@1.0.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - - object.values@1.2.1: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - objectdiff@1.1.0: {} obuf@1.1.2: {} @@ -17326,15 +16506,6 @@ snapshots: type-check: 0.3.2 word-wrap: 1.2.5 - optionator@0.9.4: - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.5 - ora@3.4.0: dependencies: chalk: 2.4.2 @@ -17494,11 +16665,6 @@ snapshots: parse-cache-control@1.0.1: {} - parse-imports@2.2.1: - dependencies: - es-module-lexer: 1.6.0 - slashes: 3.0.12 - parse-json@4.0.0: dependencies: error-ex: 1.3.2 @@ -17680,8 +16846,6 @@ snapshots: prelude-ls@1.1.2: {} - prelude-ls@1.2.1: {} - prepend-http@2.0.0: {} prettier@3.5.3: {} @@ -18174,8 +17338,6 @@ snapshots: require-main-filename@2.0.0: {} - requireindex@1.2.0: {} - requirejs@2.3.7: {} requires-port@1.0.0: {} @@ -18376,10 +17538,6 @@ snapshots: dependencies: tslib: 1.14.1 - rxjs@7.8.1: - dependencies: - tslib: 2.8.1 - rxjs@7.8.2: dependencies: tslib: 2.8.1 @@ -18649,8 +17807,6 @@ snapshots: slash@4.0.0: {} - slashes@3.0.12: {} - slice-ansi@4.0.0: dependencies: ansi-styles: 4.3.0 @@ -18774,11 +17930,6 @@ snapshots: spdx-exceptions: 2.5.0 spdx-license-ids: 3.0.21 - spdx-expression-parse@4.0.0: - dependencies: - spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.21 - spdx-license-ids@3.0.21: {} spdx-license-list@2.1.0: {} @@ -19134,11 +18285,6 @@ snapshots: lower-case: 1.1.4 upper-case: 1.1.3 - synckit@0.9.2: - dependencies: - '@pkgr/core': 0.1.2 - tslib: 2.8.1 - table@6.9.0: dependencies: ajv: 8.17.1 @@ -19255,8 +18401,6 @@ snapshots: text-hex@1.0.0: {} - text-table@0.2.0: {} - thingies@1.21.0(tslib@2.8.1): dependencies: tslib: 2.8.1 @@ -19339,10 +18483,6 @@ snapshots: trough@1.0.5: {} - ts-api-utils@2.1.0(typescript@5.8.2): - dependencies: - typescript: 5.8.2 - ts-node@10.9.2(@types/node@22.14.1)(typescript@5.8.2): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -19361,13 +18501,6 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - tsconfig-paths@3.15.0: - dependencies: - '@types/json5': 0.0.29 - json5: 1.0.2 - minimist: 1.2.8 - strip-bom: 3.0.0 - tsec@0.2.2(@bazel/bazelisk@1.12.1)(typescript@5.8.2): dependencies: '@bazel/bazelisk': 1.12.1 @@ -19444,10 +18577,6 @@ snapshots: dependencies: prelude-ls: 1.1.2 - type-check@0.4.0: - dependencies: - prelude-ls: 1.2.1 - type-fest@0.18.1: {} type-fest@0.20.2: {} From 63b9e4b69265259d5454f12d366cc82000e83a37 Mon Sep 17 00:00:00 2001 From: Kristiyan Kostadinov Date: Tue, 29 Apr 2025 12:22:16 +0200 Subject: [PATCH 2/3] build: reuse tslint rules for docs site and fix failures Expands the tslint check to cover the docs site and fixes all of the failures. --- docs/e2e/src/app.e2e-spec.ts | 8 ++++ docs/e2e/src/app.po.ts | 8 ++++ docs/scenes/e2e/screenshot.ts | 8 ++++ docs/scenes/e2e/src/app.e2e-spec.ts | 8 ++++ docs/scenes/e2e/src/app.po.ts | 8 ++++ docs/scenes/src/app/app-routes.ts | 15 +++++- docs/scenes/src/app/app.component.ts | 8 ++++ .../scenes/src/app/scene-overlay-container.ts | 8 ++++ .../src/app/scene-viewer/scene-viewer.ts | 27 +++++++---- .../scenes/autocomplete/autocomplete-scene.ts | 8 ++++ .../src/app/scenes/badge/badge-scene.ts | 8 ++++ .../scenes/bottom-sheet/bottom-sheet-scene.ts | 8 ++++ .../button-toggle/button-toggle-scene.ts | 8 ++++ .../src/app/scenes/button/button-scene.ts | 8 ++++ docs/scenes/src/app/scenes/card/card-scene.ts | 8 ++++ .../src/app/scenes/checkbox/checkbox-scene.ts | 8 ++++ .../src/app/scenes/chips/chips-scene.ts | 8 ++++ docs/scenes/src/app/scenes/core/core-scene.ts | 8 ++++ .../app/scenes/datepicker/datepicker-scene.ts | 8 ++++ .../src/app/scenes/dialog/dialog-scene.ts | 8 ++++ .../src/app/scenes/divider/divider-scene.ts | 8 ++++ .../app/scenes/expansion/expansion-scene.ts | 8 ++++ .../app/scenes/form-field/form-field-scene.ts | 8 ++++ .../app/scenes/grid-list/grid-list-scene.ts | 8 ++++ docs/scenes/src/app/scenes/icon/icon-scene.ts | 8 ++++ .../src/app/scenes/input/input-scene.ts | 8 ++++ docs/scenes/src/app/scenes/list/list-scene.ts | 8 ++++ docs/scenes/src/app/scenes/menu/menu-scene.ts | 8 ++++ .../app/scenes/paginator/paginator-scene.ts | 8 ++++ .../scenes/placeholder/placeholder-scene.ts | 8 ++++ .../scenes/progress-bar/progress-bar-scene.ts | 8 ++++ .../progress-spinner-scene.ts | 8 ++++ .../src/app/scenes/radio/radio-scene.ts | 8 ++++ .../src/app/scenes/ripples/ripples-scene.ts | 8 ++++ .../src/app/scenes/select/select-scene.ts | 8 ++++ .../src/app/scenes/sidenav/sidenav-scene.ts | 8 ++++ .../scenes/slide-toggle/slide-toggle-scene.ts | 8 ++++ .../src/app/scenes/slider/slider-scene.ts | 8 ++++ .../app/scenes/snack-bar/snack-bar-scene.ts | 8 ++++ docs/scenes/src/app/scenes/sort/sort-scene.ts | 8 ++++ .../src/app/scenes/stepper/stepper-scene.ts | 8 ++++ .../src/app/scenes/table/table-scene.ts | 8 ++++ docs/scenes/src/app/scenes/tabs/tabs-scene.ts | 8 ++++ .../app/scenes/timepicker/timepicker-scene.ts | 8 ++++ .../src/app/scenes/toolbar/toolbar-scene.ts | 8 ++++ .../src/app/scenes/tooltip/tooltip-scene.ts | 8 ++++ docs/scenes/src/app/scenes/tree/tree-scene.ts | 8 ++++ .../src/environments/environment.prod.ts | 8 ++++ docs/scenes/src/environments/environment.ts | 8 ++++ docs/scenes/src/main.ts | 8 ++++ docs/scenes/src/polyfills.ts | 16 ++----- docs/scenes/src/test.ts | 8 ++++ docs/src/app/index.ts | 8 ++++ docs/src/app/material-docs-app.ts | 14 ++++-- .../component-category-list.ts | 8 ++++ .../pages/component-list/component-list.ts | 0 .../component-page-header.ts | 8 ++++ .../component-sidenav-can-load-guard.ts | 12 ++++- .../component-sidenav/component-sidenav.ts | 8 ++++ .../component-viewer/component-styling.ts | 22 ++++++--- .../component-viewer/component-viewer.ts | 16 +++++-- .../app/pages/component-viewer/token-name.ts | 16 +++++-- .../app/pages/component-viewer/token-table.ts | 8 ++++ docs/src/app/pages/guide-list/guide-list.ts | 8 ++++ docs/src/app/pages/guide-list/index.ts | 8 ++++ .../app/pages/guide-viewer/guide-viewer.ts | 8 ++++ docs/src/app/pages/guide-viewer/index.ts | 8 ++++ docs/src/app/pages/homepage/homepage.ts | 8 ++++ docs/src/app/pages/homepage/index.ts | 8 ++++ docs/src/app/pages/not-found/index.ts | 8 ++++ docs/src/app/pages/not-found/not-found.ts | 8 ++++ docs/src/app/pages/page-title/page-title.ts | 12 ++++- docs/src/app/pages/system-variables/index.ts | 8 ++++ .../system-variables/system-variables.ts | 8 ++++ docs/src/app/routes.ts | 8 ++++ docs/src/app/shared/analytics/analytics.ts | 14 ++++-- .../shared/analytics/error-report-handler.ts | 8 ++++ docs/src/app/shared/analytics/format-error.ts | 8 ++++ docs/src/app/shared/carousel/carousel.ts | 8 ++++ .../app/shared/cookie-popup/cookie-popup.ts | 8 ++++ .../shared/doc-viewer/deprecated-tooltip.ts | 34 ++++---------- docs/src/app/shared/doc-viewer/doc-viewer.ts | 22 ++++++--- docs/src/app/shared/doc-viewer/header-link.ts | 17 ++++--- .../doc-viewer/module-import-copy-button.ts | 27 +++++++---- .../documentation-items.ts | 8 ++++ .../app/shared/example-viewer/code-snippet.ts | 8 ++++ .../shared/example-viewer/example-viewer.ts | 8 ++++ docs/src/app/shared/footer/footer.ts | 8 ++++ .../src/app/shared/guide-items/guide-items.ts | 8 ++++ docs/src/app/shared/logo/logo.ts | 18 +++++-- docs/src/app/shared/navbar/index.ts | 8 ++++ docs/src/app/shared/navbar/navbar.ts | 8 ++++ .../navigation-focus.service.ts | 47 +++++++++++-------- .../navigation-focus/navigation-focus.spec.ts | 6 ++- .../navigation-focus/navigation-focus.ts | 34 +++++++++----- docs/src/app/shared/normalize-path.ts | 8 ++++ docs/src/app/shared/normalized-version.ts | 8 ++++ docs/src/app/shared/stack-blitz/index.ts | 8 ++++ .../shared/stack-blitz/stack-blitz-button.ts | 20 +++++--- .../shared/stack-blitz/stack-blitz-writer.ts | 8 ++++ docs/src/app/shared/style-manager/index.ts | 8 ++++ .../app/shared/style-manager/style-manager.ts | 13 +++-- docs/src/app/shared/support/support.ts | 8 ++++ docs/src/app/shared/svg-viewer/svg-viewer.ts | 26 ++++++---- .../table-of-contents/table-of-contents.ts | 26 ++++++---- docs/src/app/shared/theme-picker/index.ts | 8 ++++ .../app/shared/theme-picker/theme-picker.ts | 12 ++++- .../theme-storage/theme-storage.ts | 8 ++++ docs/src/app/shared/version-picker/index.ts | 8 ++++ .../shared/version-picker/version-picker.ts | 8 ++++ docs/src/assets/stack-blitz/src/main.ts | 8 ++++ docs/src/assets/stack-blitz/src/test.ts | 8 ++++ docs/src/environments/environment.prod.ts | 8 ++++ docs/src/environments/environment.ts | 8 ++++ docs/src/main.ts | 8 ++++ docs/src/polyfills.ts | 16 ++----- docs/src/test.ts | 8 ++++ docs/src/unregister-service-workers.ts | 8 ++++ tsconfig.json | 3 +- tslint.json | 5 +- 120 files changed, 1055 insertions(+), 179 deletions(-) delete mode 100644 docs/src/app/pages/component-list/component-list.ts diff --git a/docs/e2e/src/app.e2e-spec.ts b/docs/e2e/src/app.e2e-spec.ts index 9f9fa0406ace..782a0e342977 100644 --- a/docs/e2e/src/app.e2e-spec.ts +++ b/docs/e2e/src/app.e2e-spec.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {MaterialDocsAppPage} from './app.po'; import {browser, logging} from 'protractor'; diff --git a/docs/e2e/src/app.po.ts b/docs/e2e/src/app.po.ts index 803e6041e524..5a0759adf326 100644 --- a/docs/e2e/src/app.po.ts +++ b/docs/e2e/src/app.po.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {browser, by, element} from 'protractor'; export class MaterialDocsAppPage { diff --git a/docs/scenes/e2e/screenshot.ts b/docs/scenes/e2e/screenshot.ts index d8c97707e1a6..96af19c932a8 100644 --- a/docs/scenes/e2e/screenshot.ts +++ b/docs/scenes/e2e/screenshot.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import * as fs from 'fs'; import * as path from 'path'; import {by, element} from 'protractor'; diff --git a/docs/scenes/e2e/src/app.e2e-spec.ts b/docs/scenes/e2e/src/app.e2e-spec.ts index e91aa07e9519..2034c9006e1b 100644 --- a/docs/scenes/e2e/src/app.e2e-spec.ts +++ b/docs/scenes/e2e/src/app.e2e-spec.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {AppPage} from './app.po'; import {screenshot} from '../screenshot'; diff --git a/docs/scenes/e2e/src/app.po.ts b/docs/scenes/e2e/src/app.po.ts index 4ec5e5a46fbf..c6bcadab05cf 100644 --- a/docs/scenes/e2e/src/app.po.ts +++ b/docs/scenes/e2e/src/app.po.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {browser} from 'protractor'; export class AppPage { diff --git a/docs/scenes/src/app/app-routes.ts b/docs/scenes/src/app/app-routes.ts index d11b086b4e7f..6056b762d1fc 100644 --- a/docs/scenes/src/app/app-routes.ts +++ b/docs/scenes/src/app/app-routes.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {ComponentType} from '@angular/cdk/overlay'; import {SceneViewer} from './scene-viewer/scene-viewer'; import {AutocompleteScene} from './scenes/autocomplete/autocomplete-scene'; @@ -93,5 +101,10 @@ export const routes: SceneViewerRoute[] = [ {path: 'tooltip', component: SceneViewer, data: {scene: TooltipScene}}, {path: 'tree', component: SceneViewer, data: {scene: TreeScene}}, ] - .sort((a, b) => (a.path > b.path ? 1 : b.path > a.path ? -1 : 0)) + .sort((a, b) => { + if (a.path > b.path) { + return 1; + } + return b.path > a.path ? -1 : 0; + }) .map((route: SceneViewerRoute) => ({...route, data: {...route.data, hueRotate: 15 * hue++}})); diff --git a/docs/scenes/src/app/app.component.ts b/docs/scenes/src/app/app.component.ts index ff5aa6cd34b0..f06d862b3bf5 100644 --- a/docs/scenes/src/app/app.component.ts +++ b/docs/scenes/src/app/app.component.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component} from '@angular/core'; import {RouterOutlet} from '@angular/router'; diff --git a/docs/scenes/src/app/scene-overlay-container.ts b/docs/scenes/src/app/scene-overlay-container.ts index b6834f13fb0d..ec3986695ac7 100644 --- a/docs/scenes/src/app/scene-overlay-container.ts +++ b/docs/scenes/src/app/scene-overlay-container.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Injectable} from '@angular/core'; import {OverlayContainer} from '@angular/cdk/overlay'; diff --git a/docs/scenes/src/app/scene-viewer/scene-viewer.ts b/docs/scenes/src/app/scene-viewer/scene-viewer.ts index 8dcc0bde06f6..e4f003f2e830 100644 --- a/docs/scenes/src/app/scene-viewer/scene-viewer.ts +++ b/docs/scenes/src/app/scene-viewer/scene-viewer.ts @@ -1,6 +1,13 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import { Component, - HostBinding, Input, OnInit, ViewContainerRef, @@ -16,12 +23,14 @@ import {DomSanitizer, SafeStyle} from '@angular/platform-browser'; selector: 'app-scene-viewer', templateUrl: './scene-viewer.html', styleUrls: ['./scene-viewer.scss'], + host: { + '[style.filter]': 'filter', + }, }) export class SceneViewer implements OnInit { - private route = inject(ActivatedRoute); - private sanitizer = inject(DomSanitizer); - - @HostBinding('style.filter') filter: SafeStyle | undefined; + private _route = inject(ActivatedRoute); + private _sanitizer = inject(DomSanitizer); + protected filter: SafeStyle | undefined; /** * Degree to change hue of scene by. All scenes default to a reddish hue. @@ -36,7 +45,7 @@ export class SceneViewer implements OnInit { this._hueRotation = deg; // Modern browsers have security built in so this is just bypassing Angular's redundant checks. // Furthermore these checks will soon be removed. - this.filter = this.sanitizer.bypassSecurityTrustStyle(`hue-rotate(${this.hueRotation}deg)`); + this.filter = this._sanitizer.bypassSecurityTrustStyle(`hue-rotate(${this.hueRotation}deg)`); } private _hueRotation = 0; @@ -49,9 +58,9 @@ export class SceneViewer implements OnInit { readonly scene = viewChild.required('scene', {read: ViewContainerRef}); constructor() { - this.hueRotation = this.route.snapshot.data['hueRotate']; - this.component = this.route.snapshot.data['scene']; - this.scale = this.route.snapshot.data['scale']; + this.hueRotation = this._route.snapshot.data['hueRotate']; + this.component = this._route.snapshot.data['scene']; + this.scale = this._route.snapshot.data['scale']; } ngOnInit() { diff --git a/docs/scenes/src/app/scenes/autocomplete/autocomplete-scene.ts b/docs/scenes/src/app/scenes/autocomplete/autocomplete-scene.ts index c991a3a80050..b79b4aeeead5 100644 --- a/docs/scenes/src/app/scenes/autocomplete/autocomplete-scene.ts +++ b/docs/scenes/src/app/scenes/autocomplete/autocomplete-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {AfterViewInit, Component, ViewEncapsulation, viewChild} from '@angular/core'; import {FormControl, FormsModule, ReactiveFormsModule} from '@angular/forms'; import {MatFormFieldModule} from '@angular/material/form-field'; diff --git a/docs/scenes/src/app/scenes/badge/badge-scene.ts b/docs/scenes/src/app/scenes/badge/badge-scene.ts index 940bdd512df8..7dd662dc59d2 100644 --- a/docs/scenes/src/app/scenes/badge/badge-scene.ts +++ b/docs/scenes/src/app/scenes/badge/badge-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, ViewEncapsulation} from '@angular/core'; import {MatIconModule} from '@angular/material/icon'; import {MatBadgeModule} from '@angular/material/badge'; diff --git a/docs/scenes/src/app/scenes/bottom-sheet/bottom-sheet-scene.ts b/docs/scenes/src/app/scenes/bottom-sheet/bottom-sheet-scene.ts index 9f6f47352e57..1e4032614185 100644 --- a/docs/scenes/src/app/scenes/bottom-sheet/bottom-sheet-scene.ts +++ b/docs/scenes/src/app/scenes/bottom-sheet/bottom-sheet-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {AfterViewInit, Component, ViewEncapsulation, inject} from '@angular/core'; import {MatBottomSheet} from '@angular/material/bottom-sheet'; import {MatIconModule} from '@angular/material/icon'; diff --git a/docs/scenes/src/app/scenes/button-toggle/button-toggle-scene.ts b/docs/scenes/src/app/scenes/button-toggle/button-toggle-scene.ts index 4618088c8992..cf59b0e57e47 100644 --- a/docs/scenes/src/app/scenes/button-toggle/button-toggle-scene.ts +++ b/docs/scenes/src/app/scenes/button-toggle/button-toggle-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, ViewEncapsulation} from '@angular/core'; import {MatButtonToggleModule} from '@angular/material/button-toggle'; import {MatIconModule} from '@angular/material/icon'; diff --git a/docs/scenes/src/app/scenes/button/button-scene.ts b/docs/scenes/src/app/scenes/button/button-scene.ts index b493f4e8b244..936efc775401 100644 --- a/docs/scenes/src/app/scenes/button/button-scene.ts +++ b/docs/scenes/src/app/scenes/button/button-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, ViewEncapsulation} from '@angular/core'; import {MatButtonModule} from '@angular/material/button'; import {MatIconModule} from '@angular/material/icon'; diff --git a/docs/scenes/src/app/scenes/card/card-scene.ts b/docs/scenes/src/app/scenes/card/card-scene.ts index 25de79f99eda..63c442f8d820 100644 --- a/docs/scenes/src/app/scenes/card/card-scene.ts +++ b/docs/scenes/src/app/scenes/card/card-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component} from '@angular/core'; import {MatCardModule} from '@angular/material/card'; diff --git a/docs/scenes/src/app/scenes/checkbox/checkbox-scene.ts b/docs/scenes/src/app/scenes/checkbox/checkbox-scene.ts index f017bab8e365..8ea5c6072073 100755 --- a/docs/scenes/src/app/scenes/checkbox/checkbox-scene.ts +++ b/docs/scenes/src/app/scenes/checkbox/checkbox-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, ViewEncapsulation} from '@angular/core'; import {MatCheckboxModule} from '@angular/material/checkbox'; diff --git a/docs/scenes/src/app/scenes/chips/chips-scene.ts b/docs/scenes/src/app/scenes/chips/chips-scene.ts index d5a80f168f83..132f35c8e6ef 100644 --- a/docs/scenes/src/app/scenes/chips/chips-scene.ts +++ b/docs/scenes/src/app/scenes/chips/chips-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, ViewEncapsulation} from '@angular/core'; import {MatChipsModule} from '@angular/material/chips'; diff --git a/docs/scenes/src/app/scenes/core/core-scene.ts b/docs/scenes/src/app/scenes/core/core-scene.ts index fb15cf183dfe..c5cd250bc310 100644 --- a/docs/scenes/src/app/scenes/core/core-scene.ts +++ b/docs/scenes/src/app/scenes/core/core-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, ViewEncapsulation} from '@angular/core'; import {MatIconModule} from '@angular/material/icon'; diff --git a/docs/scenes/src/app/scenes/datepicker/datepicker-scene.ts b/docs/scenes/src/app/scenes/datepicker/datepicker-scene.ts index 4e7cd5bc5ea0..001f3828fae0 100644 --- a/docs/scenes/src/app/scenes/datepicker/datepicker-scene.ts +++ b/docs/scenes/src/app/scenes/datepicker/datepicker-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, ViewEncapsulation} from '@angular/core'; import {MatDatepickerModule} from '@angular/material/datepicker'; diff --git a/docs/scenes/src/app/scenes/dialog/dialog-scene.ts b/docs/scenes/src/app/scenes/dialog/dialog-scene.ts index 32e56fc44d9f..e784aee7bf69 100644 --- a/docs/scenes/src/app/scenes/dialog/dialog-scene.ts +++ b/docs/scenes/src/app/scenes/dialog/dialog-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, ViewEncapsulation, inject} from '@angular/core'; import {MatButtonModule} from '@angular/material/button'; import {MatDialog, MatDialogModule} from '@angular/material/dialog'; diff --git a/docs/scenes/src/app/scenes/divider/divider-scene.ts b/docs/scenes/src/app/scenes/divider/divider-scene.ts index e168d7e5ad36..a67314d56615 100644 --- a/docs/scenes/src/app/scenes/divider/divider-scene.ts +++ b/docs/scenes/src/app/scenes/divider/divider-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, ViewEncapsulation} from '@angular/core'; import {MatIconModule} from '@angular/material/icon'; import {MatListModule} from '@angular/material/list'; diff --git a/docs/scenes/src/app/scenes/expansion/expansion-scene.ts b/docs/scenes/src/app/scenes/expansion/expansion-scene.ts index 5e5514a398fa..cb5243e521f8 100644 --- a/docs/scenes/src/app/scenes/expansion/expansion-scene.ts +++ b/docs/scenes/src/app/scenes/expansion/expansion-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, ViewEncapsulation} from '@angular/core'; import {MatExpansionModule} from '@angular/material/expansion'; import {MatIconModule} from '@angular/material/icon'; diff --git a/docs/scenes/src/app/scenes/form-field/form-field-scene.ts b/docs/scenes/src/app/scenes/form-field/form-field-scene.ts index a06b187486ae..5bbb3ac51091 100644 --- a/docs/scenes/src/app/scenes/form-field/form-field-scene.ts +++ b/docs/scenes/src/app/scenes/form-field/form-field-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, ViewEncapsulation} from '@angular/core'; import {MatIconModule} from '@angular/material/icon'; import {MatInputModule} from '@angular/material/input'; diff --git a/docs/scenes/src/app/scenes/grid-list/grid-list-scene.ts b/docs/scenes/src/app/scenes/grid-list/grid-list-scene.ts index 6776f75625e8..c429eadd9f8b 100644 --- a/docs/scenes/src/app/scenes/grid-list/grid-list-scene.ts +++ b/docs/scenes/src/app/scenes/grid-list/grid-list-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, ViewEncapsulation} from '@angular/core'; import {MatGridListModule} from '@angular/material/grid-list'; diff --git a/docs/scenes/src/app/scenes/icon/icon-scene.ts b/docs/scenes/src/app/scenes/icon/icon-scene.ts index 472e763bb366..8769e216a44d 100644 --- a/docs/scenes/src/app/scenes/icon/icon-scene.ts +++ b/docs/scenes/src/app/scenes/icon/icon-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, ViewEncapsulation} from '@angular/core'; import {MatIconModule} from '@angular/material/icon'; diff --git a/docs/scenes/src/app/scenes/input/input-scene.ts b/docs/scenes/src/app/scenes/input/input-scene.ts index 31285e0e4f29..6b7636d5203f 100644 --- a/docs/scenes/src/app/scenes/input/input-scene.ts +++ b/docs/scenes/src/app/scenes/input/input-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, ViewEncapsulation} from '@angular/core'; import {MatFormFieldModule} from '@angular/material/form-field'; import {MatInputModule} from '@angular/material/input'; diff --git a/docs/scenes/src/app/scenes/list/list-scene.ts b/docs/scenes/src/app/scenes/list/list-scene.ts index 2a8ec6bc480a..19339df20d11 100644 --- a/docs/scenes/src/app/scenes/list/list-scene.ts +++ b/docs/scenes/src/app/scenes/list/list-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, ViewEncapsulation} from '@angular/core'; import {MatListModule} from '@angular/material/list'; import {MatIconModule} from '@angular/material/icon'; diff --git a/docs/scenes/src/app/scenes/menu/menu-scene.ts b/docs/scenes/src/app/scenes/menu/menu-scene.ts index 127c7b6fdb15..ac2ef620255c 100644 --- a/docs/scenes/src/app/scenes/menu/menu-scene.ts +++ b/docs/scenes/src/app/scenes/menu/menu-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {AfterViewInit, Component, ViewEncapsulation, viewChild} from '@angular/core'; import {MatButtonModule} from '@angular/material/button'; import {MatIconModule} from '@angular/material/icon'; diff --git a/docs/scenes/src/app/scenes/paginator/paginator-scene.ts b/docs/scenes/src/app/scenes/paginator/paginator-scene.ts index d0b68b7cd00c..63fe39f2ad4a 100644 --- a/docs/scenes/src/app/scenes/paginator/paginator-scene.ts +++ b/docs/scenes/src/app/scenes/paginator/paginator-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, ViewEncapsulation} from '@angular/core'; import {MatPaginatorModule} from '@angular/material/paginator'; diff --git a/docs/scenes/src/app/scenes/placeholder/placeholder-scene.ts b/docs/scenes/src/app/scenes/placeholder/placeholder-scene.ts index 445a889088ac..ba2c368e4ae4 100644 --- a/docs/scenes/src/app/scenes/placeholder/placeholder-scene.ts +++ b/docs/scenes/src/app/scenes/placeholder/placeholder-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, ViewEncapsulation} from '@angular/core'; @Component({ diff --git a/docs/scenes/src/app/scenes/progress-bar/progress-bar-scene.ts b/docs/scenes/src/app/scenes/progress-bar/progress-bar-scene.ts index 116bedc101d9..574e87e25b57 100644 --- a/docs/scenes/src/app/scenes/progress-bar/progress-bar-scene.ts +++ b/docs/scenes/src/app/scenes/progress-bar/progress-bar-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, ViewEncapsulation} from '@angular/core'; import {MatProgressBarModule} from '@angular/material/progress-bar'; diff --git a/docs/scenes/src/app/scenes/progress-spinner/progress-spinner-scene.ts b/docs/scenes/src/app/scenes/progress-spinner/progress-spinner-scene.ts index 3435b8257754..fafa51dff96c 100644 --- a/docs/scenes/src/app/scenes/progress-spinner/progress-spinner-scene.ts +++ b/docs/scenes/src/app/scenes/progress-spinner/progress-spinner-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, ViewEncapsulation} from '@angular/core'; import {MatProgressSpinnerModule} from '@angular/material/progress-spinner'; diff --git a/docs/scenes/src/app/scenes/radio/radio-scene.ts b/docs/scenes/src/app/scenes/radio/radio-scene.ts index 4224ea21d2b0..d44cfcf5b0eb 100644 --- a/docs/scenes/src/app/scenes/radio/radio-scene.ts +++ b/docs/scenes/src/app/scenes/radio/radio-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, ViewEncapsulation} from '@angular/core'; import {MatRadioModule} from '@angular/material/radio'; diff --git a/docs/scenes/src/app/scenes/ripples/ripples-scene.ts b/docs/scenes/src/app/scenes/ripples/ripples-scene.ts index bda275bc575a..203d3be77834 100644 --- a/docs/scenes/src/app/scenes/ripples/ripples-scene.ts +++ b/docs/scenes/src/app/scenes/ripples/ripples-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {AfterViewInit, Component, ViewEncapsulation, viewChild} from '@angular/core'; import {MatButtonModule} from '@angular/material/button'; import {MatRipple, MatRippleModule} from '@angular/material/core'; diff --git a/docs/scenes/src/app/scenes/select/select-scene.ts b/docs/scenes/src/app/scenes/select/select-scene.ts index 9262fe4938b3..00cf9cf2e8b9 100644 --- a/docs/scenes/src/app/scenes/select/select-scene.ts +++ b/docs/scenes/src/app/scenes/select/select-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {AfterViewInit, Component, ViewEncapsulation, viewChild} from '@angular/core'; import {MatFormFieldModule} from '@angular/material/form-field'; import {MatSelect, MatSelectModule} from '@angular/material/select'; diff --git a/docs/scenes/src/app/scenes/sidenav/sidenav-scene.ts b/docs/scenes/src/app/scenes/sidenav/sidenav-scene.ts index 0cdd6e8b77d9..a7de46c18af7 100644 --- a/docs/scenes/src/app/scenes/sidenav/sidenav-scene.ts +++ b/docs/scenes/src/app/scenes/sidenav/sidenav-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, ViewEncapsulation} from '@angular/core'; import {MatIconModule} from '@angular/material/icon'; import {MatSidenavModule} from '@angular/material/sidenav'; diff --git a/docs/scenes/src/app/scenes/slide-toggle/slide-toggle-scene.ts b/docs/scenes/src/app/scenes/slide-toggle/slide-toggle-scene.ts index 920cb900eb2d..57b41f26c70e 100644 --- a/docs/scenes/src/app/scenes/slide-toggle/slide-toggle-scene.ts +++ b/docs/scenes/src/app/scenes/slide-toggle/slide-toggle-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, ViewEncapsulation} from '@angular/core'; import {MatIconModule} from '@angular/material/icon'; import {MatSlideToggleModule} from '@angular/material/slide-toggle'; diff --git a/docs/scenes/src/app/scenes/slider/slider-scene.ts b/docs/scenes/src/app/scenes/slider/slider-scene.ts index b594b6e69f5b..cf1cc2868ebc 100644 --- a/docs/scenes/src/app/scenes/slider/slider-scene.ts +++ b/docs/scenes/src/app/scenes/slider/slider-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {AfterViewInit, Component, ViewEncapsulation} from '@angular/core'; import {MatIconModule} from '@angular/material/icon'; import {MatSliderModule} from '@angular/material/slider'; diff --git a/docs/scenes/src/app/scenes/snack-bar/snack-bar-scene.ts b/docs/scenes/src/app/scenes/snack-bar/snack-bar-scene.ts index fed34de7512b..184bd6189a2c 100644 --- a/docs/scenes/src/app/scenes/snack-bar/snack-bar-scene.ts +++ b/docs/scenes/src/app/scenes/snack-bar/snack-bar-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, ViewEncapsulation, inject} from '@angular/core'; import {MatSnackBar} from '@angular/material/snack-bar'; diff --git a/docs/scenes/src/app/scenes/sort/sort-scene.ts b/docs/scenes/src/app/scenes/sort/sort-scene.ts index 24d01f48c896..85e9998f670c 100644 --- a/docs/scenes/src/app/scenes/sort/sort-scene.ts +++ b/docs/scenes/src/app/scenes/sort/sort-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, ViewEncapsulation} from '@angular/core'; import {MatSortModule} from '@angular/material/sort'; diff --git a/docs/scenes/src/app/scenes/stepper/stepper-scene.ts b/docs/scenes/src/app/scenes/stepper/stepper-scene.ts index 10a1e62195a5..0e86523e4b71 100644 --- a/docs/scenes/src/app/scenes/stepper/stepper-scene.ts +++ b/docs/scenes/src/app/scenes/stepper/stepper-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, ViewEncapsulation} from '@angular/core'; import {MatStepperModule} from '@angular/material/stepper'; import {MatInputModule} from '@angular/material/input'; diff --git a/docs/scenes/src/app/scenes/table/table-scene.ts b/docs/scenes/src/app/scenes/table/table-scene.ts index abd2f6ed39ee..e0257f735991 100644 --- a/docs/scenes/src/app/scenes/table/table-scene.ts +++ b/docs/scenes/src/app/scenes/table/table-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component} from '@angular/core'; import {MatCardModule} from '@angular/material/card'; import {MatTableModule} from '@angular/material/table'; diff --git a/docs/scenes/src/app/scenes/tabs/tabs-scene.ts b/docs/scenes/src/app/scenes/tabs/tabs-scene.ts index 64b84e2a2612..c5148147ceb0 100644 --- a/docs/scenes/src/app/scenes/tabs/tabs-scene.ts +++ b/docs/scenes/src/app/scenes/tabs/tabs-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component} from '@angular/core'; import {MatTabsModule} from '@angular/material/tabs'; diff --git a/docs/scenes/src/app/scenes/timepicker/timepicker-scene.ts b/docs/scenes/src/app/scenes/timepicker/timepicker-scene.ts index f93427fff36a..de267ba21447 100644 --- a/docs/scenes/src/app/scenes/timepicker/timepicker-scene.ts +++ b/docs/scenes/src/app/scenes/timepicker/timepicker-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {AfterViewInit, Component, viewChild, ViewEncapsulation} from '@angular/core'; import {MatFormFieldModule} from '@angular/material/form-field'; import {MatInputModule} from '@angular/material/input'; diff --git a/docs/scenes/src/app/scenes/toolbar/toolbar-scene.ts b/docs/scenes/src/app/scenes/toolbar/toolbar-scene.ts index 7024b75dbb42..361060a71523 100644 --- a/docs/scenes/src/app/scenes/toolbar/toolbar-scene.ts +++ b/docs/scenes/src/app/scenes/toolbar/toolbar-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, ViewEncapsulation} from '@angular/core'; import {MatIconModule} from '@angular/material/icon'; import {MatToolbarModule} from '@angular/material/toolbar'; diff --git a/docs/scenes/src/app/scenes/tooltip/tooltip-scene.ts b/docs/scenes/src/app/scenes/tooltip/tooltip-scene.ts index ff838becff9b..c7991ed91e34 100644 --- a/docs/scenes/src/app/scenes/tooltip/tooltip-scene.ts +++ b/docs/scenes/src/app/scenes/tooltip/tooltip-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, AfterViewInit, ViewEncapsulation, viewChild} from '@angular/core'; import {MatButtonModule} from '@angular/material/button'; import {MatTooltipModule, MatTooltip} from '@angular/material/tooltip'; diff --git a/docs/scenes/src/app/scenes/tree/tree-scene.ts b/docs/scenes/src/app/scenes/tree/tree-scene.ts index f550ac81d584..7748a0b32ef8 100644 --- a/docs/scenes/src/app/scenes/tree/tree-scene.ts +++ b/docs/scenes/src/app/scenes/tree/tree-scene.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component} from '@angular/core'; import {MatIconModule} from '@angular/material/icon'; import {MatTreeModule, MatTreeFlatDataSource, MatTreeFlattener} from '@angular/material/tree'; diff --git a/docs/scenes/src/environments/environment.prod.ts b/docs/scenes/src/environments/environment.prod.ts index c9669790be17..4aaab4a10455 100644 --- a/docs/scenes/src/environments/environment.prod.ts +++ b/docs/scenes/src/environments/environment.prod.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + export const environment = { production: true, }; diff --git a/docs/scenes/src/environments/environment.ts b/docs/scenes/src/environments/environment.ts index 31cb7855f144..97c28389b1cc 100644 --- a/docs/scenes/src/environments/environment.ts +++ b/docs/scenes/src/environments/environment.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + // This file can be replaced during build by using the `fileReplacements` array. // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. // The list of file replacements can be found in `angular.json`. diff --git a/docs/scenes/src/main.ts b/docs/scenes/src/main.ts index 8d083d65736a..d41968d0e86f 100644 --- a/docs/scenes/src/main.ts +++ b/docs/scenes/src/main.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {AppComponent} from './app/app.component'; import {provideNativeDateAdapter, MATERIAL_ANIMATIONS} from '@angular/material/core'; import {routes} from './app/app-routes'; diff --git a/docs/scenes/src/polyfills.ts b/docs/scenes/src/polyfills.ts index 7563149a0e62..0c70d917caeb 100644 --- a/docs/scenes/src/polyfills.ts +++ b/docs/scenes/src/polyfills.ts @@ -1,17 +1,9 @@ /** - * This file includes polyfills needed by Angular and is loaded before the app. - * You can add your own extra polyfills to this file. + * @license + * Copyright Google LLC All Rights Reserved. * - * This file is divided into 2 sections: - * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. - * 2. Application imports. Files imported after ZoneJS that should be loaded before your main - * file. - * - * The current setup is for so-called "evergreen" browsers; the last versions of browsers that - * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), - * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. - * - * Learn more in https://angular.io/guide/browser-support + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license */ /*************************************************************************************************** diff --git a/docs/scenes/src/test.ts b/docs/scenes/src/test.ts index e9fd7db25dac..861e0e73f3d4 100644 --- a/docs/scenes/src/test.ts +++ b/docs/scenes/src/test.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + // This file is required by karma.conf.js and loads recursively all the .spec and framework files import 'zone.js/testing'; diff --git a/docs/src/app/index.ts b/docs/src/app/index.ts index ea7ac372be40..4deb955990b1 100644 --- a/docs/src/app/index.ts +++ b/docs/src/app/index.ts @@ -1 +1,9 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + export * from './material-docs-app'; diff --git a/docs/src/app/material-docs-app.ts b/docs/src/app/material-docs-app.ts index a50a53f99178..4e27862eebd4 100644 --- a/docs/src/app/material-docs-app.ts +++ b/docs/src/app/material-docs-app.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, OnDestroy, ViewEncapsulation, inject} from '@angular/core'; import {AnalyticsService} from './shared/analytics/analytics'; @@ -20,13 +28,13 @@ import {CookiePopup} from './shared/cookie-popup/cookie-popup'; imports: [NavBar, RouterOutlet, CookiePopup], }) export class MaterialDocsApp implements OnDestroy { - private subscriptions = new Subscription(); + private _subscriptions = new Subscription(); constructor() { const analytics = inject(AnalyticsService); const navigationFocusService = inject(NavigationFocusService); - this.subscriptions.add( + this._subscriptions.add( navigationFocusService.navigationEndEvents .pipe( map(e => e.urlAfterRedirects), @@ -45,7 +53,7 @@ export class MaterialDocsApp implements OnDestroy { } ngOnDestroy() { - this.subscriptions.unsubscribe(); + this._subscriptions.unsubscribe(); } } diff --git a/docs/src/app/pages/component-category-list/component-category-list.ts b/docs/src/app/pages/component-category-list/component-category-list.ts index 09c20faf8f34..ee551cd1d96c 100644 --- a/docs/src/app/pages/component-category-list/component-category-list.ts +++ b/docs/src/app/pages/component-category-list/component-category-list.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, OnDestroy, OnInit, inject} from '@angular/core'; import {ActivatedRoute, RouterLink} from '@angular/router'; import {MatRipple} from '@angular/material/core'; diff --git a/docs/src/app/pages/component-list/component-list.ts b/docs/src/app/pages/component-list/component-list.ts deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/docs/src/app/pages/component-page-header/component-page-header.ts b/docs/src/app/pages/component-page-header/component-page-header.ts index eea23fb88f0b..a521f1ce26a3 100644 --- a/docs/src/app/pages/component-page-header/component-page-header.ts +++ b/docs/src/app/pages/component-page-header/component-page-header.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, EventEmitter, Output} from '@angular/core'; import {MatButton} from '@angular/material/button'; diff --git a/docs/src/app/pages/component-sidenav/component-sidenav-can-load-guard.ts b/docs/src/app/pages/component-sidenav/component-sidenav-can-load-guard.ts index f7a081b0e5c2..b369b8c251e2 100644 --- a/docs/src/app/pages/component-sidenav/component-sidenav-can-load-guard.ts +++ b/docs/src/app/pages/component-sidenav/component-sidenav-can-load-guard.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Injectable, inject} from '@angular/core'; import {ActivatedRouteSnapshot, Router} from '@angular/router'; import {SECTIONS} from '../../shared/documentation-items/documentation-items'; @@ -8,7 +16,7 @@ import {SECTIONS} from '../../shared/documentation-items/documentation-items'; */ @Injectable({providedIn: 'root'}) export class CanActivateComponentSidenav { - private router = inject(Router); + private _router = inject(Router); canActivate(route: ActivatedRouteSnapshot) { // Searches if the section defined in the base UrlSegment is a valid section from the @@ -18,7 +26,7 @@ export class CanActivateComponentSidenav { return true; } - this.router.navigateByUrl('/'); + this._router.navigateByUrl('/'); return false; } } diff --git a/docs/src/app/pages/component-sidenav/component-sidenav.ts b/docs/src/app/pages/component-sidenav/component-sidenav.ts index af6a7a218bb8..7ae42ab87d93 100644 --- a/docs/src/app/pages/component-sidenav/component-sidenav.ts +++ b/docs/src/app/pages/component-sidenav/component-sidenav.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import { Component, OnDestroy, diff --git a/docs/src/app/pages/component-viewer/component-styling.ts b/docs/src/app/pages/component-viewer/component-styling.ts index 8d297b21d1c4..6fa162f2e1c4 100644 --- a/docs/src/app/pages/component-viewer/component-styling.ts +++ b/docs/src/app/pages/component-viewer/component-styling.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, inject, Injectable} from '@angular/core'; import {DomSanitizer} from '@angular/platform-browser'; import {HttpClient} from '@angular/common/http'; @@ -46,16 +54,18 @@ class TokenService { imports: [AsyncPipe, TokenTable], }) export class ComponentStyling { - private componentViewer = inject(ComponentViewer); - private tokenService = inject(TokenService); - private domSanitizer = inject(DomSanitizer); - protected docItem = this.componentViewer.componentDocItem; - protected dataStream = this.docItem.pipe(switchMap(item => this.tokenService.getTokenData(item))); + private _componentViewer = inject(ComponentViewer); + private _tokenService = inject(TokenService); + private _domSanitizer = inject(DomSanitizer); + protected docItem = this._componentViewer.componentDocItem; + protected dataStream = this.docItem.pipe( + switchMap(item => this._tokenService.getTokenData(item)), + ); protected hasDataStream = this.dataStream.pipe( map(data => data.themes.length > 0 && data.themes.some(d => d.tokens.length > 0)), ); protected exampleStream = this.dataStream.pipe( - map(data => (data.example ? this.domSanitizer.bypassSecurityTrustHtml(data.example) : null)), + map(data => (data.example ? this._domSanitizer.bypassSecurityTrustHtml(data.example) : null)), ); } diff --git a/docs/src/app/pages/component-viewer/component-viewer.ts b/docs/src/app/pages/component-viewer/component-viewer.ts index e879480b94c9..17628d981037 100644 --- a/docs/src/app/pages/component-viewer/component-viewer.ts +++ b/docs/src/app/pages/component-viewer/component-viewer.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {BreakpointObserver} from '@angular/cdk/layout'; import {AsyncPipe} from '@angular/common'; import { @@ -39,7 +47,7 @@ import {MatTabLink, MatTabNav, MatTabNavPanel} from '@angular/material/tabs'; ], }) export class ComponentViewer implements OnDestroy { - private router = inject(Router); + private _router = inject(Router); componentPageTitle = inject(ComponentPageTitle); readonly docItems = inject(DocumentationItems); @@ -70,7 +78,7 @@ export class ComponentViewer implements OnDestroy { ) .subscribe(({doc, section}) => { if (!doc) { - this.router.navigate(['/' + section]); + this._router.navigate(['/' + section]); return; } @@ -105,7 +113,7 @@ export class ComponentViewer implements OnDestroy { @Directive() export class ComponentBaseView implements OnInit, OnDestroy { componentViewer = inject(ComponentViewer); - private changeDetectorRef = inject(ChangeDetectorRef); + private _changeDetectorRef = inject(ChangeDetectorRef); readonly tableOfContents = viewChild('toc'); readonly viewers = viewChildren(DocViewer); @@ -118,7 +126,7 @@ export class ComponentBaseView implements OnInit, OnDestroy { this.showToc = breakpointObserver.observe('(max-width: 1200px)').pipe( map(result => { - this.changeDetectorRef.detectChanges(); + this._changeDetectorRef.detectChanges(); return !result.matches; }), ); diff --git a/docs/src/app/pages/component-viewer/token-name.ts b/docs/src/app/pages/component-viewer/token-name.ts index 58307d4f3cc8..89aa7da345de 100644 --- a/docs/src/app/pages/component-viewer/token-name.ts +++ b/docs/src/app/pages/component-viewer/token-name.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, input, inject} from '@angular/core'; import {MatIconButton} from '@angular/material/button'; import {Clipboard} from '@angular/cdk/clipboard'; @@ -29,13 +37,13 @@ import {MatTooltip} from '@angular/material/tooltip'; imports: [MatIconButton, MatIcon, MatTooltip], }) export class TokenName { - private clipboard = inject(Clipboard); - private snackbar = inject(MatSnackBar); + private _clipboard = inject(Clipboard); + private _snackbar = inject(MatSnackBar); name = input.required(); protected copy(name: string): void { - const message = this.clipboard.copy(name) ? 'Copied token name' : 'Failed to copy token name'; - this.snackbar.open(message, undefined, {duration: 2500}); + const message = this._clipboard.copy(name) ? 'Copied token name' : 'Failed to copy token name'; + this._snackbar.open(message, undefined, {duration: 2500}); } } diff --git a/docs/src/app/pages/component-viewer/token-table.ts b/docs/src/app/pages/component-viewer/token-table.ts index 849f3144df72..d3fd8962be05 100644 --- a/docs/src/app/pages/component-viewer/token-table.ts +++ b/docs/src/app/pages/component-viewer/token-table.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {ChangeDetectionStrategy, Component, computed, input, signal} from '@angular/core'; import {TitleCasePipe} from '@angular/common'; import {MatButton} from '@angular/material/button'; diff --git a/docs/src/app/pages/guide-list/guide-list.ts b/docs/src/app/pages/guide-list/guide-list.ts index 66afee65d61c..edef9e04ce8f 100644 --- a/docs/src/app/pages/guide-list/guide-list.ts +++ b/docs/src/app/pages/guide-list/guide-list.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, OnInit, inject} from '@angular/core'; import {GuideItems} from '../../shared/guide-items/guide-items'; import {RouterLink} from '@angular/router'; diff --git a/docs/src/app/pages/guide-list/index.ts b/docs/src/app/pages/guide-list/index.ts index 1b606d98f0b0..320ebedb68d3 100644 --- a/docs/src/app/pages/guide-list/index.ts +++ b/docs/src/app/pages/guide-list/index.ts @@ -1 +1,9 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + export * from './guide-list'; diff --git a/docs/src/app/pages/guide-viewer/guide-viewer.ts b/docs/src/app/pages/guide-viewer/guide-viewer.ts index 39fd6f76e3fb..aa4c3b60cfe9 100644 --- a/docs/src/app/pages/guide-viewer/guide-viewer.ts +++ b/docs/src/app/pages/guide-viewer/guide-viewer.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, OnInit, inject} from '@angular/core'; import {ActivatedRoute, Router} from '@angular/router'; import {GuideItem, GuideItems} from '../../shared/guide-items/guide-items'; diff --git a/docs/src/app/pages/guide-viewer/index.ts b/docs/src/app/pages/guide-viewer/index.ts index d72b5254f3ad..b46c5067da26 100644 --- a/docs/src/app/pages/guide-viewer/index.ts +++ b/docs/src/app/pages/guide-viewer/index.ts @@ -1 +1,9 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + export * from './guide-viewer'; diff --git a/docs/src/app/pages/homepage/homepage.ts b/docs/src/app/pages/homepage/homepage.ts index ec092d16bbfa..39987220471e 100644 --- a/docs/src/app/pages/homepage/homepage.ts +++ b/docs/src/app/pages/homepage/homepage.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, OnInit, inject} from '@angular/core'; import {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations'; diff --git a/docs/src/app/pages/homepage/index.ts b/docs/src/app/pages/homepage/index.ts index b9cc39d75af9..d1cb67a80b99 100644 --- a/docs/src/app/pages/homepage/index.ts +++ b/docs/src/app/pages/homepage/index.ts @@ -1 +1,9 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + export * from './homepage'; diff --git a/docs/src/app/pages/not-found/index.ts b/docs/src/app/pages/not-found/index.ts index 0de137a60168..e0964ea299b4 100644 --- a/docs/src/app/pages/not-found/index.ts +++ b/docs/src/app/pages/not-found/index.ts @@ -1 +1,9 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + export * from './not-found'; diff --git a/docs/src/app/pages/not-found/not-found.ts b/docs/src/app/pages/not-found/not-found.ts index 539ad2274986..1488677e43fc 100644 --- a/docs/src/app/pages/not-found/not-found.ts +++ b/docs/src/app/pages/not-found/not-found.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component} from '@angular/core'; import {MatAnchor} from '@angular/material/button'; import {Footer} from '../../shared/footer/footer'; diff --git a/docs/src/app/pages/page-title/page-title.ts b/docs/src/app/pages/page-title/page-title.ts index 1d1a1fa7997c..91507297ee5b 100644 --- a/docs/src/app/pages/page-title/page-title.ts +++ b/docs/src/app/pages/page-title/page-title.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Injectable, inject} from '@angular/core'; import {Title} from '@angular/platform-browser'; @@ -6,7 +14,7 @@ import {Title} from '@angular/platform-browser'; */ @Injectable({providedIn: 'root'}) export class ComponentPageTitle { - private bodyTitle = inject(Title); + private _bodyTitle = inject(Title); _title = ''; _originalTitle = 'Angular Material UI component library'; @@ -22,6 +30,6 @@ export class ComponentPageTitle { } else { title = this._originalTitle; } - this.bodyTitle.setTitle(title); + this._bodyTitle.setTitle(title); } } diff --git a/docs/src/app/pages/system-variables/index.ts b/docs/src/app/pages/system-variables/index.ts index 3a226db58016..cd7ebb8992f0 100644 --- a/docs/src/app/pages/system-variables/index.ts +++ b/docs/src/app/pages/system-variables/index.ts @@ -1 +1,9 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + export * from './system-variables'; diff --git a/docs/src/app/pages/system-variables/system-variables.ts b/docs/src/app/pages/system-variables/system-variables.ts index cfbb3c17e6fb..e5b17ffb9cf9 100644 --- a/docs/src/app/pages/system-variables/system-variables.ts +++ b/docs/src/app/pages/system-variables/system-variables.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {ChangeDetectionStrategy, Component, input} from '@angular/core'; import {MatExpansionPanel, MatExpansionPanelHeader} from '@angular/material/expansion'; diff --git a/docs/src/app/routes.ts b/docs/src/app/routes.ts index 28a4940189d7..0c206987ea5a 100644 --- a/docs/src/app/routes.ts +++ b/docs/src/app/routes.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Routes} from '@angular/router'; import {CanActivateComponentSidenav} from './pages/component-sidenav/component-sidenav-can-load-guard'; diff --git a/docs/src/app/shared/analytics/analytics.ts b/docs/src/app/shared/analytics/analytics.ts index cbc27a2328e5..7da39e34e77e 100644 --- a/docs/src/app/shared/analytics/analytics.ts +++ b/docs/src/app/shared/analytics/analytics.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Injectable} from '@angular/core'; import {environment} from '../../../environments/environment'; @@ -25,7 +33,7 @@ declare global { */ @Injectable({providedIn: 'root'}) export class AnalyticsService { - private previousUrl: string | undefined; + private _previousUrl: string | undefined; constructor() { this._installGlobalSiteTag(); @@ -52,10 +60,10 @@ export class AnalyticsService { private _sendPage(url: string) { // Won't re-send if the url hasn't changed. - if (url === this.previousUrl) { + if (url === this._previousUrl) { return; } - this.previousUrl = url; + this._previousUrl = url; this._legacyGa('mat.set', 'page', url); this._legacyGa('ng.set', 'page', url); this._legacyGa('mat.send', 'pageview'); diff --git a/docs/src/app/shared/analytics/error-report-handler.ts b/docs/src/app/shared/analytics/error-report-handler.ts index bb9eddbc3c64..ecbeffade8fa 100644 --- a/docs/src/app/shared/analytics/error-report-handler.ts +++ b/docs/src/app/shared/analytics/error-report-handler.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {ErrorHandler, Injectable, inject} from '@angular/core'; import {AnalyticsService} from './analytics'; import {formatErrorForAnalytics} from './format-error'; diff --git a/docs/src/app/shared/analytics/format-error.ts b/docs/src/app/shared/analytics/format-error.ts index 51325792119b..da34de7a5e5f 100644 --- a/docs/src/app/shared/analytics/format-error.ts +++ b/docs/src/app/shared/analytics/format-error.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + /** * Formats an `ErrorEvent` to a human-readable string that can * be sent to Google Analytics. diff --git a/docs/src/app/shared/carousel/carousel.ts b/docs/src/app/shared/carousel/carousel.ts index 442fb6ec2846..25b75128e608 100644 --- a/docs/src/app/shared/carousel/carousel.ts +++ b/docs/src/app/shared/carousel/carousel.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import { AfterContentInit, Component, diff --git a/docs/src/app/shared/cookie-popup/cookie-popup.ts b/docs/src/app/shared/cookie-popup/cookie-popup.ts index b3981e70627e..124fb9fd0a79 100644 --- a/docs/src/app/shared/cookie-popup/cookie-popup.ts +++ b/docs/src/app/shared/cookie-popup/cookie-popup.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {ChangeDetectionStrategy, Component} from '@angular/core'; import {MatAnchor, MatButton} from '@angular/material/button'; diff --git a/docs/src/app/shared/doc-viewer/deprecated-tooltip.ts b/docs/src/app/shared/doc-viewer/deprecated-tooltip.ts index a053875d6cf0..b7eced2f9464 100644 --- a/docs/src/app/shared/doc-viewer/deprecated-tooltip.ts +++ b/docs/src/app/shared/doc-viewer/deprecated-tooltip.ts @@ -1,32 +1,18 @@ -import {Component} from '@angular/core'; -import {MatTooltip} from '@angular/material/tooltip'; - /** - * This component is responsible for showing the - * deprecated fields throughout API from material repo, - * - * When deprecated docs content is generated like: - * - *
- * Deprecated - *
+ * @license + * Copyright Google LLC All Rights Reserved. * - * It uses `title` attribute to show information regarding - * deprecation and other information regarding deprecation - * isnt shown either. - * - * We are gonna use this component to show deprecation - * information using the `material/tooltip`, the information - * would contain when the field is being deprecated and what - * are the alternatives to it which both are extracted from - * `breaking-change` and `deprecated`. + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license */ + +import {Component} from '@angular/core'; +import {MatTooltip} from '@angular/material/tooltip'; + +/** Shows the deprecation message for a specific field as a tooltip. */ @Component({ selector: 'deprecated-field', - template: `
-
`, + template: `
`, imports: [MatTooltip], }) export class DeprecatedFieldComponent { diff --git a/docs/src/app/shared/doc-viewer/doc-viewer.ts b/docs/src/app/shared/doc-viewer/doc-viewer.ts index a91babb51079..e0f2cb6b80d5 100644 --- a/docs/src/app/shared/doc-viewer/doc-viewer.ts +++ b/docs/src/app/shared/doc-viewer/doc-viewer.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import { ComponentType, ComponentPortal, @@ -83,6 +91,7 @@ export class DocViewer implements OnDestroy { // Resolving and creating components dynamically in Angular happens synchronously, but since // we want to emit the output if the components are actually rendered completely, we wait // until the Angular zone becomes stable. + // tslint:disable-next-line:no-zone-dependencies this._ngZone.onStable .pipe(take(1)) .subscribe(() => this.contentRendered.next(this._elementRef.nativeElement)); @@ -94,7 +103,7 @@ export class DocViewer implements OnDestroy { /** The document text. It should not be HTML encoded. */ textContent = ''; - private static initExampleViewer( + private static _initExampleViewer( exampleViewerComponent: ExampleViewer, example: string, file: string | null, @@ -122,8 +131,8 @@ export class DocViewer implements OnDestroy { private _fetchDocument(url: string) { this._documentFetchSubscription?.unsubscribe(); this._documentFetchSubscription = this._docFetcher.fetchDocument(url).subscribe( - document => this.updateDocument(document), - error => this.showError(url, error), + document => this._updateDocument(document), + error => this._showError(url, error), ); } @@ -131,7 +140,7 @@ export class DocViewer implements OnDestroy { * Updates the displayed document. * @param rawDocument The raw document content to show. */ - private updateDocument(rawDocument: string) { + private _updateDocument(rawDocument: string) { // Replace all relative fragment URLs with absolute fragment URLs. e.g. "#my-section" becomes // "/components/button/api#my-section". This is necessary because otherwise these fragment // links would redirect to "/#my-section". @@ -153,13 +162,14 @@ export class DocViewer implements OnDestroy { // Resolving and creating components dynamically in Angular happens synchronously, but since // we want to emit the output if the components are actually rendered completely, we wait // until the Angular zone becomes stable. + // tslint:disable-next-line:no-zone-dependencies this._ngZone.onStable .pipe(take(1)) .subscribe(() => this.contentRendered.next(this._elementRef.nativeElement)); } /** Show an error that occurred when fetching a document. */ - private showError(url: string, error: HttpErrorResponse) { + private _showError(url: string, error: HttpErrorResponse) { console.error(error); this._elementRef.nativeElement.innerText = `Failed to load document: ${url}. Error: ${error.statusText}`; } @@ -177,7 +187,7 @@ export class DocViewer implements OnDestroy { const exampleViewer = portalHost.attach(examplePortal); const exampleViewerComponent = exampleViewer.instance as ExampleViewer; if (example !== null) { - DocViewer.initExampleViewer(exampleViewerComponent, example, file, region); + DocViewer._initExampleViewer(exampleViewerComponent, example, file, region); } this._portalHosts.push(portalHost); }); diff --git a/docs/src/app/shared/doc-viewer/header-link.ts b/docs/src/app/shared/doc-viewer/header-link.ts index 7dc8a3998f4d..a518be234af6 100644 --- a/docs/src/app/shared/doc-viewer/header-link.ts +++ b/docs/src/app/shared/doc-viewer/header-link.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, inject} from '@angular/core'; import {Router} from '@angular/router'; import {MatIcon} from '@angular/material/icon'; @@ -5,15 +13,6 @@ import {MatIcon} from '@angular/material/icon'; /** * Header link is a component that handles normalizing * the anchor jump tags with the current route url. - * - * For example: - * - * Foo - * - * would result in the wrong url, this component - * combines the current route with that jump link: - * - * Foo */ @Component({ selector: 'header-link', diff --git a/docs/src/app/shared/doc-viewer/module-import-copy-button.ts b/docs/src/app/shared/doc-viewer/module-import-copy-button.ts index 81702e0d3ff1..43de3cb26aed 100644 --- a/docs/src/app/shared/doc-viewer/module-import-copy-button.ts +++ b/docs/src/app/shared/doc-viewer/module-import-copy-button.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, inject} from '@angular/core'; import {MatIconButton} from '@angular/material/button'; import {MatIcon} from '@angular/material/icon'; @@ -10,24 +18,23 @@ import {Clipboard} from '@angular/cdk/clipboard'; */ @Component({ selector: 'module-import-copy-button', - template: ``, + template: ` + + `, imports: [MatIconButton, MatIcon, MatTooltip], }) export class ModuleImportCopyButton { - private clipboard = inject(Clipboard); - private snackbar = inject(MatSnackBar); + private _clipboard = inject(Clipboard); + private _snackbar = inject(MatSnackBar); /** Import path for the module that will be copied */ import = ''; copy(): void { - const message = this.clipboard.copy(this.import) + const message = this._clipboard.copy(this.import) ? 'Copied module import' : 'Failed to copy module import'; - this.snackbar.open(message, undefined, {duration: 2500}); + this._snackbar.open(message, undefined, {duration: 2500}); } } diff --git a/docs/src/app/shared/documentation-items/documentation-items.ts b/docs/src/app/shared/documentation-items/documentation-items.ts index c6cc6f94ddfa..434f6640d2e6 100644 --- a/docs/src/app/shared/documentation-items/documentation-items.ts +++ b/docs/src/app/shared/documentation-items/documentation-items.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Injectable} from '@angular/core'; import type {LiveExample} from '@angular/components-examples'; diff --git a/docs/src/app/shared/example-viewer/code-snippet.ts b/docs/src/app/shared/example-viewer/code-snippet.ts index e1cfa86a973f..01281e512194 100644 --- a/docs/src/app/shared/example-viewer/code-snippet.ts +++ b/docs/src/app/shared/example-viewer/code-snippet.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {ChangeDetectionStrategy, Component, forwardRef, input, viewChild} from '@angular/core'; import {DocViewer} from '../doc-viewer/doc-viewer'; diff --git a/docs/src/app/shared/example-viewer/example-viewer.ts b/docs/src/app/shared/example-viewer/example-viewer.ts index 1f26201a3bf2..ec9bd9452a3b 100644 --- a/docs/src/app/shared/example-viewer/example-viewer.ts +++ b/docs/src/app/shared/example-viewer/example-viewer.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, ElementRef, inject, Input, OnInit, Type, viewChildren} from '@angular/core'; import {MatSnackBar} from '@angular/material/snack-bar'; import {Clipboard} from '@angular/cdk/clipboard'; diff --git a/docs/src/app/shared/footer/footer.ts b/docs/src/app/shared/footer/footer.ts index ffbf5b2e6038..6c4fb1f4dabb 100644 --- a/docs/src/app/shared/footer/footer.ts +++ b/docs/src/app/shared/footer/footer.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component} from '@angular/core'; import {AppLogo} from '../logo/logo'; diff --git a/docs/src/app/shared/guide-items/guide-items.ts b/docs/src/app/shared/guide-items/guide-items.ts index b999852cc615..296825e0d3ff 100644 --- a/docs/src/app/shared/guide-items/guide-items.ts +++ b/docs/src/app/shared/guide-items/guide-items.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Injectable} from '@angular/core'; import {SystemVariables} from '../../pages/system-variables'; import {ComponentType} from '@angular/cdk/portal'; diff --git a/docs/src/app/shared/logo/logo.ts b/docs/src/app/shared/logo/logo.ts index 1e01977472ad..011bd3adbbcc 100644 --- a/docs/src/app/shared/logo/logo.ts +++ b/docs/src/app/shared/logo/logo.ts @@ -1,11 +1,19 @@ -import {Component, HostBinding} from '@angular/core'; +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + +import {Component} from '@angular/core'; @Component({ selector: 'app-logo', styleUrl: 'logo.scss', templateUrl: './logo.html', + host: { + 'aria-hidden': 'true', + }, }) -export class AppLogo { - @HostBinding('attr.aria-hidden') - ariaHidden = true; -} +export class AppLogo {} diff --git a/docs/src/app/shared/navbar/index.ts b/docs/src/app/shared/navbar/index.ts index f5899d0366d4..725850f53419 100644 --- a/docs/src/app/shared/navbar/index.ts +++ b/docs/src/app/shared/navbar/index.ts @@ -1 +1,9 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + export * from './navbar'; diff --git a/docs/src/app/shared/navbar/navbar.ts b/docs/src/app/shared/navbar/navbar.ts index 73d7cff21d14..126bcd103582 100644 --- a/docs/src/app/shared/navbar/navbar.ts +++ b/docs/src/app/shared/navbar/navbar.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, OnDestroy, inject} from '@angular/core'; import {NgTemplateOutlet} from '@angular/common'; import {MatButton, MatIconButton} from '@angular/material/button'; diff --git a/docs/src/app/shared/navigation-focus/navigation-focus.service.ts b/docs/src/app/shared/navigation-focus/navigation-focus.service.ts index 57643bf1a2fd..2b224515bf36 100644 --- a/docs/src/app/shared/navigation-focus/navigation-focus.service.ts +++ b/docs/src/app/shared/navigation-focus/navigation-focus.service.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Injectable, OnDestroy, inject} from '@angular/core'; import {Event, NavigationEnd, Router} from '@angular/router'; import {filter, skip} from 'rxjs/operators'; @@ -7,26 +15,25 @@ import {Subscription} from 'rxjs'; providedIn: 'root', }) export class NavigationFocusService implements OnDestroy { - private router = inject(Router); - - private subscriptions = new Subscription(); - private navigationFocusRequests: HTMLElement[] = []; - private skipLinkFocusRequests: HTMLElement[] = []; - private skipLinkHref: string | null | undefined; + private _router = inject(Router); + private _subscriptions = new Subscription(); + private _navigationFocusRequests: HTMLElement[] = []; + private _skipLinkFocusRequests: HTMLElement[] = []; + private _skipLinkHref: string | null | undefined; - readonly navigationEndEvents = this.router.events.pipe( + readonly navigationEndEvents = this._router.events.pipe( filter((event: Event): event is NavigationEnd => event instanceof NavigationEnd), ); readonly softNavigations = this.navigationEndEvents.pipe(skip(1)); constructor() { - this.subscriptions.add( + this._subscriptions.add( this.softNavigations.subscribe(() => { // focus if url does not have fragment - if (!this.router.url.split('#')[1]) { + if (!this._router.url.split('#')[1]) { setTimeout(() => { - if (this.navigationFocusRequests.length) { - this.navigationFocusRequests[this.navigationFocusRequests.length - 1].focus({ + if (this._navigationFocusRequests.length) { + this._navigationFocusRequests[this._navigationFocusRequests.length - 1].focus({ preventScroll: true, }); } @@ -37,35 +44,35 @@ export class NavigationFocusService implements OnDestroy { } ngOnDestroy() { - this.subscriptions.unsubscribe(); + this._subscriptions.unsubscribe(); } requestFocusOnNavigation(el: HTMLElement) { - this.navigationFocusRequests.push(el); + this._navigationFocusRequests.push(el); } relinquishFocusOnNavigation(el: HTMLElement) { - this.navigationFocusRequests.splice(this.navigationFocusRequests.indexOf(el), 1); + this._navigationFocusRequests.splice(this._navigationFocusRequests.indexOf(el), 1); } requestSkipLinkFocus(el: HTMLElement) { - this.skipLinkFocusRequests.push(el); + this._skipLinkFocusRequests.push(el); this.setSkipLinkHref(el); } relinquishSkipLinkFocus(el: HTMLElement) { - this.skipLinkFocusRequests.splice(this.skipLinkFocusRequests.indexOf(el), 1); - const skipLinkFocusTarget = this.skipLinkFocusRequests[this.skipLinkFocusRequests.length - 1]; + this._skipLinkFocusRequests.splice(this._skipLinkFocusRequests.indexOf(el), 1); + const skipLinkFocusTarget = this._skipLinkFocusRequests[this._skipLinkFocusRequests.length - 1]; this.setSkipLinkHref(skipLinkFocusTarget); } setSkipLinkHref(el: HTMLElement | null) { - const baseUrl = this.router.url.split('#')[0]; - this.skipLinkHref = el ? `${baseUrl}#${el.id}` : null; + const baseUrl = this._router.url.split('#')[0]; + this._skipLinkHref = el ? `${baseUrl}#${el.id}` : null; } getSkipLinkHref(): string | null | undefined { - return this.skipLinkHref; + return this._skipLinkHref; } isNavigationWithinComponentView(previousUrl: string, newUrl: string) { diff --git a/docs/src/app/shared/navigation-focus/navigation-focus.spec.ts b/docs/src/app/shared/navigation-focus/navigation-focus.spec.ts index 3ddcf5dddacb..ea6eb2844005 100644 --- a/docs/src/app/shared/navigation-focus/navigation-focus.spec.ts +++ b/docs/src/app/shared/navigation-focus/navigation-focus.spec.ts @@ -1,4 +1,8 @@ -import {Component, NgZone} from '@angular/core'; +import { + Component, + // tslint:disable-next-line:no-zone-dependencies + NgZone, +} from '@angular/core'; import {ComponentFixture, fakeAsync, TestBed, tick} from '@angular/core/testing'; import {provideRouter, Router} from '@angular/router'; import {NavigationFocusService} from './navigation-focus.service'; diff --git a/docs/src/app/shared/navigation-focus/navigation-focus.ts b/docs/src/app/shared/navigation-focus/navigation-focus.ts index 3875439f7b36..d7130692d36e 100644 --- a/docs/src/app/shared/navigation-focus/navigation-focus.ts +++ b/docs/src/app/shared/navigation-focus/navigation-focus.ts @@ -1,29 +1,37 @@ -import {Directive, ElementRef, HostBinding, OnDestroy, inject} from '@angular/core'; +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + +import {Directive, ElementRef, OnDestroy, inject} from '@angular/core'; import {NavigationFocusService} from './navigation-focus.service'; let uid = 0; @Directive({ selector: '[focusOnNavigation]', + host: { + 'tabindex': '-1', + '[style.outline]': '"none"', + }, }) export class NavigationFocus implements OnDestroy { - private el = inject(ElementRef); - private navigationFocusService = inject(NavigationFocusService); - - @HostBinding('tabindex') readonly tabindex = '-1'; - @HostBinding('style.outline') readonly outline = 'none'; + private _navigationFocusService = inject(NavigationFocusService); constructor() { - const el = this.el; + const element = inject(ElementRef).nativeElement as HTMLElement; - if (!el.nativeElement.id) { - el.nativeElement.id = `skip-link-target-${uid++}`; + if (!element.id) { + element.id = `skip-link-target-${uid++}`; } - this.navigationFocusService.requestFocusOnNavigation(el.nativeElement); - this.navigationFocusService.requestSkipLinkFocus(el.nativeElement); + this._navigationFocusService.requestFocusOnNavigation(element); + this._navigationFocusService.requestSkipLinkFocus(element); } ngOnDestroy() { - this.navigationFocusService.relinquishFocusOnNavigation(this.el.nativeElement); - this.navigationFocusService.relinquishSkipLinkFocus(this.el.nativeElement); + this._navigationFocusService.relinquishFocusOnNavigation(this.el.nativeElement); + this._navigationFocusService.relinquishSkipLinkFocus(this.el.nativeElement); } } diff --git a/docs/src/app/shared/normalize-path.ts b/docs/src/app/shared/normalize-path.ts index 99594fffebe9..b38c45bed941 100644 --- a/docs/src/app/shared/normalize-path.ts +++ b/docs/src/app/shared/normalize-path.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import * as normalize from 'path-normalize'; /** diff --git a/docs/src/app/shared/normalized-version.ts b/docs/src/app/shared/normalized-version.ts index 838ab527f60e..7c6a334fe28b 100644 --- a/docs/src/app/shared/normalized-version.ts +++ b/docs/src/app/shared/normalized-version.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {VERSION} from '@angular/material/core'; /** diff --git a/docs/src/app/shared/stack-blitz/index.ts b/docs/src/app/shared/stack-blitz/index.ts index 2a7f90e58353..56ee489dde6f 100644 --- a/docs/src/app/shared/stack-blitz/index.ts +++ b/docs/src/app/shared/stack-blitz/index.ts @@ -1 +1,9 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + export * from './stack-blitz-button'; diff --git a/docs/src/app/shared/stack-blitz/stack-blitz-button.ts b/docs/src/app/shared/stack-blitz/stack-blitz-button.ts index 7fcf23cd5cc0..e9a29e4e4900 100644 --- a/docs/src/app/shared/stack-blitz/stack-blitz-button.ts +++ b/docs/src/app/shared/stack-blitz/stack-blitz-button.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, Input, NgZone, inject} from '@angular/core'; import {ExampleData} from '@angular/components-examples'; import {MatIconButton} from '@angular/material/button'; @@ -12,9 +20,9 @@ import {MatSnackBar} from '@angular/material/snack-bar'; imports: [MatIconButton, MatTooltip, MatIcon], }) export class StackBlitzButton { - private stackBlitzWriter = inject(StackBlitzWriter); - private ngZone = inject(NgZone); - private snackBar = inject(MatSnackBar); + private _stackBlitzWriter = inject(StackBlitzWriter); + private _ngZone = inject(NgZone); + private _snackBar = inject(MatSnackBar); exampleData: ExampleData | undefined; @@ -43,7 +51,7 @@ export class StackBlitzButton { if (this._openStackBlitzFn) { this._openStackBlitzFn(); } else { - this.snackBar.open( + this._snackBar.open( 'StackBlitz is not ready yet. Please try again in a few seconds.', undefined, {duration: 5000}, @@ -52,9 +60,9 @@ export class StackBlitzButton { } private _prepareStackBlitzForExample(exampleId: string, data: ExampleData): void { - this.ngZone.runOutsideAngular(async () => { + this._ngZone.runOutsideAngular(async () => { const isTest = exampleId.includes('harness'); - this._openStackBlitzFn = await this.stackBlitzWriter.createStackBlitzForExample( + this._openStackBlitzFn = await this._stackBlitzWriter.createStackBlitzForExample( exampleId, data, isTest, diff --git a/docs/src/app/shared/stack-blitz/stack-blitz-writer.ts b/docs/src/app/shared/stack-blitz/stack-blitz-writer.ts index 36555fb3559e..74538ff821a3 100644 --- a/docs/src/app/shared/stack-blitz/stack-blitz-writer.ts +++ b/docs/src/app/shared/stack-blitz/stack-blitz-writer.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {HttpClient} from '@angular/common/http'; import {Injectable, NgZone, inject} from '@angular/core'; import type {ExampleData} from '@angular/components-examples'; diff --git a/docs/src/app/shared/style-manager/index.ts b/docs/src/app/shared/style-manager/index.ts index 5b13b7116548..38159ed0b47b 100644 --- a/docs/src/app/shared/style-manager/index.ts +++ b/docs/src/app/shared/style-manager/index.ts @@ -1 +1,9 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + export * from './style-manager'; diff --git a/docs/src/app/shared/style-manager/style-manager.ts b/docs/src/app/shared/style-manager/style-manager.ts index 43590c63e39d..171ef3251f5b 100644 --- a/docs/src/app/shared/style-manager/style-manager.ts +++ b/docs/src/app/shared/style-manager/style-manager.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Injectable} from '@angular/core'; /** @@ -17,10 +25,7 @@ export class StyleManager { * Remove the stylesheet with the specified key. */ removeStyle(key: string) { - const existingLinkElement = getExistingLinkElementByKey(key); - if (existingLinkElement) { - document.head.removeChild(existingLinkElement); - } + getExistingLinkElementByKey(key)?.remove(); } } diff --git a/docs/src/app/shared/support/support.ts b/docs/src/app/shared/support/support.ts index 82b60356d9e4..5a94b9a874d2 100644 --- a/docs/src/app/shared/support/support.ts +++ b/docs/src/app/shared/support/support.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component} from '@angular/core'; import {AppLogo} from '../logo/logo'; diff --git a/docs/src/app/shared/svg-viewer/svg-viewer.ts b/docs/src/app/shared/svg-viewer/svg-viewer.ts index 53a66265e1dc..bc09dcf62bc8 100644 --- a/docs/src/app/shared/svg-viewer/svg-viewer.ts +++ b/docs/src/app/shared/svg-viewer/svg-viewer.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {HttpClient} from '@angular/common/http'; import {Component, ElementRef, Input, OnInit, inject} from '@angular/core'; @@ -6,33 +14,33 @@ import {Component, ElementRef, Input, OnInit, inject} from '@angular/core'; template: '', }) export class SvgViewer implements OnInit { - private elementRef = inject(ElementRef); - private http = inject(HttpClient); + private _elementRef = inject(ElementRef); + private _http = inject(HttpClient); @Input() src: string | undefined; @Input() scaleToContainer: boolean | undefined; ngOnInit() { if (this.src) { - this.fetchAndInlineSvgContent(this.src); + this._fetchAndInlineSvgContent(this.src); } } - private inlineSvgContent(template: string) { - this.elementRef.nativeElement.innerHTML = template; + private _inlineSvgContent(template: string) { + this._elementRef.nativeElement.innerHTML = template; if (this.scaleToContainer) { - const svg = this.elementRef.nativeElement.querySelector('svg'); + const svg = this._elementRef.nativeElement.querySelector('svg'); svg.setAttribute('width', '100%'); svg.setAttribute('height', '100%'); svg.setAttribute('preserveAspectRatio', 'xMidYMid meet'); } } - private fetchAndInlineSvgContent(path: string): void { + private _fetchAndInlineSvgContent(path: string): void { const svgAbsPath = getAbsolutePathFromSrc(path); - this.http.get(svgAbsPath, {responseType: 'text'}).subscribe(svgResponse => { - this.inlineSvgContent(svgResponse); + this._http.get(svgAbsPath, {responseType: 'text'}).subscribe(svgResponse => { + this._inlineSvgContent(svgResponse); }); } } diff --git a/docs/src/app/shared/table-of-contents/table-of-contents.ts b/docs/src/app/shared/table-of-contents/table-of-contents.ts index 2da8e5c13916..77b2fbfe7908 100644 --- a/docs/src/app/shared/table-of-contents/table-of-contents.ts +++ b/docs/src/app/shared/table-of-contents/table-of-contents.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import { AfterViewInit, Component, @@ -59,12 +67,12 @@ export class TableOfContents implements OnInit, AfterViewInit, OnDestroy { private _scrollContainer: HTMLElement | Window | null = null; private _urlFragment = ''; - private subscriptions = new Subscription(); + private _subscriptions = new Subscription(); constructor() { const _router = this._router; - this.subscriptions.add( + this._subscriptions.add( this._navigationFocusService.navigationEndEvents.subscribe(() => { const rootUrl = _router.url.split('#')[0]; if (rootUrl !== this._rootUrl) { @@ -73,7 +81,7 @@ export class TableOfContents implements OnInit, AfterViewInit, OnDestroy { }), ); - this.subscriptions.add( + this._subscriptions.add( this._route.fragment.subscribe(fragment => { if (fragment != null) { this._urlFragment = fragment; @@ -98,10 +106,10 @@ export class TableOfContents implements OnInit, AfterViewInit, OnDestroy { : window; if (this._scrollContainer) { - this.subscriptions.add( + this._subscriptions.add( fromEvent(this._scrollContainer, 'scroll') .pipe(debounceTime(10)) - .subscribe(() => this.onScroll()), + .subscribe(() => this._onScroll()), ); } }); @@ -113,7 +121,7 @@ export class TableOfContents implements OnInit, AfterViewInit, OnDestroy { } ngOnDestroy(): void { - this.subscriptions.unsubscribe(); + this._subscriptions.unsubscribe(); } updateScrollPosition(): void { @@ -144,7 +152,7 @@ export class TableOfContents implements OnInit, AfterViewInit, OnDestroy { } /** Gets the scroll offset of the scroll container */ - private getScrollOffset(): number | void { + private _getScrollOffset(): number | void { const {top} = this._element.nativeElement.getBoundingClientRect(); const container = this._scrollContainer; @@ -157,8 +165,8 @@ export class TableOfContents implements OnInit, AfterViewInit, OnDestroy { } } - private onScroll(): void { - const scrollOffset = this.getScrollOffset(); + private _onScroll(): void { + const scrollOffset = this._getScrollOffset(); let hasChanged = false; if (scrollOffset == null) { diff --git a/docs/src/app/shared/theme-picker/index.ts b/docs/src/app/shared/theme-picker/index.ts index 14aab88b06e9..0238e0d85872 100644 --- a/docs/src/app/shared/theme-picker/index.ts +++ b/docs/src/app/shared/theme-picker/index.ts @@ -1 +1,9 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + export * from './theme-picker'; diff --git a/docs/src/app/shared/theme-picker/theme-picker.ts b/docs/src/app/shared/theme-picker/theme-picker.ts index 7b288231567a..72ee92d84c84 100644 --- a/docs/src/app/shared/theme-picker/theme-picker.ts +++ b/docs/src/app/shared/theme-picker/theme-picker.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import { ChangeDetectionStrategy, Component, @@ -29,7 +37,7 @@ export class ThemePicker implements OnInit, OnDestroy { styleManager = inject(StyleManager); private _themeStorage = inject(ThemeStorage); private _activatedRoute = inject(ActivatedRoute); - private liveAnnouncer = inject(LiveAnnouncer); + private _liveAnnouncer = inject(LiveAnnouncer); private _queryParamSubscription = Subscription.EMPTY; currentTheme: DocsSiteTheme | undefined; @@ -104,7 +112,7 @@ export class ThemePicker implements OnInit, OnDestroy { } if (this.currentTheme) { - this.liveAnnouncer.announce(`${theme.displayName} theme selected.`, 'polite', 3000); + this._liveAnnouncer.announce(`${theme.displayName} theme selected.`, 'polite', 3000); this._themeStorage.storeTheme(this.currentTheme); } } diff --git a/docs/src/app/shared/theme-picker/theme-storage/theme-storage.ts b/docs/src/app/shared/theme-picker/theme-storage/theme-storage.ts index 9c61d2fa8ff8..2982ff0ceab5 100644 --- a/docs/src/app/shared/theme-picker/theme-storage/theme-storage.ts +++ b/docs/src/app/shared/theme-picker/theme-storage/theme-storage.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Injectable, EventEmitter} from '@angular/core'; export interface DocsSiteTheme { diff --git a/docs/src/app/shared/version-picker/index.ts b/docs/src/app/shared/version-picker/index.ts index ea77e722c27e..6f1bd0467d38 100644 --- a/docs/src/app/shared/version-picker/index.ts +++ b/docs/src/app/shared/version-picker/index.ts @@ -1 +1,9 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + export * from './version-picker'; diff --git a/docs/src/app/shared/version-picker/version-picker.ts b/docs/src/app/shared/version-picker/version-picker.ts index fdb5add0e5f4..5c55188ba7d6 100644 --- a/docs/src/app/shared/version-picker/version-picker.ts +++ b/docs/src/app/shared/version-picker/version-picker.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {Component, ViewEncapsulation, inject} from '@angular/core'; import {HttpClient} from '@angular/common/http'; import {AsyncPipe} from '@angular/common'; diff --git a/docs/src/assets/stack-blitz/src/main.ts b/docs/src/assets/stack-blitz/src/main.ts index 6ea53290170a..abe21765e701 100644 --- a/docs/src/assets/stack-blitz/src/main.ts +++ b/docs/src/assets/stack-blitz/src/main.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import '@angular/localize/init'; import {bootstrapApplication} from '@angular/platform-browser'; import {provideHttpClient} from '@angular/common/http'; diff --git a/docs/src/assets/stack-blitz/src/test.ts b/docs/src/assets/stack-blitz/src/test.ts index 045eeb686d73..0323f914c153 100644 --- a/docs/src/assets/stack-blitz/src/test.ts +++ b/docs/src/assets/stack-blitz/src/test.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + // This file is required by karma.conf.js and loads recursively all the .spec and framework files import 'zone.js/testing'; diff --git a/docs/src/environments/environment.prod.ts b/docs/src/environments/environment.prod.ts index 8b503210d6f4..61f0b6b33aa1 100644 --- a/docs/src/environments/environment.prod.ts +++ b/docs/src/environments/environment.prod.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + export const environment = { googleAnalyticsOverallDomainId: 'G-BVV0RDSG7F', // Production framework property id. googleAnalyticsMaterialId: 'G-XXPDW812XH', // Production Material id diff --git a/docs/src/environments/environment.ts b/docs/src/environments/environment.ts index 8ebf9ddb1deb..957ce0381b4f 100644 --- a/docs/src/environments/environment.ts +++ b/docs/src/environments/environment.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + // The file contents for the current environment will overwrite these during build. // The build system defaults to the dev environment which uses `environment.ts`, but if you do // `ng build --env=prod` then `environment.prod.ts` will be used instead. diff --git a/docs/src/main.ts b/docs/src/main.ts index 8f4d47898060..3415ab70c278 100644 --- a/docs/src/main.ts +++ b/docs/src/main.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import {ErrorHandler} from '@angular/core'; import {provideHttpClient} from '@angular/common/http'; diff --git a/docs/src/polyfills.ts b/docs/src/polyfills.ts index 9b436dd009b4..0a38489252c7 100644 --- a/docs/src/polyfills.ts +++ b/docs/src/polyfills.ts @@ -1,17 +1,9 @@ /** - * This file includes polyfills needed by Angular and is loaded before the app. - * You can add your own extra polyfills to this file. + * @license + * Copyright Google LLC All Rights Reserved. * - * This file is divided into 2 sections: - * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. - * 2. Application imports. Files imported after ZoneJS that should be loaded before your main - * file. - * - * The current setup is for so-called "evergreen" browsers; the last versions of browsers that - * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), - * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. - * - * Learn more in https://angular.io/guide/browser-support + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license */ /*************************************************************************************************** diff --git a/docs/src/test.ts b/docs/src/test.ts index e9fd7db25dac..861e0e73f3d4 100644 --- a/docs/src/test.ts +++ b/docs/src/test.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + // This file is required by karma.conf.js and loads recursively all the .spec and framework files import 'zone.js/testing'; diff --git a/docs/src/unregister-service-workers.ts b/docs/src/unregister-service-workers.ts index 93182e6a585b..28fbb7419cdb 100644 --- a/docs/src/unregister-service-workers.ts +++ b/docs/src/unregister-service-workers.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + /** * Unregisters all currently registered service workers and returns a boolean that indicates * whether there were service workers registered or not. diff --git a/tsconfig.json b/tsconfig.json index f96c4f9dfd8f..fc54afa77aa8 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -54,7 +54,8 @@ "test/**/*.ts", "tools/**/*.ts", "integration/**/*.ts", - "scripts/**/*.ts" + "scripts/**/*.ts", + "docs/**/*.ts" ], "exclude": [ // Exclude files that depend on Node APIs because those depend on the Node types and therefore diff --git a/tslint.json b/tslint.json index 87c781276847..a4b39f1a8481 100644 --- a/tslint.json +++ b/tslint.json @@ -99,7 +99,7 @@ "!moduleId": ".*", "encapsulation": "\\.None$" }, - "excludeFiles": ["**/dev-app/**"] + "excludeFiles": ["**/dev-app/**", "**/docs/**"] }, // Enforce OnPush & standalone even in the dev-app. { @@ -107,7 +107,8 @@ "properties": { "changeDetection": "\\.OnPush$", "!standalone": ".*" - } + }, + "excludeFiles": ["**/docs/**"] } ], "Directive": [ From 993540372a405ba04ef7377e9de61a000da962c1 Mon Sep 17 00:00:00 2001 From: Kristiyan Kostadinov Date: Tue, 29 Apr 2025 13:01:49 +0200 Subject: [PATCH 3/3] build: enable style lint for docs site Expands style linting to the docs site and resolves all the breakages. --- .stylelintrc.json | 2 +- .../src/app/scenes/core/core-scene.html | 2 +- .../src/app/scenes/core/core-scene.scss | 2 +- .../scenes/datepicker/datepicker-scene.html | 7 +- .../scenes/datepicker/datepicker-scene.scss | 4 +- .../app/scenes/grid-list/grid-list-scene.scss | 2 + .../src/app/scenes/icon/icon-scene.html | 12 +- .../src/app/scenes/icon/icon-scene.scss | 10 +- .../src/app/scenes/input/input-scene.scss | 2 +- .../scenes/placeholder/placeholder-scene.html | 6 +- .../scenes/placeholder/placeholder-scene.scss | 6 +- .../src/app/scenes/ripples/ripples-scene.html | 2 +- .../src/app/scenes/ripples/ripples-scene.scss | 3 +- .../src/app/scenes/slider/slider-scene.html | 4 +- .../src/app/scenes/slider/slider-scene.scss | 2 +- .../src/app/scenes/tooltip/tooltip-scene.html | 4 +- .../src/app/scenes/tooltip/tooltip-scene.scss | 4 +- docs/scenes/src/styles.scss | 1 - docs/src/app/material-docs-app.scss | 4 +- .../component-category-list.scss | 2 +- .../component-sidenav/component-sidenav.scss | 7 +- .../pages/component-viewer/token-table.html | 8 +- .../pages/component-viewer/token-table.scss | 8 +- docs/src/app/pages/guide-list/guide-list.ts | 2 +- .../app/pages/guide-viewer/guide-viewer.ts | 2 +- docs/src/app/pages/homepage/homepage.html | 4 +- docs/src/app/pages/homepage/homepage.scss | 12 +- docs/src/app/pages/homepage/homepage.ts | 4 +- docs/src/app/pages/not-found/not-found.html | 5 +- docs/src/app/pages/not-found/not-found.scss | 4 +- docs/src/app/pages/not-found/not-found.ts | 2 +- docs/src/app/shared/carousel/carousel.scss | 2 +- docs/src/app/shared/carousel/carousel.ts | 2 +- .../app/shared/cookie-popup/cookie-popup.html | 4 +- .../app/shared/cookie-popup/cookie-popup.scss | 4 +- .../shared/doc-viewer/deprecated-tooltip.ts | 2 +- .../shared/example-viewer/example-viewer.html | 4 +- .../shared/example-viewer/example-viewer.scss | 2 +- docs/src/app/shared/footer/footer.scss | 2 +- docs/src/app/shared/navbar/navbar.html | 6 +- docs/src/app/shared/navbar/navbar.scss | 8 +- .../navigation-focus/navigation-focus.ts | 7 +- .../app/shared/theme-picker/theme-picker.html | 2 +- .../app/shared/theme-picker/theme-picker.scss | 2 +- docs/src/assets/stack-blitz/src/styles.scss | 2 +- docs/src/highlightjs/material-dark.scss | 36 +-- docs/src/highlightjs/material-light.scss | 17 +- docs/src/styles.scss | 7 +- docs/src/styles/_api.scss | 273 +++++++++--------- docs/src/styles/_constants.scss | 2 +- docs/src/styles/_general.scss | 45 --- docs/src/styles/_markdown.scss | 179 ++++++------ docs/src/styles/_tables.scss | 104 +++---- .../src/styles/custom-themes/cyan-orange.scss | 1 - .../styles/custom-themes/magenta-violet.scss | 1 - docs/src/styles/general.scss | 44 +++ package.json | 2 +- .../cross-package-import-validation.ts | 6 +- 58 files changed, 459 insertions(+), 446 deletions(-) delete mode 100644 docs/src/styles/_general.scss create mode 100644 docs/src/styles/general.scss diff --git a/.stylelintrc.json b/.stylelintrc.json index ea005cf21f1e..2c610bce3151 100644 --- a/.stylelintrc.json +++ b/.stylelintrc.json @@ -137,7 +137,7 @@ ], "linebreaks": "unix", "selector-class-pattern": [ - "^_?(mat-|cdk-|example-|demo-|ng-|mdc-|map-|test-|youtube-player-)", + "^_?(mat-|cdk-|example-|demo-|ng-|mdc-|map-|test-|youtube-player-|docs-|scene-|hljs)", { "resolveNestedSelectors": true } diff --git a/docs/scenes/src/app/scenes/core/core-scene.html b/docs/scenes/src/app/scenes/core/core-scene.html index f7860157d300..3aa54ed57377 100644 --- a/docs/scenes/src/app/scenes/core/core-scene.html +++ b/docs/scenes/src/app/scenes/core/core-scene.html @@ -1,3 +1,3 @@ -
+
settings
diff --git a/docs/scenes/src/app/scenes/core/core-scene.scss b/docs/scenes/src/app/scenes/core/core-scene.scss index 52e9f0e998a6..3eff81b38bb0 100644 --- a/docs/scenes/src/app/scenes/core/core-scene.scss +++ b/docs/scenes/src/app/scenes/core/core-scene.scss @@ -1,4 +1,4 @@ -.core-icon { +.scene-core-icon { display: flex; transform: scale(3); } diff --git a/docs/scenes/src/app/scenes/datepicker/datepicker-scene.html b/docs/scenes/src/app/scenes/datepicker/datepicker-scene.html index d8e863c5a59b..0c6b36e98c41 100644 --- a/docs/scenes/src/app/scenes/datepicker/datepicker-scene.html +++ b/docs/scenes/src/app/scenes/datepicker/datepicker-scene.html @@ -1,9 +1,8 @@ -
+
+ [selected]="selectedDate">
diff --git a/docs/scenes/src/app/scenes/datepicker/datepicker-scene.scss b/docs/scenes/src/app/scenes/datepicker/datepicker-scene.scss index 0d8f7c7cce3c..ae3c7e69f8ad 100644 --- a/docs/scenes/src/app/scenes/datepicker/datepicker-scene.scss +++ b/docs/scenes/src/app/scenes/datepicker/datepicker-scene.scss @@ -1,9 +1,9 @@ -.calendar { +.docs-calendar { margin-top: 140px; background: rgba(white, 0.8); } -.calendar-wrapper { +.docs-calendar-wrapper { display: flex; mat-calendar { diff --git a/docs/scenes/src/app/scenes/grid-list/grid-list-scene.scss b/docs/scenes/src/app/scenes/grid-list/grid-list-scene.scss index aa6ba8230471..57c9a57c5a2d 100644 --- a/docs/scenes/src/app/scenes/grid-list/grid-list-scene.scss +++ b/docs/scenes/src/app/scenes/grid-list/grid-list-scene.scss @@ -7,5 +7,7 @@ app-grid-list-scene { mat-grid-tile { box-sizing: border-box; padding: 3px; + + // stylelint-disable-next-line material/no-prefixes background-clip: content-box !important; } diff --git a/docs/scenes/src/app/scenes/icon/icon-scene.html b/docs/scenes/src/app/scenes/icon/icon-scene.html index 4a7281abd724..0fd4d32985f8 100644 --- a/docs/scenes/src/app/scenes/icon/icon-scene.html +++ b/docs/scenes/src/app/scenes/icon/icon-scene.html @@ -1,10 +1,10 @@
- backup - cast - bug_report + backup + cast + bug_report
- insights - pets - verified + insights + pets + verified
diff --git a/docs/scenes/src/app/scenes/icon/icon-scene.scss b/docs/scenes/src/app/scenes/icon/icon-scene.scss index 1873a37a7193..ca5c9598c7d1 100644 --- a/docs/scenes/src/app/scenes/icon/icon-scene.scss +++ b/docs/scenes/src/app/scenes/icon/icon-scene.scss @@ -2,22 +2,22 @@ margin: 5px; } -.backup { +.scene-backup { color: #c11; } -.cast { +.scene-cast { color: #f77; } -.insights { +.scene-insights { color: #e66; } -.pets { +.scene-pets { color: #f11; } -.verified { +.scene-verified { color: #d66; } diff --git a/docs/scenes/src/app/scenes/input/input-scene.scss b/docs/scenes/src/app/scenes/input/input-scene.scss index ad78e2d87a36..6f7f56ed1e48 100644 --- a/docs/scenes/src/app/scenes/input/input-scene.scss +++ b/docs/scenes/src/app/scenes/input/input-scene.scss @@ -5,7 +5,7 @@ .scene-inputs { margin-top: 15px; width: 250px; - /* TODO(mdc-migration): The following rule targets internal classes of form-field that may no longer apply for the MDC version. */ + .mat-form-field-appearance-outline .mat-form-field-outline-thick { opacity: 0.5; } diff --git a/docs/scenes/src/app/scenes/placeholder/placeholder-scene.html b/docs/scenes/src/app/scenes/placeholder/placeholder-scene.html index f6f081182478..a5cbba2457a0 100644 --- a/docs/scenes/src/app/scenes/placeholder/placeholder-scene.html +++ b/docs/scenes/src/app/scenes/placeholder/placeholder-scene.html @@ -1,3 +1,3 @@ -
-
-
+
+
+
diff --git a/docs/scenes/src/app/scenes/placeholder/placeholder-scene.scss b/docs/scenes/src/app/scenes/placeholder/placeholder-scene.scss index 1481ad6ae664..6227568b134a 100644 --- a/docs/scenes/src/app/scenes/placeholder/placeholder-scene.scss +++ b/docs/scenes/src/app/scenes/placeholder/placeholder-scene.scss @@ -1,4 +1,4 @@ -.circle-big { +.scene-circle-big { position: absolute; width: 140px; height: 140px; @@ -8,7 +8,7 @@ left: 50px; } -.circle-small { +.scene-circle-small { position: absolute; width: 70px; height: 70px; @@ -17,7 +17,7 @@ background: rgba(rosybrown, 0.5); } -.half-circle { +.scene-half-circle { transform: rotate(145deg); position: absolute; left: 200px; diff --git a/docs/scenes/src/app/scenes/ripples/ripples-scene.html b/docs/scenes/src/app/scenes/ripples/ripples-scene.html index cdc9dced71aa..659fd9e60b1a 100644 --- a/docs/scenes/src/app/scenes/ripples/ripples-scene.html +++ b/docs/scenes/src/app/scenes/ripples/ripples-scene.html @@ -2,6 +2,6 @@ matRipple [matRippleDisabled]="true">
- diff --git a/docs/scenes/src/app/scenes/ripples/ripples-scene.scss b/docs/scenes/src/app/scenes/ripples/ripples-scene.scss index 51a9954c7eaa..e3f3157cdf98 100644 --- a/docs/scenes/src/app/scenes/ripples/ripples-scene.scss +++ b/docs/scenes/src/app/scenes/ripples/ripples-scene.scss @@ -3,11 +3,10 @@ button { height: 60px; } -#scene-ripples-button { +.scene-ripples-button { overflow: hidden; } -/* TODO(mdc-migration): The following rule targets internal classes of button that may no longer apply for the MDC version. */ .mat-button-wrapper { font-size: 18px; } diff --git a/docs/scenes/src/app/scenes/slider/slider-scene.html b/docs/scenes/src/app/scenes/slider/slider-scene.html index fb271394402f..1de2d92355e8 100644 --- a/docs/scenes/src/app/scenes/slider/slider-scene.html +++ b/docs/scenes/src/app/scenes/slider/slider-scene.html @@ -1,10 +1,10 @@ -
+
volume_up
-
+
brightness_low diff --git a/docs/scenes/src/app/scenes/slider/slider-scene.scss b/docs/scenes/src/app/scenes/slider/slider-scene.scss index 304c22a02c41..378ef6a34552 100644 --- a/docs/scenes/src/app/scenes/slider/slider-scene.scss +++ b/docs/scenes/src/app/scenes/slider/slider-scene.scss @@ -1,4 +1,4 @@ -.slider-row { +.scene-slider-row { display: flex; align-items: center; } diff --git a/docs/scenes/src/app/scenes/tooltip/tooltip-scene.html b/docs/scenes/src/app/scenes/tooltip/tooltip-scene.html index 5ee5b8213bcd..86925432db1c 100644 --- a/docs/scenes/src/app/scenes/tooltip/tooltip-scene.html +++ b/docs/scenes/src/app/scenes/tooltip/tooltip-scene.html @@ -1,6 +1,6 @@ -
+