From b8b41c7ff6a4a941b0ef0256049be2bbd48846f3 Mon Sep 17 00:00:00 2001 From: bclayton-usgs <bclayton@usgs.gov> Date: Fri, 24 Jul 2020 16:12:43 -0600 Subject: [PATCH 1/3] fix performance --- angular.json | 117 ++++++++++ package-lock.json | 205 ++++++++++++++++++ package.json | 16 +- .../src/assets/icon-dot-gov.svg | 1 + .../nshmp-template/src/assets/icon-https.svg | 1 + .../src/assets/us_flag_small.png | Bin 0 -> 176 bytes .../footer-bottom-navbar.component.html | 2 +- .../footer-bottom-navbar.component.ts | 20 +- .../gov-banner-content.component.html | 8 +- .../gov-banner-header.component.html | 2 +- .../gov-banner/gov-banner.component.ts | 1 + .../lib/models/footer-social-link.model.ts | 4 +- .../src/lib/modules/material.module.ts | 2 - .../src/lib/modules/nshmp-layout.module.ts | 3 +- .../src/scss/_material-theme.scss | 65 +++--- .../nshmp-template/src/scss/_uswds-theme.scss | 7 +- 16 files changed, 392 insertions(+), 62 deletions(-) create mode 100644 projects/nshmp-template/src/assets/icon-dot-gov.svg create mode 100644 projects/nshmp-template/src/assets/icon-https.svg create mode 100644 projects/nshmp-template/src/assets/us_flag_small.png diff --git a/angular.json b/angular.json index f666c10..41c9238 100644 --- a/angular.json +++ b/angular.json @@ -167,6 +167,123 @@ } } } + }, + "example-prod": { + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "style": "scss" + } + }, + "root": "projects/example", + "sourceRoot": "projects/example/src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "aot": true, + "outputPath": "dist/example", + "index": "projects/example/src/index.html", + "main": "projects/example/src/main.ts", + "polyfills": "projects/example/src/polyfills.ts", + "tsConfig": "projects/example/tsconfig.app.json", + "allowedCommonJsDependencies": ["uswds"], + "assets": [ + "projects/example/src/favicon.ico", + { + "glob": "**/*", + "input": "projects/nshmp-template/src/assets", + "output": "./assets/" + } + ], + "styles": ["projects/nshmp-template/src/scss/styles.scss"], + "scripts": [] + }, + "configurations": { + "production": { + "fileReplacements": [ + { + "replace": "projects/example/src/environments/environment.ts", + "with": "projects/example/src/environments/environment.prod.ts" + } + ], + "optimization": true, + "outputHashing": "all", + "sourceMap": false, + "extractCss": true, + "namedChunks": false, + "aot": true, + "extractLicenses": true, + "vendorChunk": false, + "buildOptimizer": true, + "budgets": [ + { + "type": "initial", + "maximumWarning": "2mb", + "maximumError": "5mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "6kb" + } + ] + } + } + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "options": { + "browserTarget": "example:build" + }, + "configurations": { + "production": { + "browserTarget": "example:build:production" + } + } + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "example:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "projects/example/src/test.ts", + "polyfills": "projects/example/src/polyfills.ts", + "tsConfig": "projects/example/tsconfig.spec.json", + "karmaConfig": "projects/example/karma.conf.js", + "styles": ["projects/nshmp-template/src/scss/styles.scss"], + "scripts": [], + "assets": ["projects/example/src/favicon.ico", "projects/example/src/assets"] + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "projects/example/tsconfig.app.json", + "projects/example/tsconfig.spec.json", + "projects/example/e2e/tsconfig.json" + ], + "exclude": ["**/node_modules/**"] + } + }, + "e2e": { + "builder": "@angular-devkit/build-angular:protractor", + "options": { + "protractorConfig": "projects/example/e2e/protractor.conf.js", + "devServerTarget": "example:serve" + }, + "configurations": { + "production": { + "devServerTarget": "example:serve:production" + } + } + } + } } }, "defaultProject": "nshmp-template", diff --git a/package-lock.json b/package-lock.json index e71c6b7..ee12bc4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2800,6 +2800,35 @@ "to-fast-properties": "^2.0.0" } }, + "@fortawesome/angular-fontawesome": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@fortawesome/angular-fontawesome/-/angular-fontawesome-0.7.0.tgz", + "integrity": "sha512-U+eHYbKuVYrrm9SnIfl+z+6KTiI4Pu+S2OKh34JIi7C1jHhDcrVeDZISP/cpswHY7LWWDOPYeKE+yuWFlL4aVw==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@fortawesome/fontawesome-common-types": { + "version": "0.2.30", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.30.tgz", + "integrity": "sha512-TsRwpTuKwFNiPhk1UfKgw7zNPeV5RhNp2Uw3pws+9gDAkPGKrtjR1y2lI3SYn7+YzyfuNknflpBA1LRKjt7hMg==" + }, + "@fortawesome/fontawesome-svg-core": { + "version": "1.2.30", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.30.tgz", + "integrity": "sha512-E3sAXATKCSVnT17HYmZjjbcmwihrNOCkoU7dVMlasrcwiJAHxSKeZ+4WN5O+ElgO/FaYgJmASl8p9N7/B/RttA==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.30" + } + }, + "@fortawesome/free-brands-svg-icons": { + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-5.14.0.tgz", + "integrity": "sha512-WsqPFTvJFI7MYkcy0jeFE2zY+blC4OrnB9MJOcn1NxRXT/sSfEEhrI7CwzIkiYajLiVDBKWeErYOvpsMeodmCQ==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.30" + } + }, "@istanbuljs/schema": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", @@ -3819,6 +3848,12 @@ "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", "dev": true }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true + }, "adjust-sourcemap-loader": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-2.0.0.tgz", @@ -4424,6 +4459,12 @@ "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", "dev": true }, + "basic-auth": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.1.0.tgz", + "integrity": "sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ=", + "dev": true + }, "batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", @@ -4448,6 +4489,18 @@ "callsite": "1.0.0" } }, + "bfj": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz", + "integrity": "sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "check-types": "^8.0.3", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" + } + }, "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -5108,6 +5161,12 @@ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, + "check-types": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz", + "integrity": "sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==", + "dev": true + }, "chokidar": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz", @@ -5913,6 +5972,12 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "corser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", + "integrity": "sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c=", + "dev": true + }, "cosmiconfig": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", @@ -6826,6 +6891,12 @@ } } }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "dev": true + }, "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", @@ -6854,12 +6925,30 @@ "safer-buffer": "^2.1.0" } }, + "ecstatic": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/ecstatic/-/ecstatic-3.3.2.tgz", + "integrity": "sha512-fLf9l1hnwrHI2xn9mEDT7KIi22UDqA2jaCwyCbSUJh9a1V+LEUSL/JO/6TIz/QyuBURWUHrFL5Kg2TtO1bkkog==", + "dev": true, + "requires": { + "he": "^1.1.1", + "mime": "^1.6.0", + "minimist": "^1.1.0", + "url-join": "^2.0.5" + } + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", "dev": true }, + "ejs": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", + "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==", + "dev": true + }, "electron-to-chromium": { "version": "1.3.498", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.498.tgz", @@ -7656,6 +7745,12 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", "dev": true }, + "filesize": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", + "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", + "dev": true + }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -8215,6 +8310,16 @@ "lodash": "^4.17.15" } }, + "gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", + "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "pify": "^4.0.1" + } + }, "handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", @@ -8403,6 +8508,12 @@ "minimalistic-assert": "^1.0.1" } }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, "hex-color-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", @@ -8420,6 +8531,12 @@ "minimalistic-crypto-utils": "^1.0.1" } }, + "hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", + "dev": true + }, "hosted-git-info": { "version": "2.8.8", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", @@ -8656,6 +8773,32 @@ } } }, + "http-server": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/http-server/-/http-server-0.12.3.tgz", + "integrity": "sha512-be0dKG6pni92bRjq0kvExtj/NrrAd28/8fCXkaI/4piTwQMSDSLMhWyW0NI1V+DBI3aa1HMlQu46/HjVLfmugA==", + "dev": true, + "requires": { + "basic-auth": "^1.0.3", + "colors": "^1.4.0", + "corser": "^2.0.1", + "ecstatic": "^3.3.2", + "http-proxy": "^1.18.0", + "minimist": "^1.2.5", + "opener": "^1.5.1", + "portfinder": "^1.0.25", + "secure-compare": "3.0.1", + "union": "~0.5.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + } + } + }, "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", @@ -11617,6 +11760,12 @@ "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", "dev": true }, + "opener": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz", + "integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==", + "dev": true + }, "opn": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", @@ -14237,6 +14386,12 @@ } } }, + "secure-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", + "integrity": "sha1-8aAymzCLIh+uN7mXTz1XjQypmeM=", + "dev": true + }, "secure-keys": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/secure-keys/-/secure-keys-1.0.0.tgz", @@ -16473,6 +16628,12 @@ "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true }, + "tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==", + "dev": true + }, "ts-node": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz", @@ -16725,6 +16886,15 @@ "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", "dev": true }, + "union": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", + "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", + "dev": true, + "requires": { + "qs": "^6.4.0" + } + }, "union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", @@ -17014,6 +17184,12 @@ } } }, + "url-join": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-2.0.5.tgz", + "integrity": "sha1-WvIvGMBSoACkjXuCxenC4v7tpyg=", + "dev": true + }, "url-parse": { "version": "1.4.7", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", @@ -17753,6 +17929,35 @@ } } }, + "webpack-bundle-analyzer": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.8.0.tgz", + "integrity": "sha512-PODQhAYVEourCcOuU+NiYI7WdR8QyELZGgPvB1y2tjbUpbmcQOt5Q7jEK+ttd5se0KSBKD9SXHCEozS++Wllmw==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1", + "bfj": "^6.1.1", + "chalk": "^2.4.1", + "commander": "^2.18.0", + "ejs": "^2.6.1", + "express": "^4.16.3", + "filesize": "^3.6.1", + "gzip-size": "^5.0.0", + "lodash": "^4.17.15", + "mkdirp": "^0.5.1", + "opener": "^1.5.1", + "ws": "^6.0.0" + }, + "dependencies": { + "acorn": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz", + "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==", + "dev": true + } + } + }, "webpack-dev-middleware": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", diff --git a/package.json b/package.json index 06a91fe..e3e3a52 100644 --- a/package.json +++ b/package.json @@ -4,12 +4,17 @@ "scripts": { "ng": "ng", "npm-cli-login": "npm-cli-login", - "start:example": "ng serve example", + "start": "ng serve example", + "start:prod": "http-server -a localhost -p 4200 -c-1 dist/example/", + "analyze": "webpack-bundle-analyzer dist/example/stats.json", "build": "./build.sh", + "build:example:stats": "npm run build:example:prod -- --stats-json", "build:example": "ng build example", + "build:example:prod": "ng build example-prod --prod --aot --build-optimizer", "test": "ng test nshmp-template", "test:example": "ng test example", - "lint": "ng lint nshmp-template", + "lint": "ng lint", + "lint:fix": "npm run lint -- --fix", "lint:example": "ng lint example", "e2e": "ng e2e nshmp-template", "e2e:example": "ng e2e example", @@ -28,6 +33,9 @@ "@angular/platform-browser": "~10.0.4", "@angular/platform-browser-dynamic": "~10.0.4", "@angular/router": "~10.0.4", + "@fortawesome/angular-fontawesome": "^0.7.0", + "@fortawesome/fontawesome-svg-core": "^1.2.30", + "@fortawesome/free-brands-svg-icons": "^5.14.0", "rxjs": "~6.6.0", "tslib": "^2.0.0", "uswds": "^2.8.0", @@ -43,6 +51,7 @@ "@types/jasminewd2": "~2.0.3", "@types/node": "^12.11.1", "codelyzer": "^6.0.0", + "http-server": "^0.12.3", "husky": "^4.2.5", "jasmine-core": "~3.5.0", "jasmine-spec-reporter": "~5.0.0", @@ -60,7 +69,8 @@ "tslint": "~6.1.0", "tslint-etc": "^1.12.0", "tsutils": "^3.17.1", - "typescript": "~3.9.6" + "typescript": "~3.9.6", + "webpack-bundle-analyzer": "^3.8.0" }, "husky": { "hooks": { diff --git a/projects/nshmp-template/src/assets/icon-dot-gov.svg b/projects/nshmp-template/src/assets/icon-dot-gov.svg new file mode 100644 index 0000000..3bf0478 --- /dev/null +++ b/projects/nshmp-template/src/assets/icon-dot-gov.svg @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64"><title>icon-dot-gov</title><path fill="#2378C3" fill-rule="evenodd" d="M32 0c17.673 0 32 14.327 32 32 0 17.673-14.327 32-32 32C14.327 64 0 49.673 0 32 0 14.327 14.327 0 32 0zm0 1.208C14.994 1.208 1.208 14.994 1.208 32S14.994 62.792 32 62.792 62.792 49.006 62.792 32 49.006 1.208 32 1.208zm10.59 38.858a.857.857 0 0 1 .882.822v1.642H18.886v-1.642a.857.857 0 0 1 .882-.822H42.59zM25.443 27.774v9.829h1.642v-9.83h3.273v9.83H32v-9.83h3.272v9.83h1.643v-9.83h3.272v9.83h.76a.857.857 0 0 1 .882.821v.821h-21.3v-.809a.857.857 0 0 1 .88-.82h.762v-9.842h3.272zm5.736-8.188l12.293 4.915v1.642h-1.63a.857.857 0 0 1-.882.822H21.41a.857.857 0 0 1-.882-.822h-1.642v-1.642l12.293-4.915z"/></svg> \ No newline at end of file diff --git a/projects/nshmp-template/src/assets/icon-https.svg b/projects/nshmp-template/src/assets/icon-https.svg new file mode 100644 index 0000000..19ad04f --- /dev/null +++ b/projects/nshmp-template/src/assets/icon-https.svg @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64"><title>icon-https</title><path fill="#719F2A" fill-rule="evenodd" d="M32 0c17.673 0 32 14.327 32 32 0 17.673-14.327 32-32 32C14.327 64 0 49.673 0 32 0 14.327 14.327 0 32 0zm0 1.208C14.994 1.208 1.208 14.994 1.208 32S14.994 62.792 32 62.792 62.792 49.006 62.792 32 49.006 1.208 32 1.208zm0 18.886a7.245 7.245 0 0 1 7.245 7.245v3.103h.52c.86 0 1.557.698 1.557 1.558v9.322c0 .86-.697 1.558-1.557 1.558h-15.53c-.86 0-1.557-.697-1.557-1.558V32c0-.86.697-1.558 1.557-1.558h.52V27.34A7.245 7.245 0 0 1 32 20.094zm0 3.103a4.142 4.142 0 0 0-4.142 4.142v3.103h8.284V27.34A4.142 4.142 0 0 0 32 23.197z"/></svg> \ No newline at end of file diff --git a/projects/nshmp-template/src/assets/us_flag_small.png b/projects/nshmp-template/src/assets/us_flag_small.png new file mode 100644 index 0000000000000000000000000000000000000000..34b927b42c144bc86c9595a4ad0b1974fc650f5b GIT binary patch literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~o!3-oFZT@ltDd_;85La2_jdCWN<cv2ya8S5q zCx07=?B)Oe|9{(F!6jeM6sRn~)5S4_<9hBHb3P^pfg=ZOA9Me&H{^A6+97AD$+5D1 z+v3E?Z8yRjnI7bn`lQ~>sdZs>Dtz1Xx9)?eB8ySqs+;o{-CNPO__O<#$EE)BU;Sj^ Xf5dDja<Je4&};@zS3j3^P6<r_G1ESr literal 0 HcmV?d00001 diff --git a/projects/nshmp-template/src/lib/components/footer-bottom-navbar/footer-bottom-navbar.component.html b/projects/nshmp-template/src/lib/components/footer-bottom-navbar/footer-bottom-navbar.component.html index af903c6..90800d5 100644 --- a/projects/nshmp-template/src/lib/components/footer-bottom-navbar/footer-bottom-navbar.component.html +++ b/projects/nshmp-template/src/lib/components/footer-bottom-navbar/footer-bottom-navbar.component.html @@ -30,7 +30,7 @@ [href]="link.href" target="_blank" > - <i class="fab fa-lg {{ link.iconClass }}"></i> + <fa-icon [icon]="link.iconClass" size="2x"></fa-icon> </a> </li> </ul> diff --git a/projects/nshmp-template/src/lib/components/footer-bottom-navbar/footer-bottom-navbar.component.ts b/projects/nshmp-template/src/lib/components/footer-bottom-navbar/footer-bottom-navbar.component.ts index 4f997ec..a64e1de 100644 --- a/projects/nshmp-template/src/lib/components/footer-bottom-navbar/footer-bottom-navbar.component.ts +++ b/projects/nshmp-template/src/lib/components/footer-bottom-navbar/footer-bottom-navbar.component.ts @@ -1,5 +1,13 @@ import { BreakpointObserver } from '@angular/cdk/layout'; import { Component, OnDestroy, OnInit } from '@angular/core'; +import { + faFacebook, + faFacebookSquare, + faFlickr, + faInstagram, + faTwitterSquare, + faYoutube +} from '@fortawesome/free-brands-svg-icons'; import { Subscription } from 'rxjs'; import { FooterLink } from '../../models/footer-link.model'; @@ -44,32 +52,32 @@ export class FooterBottomNavbarComponent implements OnInit, OnDestroy { socialLinks: FooterSocialLink[] = [ { - iconClass: 'fa-twitter-square', + iconClass: faTwitterSquare, href: 'https://twitter.com/usgs', tooltipText: 'USGS Twitter' }, { - iconClass: 'fa-facebook-square', + iconClass: faFacebookSquare, href: 'https://facebook.com/usgeologicalsurvey', tooltipText: 'USGS Facebook' }, { - iconClass: 'fa-github', + iconClass: faFacebook, href: 'https://github.com/usgs', tooltipText: 'USGS GitHub' }, { - iconClass: 'fa-flickr', + iconClass: faFlickr, href: 'https://flickr.com/usgeologicalsurvey', tooltipText: 'USGS Flickr' }, { - iconClass: 'fa-youtube', + iconClass: faYoutube, href: 'http://youtube.com/usgs', tooltipText: 'USGS YouTube' }, { - iconClass: 'fa-instagram', + iconClass: faInstagram, href: 'https://instagram.com/usgs', tooltipText: 'USGS Instagram' } diff --git a/projects/nshmp-template/src/lib/components/gov-banner-content/gov-banner-content.component.html b/projects/nshmp-template/src/lib/components/gov-banner-content/gov-banner-content.component.html index 9eea753..22a2c02 100644 --- a/projects/nshmp-template/src/lib/components/gov-banner-content/gov-banner-content.component.html +++ b/projects/nshmp-template/src/lib/components/gov-banner-content/gov-banner-content.component.html @@ -5,7 +5,7 @@ <div class="usa-banner__guidance-gov tablet:grid-col-6"> <img class="usa-banner__icon usa-media__block-img" - src="~uswds/dist/img/icon-dot-gov.svg" + src="assets/icon-dot-gov.svg" alt="Dot gov" /> <div class="usa-media__block-body"> @@ -20,11 +20,7 @@ <!-- Right side of banner --> <div class="usa-banner__guidance-ssl tablet:grid-col-6"> - <img - class="usa-banner__icon usa-media__block-img" - src="~uswds/dist/img/icon-https.svg" - alt="Https" - /> + <img class="usa-banner__icon usa-media__block-img" src="assets/icon-https.svg" alt="Https" /> <div class="usa-media__block-body"> <p> <strong>The site is secure.</strong> diff --git a/projects/nshmp-template/src/lib/components/gov-banner-header/gov-banner-header.component.html b/projects/nshmp-template/src/lib/components/gov-banner-header/gov-banner-header.component.html index 8b65136..22ea7d3 100644 --- a/projects/nshmp-template/src/lib/components/gov-banner-header/gov-banner-header.component.html +++ b/projects/nshmp-template/src/lib/components/gov-banner-header/gov-banner-header.component.html @@ -3,7 +3,7 @@ <div class="usa-accordion__heading"> <button class="usa-accordion__button" aria-expanded="false" aria-controls="gov-banner"> <div class="grid-col-10 tablet:grid-col-auto"> - <img class="usa-flag" src="~uswds/dist/img/us_flag_small.png" alt="U.S. flag" /> + <img class="usa-flag" src="assets/us_flag_small.png" alt="U.S. flag" /> An official website of the United States government. Here's how you know. </div> </button> diff --git a/projects/nshmp-template/src/lib/components/gov-banner/gov-banner.component.ts b/projects/nshmp-template/src/lib/components/gov-banner/gov-banner.component.ts index 545a907..f3c6cd1 100644 --- a/projects/nshmp-template/src/lib/components/gov-banner/gov-banner.component.ts +++ b/projects/nshmp-template/src/lib/components/gov-banner/gov-banner.component.ts @@ -1,4 +1,5 @@ import { Component, OnInit } from '@angular/core'; +import 'uswds'; @Component({ selector: 'nshmp-template-gov-banner', diff --git a/projects/nshmp-template/src/lib/models/footer-social-link.model.ts b/projects/nshmp-template/src/lib/models/footer-social-link.model.ts index 810192c..db538ec 100644 --- a/projects/nshmp-template/src/lib/models/footer-social-link.model.ts +++ b/projects/nshmp-template/src/lib/models/footer-social-link.model.ts @@ -1,9 +1,11 @@ +import { IconDefinition } from '@fortawesome/fontawesome-svg-core'; + /** * Interface for social links on the footer. */ export interface FooterSocialLink { /** The social link font awesome class */ - iconClass: string; + iconClass: IconDefinition; /** Tooltip text */ tooltipText: string; diff --git a/projects/nshmp-template/src/lib/modules/material.module.ts b/projects/nshmp-template/src/lib/modules/material.module.ts index 4a30e27..8717d30 100644 --- a/projects/nshmp-template/src/lib/modules/material.module.ts +++ b/projects/nshmp-template/src/lib/modules/material.module.ts @@ -1,5 +1,4 @@ import { NgModule } from '@angular/core'; - import { MatButtonModule } from '@angular/material/button'; import { MatButtonToggleModule } from '@angular/material/button-toggle'; import { MatDialogModule } from '@angular/material/dialog'; @@ -8,7 +7,6 @@ import { MatIconModule } from '@angular/material/icon'; import { MatMenuModule } from '@angular/material/menu'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; import { MatTooltipModule } from '@angular/material/tooltip'; -import 'uswds'; @NgModule({ exports: [ diff --git a/projects/nshmp-template/src/lib/modules/nshmp-layout.module.ts b/projects/nshmp-template/src/lib/modules/nshmp-layout.module.ts index 7cd2fde..d5b39e5 100644 --- a/projects/nshmp-template/src/lib/modules/nshmp-layout.module.ts +++ b/projects/nshmp-template/src/lib/modules/nshmp-layout.module.ts @@ -1,6 +1,7 @@ import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; +import { FontAwesomeModule } from '@fortawesome/angular-fontawesome'; import { FooterBottomNavbarComponent } from '../components/footer-bottom-navbar/footer-bottom-navbar.component'; import { FooterTopNavbarComponent } from '../components/footer-top-navbar/footer-top-navbar.component'; @@ -16,7 +17,7 @@ import { SearchBarComponent } from '../components/search-bar/search-bar.componen import { MaterialModule } from './material.module'; @NgModule({ - imports: [CommonModule, MaterialModule, RouterModule.forChild([])], + imports: [CommonModule, MaterialModule, FontAwesomeModule, RouterModule.forChild([])], declarations: [ NshmpTemplateComponent, FooterBottomNavbarComponent, diff --git a/projects/nshmp-template/src/scss/_material-theme.scss b/projects/nshmp-template/src/scss/_material-theme.scss index 99299e4..90134b1 100644 --- a/projects/nshmp-template/src/scss/_material-theme.scss +++ b/projects/nshmp-template/src/scss/_material-theme.scss @@ -6,9 +6,7 @@ @import '~@angular/material/theming'; /* Import Google material icons */ -@import url('https://fonts.googleapis.com/icon?family=Material+Icons'); - -@import url('https://use.fontawesome.com/releases/v5.7.1/css/all.css'); +@import url('https://fonts.googleapis.com/icon?family=Material+Icons&display=swap'); /* Include the common styles for Angular Material. We include this here so that you only @@ -23,35 +21,35 @@ Generated from http://mcg.mbitson.com. */ $usa-primary-darker: ( - 50 : #e4e9f0, - 100 : #bac7d9, - 200 : #8da2c0, - 300 : #5f7ca6, - 400 : #3c6093, - 500 : #1a4480, - 600 : #173e78, - 700 : #13356d, - 800 : #0f2d63, - 900 : #081f50, - A100 : #85a4ff, - A200 : #527eff, - A400 : #1f58ff, - A700 : #0546ff, + 50: #e4e9f0, + 100: #bac7d9, + 200: #8da2c0, + 300: #5f7ca6, + 400: #3c6093, + 500: #1a4480, + 600: #173e78, + 700: #13356d, + 800: #0f2d63, + 900: #081f50, + A100: #85a4ff, + A200: #527eff, + A400: #1f58ff, + A700: #0546ff, contrast: ( - 50 : #000000, - 100 : #000000, - 200 : #000000, - 300 : #ffffff, - 400 : #ffffff, - 500 : #ffffff, - 600 : #ffffff, - 700 : #ffffff, - 800 : #ffffff, - 900 : #ffffff, - A100 : #000000, - A200 : #ffffff, - A400 : #ffffff, - A700 : #ffffff, + 50: #000000, + 100: #000000, + 200: #000000, + 300: #ffffff, + 400: #ffffff, + 500: #ffffff, + 600: #ffffff, + 700: #ffffff, + 800: #ffffff, + 900: #ffffff, + A100: #000000, + A200: #ffffff, + A400: #ffffff, + A700: #ffffff ) ); @@ -67,10 +65,7 @@ $nshmp-accent: mat-palette($mat-grey, A200, A200, A400); $nshmp-warn: mat-palette($mat-red); /* Create the theme object (a Sass map containing all of the palettes). */ -$nshmp-theme: mat-light-theme( - $nshmp-primary, - $nshmp-accent, - $nshmp-warn); +$nshmp-theme: mat-light-theme($nshmp-primary, $nshmp-accent, $nshmp-warn); /* Include theme styles for core and each component used in your app. diff --git a/projects/nshmp-template/src/scss/_uswds-theme.scss b/projects/nshmp-template/src/scss/_uswds-theme.scss index a28f276..44d2720 100644 --- a/projects/nshmp-template/src/scss/_uswds-theme.scss +++ b/projects/nshmp-template/src/scss/_uswds-theme.scss @@ -3,6 +3,7 @@ $theme-font-path: '~uswds/dist/fonts'; $theme-image-path: '~uswds/dist/img'; $theme-show-notifications: false; +$theme-hero-image: '/assets/usgs-logo.svg'; $theme-utility-breakpoints: ( 'card': false, @@ -26,9 +27,3 @@ $theme-utility-breakpoints: ( ); @import '~uswds/dist/scss/uswds.scss'; -@import '~uswds/dist/scss/theme/uswds-theme-general'; -@import '~uswds/dist/scss/theme/uswds-theme-typography'; -@import '~uswds/dist/scss/theme/uswds-theme-spacing'; -@import '~uswds/dist/scss/theme/uswds-theme-color'; -@import '~uswds/dist/scss/theme/uswds-theme-utilities'; -@import '~uswds/dist/scss/theme/uswds-theme-components'; -- GitLab From 32be483c236ddb8fb6d8d50badc2e3274276b5e2 Mon Sep 17 00:00:00 2001 From: bclayton-usgs <bclayton@usgs.gov> Date: Fri, 24 Jul 2020 16:15:42 -0600 Subject: [PATCH 2/3] update --- .gitlab-ci.yml | 11 +---------- package.json | 5 ++--- 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6bfb5b4..ba4ecbf 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -42,21 +42,12 @@ Build example: #### # Lint nshmp-template library #### -Lint nshmp-template: +Lint: stage: test extends: .node script: - npm run lint -#### -# Lint example application -#### -Lint example: - stage: test - extends: .node - script: - - npm run lint:example - # #### # # Run Jest tests on nshmp-template # #### diff --git a/package.json b/package.json index e3e3a52..e60aa32 100644 --- a/package.json +++ b/package.json @@ -15,11 +15,10 @@ "test:example": "ng test example", "lint": "ng lint", "lint:fix": "npm run lint -- --fix", - "lint:example": "ng lint example", "e2e": "ng e2e nshmp-template", "e2e:example": "ng e2e example", - "pre-commit": "pretty-quick --staged && npm run lint && npm run lint:example", - "pre-push": "npm run pre-commit && npm run build" + "pre-commit": "pretty-quick --staged && npm run lint", + "pre-push": "npm run build" }, "private": true, "dependencies": { -- GitLab From d1f538ab702399878ad66e638a43fd2f2b4e1d37 Mon Sep 17 00:00:00 2001 From: bclayton-usgs <bclayton@usgs.gov> Date: Fri, 24 Jul 2020 16:52:09 -0600 Subject: [PATCH 3/3] cleanup --- clean-dist.sh | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100755 clean-dist.sh diff --git a/clean-dist.sh b/clean-dist.sh new file mode 100755 index 0000000..275f99b --- /dev/null +++ b/clean-dist.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +cd dist/example || exit; +rm $(find . -name "*.svg" ! -name "plus*.svg" ! -name "minus*.svg" ! -name "search*.svg" ! -path "./assets/*"); +rm $(find . -name "sourcesanspro-*" ! -name "sourcesanspro-bold-*" ! -name "sourcesanspro-regular-*"); +rm Latin*; +rm roboto*; diff --git a/package.json b/package.json index e60aa32..a0c307d 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "build": "./build.sh", "build:example:stats": "npm run build:example:prod -- --stats-json", "build:example": "ng build example", - "build:example:prod": "ng build example-prod --prod --aot --build-optimizer", + "build:example:prod": "ng build example-prod --prod --aot --build-optimizer && ./clean-dist.sh", "test": "ng test nshmp-template", "test:example": "ng test example", "lint": "ng lint", -- GitLab