Skip to content

feat(toast): toast service implementation (#UIM-829) #731

Open
wants to merge 102 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 25 commits
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
c8f8fe2
feat(toast): initial commit
Nov 30, 2021
c324c13
feat(toast): get right positioning (#UID-1108)
Dec 1, 2021
1739b2f
feat(toast): prefixes deleted, added overlay checking (#UID-1108)
Dec 6, 2021
0ea037a
feat(toast): some attempts (#UID-1108)
Dec 7, 2021
8942eda
feat(toast): attaching toasts to one portal (#UID-1108)
Dec 11, 2021
830d1cb
feat(toast): toast attached immediately (#UID-1108)
Dec 13, 2021
abbcde2
feat(toast): inserting and deleting toasts implemented (#UID-1108)
Dec 13, 2021
274d0bc
feat(toast): aligned fixed (#UID-1108)
Dec 14, 2021
8371ce0
feat: alert light new colors
mikeozornin Dec 14, 2021
e6708b7
feat: alert dark new colors
mikeozornin Dec 14, 2021
30f7cb1
feat: alert gen new colors tokens
mikeozornin Dec 14, 2021
850eb34
feat: alert gen new colors tokens
mikeozornin Dec 14, 2021
2f539bd
new colors palette
agalaktionov Dec 14, 2021
d74b568
feat(toast): animation fixed (#UID-1108)
Dec 14, 2021
80b5a7a
feat(toast): var changed (#UID-1108)
Dec 14, 2021
bc920fb
Put back contrast colors
mikeozornin Dec 15, 2021
b053de0
Add contrast colors to teal and purple to backward compatibility
mikeozornin Dec 15, 2021
adc4f81
Изменены цвета
agalaktionov Dec 15, 2021
c949d39
Сгенерированы новые токены
agalaktionov Dec 15, 2021
90098c2
Изменен цвет фона алерта error с 800 на 900
agalaktionov Dec 15, 2021
a778e2b
В colors.json5 добавлен новый токен focused-color-error
agalaktionov Dec 15, 2021
26a1fc9
Update link.json5
rmnturov Dec 16, 2021
b4e219d
fix: fixed typos in files and tokens generated
mikeozornin Dec 17, 2021
c0b8c99
feat: checkbox new palette
mikeozornin Dec 17, 2021
dfe72ca
feat:navbar new color palette
mikeozornin Dec 17, 2021
99df895
feat:form-field new colors from bkhtominsky
mikeozornin Dec 17, 2021
6986478
fix:form-fields colors
mikeozornin Dec 17, 2021
47f87a2
tokens generated
mikeozornin Dec 17, 2021
7c9e6b0
feat(toast): unnecessary dep removed (#UID-1108)
Dec 19, 2021
a027c16
Изменение states
agalaktionov Dec 20, 2021
70e7b5d
Updated colors by design to review
mikeozornin Dec 20, 2021
b83e42c
fix(timepicker): insert preceding zeros onBlur (#UIM-759) (#740)
oburdasov Dec 14, 2021
0a1748e
fix(datepicker): format on paste (#UIM-788) (#746)
oburdasov Dec 14, 2021
e74e8eb
Merge branch 'feature/new-palette' into feature/new-palette-badge-tag…
mikeozornin Dec 20, 2021
e68d9d2
Regenerate token files
mikeozornin Dec 20, 2021
6fbf268
Merge branch 'feature/new-palette-checkbox-UX-332' into feature/new-p…
mikeozornin Dec 20, 2021
5570d33
Merge branch 'feature/new-palette-form-field-UX-333' into feature/new…
mikeozornin Dec 20, 2021
62b9afc
Merge branch 'feature/new-palette-navbar-UX-334' into feature/new-pal…
mikeozornin Dec 20, 2021
304c78f
Merge branch 'feature/new-palette-link-UX-330' into feature/new-palette
mikeozornin Dec 20, 2021
208959a
button: updated colors (UX-328)
mikeozornin Dec 20, 2021
ffd0424
Checkbox: fix focus state
mikeozornin Dec 20, 2021
a36a49a
Fix semantics in focus color
mikeozornin Dec 20, 2021
3cedef6
buttons: fix usage of theme color
mikeozornin Dec 20, 2021
1bec82c
feat(toast): try tests (#UID-1108)
Dec 20, 2021
b608c18
feat(toast): linter fixes (#UID-1108)
Dec 20, 2021
536c8cb
Поправил состояние active в темной теме для кнопок primary и error
agalaktionov Dec 21, 2021
e117638
Revert "Поправил состояние active в темной теме для кнопок primary и …
agalaktionov Dec 21, 2021
949f6e6
Поправил состояние active в темной теме для кнопок primary и error
agalaktionov Dec 21, 2021
1d724e3
Поправил состояние active для кнопки error в светлой теме
agalaktionov Dec 21, 2021
ffd2c2e
Указал верный токен для бордера
agalaktionov Dec 21, 2021
cdcb896
Изменены цвета background для toggle
agalaktionov Dec 21, 2021
d09d45a
feat(toast): newest on top added (#UID-1108)
Dec 21, 2021
4b76737
form-field: Изменен токен обводки в состоянии ошибки
agalaktionov Dec 21, 2021
f4d4e04
Изменены цвета вертикальной линии, обводки и фона
agalaktionov Dec 21, 2021
2d95850
feat(tabs): updated colors
cm4fan67890 Dec 22, 2021
fcd9a9a
colors: изменил в темной теме overlay-disabled
agalaktionov Dec 22, 2021
c8c31d8
colors: изменен selected-color в темной теме
agalaktionov Dec 22, 2021
f4a64a6
feat(tabs): fixed colors, primary default color change in dark theme
cm4fan67890 Dec 22, 2021
dd65b25
datepicker: изменен states.selected.color
agalaktionov Dec 22, 2021
be53bbc
Revert "datepicker: изменен states.selected.color"
agalaktionov Dec 22, 2021
0972e21
datepicker: изменен states.selected.color
agalaktionov Dec 22, 2021
9199b65
fix(link): changed token value from palette.default
rmnturov Dec 22, 2021
d25da13
Merge branch 'feature/new-palette' of https://github.com/positive-js/…
rmnturov Dec 22, 2021
c68f4ed
button: изменил токен primary.background
agalaktionov Dec 22, 2021
72b699f
tooltip, popover, popup: Были обновлены цвета с новой палитрой
bogdanhpk Dec 22, 2021
c6e96dc
Merge branch 'feature/new-palette' of https://github.com/positive-js/…
bogdanhpk Dec 22, 2021
0a4b02e
Regenerate tokens
bogdanhpk Dec 22, 2021
8e3cee4
feat(toast): newest on top added (#UID-1108)
Dec 23, 2021
af6e09d
Merge remote-tracking branch 'origin/feature/UID-1108' into feature/U…
Dec 23, 2021
9715953
feat(toast): initial commit
Nov 30, 2021
3eacbcb
feat(toast): get right positioning (#UID-1108)
Dec 1, 2021
a3067dc
feat(toast): prefixes deleted, added overlay checking (#UID-1108)
Dec 6, 2021
e70cce5
feat(toast): some attempts (#UID-1108)
Dec 7, 2021
59b9964
feat(toast): attaching toasts to one portal (#UID-1108)
Dec 11, 2021
e6bc045
feat(toast): toast attached immediately (#UID-1108)
Dec 13, 2021
22e26b1
feat(toast): inserting and deleting toasts implemented (#UID-1108)
Dec 13, 2021
651cde7
feat(toast): aligned fixed (#UID-1108)
Dec 14, 2021
cbbeb59
feat(toast): animation fixed (#UID-1108)
Dec 14, 2021
0b065d5
feat(toast): var changed (#UID-1108)
Dec 14, 2021
2d0b54a
feat(toast): unnecessary dep removed (#UID-1108)
Dec 19, 2021
d733a00
feat(toast): try tests (#UID-1108)
Dec 20, 2021
3cd7cd2
feat(toast): linter fixes (#UID-1108)
Dec 20, 2021
19498eb
feat(toast): newest on top added (#UID-1108)
Dec 21, 2021
53b5329
feat(toast): newest on top added (#UID-1108)
Dec 23, 2021
7b161a9
refactoring++
lskramarov Feb 7, 2022
9da1949
clean code & added generics & move logic of hide from component to se…
lskramarov Feb 8, 2022
aa5020c
added tempate in ToastData
lskramarov Feb 8, 2022
8762a99
deleted unused code
lskramarov Feb 8, 2022
0c439ad
Merge remote-tracking branch 'origin/feature/UID-1108' into feature/U…
Feb 8, 2022
f297340
added params for set ToastComponent in provider + some refactoring
lskramarov Feb 9, 2022
449b36f
changed animation
lskramarov Feb 10, 2022
c7ad529
added templates
lskramarov Feb 10, 2022
b516a86
fixed tests and linter errors
lskramarov Feb 10, 2022
dd53ab6
added docs
lskramarov Feb 10, 2022
94972da
Merge remote-tracking branch 'origin/feature/UID-1108' into feature/U…
Feb 11, 2022
57a1695
fixed test and added public-api
lskramarov Feb 11, 2022
223f585
Merge remote-tracking branch 'origin/feature/UID-1108' into feature/U…
Feb 11, 2022
0c10acd
feat(toast): sticky feature added (#UID-1108)
Feb 15, 2022
1f376fa
feat(toast): added basic tests (#UID-1108)
Mar 18, 2022
670138c
feat(toast): added another testcases (#UID-1108)
Mar 20, 2022
c4ef790
feat(toast): some tests improved (#UID-1108)
Mar 21, 2022
60a898e
Merge branch 'master' into feature/UID-1108
Mar 21, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions angular.json
Original file line number Diff line number Diff line change
Expand Up @@ -1399,6 +1399,35 @@
}
}
},
"dev-toast": {
"projectType": "application",
"root": "packages/mosaic-dev/toast",
"sourceRoot": "packages/mosaic-dev/toast",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/mosaic-dev/toast",
"tsConfig": "packages/mosaic-dev/toast/tsconfig.app.json",
"index": "packages/mosaic-dev/index.html",
"main": "packages/mosaic-dev/toast/main.ts",
"polyfills": "packages/mosaic-dev/polyfills.ts",
"vendorChunk": true,
"extractLicenses": false,
"buildOptimizer": false,
"sourceMap": true,
"optimization": false,
"namedChunks": true
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "dev-toast:build"
}
}
}
},
"dev-toggle": {
"projectType": "application",
"root": "packages/mosaic-dev/toggle",
Expand Down
1 change: 1 addition & 0 deletions commitlint.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ const scope_types = [
'tags',
'textarea',
'timepicker',
'toast',
'toggle',
'tooltip',
'tree',
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,7 @@
"server-dev:tabs": "ng serve dev-tabs --port 3003",
"server-dev:tags": "ng serve dev-tags --port 3003",
"server-dev:textarea": "ng serve dev-textarea --port 3003",
"server-dev:toast": "ng serve dev-toast --port 3003",
"server-dev:toggle": "ng serve dev-toggle --port 3003",
"server-dev:theme-picker": "ng serve dev-theme-picker --port 3003",
"server-dev:tree": "ng serve dev-tree --port 3003",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,12 @@ const DOCS: { [key: string]: DocCategory[] } = {
name: 'Tooltip',
summary: '',
examples: ['tooltip-types']
},
{
id: 'toast',
name: 'Toast',
summary: '',
examples: ['toast-types']
}
]
},
Expand Down
9 changes: 9 additions & 0 deletions packages/mosaic-dev/toast/main.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';

import { DemoModule } from './module';


platformBrowserDynamic()
.bootstrapModule(DemoModule)
// tslint:disable-next-line:no-console
.catch((error) => console.error(error));
103 changes: 103 additions & 0 deletions packages/mosaic-dev/toast/module.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
/* tslint:disable:no-console */
import { NgModule, Component, ViewEncapsulation, TemplateRef, ChangeDetectionStrategy } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { ThemePalette } from '@ptsecurity/mosaic/core';
import {
McToastStyle,
MC_TOAST_CONFIG,
McToastData,
McToastModule,
McToastService,
McToastPosition,
McToastComponent
} from '@ptsecurity/mosaic/toast';

import { McButtonModule } from '../../mosaic/button';


@Component({
selector: 'mc-new-toast',
template: '<div>MyToastComponent</div>',
host: {
class: 'my-toast'
},
changeDetection: ChangeDetectionStrategy.OnPush,
encapsulation: ViewEncapsulation.None
})
export class MyToastComponent extends McToastComponent {
constructor(
readonly data: McToastData,
readonly service: McToastService
) {
super(data, service);

console.log('MyToastComponent: ');
}
}


@Component({
selector: 'app',
templateUrl: './template.html',
styleUrls: ['../main.scss', './styles.scss'],
encapsulation: ViewEncapsulation.None
})
export class ToastDemoComponent {
themePalette = ThemePalette;

constructor(
private toastService: McToastService,
private newToastService: McToastService<MyToastComponent>
) {}

showToast(style: McToastStyle) {
this.toastService.show({ style, title: 'Success', content: 'Message Content' });
}

showToastTitleTemplate(style: McToastStyle, template: TemplateRef<any>) {
this.toastService.show({ style, title: template, content: 'Message Content' });
}

showToastContentTemplate(style: McToastStyle, template: TemplateRef<any>) {
this.toastService.show({ style, title: 'Success', content: template });
}

showNewToast(style: McToastStyle) {
this.newToastService.show({ style, title: 'Success', content: 'Message Content' });
}

showTemplate(style: McToastStyle, template: TemplateRef<any>) {
this.toastService.showTemplate({ style, title: 'Success', content: 'Message Content' }, template);
}
}

@NgModule({
declarations: [
ToastDemoComponent,
MyToastComponent
],
imports: [
BrowserModule,
BrowserAnimationsModule,
McButtonModule,
McToastModule
],
bootstrap: [ToastDemoComponent],
providers: [
McToastService,
{
provide: MC_TOAST_CONFIG,
useValue: {
position: McToastPosition.TOP_RIGHT,
duration: 3000,
onTop: true
}
}
// {
// provide: McToastComponent,
// useFactory: () => MyToastComponent
// }
]
})
export class DemoModule {}
18 changes: 18 additions & 0 deletions packages/mosaic-dev/toast/styles.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
.demo-block {
display: flex;
flex-flow: row wrap;

.example-button-group {
display: flex;
flex-flow: column wrap;

button {
width: 150px;
margin-bottom: 5px;
}
}

.toasts-container {
margin-left: 20px;
}
}
28 changes: 28 additions & 0 deletions packages/mosaic-dev/toast/template.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<ng-template #toastTitleTemplate let-toast>
my title
</ng-template>

<ng-template #toastContentTemplate let-toast>
<b>my content</b>
</ng-template>

<ng-template #template let-data>
Template with data.title: {{ data.title }}
</ng-template>

<div class="demo-block">
<div class="example-button-group">
<button class="example-button" mc-button [color]="themePalette.Primary" (click)="showToast('success')">Success</button>
<button class="example-button" mc-button [color]="themePalette.Primary" (click)="showToast('info')">Info</button>
<button class="example-button" mc-button [color]="themePalette.Primary" (click)="showToast('warning')">Warn</button>
<button class="example-button" mc-button [color]="themePalette.Primary" (click)="showToast('error')">Error</button>

<button class="example-button" mc-button [color]="themePalette.Primary" (click)="showToastTitleTemplate('error', toastTitleTemplate)">Title Template</button>

<button class="example-button" mc-button [color]="themePalette.Primary" (click)="showToastContentTemplate('error', toastContentTemplate)">Content Template</button>

<button class="example-button" mc-button [color]="themePalette.Primary" (click)="showNewToast('warning')">MyToast</button>

<button class="example-button" mc-button [color]="themePalette.Primary" (click)="showTemplate('warning', template)">show template</button>
</div>
</div>
8 changes: 8 additions & 0 deletions packages/mosaic-dev/toast/tsconfig.app.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"extends": "../tsconfig.dev.json",
"files": [
"module.ts",
"../polyfills.ts"
],
"include": ["**/*.ts"]
}
36 changes: 36 additions & 0 deletions packages/mosaic-examples/mosaic/toast/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { McButtonModule } from '@ptsecurity/mosaic/button';
import { MC_TOAST_CONFIG, McToastModule, McToastPosition, McToastService } from '@ptsecurity/mosaic/toast';

import { ToastOverviewExample } from './toast-overview/toast-overview-example';


export {
ToastOverviewExample
};

const EXAMPLES = [
ToastOverviewExample
];

@NgModule({
imports: [
CommonModule,
McButtonModule,
McToastModule
],
declarations: EXAMPLES,
exports: EXAMPLES,
providers: [
McToastService,
{
provide: MC_TOAST_CONFIG,
useValue: {
position: McToastPosition.TOP_RIGHT,
duration: 3000
}
}
]
})
export class ToastExamplesModule {}
5 changes: 5 additions & 0 deletions packages/mosaic-examples/mosaic/toast/ng-package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"lib": {
"entryFile": "index.ts"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.example-button-group {
display: inline-flex;
flex-direction: column;
}

.example-button {
margin-bottom: 10px;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<ng-template #toastTitleTemplate let-toast>
my title
</ng-template>

<ng-template #toastContentTemplate let-toast>
<b>my content</b>
</ng-template>

<ng-template #template let-data>
<div>Template with data.title: {{ data.title }}</div>
</ng-template>

<div class="demo-block">
<div class="example-button-group">
<button class="example-button" mc-button [color]="themePalette.Primary" (click)="showToast('success')">Success</button>
<button class="example-button" mc-button [color]="themePalette.Primary" (click)="showToast('info')">Info</button>
<button class="example-button" mc-button [color]="themePalette.Primary" (click)="showToast('warning')">Warn</button>
<button class="example-button" mc-button [color]="themePalette.Primary" (click)="showToast('error')">Error</button>

<button class="example-button" mc-button [color]="themePalette.Primary" (click)="showToastTitleTemplate('error', toastTitleTemplate)">Title Template</button>

<button class="example-button" mc-button [color]="themePalette.Primary" (click)="showToastContentTemplate('error', toastContentTemplate)">Content Template</button>

<button class="example-button" mc-button [color]="themePalette.Primary" (click)="showNewToast('warning')">MyToast</button>

<button class="example-button" mc-button [color]="themePalette.Primary" (click)="showTemplate('warning', template)">show template</button>
</div>
</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/* tslint:disable:no-console */
import { ChangeDetectionStrategy, Component, TemplateRef, ViewEncapsulation } from '@angular/core';
import { ThemePalette } from '@ptsecurity/mosaic/core';
import { McToastData, McToastStyle, McToastService, McToastComponent } from '@ptsecurity/mosaic/toast';


@Component({
selector: 'mc-new-toast',
template: '<div>MyToastComponent</div>',
host: {
class: 'my-toast'
},
changeDetection: ChangeDetectionStrategy.OnPush,
encapsulation: ViewEncapsulation.None
})
export class MyToastComponent extends McToastComponent {
constructor(
readonly data: McToastData,
readonly service: McToastService
) {
super(data, service);

console.log('MyToastComponent: ');
}
}
/**
* @title Basic Toast
*/
@Component({
selector: 'toast-overview-example',
templateUrl: 'toast-overview-example.html',
styleUrls: ['toast-overview-example.css']
})
export class ToastOverviewExample {
themePalette = ThemePalette;

constructor(
private toastService: McToastService,
private newToastService: McToastService<MyToastComponent>
) {}

showToast(style: McToastStyle) {
this.toastService.show({ style, title: 'Success', content: 'Message Content' });
}

showToastTitleTemplate(style: McToastStyle, template: TemplateRef<any>) {
this.toastService.show({ style, title: template, content: 'Message Content' });
}

showToastContentTemplate(style: McToastStyle, template: TemplateRef<any>) {
this.toastService.show({ style, title: 'Success', content: template });
}

showNewToast(style: McToastStyle) {
this.newToastService.show({ style, title: 'Success', content: 'Message Content' });
}

showTemplate(style: McToastStyle, template: TemplateRef<any>) {
this.toastService.showTemplate({ style, title: 'Success', content: 'Message Content' }, template);
}
}
1 change: 1 addition & 0 deletions packages/mosaic/toast/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from './public-api';
5 changes: 5 additions & 0 deletions packages/mosaic/toast/ng-package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"lib": {
"entryFile": "index.ts"
}
}
5 changes: 5 additions & 0 deletions packages/mosaic/toast/public-api.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
export * from './toast.service';
export * from './toast.module';
export * from './toast.type';
export * from './toast.component';
export * from './toast-container.component';
Loading