diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index ffd85e8842..0f19c8c861 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,5 +1,4 @@ * @jmacura @FilipLeitner **/package*.json @jmacura ./projects/hslayers-server/** @fzadrazil -./projects/hslayers-material/** @SLeitgeb -./projects/hslayers-material-app/** @SLeitgeb + diff --git a/angular.json b/angular.json index 0e297a7a95..38d3bb86c5 100644 --- a/angular.json +++ b/angular.json @@ -784,155 +784,6 @@ } } } - }, - "hslayers-material": { - "projectType": "library", - "root": "projects/hslayers-material", - "sourceRoot": "projects/hslayers-material/src", - "prefix": "lib", - "architect": { - "build": { - "builder": "@angular-devkit/build-angular:ng-packagr", - "options": { - "tsConfig": "projects/hslayers-material/tsconfig.lib.json", - "project": "projects/hslayers-material/ng-package.json" - }, - "configurations": { - "production": { - "tsConfig": "projects/hslayers-material/tsconfig.lib.prod.json" - } - } - }, - "test": { - "builder": "@angular-devkit/build-angular:karma", - "options": { - "main": "projects/hslayers-material/src/test.ts", - "tsConfig": "projects/hslayers-material/tsconfig.spec.json", - "karmaConfig": "projects/hslayers-material/karma.conf.js" - } - }, - "lint": { - "builder": "@angular-eslint/builder:lint", - "options": { - "lintFilePatterns": [ - "projects/hslayers-material/**/*.ts", - "projects/hslayers-material/**/*.html" - ] - } - } - } - }, - "hslayers-material-app": { - "projectType": "application", - "schematics": { - "@schematics/angular:component": { - "style": "scss" - } - }, - "root": "projects/hslayers-material-app", - "sourceRoot": "projects/hslayers-material-app/src", - "prefix": "app", - "architect": { - "build": { - "builder": "@angular-devkit/build-angular:browser", - "options": { - "outputPath": "dist/hslayers-material-app", - "index": "projects/hslayers-material-app/src/index.html", - "main": "projects/hslayers-material-app/src/main.ts", - "polyfills": "projects/hslayers-material-app/src/polyfills.ts", - "tsConfig": "projects/hslayers-material-app/tsconfig.app.json", - "assets": [ - "projects/hslayers-material-app/src/favicon.ico", - "projects/hslayers-material-app/src/assets" - ], - "styles": [ - "./node_modules/@angular/material/prebuilt-themes/indigo-pink.css", - "projects/hslayers-material-app/src/styles.scss" - ], - "scripts": [], - "vendorChunk": true, - "extractLicenses": false, - "buildOptimizer": false, - "sourceMap": true, - "optimization": false, - "namedChunks": true - }, - "configurations": { - "production": { - "fileReplacements": [ - { - "replace": "projects/hslayers-material-app/src/environments/environment.ts", - "with": "projects/hslayers-material-app/src/environments/environment.prod.ts" - } - ], - "optimization": true, - "outputHashing": "all", - "sourceMap": false, - "namedChunks": false, - "extractLicenses": true, - "vendorChunk": false, - "buildOptimizer": true, - "budgets": [ - { - "type": "initial", - "maximumWarning": "2mb", - "maximumError": "5mb" - }, - { - "type": "anyComponentStyle", - "maximumWarning": "200kb", - "maximumError": "300kb" - } - ] - } - }, - "defaultConfiguration": "" - }, - "serve": { - "builder": "@angular-devkit/build-angular:dev-server", - "options": { - "browserTarget": "hslayers-material-app:build" - }, - "configurations": { - "production": { - "browserTarget": "hslayers-material-app:build:production" - } - } - }, - "extract-i18n": { - "builder": "@angular-devkit/build-angular:extract-i18n", - "options": { - "browserTarget": "hslayers-material-app:build" - } - }, - "test": { - "builder": "@angular-devkit/build-angular:karma", - "options": { - "main": "projects/hslayers-material-app/src/test.ts", - "polyfills": "projects/hslayers-material-app/src/polyfills.ts", - "tsConfig": "projects/hslayers-material-app/tsconfig.spec.json", - "karmaConfig": "projects/hslayers-material-app/karma.conf.js", - "assets": [ - "projects/hslayers-material-app/src/favicon.ico", - "projects/hslayers-material-app/src/assets" - ], - "styles": [ - "./node_modules/@angular/material/prebuilt-themes/indigo-pink.css", - "projects/hslayers-material-app/src/styles.scss" - ], - "scripts": [] - } - }, - "lint": { - "builder": "@angular-eslint/builder:lint", - "options": { - "lintFilePatterns": [ - "projects/hslayers-material-app/**/*.ts", - "projects/hslayers-material-app/**/*.html" - ] - } - } - } } }, "cli": { diff --git a/package-lock.json b/package-lock.json index a2ec287533..a50ff1d347 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,6 @@ "@angular/core": "^17.0.8", "@angular/forms": "^17.0.8", "@angular/localize": "^17.0.8", - "@angular/material": "^17.0.4", "@angular/platform-browser": "^17.0.8", "@angular/platform-browser-dynamic": "^17.0.8", "@ng-bootstrap/ng-bootstrap": "^16.0.0", @@ -652,70 +651,6 @@ "@angular/compiler-cli": "17.0.8" } }, - "node_modules/@angular/material": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-17.0.4.tgz", - "integrity": "sha512-IKkys4EavE1TMHApPMbFLvJU4pP8S8XNfY2eS7/kFwW7eyTcz0zV/IKeBbxkpej19MaouozU+KWeRJtxHg6x8g==", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/auto-init": "15.0.0-canary.a246a4439.0", - "@material/banner": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/button": "15.0.0-canary.a246a4439.0", - "@material/card": "15.0.0-canary.a246a4439.0", - "@material/checkbox": "15.0.0-canary.a246a4439.0", - "@material/chips": "15.0.0-canary.a246a4439.0", - "@material/circular-progress": "15.0.0-canary.a246a4439.0", - "@material/data-table": "15.0.0-canary.a246a4439.0", - "@material/density": "15.0.0-canary.a246a4439.0", - "@material/dialog": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/drawer": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/fab": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/floating-label": "15.0.0-canary.a246a4439.0", - "@material/form-field": "15.0.0-canary.a246a4439.0", - "@material/icon-button": "15.0.0-canary.a246a4439.0", - "@material/image-list": "15.0.0-canary.a246a4439.0", - "@material/layout-grid": "15.0.0-canary.a246a4439.0", - "@material/line-ripple": "15.0.0-canary.a246a4439.0", - "@material/linear-progress": "15.0.0-canary.a246a4439.0", - "@material/list": "15.0.0-canary.a246a4439.0", - "@material/menu": "15.0.0-canary.a246a4439.0", - "@material/menu-surface": "15.0.0-canary.a246a4439.0", - "@material/notched-outline": "15.0.0-canary.a246a4439.0", - "@material/radio": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/segmented-button": "15.0.0-canary.a246a4439.0", - "@material/select": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/slider": "15.0.0-canary.a246a4439.0", - "@material/snackbar": "15.0.0-canary.a246a4439.0", - "@material/switch": "15.0.0-canary.a246a4439.0", - "@material/tab": "15.0.0-canary.a246a4439.0", - "@material/tab-bar": "15.0.0-canary.a246a4439.0", - "@material/tab-indicator": "15.0.0-canary.a246a4439.0", - "@material/tab-scroller": "15.0.0-canary.a246a4439.0", - "@material/textfield": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tooltip": "15.0.0-canary.a246a4439.0", - "@material/top-app-bar": "15.0.0-canary.a246a4439.0", - "@material/touch-target": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.3.0" - }, - "peerDependencies": { - "@angular/animations": "^17.0.0 || ^18.0.0", - "@angular/cdk": "17.0.4", - "@angular/common": "^17.0.0 || ^18.0.0", - "@angular/core": "^17.0.0 || ^18.0.0", - "@angular/forms": "^17.0.0 || ^18.0.0", - "@angular/platform-browser": "^17.0.0 || ^18.0.0", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, "node_modules/@angular/platform-browser": { "version": "17.0.8", "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.0.8.tgz", @@ -4549,758 +4484,6 @@ "node": ">= 0.4" } }, - "node_modules/@material/animation": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-0eV06UGYeuFwC/4t+yjg3LCRGRLq72ybBtJYzcBDpP4ASTjie0WmpAOFJYXRq2U5X/yxLviDMhpRemoSUjgZ0Q==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@material/auto-init": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/auto-init/-/auto-init-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-0QfmjT5elQ10hCxToVgq/WaC3301tVH1sJaO3O2yocVzr7s6iWm8/zch16V5hcHzQHbtcT3Rf4y1ZzmdNys2Iw==", - "dependencies": { - "@material/base": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/banner": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/banner/-/banner-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-PBLgH7JEbEpTkLy33oyWXUhIFmSsdOrR6Gn6qIgQRo1qrnk5RSBGW2gEq4Z6793vjxM107gKudDb23E4Fcu4vg==", - "dependencies": { - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/button": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/base": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/base/-/base-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-/ob3v3IFU8q2gGdVNWw5kNPjW2mRTeBIz1YdhGWUmRxKn2Kl8bdLOvrAmZtQMmPn/4cGXvinxpec/zVBWQKDkA==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@material/button": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/button/-/button-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-rGpVRde0Aqhv2t9QvT8Zl3HvG89BeUNPOpgfpaLBZ4SGGAO4rIrckl/eCENibKgmmdCKcYZlG9gc5abQVPfUvw==", - "dependencies": { - "@material/density": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/focus-ring": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "@material/touch-target": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/card": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/card/-/card-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-+rYUnBPgv5QVF6BeUs3toIRdSwFVohGmjk2ptTXMZkKxqAJt7Nr9Znbm3Ym2hD8GUHJeh3pyGFvEs6rG6JMYAw==", - "dependencies": { - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/checkbox": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/checkbox/-/checkbox-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-sQwHzm1TSxHUoPrqplWTk/BhyzdDhzcwlbucwJK9W0o9WXMDk+d9PvcCxpP/9sAnVqZk42BfE89Y0T1DHglZ9A==", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/density": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/focus-ring": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/touch-target": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/chips": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/chips/-/chips-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-TiV9WJ5taEHPGWPhXbxJvUJhLzThg+VpK7aAlvL4RurtmJ7pURuEdRS4Z6o0OEqi3wKQ4z/+K44kZUn/+9HALg==", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/checkbox": "15.0.0-canary.a246a4439.0", - "@material/density": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/focus-ring": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "@material/touch-target": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "safevalues": "^0.3.4", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/circular-progress": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/circular-progress/-/circular-progress-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-+QTfyExPWzgm2tqMInd32qQOftsC1b8MUhAhZSfuecYBfqAc7KZkQEKa2nm4y8EHKMFWe8/DcxLV6IxMBLgHwA==", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/progress-indicator": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/data-table": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/data-table/-/data-table-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-89qVOjR7gqby6fsmh7tKj29SjQ2sGLXu2IzCeX3Vni4mz+xxo5dv11jxYNADvdgJDfhyDJFPh1FlqAH7O09nFA==", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/checkbox": "15.0.0-canary.a246a4439.0", - "@material/density": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/icon-button": "15.0.0-canary.a246a4439.0", - "@material/linear-progress": "15.0.0-canary.a246a4439.0", - "@material/list": "15.0.0-canary.a246a4439.0", - "@material/menu": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/select": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "@material/touch-target": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/density": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/density/-/density-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-h8BJVCWkPR97WeWCN6/atVbSOP8J4+ZbbssidcwsnX7b3+3IaWdtBxGii25dsILX8pUVwwqxVis24y211b+8rg==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@material/dialog": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/dialog/-/dialog-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-4lyxd+5ccOEMUGKzZcssaYyzkCsYTpYCSQSANR0toQPLv3voDwKMfA709uZI6+nL7Re6Xdf7jx8qe+QpTTjVcw==", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/button": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/icon-button": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "@material/touch-target": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/dom": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/dom/-/dom-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-AftSOGQoQg/Ys2kOVjZzvqWmsnhg3Kam/2UC4Gj0DMMCu36J4MAoD+3PpnOd1aG3wiJKtUXR2vPIwE8I/PM9yg==", - "dependencies": { - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/drawer": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/drawer/-/drawer-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-/JUmbzRBaikdbZ250yA9ZTPqp2W5nGvvuHYoNVAAmtOmxuwGvvNNpWiVZy2lIYeYcf1hA7hJ5mEQxs0aSD7iWQ==", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/list": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/elevation": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-lwPIOb8fHyOljIWYcVLPT73dPIEOKat/CXu6gqYIVMQgZQIksQNUA7z1O3l7apkRSuYUOYSXqrgU7AnWP4KcJg==", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/fab": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/fab/-/fab-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-XUex3FNqxPD1i/4jITucB/RWTNkkdv52mbNmwrvbuThZlhuhyH9GzOQYTDop/b2783TPcv++xr8UUbuh8GWYzA==", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/focus-ring": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "@material/touch-target": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/feature-targeting": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-/SU9X5y8CRp6RS9qnjnM/N5qfsJ8bYILpR841eZmN6DLqMupaM9Yy7Mx8+v/QvpBLLhk+jmu79nFzwkwW54d6Q==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@material/floating-label": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-832qZ/qxKx0KUatoeVY3Q2NmboVgiWBG0/1VsbJyodHrgQWfnBOHgLE+M322o6uM3OhvO+kWm4iYbvwhmLZGsw==", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/focus-ring": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/focus-ring/-/focus-ring-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-ar0BtACFS3K14k/enAg0ePeEA/f/RJY4Ji4L/00Dw/B3XVpNRbqLH49jkcbtcQjdTS0FEyk2sWSNMZl6wVi0/A==", - "dependencies": { - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0" - } - }, - "node_modules/@material/form-field": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/form-field/-/form-field-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-Q/+ErgtAUFUPPUmWA1m5IP5voiN8XjPRwyoAlFxSTa/4t+EA5B18Z8Bsn9b6I0AC8RHke06H7UWrKz8XUDIFpw==", - "dependencies": { - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/icon-button": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/icon-button/-/icon-button-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-Igyo94rkIlqC91BR1Tv+WLTz1ZWcZZjl1xU7Vsx8mbWA1PnaRDUTNVV5LFi4e0ORp6GSblFTImpHngEy4agMEg==", - "dependencies": { - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/density": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/focus-ring": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/touch-target": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/image-list": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/image-list/-/image-list-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-Rcj3q7Tp7Nwbe5ht6ptTc3zqK8TSDJHaPDBf+kzi0kkh6MAB4qoHPgn+HnA+zIZ79CScU56bN7zjA6XYaZvsLw==", - "dependencies": { - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/layout-grid": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/layout-grid/-/layout-grid-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-bkfxZuVzgtjEJgR3n8pvDQbe88ffULDJ5d2DF34IR8SOiRmQcj7UzqAt95XwIUcWlfisLCoIryP4U8XSpFb1EQ==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@material/line-ripple": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-20WmwRrejmtOdI37+959UqEVIjbMtAXlkDOkfCIA3OUhp+oZSjVkCqKxI16jxxVlnzJ353fy8xeSKzOHe4sExQ==", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/linear-progress": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/linear-progress/-/linear-progress-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-IcCd4476pXHloTYadHDJ+2c2lntoVigeNnQEiD/ASQTKqKrJqkIdvvczFm9Ryu+V2+TKhp7vvQGFLUMaLPcmhw==", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/progress-indicator": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/list": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/list/-/list-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-4H5dKIjCUGIPmKjfcegV0SBybD5NNdHp26OU6sovvWIvxSGQtDJr6z9I7i+0vF/HIS5ScbHD2+9/txtL80iqCA==", - "dependencies": { - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/density": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/menu": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/menu/-/menu-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-2HOHQAIdWQtXjSvEIrW3lnbcIwFf5XaQhFzCEZ04FcSGApc4iLwsmRFVW3PzWx+mVrUrEfO/K42DVULIX9J1Pg==", - "dependencies": { - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/list": "15.0.0-canary.a246a4439.0", - "@material/menu-surface": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/menu-surface": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/menu-surface/-/menu-surface-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-4h4wZ0Rs7qBg1Otldw8ljp+LCULNL42pqbqcTXhKAkJM7pHcSw4k7IfoThSRLU3+V8T3/+qiAXyeQix2OGHzwg==", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/notched-outline": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-zmRZHJ+5cOWsBatRyK50wuht78olXySyKOJIIEmy8lxSMZefI1764u0mr8tS1KYF8vSAl5cUlwCC3/2Njz1FPg==", - "dependencies": { - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/floating-label": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/progress-indicator": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/progress-indicator/-/progress-indicator-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-92HM5niUnqG5Y3M/xkscBD+2lkaWPDcIRPo0RHPYcyldL+EhWRv/sdQpfdiXw/h3uvKSowKxBMCHm8krAyf+sQ==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@material/radio": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/radio/-/radio-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-on8EVztWXc/ajcaowFZ31ClGADYxQrhj4ulMne0NxdHHWQ44ttf5aXOVqtv5mxeOzrRACOkQyTUXBG07yTWCEQ==", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/density": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/focus-ring": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/touch-target": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/ripple": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-Vl615/PIBpBD+IOI9Xypz0SV3RsmYJYSNx890Rih7irhUOaPsOUBmTYOWF5AsGBynqLcXoTNVhK92drYLKtJwQ==", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/rtl": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-pgJFw8ZRpWGpwv7ZuBTJ+WdNmFBKoLVoMbbxKQWTHXVwhAqn3aoIq95o62T5QeEG/+sguNShdquG45CpAMmSRw==", - "dependencies": { - "@material/theme": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/segmented-button": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/segmented-button/-/segmented-button-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-oqGHs2C7C+yJW/xZf/wP8jBGLs6HcerhM3CsorLAEMH3MGuIlVC17WcisBewEWucsILYEWbySXy/7T4h6/psZA==", - "dependencies": { - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/touch-target": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/select": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/select/-/select-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-odoNLiVOgdwbEeePkjHtlr43pjskDwyO8hi4z3jcud1Rg1czk5zoJ2mUI0+olOJjBQ26PGocwrSLqf3qaThbIA==", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/density": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/floating-label": "15.0.0-canary.a246a4439.0", - "@material/line-ripple": "15.0.0-canary.a246a4439.0", - "@material/list": "15.0.0-canary.a246a4439.0", - "@material/menu": "15.0.0-canary.a246a4439.0", - "@material/menu-surface": "15.0.0-canary.a246a4439.0", - "@material/notched-outline": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/shape": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/shape/-/shape-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-rcWPlCoHyP79ozeEKk73KWt9WTWdh6R68+n75l08TSTvnWZB5RRTmsI9BMkz55O9OJD/8H8ZsOxBe4x2QXUT7w==", - "dependencies": { - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/slider": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/slider/-/slider-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-is1BSBpxaXBBv+wSVpe9WGWmWl59yJEeDNubTES2UFD0er3BmA+PdKkL09vvytDnBcbKf77TbxaRiUSGVaKUQA==", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/snackbar": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/snackbar/-/snackbar-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-2NAtC1qozR/uajszZnPy08Ej8HNnpgvCjNCBerDN4SLH2Q0/aWrVrUjqRCp2ayAvsX+szoroGbCboMhaWRzDuQ==", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/button": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/icon-button": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/switch": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/switch/-/switch-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-o0wcbYgm2yRs4een5uxT4RJnJ003DxXe33rk8vTBG2o7cdiSR3X7GJQxeIK3D9wPgWCAwBLhNYSzXrlTL5pkMw==", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/density": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/focus-ring": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "safevalues": "^0.3.4", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/tab": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/tab/-/tab-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-HGLK774uMeLnhbjDJBOjft7S6SurZnKb+6Und88OMDUVUEG6MkFBAKQQr09iBIeLE2sUAiGQhBVQtb7LJKwolQ==", - "dependencies": { - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/focus-ring": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/tab-indicator": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/tab-bar": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/tab-bar/-/tab-bar-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-dMQb1vXsBchQXcjbwgJZIGqTZHngm+3QGSOSb4LWjqHIgC5+w2RRrHsIAjNTyRhKssJ9nKKrbpM/Yz5vTPWH6w==", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/density": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/tab": "15.0.0-canary.a246a4439.0", - "@material/tab-indicator": "15.0.0-canary.a246a4439.0", - "@material/tab-scroller": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/tab-indicator": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/tab-indicator/-/tab-indicator-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-gG2BgHT+ggKnUOaT8LjmH/+9nknRLh8v9qemrhUkDuCtZ8inlaC33OVbbxfrpQW3J+UzBh5YCUSC+2KrN39uUA==", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/tab-scroller": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/tab-scroller/-/tab-scroller-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-6KvBpalc4SwLbHFm0rnuIE64VffUj7AKhnPc+mqM6VmxOvDzQ/ZSYga0rWlUfM4mCDFX3ZkSxim+iNzVF+Ejaw==", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/tab": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/textfield": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/textfield/-/textfield-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-4BW5bUERPlIeiPnLSby21h1/xDmySuAG9Ucn1LM801a0+5mK3IwWb8031AP3filKZZqTx5JJvOJYZd6/OWBJVA==", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/density": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/floating-label": "15.0.0-canary.a246a4439.0", - "@material/line-ripple": "15.0.0-canary.a246a4439.0", - "@material/notched-outline": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/theme": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-HWxC5Nhz8JZKTLTVmAsNxIGB3Kzr53+YFMg327S8/XuEDmI0RFHFvtwM9rADmyrHFBmUaVhV4iELyxFdi67c9w==", - "dependencies": { - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/tokens": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/tokens/-/tokens-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-+5iGfQ51YSb0Qau8uC6/jHXCSC3enKaQKDf/iPHfuXAe04UznW3tmm1/Ju227aZXNISTJcnQYa2rpm1M14MeUg==", - "dependencies": { - "@material/elevation": "15.0.0-canary.a246a4439.0" - } - }, - "node_modules/@material/tooltip": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/tooltip/-/tooltip-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-Ja2Z4aZQkYWD6InXA+MG4M9zdKR6dYsXXlYzQppYpfcQzXylZqh5Y7WBLulG5fA2o83pHVwILfwFZM7j7ht08Q==", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/button": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "safevalues": "^0.3.4", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/top-app-bar": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/top-app-bar/-/top-app-bar-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-twQchmCa1In/FFrALPYojgeM8vmV7KH96wRY9NmPSJ046ANgPCicLBgLuSzrLETCFqAwbztqzxSG4xMBL81rYg==", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/touch-target": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/touch-target/-/touch-target-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-ubyD1TUjZnRPEdDnk6Lrcm2ZsjnU7CV5y7IX8pj9IPawiM6bx4FkjZBxUvclbv3WiTGk5UOnwPOySYAJYAMQ1w==", - "dependencies": { - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/typography": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-eXzBl9ROzWZ+41nan5pCrn1C/Zq3o/VsrLFaGv8fdRmhRR6/wHMeuvCCwGf5VtEmWdAE9FpJzRU/4ZPiJCJUyg==", - "dependencies": { - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, "node_modules/@microsoft/tsdoc": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.14.2.tgz", @@ -22329,11 +21512,6 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "node_modules/safevalues": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/safevalues/-/safevalues-0.3.4.tgz", - "integrity": "sha512-LRneZZRXNgjzwG4bDQdOTSbze3fHm1EAKN/8bePxnlEZiBmkYEDggaHbuvHI9/hoqHbGfsEA7tWS9GhYHZBBsw==" - }, "node_modules/sass": { "version": "1.69.7", "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.7.tgz", diff --git a/package.json b/package.json index 89bd21a292..0459863224 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,6 @@ "@angular/core": "^17.0.8", "@angular/forms": "^17.0.8", "@angular/localize": "^17.0.8", - "@angular/material": "^17.0.4", "@angular/platform-browser": "^17.0.8", "@angular/platform-browser-dynamic": "^17.0.8", "@ng-bootstrap/ng-bootstrap": "^16.0.0", @@ -154,4 +153,4 @@ "path": false, "fs": false } -} \ No newline at end of file +} diff --git a/projects/hslayers-material-app/.eslintrc.json b/projects/hslayers-material-app/.eslintrc.json deleted file mode 100644 index a5374f2c78..0000000000 --- a/projects/hslayers-material-app/.eslintrc.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "extends": "../../.eslintrc.json", - "ignorePatterns": [ - "!**/*" - ], - "overrides": [ - { - "files": [ - "*.ts" - ], - "parserOptions": { - "project": [ - "projects/hslayers-material-app/tsconfig.app.json", - "projects/hslayers-material-app/tsconfig.spec.json", - "projects/hslayers-material-app/e2e/tsconfig.json" - ], - "createDefaultProgram": true - }, - "extends": [ - "prettier", - "prettier/@typescript-eslint" - ], - "rules": { - "@angular-eslint/component-selector": [ - "error", - { - "type": "element", - "prefix": "app", - "style": "kebab-case" - } - ], - "@angular-eslint/directive-selector": [ - "error", - { - "type": "attribute", - "prefix": "app", - "style": "camelCase" - } - ] - } - }, - { - "files": [ - "*.html" - ], - "rules": {} - } - ] -} diff --git a/projects/hslayers-material-app/browserslist b/projects/hslayers-material-app/browserslist deleted file mode 100644 index 80848532e4..0000000000 --- a/projects/hslayers-material-app/browserslist +++ /dev/null @@ -1,12 +0,0 @@ -# This file is used by the build system to adjust CSS and JS output to support the specified browsers below. -# For additional information regarding the format and rule options, please see: -# https://github.com/browserslist/browserslist#queries - -# You can see what browsers were selected by your queries by running: -# npx browserslist - -> 0.5% -last 2 versions -Firefox ESR -not dead -not IE 9-11 # For IE 9-11 support, remove 'not'. \ No newline at end of file diff --git a/projects/hslayers-material-app/karma.conf.js b/projects/hslayers-material-app/karma.conf.js deleted file mode 100644 index ca9e908eeb..0000000000 --- a/projects/hslayers-material-app/karma.conf.js +++ /dev/null @@ -1,32 +0,0 @@ -// Karma configuration file, see link for more information -// https://karma-runner.github.io/1.0/config/configuration-file.html - -module.exports = function (config) { - config.set({ - basePath: '', - frameworks: ['jasmine', '@angular-devkit/build-angular'], - plugins: [ - require('karma-jasmine'), - require('karma-chrome-launcher'), - require('karma-jasmine-html-reporter'), - require('karma-coverage-istanbul-reporter'), - require('@angular-devkit/build-angular/plugins/karma') - ], - client: { - clearContext: false // leave Jasmine Spec Runner output visible in browser - }, - coverageIstanbulReporter: { - dir: require('path').join(__dirname, '../../coverage/hslayers-material-app'), - reports: ['html', 'lcovonly', 'text-summary'], - fixWebpackSourcePaths: true - }, - reporters: ['progress', 'kjhtml'], - port: 9876, - colors: true, - logLevel: config.LOG_INFO, - autoWatch: true, - browsers: ['Chrome'], - singleRun: false, - restartOnFileChange: true - }); -}; diff --git a/projects/hslayers-material-app/src/app/app.component.html b/projects/hslayers-material-app/src/app/app.component.html deleted file mode 100644 index c777ab735d..0000000000 --- a/projects/hslayers-material-app/src/app/app.component.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/projects/hslayers-material-app/src/app/app.component.sass b/projects/hslayers-material-app/src/app/app.component.sass deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/projects/hslayers-material-app/src/app/app.component.spec.ts b/projects/hslayers-material-app/src/app/app.component.spec.ts deleted file mode 100644 index 394d57d76f..0000000000 --- a/projects/hslayers-material-app/src/app/app.component.spec.ts +++ /dev/null @@ -1,31 +0,0 @@ -import {AppComponent} from './app.component'; -import {TestBed, async} from '@angular/core/testing'; - -describe('AppComponent', () => { - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [AppComponent], - }).compileComponents(); - })); - - it('should create the app', () => { - const fixture = TestBed.createComponent(AppComponent); - const app = fixture.componentInstance; - expect().toBeTruthy(); - }); - - it(`should have as title 'hslayers-material-app'`, () => { - const fixture = TestBed.createComponent(AppComponent); - const app = fixture.componentInstance; - expect(app.title).toEqual('hslayers-material-app'); - }); - - it('should render title', () => { - const fixture = TestBed.createComponent(AppComponent); - fixture.detectChanges(); - const compiled = fixture.nativeElement; - expect(compiled.querySelector('.content span').textContent).toContain( - 'hslayers-material-app app is running!', - ); - }); -}); diff --git a/projects/hslayers-material-app/src/app/app.component.ts b/projects/hslayers-material-app/src/app/app.component.ts deleted file mode 100644 index 6b053d45cf..0000000000 --- a/projects/hslayers-material-app/src/app/app.component.ts +++ /dev/null @@ -1,81 +0,0 @@ -import {Component, Input, OnInit} from '@angular/core'; - -import * as proj from 'ol/proj'; -import {GeoJSON} from 'ol/format'; -import {View} from 'ol'; -import { - BingMaps, - ImageArcGISRest, - ImageWMS, - OSM, - TileArcGISRest, - TileWMS, - Vector, - WMTS, - XYZ, -} from 'ol/source'; -import {Circle, Fill, Icon, Stroke, Style} from 'ol/style'; -import { - Group, - Image as ImageLayer, - Tile, - Vector as VectorLayer, -} from 'ol/layer'; - -import {HsConfig, HsLayoutService, SparqlJson} from 'hslayers-ng'; - -@Component({ - selector: 'hslayers-material-app', - templateUrl: './app.component.html', - styleUrls: ['./app.component.sass'], -}) -export class AppComponent implements OnInit { - - constructor( - public HsConfig: HsConfig, - public HsLayoutService: HsLayoutService - ) { - const w: any = window; - w.ol = { - layer: { - Tile, - Group, - Image: ImageLayer, - Vector: VectorLayer, - }, - source: { - OSM, - XYZ, - TileWMS, - Vector, - WMTS, - TileArcGISRest, - BingMaps, - ImageWMS, - ImageArcGISRest, - SparqlJson, - }, - format: { - GeoJSON, - }, - style: { - Style, - Fill, - Stroke, - Circle, - Icon, - }, - View, - proj, - }; - - if (w.hslayersNgConfig) { - Object.assign(this.HsConfig, w.hslayersNgConfig(w.ol)); - } - } - title = 'hslayers-material-app'; - - ngOnInit(): void { - this.HsLayoutService.setDefaultPanel('layermanager'); - } -} diff --git a/projects/hslayers-material-app/src/app/app.module.ts b/projects/hslayers-material-app/src/app/app.module.ts deleted file mode 100644 index 34be6f4292..0000000000 --- a/projects/hslayers-material-app/src/app/app.module.ts +++ /dev/null @@ -1,13 +0,0 @@ -import {AppComponent} from './app.component'; -import {BrowserAnimationsModule} from '@angular/platform-browser/animations'; -import {BrowserModule} from '@angular/platform-browser'; -import {HslayersMaterialModule} from 'hslayers-material'; -import {NgModule} from '@angular/core'; - -@NgModule({ - declarations: [AppComponent], - imports: [BrowserModule, BrowserAnimationsModule, HslayersMaterialModule], - providers: [], - bootstrap: [AppComponent], -}) -export class AppModule {} diff --git a/projects/hslayers-material-app/src/assets/.gitkeep b/projects/hslayers-material-app/src/assets/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/projects/hslayers-material-app/src/assets/img/ajax-loader.gif b/projects/hslayers-material-app/src/assets/img/ajax-loader.gif deleted file mode 100755 index d0bce15423..0000000000 Binary files a/projects/hslayers-material-app/src/assets/img/ajax-loader.gif and /dev/null differ diff --git a/projects/hslayers-material-app/src/assets/img/hslayers-ng-logo.png b/projects/hslayers-material-app/src/assets/img/hslayers-ng-logo.png deleted file mode 100644 index 25ce7b5b2f..0000000000 Binary files a/projects/hslayers-material-app/src/assets/img/hslayers-ng-logo.png and /dev/null differ diff --git a/projects/hslayers-material-app/src/environments/environment.prod.ts b/projects/hslayers-material-app/src/environments/environment.prod.ts deleted file mode 100644 index 3612073bc3..0000000000 --- a/projects/hslayers-material-app/src/environments/environment.prod.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const environment = { - production: true -}; diff --git a/projects/hslayers-material-app/src/environments/environment.ts b/projects/hslayers-material-app/src/environments/environment.ts deleted file mode 100644 index 30d7bccb19..0000000000 --- a/projects/hslayers-material-app/src/environments/environment.ts +++ /dev/null @@ -1,16 +0,0 @@ -// 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`. - -export const environment = { - production: false -}; - -/* - * For easier debugging in development mode, you can import the following file - * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. - * - * This import should be commented out in production mode because it will have a negative impact - * on performance if an error is thrown. - */ -// import 'zone.js/plugins/zone-error'; // Included with Angular CLI. diff --git a/projects/hslayers-material-app/src/favicon.ico b/projects/hslayers-material-app/src/favicon.ico deleted file mode 100644 index 997406ad22..0000000000 Binary files a/projects/hslayers-material-app/src/favicon.ico and /dev/null differ diff --git a/projects/hslayers-material-app/src/index.html b/projects/hslayers-material-app/src/index.html deleted file mode 100644 index b44a4f020f..0000000000 --- a/projects/hslayers-material-app/src/index.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - - HslayersMaterialApp - - - - - - - - - - - diff --git a/projects/hslayers-material-app/src/main.ts b/projects/hslayers-material-app/src/main.ts deleted file mode 100644 index c7b673cf44..0000000000 --- a/projects/hslayers-material-app/src/main.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { enableProdMode } from '@angular/core'; -import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; - -import { AppModule } from './app/app.module'; -import { environment } from './environments/environment'; - -if (environment.production) { - enableProdMode(); -} - -platformBrowserDynamic().bootstrapModule(AppModule) - .catch(err => console.error(err)); diff --git a/projects/hslayers-material-app/src/polyfills.ts b/projects/hslayers-material-app/src/polyfills.ts deleted file mode 100644 index 66ff66b7ba..0000000000 --- a/projects/hslayers-material-app/src/polyfills.ts +++ /dev/null @@ -1,58 +0,0 @@ -/*************************************************************************************************** - * Load `$localize` onto the global scope - used if i18n tags appear in Angular templates. - */ -import '@angular/localize/init'; - -/** - * This file includes polyfills needed by Angular and is loaded before the app. - * You can add your own extra polyfills to this file. - * - * 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 - */ - -/*************************************************************************************************** - * BROWSER POLYFILLS - */ - -/** - * By default, zone.js will patch all possible macroTask and DomEvents - * user can disable parts of macroTask/DomEvents patch by setting following flags - * because those flags need to be set before `zone.js` being loaded, and webpack - * will put import in the top of bundle, so user need to create a separate file - * in this directory (for example: zone-flags.ts), and put the following flags - * into that file, and then add the following code before importing zone.js. - * import './zone-flags'; - * - * The flags allowed in zone-flags.ts are listed here. - * - * The following flags will work for all browsers. - * - * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame - * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick - * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames - * - * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js - * with the following flag, it will bypass `zone.js` patch for IE/Edge - * - * (window as any).__Zone_enable_cross_context_check = true; - * - */ - -/*************************************************************************************************** - * Zone JS is required by default for Angular itself. - */ -import 'zone.js'; // Included with Angular CLI. - - -/*************************************************************************************************** - * APPLICATION IMPORTS - */ diff --git a/projects/hslayers-material-app/src/styles.scss b/projects/hslayers-material-app/src/styles.scss deleted file mode 100644 index 9c78034f33..0000000000 --- a/projects/hslayers-material-app/src/styles.scss +++ /dev/null @@ -1,10 +0,0 @@ -/* You can add global styles to this file, and also import other style files */ - -html, body { - margin: 0; -} - -hslayers-material-app { - height: 100vh; - display: block; -} diff --git a/projects/hslayers-material-app/src/test.ts b/projects/hslayers-material-app/src/test.ts deleted file mode 100644 index ae25f27c88..0000000000 --- a/projects/hslayers-material-app/src/test.ts +++ /dev/null @@ -1,16 +0,0 @@ -// This file is required by karma.conf.js and loads recursively all the .spec and framework files - -import 'zone.js/testing'; -import { getTestBed } from '@angular/core/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting -} from '@angular/platform-browser-dynamic/testing'; - -// First, initialize the Angular testing environment. -getTestBed().initTestEnvironment( - BrowserDynamicTestingModule, - platformBrowserDynamicTesting(), { - teardown: { destroyAfterEach: false } -} -); diff --git a/projects/hslayers-material-app/tsconfig.app.json b/projects/hslayers-material-app/tsconfig.app.json deleted file mode 100644 index 809c09ca71..0000000000 --- a/projects/hslayers-material-app/tsconfig.app.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "../../out-tsc/app", - "types": [] - }, - "files": [ - "src/main.ts", - "src/polyfills.ts" - ], - "include": [ - "src/**/*.d.ts" - ] -} diff --git a/projects/hslayers-material-app/tsconfig.spec.json b/projects/hslayers-material-app/tsconfig.spec.json deleted file mode 100644 index a8ce1d396b..0000000000 --- a/projects/hslayers-material-app/tsconfig.spec.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "../../out-tsc/spec", - "types": [ - "jasmine", - "node" - ] - }, - "files": [ - "src/test.ts", - "src/polyfills.ts" - ], - "include": [ - "src/**/*.spec.ts", - "src/**/*.d.ts" - ] -} diff --git a/projects/hslayers-material/.eslintrc.json b/projects/hslayers-material/.eslintrc.json deleted file mode 100644 index dbe2ae6bd2..0000000000 --- a/projects/hslayers-material/.eslintrc.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "extends": "../../.eslintrc.json", - "ignorePatterns": [ - "!**/*" - ], - "overrides": [ - { - "files": [ - "*.ts" - ], - "parserOptions": { - "project": [ - "projects/hslayers-material/tsconfig.lib.json", - "projects/hslayers-material/tsconfig.spec.json" - ], - "createDefaultProgram": true - }, - "extends": [ - "prettier", - "prettier/@typescript-eslint" - ], - "rules": { - "@angular-eslint/component-selector": [ - "error", - { - "type": "element", - "prefix": "lib", - "style": "kebab-case" - } - ], - "@angular-eslint/directive-selector": [ - "error", - { - "type": "attribute", - "prefix": "lib", - "style": "camelCase" - } - ] - } - }, - { - "files": [ - "*.html" - ], - "rules": {} - } - ] -} diff --git a/projects/hslayers-material/README.md b/projects/hslayers-material/README.md deleted file mode 100644 index 0960ebe120..0000000000 --- a/projects/hslayers-material/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# HslayersMaterial - -This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 9.1.13. - -## Code scaffolding - -Run `ng generate component component-name --project hslayers-material` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project hslayers-material`. -> Note: Don't forget to add `--project hslayers-material` or else it will be added to the default project in your `angular.json` file. - -## Build - -Run `ng build hslayers-material` to build the project. The build artifacts will be stored in the `dist/` directory. - -## Publishing - -After building your library with `ng build hslayers-material`, go to the dist folder `cd dist/hslayers-material` and run `npm publish`. - -## Running unit tests - -Run `ng test hslayers-material` to execute the unit tests via [Karma](https://karma-runner.github.io). - -## Further help - -To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md). diff --git a/projects/hslayers-material/karma.conf.js b/projects/hslayers-material/karma.conf.js deleted file mode 100644 index b89cba32e9..0000000000 --- a/projects/hslayers-material/karma.conf.js +++ /dev/null @@ -1,32 +0,0 @@ -// Karma configuration file, see link for more information -// https://karma-runner.github.io/1.0/config/configuration-file.html - -module.exports = function (config) { - config.set({ - basePath: '', - frameworks: ['jasmine', '@angular-devkit/build-angular'], - plugins: [ - require('karma-jasmine'), - require('karma-chrome-launcher'), - require('karma-jasmine-html-reporter'), - require('karma-coverage-istanbul-reporter'), - require('@angular-devkit/build-angular/plugins/karma') - ], - client: { - clearContext: false // leave Jasmine Spec Runner output visible in browser - }, - coverageIstanbulReporter: { - dir: require('path').join(__dirname, '../../coverage/hslayers-material'), - reports: ['html', 'lcovonly', 'text-summary'], - fixWebpackSourcePaths: true - }, - reporters: ['progress', 'kjhtml'], - port: 9876, - colors: true, - logLevel: config.LOG_INFO, - autoWatch: true, - browsers: ['Chrome'], - singleRun: false, - restartOnFileChange: true - }); -}; diff --git a/projects/hslayers-material/ng-package.json b/projects/hslayers-material/ng-package.json deleted file mode 100644 index ee85caa520..0000000000 --- a/projects/hslayers-material/ng-package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", - "dest": "../../dist/hslayers-material", - "lib": { - "entryFile": "src/public-api.ts" - } -} \ No newline at end of file diff --git a/projects/hslayers-material/package-lock.json b/projects/hslayers-material/package-lock.json deleted file mode 100644 index bb184ef2f3..0000000000 --- a/projects/hslayers-material/package-lock.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "hslayers-material", - "version": "0.0.1", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } - } -} diff --git a/projects/hslayers-material/package.json b/projects/hslayers-material/package.json deleted file mode 100644 index ccbc90db31..0000000000 --- a/projects/hslayers-material/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "hslayers-material", - "version": "0.0.1", - "scripts": {}, - "peerDependencies": { - "@angular/animations": "^14.0.0", - "@angular/cdk": "^14.0.0", - "@angular/common": "^14.0.0", - "@angular/core": "^14.0.0", - "@angular/forms": "^14.0.0", - "@angular/localize": "^14.0.0", - "@angular/material": "^14.0.0", - "ol": "^6.6.0, ^7.0.0", - "ol-popup": "^4.0.0, ^5.0.0", - "hslayers-ng": "^10.0.0" - }, - "dependencies": { - "tslib": "^2.0.0" - } -} diff --git a/projects/hslayers-material/src/lib/hslayers-material.component.spec.ts b/projects/hslayers-material/src/lib/hslayers-material.component.spec.ts deleted file mode 100644 index e09d237083..0000000000 --- a/projects/hslayers-material/src/lib/hslayers-material.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import {ComponentFixture, TestBed, async} from '@angular/core/testing'; - -import {HslayersMaterialComponent} from './hslayers-material.component'; - -describe('HslayersMaterialComponent', () => { - let component: HslayersMaterialComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [HslayersMaterialComponent], - }).compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(HslayersMaterialComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/projects/hslayers-material/src/lib/hslayers-material.component.ts b/projects/hslayers-material/src/lib/hslayers-material.component.ts deleted file mode 100644 index 73d99b350b..0000000000 --- a/projects/hslayers-material/src/lib/hslayers-material.component.ts +++ /dev/null @@ -1,26 +0,0 @@ -import {Component, Input, OnInit} from '@angular/core'; - -import {HsConfig} from 'hslayers-ng'; - -@Component({ - selector: 'hslayers-material', - template: ` - - `, - styles: [], -}) -export class HslayersMaterialComponent implements OnInit { - @Input() config: HsConfig; - constructor(public HsConfig: HsConfig) {} - - ngOnInit(): void { - if (this.config) { - this.HsConfig.update(this.config); - } - } -} diff --git a/projects/hslayers-material/src/lib/hslayers-material.module.ts b/projects/hslayers-material/src/lib/hslayers-material.module.ts deleted file mode 100644 index 8034441cae..0000000000 --- a/projects/hslayers-material/src/lib/hslayers-material.module.ts +++ /dev/null @@ -1,13 +0,0 @@ -import {NgModule} from '@angular/core'; - -import {HsCoreModule} from 'hslayers-ng'; - -import {HsMatLayoutModule} from './layout/layout.module'; -import {HslayersMaterialComponent} from './hslayers-material.component'; - -@NgModule({ - declarations: [HslayersMaterialComponent], - imports: [HsCoreModule, HsMatLayoutModule], - exports: [HslayersMaterialComponent], -}) -export class HslayersMaterialModule {} diff --git a/projects/hslayers-material/src/lib/hslayers-material.service.spec.ts b/projects/hslayers-material/src/lib/hslayers-material.service.spec.ts deleted file mode 100644 index 2d15ee5fce..0000000000 --- a/projects/hslayers-material/src/lib/hslayers-material.service.spec.ts +++ /dev/null @@ -1,16 +0,0 @@ -import {TestBed} from '@angular/core/testing'; - -import {HslayersMaterialService} from './hslayers-material.service'; - -describe('HslayersMaterialService', () => { - let service: HslayersMaterialService; - - beforeEach(() => { - TestBed.configureTestingModule({}); - service = TestBed.inject(HslayersMaterialService); - }); - - it('should be created', () => { - expect(service).toBeTruthy(); - }); -}); diff --git a/projects/hslayers-material/src/lib/hslayers-material.service.ts b/projects/hslayers-material/src/lib/hslayers-material.service.ts deleted file mode 100644 index 67a1fe1e0e..0000000000 --- a/projects/hslayers-material/src/lib/hslayers-material.service.ts +++ /dev/null @@ -1,8 +0,0 @@ -import {Injectable} from '@angular/core'; - -@Injectable({ - providedIn: 'root', -}) -export class HslayersMaterialService { - constructor() {} -} diff --git a/projects/hslayers-material/src/lib/layermanager/layermanager.component.ts b/projects/hslayers-material/src/lib/layermanager/layermanager.component.ts deleted file mode 100644 index f87ab8bac7..0000000000 --- a/projects/hslayers-material/src/lib/layermanager/layermanager.component.ts +++ /dev/null @@ -1,311 +0,0 @@ -import {BehaviorSubject} from 'rxjs'; -import {Component, Injectable} from '@angular/core'; -import {FlatTreeControl} from '@angular/cdk/tree'; -import {MatTreeFlatDataSource, MatTreeFlattener} from '@angular/material/tree'; -import {SelectionModel} from '@angular/cdk/collections'; - -import { - HsConfig, - HsCoreService, - HsDialogContainerService, - HsEventBusService, - HsLanguageService, - HsLayerDescriptor, - HsLayerListService, - HsLayerManagerComponent, - HsLayerManagerService, - HsLayerSynchronizerService, - HsLayerUtilsService, - HsLayoutService, - HsMapService, - HsRemoveLayerDialogService, - HsSidebarService, - HsUtilsService, -} from 'hslayers-ng'; - -class HsLayerNode { - name: string; - // eslint-disable-next-line no-use-before-define - children?: HsLayerNode[]; - layer?: HsLayerDescriptor; -} - -class HsLayerFlatNode { - name: string; - level: number; - expandable: boolean; - layer?: HsLayerDescriptor; -} - -@Injectable() -export class HsLayerDatabase { - dataChange = new BehaviorSubject([]); - - get data(): HsLayerNode[] { - return this.dataChange.value; - } - - constructor( - public HsEventBusService: HsEventBusService, - public HsLayerManagerService: HsLayerManagerService, - ) { - const data = this.buildLayerTree(this.HsLayerManagerService.data); - this.dataChange.next(data); - - this.HsEventBusService.layerManagerUpdates.subscribe(() => { - const data = this.buildLayerTree(this.HsLayerManagerService.data); - this.dataChange.next(data); - }); - } - - layerToNode(layer: HsLayerDescriptor): HsLayerNode { - return { - name: layer.title, - layer, - // layer: layer, - }; - } - - folderToNode(folder: any): HsLayerNode { - return { - name: folder.name, - children: [ - ...folder.sub_folders?.map(this.folderToNode), - ...folder.layers?.map(this.layerToNode), - ], - }; - } - - buildLayerTree(data): HsLayerNode[] { - return [ - { - name: 'Baselayers', - children: data.baselayers?.map(this.layerToNode), - }, - { - name: 'Terrain layers', - children: data.terrainlayers?.map(this.layerToNode), - }, - { - name: 'Box layers', - children: data.box_layers?.map(this.layerToNode), - }, - { - name: 'Map content', - children: [ - ...data.layers?.map(this.layerToNode), - ...data.folders?.sub_folders?.map(this.folderToNode), - ...data.folders?.layers?.map(this.layerToNode), - ], - }, - ]; - } -} - -@Component({ - selector: 'hs-mat-layer-manager', - templateUrl: './layermanager.html', - providers: [HsLayerDatabase], -}) -export class HsMatLayerManagerComponent extends HsLayerManagerComponent { - app = 'default'; - flatNodeMap = new Map(); - nestedNodeMap = new Map(); - selectedParent: HsLayerFlatNode | null = null; - - treeControl: FlatTreeControl; - treeFlattener: MatTreeFlattener; - dataSource: MatTreeFlatDataSource; - - checklistSelection = new SelectionModel(true); - - constructor( - private _database: HsLayerDatabase, - public HsLayerManagerService: HsLayerManagerService, - HsCore: HsCoreService, - HsUtilsService: HsUtilsService, - HsLayerUtilsService: HsLayerUtilsService, - HsMapService: HsMapService, - HsLayoutService: HsLayoutService, - HsLayerSynchronizerService: HsLayerSynchronizerService, - HsEventBusService: HsEventBusService, - HsDialogContainerService: HsDialogContainerService, - HsLanguageService: HsLanguageService, - HsConfig: HsConfig, - HsLayerListService: HsLayerListService, - HsSidebarService: HsSidebarService, - hsRemoveLayerDialogService: HsRemoveLayerDialogService, - ) { - super( - HsCore, - HsUtilsService, - HsLayerUtilsService, - HsMapService, - HsLayerManagerService, - HsLayoutService, - HsLayerSynchronizerService, - HsEventBusService, - HsDialogContainerService, - HsLanguageService, - HsConfig, - HsLayerListService, - HsSidebarService, - hsRemoveLayerDialogService, - ); - this.treeFlattener = new MatTreeFlattener( - this.transformer, - this.getLevel, - this.isExpandable, - this.getChildren, - ); - this.treeControl = new FlatTreeControl( - this.getLevel, - this.isExpandable, - ); - this.dataSource = new MatTreeFlatDataSource( - this.treeControl, - this.treeFlattener, - ); - - _database.dataChange.subscribe((data) => { - this.dataSource.data = data; - this.checklistSelection.select( - ...this.treeFlattener - .flattenNodes(this.dataSource.data) - .filter((node) => node.layer?.visible), - ); - }); - - this.checklistSelection.changed.subscribe((changes) => { - changes.added - .filter((node) => node.layer) - .filter((node) => !node.layer.visible) - .forEach((node) => - this.HsLayerManagerService.changeLayerVisibility(true, node.layer), - ); - - changes.removed - .filter((node) => node.layer) - .filter((node) => node.layer.visible) - .forEach((node) => - this.HsLayerManagerService.changeLayerVisibility(false, node.layer), - ); - }); - - // this.dataSource.data = _database.data; - // this.checklistSelection.select(...this.dataSource.data.filter(node => node.layer?.visible)); - } - - getLevel = (node: HsLayerFlatNode) => node.level; - - isExpandable = (node: HsLayerFlatNode) => node.expandable; - - getChildren = (node: HsLayerNode): HsLayerNode[] => node.children; - - // hasChild = (_: number, node: HsLayerNode) => !!node.children && node.children.length > 0; - // hasChild = (_: number, node: HsLayerNode) => node.children?.length > 0; - hasChild = (_: number, _nodeData: HsLayerFlatNode) => _nodeData.expandable; - - /** - * Transformer to convert nested node to flat node. Record the nodes in maps for later use. - */ - transformer = (node: HsLayerNode, level: number) => { - const existingNode = this.nestedNodeMap.get(node); - // TODO: Might need a different identifier other than the node `name` - const flatNode = - existingNode && existingNode.name === node.name - ? existingNode - : new HsLayerFlatNode(); - flatNode.name = node.name; - flatNode.layer = node.layer; - flatNode.level = level; - flatNode.expandable = !!node.children?.length; - this.flatNodeMap.set(flatNode, node); - this.nestedNodeMap.set(node, flatNode); - return flatNode; - }; - - /** Whether all the descendants of the node are selected. */ - descendantsAllSelected(node: HsLayerFlatNode): boolean { - const descendants = this.treeControl.getDescendants(node); - const descAllSelected = - descendants.length > 0 && - descendants.every((child) => { - return this.checklistSelection.isSelected(child); - }); - return descAllSelected; - } - - /** Whether part of the descendants are selected */ - descendantsPartiallySelected(node: HsLayerFlatNode): boolean { - const descendants = this.treeControl.getDescendants(node); - const result = descendants.some((child) => - this.checklistSelection.isSelected(child), - ); - return result && !this.descendantsAllSelected(node); - } - - /** Toggle the layer item selection. Select/deselect all the descendants node */ - layerNodeSelectionToggle(node: HsLayerFlatNode): void { - this.checklistSelection.toggle(node); - const descendants = this.treeControl.getDescendants(node); - this.checklistSelection.isSelected(node) - ? this.checklistSelection.select(...descendants) - : this.checklistSelection.deselect(...descendants); - - // Force update for the parent - descendants.forEach((child) => this.checklistSelection.isSelected(child)); - this.checkAllParentsSelection(node); - } - - /** Toggle a leaf layer item selection. Check all the parents to see if they changed */ - layerLeafNodeSelectionToggle(node: HsLayerFlatNode): void { - this.checklistSelection.toggle(node); - this.checkAllParentsSelection(node); - } - - /* Checks all the parents when a leaf node is selected/unselected */ - checkAllParentsSelection(node: HsLayerFlatNode): void { - let parent: HsLayerFlatNode | null = this.getParentNode(node); - while (parent) { - this.checkRootNodeSelection(parent); - parent = this.getParentNode(parent); - } - } - - /** Check root node checked state and change it accordingly */ - checkRootNodeSelection(node: HsLayerFlatNode): void { - const nodeSelected = this.checklistSelection.isSelected(node); - const descendants = this.treeControl.getDescendants(node); - const descAllSelected = - descendants.length > 0 && - descendants.every((child) => { - return this.checklistSelection.isSelected(child); - }); - if (nodeSelected && !descAllSelected) { - this.checklistSelection.deselect(node); - } else if (!nodeSelected && descAllSelected) { - this.checklistSelection.select(node); - } - } - - /* Get the parent node of a node */ - getParentNode(node: HsLayerFlatNode): HsLayerFlatNode | null { - const currentLevel = this.getLevel(node); - - if (currentLevel < 1) { - return null; - } - - const startIndex = this.treeControl.dataNodes.indexOf(node) - 1; - - for (let i = startIndex; i >= 0; i--) { - const currentNode = this.treeControl.dataNodes[i]; - - if (this.getLevel(currentNode) < currentLevel) { - return currentNode; - } - } - return null; - } -} diff --git a/projects/hslayers-material/src/lib/layermanager/layermanager.html b/projects/hslayers-material/src/lib/layermanager/layermanager.html deleted file mode 100644 index abc158a9ef..0000000000 --- a/projects/hslayers-material/src/lib/layermanager/layermanager.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {{node.name}} - - - - - {{node.name}} - - diff --git a/projects/hslayers-material/src/lib/layermanager/layermanager.module.ts b/projects/hslayers-material/src/lib/layermanager/layermanager.module.ts deleted file mode 100644 index 8ba9cc1e16..0000000000 --- a/projects/hslayers-material/src/lib/layermanager/layermanager.module.ts +++ /dev/null @@ -1,16 +0,0 @@ -import {CUSTOM_ELEMENTS_SCHEMA, NgModule} from '@angular/core'; -import {CommonModule} from '@angular/common'; - -import {HsLayerManagerService} from 'hslayers-ng'; - -import {HsMatImportsModule} from '../material-module'; -import {HsMatLayerManagerComponent} from './layermanager.component'; - -@NgModule({ - declarations: [HsMatLayerManagerComponent], - schemas: [CUSTOM_ELEMENTS_SCHEMA], - imports: [CommonModule, HsMatImportsModule], - providers: [HsLayerManagerService], - exports: [HsMatLayerManagerComponent], -}) -export class HsMatLayerManagerModule {} diff --git a/projects/hslayers-material/src/lib/layout/attribution-dialog.component.ts b/projects/hslayers-material/src/lib/layout/attribution-dialog.component.ts deleted file mode 100644 index 534d574f5d..0000000000 --- a/projects/hslayers-material/src/lib/layout/attribution-dialog.component.ts +++ /dev/null @@ -1,18 +0,0 @@ -import {Component, Inject} from '@angular/core'; -import {MAT_DIALOG_DATA} from '@angular/material/dialog'; - -@Component({ - selector: 'hs-mat-attributions', - template: ` -

Attributions

-
-
    -
  • -
-
- `, - styleUrls: ['attribution-dialog.scss'], -}) -export class HsAttributionDialogComponent { - constructor(@Inject(MAT_DIALOG_DATA) public data: string[]) {} -} diff --git a/projects/hslayers-material/src/lib/layout/attribution-dialog.scss b/projects/hslayers-material/src/lib/layout/attribution-dialog.scss deleted file mode 100644 index 8f07e78dd4..0000000000 --- a/projects/hslayers-material/src/lib/layout/attribution-dialog.scss +++ /dev/null @@ -1,6 +0,0 @@ -.mat-dialog-content ul { - list-style: none; - padding-inline-start: 0; - margin-block-start: 0; - margin-block-end: 0; -} diff --git a/projects/hslayers-material/src/lib/layout/layout.component.html b/projects/hslayers-material/src/lib/layout/layout.component.html deleted file mode 100644 index 1c09b9b6e8..0000000000 --- a/projects/hslayers-material/src/lib/layout/layout.component.html +++ /dev/null @@ -1,56 +0,0 @@ -
-
-
- - - - - - - - - - - - - -
-
-
- -
- - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- -
\ No newline at end of file diff --git a/projects/hslayers-material/src/lib/layout/layout.component.scss b/projects/hslayers-material/src/lib/layout/layout.component.scss deleted file mode 100644 index bdbc38fed8..0000000000 --- a/projects/hslayers-material/src/lib/layout/layout.component.scss +++ /dev/null @@ -1,35 +0,0 @@ -@import '~@angular/material/theming'; - -hslayers-material { - height: 100%; - display: block; -} - -.hsl { - .d-flex { - display: flex; - } - - .hs-map-space { - min-height: inherit; - flex: 1 1 auto; - position: relative; - } - - .hs-panelspace { - z-index: 1; - @include mat-elevation(2); - } - - .hs-flex-fill { - flex: 1 1 auto; - } -} - -.w-100 { - width: 100%; -} - -.h-100 { - height: 100%; -} diff --git a/projects/hslayers-material/src/lib/layout/layout.component.spec.ts b/projects/hslayers-material/src/lib/layout/layout.component.spec.ts deleted file mode 100644 index 886afb5e71..0000000000 --- a/projects/hslayers-material/src/lib/layout/layout.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import {ComponentFixture, TestBed, async} from '@angular/core/testing'; - -import {HsMatLayoutComponent} from './layout.component'; - -describe('LayoutComponent', () => { - let component: HsMatLayoutComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [HsMatLayoutComponent], - }).compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(HsMatLayoutComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/projects/hslayers-material/src/lib/layout/layout.component.ts b/projects/hslayers-material/src/lib/layout/layout.component.ts deleted file mode 100644 index 2b00734833..0000000000 --- a/projects/hslayers-material/src/lib/layout/layout.component.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { - AfterViewInit, - ChangeDetectorRef, - Component, - ElementRef, - OnInit, - ViewChild, - ViewEncapsulation, -} from '@angular/core'; - -import {HsConfig, HsEventBusService, HsLayoutService} from 'hslayers-ng'; -import {HsMapHostDirective} from './map-host.directive'; - -@Component({ - selector: 'hs-mat-layout', - templateUrl: './layout.component.html', - styleUrls: ['./layout.component.scss'], - encapsulation: ViewEncapsulation.None, -}) -export class HsMatLayoutComponent implements AfterViewInit, OnInit { - @ViewChild('hslayout') hslayout: ElementRef; - @ViewChild(HsMapHostDirective, {static: true}) - mapHost: HsMapHostDirective; - - panelSpaceWidth: number; - panelVisible(which, scope?): boolean { - return this.HsLayoutService.panelVisible(which, scope); - } - - panelEnabled(which, status?): boolean { - return this.HsLayoutService.panelEnabled(which, status); - } - - constructor( - public HsConfig: HsConfig, - public HsLayoutService: HsLayoutService, - public HsEventBusService: HsEventBusService, - // public HsThemeService: HsThemeService, - private elementRef: ElementRef, - private cdr: ChangeDetectorRef, // private HsUtilsService: HsUtilsService - ) { - this.HsLayoutService.layoutElement = elementRef.nativeElement; - } - - ngOnInit(): void { - this.HsLayoutService.contentWrapper = - this.elementRef.nativeElement.querySelector('.hs-content-wrapper'); - if (this.HsConfig.sidebarPosition === 'left') { - this.HsLayoutService.contentWrapper.classList.add('flex-reverse'); - this.HsLayoutService.sidebarRight = false; - } else if (this.HsConfig.sidebarPosition != 'invisible') { - this.HsConfig.sidebarPosition = 'right'; - } - //if (window.innerWidth < 600 && this.HsUtilsService.runningInBrowser()) { - // const viewport = document.querySelector('meta[name="viewport"]'); - // viewport.setAttribute( - // 'content', - // 'width=device-width, initial-scale=0.6, maximum-scale=2, user-scalable=no' - // ); - //} - ////this.$emit('scope_loaded', 'Layout'); - - //switch (this.hsConfig.theme) { - // case 'dark': - // this.HsThemeService.setDarkTheme(); - // break; - - // default: - // this.HsThemeService.setLightTheme(); - // break; - //} - this.HsLayoutService.panelSpaceWidth.subscribe((width) => { - this.panelSpaceWidth = width; - }); - } - - ngAfterViewInit() { - this.HsLayoutService.layoutElement = this.hslayout.nativeElement; - const hsapp = this.elementRef.nativeElement.parentElement; - - //if (window.innerWidth < 767) { - // document.body.style.margin = '0px'; - //} - - //if (getComputedStyle(hsapp).display == 'inline') { - // hsapp.style.display = 'block'; - // console.warn( - // 'Main element (#hs-app) needs display property to be defined...fallback value added' - // ); - //} - ////Minimal value expected for clientHeight of hsapp element at the initiation in case of WINDOWED mode - ////In comparison with clientHeight used to distinguish between full and windowed mode. - //const minHeight = - // window.devicePixelRatio <= 1 ? 300 : 250 * window.devicePixelRatio; - ////In case the app height is not set on hslayers element in this moment height is determined by - ////the main panel height which vary from 0 if no mainpanel is set to 90 or even 208 in some cases . - ////Value of 300 or less /would mean that height is not set we need do something - //if (hsapp.clientHeight < minHeight) { - // hsapp.style.height = '100%'; - // //If its still the same, height is not even set on parents of hslayers element - we want fullscreen app - // if (hsapp.clientHeight < minHeight) { - // hsapp.style.height = '100svh'; - // } - // console.warn( - // 'Main element (#hs-app) needs height property to be defined...fallback value added' - // ); - //} - this.HsLayoutService.layoutLoads.next({ - element: this.elementRef.nativeElement, - innerElement: '.hs-map-space', - }); - this.HsLayoutService.mapSpaceRef.next(this.mapHost.viewContainerRef); - //this.cdr.detectChanges(); - } -} diff --git a/projects/hslayers-material/src/lib/layout/layout.module.ts b/projects/hslayers-material/src/lib/layout/layout.module.ts deleted file mode 100644 index fd51086b03..0000000000 --- a/projects/hslayers-material/src/lib/layout/layout.module.ts +++ /dev/null @@ -1,29 +0,0 @@ -import {CUSTOM_ELEMENTS_SCHEMA, NgModule} from '@angular/core'; -import {CommonModule} from '@angular/common'; -import {HsMatImportsModule} from '../material-module'; - -import {HsAttributionDialogComponent} from './attribution-dialog.component'; -import {HsLayoutService, HsMapModule} from 'hslayers-ng'; -import {HsMapHostDirective} from './map-host.directive'; -import {HsMatLayerManagerModule} from '../layermanager/layermanager.module'; -import {HsMatLayoutComponent} from './layout.component'; -import {HsMatOverlayComponent} from './overlay.component'; - -@NgModule({ - declarations: [ - HsMapHostDirective, - HsMatLayoutComponent, - HsMatOverlayComponent, - HsAttributionDialogComponent, - ], - schemas: [CUSTOM_ELEMENTS_SCHEMA], - imports: [ - CommonModule, - HsMatImportsModule, - HsMatLayerManagerModule, - HsMapModule, - ], - providers: [HsLayoutService], - exports: [HsMatLayoutComponent, HsMatOverlayComponent] -}) -export class HsMatLayoutModule {} diff --git a/projects/hslayers-material/src/lib/layout/map-host.directive.ts b/projects/hslayers-material/src/lib/layout/map-host.directive.ts deleted file mode 100644 index 5217c84776..0000000000 --- a/projects/hslayers-material/src/lib/layout/map-host.directive.ts +++ /dev/null @@ -1,7 +0,0 @@ -import {Directive, ViewContainerRef} from '@angular/core'; -@Directive({ - selector: '[map-host]', -}) -export class HsMapHostDirective { - constructor(public viewContainerRef: ViewContainerRef) {} -} diff --git a/projects/hslayers-material/src/lib/layout/overlay.component.html b/projects/hslayers-material/src/lib/layout/overlay.component.html deleted file mode 100644 index 7fb2326106..0000000000 --- a/projects/hslayers-material/src/lib/layout/overlay.component.html +++ /dev/null @@ -1,53 +0,0 @@ -
- -
- -
- - - - - - - -
diff --git a/projects/hslayers-material/src/lib/layout/overlay.component.scss b/projects/hslayers-material/src/lib/layout/overlay.component.scss deleted file mode 100644 index d6647eb26e..0000000000 --- a/projects/hslayers-material/src/lib/layout/overlay.component.scss +++ /dev/null @@ -1,25 +0,0 @@ -:host { - position: absolute; - pointer-events: none; - - * { - pointer-events: auto; - } - - section { - position: absolute; - - button { - margin: 6px 8px; - - &.shift-1-up .mat-icon { - transform: translateY(-1px); - } - } - } - - .bottom {bottom: 20px;} - .top {top: 20px;} - .right {right: 20px;} - .left {left: 20px;} -} diff --git a/projects/hslayers-material/src/lib/layout/overlay.component.ts b/projects/hslayers-material/src/lib/layout/overlay.component.ts deleted file mode 100644 index 9e03c3c375..0000000000 --- a/projects/hslayers-material/src/lib/layout/overlay.component.ts +++ /dev/null @@ -1,112 +0,0 @@ -import * as olExtent from 'ol/extent'; -import {Component, Input, OnInit, ViewEncapsulation} from '@angular/core'; -import {HsAttributionDialogComponent} from './attribution-dialog.component'; -import { - HsConfig, - HsEventBusService, - HsLayerManagerService, - HsMapService, -} from 'hslayers-ng'; -import {MatDialog} from '@angular/material/dialog'; -import {MouseWheelZoom} from 'ol/interaction'; -import {Vector as VectorLayer} from 'ol/layer'; -import {platformModifierKeyOnly as platformModifierKeyOnlyCondition} from 'ol/events/condition'; - -@Component({ - selector: 'hs-mat-overlay', - templateUrl: './overlay.component.html', - styleUrls: ['./overlay.component.scss'], -}) -export class HsMatOverlayComponent implements OnInit { - constructor( - public HsConfig: HsConfig, - private HsEventBusService: HsEventBusService, - private HsMapService: HsMapService, - private HsLayerManagerService: HsLayerManagerService, - public dialog: MatDialog, - ) {} - - ngOnInit(): void { - const mapControls = this.HsConfig.componentsEnabled.mapControls; - this.HsEventBusService.olMapLoads.subscribe((map) => { - map.addInteraction( - new MouseWheelZoom({ - condition: (browserEvent): boolean => { - if (mapControls == false) { - return false; - } - return this.HsConfig.zoomWithModifierKeyOnly - ? platformModifierKeyOnlyCondition(browserEvent) - : true; - }, - }), - ); - }); - - this.HsConfig.componentsEnabled.mapControls = false; - this.HsConfig.componentsEnabled.defaultViewButton = false; - } - - openAttributionDialog(event): void { - this.dialog.open(HsAttributionDialogComponent, { - data: this.HsMapService.getLayersArray() - .filter((layer) => layer.getVisible()) - .map((layer) => layer.getSource().getAttributions()) - .filter((f) => f) - .map((getAttributions) => getAttributions(undefined)) - .reduce((acc, item) => { - // if (Array.isArray(item)) return acc.push(...item); - // return acc.push(item); - if (Array.isArray(item)) { - return [...acc, ...item]; - } - return [...acc, item]; - }, []), - }); - } - - canZoomOut(): boolean { - const mapView = this.HsMapService.getMap()?.getView(); - return mapView?.getZoom() > mapView?.getMinZoom(); - } - - canZoomIn(): boolean { - const mapView = this.HsMapService.getMap()?.getView(); - return mapView?.getZoom() < mapView?.getMaxZoom(); - } - - adjustZoom(delta: number): void { - const mapView = this.HsMapService.getMap()?.getView(); - mapView.animate({zoom: mapView.getZoom() + delta, duration: 300}); - } - - defaultView(): void { - this.HsMapService.getMap()?.getView().animate({ - center: this.HsConfig.default_view.getCenter(), - zoom: this.HsConfig.default_view.getZoom(), - duration: 300, - }); - } - - maxView(): void { - const extent = olExtent.createEmpty(); - - if (this.HsLayerManagerService.data.layers.length == 0) { - return; - } - - this.HsLayerManagerService.data.layers.forEach((layer) => { - if (layer.visible && layer.layer instanceof VectorLayer) { - olExtent.extend(extent, layer.layer.getSource().getExtent()); - } - }); - - this.HsMapService.getMap() - ?.getView() - .fit(extent, { - size: this.HsMapService.getMap().getSize(), - padding: [50, 50, 50, 50], - duration: 300, - }); - } -} diff --git a/projects/hslayers-material/src/lib/material-module.ts b/projects/hslayers-material/src/lib/material-module.ts deleted file mode 100644 index e8cd8c1479..0000000000 --- a/projects/hslayers-material/src/lib/material-module.ts +++ /dev/null @@ -1,95 +0,0 @@ -import {NgModule} from '@angular/core'; - -import {A11yModule} from '@angular/cdk/a11y'; -import {CdkStepperModule} from '@angular/cdk/stepper'; -import {CdkTableModule} from '@angular/cdk/table'; -import {CdkTreeModule} from '@angular/cdk/tree'; -import {ClipboardModule} from '@angular/cdk/clipboard'; -import {DragDropModule} from '@angular/cdk/drag-drop'; -import {MatLegacyAutocompleteModule as MatAutocompleteModule} from '@angular/material/legacy-autocomplete'; -import {MatBadgeModule} from '@angular/material/badge'; -import {MatBottomSheetModule} from '@angular/material/bottom-sheet'; -import {MatLegacyButtonModule as MatButtonModule} from '@angular/material/legacy-button'; -import {MatButtonToggleModule} from '@angular/material/button-toggle'; -import {MatLegacyCardModule as MatCardModule} from '@angular/material/legacy-card'; -import {MatLegacyCheckboxModule as MatCheckboxModule} from '@angular/material/legacy-checkbox'; -import {MatLegacyChipsModule as MatChipsModule} from '@angular/material/legacy-chips'; -import {MatDatepickerModule} from '@angular/material/datepicker'; -import {MatDialogModule} from '@angular/material/dialog'; -import {MatDividerModule} from '@angular/material/divider'; -import {MatExpansionModule} from '@angular/material/expansion'; -import {MatGridListModule} from '@angular/material/grid-list'; -import {MatIconModule} from '@angular/material/icon'; -import {MatLegacyInputModule as MatInputModule} from '@angular/material/legacy-input'; -import {MatLegacyListModule as MatListModule} from '@angular/material/legacy-list'; -import {MatLegacyMenuModule as MatMenuModule} from '@angular/material/menu'; -import {MatNativeDateModule, MatRippleModule} from '@angular/material/core'; -import {MatLegacyPaginatorModule as MatPaginatorModule} from '@angular/material/legacy-paginator'; -import {MatLegacyProgressBarModule as MatProgressBarModule} from '@angular/material/legacy-progress-bar'; -import {MatLegacyProgressSpinnerModule as MatProgressSpinnerModule} from '@angular/material/legacy-progress-spinner'; -import {MatLegacyRadioModule as MatRadioModule} from '@angular/material/legacy-radio'; -import {MatLegacySelectModule as MatSelectModule} from '@angular/material/legacy-select'; -import {MatSidenavModule} from '@angular/material/sidenav'; -import {MatLegacySlideToggleModule as MatSlideToggleModule} from '@angular/material/legacy-slide-toggle'; -import {MatLegacySliderModule as MatSliderModule} from '@angular/material/legacy-slider'; -import {MatLegacySnackBarModule as MatSnackBarModule} from '@angular/material/legacy-snack-bar'; -import {MatSortModule} from '@angular/material/sort'; -import {MatStepperModule} from '@angular/material/stepper'; -import {MatLegacyTableModule as MatTableModule} from '@angular/material/table'; -import {MatLegacyTabsModule as MatTabsModule} from '@angular/material/legacy-tabs'; -import {MatToolbarModule} from '@angular/material/toolbar'; -import {MatLegacyTooltipModule as MatTooltipModule} from '@angular/material/legacy-tooltip'; -import {MatTreeModule} from '@angular/material/tree'; -import {OverlayModule} from '@angular/cdk/overlay'; -import {PortalModule} from '@angular/cdk/portal'; -import {ScrollingModule} from '@angular/cdk/scrolling'; - -@NgModule({ - exports: [ - A11yModule, - ClipboardModule, - CdkStepperModule, - CdkTableModule, - CdkTreeModule, - DragDropModule, - MatAutocompleteModule, - MatBadgeModule, - MatBottomSheetModule, - MatButtonModule, - MatButtonToggleModule, - MatCardModule, - MatCheckboxModule, - MatChipsModule, - MatStepperModule, - MatDatepickerModule, - MatDialogModule, - MatDividerModule, - MatExpansionModule, - MatGridListModule, - MatIconModule, - MatInputModule, - MatListModule, - MatMenuModule, - MatNativeDateModule, - MatPaginatorModule, - MatProgressBarModule, - MatProgressSpinnerModule, - MatRadioModule, - MatRippleModule, - MatSelectModule, - MatSidenavModule, - MatSliderModule, - MatSlideToggleModule, - MatSnackBarModule, - MatSortModule, - MatTableModule, - MatTabsModule, - MatToolbarModule, - MatTooltipModule, - MatTreeModule, - OverlayModule, - PortalModule, - ScrollingModule, - ], -}) -export class HsMatImportsModule {} diff --git a/projects/hslayers-material/src/public-api.ts b/projects/hslayers-material/src/public-api.ts deleted file mode 100644 index 45b20c7ac7..0000000000 --- a/projects/hslayers-material/src/public-api.ts +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Public API Surface of hslayers-material - */ - -export * from './lib/hslayers-material.component'; -export * from './lib/hslayers-material.service'; -export * from './lib/hslayers-material.module'; -export * from './lib/layermanager/layermanager.component'; -export * from './lib/layermanager/layermanager.module'; -export * from './lib/layout/map-host.directive'; -export * from './lib/layout/layout.component'; -export * from './lib/layout/layout.module'; -export * from './lib/layout/overlay.component'; -export * from './lib/layout/attribution-dialog.component'; diff --git a/projects/hslayers-material/src/test.ts b/projects/hslayers-material/src/test.ts deleted file mode 100644 index 51d91e6db8..0000000000 --- a/projects/hslayers-material/src/test.ts +++ /dev/null @@ -1,18 +0,0 @@ -// This file is required by karma.conf.js and loads recursively all the .spec and framework files - -import 'zone.js'; -import 'zone.js/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; -import {getTestBed} from '@angular/core/testing'; - -// First, initialize the Angular testing environment. -getTestBed().initTestEnvironment( - BrowserDynamicTestingModule, - platformBrowserDynamicTesting(), - { - teardown: {destroyAfterEach: false}, - }, -); diff --git a/projects/hslayers-material/tsconfig.lib.json b/projects/hslayers-material/tsconfig.lib.json deleted file mode 100644 index df2011400d..0000000000 --- a/projects/hslayers-material/tsconfig.lib.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "../../out-tsc/lib", - "declaration": true, - "inlineSources": true, - "types": [], - "lib": [ - "dom", - "es2018" - ] - }, - "angularCompilerOptions": { - "skipTemplateCodegen": true, - "strictMetadataEmit": true, - "enableResourceInlining": true - }, - "exclude": [ - "src/test.ts", - "**/*.spec.ts" - ] -} diff --git a/projects/hslayers-material/tsconfig.lib.prod.json b/projects/hslayers-material/tsconfig.lib.prod.json deleted file mode 100644 index cbae794224..0000000000 --- a/projects/hslayers-material/tsconfig.lib.prod.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "./tsconfig.lib.json", - "angularCompilerOptions": { - "enableIvy": false - } -} diff --git a/projects/hslayers-material/tsconfig.spec.json b/projects/hslayers-material/tsconfig.spec.json deleted file mode 100644 index 16da33db07..0000000000 --- a/projects/hslayers-material/tsconfig.spec.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "../../out-tsc/spec", - "types": [ - "jasmine", - "node" - ] - }, - "files": [ - "src/test.ts" - ], - "include": [ - "**/*.spec.ts", - "**/*.d.ts" - ] -} diff --git a/tsconfig.json b/tsconfig.json index 3473e465ed..992f4700c6 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -22,8 +22,6 @@ "hslayers-ng": ["projects/hslayers/src/public-api.ts"], "hslayers-ng/*": ["projects/hslayers/*"], "@ngx-translate/*": ["node_modules/@ngx-translate/*"], - "hslayers-material": ["dist/hslayers-material"], - "hslayers-material/*": ["dist/hslayers-material/*"], "hslayers-cesium": ["dist/hslayers-cesium"], "hslayers-cesium/*": [ "projects/hslayers-cesium/*",