diff --git a/.gitignore b/.gitignore index 1d304f0f0..0b5c2ea34 100644 --- a/.gitignore +++ b/.gitignore @@ -1,63 +1,69 @@ -# See http://help.github.com/ignore-files/ for more about ignoring files. +### Git ### +!.gitkeep -# compiled output -/dist -/tmp -/out-tsc -# Only exists if Bazel was run -/bazel-out -# dependencies -node_modules +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache -# profiling files -chrome-profiler-events*.json -speed-measure-plugin*.json -# IDEs and editors -/.idea -.project -.classpath -.c9/ -*.launch -.settings/ -*.sublime-workspace - -# IDE - VSCode -.vscode/* -!.vscode/settings.json -!.vscode/tasks.json -!.vscode/launch.json -!.vscode/extensions.json -.history/* - -# misc -/.sass-cache -/connect.lock -/coverage -/libpeerconnection.log -npm-debug.log -yarn-error.log -testem.log -/typings +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ + +/.nb-gradle/ -# System Files + +### VS Code ### +.vscode/ + +dump.rdb + + +### OS Specific ### .DS_Store -Thumbs.db +.tmp/ + +tmp/ + +### Node / NPM ### coverage/ -development/ -docs/ -static/ -.lighthouseci/ -.vscode/ +logs/ +node_modules/ + +.npmrc +npm-debug.log package-lock.json -yarn.lock + + +### Project Specific ### src/config.json src/config-template.json src/assets/icons/* -!src/assets/icons/tl -!src/assets/icons/bootstrap +src/assets/tinymce/ +!src/assets/icons/custom/weaver-w.svg +!src/assets/icons/feather/chevron-right.svg .wvr-ud/static-assets/styles.css +.verdaccio + +docs/ +static/ +development/ +.lighthouseci/ diff --git a/Dockerfile b/Dockerfile index 08681678a..1fa1005bd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,38 +1,73 @@ -FROM node:16-slim as npm +# Settings. +ARG USER_ID=3001 +ARG USER_NAME=components +ARG SOURCE_DIR=/$USER_NAME/source +ARG NPM_REGISTRY=upstream +ARG NODE_ENV=development -COPY package.json ./ +# Node stage. +FROM node:lts-slim as build +ARG USER_ID +ARG USER_NAME +ARG SOURCE_DIR +ARG NPM_REGISTRY +ARG NODE_ENV -WORKDIR /app -COPY . . +ENV NODE_ENV=$NODE_ENV -RUN npm install -RUN npm run build +# Create the user and group (use a high ID to attempt to avoid conflicts). +RUN groupadd --non-unique -g $USER_ID $USER_NAME && \ + useradd --non-unique -d /$USER_NAME -m -u $USER_ID -g $USER_ID $USER_NAME -FROM httpd:2.4-alpine +# Update the system and install dependencies (iproute2 is needed for "ip"). +RUN apt-get update && \ + apt-get upgrade -y && \ + apt install iproute2 -y && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* -ARG MAJOR_VERSION=0x -ARG MAJOR_MINOR_VERSION=0.0 +# Copy in files from outside of docker. +COPY . $SOURCE_DIR + +# Ensure required file permissions. +RUN chown -R $USER_ID:$USER_ID $SOURCE_DIR + +# Set deployment directory. +WORKDIR $SOURCE_DIR -COPY --from=npm /app/dist/bundle/ /usr/local/apache2/htdocs/tl-components/bundle +# Login as user. +USER $USER_NAME -RUN ln -s /usr/local/apache2/htdocs/tl-components/bundle /usr/local/apache2/htdocs/tl-components/latest -RUN ln -s /usr/local/apache2/htdocs/tl-components/bundle /usr/local/apache2/htdocs/tl-components/${MAJOR_VERSION}x -RUN ln -s /usr/local/apache2/htdocs/tl-components/bundle /usr/local/apache2/htdocs/tl-components/${MAJOR_MINOR_VERSION} +# Perform actions. +RUN echo $NPM_REGISTRY && \ + bash build/docker-npmrc.sh $NPM_REGISTRY && \ + npm install && \ + npm run build + +# Apache stage. +FROM httpd:2.4-alpine +ARG SOURCE_DIR +ARG MAJOR_VERSION=0x +ARG MAJOR_MINOR_VERSION=0.0 -COPY --from=npm /app/src/config-template.json tmp/config-template.json -COPY docker-entrypoint /usr/local/bin/ +COPY --from=build $SOURCE_DIR/dist/bundle/ /usr/local/apache2/htdocs/tl-components/bundle +COPY --from=build $SOURCE_DIR/src/config-template.json tmp/config-template.json -RUN chmod +x /usr/local/bin/docker-entrypoint +RUN ln -s /usr/local/apache2/htdocs/tl-components/bundle /usr/local/apache2/htdocs/tl-components/latest && \ + ln -s /usr/local/apache2/htdocs/tl-components/bundle /usr/local/apache2/htdocs/tl-components/${MAJOR_VERSION}x && \ + ln -s /usr/local/apache2/htdocs/tl-components/bundle /usr/local/apache2/htdocs/tl-components/${MAJOR_MINOR_VERSION} -ENTRYPOINT ["docker-entrypoint"] +COPY build/docker-entrypoint.sh /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-entrypoint.sh -RUN apk update; -RUN apk upgrade; +ENTRYPOINT ["docker-entrypoint.sh"] -RUN echo "" >> /usr/local/apache2/conf/httpd.conf -RUN echo "###SPECIFIC CUSTOMIZATIONS###" >> /usr/local/apache2/conf/httpd.conf -RUN echo "" >> /usr/local/apache2/conf/httpd.conf +RUN apk update && \ + apk upgrade -RUN printf ' \nOrder Allow,Deny \nAllow from all \nAllowOverride all \nHeader set Access-Control-Allow-Origin "*" \n' >> /usr/local/apache2/conf/httpd.conf +RUN echo "" >> /usr/local/apache2/conf/httpd.conf && \ + echo "###SPECIFIC CUSTOMIZATIONS###" >> /usr/local/apache2/conf/httpd.conf && \ + echo "" >> /usr/local/apache2/conf/httpd.conf && \ + printf ' \nOrder Allow,Deny \nAllow from all \nAllowOverride all \nHeader set Access-Control-Allow-Origin "*" \n' >> /usr/local/apache2/conf/httpd.conf CMD ["httpd", "-D", "FOREGROUND"] diff --git a/docker-entrypoint b/build/docker-entrypoint.sh similarity index 100% rename from docker-entrypoint rename to build/docker-entrypoint.sh diff --git a/build/docker-npmrc.sh b/build/docker-npmrc.sh new file mode 100644 index 000000000..f0a8a8a83 --- /dev/null +++ b/build/docker-npmrc.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# Requires ip and awk, but only for docker-linux. + +main() { + if [[ $1 == "docker-linux" ]] ; then + to_npmrc $(ip route | awk '/^default via/ { print $3 }') + elif [[ $1 == "docker-windows" || $1 == "docker-mac" ]] ; then + to_npmrc host.docker.internal + fi +} + +to_npmrc() { + echo "Setting NPM registry to '$1'." + echo "registry=http://$1:4873" >> .npmrc +} + +main "$@" diff --git a/package.json b/package.json index 635a8ffdb..e17132423 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "type": "git", "url": "git+https://github.com/TAMULib/tamu-library-components.git" }, - "version": "2.0.2", + "version": "2.0.3-rc.1", "private": false, "license": "MIT", "engines": { @@ -59,84 +59,68 @@ "test:ci": "npm run test:audit && npm run test:coverage" }, "dependencies": { - "@angular/animations": "^12.2.16", - "@angular/common": "^12.2.16", - "@angular/compiler": "^12.2.16", - "@angular/core": "^12.2.16", - "@angular/elements": "^12.2.16", - "@angular/forms": "^12.2.16", - "@angular/localize": "^12.2.16", - "@angular/platform-browser": "^12.2.16", - "@angular/platform-browser-dynamic": "^12.2.16", - "@angular/router": "^12.2.16", - "@ng-bootstrap/ng-bootstrap": "^10.0.0", - "@ngrx/effects": "^12.4.0", - "@ngrx/entity": "^12.4.0", - "@ngrx/store": "^12.4.0", - "@ngrx/store-devtools": "^12.4.0", - "@stomp/stompjs": "^6.1.2", - "@tinymce/tinymce-angular": "^4.2.4", - "@ungap/custom-elements": "^1.1.0", - "@wvr/elements": "2.0.2", - "bootstrap": "^4.6.2", - "css-element-queries": "^1.2.3", - "handlebars": "^4.7.7", - "jsdom": "^20.0.0", - "karma-viewport": "^1.0.9", - "ng-inline-svg": "^13.1.1", - "ng-lazyload-image": "^9.1.3", - "ngx-build-plus": "^12.2.0", - "rxjs-compat": "^6.6.7", - "sockjs-client": "^1.6.1", - "tinymce": "^6.1.2", - "tslib": "^2.4.0", - "web-animations-js": "^2.3.2", - "zone.js": "~0.11.8" + "@angular/animations": "12.2.16", + "@angular/elements": "12.2.16", + "@angular/platform-browser-dynamic": "12.2.16", + "@ng-bootstrap/ng-bootstrap": "10.0.0", + "@ngrx/effects": "12.5.1", + "@ngrx/entity": "12.5.1", + "@ngrx/store-devtools": "12.5.1", + "@stomp/stompjs": "6.1.2", + "@tinymce/tinymce-angular": "4.2.4", + "@wvr/elements": "next", + "bootstrap": "4.6.2", + "ng-lazyload-image": "9.1.3", + "ngx-build-plus": "12.2.0", + "sockjs-client": "1.6.1", + "tinymce": "6.2.0" }, "devDependencies": { - "@angular-devkit/build-angular": "^12.2.16", - "@angular-devkit/schematics": "^12.2.16", - "@angular-eslint/eslint-plugin": "^14.0.3", - "@angular/cli": "^12.2.16", - "@angular/compiler-cli": "^12.2.16", - "@angular/language-service": "^12.2.16", - "@compodoc/compodoc": "^1.1.19", - "@lhci/cli": "^0.8.1", - "@types/jasmine": "~3.10.3", - "@types/jasminewd2": "~2.0.10", - "@types/node": "^16.11.7", - "@typescript-eslint/eslint-plugin": "^5.36.1", - "@typescript-eslint/eslint-plugin-tslint": "^5.36.1", - "@typescript-eslint/parser": "^5.36.1", - "codelyzer": "^6.0.2", - "concat": "^1.0.3", - "console-stamp": "^3.0.6", - "coveralls": "^3.1.1", - "dotenv-override-true": "^6.2.2", - "eslint": "^8.23.0", - "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "glob": "^7.2.3", - "jasmine-core": "~3.9.0", - "jasmine-spec-reporter": "~7.0.0", - "karma": "~6.4.0", - "karma-chrome-launcher": "~3.1.1", - "karma-coverage": "^2.2.0", - "karma-coverage-istanbul-reporter": "~3.0.3", - "karma-jasmine": "~4.0.2", - "karma-jasmine-html-reporter": "^1.7.0", - "karma-ng-html2js-preprocessor": "^1.0.0", - "lighthouse": "^9.6.6", - "lighthouse-badges": "^1.1.26", - "ng-packagr": "^12.2.7", - "protractor": "~7.0.0", - "rimraf": "^3.0.2", - "shelljs": "^0.8.5", - "static-server": "^2.2.1", - "ts-node": "~10.2.1", - "typescript": "~4.3.5" + "@angular-devkit/build-angular": "12.2.16", + "@angular-eslint/eslint-plugin": "14.1.2", + "@angular/cli": "12.2.16", + "@compodoc/compodoc": "1.1.19", + "@lhci/cli": "0.9.0", + "@types/jasminewd2": "2.0.10", + "@typescript-eslint/eslint-plugin": "5.38.1", + "@typescript-eslint/eslint-plugin-tslint": "5.38.1", + "codelyzer": "6.0.2", + "concat": "1.0.3", + "console-stamp": "3.0.6", + "coveralls": "3.1.1", + "dotenv-override-true": "6.2.2", + "eslint": "8.24.0", + "eslint-config-prettier": "8.5.0", + "eslint-plugin-import": "2.26.0", + "glob": "7.2.3", + "jasmine": "4.4.0", + "jasmine-spec-reporter": "7.0.0", + "jsdom": "20.0.0", + "karma": "6.4.1", + "karma-chrome-launcher": "3.1.1", + "karma-coverage": "2.2.0", + "karma-coverage-istanbul-reporter": "3.0.3", + "karma-jasmine": "4.0.2", + "karma-jasmine-html-reporter": "1.7.0", + "karma-ng-html2js-preprocessor": "1.0.0", + "karma-viewport": "1.0.9", + "lighthouse": "9.6.7", + "lighthouse-badges": "1.1.26", + "ng-packagr": "12.2.7", + "protractor": "7.0.0", + "shelljs": "0.8.5", + "static-server": "2.2.1", + "ts-node": "10.9.1" }, "overrides": { - "@types/eslint": "^6.1.3" + "@angular/core": "12.2.16", + "@types/eslint": "6.8.1", + "chokidar": "3.5.3", + "fs-extra": "10.1.0", + "glob": "7.2.3", + "latest-version": "7.0.0", + "selfsigned": "2.1.1", + "terser": "5.15.0", + "tslib": "2.4.0" } } diff --git a/projects/tl-elements/ng-package.json b/projects/tl-elements/ng-package.json index b116fe8ab..65ec29fa3 100644 --- a/projects/tl-elements/ng-package.json +++ b/projects/tl-elements/ng-package.json @@ -5,8 +5,7 @@ "entryFile": "src/public-api.ts", "umdModuleIds": { "@wvr/elements": "elements", - "@tinymce/tinymce-angular": "tinymceAngular", - "ng-inline-svg": "ngInlineSvg" + "@tinymce/tinymce-angular": "tinymceAngular" } }, "allowedNonPeerDependencies": [] diff --git a/projects/tl-elements/package.json b/projects/tl-elements/package.json index 8d23d47bd..1a0effbf2 100644 --- a/projects/tl-elements/package.json +++ b/projects/tl-elements/package.json @@ -1,6 +1,6 @@ { "name": "@wvr/tl-elements", - "version": "2.0.2", + "version": "2.0.3-rc.1", "description": "Collection of angular components for TAMU's Custom Web Component UI", "author": "Texas A&M University Libraries", "private": false, @@ -21,13 +21,11 @@ ], "license": "MIT", "dependencies": { - "tslib": "^2.3.1" + "tslib": "2.4.0" }, "peerDependencies": { - "@angular/common": "^12.2.7", - "@angular/core": "^12.2.7", - "@tinymce/tinymce-angular": "^4.2.1", - "@wvr/elements": "2.0.2", - "ng-inline-svg": "^12.1.0" + "@angular/common": "12.2.16", + "@tinymce/tinymce-angular": "4.2.4", + "@wvr/elements": "next" } } diff --git a/projects/tl-elements/src/lib/shared/styles/tl-branded-btn.scss b/projects/tl-elements/src/lib/shared/styles/tl-branded-btn.scss deleted file mode 100644 index 96faae4db..000000000 --- a/projects/tl-elements/src/lib/shared/styles/tl-branded-btn.scss +++ /dev/null @@ -1,5 +0,0 @@ -@import "./tl-variables.scss"; - -:host { - -} diff --git a/projects/tl-elements/src/lib/shared/tl-shared.module.ts b/projects/tl-elements/src/lib/shared/tl-shared.module.ts index c3fde7455..f492e66d9 100644 --- a/projects/tl-elements/src/lib/shared/tl-shared.module.ts +++ b/projects/tl-elements/src/lib/shared/tl-shared.module.ts @@ -3,7 +3,6 @@ import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { EditorModule } from '@tinymce/tinymce-angular'; import { WvrSharedModule } from '@wvr/elements'; -import { InlineSVGModule } from 'ng-inline-svg'; import { TlAlertComponent } from '../tl-alert/tl-alert.component'; import { TlButtonComponent } from '../tl-button/tl-button.component'; import { TlCardComponent } from '../tl-card/tl-card.component'; @@ -51,7 +50,6 @@ const MODULES = [ CommonModule, EditorModule, FormsModule, - InlineSVGModule, ReactiveFormsModule, WvrSharedModule ]; diff --git a/projects/tl-elements/src/lib/tl-alert/tl-alert.component.scss b/projects/tl-elements/src/lib/tl-alert/tl-alert.component.scss index 9981416a5..851aaa99a 100644 --- a/projects/tl-elements/src/lib/tl-alert/tl-alert.component.scss +++ b/projects/tl-elements/src/lib/tl-alert/tl-alert.component.scss @@ -1,5 +1,4 @@ -@import "../shared/styles/tl-encapsulated.scss"; -@import "../shared/styles/tl-branded-btn.scss"; +@import "../shared/styles/tl-variables.scss"; :host { diff --git a/projects/tl-elements/src/lib/tl-button/tl-button.component.scss b/projects/tl-elements/src/lib/tl-button/tl-button.component.scss index 423148455..7ea3f004e 100644 --- a/projects/tl-elements/src/lib/tl-button/tl-button.component.scss +++ b/projects/tl-elements/src/lib/tl-button/tl-button.component.scss @@ -1,4 +1,4 @@ -@import "../shared/styles/tl-branded-btn.scss"; +@import "../shared/styles/tl-variables.scss"; :host { diff --git a/projects/tl-elements/src/lib/tl-card/tl-card.component.scss b/projects/tl-elements/src/lib/tl-card/tl-card.component.scss index fe513b4d0..6173d92bb 100644 --- a/projects/tl-elements/src/lib/tl-card/tl-card.component.scss +++ b/projects/tl-elements/src/lib/tl-card/tl-card.component.scss @@ -1,3 +1 @@ -@import "../shared/styles/tl-encapsulated.scss"; -@import "../shared/styles/tl-branded-btn.scss"; - +@import "../shared/styles/tl-variables.scss"; diff --git a/projects/tl-elements/src/lib/tl-dropdown-menu/tl-dropdown-menu.component.scss b/projects/tl-elements/src/lib/tl-dropdown-menu/tl-dropdown-menu.component.scss index 7dc12728b..c6445b323 100644 --- a/projects/tl-elements/src/lib/tl-dropdown-menu/tl-dropdown-menu.component.scss +++ b/projects/tl-elements/src/lib/tl-dropdown-menu/tl-dropdown-menu.component.scss @@ -1,4 +1,3 @@ -@import "../shared/styles/tl-encapsulated.scss"; @import "../shared/styles/tl-variables.scss"; :host { diff --git a/projects/tl-elements/src/lib/tl-dropdown/tl-dropdown.component.scss b/projects/tl-elements/src/lib/tl-dropdown/tl-dropdown.component.scss index 766ae3baf..cebdad050 100644 --- a/projects/tl-elements/src/lib/tl-dropdown/tl-dropdown.component.scss +++ b/projects/tl-elements/src/lib/tl-dropdown/tl-dropdown.component.scss @@ -1,4 +1,4 @@ -@import "../shared/styles/tl-branded-btn.scss"; +@import "../shared/styles/tl-variables.scss"; :host { diff --git a/projects/tl-elements/src/lib/tl-footer/tl-footer.component.scss b/projects/tl-elements/src/lib/tl-footer/tl-footer.component.scss index 237533d59..f67a33307 100644 --- a/projects/tl-elements/src/lib/tl-footer/tl-footer.component.scss +++ b/projects/tl-elements/src/lib/tl-footer/tl-footer.component.scss @@ -1,5 +1,5 @@ @import "../shared/styles/tl-encapsulated.scss"; -@import "../shared/styles/tl-branded-btn.scss"; +@import "../shared/styles/tl-variables.scss"; :host { font-family: var(--tl-font-family-sans-serif); diff --git a/projects/tl-elements/src/lib/tl-header/tl-header.component.scss b/projects/tl-elements/src/lib/tl-header/tl-header.component.scss index 01e243b71..149eb0878 100644 --- a/projects/tl-elements/src/lib/tl-header/tl-header.component.scss +++ b/projects/tl-elements/src/lib/tl-header/tl-header.component.scss @@ -1,5 +1,5 @@ @import "../shared/styles/tl-encapsulated.scss"; -@import "../shared/styles/tl-branded-btn.scss"; +@import "../shared/styles/tl-variables.scss"; :host { font-family: var(--tl-font-family-sans-serif); @@ -150,6 +150,10 @@ a { padding: 8px 0px 8px 8px; width: 100%; + color: rgb(0, 100, 139); + &:hover { + color: rgb(0, 63, 88); + } } tl-icon-component svg { diff --git a/projects/tl-elements/src/lib/tl-icon/tl-icon.component.scss b/projects/tl-elements/src/lib/tl-icon/tl-icon.component.scss index dbe63be34..408b89a72 100644 --- a/projects/tl-elements/src/lib/tl-icon/tl-icon.component.scss +++ b/projects/tl-elements/src/lib/tl-icon/tl-icon.component.scss @@ -3,9 +3,10 @@ :host { tl-icon-wrapper { display: inline-block; + margin-left: 5px; } - wvre-icon { + wvr-icon-component { --wvr-icon-color: inherit; --wvr-icon-size: inherit; } diff --git a/projects/tl-elements/src/lib/tl-it-works/tl-it-works.component.scss b/projects/tl-elements/src/lib/tl-it-works/tl-it-works.component.scss index e748096b5..3f5727cd6 100644 --- a/projects/tl-elements/src/lib/tl-it-works/tl-it-works.component.scss +++ b/projects/tl-elements/src/lib/tl-it-works/tl-it-works.component.scss @@ -1,4 +1,3 @@ -@import "../shared/styles/tl-encapsulated.scss"; @import "../shared/styles/tl-variables.scss"; :host { diff --git a/projects/tl-elements/src/lib/tl-it-works/tl-it-works.component.ts b/projects/tl-elements/src/lib/tl-it-works/tl-it-works.component.ts index 5bfa456e8..a947e270a 100644 --- a/projects/tl-elements/src/lib/tl-it-works/tl-it-works.component.ts +++ b/projects/tl-elements/src/lib/tl-it-works/tl-it-works.component.ts @@ -1,11 +1,10 @@ -import { ChangeDetectionStrategy, Component, Injector, Input, ViewEncapsulation } from '@angular/core'; +import { ChangeDetectionStrategy, Component, Injector, Input } from '@angular/core'; import { TamuAbstractBaseComponent } from '../shared/tl-abstract-base.component'; @Component({ selector: 'tl-it-works-component', templateUrl: './tl-it-works.component.html', styleUrls: ['./tl-it-works.component.scss'], - encapsulation: ViewEncapsulation.ShadowDom, changeDetection: ChangeDetectionStrategy.Default }) export class TlItWorksComponent extends TamuAbstractBaseComponent { diff --git a/projects/tl-elements/src/lib/tl-mega-menu/tl-mega-menu.component.scss b/projects/tl-elements/src/lib/tl-mega-menu/tl-mega-menu.component.scss index 9a24dfd86..31e086b11 100644 --- a/projects/tl-elements/src/lib/tl-mega-menu/tl-mega-menu.component.scss +++ b/projects/tl-elements/src/lib/tl-mega-menu/tl-mega-menu.component.scss @@ -1,4 +1,3 @@ -@import "../shared/styles/tl-encapsulated.scss"; @import "../shared/styles/tl-variables.scss"; :host { diff --git a/projects/tl-elements/src/lib/tl-modal/tl-modal.component.scss b/projects/tl-elements/src/lib/tl-modal/tl-modal.component.scss index bc3a22b21..0ce1953b9 100644 --- a/projects/tl-elements/src/lib/tl-modal/tl-modal.component.scss +++ b/projects/tl-elements/src/lib/tl-modal/tl-modal.component.scss @@ -1,5 +1,4 @@ -@import "../shared/styles/tl-encapsulated.scss"; -@import "../shared/styles/tl-branded-btn.scss"; +@import "../shared/styles/tl-variables.scss"; :host { diff --git a/projects/tl-elements/src/lib/tl-nav-list/tl-nav-list.component.scss b/projects/tl-elements/src/lib/tl-nav-list/tl-nav-list.component.scss index 880c0e667..6173d92bb 100644 --- a/projects/tl-elements/src/lib/tl-nav-list/tl-nav-list.component.scss +++ b/projects/tl-elements/src/lib/tl-nav-list/tl-nav-list.component.scss @@ -1,2 +1 @@ -@import "../shared/styles/tl-encapsulated.scss"; -@import "../shared/styles/tl-branded-btn.scss"; +@import "../shared/styles/tl-variables.scss"; diff --git a/projects/tl-elements/src/lib/tl-nav-list/tl-nav-list.component.ts b/projects/tl-elements/src/lib/tl-nav-list/tl-nav-list.component.ts index 7aa605eac..f9d8241fb 100644 --- a/projects/tl-elements/src/lib/tl-nav-list/tl-nav-list.component.ts +++ b/projects/tl-elements/src/lib/tl-nav-list/tl-nav-list.component.ts @@ -1,4 +1,4 @@ -import { ChangeDetectionStrategy, Component, Injector, Input, ViewEncapsulation } from '@angular/core'; +import { ChangeDetectionStrategy, Component, Injector, Input } from '@angular/core'; import { Alignment } from '@wvr/elements'; import { TamuAbstractBaseComponent } from '../shared/tl-abstract-base.component'; @@ -10,7 +10,6 @@ import { TamuAbstractBaseComponent } from '../shared/tl-abstract-base.component' selector: 'tl-nav-list-component', templateUrl: './tl-nav-list.component.html', styleUrls: ['./tl-nav-list.component.scss'], - encapsulation: ViewEncapsulation.ShadowDom, changeDetection: ChangeDetectionStrategy.Default }) export class TlNavListComponent extends TamuAbstractBaseComponent { diff --git a/projects/tl-elements/src/lib/tl-tabs/tl-tab/tl-tab.component.scss b/projects/tl-elements/src/lib/tl-tabs/tl-tab/tl-tab.component.scss index 159ec2683..ea50b7d98 100644 --- a/projects/tl-elements/src/lib/tl-tabs/tl-tab/tl-tab.component.scss +++ b/projects/tl-elements/src/lib/tl-tabs/tl-tab/tl-tab.component.scss @@ -1,5 +1,4 @@ -@import "../../shared/styles/tl-encapsulated.scss"; -@import "../../shared/styles/tl-branded-btn.scss"; +@import "../../shared/styles/tl-variables.scss"; :host { diff --git a/projects/tl-elements/src/lib/tl-wysiwyg/tl-wysiwyg.component.scss b/projects/tl-elements/src/lib/tl-wysiwyg/tl-wysiwyg.component.scss index 9a72b7283..8fab198a6 100644 --- a/projects/tl-elements/src/lib/tl-wysiwyg/tl-wysiwyg.component.scss +++ b/projects/tl-elements/src/lib/tl-wysiwyg/tl-wysiwyg.component.scss @@ -1,5 +1,4 @@ -@import "../shared/styles/tl-encapsulated.scss"; -@import "../shared/styles/tl-branded-btn.scss"; +@import "../shared/styles/tl-variables.scss"; :host { diff --git a/projects/tl-elements/src/test.ts b/projects/tl-elements/src/test.ts index e84a96d6d..7277a6b53 100644 --- a/projects/tl-elements/src/test.ts +++ b/projects/tl-elements/src/test.ts @@ -1,6 +1,4 @@ // This file is required by karma.conf.js and loads recursively all the .spec and framework files -// tslint:disable-next-line:no-import-side-effect -import '@angular/localize/init'; /* tslint:disable: no-import-side-effect */ import 'zone.js'; import 'zone.js/testing'; diff --git a/scripts/serve-dist.js b/scripts/serve-dist.js index 7d0e63e1b..8ada5da29 100644 --- a/scripts/serve-dist.js +++ b/scripts/serve-dist.js @@ -3,9 +3,20 @@ const fs = require('fs'); const path = require('path'); const express = require('express'); +const compression = require('compression'); const server = express(); +server.use(compression({ + filter: (req, res) => { + if (req.headers['x-no-compression']) { + return false; + } + + return compression.filter(req, res); + } +})); + server.use(express.static('www', { maxAge: 3600000 })); fs.copyFileSync('src/index.html', `dist/bundle/index.html`); diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 831f1f7df..ff94d41fd 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,7 +1,7 @@ import { Injector, NgModule } from '@angular/core'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { Store } from '@ngrx/store'; -import { StoreDevtoolsModule } from '@ngrx/store-devtools'; +import { storeDevtoolsInstrument } from '../environments/environment'; import { TINYMCE_SCRIPT_SRC } from '@tinymce/tinymce-angular'; import { actions, AppConfig, APP_CONFIG, registerWeaverElements, RootState, ThemeVariants } from '@wvr/elements'; import { themes } from '../../projects/tl-elements/src/lib/shared/themes'; @@ -13,10 +13,7 @@ const getTinyMCEScript = (appConfig: AppConfig): string => `${appConfig.assetsUr @NgModule({ imports: [ BrowserAnimationsModule, - StoreDevtoolsModule.instrument({ - maxAge: 25, // retains last 25 states - logOnly: true // restrict extension to log-only mode - }), + ...storeDevtoolsInstrument, TLCoreModule, TLSharedModule ], diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts index 3612073bc..5be57f1b1 100644 --- a/src/environments/environment.prod.ts +++ b/src/environments/environment.prod.ts @@ -1,3 +1,6 @@ +// Excluse devtools from production as per https://ngrx.io/guide/store-devtools/recipes/exclude . +export const storeDevtoolsInstrument = []; + export const environment = { production: true }; diff --git a/src/environments/environment.ts b/src/environments/environment.ts index 30d7bccb1..61967a0c7 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -1,3 +1,13 @@ +import { StoreDevtoolsModule } from '@ngrx/store-devtools'; + +// Excluse devtools from production as per https://ngrx.io/guide/store-devtools/recipes/exclude . +export const storeDevtoolsInstrument = [ + StoreDevtoolsModule.instrument({ + maxAge: 25, // retains last 25 states + logOnly: true // restrict extension to log-only mode + }) +]; + // This file can be replaced during build by using the `fileReplacements` array. // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. // The list of file replacements can be found in `angular.json`. diff --git a/src/index.html b/src/index.html old mode 100755 new mode 100644 index 501164b22..652aff9ea --- a/src/index.html +++ b/src/index.html @@ -5,6 +5,8 @@ TAMU Library Components + +