@koobiq/components 18.11.0 → 18.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/button/button-tokens.scss +1 -1
- package/core/common-behaviors/error-state.d.ts +3 -3
- package/esm2022/button/button.component.mjs +2 -2
- package/esm2022/core/common-behaviors/error-state.mjs +1 -1
- package/esm2022/core/version.mjs +2 -2
- package/esm2022/file-upload/file-upload.mjs +40 -2
- package/esm2022/file-upload/multiple-file-upload.component.mjs +43 -47
- package/esm2022/file-upload/single-file-upload.component.mjs +41 -45
- package/esm2022/form-field/hint.mjs +2 -2
- package/esm2022/form-field/password-hint.mjs +2 -2
- package/esm2022/modal/modal.service.mjs +2 -2
- package/esm2022/modal/modal.type.mjs +1 -1
- package/esm2022/scrollbar/scrollbar.directive.mjs +6 -3
- package/esm2022/toast/toast-container.component.mjs +3 -3
- package/esm2022/toast/toast.component.mjs +18 -9
- package/esm2022/toast/toast.module.mjs +14 -50
- package/esm2022/toast/toast.service.mjs +5 -2
- package/esm2022/tree-select/tree-select.component.mjs +5 -35
- package/fesm2022/koobiq-components-button.mjs +2 -2
- package/fesm2022/koobiq-components-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +1 -1
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +107 -76
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +4 -4
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +1 -1
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-scrollbar.mjs +5 -2
- package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +138 -161
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +4 -34
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/file-upload/_file-upload-theme.scss +16 -2
- package/file-upload/file-upload.d.ts +29 -2
- package/file-upload/multiple-file-upload.component.d.ts +18 -18
- package/file-upload/single-file-upload.component.d.ts +17 -16
- package/form-field/_hint-theme.scss +1 -1
- package/modal/modal.type.d.ts +6 -1
- package/package.json +4 -4
- package/schematics/ng-add/index.js +2 -2
- package/scrollbar/scrollbar.directive.d.ts +2 -1
- package/toast/toast-container.component.d.ts +1 -1
- package/toast/toast.component.d.ts +2 -2
- package/toast/toast.module.d.ts +1 -7
- package/toast/toast.service.d.ts +1 -1
- package/tree-select/_tree-select-theme.scss +4 -0
- package/tree-select/tree-select.component.d.ts +1 -12
|
@@ -1,22 +1,28 @@
|
|
|
1
1
|
import * as i1 from '@angular/cdk/overlay';
|
|
2
|
-
import { CdkScrollable
|
|
2
|
+
import { CdkScrollable } from '@angular/cdk/overlay';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { InjectionToken,
|
|
4
|
+
import { InjectionToken, Directive, TemplateRef, forwardRef, Component, ChangeDetectionStrategy, ViewEncapsulation, Inject, Injectable, Optional, Injector, ViewContainerRef, ViewChild, NgModule } from '@angular/core';
|
|
5
5
|
import { ComponentPortal } from '@angular/cdk/portal';
|
|
6
|
-
import { BehaviorSubject, timer, filter, shareReplay
|
|
6
|
+
import { BehaviorSubject, merge, timer, filter as filter$1, shareReplay } from 'rxjs';
|
|
7
7
|
import * as i2 from '@angular/cdk/a11y';
|
|
8
|
-
import {
|
|
8
|
+
import { NgTemplateOutlet, NgClass } from '@angular/common';
|
|
9
9
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
10
10
|
import { ThemePalette } from '@koobiq/components/core';
|
|
11
|
-
import
|
|
12
|
-
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
13
|
-
import * as i3 from '@koobiq/components/title';
|
|
14
|
-
import { KbqTitleModule } from '@koobiq/components/title';
|
|
15
|
-
import * as i4 from '@koobiq/components/icon';
|
|
11
|
+
import * as i3 from '@koobiq/components/icon';
|
|
16
12
|
import { KbqIconModule } from '@koobiq/components/icon';
|
|
17
|
-
import * as
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
13
|
+
import * as i4 from '@koobiq/components/title';
|
|
14
|
+
import { KbqTitleModule } from '@koobiq/components/title';
|
|
15
|
+
import { filter } from 'rxjs/operators';
|
|
16
|
+
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
17
|
+
|
|
18
|
+
const kbqToastAnimations = {
|
|
19
|
+
toastState: trigger('state', [
|
|
20
|
+
state('void', style({ transform: 'translateX(100%)', opacity: 0 })),
|
|
21
|
+
transition('* => visible', animate('150ms ease-out', style({ transform: 'translateX(0%)', opacity: 1 }))),
|
|
22
|
+
transition('* => void', animate('300ms ease-in', style({ transform: 'translateX(50%)', opacity: 0, 'max-height': 0 })))
|
|
23
|
+
])
|
|
24
|
+
};
|
|
25
|
+
const toastState = kbqToastAnimations.toastState;
|
|
20
26
|
|
|
21
27
|
var KbqToastStyle;
|
|
22
28
|
(function (KbqToastStyle) {
|
|
@@ -39,7 +45,110 @@ class KbqToastData {
|
|
|
39
45
|
}
|
|
40
46
|
const KBQ_TOAST_CONFIG = new InjectionToken('kbq-toast-config');
|
|
41
47
|
|
|
42
|
-
|
|
48
|
+
class KbqToastCloseButton {
|
|
49
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqToastCloseButton, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
50
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: KbqToastCloseButton, isStandalone: true, selector: "[kbq-toast-close-button]", host: { classAttribute: "kbq-toast__close-button" }, ngImport: i0 }); }
|
|
51
|
+
}
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqToastCloseButton, decorators: [{
|
|
53
|
+
type: Directive,
|
|
54
|
+
args: [{
|
|
55
|
+
standalone: true,
|
|
56
|
+
selector: '[kbq-toast-close-button]',
|
|
57
|
+
host: {
|
|
58
|
+
class: 'kbq-toast__close-button'
|
|
59
|
+
}
|
|
60
|
+
}]
|
|
61
|
+
}] });
|
|
62
|
+
let id = 0;
|
|
63
|
+
class KbqToastComponent {
|
|
64
|
+
get toastStyle() {
|
|
65
|
+
return {
|
|
66
|
+
[`kbq-toast_${this.data.style}`]: true
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
get isFocusedOrHovered() {
|
|
70
|
+
return this.hovered.getValue() || this.focused.getValue();
|
|
71
|
+
}
|
|
72
|
+
constructor(data, service, elementRef, focusMonitor) {
|
|
73
|
+
this.data = data;
|
|
74
|
+
this.service = service;
|
|
75
|
+
this.elementRef = elementRef;
|
|
76
|
+
this.focusMonitor = focusMonitor;
|
|
77
|
+
this.themePalette = ThemePalette;
|
|
78
|
+
this.animationState = 'void';
|
|
79
|
+
this.hovered = new BehaviorSubject(false);
|
|
80
|
+
this.focused = new BehaviorSubject(false);
|
|
81
|
+
this.id = id++;
|
|
82
|
+
this.$implicit = this;
|
|
83
|
+
this.data.style = this.data.style || KbqToastStyle.Contrast;
|
|
84
|
+
this.data.icon = this.data.icon !== undefined ? this.data.icon : true;
|
|
85
|
+
this.data.iconClass = this.data.iconClass || undefined;
|
|
86
|
+
this.data.closeButton = this.data.closeButton !== undefined ? this.data.closeButton : true;
|
|
87
|
+
this.animationState = 'visible';
|
|
88
|
+
this.runFocusMonitor();
|
|
89
|
+
this.hovered.subscribe(this.service.hovered);
|
|
90
|
+
this.focused.subscribe(this.service.focused);
|
|
91
|
+
merge(this.hovered, this.focused)
|
|
92
|
+
.pipe(filter((value) => value), takeUntilDestroyed())
|
|
93
|
+
.subscribe(() => {
|
|
94
|
+
if (this.ttl === 0) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
this.ttl = this.ttl < this.delay ? this.delay : this.ttl;
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
ngOnDestroy() {
|
|
101
|
+
this.stopFocusMonitor();
|
|
102
|
+
this.hovered.next(false);
|
|
103
|
+
this.focused.next(false);
|
|
104
|
+
}
|
|
105
|
+
close() {
|
|
106
|
+
this.service.hide(this.id);
|
|
107
|
+
}
|
|
108
|
+
isTemplateRef(value) {
|
|
109
|
+
return value instanceof TemplateRef;
|
|
110
|
+
}
|
|
111
|
+
onAnimation($event) {
|
|
112
|
+
this.service.animation.next($event);
|
|
113
|
+
}
|
|
114
|
+
runFocusMonitor() {
|
|
115
|
+
this.focusMonitor
|
|
116
|
+
.monitor(this.elementRef.nativeElement, true)
|
|
117
|
+
.subscribe((origin) => this.focused.next(!!origin));
|
|
118
|
+
}
|
|
119
|
+
stopFocusMonitor() {
|
|
120
|
+
this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);
|
|
121
|
+
}
|
|
122
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqToastComponent, deps: [{ token: KbqToastData }, { token: forwardRef(() => KbqToastService) }, { token: i0.ElementRef }, { token: i2.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
123
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: KbqToastComponent, isStandalone: true, selector: "kbq-toast", host: { listeners: { "@state.start": "onAnimation($event)", "@state.done": "onAnimation($event)", "mouseenter": "hovered.next(true)", "mouseleave": "hovered.next(false)", "keydown.esc": "close()" }, properties: { "class": "toastStyle", "class.kbq-toast_dismissible": "data.closeButton", "@state": "animationState" }, classAttribute: "kbq-toast" }, ngImport: i0, template: "@if (data.icon) {\n <div class=\"kbq-toast__icon-container layout-row layout-align-start-start\">\n @if (data.icon === true) {\n @switch (data.style) {\n @case ('contrast') {\n <i\n kbq-icon=\"kbq-info-circle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('success') {\n <i\n kbq-icon=\"kbq-check-circle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('warning') {\n <i\n kbq-icon=\"kbq-exclamation-triangle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('error') {\n <i\n kbq-icon=\"kbq-exclamation-triangle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n }\n }\n @if (isTemplateRef(data.icon)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.icon)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n </div>\n}\n\n<div class=\"kbq-toast__container\">\n @if (data.title) {\n <div kbq-title class=\"kbq-toast__title\" [class.kbq-toast__title_with-content]=\"data.caption || data.content\">\n @if (isTemplateRef(data.title)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.title)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.title)) {\n <p>{{ data.title }}</p>\n }\n </div>\n }\n\n @if (data.caption) {\n <div kbq-title [class.kbq-toast__text]=\"data.title\" [class.kbq-toast__title]=\"!data.title\">\n @if (isTemplateRef(data.caption)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.caption)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.caption)) {\n {{ data.caption }}\n }\n </div>\n }\n\n @if (data.content) {\n <div class=\"kbq-toast__content\">\n @if (isTemplateRef(data.content)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.content)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.content)) {\n {{ data.content }}\n }\n </div>\n }\n\n @if (data.actions) {\n <div class=\"kbq-toast__actions\">\n @if (isTemplateRef(data.actions)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.actions)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.actions)) {\n {{ data.actions }}\n }\n </div>\n }\n</div>\n\n@if (data.closeButton) {\n <div>\n @if (data.closeButton === true) {\n <i kbq-icon-button=\"kbq-xmark-s_16\" kbq-toast-close-button (click)=\"close()\"></i>\n }\n @if (isTemplateRef(data.closeButton)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.closeButton)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n </div>\n}\n", styles: [".kbq-toast{display:flex;box-sizing:border-box;width:var(--kbq-toast-size-container-width);height:auto;border-radius:var(--kbq-toast-size-container-border-radius);padding-left:var(--kbq-toast-size-container-padding-left);padding-right:var(--kbq-toast-size-container-padding-right)}.kbq-toast__icon-container{flex-shrink:0;width:var(--kbq-toast-size-icon-width);max-width:var(--kbq-toast-size-icon-width);height:var(--kbq-toast-size-icon-height);max-height:var(--kbq-toast-size-icon-height);border-radius:var(--kbq-toast-size-container-border-radius);margin-right:var(--kbq-toast-size-icon-margin-right);padding-top:calc(var(--kbq-toast-size-content-padding-top) + (var(--kbq-typography-text-normal-line-height) - var(--kbq-toast-size-icon-height)) / 2)}.kbq-toast__container{display:flex;flex-direction:column;flex:1;padding-top:var(--kbq-toast-size-content-padding-top);padding-right:var(--kbq-size-s);padding-bottom:var(--kbq-toast-size-content-padding-bottom);overflow:hidden}.kbq-toast__title{overflow:hidden;text-overflow:ellipsis}.kbq-toast__title>p{margin:0;overflow:hidden;text-overflow:ellipsis}.kbq-toast__title_with-content{padding-bottom:var(--kbq-toast-size-caption-padding-bottom)}.kbq-toast__text{display:flex;flex:1;align-items:center}.kbq-toast__content{display:flex;flex-direction:column}.kbq-toast__actions{display:flex;padding-top:var(--kbq-toast-size-button-stack-padding-top);gap:var(--kbq-toast-size-button-stack-content-gap-horizontal)}.kbq-toast__close-button{margin-top:calc(var(--kbq-toast-size-content-padding-top) - (var(--kbq-icon-button-size-small-vertical-padding) * 2 + 16px - var(--kbq-typography-text-normal-line-height)) / 2);margin-right:var(--kbq-toast-size-close-button-margin-right)}.kbq-toast__close-button.kbq-icon-button{--kbq-icon-button-size-normal-horizontal-padding: 4px;--kbq-icon-button-size-normal-vertical-padding: 4px}.kbq-toast.kbq-toast_contrast{box-shadow:var(--kbq-toast-contrast-container-shadow);background:var(--kbq-toast-contrast-container-background)}.kbq-toast.kbq-toast_contrast .kbq-toast__title{color:var(--kbq-toast-contrast-container-title)}.kbq-toast.kbq-toast_contrast .kbq-toast__text{color:var(--kbq-toast-contrast-container-text)}.kbq-toast.kbq-toast_success{box-shadow:var(--kbq-toast-success-container-shadow);background:var(--kbq-toast-success-container-background)}.kbq-toast.kbq-toast_success .kbq-toast__title{color:var(--kbq-toast-success-container-title)}.kbq-toast.kbq-toast_success .kbq-toast__text{color:var(--kbq-toast-success-container-text)}.kbq-toast.kbq-toast_warning{box-shadow:var(--kbq-toast-warning-container-shadow);background:var(--kbq-toast-warning-container-background)}.kbq-toast.kbq-toast_warning .kbq-toast__title{color:var(--kbq-toast-warning-container-title)}.kbq-toast.kbq-toast_warning .kbq-toast__text{color:var(--kbq-toast-warning-container-text)}.kbq-toast.kbq-toast_error{box-shadow:var(--kbq-toast-error-container-shadow);background:var(--kbq-toast-error-container-background)}.kbq-toast.kbq-toast_error .kbq-toast__title{color:var(--kbq-toast-error-container-title)}.kbq-toast.kbq-toast_error .kbq-toast__text{color:var(--kbq-toast-error-container-text)}.kbq-toast,.kbq-toast__title{font-size:var(--kbq-typography-text-normal-font-size);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-toast-container{--kbq-toast-stack-size-margin-top: var(--kbq-size-m);--kbq-toast-stack-size-margin-right: var(--kbq-size-m);--kbq-toast-stack-size-gap: var(--kbq-size-s);--kbq-toast-size-container-width: 360px;--kbq-toast-size-container-border-radius: var(--kbq-size-s);--kbq-toast-size-container-padding-left: var(--kbq-size-m);--kbq-toast-size-container-padding-right: var(--kbq-size-s);--kbq-toast-size-content-padding-top: var(--kbq-size-l);--kbq-toast-size-content-padding-bottom: var(--kbq-size-l);--kbq-toast-size-caption-padding-bottom: var(--kbq-size-xxs);--kbq-toast-size-icon-width: var(--kbq-size-l);--kbq-toast-size-icon-height: var(--kbq-size-l);--kbq-toast-size-icon-margin-right: var(--kbq-size-s);--kbq-toast-size-icon-border-radius: 50%;--kbq-toast-size-close-button-margin-top: var(--kbq-size-m);--kbq-toast-size-close-button-margin-right: var(--kbq-size-xxs);--kbq-toast-size-button-stack-padding-top: var(--kbq-size-s);--kbq-toast-size-button-stack-content-gap-horizontal: var(--kbq-size-m);--kbq-toast-contrast-container-background: var(--kbq-background-card);--kbq-toast-contrast-container-title: var(--kbq-foreground-contrast);--kbq-toast-contrast-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-contrast-container-shadow: var(--kbq-shadow-popup);--kbq-toast-error-container-background: var(--kbq-background-card);--kbq-toast-error-container-title: var(--kbq-foreground-contrast);--kbq-toast-error-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-error-container-shadow: var(--kbq-shadow-popup);--kbq-toast-warning-container-background: var(--kbq-background-card);--kbq-toast-warning-container-title: var(--kbq-foreground-contrast);--kbq-toast-warning-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-warning-container-shadow: var(--kbq-shadow-popup);--kbq-toast-success-container-background: var(--kbq-background-card);--kbq-toast-success-container-title: var(--kbq-foreground-contrast);--kbq-toast-success-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-success-container-shadow: var(--kbq-shadow-popup)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i3.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }, { kind: "component", type: i3.KbqIconButton, selector: "[kbq-icon-button]", inputs: ["color", "small", "tabindex", "disabled"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: i4.KbqTitleDirective, selector: "[kbq-title]", exportAs: ["kbqTitle"] }, { kind: "directive", type: KbqToastCloseButton, selector: "[kbq-toast-close-button]" }], animations: [kbqToastAnimations.toastState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
124
|
+
}
|
|
125
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqToastComponent, decorators: [{
|
|
126
|
+
type: Component,
|
|
127
|
+
args: [{ standalone: true, imports: [
|
|
128
|
+
NgTemplateOutlet,
|
|
129
|
+
KbqIconModule,
|
|
130
|
+
NgClass,
|
|
131
|
+
KbqTitleModule,
|
|
132
|
+
KbqToastCloseButton
|
|
133
|
+
], selector: 'kbq-toast', host: {
|
|
134
|
+
class: 'kbq-toast',
|
|
135
|
+
'[class]': 'toastStyle',
|
|
136
|
+
'[class.kbq-toast_dismissible]': 'data.closeButton',
|
|
137
|
+
'[@state]': 'animationState',
|
|
138
|
+
'(@state.start)': 'onAnimation($event)',
|
|
139
|
+
'(@state.done)': 'onAnimation($event)',
|
|
140
|
+
'(mouseenter)': 'hovered.next(true)',
|
|
141
|
+
'(mouseleave)': 'hovered.next(false)',
|
|
142
|
+
'(keydown.esc)': 'close()'
|
|
143
|
+
}, animations: [kbqToastAnimations.toastState], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "@if (data.icon) {\n <div class=\"kbq-toast__icon-container layout-row layout-align-start-start\">\n @if (data.icon === true) {\n @switch (data.style) {\n @case ('contrast') {\n <i\n kbq-icon=\"kbq-info-circle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('success') {\n <i\n kbq-icon=\"kbq-check-circle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('warning') {\n <i\n kbq-icon=\"kbq-exclamation-triangle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('error') {\n <i\n kbq-icon=\"kbq-exclamation-triangle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n }\n }\n @if (isTemplateRef(data.icon)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.icon)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n </div>\n}\n\n<div class=\"kbq-toast__container\">\n @if (data.title) {\n <div kbq-title class=\"kbq-toast__title\" [class.kbq-toast__title_with-content]=\"data.caption || data.content\">\n @if (isTemplateRef(data.title)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.title)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.title)) {\n <p>{{ data.title }}</p>\n }\n </div>\n }\n\n @if (data.caption) {\n <div kbq-title [class.kbq-toast__text]=\"data.title\" [class.kbq-toast__title]=\"!data.title\">\n @if (isTemplateRef(data.caption)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.caption)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.caption)) {\n {{ data.caption }}\n }\n </div>\n }\n\n @if (data.content) {\n <div class=\"kbq-toast__content\">\n @if (isTemplateRef(data.content)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.content)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.content)) {\n {{ data.content }}\n }\n </div>\n }\n\n @if (data.actions) {\n <div class=\"kbq-toast__actions\">\n @if (isTemplateRef(data.actions)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.actions)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.actions)) {\n {{ data.actions }}\n }\n </div>\n }\n</div>\n\n@if (data.closeButton) {\n <div>\n @if (data.closeButton === true) {\n <i kbq-icon-button=\"kbq-xmark-s_16\" kbq-toast-close-button (click)=\"close()\"></i>\n }\n @if (isTemplateRef(data.closeButton)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.closeButton)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n </div>\n}\n", styles: [".kbq-toast{display:flex;box-sizing:border-box;width:var(--kbq-toast-size-container-width);height:auto;border-radius:var(--kbq-toast-size-container-border-radius);padding-left:var(--kbq-toast-size-container-padding-left);padding-right:var(--kbq-toast-size-container-padding-right)}.kbq-toast__icon-container{flex-shrink:0;width:var(--kbq-toast-size-icon-width);max-width:var(--kbq-toast-size-icon-width);height:var(--kbq-toast-size-icon-height);max-height:var(--kbq-toast-size-icon-height);border-radius:var(--kbq-toast-size-container-border-radius);margin-right:var(--kbq-toast-size-icon-margin-right);padding-top:calc(var(--kbq-toast-size-content-padding-top) + (var(--kbq-typography-text-normal-line-height) - var(--kbq-toast-size-icon-height)) / 2)}.kbq-toast__container{display:flex;flex-direction:column;flex:1;padding-top:var(--kbq-toast-size-content-padding-top);padding-right:var(--kbq-size-s);padding-bottom:var(--kbq-toast-size-content-padding-bottom);overflow:hidden}.kbq-toast__title{overflow:hidden;text-overflow:ellipsis}.kbq-toast__title>p{margin:0;overflow:hidden;text-overflow:ellipsis}.kbq-toast__title_with-content{padding-bottom:var(--kbq-toast-size-caption-padding-bottom)}.kbq-toast__text{display:flex;flex:1;align-items:center}.kbq-toast__content{display:flex;flex-direction:column}.kbq-toast__actions{display:flex;padding-top:var(--kbq-toast-size-button-stack-padding-top);gap:var(--kbq-toast-size-button-stack-content-gap-horizontal)}.kbq-toast__close-button{margin-top:calc(var(--kbq-toast-size-content-padding-top) - (var(--kbq-icon-button-size-small-vertical-padding) * 2 + 16px - var(--kbq-typography-text-normal-line-height)) / 2);margin-right:var(--kbq-toast-size-close-button-margin-right)}.kbq-toast__close-button.kbq-icon-button{--kbq-icon-button-size-normal-horizontal-padding: 4px;--kbq-icon-button-size-normal-vertical-padding: 4px}.kbq-toast.kbq-toast_contrast{box-shadow:var(--kbq-toast-contrast-container-shadow);background:var(--kbq-toast-contrast-container-background)}.kbq-toast.kbq-toast_contrast .kbq-toast__title{color:var(--kbq-toast-contrast-container-title)}.kbq-toast.kbq-toast_contrast .kbq-toast__text{color:var(--kbq-toast-contrast-container-text)}.kbq-toast.kbq-toast_success{box-shadow:var(--kbq-toast-success-container-shadow);background:var(--kbq-toast-success-container-background)}.kbq-toast.kbq-toast_success .kbq-toast__title{color:var(--kbq-toast-success-container-title)}.kbq-toast.kbq-toast_success .kbq-toast__text{color:var(--kbq-toast-success-container-text)}.kbq-toast.kbq-toast_warning{box-shadow:var(--kbq-toast-warning-container-shadow);background:var(--kbq-toast-warning-container-background)}.kbq-toast.kbq-toast_warning .kbq-toast__title{color:var(--kbq-toast-warning-container-title)}.kbq-toast.kbq-toast_warning .kbq-toast__text{color:var(--kbq-toast-warning-container-text)}.kbq-toast.kbq-toast_error{box-shadow:var(--kbq-toast-error-container-shadow);background:var(--kbq-toast-error-container-background)}.kbq-toast.kbq-toast_error .kbq-toast__title{color:var(--kbq-toast-error-container-title)}.kbq-toast.kbq-toast_error .kbq-toast__text{color:var(--kbq-toast-error-container-text)}.kbq-toast,.kbq-toast__title{font-size:var(--kbq-typography-text-normal-font-size);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-toast-container{--kbq-toast-stack-size-margin-top: var(--kbq-size-m);--kbq-toast-stack-size-margin-right: var(--kbq-size-m);--kbq-toast-stack-size-gap: var(--kbq-size-s);--kbq-toast-size-container-width: 360px;--kbq-toast-size-container-border-radius: var(--kbq-size-s);--kbq-toast-size-container-padding-left: var(--kbq-size-m);--kbq-toast-size-container-padding-right: var(--kbq-size-s);--kbq-toast-size-content-padding-top: var(--kbq-size-l);--kbq-toast-size-content-padding-bottom: var(--kbq-size-l);--kbq-toast-size-caption-padding-bottom: var(--kbq-size-xxs);--kbq-toast-size-icon-width: var(--kbq-size-l);--kbq-toast-size-icon-height: var(--kbq-size-l);--kbq-toast-size-icon-margin-right: var(--kbq-size-s);--kbq-toast-size-icon-border-radius: 50%;--kbq-toast-size-close-button-margin-top: var(--kbq-size-m);--kbq-toast-size-close-button-margin-right: var(--kbq-size-xxs);--kbq-toast-size-button-stack-padding-top: var(--kbq-size-s);--kbq-toast-size-button-stack-content-gap-horizontal: var(--kbq-size-m);--kbq-toast-contrast-container-background: var(--kbq-background-card);--kbq-toast-contrast-container-title: var(--kbq-foreground-contrast);--kbq-toast-contrast-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-contrast-container-shadow: var(--kbq-shadow-popup);--kbq-toast-error-container-background: var(--kbq-background-card);--kbq-toast-error-container-title: var(--kbq-foreground-contrast);--kbq-toast-error-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-error-container-shadow: var(--kbq-shadow-popup);--kbq-toast-warning-container-background: var(--kbq-background-card);--kbq-toast-warning-container-title: var(--kbq-foreground-contrast);--kbq-toast-warning-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-warning-container-shadow: var(--kbq-shadow-popup);--kbq-toast-success-container-background: var(--kbq-background-card);--kbq-toast-success-container-title: var(--kbq-foreground-contrast);--kbq-toast-success-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-success-container-shadow: var(--kbq-shadow-popup)}\n"] }]
|
|
144
|
+
}], ctorParameters: () => [{ type: KbqToastData }, { type: KbqToastService, decorators: [{
|
|
145
|
+
type: Inject,
|
|
146
|
+
args: [forwardRef(() => KbqToastService)]
|
|
147
|
+
}] }, { type: i0.ElementRef }, { type: i2.FocusMonitor }] });
|
|
148
|
+
|
|
149
|
+
const KBQ_TOAST_FACTORY = new InjectionToken('KBQ_TOAST_FACTORY', {
|
|
150
|
+
factory: () => KbqToastComponent
|
|
151
|
+
});
|
|
43
152
|
const defaultToastConfig = {
|
|
44
153
|
position: KbqToastPosition.TOP_RIGHT,
|
|
45
154
|
duration: 5000,
|
|
@@ -66,7 +175,7 @@ class KbqToastService {
|
|
|
66
175
|
this.hovered = new BehaviorSubject(false);
|
|
67
176
|
this.focused = new BehaviorSubject(false);
|
|
68
177
|
this.animation = new BehaviorSubject(null);
|
|
69
|
-
this.timer = timer(CHECK_INTERVAL, CHECK_INTERVAL).pipe(filter(() => this.toasts.length > 0 && !this.hovered.getValue() && !this.focused.getValue()),
|
|
178
|
+
this.timer = timer(CHECK_INTERVAL, CHECK_INTERVAL).pipe(filter$1(() => this.toasts.length > 0 && !this.hovered.getValue() && !this.focused.getValue()),
|
|
70
179
|
// eslint-disable-next-line rxjs/no-ignored-replay-buffer
|
|
71
180
|
shareReplay());
|
|
72
181
|
this.toastsDict = {};
|
|
@@ -256,11 +365,11 @@ class KbqToastContainerComponent extends CdkScrollable {
|
|
|
256
365
|
});
|
|
257
366
|
}
|
|
258
367
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqToastContainerComponent, deps: [{ token: i0.Injector }, { token: i0.ChangeDetectorRef }, { token: forwardRef(() => KbqToastService) }, { token: i0.ElementRef }, { token: i1.ScrollDispatcher }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
259
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: KbqToastContainerComponent, selector: "kbq-toast-container", host: { classAttribute: "kbq-toast-container" }, viewQueries: [{ propertyName: "viewContainer", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: '<ng-container #container />', isInline: true, styles: [".kbq-toast-container{display:flex;flex-direction:column;align-items:flex-end;margin-top:var(--kbq-toast-stack-size-margin-top);margin-right:var(--kbq-toast-stack-size-margin-right);gap:var(--kbq-toast-stack-size-gap)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
368
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: KbqToastContainerComponent, isStandalone: true, selector: "kbq-toast-container", host: { classAttribute: "kbq-toast-container" }, viewQueries: [{ propertyName: "viewContainer", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: '<ng-container #container />', isInline: true, styles: [".kbq-toast-container{display:flex;flex-direction:column;align-items:flex-end;margin-top:var(--kbq-toast-stack-size-margin-top);margin-right:var(--kbq-toast-stack-size-margin-right);gap:var(--kbq-toast-stack-size-gap)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
260
369
|
}
|
|
261
370
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqToastContainerComponent, decorators: [{
|
|
262
371
|
type: Component,
|
|
263
|
-
args: [{ selector: 'kbq-toast-container', template: '<ng-container #container />', host: {
|
|
372
|
+
args: [{ standalone: true, selector: 'kbq-toast-container', template: '<ng-container #container />', host: {
|
|
264
373
|
class: 'kbq-toast-container'
|
|
265
374
|
}, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".kbq-toast-container{display:flex;flex-direction:column;align-items:flex-end;margin-top:var(--kbq-toast-stack-size-margin-top);margin-right:var(--kbq-toast-stack-size-margin-right);gap:var(--kbq-toast-stack-size-gap)}\n"] }]
|
|
266
375
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: i0.ChangeDetectorRef }, { type: KbqToastService, decorators: [{
|
|
@@ -271,157 +380,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
271
380
|
args: ['container', { static: true, read: ViewContainerRef }]
|
|
272
381
|
}] } });
|
|
273
382
|
|
|
274
|
-
const
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
])
|
|
280
|
-
};
|
|
281
|
-
const toastState = kbqToastAnimations.toastState;
|
|
282
|
-
|
|
283
|
-
class KbqToastCloseButton {
|
|
284
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqToastCloseButton, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
285
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: KbqToastCloseButton, selector: "[kbq-toast-close-button]", host: { classAttribute: "kbq-toast__close-button" }, ngImport: i0 }); }
|
|
286
|
-
}
|
|
287
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqToastCloseButton, decorators: [{
|
|
288
|
-
type: Directive,
|
|
289
|
-
args: [{
|
|
290
|
-
selector: '[kbq-toast-close-button]',
|
|
291
|
-
host: {
|
|
292
|
-
class: 'kbq-toast__close-button'
|
|
293
|
-
}
|
|
294
|
-
}]
|
|
295
|
-
}] });
|
|
296
|
-
let id = 0;
|
|
297
|
-
class KbqToastComponent {
|
|
298
|
-
get toastStyle() {
|
|
299
|
-
return {
|
|
300
|
-
[`kbq-toast_${this.data.style}`]: true
|
|
301
|
-
};
|
|
302
|
-
}
|
|
303
|
-
get isFocusedOrHovered() {
|
|
304
|
-
return this.hovered.getValue() || this.focused.getValue();
|
|
305
|
-
}
|
|
306
|
-
constructor(data, service, elementRef, focusMonitor) {
|
|
307
|
-
this.data = data;
|
|
308
|
-
this.service = service;
|
|
309
|
-
this.elementRef = elementRef;
|
|
310
|
-
this.focusMonitor = focusMonitor;
|
|
311
|
-
this.themePalette = ThemePalette;
|
|
312
|
-
this.animationState = 'void';
|
|
313
|
-
this.hovered = new BehaviorSubject(false);
|
|
314
|
-
this.focused = new BehaviorSubject(false);
|
|
315
|
-
this.id = id++;
|
|
316
|
-
this.$implicit = this;
|
|
317
|
-
this.data.style = this.data.style || KbqToastStyle.Contrast;
|
|
318
|
-
this.data.icon = this.data.icon !== undefined ? this.data.icon : true;
|
|
319
|
-
this.data.iconClass = this.data.iconClass || undefined;
|
|
320
|
-
this.data.closeButton = this.data.closeButton !== undefined ? this.data.closeButton : true;
|
|
321
|
-
this.animationState = 'visible';
|
|
322
|
-
this.runFocusMonitor();
|
|
323
|
-
this.hovered.subscribe(this.service.hovered);
|
|
324
|
-
this.focused.subscribe(this.service.focused);
|
|
325
|
-
merge(this.hovered, this.focused)
|
|
326
|
-
.pipe(filter$1((value) => value), takeUntilDestroyed())
|
|
327
|
-
.subscribe(() => {
|
|
328
|
-
if (this.ttl === 0) {
|
|
329
|
-
return;
|
|
330
|
-
}
|
|
331
|
-
this.ttl = this.ttl < this.delay ? this.delay : this.ttl;
|
|
332
|
-
});
|
|
333
|
-
}
|
|
334
|
-
ngOnDestroy() {
|
|
335
|
-
this.stopFocusMonitor();
|
|
336
|
-
this.hovered.next(false);
|
|
337
|
-
this.focused.next(false);
|
|
338
|
-
}
|
|
339
|
-
close() {
|
|
340
|
-
this.service.hide(this.id);
|
|
341
|
-
}
|
|
342
|
-
isTemplateRef(value) {
|
|
343
|
-
return value instanceof TemplateRef;
|
|
344
|
-
}
|
|
345
|
-
onAnimation($event) {
|
|
346
|
-
this.service.animation.next($event);
|
|
347
|
-
}
|
|
348
|
-
runFocusMonitor() {
|
|
349
|
-
this.focusMonitor
|
|
350
|
-
.monitor(this.elementRef.nativeElement, true)
|
|
351
|
-
.subscribe((origin) => this.focused.next(!!origin));
|
|
352
|
-
}
|
|
353
|
-
stopFocusMonitor() {
|
|
354
|
-
this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);
|
|
355
|
-
}
|
|
356
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqToastComponent, deps: [{ token: KbqToastData }, { token: forwardRef(() => KbqToastService) }, { token: i0.ElementRef }, { token: i2.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
357
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: KbqToastComponent, selector: "kbq-toast", host: { listeners: { "@state.start": "onAnimation($event)", "@state.done": "onAnimation($event)", "mouseenter": "hovered.next(true)", "mouseleave": "hovered.next(false)", "keydown.esc": "close()" }, properties: { "class": "toastStyle", "class.kbq-toast_dismissible": "data.closeButton", "@state": "animationState" }, classAttribute: "kbq-toast" }, ngImport: i0, template: "@if (data.icon) {\n <div class=\"kbq-toast__icon-container layout-row layout-align-start-start\">\n @if (data.icon === true) {\n @switch (data.style) {\n @case ('contrast') {\n <i\n kbq-icon=\"kbq-info-circle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('success') {\n <i\n kbq-icon=\"kbq-check-circle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('warning') {\n <i\n kbq-icon=\"kbq-exclamation-triangle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('error') {\n <i\n kbq-icon=\"kbq-exclamation-triangle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n }\n }\n @if (isTemplateRef(data.icon)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.icon)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n </div>\n}\n\n<div class=\"kbq-toast__container\">\n @if (data.title) {\n <div kbq-title class=\"kbq-toast__title\" [class.kbq-toast__title_with-content]=\"data.caption || data.content\">\n @if (isTemplateRef(data.title)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.title)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.title)) {\n <p>{{ data.title }}</p>\n }\n </div>\n }\n\n @if (data.caption) {\n <div kbq-title [class.kbq-toast__text]=\"data.title\" [class.kbq-toast__title]=\"!data.title\">\n @if (isTemplateRef(data.caption)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.caption)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.caption)) {\n {{ data.caption }}\n }\n </div>\n }\n\n @if (data.content) {\n <div class=\"kbq-toast__content\">\n @if (isTemplateRef(data.content)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.content)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.content)) {\n {{ data.content }}\n }\n </div>\n }\n\n @if (data.actions) {\n <div class=\"kbq-toast__actions\">\n @if (isTemplateRef(data.actions)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.actions)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.actions)) {\n {{ data.actions }}\n }\n </div>\n }\n</div>\n\n@if (data.closeButton) {\n <div>\n @if (data.closeButton === true) {\n <i kbq-icon-button=\"kbq-xmark-s_16\" kbq-toast-close-button (click)=\"close()\"></i>\n }\n @if (isTemplateRef(data.closeButton)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.closeButton)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n </div>\n}\n", styles: [".kbq-toast{display:flex;box-sizing:border-box;width:var(--kbq-toast-size-container-width);height:auto;border-radius:var(--kbq-toast-size-container-border-radius);padding-left:var(--kbq-toast-size-container-padding-left);padding-right:var(--kbq-toast-size-container-padding-right)}.kbq-toast__icon-container{flex-shrink:0;width:var(--kbq-toast-size-icon-width);max-width:var(--kbq-toast-size-icon-width);height:var(--kbq-toast-size-icon-height);max-height:var(--kbq-toast-size-icon-height);border-radius:var(--kbq-toast-size-container-border-radius);margin-right:var(--kbq-toast-size-icon-margin-right);padding-top:calc(var(--kbq-toast-size-content-padding-top) + (var(--kbq-typography-text-normal-line-height) - var(--kbq-toast-size-icon-height)) / 2)}.kbq-toast__container{display:flex;flex-direction:column;flex:1;padding-top:var(--kbq-toast-size-content-padding-top);padding-right:var(--kbq-size-s);padding-bottom:var(--kbq-toast-size-content-padding-bottom);overflow:hidden}.kbq-toast__title{overflow:hidden;text-overflow:ellipsis}.kbq-toast__title>p{margin:0;overflow:hidden;text-overflow:ellipsis}.kbq-toast__title_with-content{padding-bottom:var(--kbq-toast-size-caption-padding-bottom)}.kbq-toast__text{display:flex;flex:1;align-items:center}.kbq-toast__content{display:flex;flex-direction:column}.kbq-toast__actions{display:flex;padding-top:var(--kbq-toast-size-button-stack-padding-top);gap:var(--kbq-toast-size-button-stack-content-gap-horizontal)}.kbq-toast__close-button{margin-top:calc(var(--kbq-toast-size-content-padding-top) - (var(--kbq-icon-button-size-small-vertical-padding) * 2 + 16px - var(--kbq-typography-text-normal-line-height)) / 2);margin-right:var(--kbq-toast-size-close-button-margin-right)}.kbq-toast__close-button.kbq-icon-button{--kbq-icon-button-size-normal-horizontal-padding: 4px;--kbq-icon-button-size-normal-vertical-padding: 4px}.kbq-toast.kbq-toast_contrast{box-shadow:var(--kbq-toast-contrast-container-shadow);background:var(--kbq-toast-contrast-container-background)}.kbq-toast.kbq-toast_contrast .kbq-toast__title{color:var(--kbq-toast-contrast-container-title)}.kbq-toast.kbq-toast_contrast .kbq-toast__text{color:var(--kbq-toast-contrast-container-text)}.kbq-toast.kbq-toast_success{box-shadow:var(--kbq-toast-success-container-shadow);background:var(--kbq-toast-success-container-background)}.kbq-toast.kbq-toast_success .kbq-toast__title{color:var(--kbq-toast-success-container-title)}.kbq-toast.kbq-toast_success .kbq-toast__text{color:var(--kbq-toast-success-container-text)}.kbq-toast.kbq-toast_warning{box-shadow:var(--kbq-toast-warning-container-shadow);background:var(--kbq-toast-warning-container-background)}.kbq-toast.kbq-toast_warning .kbq-toast__title{color:var(--kbq-toast-warning-container-title)}.kbq-toast.kbq-toast_warning .kbq-toast__text{color:var(--kbq-toast-warning-container-text)}.kbq-toast.kbq-toast_error{box-shadow:var(--kbq-toast-error-container-shadow);background:var(--kbq-toast-error-container-background)}.kbq-toast.kbq-toast_error .kbq-toast__title{color:var(--kbq-toast-error-container-title)}.kbq-toast.kbq-toast_error .kbq-toast__text{color:var(--kbq-toast-error-container-text)}.kbq-toast,.kbq-toast__title{font-size:var(--kbq-typography-text-normal-font-size);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-toast-container{--kbq-toast-stack-size-margin-top: var(--kbq-size-m);--kbq-toast-stack-size-margin-right: var(--kbq-size-m);--kbq-toast-stack-size-gap: var(--kbq-size-s);--kbq-toast-size-container-width: 360px;--kbq-toast-size-container-border-radius: var(--kbq-size-s);--kbq-toast-size-container-padding-left: var(--kbq-size-m);--kbq-toast-size-container-padding-right: var(--kbq-size-s);--kbq-toast-size-content-padding-top: var(--kbq-size-l);--kbq-toast-size-content-padding-bottom: var(--kbq-size-l);--kbq-toast-size-caption-padding-bottom: var(--kbq-size-xxs);--kbq-toast-size-icon-width: var(--kbq-size-l);--kbq-toast-size-icon-height: var(--kbq-size-l);--kbq-toast-size-icon-margin-right: var(--kbq-size-s);--kbq-toast-size-icon-border-radius: 50%;--kbq-toast-size-close-button-margin-top: var(--kbq-size-m);--kbq-toast-size-close-button-margin-right: var(--kbq-size-xxs);--kbq-toast-size-button-stack-padding-top: var(--kbq-size-s);--kbq-toast-size-button-stack-content-gap-horizontal: var(--kbq-size-m);--kbq-toast-contrast-container-background: var(--kbq-background-card);--kbq-toast-contrast-container-title: var(--kbq-foreground-contrast);--kbq-toast-contrast-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-contrast-container-shadow: var(--kbq-shadow-popup);--kbq-toast-error-container-background: var(--kbq-background-card);--kbq-toast-error-container-title: var(--kbq-foreground-contrast);--kbq-toast-error-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-error-container-shadow: var(--kbq-shadow-popup);--kbq-toast-warning-container-background: var(--kbq-background-card);--kbq-toast-warning-container-title: var(--kbq-foreground-contrast);--kbq-toast-warning-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-warning-container-shadow: var(--kbq-shadow-popup);--kbq-toast-success-container-background: var(--kbq-background-card);--kbq-toast-success-container-title: var(--kbq-foreground-contrast);--kbq-toast-success-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-success-container-shadow: var(--kbq-shadow-popup)}\n"], dependencies: [{ kind: "directive", type: i3.KbqTitleDirective, selector: "[kbq-title]", exportAs: ["kbqTitle"] }, { kind: "component", type: i4.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }, { kind: "component", type: i4.KbqIconButton, selector: "[kbq-icon-button]", inputs: ["color", "small", "tabindex", "disabled"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: KbqToastCloseButton, selector: "[kbq-toast-close-button]" }], animations: [kbqToastAnimations.toastState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
358
|
-
}
|
|
359
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqToastComponent, decorators: [{
|
|
360
|
-
type: Component,
|
|
361
|
-
args: [{ selector: 'kbq-toast', host: {
|
|
362
|
-
class: 'kbq-toast',
|
|
363
|
-
'[class]': 'toastStyle',
|
|
364
|
-
'[class.kbq-toast_dismissible]': 'data.closeButton',
|
|
365
|
-
'[@state]': 'animationState',
|
|
366
|
-
'(@state.start)': 'onAnimation($event)',
|
|
367
|
-
'(@state.done)': 'onAnimation($event)',
|
|
368
|
-
'(mouseenter)': 'hovered.next(true)',
|
|
369
|
-
'(mouseleave)': 'hovered.next(false)',
|
|
370
|
-
'(keydown.esc)': 'close()'
|
|
371
|
-
}, animations: [kbqToastAnimations.toastState], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "@if (data.icon) {\n <div class=\"kbq-toast__icon-container layout-row layout-align-start-start\">\n @if (data.icon === true) {\n @switch (data.style) {\n @case ('contrast') {\n <i\n kbq-icon=\"kbq-info-circle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('success') {\n <i\n kbq-icon=\"kbq-check-circle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('warning') {\n <i\n kbq-icon=\"kbq-exclamation-triangle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('error') {\n <i\n kbq-icon=\"kbq-exclamation-triangle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n }\n }\n @if (isTemplateRef(data.icon)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.icon)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n </div>\n}\n\n<div class=\"kbq-toast__container\">\n @if (data.title) {\n <div kbq-title class=\"kbq-toast__title\" [class.kbq-toast__title_with-content]=\"data.caption || data.content\">\n @if (isTemplateRef(data.title)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.title)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.title)) {\n <p>{{ data.title }}</p>\n }\n </div>\n }\n\n @if (data.caption) {\n <div kbq-title [class.kbq-toast__text]=\"data.title\" [class.kbq-toast__title]=\"!data.title\">\n @if (isTemplateRef(data.caption)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.caption)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.caption)) {\n {{ data.caption }}\n }\n </div>\n }\n\n @if (data.content) {\n <div class=\"kbq-toast__content\">\n @if (isTemplateRef(data.content)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.content)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.content)) {\n {{ data.content }}\n }\n </div>\n }\n\n @if (data.actions) {\n <div class=\"kbq-toast__actions\">\n @if (isTemplateRef(data.actions)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.actions)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.actions)) {\n {{ data.actions }}\n }\n </div>\n }\n</div>\n\n@if (data.closeButton) {\n <div>\n @if (data.closeButton === true) {\n <i kbq-icon-button=\"kbq-xmark-s_16\" kbq-toast-close-button (click)=\"close()\"></i>\n }\n @if (isTemplateRef(data.closeButton)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.closeButton)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n </div>\n}\n", styles: [".kbq-toast{display:flex;box-sizing:border-box;width:var(--kbq-toast-size-container-width);height:auto;border-radius:var(--kbq-toast-size-container-border-radius);padding-left:var(--kbq-toast-size-container-padding-left);padding-right:var(--kbq-toast-size-container-padding-right)}.kbq-toast__icon-container{flex-shrink:0;width:var(--kbq-toast-size-icon-width);max-width:var(--kbq-toast-size-icon-width);height:var(--kbq-toast-size-icon-height);max-height:var(--kbq-toast-size-icon-height);border-radius:var(--kbq-toast-size-container-border-radius);margin-right:var(--kbq-toast-size-icon-margin-right);padding-top:calc(var(--kbq-toast-size-content-padding-top) + (var(--kbq-typography-text-normal-line-height) - var(--kbq-toast-size-icon-height)) / 2)}.kbq-toast__container{display:flex;flex-direction:column;flex:1;padding-top:var(--kbq-toast-size-content-padding-top);padding-right:var(--kbq-size-s);padding-bottom:var(--kbq-toast-size-content-padding-bottom);overflow:hidden}.kbq-toast__title{overflow:hidden;text-overflow:ellipsis}.kbq-toast__title>p{margin:0;overflow:hidden;text-overflow:ellipsis}.kbq-toast__title_with-content{padding-bottom:var(--kbq-toast-size-caption-padding-bottom)}.kbq-toast__text{display:flex;flex:1;align-items:center}.kbq-toast__content{display:flex;flex-direction:column}.kbq-toast__actions{display:flex;padding-top:var(--kbq-toast-size-button-stack-padding-top);gap:var(--kbq-toast-size-button-stack-content-gap-horizontal)}.kbq-toast__close-button{margin-top:calc(var(--kbq-toast-size-content-padding-top) - (var(--kbq-icon-button-size-small-vertical-padding) * 2 + 16px - var(--kbq-typography-text-normal-line-height)) / 2);margin-right:var(--kbq-toast-size-close-button-margin-right)}.kbq-toast__close-button.kbq-icon-button{--kbq-icon-button-size-normal-horizontal-padding: 4px;--kbq-icon-button-size-normal-vertical-padding: 4px}.kbq-toast.kbq-toast_contrast{box-shadow:var(--kbq-toast-contrast-container-shadow);background:var(--kbq-toast-contrast-container-background)}.kbq-toast.kbq-toast_contrast .kbq-toast__title{color:var(--kbq-toast-contrast-container-title)}.kbq-toast.kbq-toast_contrast .kbq-toast__text{color:var(--kbq-toast-contrast-container-text)}.kbq-toast.kbq-toast_success{box-shadow:var(--kbq-toast-success-container-shadow);background:var(--kbq-toast-success-container-background)}.kbq-toast.kbq-toast_success .kbq-toast__title{color:var(--kbq-toast-success-container-title)}.kbq-toast.kbq-toast_success .kbq-toast__text{color:var(--kbq-toast-success-container-text)}.kbq-toast.kbq-toast_warning{box-shadow:var(--kbq-toast-warning-container-shadow);background:var(--kbq-toast-warning-container-background)}.kbq-toast.kbq-toast_warning .kbq-toast__title{color:var(--kbq-toast-warning-container-title)}.kbq-toast.kbq-toast_warning .kbq-toast__text{color:var(--kbq-toast-warning-container-text)}.kbq-toast.kbq-toast_error{box-shadow:var(--kbq-toast-error-container-shadow);background:var(--kbq-toast-error-container-background)}.kbq-toast.kbq-toast_error .kbq-toast__title{color:var(--kbq-toast-error-container-title)}.kbq-toast.kbq-toast_error .kbq-toast__text{color:var(--kbq-toast-error-container-text)}.kbq-toast,.kbq-toast__title{font-size:var(--kbq-typography-text-normal-font-size);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-toast-container{--kbq-toast-stack-size-margin-top: var(--kbq-size-m);--kbq-toast-stack-size-margin-right: var(--kbq-size-m);--kbq-toast-stack-size-gap: var(--kbq-size-s);--kbq-toast-size-container-width: 360px;--kbq-toast-size-container-border-radius: var(--kbq-size-s);--kbq-toast-size-container-padding-left: var(--kbq-size-m);--kbq-toast-size-container-padding-right: var(--kbq-size-s);--kbq-toast-size-content-padding-top: var(--kbq-size-l);--kbq-toast-size-content-padding-bottom: var(--kbq-size-l);--kbq-toast-size-caption-padding-bottom: var(--kbq-size-xxs);--kbq-toast-size-icon-width: var(--kbq-size-l);--kbq-toast-size-icon-height: var(--kbq-size-l);--kbq-toast-size-icon-margin-right: var(--kbq-size-s);--kbq-toast-size-icon-border-radius: 50%;--kbq-toast-size-close-button-margin-top: var(--kbq-size-m);--kbq-toast-size-close-button-margin-right: var(--kbq-size-xxs);--kbq-toast-size-button-stack-padding-top: var(--kbq-size-s);--kbq-toast-size-button-stack-content-gap-horizontal: var(--kbq-size-m);--kbq-toast-contrast-container-background: var(--kbq-background-card);--kbq-toast-contrast-container-title: var(--kbq-foreground-contrast);--kbq-toast-contrast-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-contrast-container-shadow: var(--kbq-shadow-popup);--kbq-toast-error-container-background: var(--kbq-background-card);--kbq-toast-error-container-title: var(--kbq-foreground-contrast);--kbq-toast-error-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-error-container-shadow: var(--kbq-shadow-popup);--kbq-toast-warning-container-background: var(--kbq-background-card);--kbq-toast-warning-container-title: var(--kbq-foreground-contrast);--kbq-toast-warning-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-warning-container-shadow: var(--kbq-shadow-popup);--kbq-toast-success-container-background: var(--kbq-background-card);--kbq-toast-success-container-title: var(--kbq-foreground-contrast);--kbq-toast-success-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-success-container-shadow: var(--kbq-shadow-popup)}\n"] }]
|
|
372
|
-
}], ctorParameters: () => [{ type: KbqToastData }, { type: KbqToastService, decorators: [{
|
|
373
|
-
type: Inject,
|
|
374
|
-
args: [forwardRef(() => KbqToastService)]
|
|
375
|
-
}] }, { type: i0.ElementRef }, { type: i2.FocusMonitor }] });
|
|
376
|
-
|
|
383
|
+
const COMPONENTS = [
|
|
384
|
+
KbqToastComponent,
|
|
385
|
+
KbqToastCloseButton,
|
|
386
|
+
KbqToastContainerComponent
|
|
387
|
+
];
|
|
377
388
|
class KbqToastModule {
|
|
378
389
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqToastModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
379
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: KbqToastModule,
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
KbqButtonModule,
|
|
386
|
-
NgTemplateOutlet,
|
|
387
|
-
NgClass], exports: [KbqToastComponent,
|
|
388
|
-
KbqToastContainerComponent,
|
|
389
|
-
KbqToastCloseButton] }); }
|
|
390
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqToastModule, providers: [
|
|
391
|
-
KbqToastService,
|
|
392
|
-
{ provide: KBQ_TOAST_FACTORY, useFactory: (() => KbqToastComponent) }
|
|
393
|
-
], imports: [OverlayModule,
|
|
394
|
-
KbqTitleModule,
|
|
395
|
-
A11yModule,
|
|
396
|
-
KbqIconModule,
|
|
397
|
-
KbqButtonModule] }); }
|
|
390
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: KbqToastModule, imports: [KbqToastComponent,
|
|
391
|
+
KbqToastCloseButton,
|
|
392
|
+
KbqToastContainerComponent], exports: [KbqToastComponent,
|
|
393
|
+
KbqToastCloseButton,
|
|
394
|
+
KbqToastContainerComponent] }); }
|
|
395
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqToastModule, imports: [KbqToastComponent] }); }
|
|
398
396
|
}
|
|
399
397
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqToastModule, decorators: [{
|
|
400
398
|
type: NgModule,
|
|
401
399
|
args: [{
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
KbqToastContainerComponent,
|
|
405
|
-
KbqToastCloseButton
|
|
406
|
-
],
|
|
407
|
-
imports: [
|
|
408
|
-
OverlayModule,
|
|
409
|
-
KbqTitleModule,
|
|
410
|
-
A11yModule,
|
|
411
|
-
KbqIconModule,
|
|
412
|
-
KbqButtonModule,
|
|
413
|
-
NgTemplateOutlet,
|
|
414
|
-
NgClass
|
|
415
|
-
],
|
|
416
|
-
exports: [
|
|
417
|
-
KbqToastComponent,
|
|
418
|
-
KbqToastContainerComponent,
|
|
419
|
-
KbqToastCloseButton
|
|
420
|
-
],
|
|
421
|
-
providers: [
|
|
422
|
-
KbqToastService,
|
|
423
|
-
{ provide: KBQ_TOAST_FACTORY, useFactory: (() => KbqToastComponent) }
|
|
424
|
-
]
|
|
400
|
+
imports: COMPONENTS,
|
|
401
|
+
exports: COMPONENTS
|
|
425
402
|
}]
|
|
426
403
|
}] });
|
|
427
404
|
|