diff --git a/angular.json b/angular.json index c1e4699e4..50cbef8d1 100644 --- a/angular.json +++ b/angular.json @@ -485,6 +485,55 @@ "common-docs" ] }, + "route-pages-blackout-page": { + "projectType": "library", + "root": "libs/route-pages/blackout-page", + "sourceRoot": "libs/route-pages/blackout-page/src", + "prefix": "valor-software-site-base", + "architect": { + "build": { + "builder": "@nrwl/angular:ng-packagr-lite", + "outputs": [ + "dist/libs/route-pages/blackout-page" + ], + "options": { + "project": "libs/route-pages/blackout-page/ng-package.json" + }, + "configurations": { + "production": { + "tsConfig": "libs/route-pages/blackout-page/tsconfig.lib.prod.json" + }, + "development": { + "tsConfig": "libs/route-pages/blackout-page/tsconfig.lib.json" + } + }, + "defaultConfiguration": "production" + }, + "test": { + "builder": "@nrwl/jest:jest", + "outputs": [ + "coverage/libs/route-pages/blackout-page" + ], + "options": { + "jestConfig": "libs/route-pages/blackout-page/jest.config.ts", + "passWithNoTests": true + } + }, + "lint": { + "builder": "@nrwl/linter:eslint", + "options": { + "lintFilePatterns": [ + "libs/route-pages/blackout-page/src/**/*.ts", + "libs/route-pages/blackout-page/src/**/*.html" + ] + } + } + }, + "tags": [], + "implicitDependencies": [ + "common-docs" + ] + }, "route-pages-for-clients": { "projectType": "library", "root": "libs/route-pages/for-clients", diff --git a/apps/valor-software-site/src/assets/img/bg-img/blackout_page/background.svg b/apps/valor-software-site/src/assets/img/bg-img/blackout_page/background.svg new file mode 100644 index 000000000..3d52f0494 --- /dev/null +++ b/apps/valor-software-site/src/assets/img/bg-img/blackout_page/background.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/valor-software-site/src/assets/img/bg-img/blackout_page/bg_header.png b/apps/valor-software-site/src/assets/img/bg-img/blackout_page/bg_header.png new file mode 100644 index 000000000..0d07110a7 Binary files /dev/null and b/apps/valor-software-site/src/assets/img/bg-img/blackout_page/bg_header.png differ diff --git a/apps/valor-software-site/src/assets/img/bg-img/blackout_page/delivery_1.png b/apps/valor-software-site/src/assets/img/bg-img/blackout_page/delivery_1.png new file mode 100644 index 000000000..1458f6c09 Binary files /dev/null and b/apps/valor-software-site/src/assets/img/bg-img/blackout_page/delivery_1.png differ diff --git a/apps/valor-software-site/src/assets/img/bg-img/blackout_page/delivery_2A.png b/apps/valor-software-site/src/assets/img/bg-img/blackout_page/delivery_2A.png new file mode 100644 index 000000000..79f8e5f5a Binary files /dev/null and b/apps/valor-software-site/src/assets/img/bg-img/blackout_page/delivery_2A.png differ diff --git a/apps/valor-software-site/src/assets/img/bg-img/blackout_page/delivery_2B.png b/apps/valor-software-site/src/assets/img/bg-img/blackout_page/delivery_2B.png new file mode 100644 index 000000000..4be76a1c9 Binary files /dev/null and b/apps/valor-software-site/src/assets/img/bg-img/blackout_page/delivery_2B.png differ diff --git a/apps/valor-software-site/src/assets/img/technologies/svg/angular.svg b/apps/valor-software-site/src/assets/img/technologies/svg/angular.svg new file mode 100644 index 000000000..0a7e957ab --- /dev/null +++ b/apps/valor-software-site/src/assets/img/technologies/svg/angular.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/valor-software-site/src/assets/img/technologies/svg/native_script.svg b/apps/valor-software-site/src/assets/img/technologies/svg/native_script.svg new file mode 100644 index 000000000..28c7495b2 --- /dev/null +++ b/apps/valor-software-site/src/assets/img/technologies/svg/native_script.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/valor-software-site/src/assets/img/technologies/svg/ngrx.svg b/apps/valor-software-site/src/assets/img/technologies/svg/ngrx.svg new file mode 100644 index 000000000..6dddb9a77 --- /dev/null +++ b/apps/valor-software-site/src/assets/img/technologies/svg/ngrx.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/valor-software-site/src/assets/portfolio/clients/blackout.json b/apps/valor-software-site/src/assets/portfolio/clients/blackout.json new file mode 100644 index 000000000..d4ef245a6 --- /dev/null +++ b/apps/valor-software-site/src/assets/portfolio/clients/blackout.json @@ -0,0 +1,13 @@ +{ + "name": "Blackout", + "description": "A unique iPad application that helps set up and control lighting at the stage, or film set which is used in actual Hollywood movies!", + "link": "https://www.blackout-app.com/", + "previewImg": "assets/img/bg-img/blackout_page/bg_header.png", + "headerImg": "assets/img/bg-img/blackout_page/bg_header.png", + "sortServices": ["web"], + "sortTechnologies": ["angular", "ngrx", "native_script"], + "aspects": { + "technology_stack": ["angular", "ngrx", "native_script"], + "services_provided": ["Frontend"] + } +} \ No newline at end of file diff --git a/apps/valor-software-site/src/assets/portfolio/portfolio.list.ts b/apps/valor-software-site/src/assets/portfolio/portfolio.list.ts index ac92ff651..99bc91e4b 100644 --- a/apps/valor-software-site/src/assets/portfolio/portfolio.list.ts +++ b/apps/valor-software-site/src/assets/portfolio/portfolio.list.ts @@ -1,4 +1,5 @@ export const projectsList = [ + 'Blackout', 'Booking', 'Ashes of Creation', 'Terminus', diff --git a/apps/valor-software-site/src/index.html b/apps/valor-software-site/src/index.html index 63a2713a4..db4ab458b 100644 --- a/apps/valor-software-site/src/index.html +++ b/apps/valor-software-site/src/index.html @@ -51,4 +51,4 @@

Click - + \ No newline at end of file diff --git a/libs/common-docs/src/common-docs.module.ts b/libs/common-docs/src/common-docs.module.ts index fe8d05df8..e50a9e29e 100644 --- a/libs/common-docs/src/common-docs.module.ts +++ b/libs/common-docs/src/common-docs.module.ts @@ -31,6 +31,7 @@ import { UtilService } from './services/utils.service'; import { TechnologiesCardComponent } from './components/technologies-card/technologies-card.component'; import { TechnologiesComponent } from './components/technologies/technologies.component'; import { CookieConsentBannerComponent } from './components/cookie-consent-banner/cookie-consent-banner.component'; +import { DeliverableCardComponent } from './components/deliverable-card.component/deliverable-card.component'; export { PopoverComponent } from './components/popover/popover.component'; export { TopMenuComponent } from './components/top-menu/top-menu.component'; @@ -65,6 +66,8 @@ export { ITechnologiesCard } from './components/technologies-card/technologies-c export { UtilService } from './services/utils.service'; export { technologiesAndServices } from './components/technologies/technologies-and-services'; export { CookieConsentBannerComponent } from './components/cookie-consent-banner/cookie-consent-banner.component'; +export { DeliverableCardComponent } from './components/deliverable-card.component/deliverable-card.component'; +export { DeliverableCard } from './components/deliverable-card.component/deliverable-card.component'; @NgModule({ declarations: [ @@ -87,7 +90,8 @@ export { CookieConsentBannerComponent } from './components/cookie-consent-banner ChallengeCardComponent, TechnologiesCardComponent, TechnologiesComponent, - CookieConsentBannerComponent + CookieConsentBannerComponent, + DeliverableCardComponent ], imports: [ CommonModule, @@ -116,7 +120,8 @@ export { CookieConsentBannerComponent } from './components/cookie-consent-banner ChallengeCardComponent, TechnologiesCardComponent, TechnologiesComponent, - CookieConsentBannerComponent + CookieConsentBannerComponent, + DeliverableCardComponent ], providers: [ ModalService, diff --git a/libs/common-docs/src/components/deliverable-card.component/deliverable-card.component.html b/libs/common-docs/src/components/deliverable-card.component/deliverable-card.component.html new file mode 100644 index 000000000..b731ad18b --- /dev/null +++ b/libs/common-docs/src/components/deliverable-card.component/deliverable-card.component.html @@ -0,0 +1,47 @@ + +
+
+

+ {{deliverable.title}}

+ + + +
+ +

+

+
+

+ {{item.title}}

+
+
+
+

{{subItem}}

+
+
+ +
+
+ +
+
+
+
+ +

+

+
+ +
+
+ +
+
+ + +
+
\ No newline at end of file diff --git a/libs/common-docs/src/components/deliverable-card.component/deliverable-card.component.ts b/libs/common-docs/src/components/deliverable-card.component/deliverable-card.component.ts new file mode 100644 index 000000000..56f7f3fda --- /dev/null +++ b/libs/common-docs/src/components/deliverable-card.component/deliverable-card.component.ts @@ -0,0 +1,22 @@ +import { Component, Input } from '@angular/core'; + +export type DeliverableCard = { + title: string; + descriptions: string[]; + imgs: string[]; + impact: string[][]; + fullWidthImg?: boolean; + hierarchyList?: { descriptions?: string[]; title: string, subItems?: string[], imgs: string[] }[]; +}; + +@Component({ + // eslint-disable-next-line @angular-eslint/component-selector + selector: 'deliverable-card', + templateUrl: './deliverable-card.component.html' +}) + + +export class DeliverableCardComponent { + @Input() deliverable?: DeliverableCard; + +} \ No newline at end of file diff --git a/libs/route-pages/blackout-page/.eslintrc.json b/libs/route-pages/blackout-page/.eslintrc.json new file mode 100644 index 000000000..e919e2ddf --- /dev/null +++ b/libs/route-pages/blackout-page/.eslintrc.json @@ -0,0 +1,46 @@ +{ + "extends": [ + "../../../.eslintrc.json" + ], + "ignorePatterns": [ + "!**/*" + ], + "overrides": [ + { + "files": [ + "*.ts" + ], + "extends": [ + "plugin:@nrwl/nx/angular", + "plugin:@angular-eslint/template/process-inline-templates" + ], + "rules": { + "@angular-eslint/directive-selector": [ + "error", + { + "type": "attribute", + "prefix": "valorSoftwareSiteBase", + "style": "camelCase" + } + ], + "@angular-eslint/component-selector": [ + "error", + { + "type": "element", + "prefix": "valor-software-site-base", + "style": "kebab-case" + } + ] + } + }, + { + "files": [ + "*.html" + ], + "extends": [ + "plugin:@nrwl/nx/angular-template" + ], + "rules": {} + } + ] +} diff --git a/libs/route-pages/blackout-page/README.md b/libs/route-pages/blackout-page/README.md new file mode 100644 index 000000000..3799e1d61 --- /dev/null +++ b/libs/route-pages/blackout-page/README.md @@ -0,0 +1,9 @@ +# route-pages-blackout-page + +This library was generated with [Nx](https://nx.dev). + + +## Running unit tests + +Run `nx test route-pages-terminus-page` to execute the unit tests. + diff --git a/libs/route-pages/blackout-page/ng-package.json b/libs/route-pages/blackout-page/ng-package.json new file mode 100644 index 000000000..81458e585 --- /dev/null +++ b/libs/route-pages/blackout-page/ng-package.json @@ -0,0 +1,7 @@ +{ + "$schema": "../../../node_modules/ng-packagr/ng-package.schema.json", + "dest": "../../../dist/libs/route-pages/blackout-page", + "lib": { + "entryFile": "src/index.ts" + } +} diff --git a/libs/route-pages/blackout-page/package.json b/libs/route-pages/blackout-page/package.json new file mode 100644 index 000000000..25bc7c60d --- /dev/null +++ b/libs/route-pages/blackout-page/package.json @@ -0,0 +1,11 @@ +{ + "name": "@valor-software/blackout-page", + "version": "0.0.1", + "peerDependencies": { + "@angular/common": "^12.2.0", + "@angular/core": "^12.2.0" + }, + "dependencies": { + "tslib": "^2.3.0" + } +} diff --git a/libs/route-pages/blackout-page/src/blackout-page.component.html b/libs/route-pages/blackout-page/src/blackout-page.component.html new file mode 100644 index 000000000..d713515b8 --- /dev/null +++ b/libs/route-pages/blackout-page/src/blackout-page.component.html @@ -0,0 +1,123 @@ +
+
+
+ +
+ +
+

Background

+
+
+ background +
+

+ “With the combination of ease and numerous abilities, Blackout + lights up the future of the wireless lighting control industry!” – the software engineer + of + the project. +

+ +

+ The Blackout project comes from the US and represents a genuinely Hollywood-level solution that + helps shoot movies from the top world’s charts. It’s a standalone lighting console desk that + takes + its unique place between full-size complicated consoles and mobile apps for wireless lighting + control which usually lack functionality and customization options for professional use +

+ +

+ The core of the solution is a mobile application built on NativeScript, but there's a + hardware-related twist! In Blackout, we have our IPad-installed software controlling real-time + lighting hardware. +

+ +

+ Valor Software has been entrusted with the development and maintenance of Blackout after it’s + been + initially delivered by someone else. The code hadn’t been tuned and tested, and the application + wasn’t released, so we made it stable, and after particular fixing and polishing, helped it to + conquer the market! +

+
+
+ +
+
+ +
+

Deliverables

+
+

+ Before listing what’s done on this project, let’s dive a bit into its essence and how things work + inside! + The Blackout application is connected to the controllers on the + lighting fixtures located in the WiFi + network. In this way, users can control the lamps through the app, using a common protocol. +

+
+ +
+
+
+ +
+
+

+ Technologies: +

+ + +
+
+ +
+
+ +
+
+ + + +
+ +
+ + +
\ No newline at end of file diff --git a/libs/route-pages/blackout-page/src/blackout-page.component.scss b/libs/route-pages/blackout-page/src/blackout-page.component.scss new file mode 100644 index 000000000..b414cf3fb --- /dev/null +++ b/libs/route-pages/blackout-page/src/blackout-page.component.scss @@ -0,0 +1,165 @@ +#flashlight { + --Xpos: 50vw; + --Ypos: 50vh; +} + +#flashlight:before { + content: ""; + display: block; + width: 100%; + height: 102%; + position: absolute; + z-index: 9999; + + background: radial-gradient(circle 20em at var(--Xpos) var(--Ypos), + rgba(0, 0, 0, 0), + rgba(0, 0, 0, 0.98)); + + @media (max-width: 1024px) { + background: radial-gradient(circle 12.5em at var(--Xpos) var(--Ypos), + rgba(0, 0, 0, 0), + rgba(0, 0, 0, 0.98)); + } + + @media (max-width: 720px) { + background: radial-gradient(circle 5em at var(--Xpos) var(--Ypos), + rgba(0, 0, 0, 0), + rgba(0, 0, 0, 0.98)); + } +} + +*, +*:before, +*:after { + transition: .2s ease-in-out; +} + + +#light-switch { + position: absolute; + left: 0; + top: 0; + opacity: 0; + + &:checked~#background { + background-color: #ebdbac; + } + + &:checked~#light-switch-label { + .switch { + box-shadow: 0 10px 10px -5px rgba(233, 219, 176, 0), 0 0 0 1px rgba(0, 0, 0, .1), 0 0 0 4px #fff4d3, 0 0 0 5px rgba(0, 0, 0, .1); + &:before { + height: 35px; + line-height: 35px; + width: 50px; + top: 5px; + background: #efe0b1; + color: #bfa371; + border-radius: 5px 5px 0 0; + text-shadow: 0 0 0px transparent; + } + + &:after { + height: 35px; + line-height: 35px; + width: 50px; + bottom: 0; + background: #fff4d3; + color: #a4441a; + text-shadow: 0 0 3px #ff4e00; + border-radius: 0 0 5px 5px; + } + } + } +} + +#light-switch-label { + position: relative; + display: block; + height: 150px; + width: 100px; + z-index: 1; + margin: 100px auto 0 auto; + background-color: #fff4d3; + border-radius: 10px; + + .switch { + box-shadow: 0 10px 10px -5px rgba(233, 219, 176, 1), 0 0 0 1px rgba(0, 0, 0, .1), 0 0 0 4px #fff4d3, 0 0 0 5px rgba(0, 0, 0, .1); + + cursor: pointer; + height: 75px; + width: 50px; + background: #fffaea; + position: absolute; + top: 75%; + left: 75%; + margin: -75px 0 0 -50px; + border-radius: 5px; + overflow: hidden; + + &:before { + content: 'ON'; + display: block; + position: absolute; + width: 50px; + height: 35px; + text-align: center; + line-height: 35px; + top: 0px; + left: 0px; + background: #fff4d3; + color: #64bf60; + border-radius: 5px 5px 0 0; + text-shadow: 0 0 3px #38ff2e; + } + + &:after { + content: 'OFF'; + display: block; + position: absolute; + height: 35px; + text-align: center; + line-height: 35px; + width: 50px; + bottom: 5px; + left: 0px; + background: #fffaea; + box-shadow: 0 5px 0 #d0b57b; + color: #d7bf95; + border-radius: 0 0 5px 5px; + box-shadow: 0 5px 0 #d0b57b; + text-shadow: 0 0 0px transparent; + } + } + + .screw { + position: absolute; + height: 8px; + width: 8px; + border-radius: 100%; + left: 55%; + margin-left: -8px; + background: #e3d4a5; + overflow: hidden; + box-shadow: inset 0 2px 0 rgba(0, 0, 0, .15); + + &:before { + content: ''; + display: block; + position: absolute; + height: 100%; + width: 2px; + left: 50%; + margin-left: -1px; + background: rgba(0, 0, 0, .2); + } + + &:first-of-type { + top: 15px; + } + + &:last-of-type { + bottom: 15px; + } + } +} \ No newline at end of file diff --git a/libs/route-pages/blackout-page/src/blackout-page.component.ts b/libs/route-pages/blackout-page/src/blackout-page.component.ts new file mode 100644 index 000000000..5e3bb8a33 --- /dev/null +++ b/libs/route-pages/blackout-page/src/blackout-page.component.ts @@ -0,0 +1,145 @@ +import { Component, OnInit } from '@angular/core'; +import SwiperCore, { Pagination, SwiperOptions, Autoplay } from "swiper"; +import { DeliverableCard, ITechnologiesCard } from '@valor-software/common-docs'; +import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser'; + +SwiperCore.use([Pagination, Autoplay]); + +@Component({ + // eslint-disable-next-line @angular-eslint/component-selector + selector: 'blackout-page', + templateUrl: './blackout-page.component.html', + styleUrls: ['./blackout-page.component.scss'], +}) +export class BlackoutPageComponent implements OnInit { + videoUrl: SafeResourceUrl = ''; + technologiesCard: ITechnologiesCard[] = [ + { + smJustify: 'evenly', + lgJustify: 'start', + technologies: [ + { + src: "assets/img/technologies/svg/ngrx.svg", + title: "NgRx" + }, + { + src: "assets/img/technologies/svg/angular.svg", + title: "Angular 7" + }, + { + src: "assets/img/technologies/svg/native_script.svg", + title: "NativeScript" + } + ] + } + ]; + + isLightOff = false; + changeBreadCrumbTitle: { path: string, title: string, excludePath?: boolean }[] = [ + { + path: 'projects', + title: 'Portfolio', + }, + { + path: 'blackout', + title: 'Blackout' + } + ]; + + deliverablesList: DeliverableCard[] = [ + { + title: "1. Made application release-ready", + descriptions: [`To prepare Blackout for “the Red Carpet” and the meeting with its demanding audience, we introduced particular improvements. The app response initially made users wait for way too long. Also, among other things, lamps switched lights abruptly which was a blocker for a successful shooting process.`], + imgs: ['assets/img/bg-img/blackout_page/delivery_1.png'], + fullWidthImg: true, + impact: + [ + ['Reduced lag and latency which allowed smooth app operation'], + ['Made lamps react to users requests faster and smoothly switch between different combinations of lights.'] + ] + }, + { + title: '2. Development of new features', + hierarchyList: [{ + title: 'Here are a few of the striking things you can do with the help of Blackout', + descriptions: ['After Blackout was officially released and got much success, the Valor team continued working on boosting the app’s performance together with fixing code malfunctions, and adding new features for advanced usage.'], + imgs: ['assets/img/bg-img/blackout_page/delivery_2A.png'], + subItems: [ + 'Ability to use any amount of universes;', + 'Ability to connect any amount of Lumenradio MoonLite;', + 'Create your fixtures along with the ability to use pre-created fixtures from the market;', + 'Manually manipulate each fixture parameter individually;', + 'Create rich effects manipulating fixture parameters;', + 'Create scene setups with states of all fixtures and smoothly switch between them;', + 'Blackout supports ​​Art-Net and sACN protocols;', + 'Ability to create groups of fixtures and manipulate them as a single fixture applying effects;', + 'Create your own macroses to make quick changes of fixtures’ state using a single button.', + ] + }], + fullWidthImg: true, + descriptions: ['The Valor team has added the ability to connect any number of MoonLite lighting control products to the Blackout console. We’ve completely changed and modified the effects engine and the scene processing engine, and enabled fixtures groups functionality from scratch.'], + imgs: ['assets/img/bg-img/blackout_page/delivery_2B.png'], + impact: + [ + ['Eliminated bugs and malfunctions from core functionalities'], + ['Heavily increased the Blackout capacity and added numerous abilities for users.'] + ] + }, + + ]; + + swiperConfig: SwiperOptions = { + slidesPerView: 1, + spaceBetween: 40, + centeredSlides: true, + mousewheel: { + releaseOnEdges: true + }, + initialSlide: 0, + slideToClickedSlide: true, + pagination: { + clickable: true + }, + + }; + + constructor( + private sanitizer: DomSanitizer + ) { + } + + ngOnInit(): void { + this.videoUrl = this.getSafeUrl('https://www.youtube.com/embed/1aLURAEGVXo'); + + let mouseX = 0; + let mouseY = 0; + const flashlight = document.getElementById("flashlight"); + const isTouchDevice = () => { + try { + document.createEvent("TouchEvent"); + return true; + } catch (e) { + return false; + } + }; + + function getMousePosition(e: any) { + if (flashlight) { + mouseX = !isTouchDevice() ? e.pageX : e.touches[0].pageX; + mouseY = !isTouchDevice() ? e.pageY : e.touches[0].pageY; + flashlight.style.setProperty("--Xpos", mouseX + "px"); + flashlight.style.setProperty("--Ypos", mouseY + "px"); + } + } + document.addEventListener("mousemove", getMousePosition); + document.addEventListener("touchmove", getMousePosition); + } + + private getSafeUrl(url?: string) { + if (!url) { + return ''; + } + return this.sanitizer.bypassSecurityTrustResourceUrl(url); + } + +} \ No newline at end of file diff --git a/libs/route-pages/blackout-page/src/blackout-page.module.spec.ts b/libs/route-pages/blackout-page/src/blackout-page.module.spec.ts new file mode 100644 index 000000000..e234c6774 --- /dev/null +++ b/libs/route-pages/blackout-page/src/blackout-page.module.spec.ts @@ -0,0 +1,21 @@ + + import { async, TestBed } from '@angular/core/testing'; + import { BlackoutPageModule } from './blackout-page.module'; + + describe('BlackPageModule', () => { + beforeEach(async(() => { + TestBed.configureTestingModule({ + imports: [ BlackoutPageModule ] + }) + .compileComponents(); + })); + + // TODO: Add real tests here. + // + // NB: This particular test does not do anything useful. + // It does NOT check for correct instantiation of the module. + it('should have a module definition', () => { + expect(BlackoutPageModule).toBeDefined(); + }); + }); + \ No newline at end of file diff --git a/libs/route-pages/blackout-page/src/blackout-page.module.ts b/libs/route-pages/blackout-page/src/blackout-page.module.ts new file mode 100644 index 000000000..359322bba --- /dev/null +++ b/libs/route-pages/blackout-page/src/blackout-page.module.ts @@ -0,0 +1,22 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { routes } from "./routes"; +import { RouterModule, Routes } from "@angular/router"; +import { CommonDocsModule } from '@valor-software/common-docs'; +import { SwiperModule } from "swiper/angular"; +import { FeedbackModule } from '@valor-software/feedback'; +import { BlackoutPageComponent } from './blackout-page.component'; + +@NgModule({ + declarations: [BlackoutPageComponent], + imports: [ + CommonModule, + RouterModule.forChild(routes), + CommonDocsModule, + SwiperModule, + FeedbackModule + ] +}) +export class BlackoutPageModule { + static routes: Routes = routes; +} diff --git a/libs/route-pages/blackout-page/src/index.ts b/libs/route-pages/blackout-page/src/index.ts new file mode 100644 index 000000000..2774526cb --- /dev/null +++ b/libs/route-pages/blackout-page/src/index.ts @@ -0,0 +1 @@ +export * from './blackout-page.module'; \ No newline at end of file diff --git a/libs/route-pages/blackout-page/src/routes.ts b/libs/route-pages/blackout-page/src/routes.ts new file mode 100644 index 000000000..4992236ee --- /dev/null +++ b/libs/route-pages/blackout-page/src/routes.ts @@ -0,0 +1,3 @@ +import { BlackoutPageComponent } from './blackout-page.component'; + +export const routes = [{ path: '', component: BlackoutPageComponent }]; \ No newline at end of file diff --git a/libs/route-pages/blackout-page/src/test-setup.ts b/libs/route-pages/blackout-page/src/test-setup.ts new file mode 100644 index 000000000..e2365388c --- /dev/null +++ b/libs/route-pages/blackout-page/src/test-setup.ts @@ -0,0 +1,12 @@ +import 'jest-preset-angular/setup-jest'; + + import { getTestBed } from '@angular/core/testing'; + import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing'; + + getTestBed().resetTestEnvironment(); + getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting(), + { teardown: { destroyAfterEach: false } }, + ); + \ No newline at end of file diff --git a/libs/route-pages/blackout-page/tsconfig.json b/libs/route-pages/blackout-page/tsconfig.json new file mode 100644 index 000000000..aeb1c9ace --- /dev/null +++ b/libs/route-pages/blackout-page/tsconfig.json @@ -0,0 +1,25 @@ +{ + "extends": "../../../tsconfig.base.json", + "files": [], + "include": [], + "references": [ + { + "path": "./tsconfig.lib.json" + }, + { + "path": "./tsconfig.spec.json" + } + ], + "compilerOptions": { + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "target": "es2020" + }, + "angularCompilerOptions": { + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} diff --git a/libs/route-pages/blackout-page/tsconfig.lib.json b/libs/route-pages/blackout-page/tsconfig.lib.json new file mode 100644 index 000000000..d318b3265 --- /dev/null +++ b/libs/route-pages/blackout-page/tsconfig.lib.json @@ -0,0 +1,24 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../../dist/out-tsc", + "target": "es2020", + "declaration": true, + "declarationMap": true, + "inlineSources": true, + "types": [], + "lib": [ + "dom", + "es2018" + ] + }, + "exclude": [ + "src/test-setup.ts", + "**/*.spec.ts", + "**/*.test.ts", + "jest.config.ts" + ], + "include": [ + "**/*.ts" + ] +} diff --git a/libs/route-pages/blackout-page/tsconfig.lib.prod.json b/libs/route-pages/blackout-page/tsconfig.lib.prod.json new file mode 100644 index 000000000..2a2faa884 --- /dev/null +++ b/libs/route-pages/blackout-page/tsconfig.lib.prod.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.lib.json", + "compilerOptions": { + "declarationMap": false + }, + "angularCompilerOptions": { + "compilationMode": "partial" + } +} diff --git a/libs/route-pages/blackout-page/tsconfig.spec.json b/libs/route-pages/blackout-page/tsconfig.spec.json new file mode 100644 index 000000000..cb7b2fe45 --- /dev/null +++ b/libs/route-pages/blackout-page/tsconfig.spec.json @@ -0,0 +1,20 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../../dist/out-tsc", + "module": "commonjs", + "types": [ + "jest", + "node" + ] + }, + "files": [ + "src/test-setup.ts" + ], + "include": [ + "**/*.test.ts", + "**/*.spec.ts", + "**/*.d.ts", + "jest.config.ts" + ] +} diff --git a/libs/route-pages/blog-portfolio/src/project.component.ts b/libs/route-pages/blog-portfolio/src/project.component.ts index 5696aece5..ac841f377 100644 --- a/libs/route-pages/blog-portfolio/src/project.component.ts +++ b/libs/route-pages/blog-portfolio/src/project.component.ts @@ -35,7 +35,7 @@ export class ProjectComponent implements OnDestroy { if (!artTitle) { this.router.navigate(['/404']); } - + console.log('artTitle', artTitle); artTitle = checkHTMLExtension(artTitle); this.getProjectsServ.getPortfolioRequest(artTitle).subscribe((res: IPortfolio) => { this.changeBreadCrumbTitle = [{ diff --git a/libs/route-pages/blog-portfolio/src/routes.ts b/libs/route-pages/blog-portfolio/src/routes.ts index b7318ef6b..c0587c29a 100644 --- a/libs/route-pages/blog-portfolio/src/routes.ts +++ b/libs/route-pages/blog-portfolio/src/routes.ts @@ -40,6 +40,10 @@ export const routes: Routes = [ path: 'breethe', loadChildren: () => import('@valor-software/breethe-page').then(m => m.BreethePageModule) }, + { + path: 'blackout', + loadChildren: () => import('@valor-software/blackout-page').then(m => m.BlackoutPageModule) + }, { path: ':id', component: GeneralItemComponent diff --git a/tsconfig.base.json b/tsconfig.base.json index e2726e314..872b6b0f1 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -74,6 +74,9 @@ ], "@valor-software/terminus-page": [ "libs/route-pages/terminus-page/src/index.ts" + ], + "@valor-software/blackout-page": [ + "libs/route-pages/blackout-page/src/index.ts" ] } },