diff --git a/.gitignore b/.gitignore index aabb2d279..6a63372d4 100644 --- a/.gitignore +++ b/.gitignore @@ -44,4 +44,3 @@ Thumbs.db ======= # Local todo -backend diff --git a/PLAYBOOK.md b/PLAYBOOK.md index 88f1194b2..82e0f72d3 100644 --- a/PLAYBOOK.md +++ b/PLAYBOOK.md @@ -108,8 +108,10 @@ ng update --all # generate webapp app ng g app webapp --routing --style=scss --prefix=ngx --unit-test-runner=jest --tags=app-module -# generate api app -ng g node-app api --framework=express --unit-test-runner=jest --tags=api-module --dry-run +# generate api app with nestjs +ng g node-app api --framework=express --unit-test-runner=jest --tags=api-module --dry-run +# generate backend app with express +ng g node-app backend --framework=express --unit-test-runner=jest --tags=api-module --dry-run ``` #### Dependencies @@ -208,6 +210,8 @@ ng g lib grid --routing --lazy --prefix=ngx --parent-module=libs/dashb ng g lib animations --module false -tags=utils --unit-test-runner=jest --dry-run ng g lib Tree --module false --publishable=true --tags=utils --unit-test-runner=jest --dry-run ng g lib utils --module false --tags=utils --unit-test-runner=jest --dry-run +# system wide models +ng g lib models --module false --tags=utils --unit-test-runner=jest --dry-run # add `core` module which will be only inported into root/app module. ng g lib core --prefix=ngx --tags=core-module --unit-test-runner=jest --dry-run @@ -380,16 +384,19 @@ ng g component containers/AccountsGridList --project=grid --dry-run # generate containers, components for `experiments` Module ng g component containers/animations --project=experiments --dry-run -ng g component containers/ContextMenu --project=experiments --dry-run -ng g component containers/FileUpload --project=experiments --dry-run ng g component components/hammerCard --project=experiments --dry-run ng g directive components/Hammertime/Hammertime --project=experiments --dry-run +ng g component containers/ContextMenu --project=experiments --dry-run +ng g component containers/FileUpload --project=experiments --dry-run ng g component containers/virtualScroll --project=experiments --dry-run ng g component containers/StickyTable --project=experiments --dry-run ng g component containers/clapButton --project=experiments -s -t --spec=false --dry-run ng g component containers/knobDemo --project=experiments --dry-run ng g component containers/ledDemo --project=experiments --dry-run ng g component containers/ImageComp --project=experiments --dry-run +ng g component containers/layout --project=experiments --dry-run +ng g component components/card --project=experiments --dry-run + # generate components for `ImageComparison` Module ng g lib ImageComparison --prefix=ngx --tags=public-module --spec=false --publishable=true --dry-run diff --git a/apps/api/README.md b/apps/api/README.md index 22286f9ab..fea825058 100755 --- a/apps/api/README.md +++ b/apps/api/README.md @@ -47,6 +47,9 @@ docker rm 82be5234c94a ```bash # start in watch mode npm run api:start:dev +# to turn on logging for `request` +NODE_DEBUG=request npm run api:start:dev +DEBUG=typeorm:* npm run api:start:dev # start npm run api:start diff --git a/apps/webapp/src/environments/environment.mock.ts b/apps/webapp/src/environments/environment.mock.ts index 71d6299a1..0644c1867 100644 --- a/apps/webapp/src/environments/environment.mock.ts +++ b/apps/webapp/src/environments/environment.mock.ts @@ -5,6 +5,7 @@ export const environment = { production: true, envName: 'mock', + DOCS_BASE_URL: 'http://localhost:8000', API_BASE_URL: 'http://localhost:3000/api', WS_EVENT_BUS_URL: 'ws://localhost:3000/eventbus', auth: { diff --git a/apps/webapp/src/environments/environment.prod.ts b/apps/webapp/src/environments/environment.prod.ts index cd241a63f..0bf90a90b 100644 --- a/apps/webapp/src/environments/environment.prod.ts +++ b/apps/webapp/src/environments/environment.prod.ts @@ -5,6 +5,7 @@ export const environment = { production: true, envName: 'prod', + DOCS_BASE_URL: 'http://localhost:8000', API_BASE_URL: 'http://localhost:3000/api', WS_EVENT_BUS_URL: 'ws://localhost:3000/eventbus', auth: { diff --git a/apps/webapp/src/environments/environment.ts b/apps/webapp/src/environments/environment.ts index 9a6a1ea95..c23dcce32 100644 --- a/apps/webapp/src/environments/environment.ts +++ b/apps/webapp/src/environments/environment.ts @@ -8,6 +8,7 @@ export const environment = { production: false, envName: 'dev', + DOCS_BASE_URL: 'http://localhost:8000', API_BASE_URL: 'http://localhost:3000/api', WS_EVENT_BUS_URL: 'ws://localhost:3000/eventbus', auth: { diff --git a/libs/core/src/lib/menu-data.ts b/libs/core/src/lib/menu-data.ts index d61214f8c..65a5404c6 100644 --- a/libs/core/src/lib/menu-data.ts +++ b/libs/core/src/lib/menu-data.ts @@ -67,6 +67,11 @@ export const defaultMenu: MenuItem[] = [ icon: 'directions', link: '/dashboard/experiments/knob', }, + { + name: 'Layout', + icon: 'apps', + link: '/dashboard/experiments/layout', + }, // { // name: 'Microinteractions', // icon: 'casino', diff --git a/libs/experiments/src/lib/components/card/card.component.html b/libs/experiments/src/lib/components/card/card.component.html new file mode 100644 index 000000000..8ac478868 --- /dev/null +++ b/libs/experiments/src/lib/components/card/card.component.html @@ -0,0 +1,24 @@ +
+ +
+ Header +
+ +
+ Side +
+ +
+ Content +
+ + +
diff --git a/libs/experiments/src/lib/components/card/card.component.scss b/libs/experiments/src/lib/components/card/card.component.scss new file mode 100644 index 000000000..8c492d640 --- /dev/null +++ b/libs/experiments/src/lib/components/card/card.component.scss @@ -0,0 +1,18 @@ +:host { + display: block; + padding: 32px; + border: 1px solid black; + border-radius: 8px; +} +.header { + background-color: #e3e3e3; +} +.side { + background-color: #e3e3ff; +} +.content { + background-color: #e3ffe3; +} +.footer { + background-color: #ffe3e3; +} diff --git a/libs/experiments/src/lib/components/card/card.component.spec.ts b/libs/experiments/src/lib/components/card/card.component.spec.ts new file mode 100644 index 000000000..e141708ac --- /dev/null +++ b/libs/experiments/src/lib/components/card/card.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { CardComponent } from './card.component'; + +describe('CardComponent', () => { + let component: CardComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ CardComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(CardComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/libs/experiments/src/lib/components/card/card.component.ts b/libs/experiments/src/lib/components/card/card.component.ts new file mode 100644 index 000000000..2041591e6 --- /dev/null +++ b/libs/experiments/src/lib/components/card/card.component.ts @@ -0,0 +1,12 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'ngx-card', + templateUrl: './card.component.html', + styleUrls: ['./card.component.scss'] +}) +export class CardComponent { + + constructor() { } + +} diff --git a/libs/experiments/src/lib/containers/clap-button/clap-button.component.ts b/libs/experiments/src/lib/containers/clap-button/clap-button.component.ts index 6c6debe62..461b895d0 100644 --- a/libs/experiments/src/lib/containers/clap-button/clap-button.component.ts +++ b/libs/experiments/src/lib/containers/clap-button/clap-button.component.ts @@ -1,18 +1,27 @@ import { Component, OnInit } from '@angular/core'; +import { Crumb } from '@ngx-starter-kit/breadcrumbs'; @Component({ selector: 'app-clap-button', template: ` - - + +
+ + +
`, styles: [ ` :host { + display: block; + padding: 1.5%; + position: relative; + } + .container { min-height: 100vh; display: flex; justify-content: center; @@ -22,6 +31,11 @@ import { Component, OnInit } from '@angular/core'; ], }) export class ClapButtonComponent { + crumbs: ReadonlyArray = [ + { name: 'Dashboard', link: '/dashboard' }, + { name: 'Experiments', link: '/dashboard/experiments' }, + { name: 'Clap Button' }, + ]; userCounter = 0; get totalCounter() { diff --git a/libs/experiments/src/lib/containers/file-upload/file-upload.component.ts b/libs/experiments/src/lib/containers/file-upload/file-upload.component.ts index 1c51cabac..deb564baf 100644 --- a/libs/experiments/src/lib/containers/file-upload/file-upload.component.ts +++ b/libs/experiments/src/lib/containers/file-upload/file-upload.component.ts @@ -1,11 +1,15 @@ import { Component, ViewChild } from '@angular/core'; -import { MatDialog } from '@angular/material'; +import { MatSnackBar } from '@angular/material'; import { Crumb } from '@ngx-starter-kit/breadcrumbs'; +import { FileUploadService } from './file-upload.service'; @Component({ selector: 'ngx-file-upload', templateUrl: './file-upload.component.html', styleUrls: ['./file-upload.component.scss'], + providers: [ + FileUploadService + ] }) export class FileUploadComponent { crumbs: ReadonlyArray = [ @@ -24,6 +28,21 @@ export class FileUploadComponent { const formData = new FormData(); formData.append(fieldName, file, file.name); formData.append(fieldName, JSON.stringify(metadata)); + this.uploadService.uploadFile(file, {}, 'tenant1').subscribe( + data => { + this.myPond.removeFiles(); + this.snackBar.open(`Uploaded Successfully`, '', { + duration: 3000 + }); + }, + err => { + console.error(`File Upload Error: ${err.message}`); + this.snackBar.open(`File Upload Error: ${err.message}`, '', { + duration: 3000 + }); + } + ); + // Progress indicator supported, set progress to 25% of 1 progress(true, 0.25, 1); @@ -102,7 +121,7 @@ export class FileUploadComponent { acceptedFileTypes: 'image/*, application/pdf, application/*, text/plain, text/csv, .vsd', }; - constructor(public dialog: MatDialog) {} + constructor(public snackBar: MatSnackBar, private uploadService: FileUploadService) {} pondHandleInit() { console.log('FilePond has initialised', this.myPond); diff --git a/libs/experiments/src/lib/containers/file-upload/file-upload.service.ts b/libs/experiments/src/lib/containers/file-upload/file-upload.service.ts new file mode 100644 index 000000000..8073d0383 --- /dev/null +++ b/libs/experiments/src/lib/containers/file-upload/file-upload.service.ts @@ -0,0 +1,19 @@ +import { Injectable } from '@angular/core'; +import { HttpClient, HttpHeaders } from '@angular/common/http'; +import { environment } from '@env/environment'; + + +@Injectable() +export class FileUploadService { + baseUrl = environment.DOCS_BASE_URL; + constructor(private httpClient: HttpClient) {} + + uploadFile(file, user, tenantId) { + const formData = new FormData(); + formData.append('file', file); + formData.append('tenant', tenantId); + formData.append('user', user); + const headers = new HttpHeaders(); + return this.httpClient.post(`${this.baseUrl}/upload`, formData, { headers, responseType: 'text' }); + } +} diff --git a/libs/experiments/src/lib/containers/image-comp/image-comp.component.html b/libs/experiments/src/lib/containers/image-comp/image-comp.component.html index 00983066e..9af39ed9b 100644 --- a/libs/experiments/src/lib/containers/image-comp/image-comp.component.html +++ b/libs/experiments/src/lib/containers/image-comp/image-comp.component.html @@ -1,3 +1,5 @@ + + first image second image diff --git a/libs/experiments/src/lib/containers/image-comp/image-comp.component.ts b/libs/experiments/src/lib/containers/image-comp/image-comp.component.ts index 8e8cdb374..02082ff88 100644 --- a/libs/experiments/src/lib/containers/image-comp/image-comp.component.ts +++ b/libs/experiments/src/lib/containers/image-comp/image-comp.component.ts @@ -1,4 +1,5 @@ import { Component, OnInit } from '@angular/core'; +import { Crumb } from '@ngx-starter-kit/breadcrumbs'; @Component({ selector: 'ngx-image-comp', @@ -6,6 +7,12 @@ import { Component, OnInit } from '@angular/core'; styleUrls: ['./image-comp.component.scss'], }) export class ImageCompComponent implements OnInit { + crumbs: ReadonlyArray = [ + { name: 'Dashboard', link: '/dashboard' }, + { name: 'Experiments', link: '/dashboard/experiments' }, + { name: 'Image Comp Demo' }, + ]; + constructor() {} ngOnInit() {} diff --git a/libs/experiments/src/lib/containers/knob-demo/knob-demo.component.html b/libs/experiments/src/lib/containers/knob-demo/knob-demo.component.html index 7fb6e7ef3..788a0d59b 100644 --- a/libs/experiments/src/lib/containers/knob-demo/knob-demo.component.html +++ b/libs/experiments/src/lib/containers/knob-demo/knob-demo.component.html @@ -1,3 +1,5 @@ + +
diff --git a/libs/experiments/src/lib/containers/knob-demo/knob-demo.component.ts b/libs/experiments/src/lib/containers/knob-demo/knob-demo.component.ts index 588f9edb7..be330d6cb 100644 --- a/libs/experiments/src/lib/containers/knob-demo/knob-demo.component.ts +++ b/libs/experiments/src/lib/containers/knob-demo/knob-demo.component.ts @@ -1,4 +1,5 @@ import { Component, OnInit } from '@angular/core'; +import { Crumb } from '@ngx-starter-kit/breadcrumbs'; @Component({ selector: 'ngx-knob-demo', @@ -6,6 +7,13 @@ import { Component, OnInit } from '@angular/core'; styleUrls: ['./knob-demo.component.scss'], }) export class KnobDemoComponent implements OnInit { + + crumbs: ReadonlyArray = [ + { name: 'Dashboard', link: '/dashboard' }, + { name: 'Experiments', link: '/dashboard/experiments' }, + { name: 'Knob Demo' }, + ]; + value1 = 256; options1 = { startAngle: 30, diff --git a/libs/experiments/src/lib/containers/layout/layout.component.html b/libs/experiments/src/lib/containers/layout/layout.component.html new file mode 100644 index 000000000..87cb50ea2 --- /dev/null +++ b/libs/experiments/src/lib/containers/layout/layout.component.html @@ -0,0 +1,24 @@ + + +
+ + + + +
+ + +
+ +
+
+ +


+ + + diff --git a/libs/experiments/src/lib/containers/layout/layout.component.scss b/libs/experiments/src/lib/containers/layout/layout.component.scss new file mode 100644 index 000000000..a8f3e9840 --- /dev/null +++ b/libs/experiments/src/lib/containers/layout/layout.component.scss @@ -0,0 +1,6 @@ +:host { + display: block; + padding: 1.5%; + position: relative; +} + diff --git a/libs/experiments/src/lib/containers/layout/layout.component.spec.ts b/libs/experiments/src/lib/containers/layout/layout.component.spec.ts new file mode 100644 index 000000000..c4d6365d7 --- /dev/null +++ b/libs/experiments/src/lib/containers/layout/layout.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { LayoutComponent } from './layout.component'; + +describe('LayoutComponent', () => { + let component: LayoutComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ LayoutComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(LayoutComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/libs/experiments/src/lib/containers/layout/layout.component.ts b/libs/experiments/src/lib/containers/layout/layout.component.ts new file mode 100644 index 000000000..cff1ae496 --- /dev/null +++ b/libs/experiments/src/lib/containers/layout/layout.component.ts @@ -0,0 +1,20 @@ +import { Component, OnInit } from '@angular/core'; +import { Crumb } from '@ngx-starter-kit/breadcrumbs'; + +@Component({ + selector: 'ngx-layout', + templateUrl: './layout.component.html', + styleUrls: ['./layout.component.scss'] +}) +export class LayoutComponent implements OnInit { + crumbs: ReadonlyArray = [ + { name: 'Dashboard', link: '/dashboard' }, + { name: 'Experiments', link: '/dashboard/experiments' }, + { name: 'Layout Demo' }, + ]; + constructor() { } + + ngOnInit() { + } + +} diff --git a/libs/experiments/src/lib/containers/led-demo/led-demo.component.html b/libs/experiments/src/lib/containers/led-demo/led-demo.component.html index 83d9b6383..e71d20c2f 100644 --- a/libs/experiments/src/lib/containers/led-demo/led-demo.component.html +++ b/libs/experiments/src/lib/containers/led-demo/led-demo.component.html @@ -1,4 +1,6 @@ -
+ + +
diff --git a/libs/experiments/src/lib/containers/led-demo/led-demo.component.scss b/libs/experiments/src/lib/containers/led-demo/led-demo.component.scss index b47455fbb..fd4d740ba 100644 --- a/libs/experiments/src/lib/containers/led-demo/led-demo.component.scss +++ b/libs/experiments/src/lib/containers/led-demo/led-demo.component.scss @@ -1,4 +1,10 @@ :host { + display: block; + padding: 1.5%; + position: relative; +} + +.container { min-height: 100vh; display: flex; justify-content: center; diff --git a/libs/experiments/src/lib/containers/led-demo/led-demo.component.ts b/libs/experiments/src/lib/containers/led-demo/led-demo.component.ts index 6a10b3692..dbaae6587 100644 --- a/libs/experiments/src/lib/containers/led-demo/led-demo.component.ts +++ b/libs/experiments/src/lib/containers/led-demo/led-demo.component.ts @@ -1,4 +1,5 @@ import { Component, OnInit } from '@angular/core'; +import { Crumb } from '@ngx-starter-kit/breadcrumbs'; @Component({ selector: 'ngx-led-demo', @@ -6,6 +7,11 @@ import { Component, OnInit } from '@angular/core'; styleUrls: ['./led-demo.component.scss'], }) export class LedDemoComponent implements OnInit { + crumbs: ReadonlyArray = [ + { name: 'Dashboard', link: '/dashboard' }, + { name: 'Experiments', link: '/dashboard/experiments' }, + { name: 'Led Demo' }, + ]; constructor() {} ngOnInit() {} diff --git a/libs/experiments/src/lib/containers/sticky-table/sticky-table.component.html b/libs/experiments/src/lib/containers/sticky-table/sticky-table.component.html index aa007efd4..6e1cae68c 100644 --- a/libs/experiments/src/lib/containers/sticky-table/sticky-table.component.html +++ b/libs/experiments/src/lib/containers/sticky-table/sticky-table.component.html @@ -1,3 +1,5 @@ + +
diff --git a/libs/experiments/src/lib/containers/sticky-table/sticky-table.component.ts b/libs/experiments/src/lib/containers/sticky-table/sticky-table.component.ts index c47a020e3..7ee25c4bc 100644 --- a/libs/experiments/src/lib/containers/sticky-table/sticky-table.component.ts +++ b/libs/experiments/src/lib/containers/sticky-table/sticky-table.component.ts @@ -1,5 +1,6 @@ import { AfterViewInit, Component, ViewChild } from '@angular/core'; import { MatPaginator, MatTableDataSource } from '@angular/material'; +import { Crumb } from '@ngx-starter-kit/breadcrumbs'; /* tslint:disable:max-line-length */ const ELEMENT_DATA: Element[] = [ @@ -266,6 +267,12 @@ const ELEMENT_DATA: Element[] = [ styleUrls: ['./sticky-table.component.scss'], }) export class StickyTableComponent implements AfterViewInit { + crumbs: ReadonlyArray = [ + { name: 'Dashboard', link: '/dashboard' }, + { name: 'Experiments', link: '/dashboard/experiments' }, + { name: 'Sticky Table' }, + ]; + displayedColumns = [ 'position', 'name', diff --git a/libs/experiments/src/lib/containers/virtual-scroll/virtual-scroll.component.html b/libs/experiments/src/lib/containers/virtual-scroll/virtual-scroll.component.html index 278ef0746..f9c60f8f6 100644 --- a/libs/experiments/src/lib/containers/virtual-scroll/virtual-scroll.component.html +++ b/libs/experiments/src/lib/containers/virtual-scroll/virtual-scroll.component.html @@ -1,4 +1,5 @@ - + + @@ -8,4 +9,3 @@
{{state.capital}}
- diff --git a/libs/experiments/src/lib/containers/virtual-scroll/virtual-scroll.component.ts b/libs/experiments/src/lib/containers/virtual-scroll/virtual-scroll.component.ts index 7967605c0..fc18c3eca 100644 --- a/libs/experiments/src/lib/containers/virtual-scroll/virtual-scroll.component.ts +++ b/libs/experiments/src/lib/containers/virtual-scroll/virtual-scroll.component.ts @@ -1,5 +1,6 @@ import { Component, OnInit, ViewEncapsulation } from '@angular/core'; import { BehaviorSubject } from 'rxjs'; +import { Crumb } from '@ngx-starter-kit/breadcrumbs'; interface State { name: string; @@ -9,10 +10,14 @@ interface State { @Component({ selector: 'ngx-virtual-scroll', templateUrl: './virtual-scroll.component.html', - styleUrls: ['./virtual-scroll.component.scss'], - encapsulation: ViewEncapsulation.None, + styleUrls: ['./virtual-scroll.component.scss'] }) export class VirtualScrollComponent implements OnInit { + crumbs: ReadonlyArray = [ + { name: 'Dashboard', link: '/dashboard' }, + { name: 'Experiments', link: '/dashboard/experiments' }, + { name: 'Virtual Scroll' }, + ]; observableData = new BehaviorSubject([]); states = [ { name: 'Alabama', capital: 'Montgomery' }, diff --git a/libs/experiments/src/lib/experiments.module.ts b/libs/experiments/src/lib/experiments.module.ts index f89c36aa7..a7b91692a 100644 --- a/libs/experiments/src/lib/experiments.module.ts +++ b/libs/experiments/src/lib/experiments.module.ts @@ -25,6 +25,8 @@ import { ImageCompComponent } from './containers/image-comp/image-comp.component import * as FilePondPluginFileValidateType from 'filepond-plugin-file-validate-type'; import * as FilepondPluginFileValidateSize from 'filepond-plugin-file-validate-size'; import * as FilepondPluginImagePreview from 'filepond-plugin-image-preview'; +import { LayoutComponent } from './containers/layout/layout.component'; +import { CardComponent } from './components/card/card.component'; registerPlugin(FilePondPluginFileValidateType, FilepondPluginFileValidateSize, FilepondPluginImagePreview); @@ -87,6 +89,11 @@ registerPlugin(FilePondPluginFileValidateType, FilepondPluginFileValidateSize, F component: ImageCompComponent, data: { animation: 'imagecomp' }, }, + { + path: 'layout', + component: LayoutComponent, + data: { animation: 'layout' }, + }, ]), ], declarations: [ @@ -100,6 +107,8 @@ registerPlugin(FilePondPluginFileValidateType, FilepondPluginFileValidateSize, F KnobDemoComponent, LedDemoComponent, ImageCompComponent, + LayoutComponent, + CardComponent, ], }) export class ExperimentsModule {} diff --git a/package-lock.json b/package-lock.json index babc7fb22..84fca3a54 100644 --- a/package-lock.json +++ b/package-lock.json @@ -205,18 +205,18 @@ } }, "@angular/cdk": { - "version": "7.0.0-rc.0", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-7.0.0-rc.0.tgz", - "integrity": "sha512-lx87ZeP4iF9n+pf+VO1MP1TqxKLDsnICfI803S1CX/hBT2F6zKwcRSp0AtkpjplqxtKOnjuNw8+67O5vk6q2BA==", + "version": "7.0.0-rc.1", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-7.0.0-rc.1.tgz", + "integrity": "sha512-JI8j+vxRrBpqIkvUW9TvR9MdlxAodVV0FIreS7boZJaGQa6XuBYfmM9JRhKEZgTg/si8aArxQ4eYh5tdGsUjkA==", "requires": { "parse5": "^5.0.0", "tslib": "^1.7.1" } }, "@angular/cdk-experimental": { - "version": "7.0.0-rc.0", - "resolved": "https://registry.npmjs.org/@angular/cdk-experimental/-/cdk-experimental-7.0.0-rc.0.tgz", - "integrity": "sha512-ZKEAOLiNKvPeG9OC6YI2WjDNyCnQ1saIKYb7u9yHmvur7m06Yj8jF+DjmqJEDXEe5LUZSEfZvtpVga9G0lPbyQ==", + "version": "7.0.0-rc.1", + "resolved": "https://registry.npmjs.org/@angular/cdk-experimental/-/cdk-experimental-7.0.0-rc.1.tgz", + "integrity": "sha512-bCoJ1bLsor1S3ScTHMM6jWwpSt2KHQC99/o92pai+OQKQIAjxIexFMYrdYektaiICoEYz45z5kbRjx2uaPkh7w==", "requires": { "tslib": "^1.7.1" } @@ -492,18 +492,18 @@ "dev": true }, "@angular/material": { - "version": "7.0.0-rc.0", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-7.0.0-rc.0.tgz", - "integrity": "sha512-E6YBKUEefYsBxWmJZlBtibTBvNTyVNL1LcZ6IsLrNv6Ye3IHdiMFTrNCImTW03eeVPvGYoEFLv3vRRwtETb6wA==", + "version": "7.0.0-rc.1", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-7.0.0-rc.1.tgz", + "integrity": "sha512-4LC3y5ZorNjdF1lEkVN/3zwOEnBwjfWLCY92tA06Kdvs1yENZdu0fGTRwcu9Hz4y+t84sL/KEKC9VjKN3Z7PSg==", "requires": { "parse5": "^5.0.0", "tslib": "^1.7.1" } }, "@angular/material-moment-adapter": { - "version": "7.0.0-rc.0", - "resolved": "https://registry.npmjs.org/@angular/material-moment-adapter/-/material-moment-adapter-7.0.0-rc.0.tgz", - "integrity": "sha512-XMt8Pixqkh70BHs2lJzV8Tv94yaP0tX+esW7ZQ6nXgNx3IEy+1ucckvaYVezT8DHyRn5fXleE2QsMa0brwfIDg==", + "version": "7.0.0-rc.1", + "resolved": "https://registry.npmjs.org/@angular/material-moment-adapter/-/material-moment-adapter-7.0.0-rc.1.tgz", + "integrity": "sha512-JYXtxlRT3BL2er3o+v+nHMfTpjPqDI4r10RyGa50LkobO6/PG04eo8NsLrDftn3EpI/jIwT8b4gXurtCqgqlZg==", "requires": { "tslib": "^1.7.1" } @@ -1074,40 +1074,40 @@ } }, "@fortawesome/angular-fontawesome": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@fortawesome/angular-fontawesome/-/angular-fontawesome-0.2.0.tgz", - "integrity": "sha512-iBaH3ulJh+WjaNHqDxoKR6D4udgY+C7FChVSFOv0u7rjdT8wd0ap5YS1QHA82K0dfkUAvlEA4l5wtDtUpG679A==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@fortawesome/angular-fontawesome/-/angular-fontawesome-0.2.1.tgz", + "integrity": "sha512-B77fIEjq9bgHGncx5sfFuANh6qow6+MLHbU6C7lMIdeLXykkWTWOiPk+CqlmPOYXIpUH1lNaVykgTSqAk65pIw==", "requires": { "tslib": "^1.9.0" } }, "@fortawesome/fontawesome-common-types": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.4.tgz", - "integrity": "sha512-0qbIVm+MzkxMwKDx8V0C7w/6Nk+ZfBseOn2R1YK0f2DQP5pBcOQbu9NmaVaLzbJK6VJb1TuyTf0ZF97rc6iWJQ==" + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.5.tgz", + "integrity": "sha512-hkKASkxINPqAyhYDF9QVtDK02hcleUzGxXnGmFkF/fIJgHaGaI4lVV07OfLsC6KIlgXQfIAAf3PNR2C74HN6xg==" }, "@fortawesome/fontawesome-svg-core": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.4.tgz", - "integrity": "sha512-oGtnwcdhJomoDxbJcy6S0JxK6ItDhJLNOujm+qILPqajJ2a0P/YRomzBbixFjAPquCoyPUlA9g9ejA22P7TKNA==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.5.tgz", + "integrity": "sha512-5q/3JyLg4sxEfk3VxBlBO7Rvl7rLvcEbKrWIGN0Y9xnjkPLIqdP9fgnetjCi3rNzhQjSzTyOgVG0M0I0KabXHw==", "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.4" + "@fortawesome/fontawesome-common-types": "^0.2.5" } }, "@fortawesome/free-brands-svg-icons": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-5.3.1.tgz", - "integrity": "sha512-CmvAgNVvfBvNFiPLFugmafNzU6t9auy1kGDv+U6Q81XD/QS7FsnJk8pnPftFnaoXJOlpchVNxz31tNjorM3LOQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-5.4.0.tgz", + "integrity": "sha512-X4+m/+Akd4Kt4jAD2tK9WNcm1T5EOnHB6HscX0dJpj6YJJfrGXXBFN5RPxM+9k5qOrWkT3X2eS0PGDK/M4BPKw==", "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.4" + "@fortawesome/fontawesome-common-types": "^0.2.5" } }, "@fortawesome/free-solid-svg-icons": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.3.1.tgz", - "integrity": "sha512-NkiLBFoiHtJ89cPJdM+W6cLvTVKkLh3j9t3MxkXyip0ncdD3lhCunSuzvFcrTHWeETEyoClGd8ZIWrr3HFZ3BA==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.4.0.tgz", + "integrity": "sha512-+9k7KO8wJbUIa88U2s712r5WAxZuFNb2RTE9AASMMb5VYAWsVGfhLAOkDAkI92RDLjN3Y2NK+2vt8A5uNxCuYQ==", "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.4" + "@fortawesome/fontawesome-common-types": "^0.2.5" } }, "@marionebl/sander": { @@ -2605,9 +2605,9 @@ } }, "@types/jest": { - "version": "23.3.3", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-23.3.3.tgz", - "integrity": "sha512-G6EBrbjWDfmIpYu8UcRBOhwtDiYaLj5N5jUR5rx0YvbKxRBhXPZVLUmtfShewSUNKiQwpHavpML69a2WMbIlEQ==", + "version": "23.3.4", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-23.3.4.tgz", + "integrity": "sha512-46jSw0QMerCRkhJZbOwPA0Eb9T1p74HtECsfa0GXdgjkenSGhgvK96w+e2PEPu4GF0/brUK5WQKq/rUQQFyAxA==", "dev": true }, "@types/json5": { @@ -2637,9 +2637,9 @@ "integrity": "sha512-A2TAGbTFdBw9azHbpVd+/FkdW2T6msN1uct1O9bH3vTerEHKZhTXJUQXy+hNq1B0RagfU8U+KBdqiZpxjhOUQA==" }, "@types/node": { - "version": "10.11.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.11.4.tgz", - "integrity": "sha512-ojnbBiKkZFYRfQpmtnnWTMw+rzGp/JiystjluW9jgN3VzRwilXddJ6aGQ9V/7iuDG06SBgn7ozW9k3zcAnYjYQ==" + "version": "10.11.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.11.5.tgz", + "integrity": "sha512-3j1EFLfrjYRHRFjBb+RIXXwr1YGzcfpQVMP39thZa6tMY+JjVgQddPF+hsdV800JqbuLwpwAWclDpbGSAw44vQ==" }, "@types/nodemailer": { "version": "4.6.5", @@ -7528,9 +7528,9 @@ } }, "dotenv": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.0.0.tgz", - "integrity": "sha512-FlWbnhgjtwD+uNLUGHbMykMOYQaTivdHEmYwAKFjn6GKe/CqY0fNae93ZHTd20snh9ZLr8mTzIL9m0APQ1pjQg==" + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.1.0.tgz", + "integrity": "sha512-/veDn2ztgRlB7gKmE3i9f6CmDIyXAy6d5nBq+whO9SLX+Zs1sXEgFLPi+aSuWqUuusMfbi84fT8j34fs1HaYUw==" }, "duplexer": { "version": "0.1.1", @@ -8993,8 +8993,7 @@ "formidable": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz", - "integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==", - "dev": true + "integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==" }, "forwarded": { "version": "0.1.2", diff --git a/package.json b/package.json index 1a86bf7e2..a34586b6d 100644 --- a/package.json +++ b/package.json @@ -111,24 +111,24 @@ "private": true, "dependencies": { "@angular/animations": "^6.1.9", - "@angular/cdk": "^7.0.0-rc.0", - "@angular/cdk-experimental": "^7.0.0-rc.0", + "@angular/cdk": "^7.0.0-rc.1", + "@angular/cdk-experimental": "^7.0.0-rc.1", "@angular/common": "^6.1.9", "@angular/compiler": "^6.1.9", "@angular/core": "^6.1.9", "@angular/flex-layout": "^6.0.0-beta.18", "@angular/forms": "^6.1.9", - "@angular/material": "^7.0.0-rc.0", - "@angular/material-moment-adapter": "^7.0.0-rc.0", + "@angular/material": "^7.0.0-rc.1", + "@angular/material-moment-adapter": "^7.0.0-rc.1", "@angular/platform-browser": "^6.1.9", "@angular/platform-browser-dynamic": "^6.1.9", "@angular/pwa": "^0.8.4", "@angular/router": "^6.1.9", "@angular/service-worker": "^6.1.9", - "@fortawesome/angular-fontawesome": "^0.2.0", - "@fortawesome/fontawesome-svg-core": "^1.2.4", - "@fortawesome/free-brands-svg-icons": "^5.3.1", - "@fortawesome/free-solid-svg-icons": "^5.3.1", + "@fortawesome/angular-fontawesome": "^0.2.1", + "@fortawesome/fontawesome-svg-core": "^1.2.5", + "@fortawesome/free-brands-svg-icons": "^5.4.0", + "@fortawesome/free-solid-svg-icons": "^5.4.0", "@nestjs/common": "^5.3.11", "@nestjs/core": "^5.3.11", "@nestjs/elasticsearch": "^0.1.2", @@ -157,12 +157,13 @@ "core-js": "^2.5.7", "d3": "^4.13.0", "d3-selection-multi": "^1.0.1", - "dotenv": "^6.0.0", + "dotenv": "^6.1.0", "filepond-plugin-file-encode": "^2.0.0", "filepond-plugin-file-validate-size": "^1.0.4", "filepond-plugin-file-validate-type": "^1.1.0", "filepond-plugin-image-crop": "^2.0.0", "filepond-plugin-image-preview": "^3.0.0", + "formidable": "^1.2.1", "hammerjs": "^2.0.8", "helmet": "^3.13.0", "nest-router": "^1.0.7", @@ -205,8 +206,8 @@ "@types/dotenv": "^4.0.3", "@types/hammerjs": "^2.0.36", "@types/helmet": "^0.0.42", - "@types/jest": "^23.3.3", - "@types/node": "^10.11.4", + "@types/jest": "^23.3.4", + "@types/node": "^10.11.5", "@types/nodemailer": "^4.6.5", "@types/passport": "0.4.6", "@types/passport-jwt": "^3.0.1", diff --git a/stories/faq.md b/stories/faq.md index 13d4a38f2..9a97f8cb3 100644 --- a/stories/faq.md +++ b/stories/faq.md @@ -34,6 +34,9 @@ type `ng.profiler.timeChangeDetection();` in console. > Refer [here](https://github.com/angular/flex-layout/wiki/Responsive-API) > Refer [here](https://medium.com/@nima_ap/creating-a-responsive-dashboard-in-angular-5-from-scratch-147f6a493d9e) +* How to use flex grid? +> Refer [Flexbox and Grid Layout for Angular Component](https://blog.angularindepth.com/angular-flex-layout-flexbox-and-grid-layout-for-angular-component-6e7c24457b63) + * How implement Progressive Web Applications (PWA) with Service Workers? > Refer [here](https://medium.com/codingthesmartway-com-blog/angular-5-service-worker-b722e571e306) diff --git a/tsconfig.json b/tsconfig.json index b6d36a6f6..210ba01e4 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -27,6 +27,9 @@ "@api-env/*": [ "apps/api/src/environments/*" ], + "@ngx-starter-kit/models": [ + "libs/models/src/index.ts" + ], "@ngx-starter-kit/core": [ "libs/core/src/index.ts" ],