From 3ddb57557a31c38e60285438d056a0bb04d67449 Mon Sep 17 00:00:00 2001 From: Xiao Gui <xgui3783@gmail.com> Date: Fri, 20 Oct 2023 16:42:18 +0200 Subject: [PATCH] update material to 15 --- package-lock.json | 929 ++++++++++++++++-- package.json | 4 +- .../atlas-download.directive.ts | 2 +- src/atlas-download/atlas-download.module.ts | 4 +- src/atlasComponents/sapi/module.ts | 4 +- src/atlasComponents/sapi/sapi.service.ts | 2 +- .../sapiViews/core/atlas/module.ts | 6 +- .../splashScreen/splashScreen.template.html | 6 +- .../sapiViews/core/region/module.ts | 10 - .../sapiViews/core/rich/ATPSelector/module.ts | 10 +- .../pureDumb/pureATPSelector.stories.ts | 4 +- .../ATPSelector/wrapper/wrapper.component.ts | 2 +- .../ATPSelector/wrapper/wrapper.stories.ts | 4 +- .../regionsHierarchy.stories.ts | 2 +- .../regionListSearch.component.ts | 2 +- .../regionListSearch.template.html | 2 +- .../point-assignment.component.spec.ts | 4 +- .../point-assignment.component.ts | 2 +- .../sapiViews/volumes/volumes.module.ts | 12 +- .../annotationList.component.spec.ts | 14 +- .../annotationList.component.ts | 4 +- .../annotationMode.component.ts | 2 +- .../singleAnnotationUnit.component.ts | 2 +- .../tools/line/line.component.ts | 2 +- .../tools/line/line.template.html | 4 +- .../tools/point/point.template.html | 4 +- .../tools/poly/poly.component.ts | 2 +- .../tools/poly/poly.template.html | 4 +- .../userAnnotations/tools/service.spec.ts | 4 +- .../userAnnotations/tools/service.ts | 2 +- .../textareaCopyExport.component.ts | 2 +- src/atlasViewer/atlasViewer.component.ts | 4 +- .../confirmDialog.component.spec.ts | 2 +- .../confirmDialog/confirmDialog.component.ts | 2 +- src/components/dialog/dialog.component.ts | 2 +- .../treeView/treeView.component.ts | 2 +- src/components/smartChip/module.ts | 6 +- src/components/smartChip/smartChip.stories.ts | 6 +- src/dragDropFile/dragDrop.directive.ts | 2 +- src/extra_styles.css | 4 +- src/features/connectivity/module.ts | 17 +- src/features/entry/entry.component.ts | 2 +- src/features/module.ts | 26 +- .../fileInputModal.component.ts | 2 +- src/getFileInput/getFileInput.directive.ts | 2 +- src/getFileInput/module.ts | 8 +- .../keyframeCtrl/keyframeCtrl.component.ts | 2 +- src/main.module.ts | 1 - src/messaging/service.ts | 2 +- .../pluginBanner/pluginBanner.component.ts | 2 +- .../screenshotCmp/screenshot.component.ts | 3 +- src/services/dialogService.service.ts | 2 +- src/services/uiService.service.ts | 8 +- src/share/clipboardCopy.directive.ts | 3 +- src/share/saneUrl/saneUrl.component.ts | 5 +- src/share/share.directive.ts | 2 +- src/share/shareSheet/shareSheet.component.ts | 2 +- src/sharedModules/angularMaterial.exports.ts | 14 + src/sharedModules/angularMaterial.module.ts | 96 +- src/state/atlasSelection/effects.spec.ts | 2 +- src/state/atlasSelection/effects.ts | 2 +- src/state/userInterface/actions.ts | 3 +- src/state/userInterface/effects.ts | 3 +- src/strictLocal/module.ts | 6 +- src/theme.scss | 84 +- src/ui/actionDialog/actionDialog.component.ts | 2 +- src/ui/bottomMenu/module.ts | 6 +- src/ui/config/configCmp/config.component.ts | 7 +- src/ui/config/configCmp/config.template.html | 6 +- src/ui/dialogInfo/dialog.directive.ts | 2 +- src/ui/dialogInfo/module.ts | 8 +- src/ui/dialogInfo/tmpl/tmpl.component.ts | 2 +- src/ui/help/about/about.component.ts | 2 +- src/ui/help/module.ts | 6 +- src/ui/quickTour/quickTour.service.ts | 2 +- .../startTourDialog.component.ts | 2 +- src/ui/topMenu/module.ts | 3 +- .../topMenu/topMenuCmp/topMenu.components.ts | 3 +- src/util/df-to-ds.pipe.ts | 3 +- .../side-panel/side-panel.component.spec.ts | 4 +- src/util/util.module.ts | 4 +- src/viewerModule/leap/module.ts | 4 +- .../nehuba/layoutOverlay/module.ts | 7 +- .../nehuba/ngLayerCtlModule/module.ts | 7 +- .../ngLayerCtl/ngLayerCtrl.stories.ts | 6 +- .../statusCard/statusCard.component.spec.ts | 2 +- .../nehuba/statusCard/statusCard.component.ts | 3 +- src/viewerModule/nehuba/userLayers/module.ts | 12 +- src/viewerModule/nehuba/userLayers/service.ts | 6 +- .../userLayers/userlayerDragdrop.directive.ts | 2 +- .../userlayerInfo/userlayerInfo.component.ts | 2 +- .../viewerCtrlCmp.component.spec.ts | 2 +- src/viewerModule/threeSurfer/module.ts | 2 - .../threeSurferGlue/threeSurfer.component.ts | 2 +- .../viewerCmp/viewerCmp.template.html | 4 +- src/widget/constants.ts | 2 +- src/widget/widget.module.ts | 10 +- 97 files changed, 1078 insertions(+), 443 deletions(-) create mode 100644 src/sharedModules/angularMaterial.exports.ts diff --git a/package-lock.json b/package-lock.json index f0e85ed35..e1ec1eefc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,12 +10,12 @@ "license": "apache-2.0", "dependencies": { "@angular/animations": "^15.2.10", - "@angular/cdk": "^14.2.7", + "@angular/cdk": "^15.2.9", "@angular/common": "^15.2.10", "@angular/compiler": "^15.2.10", "@angular/core": "^15.2.10", "@angular/forms": "^15.2.10", - "@angular/material": "^14.2.7", + "@angular/material": "^15.2.9", "@angular/platform-browser": "^15.2.10", "@angular/platform-browser-dynamic": "^15.2.10", "@angular/router": "^15.2.10", @@ -594,18 +594,18 @@ } }, "node_modules/@angular/cdk": { - "version": "14.2.7", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-14.2.7.tgz", - "integrity": "sha512-/tEsYaUbDSnfEmKVvAMramIptmhI67O+9STjOV0i+74XR2NospeK0fkbywIANu1n3w6AHGMotvRWJrjmbCElFg==", + "version": "15.2.9", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-15.2.9.tgz", + "integrity": "sha512-koaM07N1AIQ5oHU27l0/FoQSSoYAwlAYwVZ4Di3bYrJsTBNCN2Xsby7wI8gZxdepMnV4Fe9si382BDBov+oO4Q==", "dependencies": { "tslib": "^2.3.0" }, "optionalDependencies": { - "parse5": "^5.0.0" + "parse5": "^7.1.2" }, "peerDependencies": { - "@angular/common": "^14.0.0 || ^15.0.0", - "@angular/core": "^14.0.0 || ^15.0.0", + "@angular/common": "^15.0.0 || ^16.0.0", + "@angular/core": "^15.0.0 || ^16.0.0", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -835,19 +835,66 @@ } }, "node_modules/@angular/material": { - "version": "14.2.7", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-14.2.7.tgz", - "integrity": "sha512-WXHh8pEStpgkXZJmYOg2cI8BSHkV82ET4XTJCNPdveumaCn1UYnaNzsXD13kw5z+zmy8CufhFEzdXTrv/yt7KQ==", - "dependencies": { + "version": "15.2.9", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-15.2.9.tgz", + "integrity": "sha512-emuFF/7+91Jq+6kVCl3FiVoFLtAZoh+woFQWNuK8nhx0HmD4ckLFI8d9a6ERYR3zRuKhq5deSRE2kYsfpjrrsQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.684e33d25.0", + "@material/auto-init": "15.0.0-canary.684e33d25.0", + "@material/banner": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/button": "15.0.0-canary.684e33d25.0", + "@material/card": "15.0.0-canary.684e33d25.0", + "@material/checkbox": "15.0.0-canary.684e33d25.0", + "@material/chips": "15.0.0-canary.684e33d25.0", + "@material/circular-progress": "15.0.0-canary.684e33d25.0", + "@material/data-table": "15.0.0-canary.684e33d25.0", + "@material/density": "15.0.0-canary.684e33d25.0", + "@material/dialog": "15.0.0-canary.684e33d25.0", + "@material/dom": "15.0.0-canary.684e33d25.0", + "@material/drawer": "15.0.0-canary.684e33d25.0", + "@material/elevation": "15.0.0-canary.684e33d25.0", + "@material/fab": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/floating-label": "15.0.0-canary.684e33d25.0", + "@material/form-field": "15.0.0-canary.684e33d25.0", + "@material/icon-button": "15.0.0-canary.684e33d25.0", + "@material/image-list": "15.0.0-canary.684e33d25.0", + "@material/layout-grid": "15.0.0-canary.684e33d25.0", + "@material/line-ripple": "15.0.0-canary.684e33d25.0", + "@material/linear-progress": "15.0.0-canary.684e33d25.0", + "@material/list": "15.0.0-canary.684e33d25.0", + "@material/menu": "15.0.0-canary.684e33d25.0", + "@material/menu-surface": "15.0.0-canary.684e33d25.0", + "@material/notched-outline": "15.0.0-canary.684e33d25.0", + "@material/radio": "15.0.0-canary.684e33d25.0", + "@material/ripple": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/segmented-button": "15.0.0-canary.684e33d25.0", + "@material/select": "15.0.0-canary.684e33d25.0", + "@material/shape": "15.0.0-canary.684e33d25.0", + "@material/slider": "15.0.0-canary.684e33d25.0", + "@material/snackbar": "15.0.0-canary.684e33d25.0", + "@material/switch": "15.0.0-canary.684e33d25.0", + "@material/tab": "15.0.0-canary.684e33d25.0", + "@material/tab-bar": "15.0.0-canary.684e33d25.0", + "@material/tab-indicator": "15.0.0-canary.684e33d25.0", + "@material/tab-scroller": "15.0.0-canary.684e33d25.0", + "@material/textfield": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/tooltip": "15.0.0-canary.684e33d25.0", + "@material/top-app-bar": "15.0.0-canary.684e33d25.0", + "@material/touch-target": "15.0.0-canary.684e33d25.0", + "@material/typography": "15.0.0-canary.684e33d25.0", "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/animations": "^14.0.0 || ^15.0.0", - "@angular/cdk": "14.2.7", - "@angular/common": "^14.0.0 || ^15.0.0", - "@angular/core": "^14.0.0 || ^15.0.0", - "@angular/forms": "^14.0.0 || ^15.0.0", - "@angular/platform-browser": "^14.0.0 || ^15.0.0", + "@angular/animations": "^15.0.0 || ^16.0.0", + "@angular/cdk": "15.2.9", + "@angular/common": "^15.0.0 || ^16.0.0", + "@angular/core": "^15.0.0 || ^16.0.0", + "@angular/forms": "^15.0.0 || ^16.0.0", + "@angular/platform-browser": "^15.0.0 || ^16.0.0", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -4391,6 +4438,757 @@ "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", "dev": true }, + "node_modules/@material/animation": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/animation/-/animation-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-5osi1z4JQIXcklPALbH/zTfOm2pDzHt9Fxm7ZyURy250xIZj6QjULRzPTnzOhC2ropfix9ra2Cfggbf0dcRbEQ==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/auto-init": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/auto-init/-/auto-init-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-OigQTmrVzkcGvxNjOaIe5oItTFPgrO9xLewvharDI6m6yvO1z7OBnkcW+sFN6ggLNYNxd0O1u9v64vMsmeDABQ==", + "dependencies": { + "@material/base": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/banner": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/banner/-/banner-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-PqtGp3KWzdu58rWv/DIvSfe38m5YKOBbAAbBinSvgadBb/da+IE1t5F7YPNKE1T5lJsQBGVUYx6QBIeXm+aI/A==", + "dependencies": { + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/button": "15.0.0-canary.684e33d25.0", + "@material/dom": "15.0.0-canary.684e33d25.0", + "@material/elevation": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/ripple": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/shape": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/tokens": "15.0.0-canary.684e33d25.0", + "@material/typography": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/base": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/base/-/base-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-oOaqb/SfjWwTKsdJUZmeh/Qrs41nIJI0N+zELsxnvbGjSIN1ZMAKYZFPMahqvC68OJ6+5CvJM8PoTNs5l+B8IQ==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/button": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/button/-/button-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-Nkekk4edeX+ObVOa7UlwavaHdmckPV5wU4SAJf3iA3R61cmz+KsgAgpzfcwv5WfNhIlc2nLu8QYEecpHdo9d/w==", + "dependencies": { + "@material/density": "15.0.0-canary.684e33d25.0", + "@material/dom": "15.0.0-canary.684e33d25.0", + "@material/elevation": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/focus-ring": "15.0.0-canary.684e33d25.0", + "@material/ripple": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/shape": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/tokens": "15.0.0-canary.684e33d25.0", + "@material/touch-target": "15.0.0-canary.684e33d25.0", + "@material/typography": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/card": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/card/-/card-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-xhyB7XX5KkEiCEqwSPkl58ZGYL6xFdnY62zimyBXJRG/Eaa0Swj3kW20hVCpt4f7c9Zmp8Se27rg8vnKmhvO3g==", + "dependencies": { + "@material/dom": "15.0.0-canary.684e33d25.0", + "@material/elevation": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/ripple": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/shape": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/tokens": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/checkbox": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/checkbox/-/checkbox-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-NFpM3TS924PmVsk2KQLNU95OYCf8ZwYgzeqfnAexU0bEfjUJXINBun2Go0AaeOUMjuvWUe+byjrXgv8SFYbMUA==", + "dependencies": { + "@material/animation": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/density": "15.0.0-canary.684e33d25.0", + "@material/dom": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/focus-ring": "15.0.0-canary.684e33d25.0", + "@material/ripple": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/touch-target": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/chips": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/chips/-/chips-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-z4ajQ4NnsAQ/Si9tZ4xmxzjj2Qb+vW++4QjCjjjwAGIZbCe0xglAnMh2t66XLJUxt7RoKZuZVEO7ZqcFZpvJFQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/checkbox": "15.0.0-canary.684e33d25.0", + "@material/density": "15.0.0-canary.684e33d25.0", + "@material/dom": "15.0.0-canary.684e33d25.0", + "@material/elevation": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/focus-ring": "15.0.0-canary.684e33d25.0", + "@material/ripple": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/shape": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/tokens": "15.0.0-canary.684e33d25.0", + "@material/touch-target": "15.0.0-canary.684e33d25.0", + "@material/typography": "15.0.0-canary.684e33d25.0", + "safevalues": "^0.3.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/circular-progress": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/circular-progress/-/circular-progress-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-G6qD0nGNtEUwWnAMJuA9INYFpZoKtx7KFjBaPF4Ol2YLHtmShALNAYyn54TMAK8AZ2IpW08PXjGS7Ye88vrdEQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/dom": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/progress-indicator": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/data-table": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/data-table/-/data-table-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-+wDw1DDDFfAsKAMzs84f/5GCjux39zjNfW8tL4wFbkWNwewmQrG9zaQMJhBpVOtLCrM8Gj6SOgOANqgqoCjvGg==", + "dependencies": { + "@material/animation": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/checkbox": "15.0.0-canary.684e33d25.0", + "@material/density": "15.0.0-canary.684e33d25.0", + "@material/dom": "15.0.0-canary.684e33d25.0", + "@material/elevation": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/icon-button": "15.0.0-canary.684e33d25.0", + "@material/linear-progress": "15.0.0-canary.684e33d25.0", + "@material/list": "15.0.0-canary.684e33d25.0", + "@material/menu": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/select": "15.0.0-canary.684e33d25.0", + "@material/shape": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/tokens": "15.0.0-canary.684e33d25.0", + "@material/touch-target": "15.0.0-canary.684e33d25.0", + "@material/typography": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/density": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/density/-/density-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-661yEVRMGrlq6S6WuSbPRO+ZwpdUOg2glCc7y96doM6itSLOa3UEAldjOLfsYZVB74GnKCiuDp//QmfoRyYTfA==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/dialog": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/dialog/-/dialog-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-szn0dHnfeQTSOC6SSRSGAzX6Tnx+4NnSMUwNkXm+3bwjds8ZVK26+DXwLrP5f3ID5F1K5sFsRf2INo5/TNTHyQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/button": "15.0.0-canary.684e33d25.0", + "@material/dom": "15.0.0-canary.684e33d25.0", + "@material/elevation": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/icon-button": "15.0.0-canary.684e33d25.0", + "@material/ripple": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/shape": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/tokens": "15.0.0-canary.684e33d25.0", + "@material/touch-target": "15.0.0-canary.684e33d25.0", + "@material/typography": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/dom": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/dom/-/dom-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-7pEJLYov+tGgfuD8mZxoVU6rWtPI8ppjTAhz+F27Hz9FG0JETMWTKpDPBXLnKvX7vhIxL83GvZ9geNHCe8Hfog==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/drawer": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/drawer/-/drawer-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-/KMckLf1PYU/H3PXnS4e0aFl03qG3JlSv4LGgX6juJufcONqGTl/m63EMO/L/eUy6H1CRrXmVDjik/jzHLyDhg==", + "dependencies": { + "@material/animation": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/dom": "15.0.0-canary.684e33d25.0", + "@material/elevation": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/list": "15.0.0-canary.684e33d25.0", + "@material/ripple": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/shape": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/typography": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/elevation": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-WDF8SsRtq3rXUbVVbd9K4DUijIPH0bUFSOreVYxudpuxAfTlDS5+aeS1EK9UIBFYLuba4u5wVT2tDv6e1RTfrQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/fab": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/fab/-/fab-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-KCu87rWOKEAe9vZcAm6K8XazYSWPNjMG+OhrbPjHW6bCO7as1YCgtmkBkhff7csY/rFmcVpIy884xtUfLmSudQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.684e33d25.0", + "@material/dom": "15.0.0-canary.684e33d25.0", + "@material/elevation": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/focus-ring": "15.0.0-canary.684e33d25.0", + "@material/ripple": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/shape": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/tokens": "15.0.0-canary.684e33d25.0", + "@material/touch-target": "15.0.0-canary.684e33d25.0", + "@material/typography": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/feature-targeting": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-HyH1erNTSjS63sigNSUMaCd0nJhTNdDFeC+myrxwtDaQm+uYJ8troCNtQM3g6mx0XATNtX5aTOoPmrM6yVVi1A==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/floating-label": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-f7TPp6bKpGvV3sYYiZHSGlrixXKkXXITW3Esp7KB9jRq42c0H82novmdwvY0eTef4ootmA2JEysr78KQfHBUPg==", + "dependencies": { + "@material/animation": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/dom": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/typography": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/focus-ring": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/focus-ring/-/focus-ring-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-ikw2RVUfgzXChpWIzPH1VzRvTjYb5ZKj4H+CZf7jqPUXMstFOZg90Bp7ARLZHqYiyNMuUq3zUTHozS6iHorSqg==", + "dependencies": { + "@material/dom": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0" + } + }, + "node_modules/@material/form-field": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/form-field/-/form-field-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-vpF9N/uq5no/7+8GAbEH0868FhOuBgxAWRr1Sfb+jthKfBr8OS/wPU/AHzZHdHdAm7PQynbeOXfDsX2dI//PDA==", + "dependencies": { + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/ripple": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/typography": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/icon-button": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/icon-button/-/icon-button-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-wMI+XGzmIN/o2ePBKg2hLyx7H4pXCRAyyIKMQS1FMp1UKa2tYmiHVX/V8skhKwCqxg3i6Ls/LxMjfPxTR18WvQ==", + "dependencies": { + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/density": "15.0.0-canary.684e33d25.0", + "@material/dom": "15.0.0-canary.684e33d25.0", + "@material/elevation": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/focus-ring": "15.0.0-canary.684e33d25.0", + "@material/ripple": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/touch-target": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/image-list": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/image-list/-/image-list-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-Ol+uaHYBe5R/cgzlfh5ONnMVX0wO6fV74JMUcQCQlxP6lXau/edARo4tkRc7A7UJUkU3VRv0EpEjLoCRNUPGaA==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/shape": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/typography": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/layout-grid": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/layout-grid/-/layout-grid-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-ALXE1mqFNb/RB2lVRQ3/r1Aufw2mFZnOjRE+boYDVepmAG/xWyPCyaGoavELJF5l4GAb0tXi8wA/8HeGbLOpuA==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/line-ripple": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-7hRx8C/e9i0P6pgQpNOMfTwSS2r1fwEvBL72QDVGLtLuoKKwsjjgP6Z0Jat/GeHJe87u9LQvGBoD4upt+of/HA==", + "dependencies": { + "@material/animation": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/linear-progress": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/linear-progress/-/linear-progress-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-iJclt7mKmcMk6pqD7ocXKfCWZhqBoODp7N593jYlxVpTJuEz2wiVAjZUDn/YGj/Uz3CRH+2YFfOiLr9pwWjhDg==", + "dependencies": { + "@material/animation": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/dom": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/progress-indicator": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/list": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/list/-/list-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-rQ+FCSdzmwTcT00IYE0uRV3CS4oGSccKFl9hkcF+aHFW61L7ORh/SCGUDPrEfQFrFkMn5f8qroVJjpUAMXBz4g==", + "dependencies": { + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/density": "15.0.0-canary.684e33d25.0", + "@material/dom": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/ripple": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/shape": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/tokens": "15.0.0-canary.684e33d25.0", + "@material/typography": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/menu": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/menu/-/menu-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-r7wzDLSGSI9629/mfpvsMzkVxpmV75kcD3IrW0Pcu6/Bv/1xi0EvjcUXzNJJoQlwN4Zj35Ymz/PCjZkIDIz68Q==", + "dependencies": { + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/dom": "15.0.0-canary.684e33d25.0", + "@material/elevation": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/list": "15.0.0-canary.684e33d25.0", + "@material/menu-surface": "15.0.0-canary.684e33d25.0", + "@material/ripple": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/shape": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/tokens": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/menu-surface": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/menu-surface/-/menu-surface-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-RVO5GAYcfWPaKwxsF/NhUAmrYXQCQBKvRQW0TIlbmAJz6lcFeTs6YZqF3u1C7qrL3ZQGz+sur/7ywj6QU0oMow==", + "dependencies": { + "@material/animation": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/elevation": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/shape": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/notched-outline": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-9YHcBkvJLPVYzkHcWoTpBZAFrEd+j1hjhGxLhh0LuNrZe8VroUkZD1TTnUAPHRG3os6EqEWWaKb0RN+aPIF2yQ==", + "dependencies": { + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/floating-label": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/shape": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/progress-indicator": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/progress-indicator/-/progress-indicator-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-c0icji4faeNWUoqGENGC7Hav0Puxh0RwXIDVizffaUxKIGbajpIp5+4Zop73fK/xFLGMB/npg7TbP+aCGjQ3fw==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/radio": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/radio/-/radio-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-U3Eh8sNUA8trDla1Bq8Bo02foxYvtoewaKeF8A8tAju81XZ4jRiftfOsOWZDZEHCVbbCB2QwvutvFlnay5n+Aw==", + "dependencies": { + "@material/animation": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/density": "15.0.0-canary.684e33d25.0", + "@material/dom": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/focus-ring": "15.0.0-canary.684e33d25.0", + "@material/ripple": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/touch-target": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/ripple": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-RyePu7SjIm/OuyyEieZ/gxiPYkNZOZHeid72WRcN9ofdlljj2pifcdPvcfZA+v/DMS33xo5GjG2L/Qj6ClWrKw==", + "dependencies": { + "@material/animation": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/dom": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/rtl": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-NqdJl8Ayupp1Th+vCNCpVQHbUFOuF7TCte9LD1norTIBUF/QizIxWby2W5uUEiPbnh5j9PmE1CJtfLwKun3pcw==", + "dependencies": { + "@material/theme": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/segmented-button": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/segmented-button/-/segmented-button-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-bEGgg8vgXNLyukyV8HRjFMuQ6t6nm5LQ4Pgm22um61Yc8qyi0BOqV41OR4SVdUrUqZxh1aVD+p+4NN03+LfQXw==", + "dependencies": { + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/elevation": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/ripple": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/touch-target": "15.0.0-canary.684e33d25.0", + "@material/typography": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/select": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/select/-/select-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-kf178/2TeEinTv0mgmSBcmmExQ2h7a7dtR1E3WuqQgisJ/R6+zVLMkC2CnfIyzxYX2vkuUTG0ue3Reh/6XiqSg==", + "dependencies": { + "@material/animation": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/density": "15.0.0-canary.684e33d25.0", + "@material/dom": "15.0.0-canary.684e33d25.0", + "@material/elevation": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/floating-label": "15.0.0-canary.684e33d25.0", + "@material/line-ripple": "15.0.0-canary.684e33d25.0", + "@material/list": "15.0.0-canary.684e33d25.0", + "@material/menu": "15.0.0-canary.684e33d25.0", + "@material/menu-surface": "15.0.0-canary.684e33d25.0", + "@material/notched-outline": "15.0.0-canary.684e33d25.0", + "@material/ripple": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/shape": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/tokens": "15.0.0-canary.684e33d25.0", + "@material/typography": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/shape": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/shape/-/shape-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-aEelpaTFmpnCji3TUGP9bVCS/bRVjUmLTHBPZtuu1gOrUVVtJ6kYOg73dZNJF+XOoNL2yOX/LRcKwsop29tptA==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/slider": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/slider/-/slider-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-WVyK+2pSNSZmj07M2K/a3TADoQ9FBCndfNC/vE7/wGIg4dddJJK5KvQ+yruf9R2cSzTL/S1sZ5WpyyeM8E9HTw==", + "dependencies": { + "@material/animation": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/dom": "15.0.0-canary.684e33d25.0", + "@material/elevation": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/ripple": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/tokens": "15.0.0-canary.684e33d25.0", + "@material/typography": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/snackbar": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/snackbar/-/snackbar-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-itO+DCkOannZzR1/cCHcqAm7ifhuFvXmDItNoA8qLEcAyJDJJRkhpwj3XQ01yuo9gBFcSctp7Txt7e+Hncm/Jg==", + "dependencies": { + "@material/animation": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/button": "15.0.0-canary.684e33d25.0", + "@material/dom": "15.0.0-canary.684e33d25.0", + "@material/elevation": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/icon-button": "15.0.0-canary.684e33d25.0", + "@material/ripple": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/shape": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/tokens": "15.0.0-canary.684e33d25.0", + "@material/typography": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/switch": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/switch/-/switch-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-Jxi0gl92yvvZZsAPxvVHzXx2ga+T/djMow98jvEczmpUorWnAhgiCr9CsSSRoosahWyRB8NLZOxUQrACxvffjw==", + "dependencies": { + "@material/animation": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/density": "15.0.0-canary.684e33d25.0", + "@material/dom": "15.0.0-canary.684e33d25.0", + "@material/elevation": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/focus-ring": "15.0.0-canary.684e33d25.0", + "@material/ripple": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/shape": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/tokens": "15.0.0-canary.684e33d25.0", + "safevalues": "^0.3.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/tab/-/tab-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-WQL3wj9syHNcfe8KbgGGUcA34M8C/xZ+n0Fkkh8Kk6puVwaU+xqUNihsxPY6YzKpmh4PZ4oJaBdiN8zvFT1zqQ==", + "dependencies": { + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/elevation": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/focus-ring": "15.0.0-canary.684e33d25.0", + "@material/ripple": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/tab-indicator": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/tokens": "15.0.0-canary.684e33d25.0", + "@material/typography": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab-bar": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/tab-bar/-/tab-bar-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-SW/cMaDsIGGkM1ag3A7GJRlmr8eXmObWsvitQJzh6Azr5zzZtSI+GQygkMesAEE1gbpqOVN8d40rh3H7VVIAcA==", + "dependencies": { + "@material/animation": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/density": "15.0.0-canary.684e33d25.0", + "@material/elevation": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/tab": "15.0.0-canary.684e33d25.0", + "@material/tab-indicator": "15.0.0-canary.684e33d25.0", + "@material/tab-scroller": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/tokens": "15.0.0-canary.684e33d25.0", + "@material/typography": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab-indicator": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/tab-indicator/-/tab-indicator-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-kKICqSPqOlaf0lzaFFCmuOqPXJC+cK48Qmsc+m5o6fJhkmuZRCYpIwB2JeP+uZSOq/bTH+SrPtCtnVlgWg6ksA==", + "dependencies": { + "@material/animation": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab-scroller": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/tab-scroller/-/tab-scroller-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-H6EU/TSiK/M2DyyORX5GEtXD9rKYxTMHC2VxsNWARPMFJGzgeW2ugYkFv+rKI1/c0bs0CJ4e+qFnOlBsQXZvyQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/dom": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/tab": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/textfield": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/textfield/-/textfield-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-OvgpDXjvpyJTtAWskO69IDybFvDNzr9w2PN/Fk7yFm+uNVupaWz1Ew8lZ4gGslaTNSVmh2XcsvmzxcLINSiiNg==", + "dependencies": { + "@material/animation": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/density": "15.0.0-canary.684e33d25.0", + "@material/dom": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/floating-label": "15.0.0-canary.684e33d25.0", + "@material/line-ripple": "15.0.0-canary.684e33d25.0", + "@material/notched-outline": "15.0.0-canary.684e33d25.0", + "@material/ripple": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/shape": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/tokens": "15.0.0-canary.684e33d25.0", + "@material/typography": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/theme": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/theme/-/theme-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-AZxaXXAvRKzAi20RlMxzt2U5UmkCWyv7DMWEBXsxtG5Tk54mi1HsbVUp3fxDPTlmL7Pq8p1/DESg/o7TgRCVlw==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tokens": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/tokens/-/tokens-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-wVwbQOTCXDPKYPdHQHLr026y36MMFelID1CmbfRk6mSol4O8yE9U0fXcShfRDW8Qo5E3X31w9c2A6T3neJY7wQ==", + "dependencies": { + "@material/elevation": "15.0.0-canary.684e33d25.0" + } + }, + "node_modules/@material/tooltip": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/tooltip/-/tooltip-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-dtm26QjxyQdinc8btgz6yys07b7bUW4FZgNF2EBPeGrICrPg7jf+JEvDziz5g8VMaTBQLOQRSCGy0MKuRlOjLw==", + "dependencies": { + "@material/animation": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/button": "15.0.0-canary.684e33d25.0", + "@material/dom": "15.0.0-canary.684e33d25.0", + "@material/elevation": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/shape": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/tokens": "15.0.0-canary.684e33d25.0", + "@material/typography": "15.0.0-canary.684e33d25.0", + "safevalues": "^0.3.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/top-app-bar": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/top-app-bar/-/top-app-bar-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-1M+oupUxflfW7u81P1XlxoLZB8bLzwtpKofIfDNRbEsiKhlLTERJR3Yak3BGE9xakNMysAaBHlkb5MrN5bNPFw==", + "dependencies": { + "@material/animation": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/elevation": "15.0.0-canary.684e33d25.0", + "@material/ripple": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/shape": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/typography": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/touch-target": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/touch-target/-/touch-target-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-zdE69Slg8+T7sTn1OwqZ6H7WBYac9mxJ/JlJqfTqthzIjZRcCxBSYymQJcDHjsrPnUojOtr9U4Tpm5YZ96TEkQ==", + "dependencies": { + "@material/base": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/typography": { + "version": "15.0.0-canary.684e33d25.0", + "resolved": "https://registry.npmjs.org/@material/typography/-/typography-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-aVnvgMwcfNa/K4wujzpKDIxjGl2hbkEL+m+OKDSQqWYjKcP9QrbzCXJruJBqxrBoPRHLbqo47k5f9uT8raSgjw==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.684e33d25.0", + "tslib": "^2.1.0" + } + }, "node_modules/@mdx-js/mdx": { "version": "1.6.22", "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz", @@ -23866,30 +24664,6 @@ "url": "https://github.com/sponsors/fb55" } }, - "node_modules/cheerio/node_modules/entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", - "dev": true, - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/cheerio/node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, "node_modules/chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", @@ -33717,10 +34491,16 @@ } }, "node_modules/parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", - "optional": true + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "devOptional": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } }, "node_modules/parse5-html-rewriting-stream": { "version": "7.0.0", @@ -33748,18 +34528,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/parse5-html-rewriting-stream/node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, "node_modules/parse5-htmlparser2-tree-adapter": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", @@ -33773,30 +34541,6 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/parse5-htmlparser2-tree-adapter/node_modules/entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", - "dev": true, - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, "node_modules/parse5-sax-parser": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", @@ -33809,11 +34553,11 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/parse5-sax-parser/node_modules/entities": { + "node_modules/parse5/node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.12" }, @@ -33821,18 +34565,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/parse5-sax-parser/node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -35885,6 +36617,11 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, + "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/sane": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", diff --git a/package.json b/package.json index 9a47f2800..f558febf2 100644 --- a/package.json +++ b/package.json @@ -53,12 +53,12 @@ }, "dependencies": { "@angular/animations": "^15.2.10", - "@angular/cdk": "^14.2.7", + "@angular/cdk": "^15.2.9", "@angular/common": "^15.2.10", "@angular/compiler": "^15.2.10", "@angular/core": "^15.2.10", "@angular/forms": "^15.2.10", - "@angular/material": "^14.2.7", + "@angular/material": "^15.2.9", "@angular/platform-browser": "^15.2.10", "@angular/platform-browser-dynamic": "^15.2.10", "@angular/router": "^15.2.10", diff --git a/src/atlas-download/atlas-download.directive.ts b/src/atlas-download/atlas-download.directive.ts index ca0e8d23c..94cdb2c79 100644 --- a/src/atlas-download/atlas-download.directive.ts +++ b/src/atlas-download/atlas-download.directive.ts @@ -1,5 +1,5 @@ import { Directive, HostListener } from '@angular/core'; -import { MatSnackBar } from '@angular/material/snack-bar'; +import { MatSnackBar } from 'src/sharedModules/angularMaterial.exports' import { Store, select } from '@ngrx/store'; import { Subject, concat, of } from 'rxjs'; import { distinctUntilChanged, shareReplay, take } from 'rxjs/operators'; diff --git a/src/atlas-download/atlas-download.module.ts b/src/atlas-download/atlas-download.module.ts index 910154cb4..fb608195e 100644 --- a/src/atlas-download/atlas-download.module.ts +++ b/src/atlas-download/atlas-download.module.ts @@ -1,7 +1,7 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { AtlasDownloadDirective } from './atlas-download.directive'; -import { MatSnackBarModule } from '@angular/material/snack-bar'; +import { AngularMaterialModule } from 'src/sharedModules'; @NgModule({ @@ -10,7 +10,7 @@ import { MatSnackBarModule } from '@angular/material/snack-bar'; ], imports: [ CommonModule, - MatSnackBarModule, + AngularMaterialModule, ], exports: [ AtlasDownloadDirective diff --git a/src/atlasComponents/sapi/module.ts b/src/atlasComponents/sapi/module.ts index 9b9efaf0e..416349684 100644 --- a/src/atlasComponents/sapi/module.ts +++ b/src/atlasComponents/sapi/module.ts @@ -2,13 +2,13 @@ import { NgModule } from "@angular/core"; import { CommonModule } from "@angular/common"; import { HttpClientModule, HTTP_INTERCEPTORS } from "@angular/common/http"; import { PriorityHttpInterceptor } from "src/util/priority"; -import { MatSnackBarModule } from "@angular/material/snack-bar"; +import { AngularMaterialModule } from "src/sharedModules"; @NgModule({ imports: [ CommonModule, HttpClientModule, - MatSnackBarModule, + AngularMaterialModule, ], declarations: [ ], diff --git a/src/atlasComponents/sapi/sapi.service.ts b/src/atlasComponents/sapi/sapi.service.ts index a8a423ed6..c190d20b3 100644 --- a/src/atlasComponents/sapi/sapi.service.ts +++ b/src/atlasComponents/sapi/sapi.service.ts @@ -2,7 +2,7 @@ import { Injectable } from "@angular/core"; import { HttpClient } from '@angular/common/http'; import { catchError, map, shareReplay, switchMap, take, tap } from "rxjs/operators"; import { CachedFunction, getExportNehuba, noop } from "src/util/fn"; -import { MatSnackBar } from "@angular/material/snack-bar"; +import { MatSnackBar } from 'src/sharedModules/angularMaterial.exports' import { AtlasWorkerService } from "src/atlasViewer/atlasViewer.workerService.service"; import { EnumColorMapName } from "src/util/colorMaps"; import { BehaviorSubject, forkJoin, from, NEVER, Observable, of, throwError } from "rxjs"; diff --git a/src/atlasComponents/sapiViews/core/atlas/module.ts b/src/atlasComponents/sapiViews/core/atlas/module.ts index 174ba5d39..a8d4b35d3 100644 --- a/src/atlasComponents/sapiViews/core/atlas/module.ts +++ b/src/atlasComponents/sapiViews/core/atlas/module.ts @@ -2,15 +2,13 @@ import { CommonModule } from "@angular/common"; import { NgModule } from "@angular/core"; import { SpinnerModule } from "src/components/spinner"; import { SapiViewsCoreAtlasSplashScreen } from "./splashScreen/splashScreen.component"; -import { MatCardModule } from "@angular/material/card"; import { SAPIModule } from "src/atlasComponents/sapi/module"; -import { MatRippleModule } from "@angular/material/core"; +import { AngularMaterialModule } from "src/sharedModules"; @NgModule({ imports: [ CommonModule, - MatCardModule, - MatRippleModule, + AngularMaterialModule, SpinnerModule, SAPIModule, ], diff --git a/src/atlasComponents/sapiViews/core/atlas/splashScreen/splashScreen.template.html b/src/atlasComponents/sapiViews/core/atlas/splashScreen/splashScreen.template.html index ab4954689..5b54e6284 100644 --- a/src/atlasComponents/sapiViews/core/atlas/splashScreen/splashScreen.template.html +++ b/src/atlasComponents/sapiViews/core/atlas/splashScreen/splashScreen.template.html @@ -8,11 +8,11 @@ (click)="selectAtlas(atlas)" matRipple *ngFor="let atlas of atlases$ | async" - class="m-3 col-md-12 col-lg-12 pe-all"> + class="m-3 col-md-12 col-lg-12 pe-all mat-elevation-z2"> <mat-card-header> - <mat-card-title class="text-nowrap font-stretch"> + <h1 class="mat-h1 sxplr-p-2"> {{ atlas.name }} - </mat-card-title> + </h1> </mat-card-header> <!-- required... or on ripple, angular adds 16px margin to the bottom --> diff --git a/src/atlasComponents/sapiViews/core/region/module.ts b/src/atlasComponents/sapiViews/core/region/module.ts index b1e56652d..2560b2b3c 100644 --- a/src/atlasComponents/sapiViews/core/region/module.ts +++ b/src/atlasComponents/sapiViews/core/region/module.ts @@ -10,16 +10,11 @@ import { SapiViewsUtilModule } from "../../util/module"; import { SapiViewsCoreRegionRegionListItem } from "./region/listItem/region.listItem.component"; import { SapiViewsCoreRegionRegionBase } from "./region/region.base.directive"; import { SapiViewsCoreRegionRegionRich } from "./region/rich/region.rich.component"; -import { MatTabsModule } from "@angular/material/tabs"; import { ExperimentalModule } from "src/experimental/experimental.module"; -import { MatListModule } from "@angular/material/list"; import { DialogModule } from "src/ui/dialogInfo"; import { SapiViewsCoreParcellationModule } from "../parcellation"; -import { MatTooltipModule } from "@angular/material/tooltip"; import { TranslateQualificationPipe } from "./translateQualification.pipe"; import { DedupRelatedRegionPipe } from "./dedupRelatedRegion.pipe"; -import { MatExpansionModule } from "@angular/material/expansion"; -import { MatTableModule } from "@angular/material/table"; @NgModule({ imports: [ @@ -31,14 +26,9 @@ import { MatTableModule } from "@angular/material/table"; StrictLocalModule, FeatureModule, ReadmoreModule, - MatTabsModule, ExperimentalModule, - MatListModule, DialogModule, SapiViewsCoreParcellationModule, - MatTooltipModule, - MatExpansionModule, - MatTableModule, ExperimentalModule, ], declarations: [ diff --git a/src/atlasComponents/sapiViews/core/rich/ATPSelector/module.ts b/src/atlasComponents/sapiViews/core/rich/ATPSelector/module.ts index c0269e9f1..482720c3b 100644 --- a/src/atlasComponents/sapiViews/core/rich/ATPSelector/module.ts +++ b/src/atlasComponents/sapiViews/core/rich/ATPSelector/module.ts @@ -1,8 +1,5 @@ import { CommonModule } from "@angular/common"; import { NgModule } from "@angular/core"; -import { MatButtonModule } from "@angular/material/button"; -import { MatRippleModule } from "@angular/material/core"; -import { MatIconModule } from "@angular/material/icon"; import { MarkdownModule } from "src/components/markdown"; import { SmartChipModule } from "src/components/smartChip"; import { DialogModule } from "src/ui/dialogInfo"; @@ -11,9 +8,9 @@ import { SapiViewsCoreParcellationModule } from "src/atlasComponents/sapiViews/c import { PureATPSelector } from "./pureDumb/pureATPSelector.components"; import { WrapperATPSelector } from "./wrapper/wrapper.component"; import { SAPIModule } from "src/atlasComponents/sapi/module"; -import { MatTooltipModule } from "@angular/material/tooltip"; import { QuickTourModule } from "src/ui/quickTour"; import { ExperimentalModule } from "src/experimental/experimental.module"; +import { AngularMaterialModule } from "src/sharedModules"; @NgModule({ imports: [ @@ -21,10 +18,7 @@ import { ExperimentalModule } from "src/experimental/experimental.module"; SmartChipModule, UtilModule, MarkdownModule, - MatRippleModule, - MatIconModule, - MatTooltipModule, - MatButtonModule, + AngularMaterialModule, DialogModule, SAPIModule, SapiViewsCoreParcellationModule, diff --git a/src/atlasComponents/sapiViews/core/rich/ATPSelector/pureDumb/pureATPSelector.stories.ts b/src/atlasComponents/sapiViews/core/rich/ATPSelector/pureDumb/pureATPSelector.stories.ts index 421b47409..c22b2b96b 100644 --- a/src/atlasComponents/sapiViews/core/rich/ATPSelector/pureDumb/pureATPSelector.stories.ts +++ b/src/atlasComponents/sapiViews/core/rich/ATPSelector/pureDumb/pureATPSelector.stories.ts @@ -1,6 +1,5 @@ import { CommonModule } from "@angular/common"; import { Component } from "@angular/core"; -import { MatButtonModule } from "@angular/material/button"; import { action } from "@storybook/addon-actions"; import { componentWrapperDecorator, Meta, moduleMetadata, Story } from "@storybook/angular"; import { atlasId, provideDarkTheme } from "src/atlasComponents/sapi/stories.base"; @@ -10,6 +9,7 @@ import { ATPSelectorModule } from "../module"; import { darkThemePalette } from "./pureATPSelector.components" import { loadAtlasEtcData, wrapperDecoratorFn } from "../story.base" import { provideMockStore } from "@ngrx/store/testing"; +import { AngularMaterialModule } from "src/sharedModules"; @Component({ selector: 'atlas-selector-wrapper-story', @@ -70,7 +70,7 @@ export default { imports: [ CommonModule, ATPSelectorModule, - MatButtonModule, + AngularMaterialModule, UtilModule, ], declarations: [ diff --git a/src/atlasComponents/sapiViews/core/rich/ATPSelector/wrapper/wrapper.component.ts b/src/atlasComponents/sapiViews/core/rich/ATPSelector/wrapper/wrapper.component.ts index 9da752e04..f7655e5af 100644 --- a/src/atlasComponents/sapiViews/core/rich/ATPSelector/wrapper/wrapper.component.ts +++ b/src/atlasComponents/sapiViews/core/rich/ATPSelector/wrapper/wrapper.component.ts @@ -1,5 +1,5 @@ import { Component, EventEmitter, Inject, OnDestroy, Output } from "@angular/core"; -import { MatDialog } from "@angular/material/dialog"; +import { MatDialog } from "src/sharedModules/angularMaterial.exports"; import { select, Store } from "@ngrx/store"; import { Observable, Subject, Subscription } from "rxjs"; import { switchMap, withLatestFrom } from "rxjs/operators"; diff --git a/src/atlasComponents/sapiViews/core/rich/ATPSelector/wrapper/wrapper.stories.ts b/src/atlasComponents/sapiViews/core/rich/ATPSelector/wrapper/wrapper.stories.ts index 8dbf60965..555b31580 100644 --- a/src/atlasComponents/sapiViews/core/rich/ATPSelector/wrapper/wrapper.stories.ts +++ b/src/atlasComponents/sapiViews/core/rich/ATPSelector/wrapper/wrapper.stories.ts @@ -1,5 +1,4 @@ import { Component } from "@angular/core"; -import { MatDialogModule } from "@angular/material/dialog"; import { Store } from "@ngrx/store"; import { action } from "@storybook/addon-actions"; import { componentWrapperDecorator, Meta, moduleMetadata, Story } from "@storybook/angular"; @@ -9,6 +8,7 @@ import { ParcellationVisibilityService } from "../../../parcellation/parcellatio import { ATPSelectorModule } from "../module"; import { ATP } from "../pureDumb/pureATPSelector.components"; import { loadAtlasEtcData, wrapperDecoratorFn } from "../story.base"; +import { AngularMaterialModule } from "src/sharedModules"; @Component({ selector: 'wrapper-wrapper', @@ -38,7 +38,7 @@ export default { moduleMetadata({ imports: [ ATPSelectorModule, - MatDialogModule, + AngularMaterialModule, RootStoreModule, ], providers: [ diff --git a/src/atlasComponents/sapiViews/core/rich/regionsHierarchy/regionsHierarchy.stories.ts b/src/atlasComponents/sapiViews/core/rich/regionsHierarchy/regionsHierarchy.stories.ts index 9edc242be..76e6de53f 100644 --- a/src/atlasComponents/sapiViews/core/rich/regionsHierarchy/regionsHierarchy.stories.ts +++ b/src/atlasComponents/sapiViews/core/rich/regionsHierarchy/regionsHierarchy.stories.ts @@ -1,7 +1,7 @@ import { CommonModule } from "@angular/common" import { HttpClientModule } from "@angular/common/http" import { Component, EventEmitter, TemplateRef, ViewChild } from "@angular/core" -import { MatDialog } from "@angular/material/dialog" +import { MatDialog } from 'src/sharedModules/angularMaterial.exports' import { action } from "@storybook/addon-actions" import { Meta, moduleMetadata, Story } from "@storybook/angular" import { atlasId, provideDarkTheme, getParcRegions, getAtlas, getParc } from "src/atlasComponents/sapi/stories.base" diff --git a/src/atlasComponents/sapiViews/core/rich/regionsListSearch/regionListSearch.component.ts b/src/atlasComponents/sapiViews/core/rich/regionsListSearch/regionListSearch.component.ts index 389486f77..0fa6f0384 100644 --- a/src/atlasComponents/sapiViews/core/rich/regionsListSearch/regionListSearch.component.ts +++ b/src/atlasComponents/sapiViews/core/rich/regionsListSearch/regionListSearch.component.ts @@ -3,7 +3,7 @@ import { SxplrRegion } from "src/atlasComponents/sapi/sxplrTypes"; import { ARIA_LABELS } from "common/constants" import { UntypedFormControl } from "@angular/forms"; import { debounceTime, distinctUntilChanged, map, startWith } from "rxjs/operators"; -import { MatAutocompleteSelectedEvent } from "@angular/material/autocomplete"; +import { MatAutocompleteSelectedEvent } from 'src/sharedModules/angularMaterial.exports' import { SapiViewsCoreRichRegionListTemplateDirective } from "./regionListSearchTmpl.directive"; import { BehaviorSubject, combineLatest } from "rxjs"; diff --git a/src/atlasComponents/sapiViews/core/rich/regionsListSearch/regionListSearch.template.html b/src/atlasComponents/sapiViews/core/rich/regionsListSearch/regionListSearch.template.html index 2eba3854a..c56656a7e 100644 --- a/src/atlasComponents/sapiViews/core/rich/regionsListSearch/regionListSearch.template.html +++ b/src/atlasComponents/sapiViews/core/rich/regionsListSearch/regionListSearch.template.html @@ -1,6 +1,6 @@ <mat-form-field class="sxplr-w-100" - floatLabel="never"> + floatLabel="auto"> <input placeholder="Search for regions" [value]="currentSearch" diff --git a/src/atlasComponents/sapiViews/volumes/point-assignment/point-assignment.component.spec.ts b/src/atlasComponents/sapiViews/volumes/point-assignment/point-assignment.component.spec.ts index 86fd2406a..49744330a 100644 --- a/src/atlasComponents/sapiViews/volumes/point-assignment/point-assignment.component.spec.ts +++ b/src/atlasComponents/sapiViews/volumes/point-assignment/point-assignment.component.spec.ts @@ -3,9 +3,9 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { PointAssignmentComponent } from './point-assignment.component'; import { SAPI } from 'src/atlasComponents/sapi/sapi.service'; import { EMPTY } from 'rxjs'; -import { MatDialogModule } from '@angular/material/dialog'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { provideMockStore } from '@ngrx/store/testing'; +import { AngularMaterialModule } from 'src/sharedModules'; describe('PointAssignmentComponent', () => { let component: PointAssignmentComponent; @@ -14,7 +14,7 @@ describe('PointAssignmentComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ declarations: [ PointAssignmentComponent ], - imports: [ MatDialogModule, NoopAnimationsModule ], + imports: [ AngularMaterialModule, NoopAnimationsModule ], providers: [ provideMockStore(), { diff --git a/src/atlasComponents/sapiViews/volumes/point-assignment/point-assignment.component.ts b/src/atlasComponents/sapiViews/volumes/point-assignment/point-assignment.component.ts index 0dbe66f73..beefde08a 100644 --- a/src/atlasComponents/sapiViews/volumes/point-assignment/point-assignment.component.ts +++ b/src/atlasComponents/sapiViews/volumes/point-assignment/point-assignment.component.ts @@ -1,5 +1,5 @@ import { Component, Input, OnDestroy, Output, TemplateRef, EventEmitter } from '@angular/core'; -import { MatDialog, MatDialogRef } from '@angular/material/dialog'; +import { MatDialog, MatDialogRef } from 'src/sharedModules/angularMaterial.exports'; import { BehaviorSubject, EMPTY, Observable, Subscription, combineLatest, concat, of } from 'rxjs'; import { catchError, map, shareReplay, switchMap, tap } from 'rxjs/operators'; import { SAPI, EXPECTED_SIIBRA_API_VERSION } from 'src/atlasComponents/sapi/sapi.service'; diff --git a/src/atlasComponents/sapiViews/volumes/volumes.module.ts b/src/atlasComponents/sapiViews/volumes/volumes.module.ts index a2e461bff..44322970a 100644 --- a/src/atlasComponents/sapiViews/volumes/volumes.module.ts +++ b/src/atlasComponents/sapiViews/volumes/volumes.module.ts @@ -1,16 +1,12 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { PointAssignmentComponent } from './point-assignment/point-assignment.component'; -import { MatTableModule } from '@angular/material/table'; import { UtilModule } from 'src/util'; import { SpinnerModule } from 'src/components/spinner'; -import { MatDialogModule } from '@angular/material/dialog'; -import { MatButtonModule } from '@angular/material/button'; -import { MatSortModule } from '@angular/material/sort'; import { ZipFilesOutputModule } from 'src/zipFilesOutput/module'; import { SandsToNumPipe } from "./sandsToNum.pipe" import { SapiViewsUtilModule } from '../util'; -import { MatTooltipModule } from '@angular/material/tooltip'; +import { AngularMaterialModule } from 'src/sharedModules'; @@ -21,15 +17,11 @@ import { MatTooltipModule } from '@angular/material/tooltip'; ], imports: [ CommonModule, - MatTableModule, UtilModule, SpinnerModule, - MatDialogModule, - MatButtonModule, - MatSortModule, ZipFilesOutputModule, SapiViewsUtilModule, - MatTooltipModule, + AngularMaterialModule, ], exports: [ PointAssignmentComponent diff --git a/src/atlasComponents/userAnnotations/annotationList/annotationList.component.spec.ts b/src/atlasComponents/userAnnotations/annotationList/annotationList.component.spec.ts index 23662fcfd..a4331fcee 100644 --- a/src/atlasComponents/userAnnotations/annotationList/annotationList.component.spec.ts +++ b/src/atlasComponents/userAnnotations/annotationList/annotationList.component.spec.ts @@ -4,20 +4,15 @@ import { FileInputModule } from "src/getFileInput/module" import { CommonModule } from "@angular/common" import { ModularUserAnnotationToolService } from "../tools/service" import { NoopAnimationsModule } from "@angular/platform-browser/animations" -import { MatDialogModule } from "@angular/material/dialog" import { ComponentStore } from "@ngrx/component-store" import { NEVER, of } from "rxjs" -import { MatSnackBarModule } from "@angular/material/snack-bar" import { StateModule } from "src/state" import { hot } from "jasmine-marbles" import { IAnnotationGeometry } from "../tools/type" -import { MatTooltipModule } from "@angular/material/tooltip" -import { MatButtonModule } from "@angular/material/button" -import { MatCardModule } from "@angular/material/card" import { ZipFilesOutputModule } from "src/zipFilesOutput/module" import { AnnotationVisiblePipe } from "../annotationVisible.pipe" import { SingleAnnotationClsIconPipe, SingleAnnotationNamePipe } from "../singleAnnotationUnit/singleAnnotationUnit.component" -import { MatExpansionModule } from "@angular/material/expansion" +import { AngularMaterialModule } from "src/sharedModules" class MockModularUserAnnotationToolService { hiddenAnnotations$ = of([]) @@ -42,13 +37,8 @@ describe("annotationList.component.ts", () => { CommonModule, FileInputModule, NoopAnimationsModule, - MatDialogModule, - MatSnackBarModule, + AngularMaterialModule, StateModule, // needed for iavStateAggregator directive - MatTooltipModule, - MatButtonModule, - MatCardModule, - MatExpansionModule, ZipFilesOutputModule, ], providers: [ diff --git a/src/atlasComponents/userAnnotations/annotationList/annotationList.component.ts b/src/atlasComponents/userAnnotations/annotationList/annotationList.component.ts index 7463f9a10..d1d413534 100644 --- a/src/atlasComponents/userAnnotations/annotationList/annotationList.component.ts +++ b/src/atlasComponents/userAnnotations/annotationList/annotationList.component.ts @@ -8,10 +8,10 @@ import { combineLatest, concat, Observable, of, Subscription } from "rxjs"; import { TZipFileConfig } from "src/zipFilesOutput/type"; import { TFileInputEvent } from "src/getFileInput/type"; import { FileInputDirective } from "src/getFileInput/getFileInput.directive"; -import { MatSnackBar } from "@angular/material/snack-bar"; +import { MatSnackBar } from 'src/sharedModules/angularMaterial.exports' import { unzip } from "src/zipFilesOutput/zipFilesOutput.directive"; import { DialogService } from "src/services/dialogService.service"; -import { MatDialog } from "@angular/material/dialog"; +import { MatDialog } from "src/sharedModules/angularMaterial.exports"; import { userAnnotationRouteKey } from "../constants"; const README = `{id}.sands.json file contains the data of annotations. {id}.desc.json contains the metadata of annotations.` diff --git a/src/atlasComponents/userAnnotations/annotationMode/annotationMode.component.ts b/src/atlasComponents/userAnnotations/annotationMode/annotationMode.component.ts index accf24d9e..af6452081 100644 --- a/src/atlasComponents/userAnnotations/annotationMode/annotationMode.component.ts +++ b/src/atlasComponents/userAnnotations/annotationMode/annotationMode.component.ts @@ -4,7 +4,7 @@ import { ARIA_LABELS } from 'common/constants' import { ClickInterceptor, CLICK_INTERCEPTOR_INJECTOR, CONTEXT_MENU_ITEM_INJECTOR, TContextMenu } from "src/util"; import { TContextArg } from "src/viewerModule/viewer.interface"; import { TContextMenuReg } from "src/contextMenuModule"; -import { MatSnackBar } from "@angular/material/snack-bar"; +import { MatSnackBar } from 'src/sharedModules/angularMaterial.exports' @Component({ selector: 'annotating-tools-panel', diff --git a/src/atlasComponents/userAnnotations/singleAnnotationUnit/singleAnnotationUnit.component.ts b/src/atlasComponents/userAnnotations/singleAnnotationUnit/singleAnnotationUnit.component.ts index 098951095..a558eb2ec 100644 --- a/src/atlasComponents/userAnnotations/singleAnnotationUnit/singleAnnotationUnit.component.ts +++ b/src/atlasComponents/userAnnotations/singleAnnotationUnit/singleAnnotationUnit.component.ts @@ -6,7 +6,7 @@ import { UntypedFormControl, UntypedFormGroup } from "@angular/forms"; import { Subscription } from "rxjs"; import { select, Store } from "@ngrx/store"; import { ModularUserAnnotationToolService } from "../tools/service"; -import { MatSnackBar } from "@angular/material/snack-bar"; +import { MatSnackBar } from 'src/sharedModules/angularMaterial.exports' import { Line } from "../tools/line"; import { atlasSelection } from "src/state"; import { map } from "rxjs/operators"; diff --git a/src/atlasComponents/userAnnotations/tools/line/line.component.ts b/src/atlasComponents/userAnnotations/tools/line/line.component.ts index a98e126c6..daa483c2e 100644 --- a/src/atlasComponents/userAnnotations/tools/line/line.component.ts +++ b/src/atlasComponents/userAnnotations/tools/line/line.component.ts @@ -1,5 +1,5 @@ import { Component, ElementRef, Inject, Input, OnDestroy, Optional, ViewChild } from "@angular/core"; -import { MatSnackBar } from "@angular/material/snack-bar"; +import { MatSnackBar } from 'src/sharedModules/angularMaterial.exports' import { Store } from "@ngrx/store"; import { Line, LINE_ICON_CLASS } from "../line"; import { ToolCmpBase } from "../toolCmp.base"; diff --git a/src/atlasComponents/userAnnotations/tools/line/line.template.html b/src/atlasComponents/userAnnotations/tools/line/line.template.html index 2cff6f5fe..520d82240 100644 --- a/src/atlasComponents/userAnnotations/tools/line/line.template.html +++ b/src/atlasComponents/userAnnotations/tools/line/line.template.html @@ -4,13 +4,13 @@ Endpoints </span> -<mat-chip-list> +<mat-chip-set> <mat-chip *ngFor="let point of (updateAnnotation?.points || []) ; let i = index" (click)="gotoRoi(point)" [matTooltip]="point.toString()"> {{ i }} </mat-chip> -</mat-chip-list> +</mat-chip-set> <mat-divider class="m-2 d-block position-relative"></mat-divider> diff --git a/src/atlasComponents/userAnnotations/tools/point/point.template.html b/src/atlasComponents/userAnnotations/tools/point/point.template.html index 90f1b5807..8db95a9dd 100644 --- a/src/atlasComponents/userAnnotations/tools/point/point.template.html +++ b/src/atlasComponents/userAnnotations/tools/point/point.template.html @@ -4,12 +4,12 @@ Point </span> -<mat-chip-list> +<mat-chip-set> <mat-chip [matTooltip]="updateAnnotation.toString()" (click)="gotoRoi()"> 0 </mat-chip> -</mat-chip-list> +</mat-chip-set> <mat-divider class="m-2 d-block position-relative"></mat-divider> diff --git a/src/atlasComponents/userAnnotations/tools/poly/poly.component.ts b/src/atlasComponents/userAnnotations/tools/poly/poly.component.ts index 6e8852d88..be948fce7 100644 --- a/src/atlasComponents/userAnnotations/tools/poly/poly.component.ts +++ b/src/atlasComponents/userAnnotations/tools/poly/poly.component.ts @@ -1,5 +1,5 @@ import { Component, ElementRef, Inject, Input, OnDestroy, Optional, ViewChild } from "@angular/core"; -import { MatSnackBar } from "@angular/material/snack-bar"; +import { MatSnackBar } from 'src/sharedModules/angularMaterial.exports' import { Polygon, POLY_ICON_CLASS } from "../poly"; import { ToolCmpBase } from "../toolCmp.base"; import { IAnnotationGeometry, TExportFormats, UDPATE_ANNOTATION_TOKEN } from "../type"; diff --git a/src/atlasComponents/userAnnotations/tools/poly/poly.template.html b/src/atlasComponents/userAnnotations/tools/poly/poly.template.html index fa966e0aa..fbc231035 100644 --- a/src/atlasComponents/userAnnotations/tools/poly/poly.template.html +++ b/src/atlasComponents/userAnnotations/tools/poly/poly.template.html @@ -4,13 +4,13 @@ Vertices </span> -<mat-chip-list class="wrapped-chips"> +<mat-chip-set class="wrapped-chips"> <mat-chip *ngFor="let point of (updateAnnotation?.points || []); let i = index" (click)="gotoRoi(point)" [matTooltip]="point.toString()"> {{ i }} </mat-chip> -</mat-chip-list> +</mat-chip-set> <mat-divider class="m-2 d-block position-relative"></mat-divider> diff --git a/src/atlasComponents/userAnnotations/tools/service.spec.ts b/src/atlasComponents/userAnnotations/tools/service.spec.ts index fdeacfde8..8dd8de55a 100644 --- a/src/atlasComponents/userAnnotations/tools/service.spec.ts +++ b/src/atlasComponents/userAnnotations/tools/service.spec.ts @@ -2,10 +2,10 @@ import { TestBed } from "@angular/core/testing" import { ModularUserAnnotationToolService } from "./service" import { MockStore, provideMockStore } from "@ngrx/store/testing" import { NoopAnimationsModule } from "@angular/platform-browser/animations" -import { MatSnackBarModule } from "@angular/material/snack-bar" import { ANNOTATION_EVENT_INJ_TOKEN, INJ_ANNOT_TARGET } from "./type" import { NEVER, Subject } from "rxjs" import { atlasSelection } from "src/state" +import { AngularMaterialModule } from "src/sharedModules" describe("userAnnotations/service.ts", () => { @@ -15,7 +15,7 @@ describe("userAnnotations/service.ts", () => { TestBed.configureTestingModule({ imports: [ NoopAnimationsModule, - MatSnackBarModule, + AngularMaterialModule, ], providers: [ provideMockStore(), diff --git a/src/atlasComponents/userAnnotations/tools/service.ts b/src/atlasComponents/userAnnotations/tools/service.ts index a7338ee12..a80e18c17 100644 --- a/src/atlasComponents/userAnnotations/tools/service.ts +++ b/src/atlasComponents/userAnnotations/tools/service.ts @@ -12,7 +12,7 @@ import { Polygon } from "./poly"; import { Line } from "./line"; import { Point } from "./point"; import { FilterAnnotationsBySpace } from "../filterAnnotationBySpace.pipe"; -import { MatSnackBar } from "@angular/material/snack-bar"; +import { MatSnackBar } from 'src/sharedModules/angularMaterial.exports' import { actions } from "src/state/atlasSelection"; import { atlasSelection } from "src/state"; import { SxplrTemplate } from "src/atlasComponents/sapi/sxplrTypes"; diff --git a/src/atlasComponents/userAnnotations/tools/textareaCopyExport/textareaCopyExport.component.ts b/src/atlasComponents/userAnnotations/tools/textareaCopyExport/textareaCopyExport.component.ts index a3be425df..f749e39b4 100644 --- a/src/atlasComponents/userAnnotations/tools/textareaCopyExport/textareaCopyExport.component.ts +++ b/src/atlasComponents/userAnnotations/tools/textareaCopyExport/textareaCopyExport.component.ts @@ -1,5 +1,5 @@ import { Component, Input } from "@angular/core"; -import { MatSnackBar } from "@angular/material/snack-bar"; +import { MatSnackBar } from 'src/sharedModules/angularMaterial.exports' import { ARIA_LABELS } from 'common/constants' import { Clipboard } from "@angular/cdk/clipboard"; diff --git a/src/atlasViewer/atlasViewer.component.ts b/src/atlasViewer/atlasViewer.component.ts index 1fc4e3a60..5c1f800ec 100644 --- a/src/atlasViewer/atlasViewer.component.ts +++ b/src/atlasViewer/atlasViewer.component.ts @@ -16,8 +16,8 @@ import { filter, delay, switchMapTo, take, startWith } from "rxjs/operators"; import { colorAnimation } from "./atlasViewer.animation" import { MouseHoverDirective } from "src/mouseoverModule"; -import { MatSnackBar } from "@angular/material/snack-bar"; -import { MatDialog, MatDialogRef } from "@angular/material/dialog"; +import { MatSnackBar } from 'src/sharedModules/angularMaterial.exports' +import { MatDialog, MatDialogRef } from "src/sharedModules/angularMaterial.exports"; import { CONST } from 'common/constants' import { SlServiceService } from "src/spotlight/sl-service.service"; diff --git a/src/components/confirmDialog/confirmDialog.component.spec.ts b/src/components/confirmDialog/confirmDialog.component.spec.ts index 258970c99..d615beece 100644 --- a/src/components/confirmDialog/confirmDialog.component.spec.ts +++ b/src/components/confirmDialog/confirmDialog.component.spec.ts @@ -1,6 +1,6 @@ import { CommonModule } from "@angular/common" import { TestBed, async } from "@angular/core/testing" -import { MAT_DIALOG_DATA } from "@angular/material/dialog" +import { MAT_DIALOG_DATA } from "src/sharedModules/angularMaterial.exports" import { AngularMaterialModule } from "src/sharedModules" import { ComponentsModule } from "../components.module" import { ConfirmDialogComponent } from "./confirmDialog.component" diff --git a/src/components/confirmDialog/confirmDialog.component.ts b/src/components/confirmDialog/confirmDialog.component.ts index 8361ee409..84e6bb358 100644 --- a/src/components/confirmDialog/confirmDialog.component.ts +++ b/src/components/confirmDialog/confirmDialog.component.ts @@ -1,5 +1,5 @@ import { Component, Inject, Input } from "@angular/core"; -import { MAT_DIALOG_DATA } from "@angular/material/dialog"; +import { MAT_DIALOG_DATA } from "src/sharedModules/angularMaterial.exports"; @Component({ selector: 'confirm-dialog-component', diff --git a/src/components/dialog/dialog.component.ts b/src/components/dialog/dialog.component.ts index 969cbc135..491018485 100644 --- a/src/components/dialog/dialog.component.ts +++ b/src/components/dialog/dialog.component.ts @@ -1,7 +1,7 @@ import { ChangeDetectionStrategy, Component, ElementRef, Inject, Input, OnDestroy, OnInit, ViewChild } from "@angular/core"; import { fromEvent, Observable, Subscription } from "rxjs"; import { filter, share } from "rxjs/operators"; -import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material/dialog"; +import {MAT_DIALOG_DATA, MatDialogRef} from "src/sharedModules/angularMaterial.exports"; @Component({ selector: 'dialog-component', diff --git a/src/components/flatHierarchy/treeView/treeView.component.ts b/src/components/flatHierarchy/treeView/treeView.component.ts index 211d8f629..e38281e44 100644 --- a/src/components/flatHierarchy/treeView/treeView.component.ts +++ b/src/components/flatHierarchy/treeView/treeView.component.ts @@ -1,5 +1,5 @@ import { FlatTreeControl } from "@angular/cdk/tree"; -import { MatTreeFlatDataSource, MatTreeFlattener } from "@angular/material/tree" +import { MatTreeFlatDataSource, MatTreeFlattener } from 'src/sharedModules/angularMaterial.exports' import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, OnChanges, Output, SimpleChanges, TemplateRef } from "@angular/core"; import { TreeNode } from "../const" import { Tree } from "./treeControl" diff --git a/src/components/smartChip/module.ts b/src/components/smartChip/module.ts index 58c8a2930..2fcd5064d 100644 --- a/src/components/smartChip/module.ts +++ b/src/components/smartChip/module.ts @@ -1,7 +1,5 @@ import { CommonModule } from "@angular/common"; import { NgModule } from "@angular/core"; -import { MatRippleModule } from "@angular/material/core"; -import { MatMenuModule } from "@angular/material/menu"; import { BrowserAnimationsModule } from "@angular/platform-browser/animations"; import { SmartChip } from "./component/smartChip.component"; import { HasSubMenuPipe } from "./hasSubmenu.pipe"; @@ -10,14 +8,14 @@ import { SmartChipHeader } from "./smartChip.header.directive"; import { SmartChipMenu } from "./smartChip.menu.directive"; import { ExperimentalModule } from "src/experimental/experimental.module"; import { SmartChipAction } from "./smartChip.action.directive"; +import { AngularMaterialModule } from "src/sharedModules"; @NgModule({ imports: [ CommonModule, - MatMenuModule, BrowserAnimationsModule, - MatRippleModule, ExperimentalModule, + AngularMaterialModule, ], declarations: [ SmartChipMenu, diff --git a/src/components/smartChip/smartChip.stories.ts b/src/components/smartChip/smartChip.stories.ts index 791c9372e..d49cedfda 100644 --- a/src/components/smartChip/smartChip.stories.ts +++ b/src/components/smartChip/smartChip.stories.ts @@ -1,10 +1,9 @@ import { CommonModule } from "@angular/common"; import { Component, Pipe, PipeTransform } from "@angular/core"; -import { MatDividerModule } from "@angular/material/divider"; -import { MatExpansionModule } from "@angular/material/expansion"; import { Meta, moduleMetadata, Story } from "@storybook/angular"; import { provideDarkTheme } from "src/atlasComponents/sapi/stories.base"; import { SmartChipModule } from "./module"; +import { AngularMaterialModule } from "src/sharedModules"; const complex1 = ` @@ -123,8 +122,7 @@ export default { imports: [ CommonModule, SmartChipModule, - MatExpansionModule, - MatDividerModule, + AngularMaterialModule, ], declarations: [ ShowHtmlCode, diff --git a/src/dragDropFile/dragDrop.directive.ts b/src/dragDropFile/dragDrop.directive.ts index abca56ad2..5a4dcd1ed 100644 --- a/src/dragDropFile/dragDrop.directive.ts +++ b/src/dragDropFile/dragDrop.directive.ts @@ -1,7 +1,7 @@ import { ChangeDetectorRef, Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, OnDestroy, Output } from "@angular/core"; import { fromEvent, merge, Observable, of, Subscription } from "rxjs"; import { debounceTime, distinctUntilChanged, map, scan, switchMap } from "rxjs/operators"; -import { MatSnackBar, MatSnackBarRef, SimpleSnackBar } from "@angular/material/snack-bar"; +import { MatSnackBar, MatSnackBarRef, SimpleSnackBar } from "src/sharedModules/angularMaterial.exports" @Directive({ selector: '[drag-drop-file]', diff --git a/src/extra_styles.css b/src/extra_styles.css index bc64f55d7..41762c096 100644 --- a/src/extra_styles.css +++ b/src/extra_styles.css @@ -827,12 +827,12 @@ body::after text-overflow: ellipsis; } -iav-cmp-viewer-container .mat-chip-list-wrapper +iav-cmp-viewer-container .mat-chip-set-wrapper { flex-wrap: nowrap; } -.wrapped-chips .mat-chip-list-wrapper +.wrapped-chips .mat-chip-set-wrapper { flex-wrap: wrap; } diff --git a/src/features/connectivity/module.ts b/src/features/connectivity/module.ts index 221ad467e..7ae3e1ae4 100644 --- a/src/features/connectivity/module.ts +++ b/src/features/connectivity/module.ts @@ -4,28 +4,17 @@ import { SAPI } from "src/atlasComponents/sapi"; import { ConnectivityBrowserComponent } from "./connectivityBrowser/connectivityBrowser.component"; import { ReactiveFormsModule } from "@angular/forms"; import { DialogModule } from "src/ui/dialogInfo"; -import { MatSelectModule } from "@angular/material/select"; -import { MatRadioModule } from "@angular/material/radio"; -import { MatSliderModule } from "@angular/material/slider"; -import { MatMenuModule } from "@angular/material/menu"; import { UtilModule } from "src/util"; -import { MatCheckboxModule } from "@angular/material/checkbox"; -import { MatButtonModule } from "@angular/material/button"; -import { MatProgressSpinnerModule } from "@angular/material/progress-spinner"; +import { AngularMaterialModule } from "src/sharedModules"; + @NgModule({ imports: [ CommonModule, ReactiveFormsModule, - MatSelectModule, - MatRadioModule, - MatSliderModule, - MatMenuModule, + AngularMaterialModule, DialogModule, UtilModule, - MatCheckboxModule, - MatButtonModule, - MatProgressSpinnerModule, ], declarations: [ ConnectivityBrowserComponent, diff --git a/src/features/entry/entry.component.ts b/src/features/entry/entry.component.ts index f3c1b9d1e..468aded9d 100644 --- a/src/features/entry/entry.component.ts +++ b/src/features/entry/entry.component.ts @@ -11,7 +11,7 @@ import { combineLatest, concat, forkJoin, merge, of, Subject, Subscription } fro import { DsExhausted, IsAlreadyPulling, PulledDataSource } from 'src/util/pullable'; import { TranslatedFeature } from '../list/list.directive'; import { SPECIES_ENUM } from 'src/util/constants'; -import { MatDialog } from '@angular/material/dialog'; +import { MatDialog } from 'src/sharedModules/angularMaterial.exports'; const categoryAcc = <T extends Record<string, unknown>>(categories: T[]) => { const returnVal: Record<string, T[]> = {} diff --git a/src/features/module.ts b/src/features/module.ts index 3ccdbbd56..9b7b5c9ec 100644 --- a/src/features/module.ts +++ b/src/features/module.ts @@ -1,10 +1,5 @@ import { CommonModule } from "@angular/common"; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from "@angular/core"; -import { MatCardModule } from "@angular/material/card"; -import { MatRippleModule } from "@angular/material/core"; -import { MatExpansionModule } from "@angular/material/expansion"; -import { MatListModule } from "@angular/material/list"; -import { MatTooltipModule } from "@angular/material/tooltip"; import { SpinnerModule } from "src/components/spinner"; import { UtilModule } from "src/util"; import { EntryComponent } from './entry/entry.component' @@ -12,49 +7,32 @@ import { FeatureNamePipe } from "./featureName.pipe"; import { CategoryAccDirective } from './category-acc.directive'; import { SapiViewsFeatureConnectivityModule } from "./connectivity"; import { ScrollingModule } from "@angular/cdk/scrolling"; -import { MatButtonModule } from "@angular/material/button" -import { MatIconModule } from "@angular/material/icon"; -import { MatDividerModule } from "@angular/material/divider"; import { MarkdownModule } from "src/components/markdown"; -import { MatTableModule } from "@angular/material/table"; import { FeatureViewComponent } from "./feature-view/feature-view.component"; import { NgLayerCtlModule } from "src/viewerModule/nehuba/ngLayerCtlModule/module"; import { VoiBboxDirective } from "./voi-bbox.directive"; import { FilterCategoriesPipe } from "./filterCategories.pipe"; import { ListDirective } from "./list/list.directive"; -import { MatChipsModule } from "@angular/material/chips"; import { FeatureFilterDirective } from "./feature.filter.directive"; import { GroupFeaturesToName } from "./grpFeatToName.pipe"; import { ExperimentalModule } from "src/experimental/experimental.module"; -import { MatTabsModule } from "@angular/material/tabs"; import { ReadmoreModule } from "src/components/readmore"; -import { MatDialogModule } from "@angular/material/dialog"; import { GroupFeatureTallyPipe } from "./grpFeatToTotal.pipe"; import { PlotlyComponent } from "./plotly"; +import { AngularMaterialModule } from "src/sharedModules"; @NgModule({ imports: [ CommonModule, - MatCardModule, - MatExpansionModule, SpinnerModule, - MatListModule, - MatTooltipModule, UtilModule, - MatRippleModule, SapiViewsFeatureConnectivityModule, ScrollingModule, - MatButtonModule, - MatIconModule, - MatDividerModule, MarkdownModule, - MatTableModule, NgLayerCtlModule, - MatChipsModule, ExperimentalModule, - MatTabsModule, ReadmoreModule, - MatDialogModule, + AngularMaterialModule, /** * standalone components diff --git a/src/getFileInput/fileInputModal/fileInputModal.component.ts b/src/getFileInput/fileInputModal/fileInputModal.component.ts index 40bfa6d8f..00b8c1cf9 100644 --- a/src/getFileInput/fileInputModal/fileInputModal.component.ts +++ b/src/getFileInput/fileInputModal/fileInputModal.component.ts @@ -1,5 +1,5 @@ import { Component, ElementRef, EventEmitter, Inject, Input, Optional, TemplateRef, ViewChild } from "@angular/core"; -import { MAT_DIALOG_DATA } from "@angular/material/dialog"; +import { MAT_DIALOG_DATA } from "src/sharedModules/angularMaterial.exports"; import { IFileInputConfig, TFileInputEvent } from "../type"; const FILEINPUT_DEFAULT_LABEL = 'File input' diff --git a/src/getFileInput/getFileInput.directive.ts b/src/getFileInput/getFileInput.directive.ts index d1158cdac..66ee9af69 100644 --- a/src/getFileInput/getFileInput.directive.ts +++ b/src/getFileInput/getFileInput.directive.ts @@ -1,5 +1,5 @@ import { Directive, EventEmitter, HostListener, Input, Output, TemplateRef } from "@angular/core"; -import { MatDialog, MatDialogRef } from "@angular/material/dialog"; +import { MatDialog, MatDialogRef } from "src/sharedModules/angularMaterial.exports"; import { FileInputModal } from "./fileInputModal/fileInputModal.component"; import { IFileInputConfig, TFileInputEvent } from "./type"; diff --git a/src/getFileInput/module.ts b/src/getFileInput/module.ts index 77610abdb..719920c96 100644 --- a/src/getFileInput/module.ts +++ b/src/getFileInput/module.ts @@ -1,21 +1,17 @@ import { CommonModule } from "@angular/common"; import { NgModule } from "@angular/core"; import { FileInputDirective } from "./getFileInput.directive"; -import { MatDialogModule } from '@angular/material/dialog'; import { FileInputModal } from "./fileInputModal/fileInputModal.component"; import { FormsModule } from "@angular/forms"; -import { MatInputModule } from '@angular/material/input'; -import { MatButtonModule } from '@angular/material/button'; import { DragDropFileModule } from "src/dragDropFile/module"; +import { AngularMaterialModule } from "src/sharedModules"; @NgModule({ imports: [ CommonModule, - MatDialogModule, FormsModule, - MatInputModule, - MatButtonModule, DragDropFileModule, + AngularMaterialModule, ], declarations: [ FileInputDirective, diff --git a/src/keyframesModule/keyframeCtrl/keyframeCtrl.component.ts b/src/keyframesModule/keyframeCtrl/keyframeCtrl.component.ts index 1b39b366a..986db4e19 100644 --- a/src/keyframesModule/keyframeCtrl/keyframeCtrl.component.ts +++ b/src/keyframesModule/keyframeCtrl/keyframeCtrl.component.ts @@ -1,10 +1,10 @@ import { CdkDragDrop, moveItemInArray } from "@angular/cdk/drag-drop"; import { Component, OnDestroy, Optional } from "@angular/core"; -import { MatSnackBar } from "@angular/material/snack-bar"; import { Subscription } from "rxjs"; import { getUuid } from "src/util/fn"; import { timedValues } from "src/util/generator"; import { AUTO_ROTATE, TAutoRotatePayload, ViewerInternalStateSvc } from "src/viewerModule/viewerInternalState.service"; +import { MatSnackBar } from 'src/sharedModules/angularMaterial.exports' type TStoredState = { name: string diff --git a/src/main.module.ts b/src/main.module.ts index dca320a00..9f3bad9e6 100644 --- a/src/main.module.ts +++ b/src/main.module.ts @@ -24,7 +24,6 @@ import { PluginModule } from './plugin/plugin.module'; import { LoggingModule } from './logging/logging.module'; import { AuthService } from './auth' -import 'src/theme.scss' import { ClickInterceptorService } from './glue'; import { TOS_OBS_INJECTION_TOKEN } from './ui/kgtos'; import { MesssagingModule } from './messaging/module'; diff --git a/src/messaging/service.ts b/src/messaging/service.ts index 3abdeb901..18832f3f3 100644 --- a/src/messaging/service.ts +++ b/src/messaging/service.ts @@ -1,6 +1,5 @@ import { Inject, Injectable, Optional } from "@angular/core"; import { Observable } from "rxjs"; -import { MatDialog } from "@angular/material/dialog"; import { getUuid, noop } from "src/util/fn"; import { ConfirmDialogComponent } from "src/components/confirmDialog/confirmDialog.component"; @@ -10,6 +9,7 @@ import { TYPE as NATIVE_TYPE, processJsonLd as nativeProcess } from './native' import { BoothVisitor, JRPCRequest, ListenerChannel } from "src/api/jsonrpc" import { ApiService } from "src/api"; import { ApiBoothEvents, namespace as apiNameSpace } from "src/api/service"; +import { MatDialog } from 'src/sharedModules/angularMaterial.exports' export const IAV_POSTMESSAGE_NAMESPACE = `ebrains:iav:` diff --git a/src/plugin/pluginBanner/pluginBanner.component.ts b/src/plugin/pluginBanner/pluginBanner.component.ts index ee763c409..34f5ad7aa 100644 --- a/src/plugin/pluginBanner/pluginBanner.component.ts +++ b/src/plugin/pluginBanner/pluginBanner.component.ts @@ -1,11 +1,11 @@ import { Component, TemplateRef } from "@angular/core"; -import { MatDialog } from "@angular/material/dialog"; import { PluginService } from "../service"; import { PluginManifest } from "../types"; import { combineLatest, Observable, Subject } from "rxjs"; import { map, scan, startWith } from "rxjs/operators"; import { select, Store } from "@ngrx/store"; import { userPreference } from "src/state"; +import { MatDialog } from 'src/sharedModules/angularMaterial.exports' @Component({ selector : 'plugin-banner', diff --git a/src/screenshot/screenshotCmp/screenshot.component.ts b/src/screenshot/screenshotCmp/screenshot.component.ts index 2ccb1da45..30dc70977 100644 --- a/src/screenshot/screenshotCmp/screenshot.component.ts +++ b/src/screenshot/screenshotCmp/screenshot.component.ts @@ -1,6 +1,5 @@ import { Component, HostListener, Inject, OnDestroy, Output, EventEmitter, Optional, ViewChild, TemplateRef } from "@angular/core"; -import { MatDialog } from "@angular/material/dialog"; -import { MatSnackBar } from "@angular/material/snack-bar"; +import { MatDialog, MatSnackBar } from 'src/sharedModules/angularMaterial.exports' import { combineLatest, Observable, Subject, Subscription } from "rxjs"; import { distinctUntilChanged, map, mapTo, shareReplay, startWith, switchMap, switchMapTo } from "rxjs/operators"; import { HANDLE_SCREENSHOT_PROMISE, TypeHandleScrnShotPromise } from "../util"; diff --git a/src/services/dialogService.service.ts b/src/services/dialogService.service.ts index 933b86227..583478087 100644 --- a/src/services/dialogService.service.ts +++ b/src/services/dialogService.service.ts @@ -1,7 +1,7 @@ import { Injectable } from "@angular/core"; import { ConfirmDialogComponent } from "src/components/confirmDialog/confirmDialog.component"; import { DialogComponent } from "src/components/dialog/dialog.component"; -import {MatDialog, MatDialogRef} from "@angular/material/dialog"; +import { MatDialog, MatDialogRef } from 'src/sharedModules/angularMaterial.exports' type TCancellable = { abort: () => void diff --git a/src/services/uiService.service.ts b/src/services/uiService.service.ts index 2e6a58041..eafaf3e3d 100644 --- a/src/services/uiService.service.ts +++ b/src/services/uiService.service.ts @@ -1,7 +1,11 @@ import { Injectable } from "@angular/core"; -import {MatSnackBar, MatSnackBarConfig} from "@angular/material/snack-bar"; -import { MatDialog, MatDialogConfig } from "@angular/material/dialog"; import { ActionDialog } from "src/ui/actionDialog/actionDialog.component"; +import { + MatSnackBar, + MatSnackBarConfig, + MatDialog, + MatDialogConfig + } from 'src/sharedModules/angularMaterial.exports' @Injectable({ providedIn: 'root', diff --git a/src/share/clipboardCopy.directive.ts b/src/share/clipboardCopy.directive.ts index a02cbdd22..0a22fc6aa 100644 --- a/src/share/clipboardCopy.directive.ts +++ b/src/share/clipboardCopy.directive.ts @@ -1,6 +1,5 @@ import { Directive, HostListener, Input } from "@angular/core"; -import { MatSnackBar } from "@angular/material/snack-bar"; -import { Clipboard } from '@angular/cdk/clipboard' +import { Clipboard, MatSnackBar } from 'src/sharedModules/angularMaterial.exports' @Directive({ selector: '[iav-clipboard-copy]', diff --git a/src/share/saneUrl/saneUrl.component.ts b/src/share/saneUrl/saneUrl.component.ts index 0ce99cce3..c3984a8fa 100644 --- a/src/share/saneUrl/saneUrl.component.ts +++ b/src/share/saneUrl/saneUrl.component.ts @@ -1,10 +1,7 @@ import { Component, OnDestroy, Input } from "@angular/core"; import { Observable, merge, of, Subscription, BehaviorSubject, combineLatest } from "rxjs"; import { startWith, mapTo, map, debounceTime, switchMap, catchError, shareReplay, filter, tap, distinctUntilChanged } from "rxjs/operators"; -import { UntypedFormControl } from "@angular/forms"; -import { ErrorStateMatcher } from "@angular/material/core"; -import { Clipboard } from "@angular/cdk/clipboard"; -import { MatSnackBar } from "@angular/material/snack-bar"; +import { Clipboard, ErrorStateMatcher, MatSnackBar, UntypedFormControl } from 'src/sharedModules/angularMaterial.exports' import { SaneUrlSvc } from "./saneUrl.service"; import { NotFoundError } from "../type"; diff --git a/src/share/share.directive.ts b/src/share/share.directive.ts index e3200cba6..f6ac96c74 100644 --- a/src/share/share.directive.ts +++ b/src/share/share.directive.ts @@ -1,5 +1,5 @@ import { Directive, HostListener } from "@angular/core"; -import { MatBottomSheet } from "@angular/material/bottom-sheet"; +import { MatBottomSheet } from 'src/sharedModules/angularMaterial.exports' import { ShareSheetComponent } from "./shareSheet/shareSheet.component" diff --git a/src/share/shareSheet/shareSheet.component.ts b/src/share/shareSheet/shareSheet.component.ts index 664ffd89c..028e5510e 100644 --- a/src/share/shareSheet/shareSheet.component.ts +++ b/src/share/shareSheet/shareSheet.component.ts @@ -1,5 +1,5 @@ import { Component, TemplateRef } from "@angular/core"; -import { MatDialog } from "@angular/material/dialog"; +import { MatDialog } from 'src/sharedModules/angularMaterial.exports' import { ARIA_LABELS } from 'common/constants' @Component({ diff --git a/src/sharedModules/angularMaterial.exports.ts b/src/sharedModules/angularMaterial.exports.ts new file mode 100644 index 000000000..bfff6a835 --- /dev/null +++ b/src/sharedModules/angularMaterial.exports.ts @@ -0,0 +1,14 @@ +export { ErrorStateMatcher } from "@angular/material/core"; +export { MatDialogConfig, MatDialog, MatDialogRef } from "@angular/material/dialog"; +export { MatSnackBar, MatSnackBarRef, SimpleSnackBar, MatSnackBarConfig } from "@angular/material/snack-bar"; +export { MAT_DIALOG_DATA } from "@angular/material/dialog"; +export { MatBottomSheet, MatBottomSheetRef, MatBottomSheetConfig } from "@angular/material/bottom-sheet"; +export { MatSlideToggle, MatSlideToggleChange } from "@angular/material/slide-toggle" +export { MatTableDataSource } from "@angular/material/table" +export { MatSort } from '@angular/material/sort'; +export { Clipboard } from "@angular/cdk/clipboard"; +export { UntypedFormControl } from "@angular/forms"; +export { MatTreeFlatDataSource, MatTreeFlattener } from "@angular/material/tree" +export { MatAutocompleteSelectedEvent } from "@angular/material/autocomplete"; + +export { MatSlideToggleHarness } from '@angular/material/slide-toggle/testing' \ No newline at end of file diff --git a/src/sharedModules/angularMaterial.module.ts b/src/sharedModules/angularMaterial.module.ts index 914f3f852..a1e459e36 100644 --- a/src/sharedModules/angularMaterial.module.ts +++ b/src/sharedModules/angularMaterial.module.ts @@ -1,75 +1,43 @@ -import {MAT_DIALOG_DEFAULT_OPTIONS, MatDialogConfig, MatDialogModule} from "@angular/material/dialog"; -import {MatButtonModule} from "@angular/material/button"; -import {MatSnackBarModule} from "@angular/material/snack-bar"; -import {MatCardModule} from "@angular/material/card"; -import {MatCheckboxModule} from "@angular/material/checkbox"; -import {MatTabsModule} from "@angular/material/tabs"; -import {MatSidenavModule} from "@angular/material/sidenav"; -import {NgModule} from "@angular/core"; -import {MatTooltipModule} from "@angular/material/tooltip"; -import {MatBadgeModule} from "@angular/material/badge"; -import {MatDividerModule} from "@angular/material/divider"; -import {MatSelectModule} from "@angular/material/select"; -import {MatChipsModule} from "@angular/material/chips"; -import {MatAutocompleteModule} from "@angular/material/autocomplete"; +import { MAT_DIALOG_DEFAULT_OPTIONS, MatDialogConfig, MatDialogModule } from "@angular/material/dialog"; +import { MatButtonModule } from "@angular/material/button"; +import { MatSnackBarModule } from "@angular/material/snack-bar"; +import { MatCardModule } from "@angular/material/card"; +import { MatCheckboxModule } from "@angular/material/checkbox"; +import { MatTabsModule } from "@angular/material/tabs"; +import { MatSidenavModule } from "@angular/material/sidenav"; +import { NgModule} from "@angular/core"; +import { MatTooltipModule } from "@angular/material/tooltip"; +import { MatBadgeModule } from "@angular/material/badge"; +import { MatDividerModule } from "@angular/material/divider"; +import { MatSelectModule } from "@angular/material/select"; +import { MatChipsModule } from "@angular/material/chips"; +import { MatAutocompleteModule } from "@angular/material/autocomplete"; import { ScrollingModule } from '@angular/cdk/scrolling' -import {MatInputModule} from "@angular/material/input"; -import {MatSlideToggleModule} from "@angular/material/slide-toggle"; -import {MatListModule} from "@angular/material/list"; -import {MatBottomSheetModule} from "@angular/material/bottom-sheet"; -import {MatRippleModule} from "@angular/material/core"; -import {MatSliderModule} from "@angular/material/slider"; -import {DragDropModule} from "@angular/cdk/drag-drop"; -import {MatGridListModule} from "@angular/material/grid-list"; -import {MatIconModule} from "@angular/material/icon"; -import {MatExpansionModule} from "@angular/material/expansion"; -import {MatMenuModule} from "@angular/material/menu"; +import { MatInputModule } from "@angular/material/input"; +import { MatSlideToggleModule } from "@angular/material/slide-toggle"; +import { MatListModule } from "@angular/material/list"; +import { MatBottomSheetModule } from "@angular/material/bottom-sheet"; +import { MatRippleModule } from "@angular/material/core"; +import { MatSliderModule } from "@angular/material/slider"; +import { DragDropModule } from "@angular/cdk/drag-drop"; +import { MatGridListModule } from "@angular/material/grid-list"; +import { MatIconModule } from "@angular/material/icon"; +import { MatExpansionModule } from "@angular/material/expansion"; +import { MatMenuModule } from "@angular/material/menu"; import { MatToolbarModule } from '@angular/material/toolbar' import { ClipboardModule } from '@angular/cdk/clipboard' import { BrowserAnimationsModule } from "@angular/platform-browser/animations"; -import {MatProgressBarModule} from "@angular/material/progress-bar"; -import {MatProgressSpinnerModule} from "@angular/material/progress-spinner"; -import {MatRadioModule} from "@angular/material/radio"; +import { MatProgressBarModule } from "@angular/material/progress-bar"; +import { MatProgressSpinnerModule } from "@angular/material/progress-spinner"; +import { MatRadioModule } from "@angular/material/radio"; +import { MatTableModule } from "@angular/material/table"; +import { MatSortModule } from "@angular/material/sort"; const defaultDialogOption: MatDialogConfig = new MatDialogConfig() @NgModule({ - imports: [ - BrowserAnimationsModule, - - MatButtonModule, - MatSnackBarModule, - MatCheckboxModule, - MatSidenavModule, - MatCardModule, - MatTabsModule, - MatTooltipModule, - MatBadgeModule, - MatDividerModule, - MatSelectModule, - MatChipsModule, - MatAutocompleteModule, - MatDialogModule, - MatInputModule, - MatBottomSheetModule, - MatListModule, - MatSlideToggleModule, - MatRippleModule, - MatSliderModule, - DragDropModule, - MatExpansionModule, - MatGridListModule, - MatIconModule, - MatMenuModule, - ScrollingModule, - MatToolbarModule, - ClipboardModule, - MatProgressBarModule, - MatProgressSpinnerModule, - MatRadioModule - ], exports: [ MatButtonModule, MatCheckboxModule, @@ -100,7 +68,9 @@ const defaultDialogOption: MatDialogConfig = new MatDialogConfig() ClipboardModule, MatProgressBarModule, MatProgressSpinnerModule, - MatRadioModule + MatRadioModule, + MatTableModule, + MatSortModule, ], providers: [{ provide: MAT_DIALOG_DEFAULT_OPTIONS, diff --git a/src/state/atlasSelection/effects.spec.ts b/src/state/atlasSelection/effects.spec.ts index 9e4778613..a64b03233 100644 --- a/src/state/atlasSelection/effects.spec.ts +++ b/src/state/atlasSelection/effects.spec.ts @@ -14,7 +14,7 @@ import { atlasSelection } from ".." import { BrowserAnimationsModule } from "@angular/platform-browser/animations" import { translateV3Entities } from "src/atlasComponents/sapi/translateV3" import { PathReturn } from "src/atlasComponents/sapi/typeV3" -import { MatDialog } from "@angular/material/dialog" +import { MatDialog } from 'src/sharedModules/angularMaterial.exports' describe("> effects.ts", () => { describe("> Effect", () => { diff --git a/src/state/atlasSelection/effects.ts b/src/state/atlasSelection/effects.ts index c4920067a..1403ce3c4 100644 --- a/src/state/atlasSelection/effects.ts +++ b/src/state/atlasSelection/effects.ts @@ -13,7 +13,7 @@ import { InterSpaceCoordXformSvc } from "src/atlasComponents/sapi/core/space/int import { SxplrAtlas, SxplrParcellation, SxplrRegion, SxplrTemplate } from "src/atlasComponents/sapi/sxplrTypes"; import { DecisionCollapse } from "src/atlasComponents/sapi/decisionCollapse.service"; import { DialogFallbackCmp } from "src/ui/dialogInfo"; -import { MatDialog } from "@angular/material/dialog"; +import { MatDialog } from 'src/sharedModules/angularMaterial.exports' type OnTmplParcHookArg = { previous: { diff --git a/src/state/userInterface/actions.ts b/src/state/userInterface/actions.ts index e423f261e..5fcd71a40 100644 --- a/src/state/userInterface/actions.ts +++ b/src/state/userInterface/actions.ts @@ -1,6 +1,5 @@ import { TemplateRef } from "@angular/core"; -import { MatBottomSheetConfig } from "@angular/material/bottom-sheet"; -import { MatSnackBarConfig } from "@angular/material/snack-bar"; +import { MatSnackBarConfig, MatBottomSheetConfig } from 'src/sharedModules/angularMaterial.exports' import { createAction, props } from "@ngrx/store"; import { nameSpace, PanelMode } from "./const" diff --git a/src/state/userInterface/effects.ts b/src/state/userInterface/effects.ts index 6b5d98bdd..aa879e727 100644 --- a/src/state/userInterface/effects.ts +++ b/src/state/userInterface/effects.ts @@ -1,6 +1,5 @@ import { Injectable } from "@angular/core"; -import { MatBottomSheet, MatBottomSheetRef } from "@angular/material/bottom-sheet"; -import { MatSnackBar } from "@angular/material/snack-bar"; +import { MatSnackBar, MatBottomSheet, MatBottomSheetRef } from 'src/sharedModules/angularMaterial.exports' import { Actions, createEffect, ofType } from "@ngrx/effects"; import { select, Store } from "@ngrx/store"; import { of } from "rxjs"; diff --git a/src/strictLocal/module.ts b/src/strictLocal/module.ts index 62db4e8d8..d7ffa1de9 100644 --- a/src/strictLocal/module.ts +++ b/src/strictLocal/module.ts @@ -1,7 +1,6 @@ import { CommonModule } from "@angular/common"; import { NgModule } from "@angular/core"; -import { MatButtonModule } from "@angular/material/button"; -import { MatTooltipModule } from "@angular/material/tooltip"; +import { AngularMaterialModule } from 'src/sharedModules/angularMaterial.module' import { HideWhenLocal } from "./strictLocal.directive"; import { StrictLocalInfo } from "./strictLocalCmp/strictLocalCmp.component"; @@ -12,8 +11,7 @@ import { StrictLocalInfo } from "./strictLocalCmp/strictLocalCmp.component"; ], imports: [ CommonModule, - MatTooltipModule, - MatButtonModule, + AngularMaterialModule, ], exports: [ HideWhenLocal, diff --git a/src/theme.scss b/src/theme.scss index 8140e544f..b163b1c26 100644 --- a/src/theme.scss +++ b/src/theme.scss @@ -3,6 +3,46 @@ @include mat.core(); +$sxplr-primary: mat.define-palette(mat.$indigo-palette, 500); +$sxplr-accent: mat.define-palette(mat.$amber-palette, A200, A100, A400); +$sxplr-warn: mat.define-palette(mat.$red-palette); + +// The "warn" palette is optional and defaults to red if not specified. +$sxplr-warn: mat.define-palette(mat.$red-palette); +$sxplr-light-theme: mat.define-light-theme(( + color: ( + primary: $sxplr-primary, + accent: $sxplr-accent, + warn: $sxplr-warn, + ), + typography: mat.define-typography-config(), + density: 0, +)); + +// Define a dark theme +$sxplr-dark-theme: mat.define-dark-theme(( + color: ( + primary: $sxplr-primary, + accent: $sxplr-accent, + warn: $sxplr-warn, + ), + typography: mat.define-typography-config(), + density: 0, +)); + +// Include the theme mixins for other components you use here. +// TODO(v15): As of v15 mat.legacy-core no longer includes default typography styles. +// The following line adds: +// 1. Default typography styles for all components +// 2. Styles for typography hierarchy classes (e.g. .mat-headline-1) +// If you specify typography styles for the components you use elsewhere, you should delete this line. +// If you don't need the default component typographies but still want the hierarchy styles, +// you can delete this line and instead use: +// `@include mat.legacy-typography-hierarchy(mat.define-legacy-typography-config());` + +// @include mat.all-legacy-component-typographies(); +// @include mat.legacy-core(); + @mixin custom-cmp($theme) { $color-config: mat.get-color-config($theme); @@ -85,32 +125,20 @@ } } -$iv-theme-primary: mat.define-palette(mat.$indigo-palette); -$iv-theme-accent: mat.define-palette(mat.$amber-palette); -$iv-theme-warn: mat.define-palette(mat.$red-palette); - -$iv-theme: mat.define-light-theme(( - color: ( - primary: $iv-theme-primary, - accent: $iv-theme-accent, - warn: $iv-theme-warn, - ) -)); +// @include mat.all-legacy-component-themes($iv-theme); +// @include custom-cmp($iv-theme); -@include mat.all-component-themes($iv-theme); -@include custom-cmp($iv-theme); +// $iv-dark-theme-primary: mat.define-palette(mat.$blue-palette); +// $iv-dark-theme-accent: mat.define-palette(mat.$amber-palette, A200, A100, A400); +// $iv-dark-theme-warn: mat.define-palette(mat.$red-palette); -$iv-dark-theme-primary: mat.define-palette(mat.$blue-palette); -$iv-dark-theme-accent: mat.define-palette(mat.$amber-palette, A200, A100, A400); -$iv-dark-theme-warn: mat.define-palette(mat.$red-palette); - -$iv-dark-theme: mat.define-dark-theme(( - color: ( - primary: $iv-dark-theme-primary, - accent: $iv-dark-theme-accent, - warn: $iv-dark-theme-warn, - ) -)); +// $iv-dark-theme: mat.define-dark-theme(( +// color: ( +// primary: $iv-dark-theme-primary, +// accent: $iv-dark-theme-accent, +// warn: $iv-dark-theme-warn, +// ) +// )); /** * attribute has lower priority than class @@ -120,15 +148,15 @@ $iv-dark-theme: mat.define-dark-theme(( [darktheme=true], .darktheme.darktheme { - @include mat.all-component-themes($iv-dark-theme); - @include custom-cmp($iv-dark-theme); + @include mat.all-component-themes($sxplr-dark-theme); + @include custom-cmp($sxplr-dark-theme); } [darktheme=false], .lighttheme.lighttheme { - @include mat.all-component-themes($iv-theme); - @include custom-cmp($iv-theme); + @include custom-cmp($sxplr-light-theme); + @include mat.all-component-themes($sxplr-light-theme); } .iav-dialog-class diff --git a/src/ui/actionDialog/actionDialog.component.ts b/src/ui/actionDialog/actionDialog.component.ts index ced5d32d4..a49ca149f 100644 --- a/src/ui/actionDialog/actionDialog.component.ts +++ b/src/ui/actionDialog/actionDialog.component.ts @@ -1,5 +1,5 @@ import { Component, Optional, Inject } from "@angular/core"; -import { MAT_DIALOG_DATA } from "@angular/material/dialog"; +import { MAT_DIALOG_DATA } from "src/sharedModules/angularMaterial.exports"; interface IDialogAction{ type: 'mat-button' | 'mat-flat-button' | 'mat-raised-button' | 'mat-stroked-button' diff --git a/src/ui/bottomMenu/module.ts b/src/ui/bottomMenu/module.ts index ab281f989..48ff73d96 100644 --- a/src/ui/bottomMenu/module.ts +++ b/src/ui/bottomMenu/module.ts @@ -4,8 +4,7 @@ import { BottomMenuCmp } from "./bottomMenuCmp/bottomMenu.component"; import { ATPSelectorModule } from "src/atlasComponents/sapiViews/core/rich/ATPSelector"; import { SmartChipModule } from "src/components/smartChip"; import { SapiViewsCoreRegionModule } from "src/atlasComponents/sapiViews/core/region"; -import { MatButtonModule } from "@angular/material/button"; -import { MatRippleModule } from "@angular/material/core"; +import { AngularMaterialModule } from "src/sharedModules"; @NgModule({ imports: [ @@ -13,8 +12,7 @@ import { MatRippleModule } from "@angular/material/core"; ATPSelectorModule, SmartChipModule, SapiViewsCoreRegionModule, - MatButtonModule, - MatRippleModule, + AngularMaterialModule, ], declarations: [ BottomMenuCmp, diff --git a/src/ui/config/configCmp/config.component.ts b/src/ui/config/configCmp/config.component.ts index 386293b19..00b2b4783 100644 --- a/src/ui/config/configCmp/config.component.ts +++ b/src/ui/config/configCmp/config.component.ts @@ -3,8 +3,7 @@ import { select, Store } from '@ngrx/store'; import { combineLatest, Observable, of, Subscription } from 'rxjs'; import { debounceTime, distinctUntilChanged, map, startWith } from 'rxjs/operators'; import { isIdentityQuat } from 'src/viewerModule/nehuba/util'; -import { MatSlideToggleChange } from "@angular/material/slide-toggle"; -import { MatSliderChange } from "@angular/material/slider"; +import { MatSlideToggleChange } from 'src/sharedModules/angularMaterial.exports' import { atlasSelection, userPreference, userInterface } from 'src/state'; import { environment } from "src/environments/environment" import { Z_TRAVERSAL_MULTIPLIER } from 'src/viewerModule/nehuba/layerCtrl.service/layerCtrl.util'; @@ -197,10 +196,10 @@ export class ConfigComponent implements OnInit, OnDestroy { ) } - public handleMatSliderChange(ev: MatSliderChange) { + public updateGpuLimit(newVal: number){ this.store.dispatch( userPreference.actions.setGpuLimit({ - limit: ev.value * 1e6 + limit: newVal * 1e6 }) ) } diff --git a/src/ui/config/configCmp/config.template.html b/src/ui/config/configCmp/config.template.html index 3d1f0f215..a8244dcfe 100644 --- a/src/ui/config/configCmp/config.template.html +++ b/src/ui/config/configCmp/config.template.html @@ -41,8 +41,10 @@ min="100" max="1000" [step]="stepSize" - (change)="handleMatSliderChange($event)" - [value]="gpuLimit$ | async"> + > + <input matSliderThumb + (valueChange)="updateGpuLimit($event)" + [value]="gpuLimit$ | async"> </mat-slider> <span class="d-inline-block flex-grow-0 flex-shrink-0 w-10em"> {{ gpuLimit$ | async }} MB diff --git a/src/ui/dialogInfo/dialog.directive.ts b/src/ui/dialogInfo/dialog.directive.ts index 62640509e..48d8daf65 100644 --- a/src/ui/dialogInfo/dialog.directive.ts +++ b/src/ui/dialogInfo/dialog.directive.ts @@ -1,5 +1,5 @@ import { Directive, HostListener, Input, TemplateRef } from "@angular/core"; -import { MatDialog, MatDialogConfig } from "@angular/material/dialog"; +import { MatDialog, MatDialogConfig } from 'src/sharedModules/angularMaterial.exports' import { DialogFallbackCmp } from "./tmpl/tmpl.component" type DialogSize = 's' | 'm' | 'l' | 'xl' | 'auto' diff --git a/src/ui/dialogInfo/module.ts b/src/ui/dialogInfo/module.ts index c691e5381..bc329cbbd 100644 --- a/src/ui/dialogInfo/module.ts +++ b/src/ui/dialogInfo/module.ts @@ -1,23 +1,19 @@ import { CommonModule } from "@angular/common"; import { NgModule } from "@angular/core"; -import { MatButtonModule } from "@angular/material/button"; -import { MatDialogModule } from "@angular/material/dialog"; import { MarkdownModule } from "src/components/markdown"; import { StrictLocalModule } from "src/strictLocal"; import { DialogDirective } from "./dialog.directive" import { DialogFallbackCmp } from "./tmpl/tmpl.component"; -import { MatListModule } from "@angular/material/list"; import { ExperimentalModule } from "src/experimental/experimental.module"; +import { AngularMaterialModule } from "src/sharedModules"; @NgModule({ imports: [ CommonModule, - MatDialogModule, - MatButtonModule, MarkdownModule, StrictLocalModule, - MatListModule, ExperimentalModule, + AngularMaterialModule, ], declarations: [ DialogDirective, diff --git a/src/ui/dialogInfo/tmpl/tmpl.component.ts b/src/ui/dialogInfo/tmpl/tmpl.component.ts index be6842b0e..43d92b79c 100644 --- a/src/ui/dialogInfo/tmpl/tmpl.component.ts +++ b/src/ui/dialogInfo/tmpl/tmpl.component.ts @@ -1,5 +1,5 @@ import { Component, Inject } from "@angular/core"; -import { MAT_DIALOG_DATA } from "@angular/material/dialog"; +import { MAT_DIALOG_DATA } from "src/sharedModules/angularMaterial.exports"; export type FallBackData = { title: string diff --git a/src/ui/help/about/about.component.ts b/src/ui/help/about/about.component.ts index 31fd28663..32528ffea 100644 --- a/src/ui/help/about/about.component.ts +++ b/src/ui/help/about/about.component.ts @@ -2,7 +2,7 @@ import { ChangeDetectionStrategy, Component } from '@angular/core' import { NewestRelease } from '../newestRelease.directive' import { HttpClient } from '@angular/common/http' import { map } from 'rxjs/operators' -import { MatDialog } from '@angular/material/dialog' +import { MatDialog } from 'src/sharedModules/angularMaterial.exports' import { HowToCite } from '../howToCite/howToCite.component' import { SAPI, EXPECTED_SIIBRA_API_VERSION } from "src/atlasComponents/sapi/sapi.service" import { environment } from "src/environments/environment" diff --git a/src/ui/help/module.ts b/src/ui/help/module.ts index 5d08c1179..ca6c1f42a 100644 --- a/src/ui/help/module.ts +++ b/src/ui/help/module.ts @@ -9,8 +9,6 @@ import { QuickTourModule } from "src/ui/quickTour/module"; import { HowToCite } from "./howToCite/howToCite.component"; import { StrictLocalModule } from "src/strictLocal"; import { HttpClientModule } from "@angular/common/http"; -import { MatInputModule } from "@angular/material/input"; -import { MatDialogModule } from "@angular/material/dialog"; import { ShareModule } from "src/share"; @NgModule({ @@ -23,9 +21,7 @@ import { ShareModule } from "src/share"; StrictLocalModule, HttpClientModule, - ShareModule, - MatInputModule, - MatDialogModule, + ShareModule, ], declarations: [ AboutCmp, diff --git a/src/ui/quickTour/quickTour.service.ts b/src/ui/quickTour/quickTour.service.ts index e593328e8..83a19f227 100644 --- a/src/ui/quickTour/quickTour.service.ts +++ b/src/ui/quickTour/quickTour.service.ts @@ -6,7 +6,7 @@ import { QuickTourThis } from "./quickTourThis.directive"; import { DoublyLinkedList, IDoublyLinkedItem } from 'src/util' import { EnumQuickTourSeverity, PERMISSION_DIALOG_ACTIONS, QuickTourSeverity, QUICK_TOUR_CMP_INJTKN } from "./constrants"; import { LOCAL_STORAGE_CONST } from "src/util/constants"; -import { MatDialog, MatDialogRef } from "@angular/material/dialog"; +import { MatDialog, MatDialogRef } from 'src/sharedModules/angularMaterial.exports' import { StartTourDialogDialog } from "src/ui/quickTour/startTourDialog/startTourDialog.component"; const autoPlayPriority: Set<EnumQuickTourSeverity | keyof typeof QuickTourSeverity> = new Set([ diff --git a/src/ui/quickTour/startTourDialog/startTourDialog.component.ts b/src/ui/quickTour/startTourDialog/startTourDialog.component.ts index ac77e1d47..4d1dd9e40 100644 --- a/src/ui/quickTour/startTourDialog/startTourDialog.component.ts +++ b/src/ui/quickTour/startTourDialog/startTourDialog.component.ts @@ -1,5 +1,5 @@ import {Component} from "@angular/core"; -import {MatDialogRef} from "@angular/material/dialog"; +import { MatDialogRef } from 'src/sharedModules/angularMaterial.exports' import { CONST } from 'common/constants' import { PERMISSION_DIALOG_ACTIONS } from "../constrants"; diff --git a/src/ui/topMenu/module.ts b/src/ui/topMenu/module.ts index 71c28c739..44437f2e6 100644 --- a/src/ui/topMenu/module.ts +++ b/src/ui/topMenu/module.ts @@ -10,12 +10,13 @@ import { CookieModule } from "src/ui/cookieAgreement/module"; import { HelpModule } from "src/ui/help/module"; import { KgTosModule } from "src/ui/kgtos/module"; import { ScreenshotModule } from "src/screenshot"; -import { AngularMaterialModule } from "src/sharedModules"; import { TopMenuCmp } from "./topMenuCmp/topMenu.components"; import { UserAnnotationsModule } from "src/atlasComponents/userAnnotations"; import { QuickTourModule } from "src/ui/quickTour/module"; import { KeyFrameModule } from "src/keyframesModule/module"; import { AtlasDownloadModule } from "src/atlas-download/atlas-download.module"; +import { AngularMaterialModule } from "src/sharedModules"; + @NgModule({ imports: [ diff --git a/src/ui/topMenu/topMenuCmp/topMenu.components.ts b/src/ui/topMenu/topMenuCmp/topMenu.components.ts index 94bf82bef..580ab86fc 100644 --- a/src/ui/topMenu/topMenuCmp/topMenu.components.ts +++ b/src/ui/topMenu/topMenuCmp/topMenu.components.ts @@ -7,8 +7,7 @@ import { import { Observable } from "rxjs"; import { map } from "rxjs/operators"; import { AuthService } from "src/auth"; -import { MatDialog, MatDialogConfig, MatDialogRef } from "@angular/material/dialog"; -import { MatBottomSheet } from "@angular/material/bottom-sheet"; +import { MatBottomSheet, MatDialog, MatDialogConfig, MatDialogRef } from 'src/sharedModules/angularMaterial.exports' import { CONST, QUICKTOUR_DESC, ARIA_LABELS } from 'common/constants' import { IQuickTourData } from "src/ui/quickTour/constrants"; import { TypeMatBtnColor, TypeMatBtnStyle } from "src/components/dynamicMaterialBtn/dynamicMaterialBtn.component"; diff --git a/src/util/df-to-ds.pipe.ts b/src/util/df-to-ds.pipe.ts index f50be028d..62be4bd99 100644 --- a/src/util/df-to-ds.pipe.ts +++ b/src/util/df-to-ds.pipe.ts @@ -1,7 +1,6 @@ import { CdkTableDataSourceInput } from '@angular/cdk/table'; import { Pipe, PipeTransform } from '@angular/core'; -import { MatSort } from '@angular/material/sort'; -import { MatTableDataSource } from '@angular/material/table'; +import { MatSort, MatTableDataSource } from 'src/sharedModules/angularMaterial.exports' import { components } from "src/atlasComponents/sapi/schemaV3" type DF = components["schemas"]["DataFrameModel"] diff --git a/src/util/side-panel/side-panel.component.spec.ts b/src/util/side-panel/side-panel.component.spec.ts index 5a7f71a4d..3fb23f57f 100644 --- a/src/util/side-panel/side-panel.component.spec.ts +++ b/src/util/side-panel/side-panel.component.spec.ts @@ -1,7 +1,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { SidePanelComponent } from './side-panel.component'; -import { MatCardModule } from '@angular/material/card'; +import { AngularMaterialModule } from 'src/sharedModules/angularMaterial.module' describe('SidePanelComponent', () => { let component: SidePanelComponent; @@ -10,7 +10,7 @@ describe('SidePanelComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ imports: [ - MatCardModule, + AngularMaterialModule, ], declarations: [ SidePanelComponent, diff --git a/src/util/util.module.ts b/src/util/util.module.ts index 53355b1f5..f2b7ccc21 100644 --- a/src/util/util.module.ts +++ b/src/util/util.module.ts @@ -20,7 +20,7 @@ import { CombineFnPipe } from "./pipes/combineFn.pipe"; import { MergeObjPipe } from "./mergeObj.pipe"; import { IncludesPipe } from "./includes.pipe"; import { SidePanelComponent } from './side-panel/side-panel.component'; -import { MatCardModule } from "@angular/material/card"; +import { AngularMaterialModule } from 'src/sharedModules/angularMaterial.module' import { CommonModule } from "@angular/common"; import { DfToDsPipe } from './df-to-ds.pipe'; import { PrettyPresentPipe } from './pretty-present.pipe'; @@ -28,7 +28,7 @@ import { PrettyPresentPipe } from './pretty-present.pipe'; @NgModule({ imports:[ LayoutModule, - MatCardModule, + AngularMaterialModule, CommonModule, ], declarations: [ diff --git a/src/viewerModule/leap/module.ts b/src/viewerModule/leap/module.ts index 4e7bcbfc5..19eb06f7c 100644 --- a/src/viewerModule/leap/module.ts +++ b/src/viewerModule/leap/module.ts @@ -1,6 +1,6 @@ import { CommonModule } from "@angular/common"; import { APP_INITIALIZER, NgModule } from "@angular/core"; -import { MatCardModule } from "@angular/material/card"; +import { AngularMaterialModule } from 'src/sharedModules/angularMaterial.module' import { APPEND_SCRIPT_TOKEN } from "src/util/constants"; import { LeapSignal } from "./leapSignal/leapSignal.component"; import { LeapService } from "./service"; @@ -9,7 +9,7 @@ import { LeapControlViewRef } from "./signal.directive"; @NgModule({ imports: [ CommonModule, - MatCardModule, + AngularMaterialModule, ], declarations: [ LeapSignal, diff --git a/src/viewerModule/nehuba/layoutOverlay/module.ts b/src/viewerModule/nehuba/layoutOverlay/module.ts index b19dbd704..29bfe0703 100644 --- a/src/viewerModule/nehuba/layoutOverlay/module.ts +++ b/src/viewerModule/nehuba/layoutOverlay/module.ts @@ -1,6 +1,5 @@ import { CommonModule } from "@angular/common"; import { NgModule } from "@angular/core"; -import { MatMenuModule } from "@angular/material/menu"; import { ViewerCtrlModule } from "../viewerCtrl"; import { NehubaLayoutOverlay } from "./nehuba.layoutOverlay/nehuba.layoutOverlay.component"; import { QuickTourModule } from "src/ui/quickTour"; @@ -8,11 +7,10 @@ import { SpinnerModule } from "src/components/spinner"; import { UtilModule } from "src/util"; import { WindowResizeModule } from "src/util/windowResize"; import { LayoutModule } from "src/layouts/layout.module"; -import { MatButtonModule } from "@angular/material/button"; +import { AngularMaterialModule } from 'src/sharedModules/angularMaterial.module' @NgModule({ imports: [ - MatMenuModule, CommonModule, LayoutModule, ViewerCtrlModule, @@ -20,8 +18,7 @@ import { MatButtonModule } from "@angular/material/button"; SpinnerModule, UtilModule, WindowResizeModule, - MatButtonModule, - MatMenuModule + AngularMaterialModule, ], declarations: [ NehubaLayoutOverlay, diff --git a/src/viewerModule/nehuba/ngLayerCtlModule/module.ts b/src/viewerModule/nehuba/ngLayerCtlModule/module.ts index dbdea746c..52defe572 100644 --- a/src/viewerModule/nehuba/ngLayerCtlModule/module.ts +++ b/src/viewerModule/nehuba/ngLayerCtlModule/module.ts @@ -1,16 +1,15 @@ import { CommonModule } from "@angular/common"; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from "@angular/core"; -import { MatButtonModule } from "@angular/material/button"; -import { MatTooltipModule } from "@angular/material/tooltip"; import { SpinnerModule } from "src/components/spinner"; import { NgLayerCtrlCmp } from "./ngLayerCtl/ngLayerCtrl.component"; +import { AngularMaterialModule } from 'src/sharedModules/angularMaterial.module' + @NgModule({ imports: [ CommonModule, - MatTooltipModule, - MatButtonModule, SpinnerModule, + AngularMaterialModule, ], declarations: [ NgLayerCtrlCmp diff --git a/src/viewerModule/nehuba/ngLayerCtlModule/ngLayerCtl/ngLayerCtrl.stories.ts b/src/viewerModule/nehuba/ngLayerCtlModule/ngLayerCtl/ngLayerCtrl.stories.ts index ff1fb3cd5..d6e832f32 100644 --- a/src/viewerModule/nehuba/ngLayerCtlModule/ngLayerCtl/ngLayerCtrl.stories.ts +++ b/src/viewerModule/nehuba/ngLayerCtlModule/ngLayerCtl/ngLayerCtrl.stories.ts @@ -1,12 +1,11 @@ import { idMat4, NgLayerCtrlCmp } from "./ngLayerCtrl.component" import { Meta, moduleMetadata, Story } from "@storybook/angular" import { CommonModule } from "@angular/common" -import { MatButtonModule } from "@angular/material/button" import { NEHUBA_INSTANCE_INJTKN } from "src/viewerModule/nehuba/util" import { NEVER } from "rxjs" import { action } from "@storybook/addon-actions" -import { MatTooltipModule } from "@angular/material/tooltip" import { Store } from "@ngrx/store" +import { AngularMaterialModule } from "src/sharedModules" export default { component: NgLayerCtrlCmp, @@ -14,8 +13,7 @@ export default { moduleMetadata({ imports: [ CommonModule, - MatButtonModule, - MatTooltipModule, + AngularMaterialModule, ], providers: [ { diff --git a/src/viewerModule/nehuba/statusCard/statusCard.component.spec.ts b/src/viewerModule/nehuba/statusCard/statusCard.component.spec.ts index cb1521df9..63db4bdcf 100644 --- a/src/viewerModule/nehuba/statusCard/statusCard.component.spec.ts +++ b/src/viewerModule/nehuba/statusCard/statusCard.component.spec.ts @@ -8,7 +8,6 @@ import { ShareModule } from "src/share" import { StateModule } from "src/state" import { MockStore, provideMockStore } from "@ngrx/store/testing" import { By } from "@angular/platform-browser" -import { MatSlideToggle } from "@angular/material/slide-toggle" import { NoopAnimationsModule } from "@angular/platform-browser/animations" import { FormsModule, ReactiveFormsModule } from "@angular/forms" import { UtilModule } from "src/util" @@ -16,6 +15,7 @@ import * as configSvc from '../config.service' import {QuickTourModule} from "src/ui/quickTour/module"; import { atlasSelection } from "src/state" import { SxplrTemplate } from "src/atlasComponents/sapi/sxplrTypes" +import { MatSlideToggle } from "src/sharedModules/angularMaterial.exports" @Directive({ selector: '[iav-auth-auth-state]', diff --git a/src/viewerModule/nehuba/statusCard/statusCard.component.ts b/src/viewerModule/nehuba/statusCard/statusCard.component.ts index 5ca64921a..12e15afb3 100644 --- a/src/viewerModule/nehuba/statusCard/statusCard.component.ts +++ b/src/viewerModule/nehuba/statusCard/statusCard.component.ts @@ -12,8 +12,7 @@ import { LoggingService } from "src/logging"; import { NehubaViewerUnit } from "../nehubaViewer/nehubaViewer.component"; import { Observable, Subscription, of, combineLatest } from "rxjs"; import { map, filter, startWith, throttleTime } from "rxjs/operators"; -import { MatBottomSheet } from "@angular/material/bottom-sheet"; -import { MatDialog } from "@angular/material/dialog"; +import { MatBottomSheet, MatDialog } from "src/sharedModules/angularMaterial.exports" import { ARIA_LABELS, QUICKTOUR_DESC } from 'common/constants' import { UntypedFormControl } from "@angular/forms"; diff --git a/src/viewerModule/nehuba/userLayers/module.ts b/src/viewerModule/nehuba/userLayers/module.ts index ae8068454..dc55a432f 100644 --- a/src/viewerModule/nehuba/userLayers/module.ts +++ b/src/viewerModule/nehuba/userLayers/module.ts @@ -1,30 +1,22 @@ import { CommonModule } from "@angular/common" import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from "@angular/core" -import { MatDialogModule } from "@angular/material/dialog" -import { MatSnackBarModule } from "@angular/material/snack-bar" import { DragDropFileModule } from "src/dragDropFile" import { UserLayerDragDropDirective } from "./userlayerDragdrop.directive" -import { UserLayerService } from "./service" -import { MatButtonModule } from "@angular/material/button" -import { MatTooltipModule } from "@angular/material/tooltip" import { UserLayerInfoCmp } from "./userlayerInfo/userlayerInfo.component" import { UtilModule } from "src/util" import { SpinnerModule } from "src/components/spinner" +import { AngularMaterialModule } from "src/sharedModules" @NgModule({ imports: [ CommonModule, DragDropFileModule, - MatSnackBarModule, - MatDialogModule, - MatButtonModule, - MatTooltipModule, + AngularMaterialModule, UtilModule, SpinnerModule, ], declarations: [UserLayerDragDropDirective, UserLayerInfoCmp], exports: [UserLayerDragDropDirective], - providers: [UserLayerService], schemas: [CUSTOM_ELEMENTS_SCHEMA], }) export class NehubaUserLayerModule {} diff --git a/src/viewerModule/nehuba/userLayers/service.ts b/src/viewerModule/nehuba/userLayers/service.ts index 91634c402..7ec5f5bbf 100644 --- a/src/viewerModule/nehuba/userLayers/service.ts +++ b/src/viewerModule/nehuba/userLayers/service.ts @@ -1,5 +1,4 @@ import { Injectable, OnDestroy } from "@angular/core" -import { MatDialog, MatDialogRef } from "@angular/material/dialog" import { select, Store } from "@ngrx/store" import { forkJoin, from, Subscription } from "rxjs" import { distinctUntilChanged, filter } from "rxjs/operators" @@ -19,6 +18,7 @@ import { translateV3Entities } from "src/atlasComponents/sapi/translateV3" import { MetaV1Schema } from "src/atlasComponents/sapi/typeV3" import { AnnotationLayer } from "src/atlasComponents/annotations" import { rgbToHex } from 'common/util' +import { MatDialogRef, MatDialog } from "src/sharedModules/angularMaterial.exports" type OmitKeys = "clType" | "id" | "source" type LayerOption = Omit<atlasAppearance.const.NgLayerCustomLayer, OmitKeys> @@ -51,7 +51,9 @@ function RegisterSource(matcher: ProcessResource['matcher']) { } -@Injectable() +@Injectable({ + providedIn: 'root' +}) export class UserLayerService implements OnDestroy { #idToCleanup = new Map<string, () => void>() #dialogRef: MatDialogRef<unknown> diff --git a/src/viewerModule/nehuba/userLayers/userlayerDragdrop.directive.ts b/src/viewerModule/nehuba/userLayers/userlayerDragdrop.directive.ts index 2b049c7f7..a4ef1d9dd 100644 --- a/src/viewerModule/nehuba/userLayers/userlayerDragdrop.directive.ts +++ b/src/viewerModule/nehuba/userLayers/userlayerDragdrop.directive.ts @@ -5,7 +5,7 @@ import { OnDestroy, OnInit, } from "@angular/core" -import { MatSnackBar } from "@angular/material/snack-bar" +import { MatSnackBar } from "src/sharedModules/angularMaterial.exports" import { Subscription } from "rxjs" import { DragDropFileDirective } from "src/dragDropFile/dragDrop.directive" import { UserLayerService } from "./service" diff --git a/src/viewerModule/nehuba/userLayers/userlayerInfo/userlayerInfo.component.ts b/src/viewerModule/nehuba/userLayers/userlayerInfo/userlayerInfo.component.ts index eb4f6fac1..119ccd2f4 100644 --- a/src/viewerModule/nehuba/userLayers/userlayerInfo/userlayerInfo.component.ts +++ b/src/viewerModule/nehuba/userLayers/userlayerInfo/userlayerInfo.component.ts @@ -1,5 +1,5 @@ import { Component, Inject, ViewChild } from "@angular/core"; -import { MAT_DIALOG_DATA } from "@angular/material/dialog"; +import { MAT_DIALOG_DATA } from "src/sharedModules/angularMaterial.exports" import { ARIA_LABELS, CONST } from 'common/constants' import { BehaviorSubject, Subject, combineLatest, concat, of, timer } from "rxjs"; import { map, switchMap, take } from "rxjs/operators"; diff --git a/src/viewerModule/nehuba/viewerCtrl/viewerCtrlCmp/viewerCtrlCmp.component.spec.ts b/src/viewerModule/nehuba/viewerCtrl/viewerCtrlCmp/viewerCtrlCmp.component.spec.ts index 0ec1d5125..ea18ee5a2 100644 --- a/src/viewerModule/nehuba/viewerCtrl/viewerCtrlCmp/viewerCtrlCmp.component.spec.ts +++ b/src/viewerModule/nehuba/viewerCtrl/viewerCtrlCmp/viewerCtrlCmp.component.spec.ts @@ -11,7 +11,7 @@ import { NEHUBA_INSTANCE_INJTKN } from "../../util" import { ViewerCtrlCmp } from "./viewerCtrlCmp.component" import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed' import { HarnessLoader } from "@angular/cdk/testing" -import { MatSlideToggleHarness } from '@angular/material/slide-toggle/testing' +import { MatSlideToggleHarness } from "src/sharedModules/angularMaterial.exports" import { atlasAppearance, atlasSelection } from "src/state" diff --git a/src/viewerModule/threeSurfer/module.ts b/src/viewerModule/threeSurfer/module.ts index 7647de0ce..7bc067546 100644 --- a/src/viewerModule/threeSurfer/module.ts +++ b/src/viewerModule/threeSurfer/module.ts @@ -10,7 +10,6 @@ import { ThreeSurferViewerConfig } from "./tsViewerConfig/tsViewerConfig.compone import { nameSpace, reducer, ThreeSurferEffects } from "./store" import { EffectsModule } from "@ngrx/effects"; import { TmpThreeSurferLifeCycle } from "./lifecycle/lifecycle.component"; -import { MatSlideToggleModule } from "@angular/material/slide-toggle"; import { ExperimentalModule } from "src/experimental/experimental.module"; @NgModule({ @@ -20,7 +19,6 @@ import { ExperimentalModule } from "src/experimental/experimental.module"; UtilModule, FormsModule, ComponentsModule, - MatSlideToggleModule, ExperimentalModule, StoreModule.forFeature( nameSpace, diff --git a/src/viewerModule/threeSurfer/threeSurferGlue/threeSurfer.component.ts b/src/viewerModule/threeSurfer/threeSurferGlue/threeSurfer.component.ts index 05b5d7f43..9a44a02e1 100644 --- a/src/viewerModule/threeSurfer/threeSurferGlue/threeSurfer.component.ts +++ b/src/viewerModule/threeSurfer/threeSurferGlue/threeSurfer.component.ts @@ -5,7 +5,7 @@ import { catchError, debounceTime, distinctUntilChanged, filter, map, scan, shar import { ComponentStore, LockError } from "src/viewerModule/componentStore"; import { select, Store } from "@ngrx/store"; import { ClickInterceptor, CLICK_INTERCEPTOR_INJECTOR } from "src/util"; -import { MatSnackBar } from "@angular/material/snack-bar"; +import { MatSnackBar } from "src/sharedModules/angularMaterial.exports" import { CONST } from 'common/constants' import { getUuid, switchMapWaitFor } from "src/util/fn"; import { AUTO_ROTATE, TInteralStatePayload, ViewerInternalStateSvc } from "src/viewerModule/viewerInternalState.service"; diff --git a/src/viewerModule/viewerCmp/viewerCmp.template.html b/src/viewerModule/viewerCmp/viewerCmp.template.html index 1a247aafb..9035dc990 100644 --- a/src/viewerModule/viewerCmp/viewerCmp.template.html +++ b/src/viewerModule/viewerCmp/viewerCmp.template.html @@ -815,7 +815,7 @@ <!-- content --> <ng-template matExpansionPanelContent> - <mat-chip-list class="wrapped-chips"> + <mat-chip-set class="wrapped-chips"> <mat-chip *ngFor="let region of regions"> <span> {{ region.name }} @@ -826,7 +826,7 @@ <i class="fas fa-times"></i> </button> </mat-chip> - </mat-chip-list> + </mat-chip-set> </ng-template> </mat-expansion-panel> diff --git a/src/widget/constants.ts b/src/widget/constants.ts index 53cc6568a..a917d4978 100644 --- a/src/widget/constants.ts +++ b/src/widget/constants.ts @@ -1,5 +1,5 @@ import { InjectionToken } from "@angular/core"; -import { MatDialogConfig, MatDialogRef } from "@angular/material/dialog"; +import { MatDialogConfig, MatDialogRef } from "src/sharedModules/angularMaterial.exports" export enum EnumActionToWidget{ OPEN, diff --git a/src/widget/widget.module.ts b/src/widget/widget.module.ts index 62b9d65ba..efe39aa36 100644 --- a/src/widget/widget.module.ts +++ b/src/widget/widget.module.ts @@ -3,19 +3,13 @@ import { CommonModule } from "@angular/common"; import { ComponentsModule } from "src/components"; import { WidgetCanvas } from "./widgetCanvas.directive"; import { WidgetPortal } from "./widgetPortal/widgetPortal.component" -import { MatCardModule } from "@angular/material/card"; -import { DragDropModule } from "@angular/cdk/drag-drop"; -import { MatButtonModule } from "@angular/material/button"; import { PortalModule } from "@angular/cdk/portal"; -import { MatTooltipModule } from "@angular/material/tooltip"; import { WidgetStateIconPipe } from "./widgetStateIcon.pipe"; +import { AngularMaterialModule } from "src/sharedModules"; @NgModule({ imports:[ - MatCardModule, - DragDropModule, - MatButtonModule, - MatTooltipModule, + AngularMaterialModule, PortalModule, CommonModule, ComponentsModule, -- GitLab