@cuby-ui/core 0.0.16 → 0.0.19
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/components/accordion/accordion-item/accordion-item.component.d.ts +2 -0
- package/components/alert/alert.module.d.ts +1 -1
- package/components/banner/banner.component.d.ts +17 -0
- package/components/banner/banner.module.d.ts +10 -0
- package/components/banner/banner.options.d.ts +13 -0
- package/components/banner/index.d.ts +3 -0
- package/components/context-menu/context-menu.component.d.ts +4 -3
- package/components/index.d.ts +2 -0
- package/components/root/index.d.ts +2 -0
- package/components/root/root.component.d.ts +5 -0
- package/components/root/root.module.d.ts +10 -0
- package/esm2020/components/accordion/accordion-item/accordion-item.component.mjs +6 -3
- package/esm2020/components/alert/alert.component.mjs +5 -4
- package/esm2020/components/alert/alert.module.mjs +3 -1
- package/esm2020/components/alert/alerts.component.mjs +2 -2
- package/esm2020/components/banner/banner.component.mjs +61 -0
- package/esm2020/components/banner/banner.module.mjs +28 -0
- package/esm2020/components/banner/banner.options.mjs +6 -0
- package/esm2020/components/banner/index.mjs +4 -0
- package/esm2020/components/context-menu/context-menu.component.mjs +22 -14
- package/esm2020/components/editor/editor.component.mjs +2 -1
- package/esm2020/components/index.mjs +3 -1
- package/esm2020/components/notification/notification.component.mjs +2 -2
- package/esm2020/components/root/index.mjs +3 -0
- package/esm2020/components/root/root.component.mjs +13 -0
- package/esm2020/components/root/root.module.mjs +28 -0
- package/esm2020/index.mjs +2 -1
- package/esm2020/services/index.mjs +2 -0
- package/esm2020/services/theme.options.mjs +6 -0
- package/esm2020/services/theme.service.mjs +30 -0
- package/fesm2015/cuby-ui-core.mjs +180 -23
- package/fesm2015/cuby-ui-core.mjs.map +1 -1
- package/fesm2020/cuby-ui-core.mjs +180 -23
- package/fesm2020/cuby-ui-core.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/package.json +3 -3
- package/services/index.d.ts +1 -0
- package/services/theme.options.d.ts +5 -0
- package/services/theme.service.d.ts +12 -0
- package/styles/theme.scss +12 -1
- package/styles/variables/colors.scss +9 -1
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import type { CuiIcon } from '@cuby-ui/icons';
|
|
1
2
|
import * as i0 from "@angular/core";
|
|
2
3
|
export declare class CuiAccordionItemComponent {
|
|
3
4
|
protected isOpen: boolean;
|
|
5
|
+
protected get buttonIcon(): CuiIcon;
|
|
4
6
|
protected onRowToggle(): void;
|
|
5
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<CuiAccordionItemComponent, never>;
|
|
6
8
|
static ɵcmp: i0.ɵɵComponentDeclaration<CuiAccordionItemComponent, "cui-accordion-item", never, {}, {}, never, ["*", "[cuiAccordionItemContent]"], false, never>;
|
|
@@ -6,6 +6,6 @@ import * as i4 from "@cuby-ui/cdk";
|
|
|
6
6
|
import * as i5 from "../notification/notification.module";
|
|
7
7
|
export declare class CuiAlertModule {
|
|
8
8
|
static ɵfac: i0.ɵɵFactoryDeclaration<CuiAlertModule, never>;
|
|
9
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<CuiAlertModule, [typeof i1.CuiAlertComponent, typeof i2.CuiAlertsComponent], [typeof i3.CommonModule, typeof i4.CuiFilterPipe, typeof i5.CuiNotificationModule], [typeof i1.CuiAlertComponent, typeof i2.CuiAlertsComponent]>;
|
|
9
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<CuiAlertModule, [typeof i1.CuiAlertComponent, typeof i2.CuiAlertsComponent], [typeof i3.CommonModule, typeof i4.CuiFilterPipe, typeof i5.CuiNotificationModule], [typeof i1.CuiAlertComponent, typeof i1.CuiAlertComponent, typeof i2.CuiAlertsComponent]>;
|
|
10
10
|
static ɵinj: i0.ɵɵInjectorDeclaration<CuiAlertModule>;
|
|
11
11
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import type { CuiBannerIconOptions, CuiBannerOptions } from './banner.options';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class CuiBannerComponent implements CuiBannerOptions {
|
|
5
|
+
private readonly cuiBannerOptions;
|
|
6
|
+
protected readonly ICON_OPTIONS: CuiBannerIconOptions;
|
|
7
|
+
status: import("@cuby-ui/core").CuiStatus;
|
|
8
|
+
isCloseable: boolean;
|
|
9
|
+
label?: string;
|
|
10
|
+
actionButtonText?: string;
|
|
11
|
+
actionButtonClicked: EventEmitter<void>;
|
|
12
|
+
closed: EventEmitter<void>;
|
|
13
|
+
protected onAction(): void;
|
|
14
|
+
protected onClose(): void;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CuiBannerComponent, never>;
|
|
16
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CuiBannerComponent, "cui-banner", never, { "status": "status"; "isCloseable": "isCloseable"; "label": "label"; "actionButtonText": "actionButtonText"; }, { "actionButtonClicked": "actionButtonClicked"; "closed": "closed"; }, never, ["*"], false, never>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./banner.component";
|
|
3
|
+
import * as i2 from "@angular/common";
|
|
4
|
+
import * as i3 from "../svg/svg.module";
|
|
5
|
+
import * as i4 from "../button/button.module";
|
|
6
|
+
export declare class CuiBannerModule {
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CuiBannerModule, never>;
|
|
8
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<CuiBannerModule, [typeof i1.CuiBannerComponent], [typeof i2.CommonModule, typeof i3.CuiSvgModule, typeof i4.CuiButtonModule], [typeof i1.CuiBannerComponent]>;
|
|
9
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<CuiBannerModule>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { CuiStatus } from '../../types';
|
|
2
|
+
import type { CuiIcon } from '@cuby-ui/icons';
|
|
3
|
+
export type CuiBannerIconOptions = {
|
|
4
|
+
[k in CuiStatus]: {
|
|
5
|
+
icon: CuiIcon;
|
|
6
|
+
color: string;
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
export interface CuiBannerOptions {
|
|
10
|
+
readonly status: CuiStatus;
|
|
11
|
+
}
|
|
12
|
+
export declare const CUI_BANNER_DEFAULT_OPTIONS: CuiBannerOptions;
|
|
13
|
+
export declare const CUI_BANNER_OPTIONS: import("@angular/core").InjectionToken<CuiBannerOptions>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AfterViewInit, OnDestroy } from '@angular/core';
|
|
1
|
+
import type { AfterViewInit, OnDestroy } from '@angular/core';
|
|
2
2
|
import type { CuiContextMenuItem } from '../../interfaces';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export declare class CuiContextMenuComponent implements AfterViewInit, OnDestroy {
|
|
@@ -12,12 +12,13 @@ export declare class CuiContextMenuComponent implements AfterViewInit, OnDestroy
|
|
|
12
12
|
items: CuiContextMenuItem[];
|
|
13
13
|
target: HTMLElement;
|
|
14
14
|
isHidden: boolean;
|
|
15
|
-
protected
|
|
16
|
-
protected
|
|
15
|
+
protected clientX?: number;
|
|
16
|
+
protected clientY?: number;
|
|
17
17
|
ngAfterViewInit(): void;
|
|
18
18
|
ngOnDestroy(): void;
|
|
19
19
|
protected onSelect(item: CuiContextMenuItem): void;
|
|
20
20
|
protected onClickOutside(target: HTMLElement): void;
|
|
21
|
+
protected onClose(): void;
|
|
21
22
|
protected trackByFn(_: number, item: CuiContextMenuItem): string;
|
|
22
23
|
private initTargetElementListener;
|
|
23
24
|
private destroyTargetElementListener;
|
package/components/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from './accordion';
|
|
2
2
|
export * from './alert';
|
|
3
|
+
export * from './banner';
|
|
3
4
|
export * from './button';
|
|
4
5
|
export * from './button-group';
|
|
5
6
|
export * from './context-menu';
|
|
@@ -12,5 +13,6 @@ export * from './input-password';
|
|
|
12
13
|
export * from './input-text';
|
|
13
14
|
export * from './label';
|
|
14
15
|
export * from './notification';
|
|
16
|
+
export * from './root';
|
|
15
17
|
export * from './svg';
|
|
16
18
|
export * from './textarea';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./root.component";
|
|
3
|
+
import * as i2 from "@angular/common";
|
|
4
|
+
import * as i3 from "../dialog/dialog.module";
|
|
5
|
+
import * as i4 from "../alert/alert.module";
|
|
6
|
+
export declare class CuiRootModule {
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CuiRootModule, never>;
|
|
8
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<CuiRootModule, [typeof i1.CuiRootComponent], [typeof i2.CommonModule, typeof i3.CuiDialogModule, typeof i4.CuiAlertModule], [typeof i1.CuiRootComponent]>;
|
|
9
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<CuiRootModule>;
|
|
10
|
+
}
|
|
@@ -6,14 +6,17 @@ export class CuiAccordionItemComponent {
|
|
|
6
6
|
constructor() {
|
|
7
7
|
this.isOpen = false;
|
|
8
8
|
}
|
|
9
|
+
get buttonIcon() {
|
|
10
|
+
return this.isOpen ? 'cuiIconChevronDown' : 'cuiIconChevronRight';
|
|
11
|
+
}
|
|
9
12
|
onRowToggle() {
|
|
10
13
|
this.isOpen = !this.isOpen;
|
|
11
14
|
}
|
|
12
15
|
}
|
|
13
16
|
CuiAccordionItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiAccordionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14
|
-
CuiAccordionItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiAccordionItemComponent, selector: "cui-accordion-item", ngImport: i0, template: "<header class=\"c-header\">\n <
|
|
17
|
+
CuiAccordionItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiAccordionItemComponent, selector: "cui-accordion-item", ngImport: i0, template: "<header class=\"c-header\">\n <button\n cuiButton\n appearance=\"ghost\"\n size=\"xxs\"\n [icon]=\"buttonIcon\"\n (click)=\"onRowToggle()\"\n ></button>\n <span>\n <ng-content></ng-content>\n </span>\n</header>\n<div *ngIf=\"isOpen\">\n <ng-content select=\"[cuiAccordionItemContent]\"></ng-content>\n</div>\n", styles: [":host{padding:16px;display:flex;flex-direction:column;gap:8px;background:var(--cui-base-10);border-radius:8px}.c-header{font-weight:400;font-size:12px;line-height:14px;display:flex;align-items:center;gap:8px;color:var(--cui-base-900);font-family:var(--cui-main-font);text-transform:uppercase}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
15
18
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiAccordionItemComponent, decorators: [{
|
|
16
19
|
type: Component,
|
|
17
|
-
args: [{ selector: 'cui-accordion-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<header class=\"c-header\">\n <
|
|
20
|
+
args: [{ selector: 'cui-accordion-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<header class=\"c-header\">\n <button\n cuiButton\n appearance=\"ghost\"\n size=\"xxs\"\n [icon]=\"buttonIcon\"\n (click)=\"onRowToggle()\"\n ></button>\n <span>\n <ng-content></ng-content>\n </span>\n</header>\n<div *ngIf=\"isOpen\">\n <ng-content select=\"[cuiAccordionItemContent]\"></ng-content>\n</div>\n", styles: [":host{padding:16px;display:flex;flex-direction:column;gap:8px;background:var(--cui-base-10);border-radius:8px}.c-header{font-weight:400;font-size:12px;line-height:14px;display:flex;align-items:center;gap:8px;color:var(--cui-base-900);font-family:var(--cui-main-font);text-transform:uppercase}\n"] }]
|
|
18
21
|
}] });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL2FjY29yZGlvbi9hY2NvcmRpb24taXRlbS9hY2NvcmRpb24taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi1pdGVtL2FjY29yZGlvbi1pdGVtLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVNuRSxNQUFNLE9BQU8seUJBQXlCO0lBTnRDO1FBT1ksV0FBTSxHQUFHLEtBQUssQ0FBQztLQVMxQjtJQVBDLElBQWMsVUFBVTtRQUN0QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQztJQUNwRSxDQUFDO0lBRVMsV0FBVztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUM3QixDQUFDOzt1SEFUVSx5QkFBeUI7MkdBQXpCLHlCQUF5QiwwRENUdEMsOFVBZUE7NEZETmEseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLG9CQUFvQixtQkFHYix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBDdWlJY29uIH0gZnJvbSAnQGN1YnktdWkvaWNvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdWktYWNjb3JkaW9uLWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWNjb3JkaW9uLWl0ZW0udGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FjY29yZGlvbi1pdGVtLnN0eWxlLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ3VpQWNjb3JkaW9uSXRlbUNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBpc09wZW4gPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgZ2V0IGJ1dHRvbkljb24oKTogQ3VpSWNvbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNPcGVuID8gJ2N1aUljb25DaGV2cm9uRG93bicgOiAnY3VpSWNvbkNoZXZyb25SaWdodCc7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Sb3dUb2dnbGUoKTogdm9pZCB7XG4gICAgdGhpcy5pc09wZW4gPSAhdGhpcy5pc09wZW47XG4gIH1cbn1cbiIsIjxoZWFkZXIgY2xhc3M9XCJjLWhlYWRlclwiPlxuICA8YnV0dG9uXG4gICAgY3VpQnV0dG9uXG4gICAgYXBwZWFyYW5jZT1cImdob3N0XCJcbiAgICBzaXplPVwieHhzXCJcbiAgICBbaWNvbl09XCJidXR0b25JY29uXCJcbiAgICAoY2xpY2spPVwib25Sb3dUb2dnbGUoKVwiXG4gID48L2J1dHRvbj5cbiAgPHNwYW4+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L3NwYW4+XG48L2hlYWRlcj5cbjxkaXYgKm5nSWY9XCJpc09wZW5cIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2N1aUFjY29yZGlvbkl0ZW1Db250ZW50XVwiPjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
|
|
@@ -2,7 +2,8 @@ import { HostBinding } from '@angular/core';
|
|
|
2
2
|
import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
|
|
3
3
|
import { CUI_ALERT_CONTEXT } from './alert.tokens';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
6
|
+
import * as i2 from "../notification/notification.component";
|
|
6
7
|
export class CuiAlertComponent {
|
|
7
8
|
constructor() {
|
|
8
9
|
this.context = inject(CUI_ALERT_CONTEXT);
|
|
@@ -25,12 +26,12 @@ export class CuiAlertComponent {
|
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
28
|
CuiAlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiAlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
28
|
-
CuiAlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiAlertComponent, selector: "cui-alert", host: { properties: { "attr.data-resizing": "this.resizing" } }, ngImport: i0, template: "<cui-notification\n [status]=\"context.status\"\n [isCloseable]=\"context.isCloseable\"\n (closed)=\"onClosed()\"\n>\n <h2
|
|
29
|
+
CuiAlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiAlertComponent, selector: "cui-alert", host: { properties: { "attr.data-resizing": "this.resizing" } }, ngImport: i0, template: "<cui-notification\n [status]=\"context.status\"\n [isCloseable]=\"context.isCloseable\"\n (closed)=\"onClosed()\"\n>\n <h2\n *ngIf=\"context.label\"\n class=\"c-heading\"\n >\n {{ context.label }}\n </h2>\n {{ context.content }}\n</cui-notification>\n", styles: [":host{max-width:470px}:host[data-resizing=hug]{width:-moz-fit-content;width:fit-content}:host[data-resizing=fixed]{width:470px}.c-heading{font-weight:500;font-size:14px;line-height:20px;margin:0 0 8px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CuiNotificationComponent, selector: "cui-notification", inputs: ["status", "isCloseable"], outputs: ["closed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
29
30
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiAlertComponent, decorators: [{
|
|
30
31
|
type: Component,
|
|
31
|
-
args: [{ selector: 'cui-alert', changeDetection: ChangeDetectionStrategy.OnPush, template: "<cui-notification\n [status]=\"context.status\"\n [isCloseable]=\"context.isCloseable\"\n (closed)=\"onClosed()\"\n>\n <h2
|
|
32
|
+
args: [{ selector: 'cui-alert', changeDetection: ChangeDetectionStrategy.OnPush, template: "<cui-notification\n [status]=\"context.status\"\n [isCloseable]=\"context.isCloseable\"\n (closed)=\"onClosed()\"\n>\n <h2\n *ngIf=\"context.label\"\n class=\"c-heading\"\n >\n {{ context.label }}\n </h2>\n {{ context.content }}\n</cui-notification>\n", styles: [":host{max-width:470px}:host[data-resizing=hug]{width:-moz-fit-content;width:fit-content}:host[data-resizing=fixed]{width:470px}.c-heading{font-weight:500;font-size:14px;line-height:20px;margin:0 0 8px}\n"] }]
|
|
32
33
|
}], propDecorators: { resizing: [{
|
|
33
34
|
type: HostBinding,
|
|
34
35
|
args: ['attr.data-resizing']
|
|
35
36
|
}] } });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9hbGVydC9hbGVydC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFTbkQsTUFBTSxPQUFPLGlCQUFpQjtJQU45QjtRQU9xQixZQUFPLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFcEMsd0NBQW1DLEdBQUcsSUFBSSxDQUFDO0tBc0IvRDtJQXBCQyxJQUNjLFFBQVE7UUFDcEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUMvQixDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRVMsUUFBUTtRQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUU7WUFDL0IsT0FBTztTQUNSO1FBRUQsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7OytHQXhCVSxpQkFBaUI7bUdBQWpCLGlCQUFpQixrSENiOUIsNlFBYUE7NEZEQWEsaUJBQWlCO2tCQU43QixTQUFTOytCQUNFLFdBQVcsbUJBR0osdUJBQXVCLENBQUMsTUFBTTs4QkFRakMsUUFBUTtzQkFEckIsV0FBVzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDVUlfQUxFUlRfQ09OVEVYVCB9IGZyb20gJy4vYWxlcnQudG9rZW5zJztcbmltcG9ydCB0eXBlIHsgQ3VpQWxlcnRSZXNpemluZyB9IGZyb20gJy4vYWxlcnQudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdWktYWxlcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWxlcnQudGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FsZXJ0LnN0eWxlLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ3VpQWxlcnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29udGV4dCA9IGluamVjdChDVUlfQUxFUlRfQ09OVEVYVCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IEFVVE9fQ0xPU0VfRFVSQVRJT05fSU5fTUlMTElTRUNPTkRTID0gMzAwMDtcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1yZXNpemluZycpXG4gIHByb3RlY3RlZCBnZXQgcmVzaXppbmcoKTogQ3VpQWxlcnRSZXNpemluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dC5yZXNpemluZztcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRBdXRvQ2xvc2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkNsb3NlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRleHQuJGltcGxpY2l0LmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRBdXRvQ2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNvbnRleHQubmVlZEF1dG9DbG9zZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldFRpbWVvdXQodGhpcy5vbkNsb3NlZC5iaW5kKHRoaXMpLCB0aGlzLkFVVE9fQ0xPU0VfRFVSQVRJT05fSU5fTUlMTElTRUNPTkRTKTtcbiAgfVxufVxuIiwiPGN1aS1ub3RpZmljYXRpb25cbiAgW3N0YXR1c109XCJjb250ZXh0LnN0YXR1c1wiXG4gIFtpc0Nsb3NlYWJsZV09XCJjb250ZXh0LmlzQ2xvc2VhYmxlXCJcbiAgKGNsb3NlZCk9XCJvbkNsb3NlZCgpXCJcbj5cbiAgPGgyXG4gICAgKm5nSWY9XCJjb250ZXh0LmxhYmVsXCJcbiAgICBjbGFzcz1cImMtaGVhZGluZ1wiXG4gID5cbiAgICB7eyBjb250ZXh0LmxhYmVsIH19XG4gIDwvaDI+XG4gIHt7IGNvbnRleHQuY29udGVudCB9fVxuPC9jdWktbm90aWZpY2F0aW9uPlxuIl19
|
|
@@ -12,6 +12,7 @@ CuiAlertModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
|
|
|
12
12
|
CuiAlertsComponent], imports: [CommonModule,
|
|
13
13
|
CuiFilterPipe,
|
|
14
14
|
CuiNotificationModule], exports: [CuiAlertComponent,
|
|
15
|
+
CuiAlertComponent,
|
|
15
16
|
CuiAlertsComponent] });
|
|
16
17
|
CuiAlertModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiAlertModule, imports: [CommonModule,
|
|
17
18
|
CuiNotificationModule] });
|
|
@@ -28,9 +29,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
28
29
|
CuiAlertsComponent
|
|
29
30
|
],
|
|
30
31
|
exports: [
|
|
32
|
+
CuiAlertComponent,
|
|
31
33
|
CuiAlertComponent,
|
|
32
34
|
CuiAlertsComponent
|
|
33
35
|
]
|
|
34
36
|
}]
|
|
35
37
|
}] });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL2FsZXJ0L2FsZXJ0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQWtCeEQsTUFBTSxPQUFPLGNBQWM7OzRHQUFkLGNBQWM7NkdBQWQsY0FBYyxpQkFUdkIsaUJBQWlCO1FBQ2pCLGtCQUFrQixhQU5sQixZQUFZO1FBQ1osYUFBYTtRQUNiLHFCQUFxQixhQU9yQixpQkFBaUI7UUFDakIsaUJBQWlCO1FBQ2pCLGtCQUFrQjs2R0FHVCxjQUFjLFlBZHZCLFlBQVk7UUFFWixxQkFBcUI7NEZBWVosY0FBYztrQkFoQjFCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixxQkFBcUI7cUJBQ3RCO29CQUNELFlBQVksRUFBRTt3QkFDWixpQkFBaUI7d0JBQ2pCLGtCQUFrQjtxQkFDbkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGlCQUFpQjt3QkFDakIsaUJBQWlCO3dCQUNqQixrQkFBa0I7cUJBQ25CO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDdWlGaWx0ZXJQaXBlIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcblxuaW1wb3J0IHsgQ3VpQWxlcnRDb21wb25lbnQgfSBmcm9tICcuL2FsZXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdWlBbGVydHNDb21wb25lbnQgfSBmcm9tICcuL2FsZXJ0cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VpTm90aWZpY2F0aW9uTW9kdWxlIH0gZnJvbSAnLi4vbm90aWZpY2F0aW9uJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBDdWlGaWx0ZXJQaXBlLFxuICAgIEN1aU5vdGlmaWNhdGlvbk1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBDdWlBbGVydENvbXBvbmVudCxcbiAgICBDdWlBbGVydHNDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEN1aUFsZXJ0Q29tcG9uZW50LFxuICAgIEN1aUFsZXJ0Q29tcG9uZW50LFxuICAgIEN1aUFsZXJ0c0NvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEN1aUFsZXJ0TW9kdWxlIHtcbn1cbiJdfQ==
|
|
@@ -28,9 +28,9 @@ export class CuiAlertsComponent {
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
CuiAlertsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiAlertsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
31
|
-
CuiAlertsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiAlertsComponent, selector: "cui-alerts", providers: [CuiDestroyService], ngImport: i0, template: "<ng-container *ngIf=\"alerts$ | async as alerts\">\n <div class=\"c-wrapper c-wrapper_position_center\">\n <ng-container *ngFor=\"let alert of alerts | cuiFilter: alertsMatcher: 'center'; let i = index; trackBy: trackByFn\">\n <ng-container *ngComponentOutlet=\"alert.component; injector: alertInjectors[i]\"></ng-container>\n </ng-container>\n </div>\n <div class=\"c-wrapper c-wrapper_position_right\">\n <ng-container *ngFor=\"let alert of alerts | cuiFilter: alertsMatcher: 'right'; let i = index; trackBy: trackByFn\">\n <ng-container *ngComponentOutlet=\"alert.component; injector: alertInjectors[i]\"></ng-container>\n </ng-container>\n </div>\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column;position:fixed;right:20px;bottom:20px}.c-wrapper{position:fixed;bottom:20px;display:flex;flex-direction:column;gap:16px}.c-wrapper_position_center{left:50%;transform:translate(-50%)}.c-wrapper_position_right{right:20px}\n"], dependencies: [{ kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.CuiFilterPipe, name: "cuiFilter" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
31
|
+
CuiAlertsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiAlertsComponent, selector: "cui-alerts", providers: [CuiDestroyService], ngImport: i0, template: "<ng-container *ngIf=\"alerts$ | async as alerts\">\n <div class=\"c-wrapper c-wrapper_position_center\">\n <ng-container *ngFor=\"let alert of alerts | cuiFilter: alertsMatcher: 'center'; let i = index; trackBy: trackByFn\">\n <ng-container *ngComponentOutlet=\"alert.component; injector: alertInjectors[i]\"></ng-container>\n </ng-container>\n </div>\n <div class=\"c-wrapper c-wrapper_position_right\">\n <ng-container *ngFor=\"let alert of alerts | cuiFilter: alertsMatcher: 'right'; let i = index; trackBy: trackByFn\">\n <ng-container *ngComponentOutlet=\"alert.component; injector: alertInjectors[i]\"></ng-container>\n </ng-container>\n </div>\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column;position:fixed;right:20px;bottom:20px}.c-wrapper{position:fixed;bottom:20px;display:flex;flex-direction:column;gap:16px}.c-wrapper_position_center{align-items:center;left:50%;transform:translate(-50%)}.c-wrapper_position_right{align-items:flex-end;right:20px}\n"], dependencies: [{ kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.CuiFilterPipe, name: "cuiFilter" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
32
32
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiAlertsComponent, decorators: [{
|
|
33
33
|
type: Component,
|
|
34
|
-
args: [{ selector: 'cui-alerts', changeDetection: ChangeDetectionStrategy.OnPush, providers: [CuiDestroyService], template: "<ng-container *ngIf=\"alerts$ | async as alerts\">\n <div class=\"c-wrapper c-wrapper_position_center\">\n <ng-container *ngFor=\"let alert of alerts | cuiFilter: alertsMatcher: 'center'; let i = index; trackBy: trackByFn\">\n <ng-container *ngComponentOutlet=\"alert.component; injector: alertInjectors[i]\"></ng-container>\n </ng-container>\n </div>\n <div class=\"c-wrapper c-wrapper_position_right\">\n <ng-container *ngFor=\"let alert of alerts | cuiFilter: alertsMatcher: 'right'; let i = index; trackBy: trackByFn\">\n <ng-container *ngComponentOutlet=\"alert.component; injector: alertInjectors[i]\"></ng-container>\n </ng-container>\n </div>\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column;position:fixed;right:20px;bottom:20px}.c-wrapper{position:fixed;bottom:20px;display:flex;flex-direction:column;gap:16px}.c-wrapper_position_center{left:50%;transform:translate(-50%)}.c-wrapper_position_right{right:20px}\n"] }]
|
|
34
|
+
args: [{ selector: 'cui-alerts', changeDetection: ChangeDetectionStrategy.OnPush, providers: [CuiDestroyService], template: "<ng-container *ngIf=\"alerts$ | async as alerts\">\n <div class=\"c-wrapper c-wrapper_position_center\">\n <ng-container *ngFor=\"let alert of alerts | cuiFilter: alertsMatcher: 'center'; let i = index; trackBy: trackByFn\">\n <ng-container *ngComponentOutlet=\"alert.component; injector: alertInjectors[i]\"></ng-container>\n </ng-container>\n </div>\n <div class=\"c-wrapper c-wrapper_position_right\">\n <ng-container *ngFor=\"let alert of alerts | cuiFilter: alertsMatcher: 'right'; let i = index; trackBy: trackByFn\">\n <ng-container *ngComponentOutlet=\"alert.component; injector: alertInjectors[i]\"></ng-container>\n </ng-container>\n </div>\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column;position:fixed;right:20px;bottom:20px}.c-wrapper{position:fixed;bottom:20px;display:flex;flex-direction:column;gap:16px}.c-wrapper_position_center{align-items:center;left:50%;transform:translate(-50%)}.c-wrapper_position_right{align-items:flex-end;right:20px}\n"] }]
|
|
35
35
|
}] });
|
|
36
36
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9hbGVydC9hbGVydHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL2FsZXJ0L2FsZXJ0cy50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVqQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFVL0QsTUFBTSxPQUFPLGtCQUFrQjtJQVAvQjtRQVFtQixhQUFRLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFbkQsWUFBTyxHQUEyRCxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7S0FzQnpHO0lBbkJRLFFBQVE7UUFDYixJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRVMsU0FBUyxDQUFDLENBQVMsRUFBRSxLQUFrQztRQUMvRCxPQUFPLEtBQUssQ0FBQyxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVTLGFBQWEsQ0FBQyxLQUFrQyxFQUFFLFFBQWdCO1FBQzFFLE9BQU8sS0FBSyxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUM7SUFDckMsQ0FBQztJQUVTLDhCQUE4QjtRQUN0QyxJQUFJLENBQUMsT0FBTzthQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDbEYsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLENBQUM7U0FDdEQsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNULENBQUM7O2dIQXhCVSxrQkFBa0I7b0dBQWxCLGtCQUFrQixxQ0FGbEIsQ0FBQyxpQkFBaUIsQ0FBQywwQkNmaEMseXJCQVlBOzRGREthLGtCQUFrQjtrQkFQOUIsU0FBUzsrQkFDRSxZQUFZLG1CQUdMLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IEN1aVBvcG92ZXIgfSBmcm9tICdAY3VieS11aS9jZGsnO1xuaW1wb3J0IHsgQ3VpRGVzdHJveVNlcnZpY2UgfSBmcm9tICdAY3VieS11aS9jZGsnO1xuaW1wb3J0IHR5cGUgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQ1VJX0FMRVJUX0NPTlRFWFQsIENVSV9BTEVSVFMgfSBmcm9tICcuL2FsZXJ0LnRva2Vucyc7XG5pbXBvcnQgdHlwZSB7IEN1aUFsZXJ0T3B0aW9ucyB9IGZyb20gJy4vYWxlcnQuaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N1aS1hbGVydHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWxlcnRzLnRlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hbGVydHMuc3R5bGUuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbQ3VpRGVzdHJveVNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIEN1aUFsZXJ0c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBpbmplY3QoQ3VpRGVzdHJveVNlcnZpY2UsIHsgc2VsZjogdHJ1ZSB9KTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWxlcnRzJDogT2JzZXJ2YWJsZTxSZWFkb25seUFycmF5PEN1aVBvcG92ZXI8Q3VpQWxlcnRPcHRpb25zPj4+ID0gaW5qZWN0KENVSV9BTEVSVFMpO1xuICBwcm90ZWN0ZWQgYWxlcnRJbmplY3RvcnMhOiBSZWFkb25seUFycmF5PEluamVjdG9yPjtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0QWxlcnRJbmplY3RvcnNTdWJzY3JpcHRpb24oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0cmFja0J5Rm4oXzogbnVtYmVyLCBhbGVydDogQ3VpUG9wb3ZlcjxDdWlBbGVydE9wdGlvbnM+KTogc3RyaW5nIHtcbiAgICByZXR1cm4gYWxlcnQuaWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWxlcnRzTWF0Y2hlcihhbGVydDogQ3VpUG9wb3ZlcjxDdWlBbGVydE9wdGlvbnM+LCBwb3NpdGlvbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGFsZXJ0LnBvc2l0aW9uID09PSBwb3NpdGlvbjtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbml0QWxlcnRJbmplY3RvcnNTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5hbGVydHMkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKGRpYWxvZ3MgPT4gdGhpcy5hbGVydEluamVjdG9ycyA9IGRpYWxvZ3MubWFwKHVzZVZhbHVlID0+IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQ1VJX0FMRVJUX0NPTlRFWFQsIHVzZVZhbHVlIH1dXG4gICAgICB9KSkpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiYWxlcnRzJCB8IGFzeW5jIGFzIGFsZXJ0c1wiPlxuICA8ZGl2IGNsYXNzPVwiYy13cmFwcGVyIGMtd3JhcHBlcl9wb3NpdGlvbl9jZW50ZXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhbGVydCBvZiBhbGVydHMgfCBjdWlGaWx0ZXI6IGFsZXJ0c01hdGNoZXI6ICdjZW50ZXInOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwiYWxlcnQuY29tcG9uZW50OyBpbmplY3RvcjogYWxlcnRJbmplY3RvcnNbaV1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjLXdyYXBwZXIgYy13cmFwcGVyX3Bvc2l0aW9uX3JpZ2h0XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWxlcnQgb2YgYWxlcnRzIHwgY3VpRmlsdGVyOiBhbGVydHNNYXRjaGVyOiAncmlnaHQnOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwiYWxlcnQuY29tcG9uZW50OyBpbmplY3RvcjogYWxlcnRJbmplY3RvcnNbaV1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, inject, Input, Output } from '@angular/core';
|
|
2
|
+
import { CUI_BANNER_OPTIONS } from './banner.options';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "../svg/svg.component";
|
|
6
|
+
import * as i3 from "../button/button.component";
|
|
7
|
+
export class CuiBannerComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.cuiBannerOptions = inject(CUI_BANNER_OPTIONS);
|
|
10
|
+
this.ICON_OPTIONS = {
|
|
11
|
+
info: {
|
|
12
|
+
icon: 'cuiIconInfo',
|
|
13
|
+
color: 'var(--c-info-color)'
|
|
14
|
+
},
|
|
15
|
+
success: {
|
|
16
|
+
icon: 'cuiIconCheckCircle',
|
|
17
|
+
color: 'var(--cui-green-500)'
|
|
18
|
+
},
|
|
19
|
+
alert: {
|
|
20
|
+
icon: 'cuiIconAlertTriangle',
|
|
21
|
+
color: 'var(--c-alert-color)'
|
|
22
|
+
},
|
|
23
|
+
error: {
|
|
24
|
+
icon: 'cuiIconXCircle',
|
|
25
|
+
color: 'var(--cui-red-500)'
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
this.status = this.cuiBannerOptions.status;
|
|
29
|
+
this.isCloseable = true;
|
|
30
|
+
this.actionButtonClicked = new EventEmitter();
|
|
31
|
+
this.closed = new EventEmitter();
|
|
32
|
+
}
|
|
33
|
+
onAction() {
|
|
34
|
+
this.actionButtonClicked.emit();
|
|
35
|
+
}
|
|
36
|
+
onClose() {
|
|
37
|
+
this.closed.emit();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
CuiBannerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiBannerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
41
|
+
CuiBannerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiBannerComponent, selector: "cui-banner", inputs: { status: "status", isCloseable: "isCloseable", label: "label", actionButtonText: "actionButtonText" }, outputs: { actionButtonClicked: "actionButtonClicked", closed: "closed" }, host: { properties: { "attr.data-status": "this.status" } }, ngImport: i0, template: "<cui-svg\n *ngIf=\"ICON_OPTIONS[status] as iconOption\"\n [icon]=\"iconOption.icon\"\n [color]=\"iconOption.color\"\n class=\"c-icon\"\n></cui-svg>\n<div class=\"c-wrapper\">\n <h2\n *ngIf=\"label\"\n class=\"c-heading\"\n >\n {{ label }}\n </h2>\n <ng-content></ng-content>\n <!-- TODO: \u0416\u0434\u0443 \u0442\u0451\u043C\u043D\u0443\u044E \u0442\u0435\u043C\u0443 \u043A\u043D\u043E\u043F\u043E\u043A -->\n <button\n cuiButton\n *ngIf=\"actionButtonText\"\n appearance=\"link\"\n (click)=\"onAction()\"\n >\n {{ actionButtonText }}\n </button>\n</div>\n<button\n *ngIf=\"isCloseable\"\n cuiButton\n appearance=\"ghost\"\n size=\"xxs\"\n icon=\"cuiIconX\"\n (click)=\"onClose()\"\n></button>\n", styles: [":host{--c-info-color: var(--cui-blue-600);--c-success-color: var(--cui-green-700);--c-alert-color: var(--cui-orange-800);padding:12px 16px;font-weight:400;font-size:14px;line-height:20px;display:flex;color:var(--cui-base-900);font-family:var(--cui-main-font)}:host[data-status=info]{background:var(--cui-light-blue-50)}:host[data-status=success]{background:var(--cui-green-50)}:host[data-status=alert]{color:var(--cui-orange-800);background:var(--cui-yellow-100)}:host[data-status=error]{background:var(--cui-red-50)}:host-context([cuiTheme=dark]){--c-info-color: var(--cui-blue-500);--c-success-color: var(--cui-green-500);--c-alert-color: #F9C15A;color:var(--cui-gray-0)}:host-context([cuiTheme=dark])[data-status=info]{background:var(--cui-blue-900)}:host-context([cuiTheme=dark])[data-status=success]{background:var(--cui-green-900)}:host-context([cuiTheme=dark])[data-status=alert]{background:var(--cui-yellow-900)}:host-context([cuiTheme=dark])[data-status=error]{background:var(--cui-red-900)}.c-icon{height:28px}.c-wrapper{flex:1;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-left:12px;margin-right:16px;overflow-wrap:anywhere}.c-heading{font-weight:500;font-size:14px;line-height:20px;margin:0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "component", type: i3.CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiBannerComponent, decorators: [{
|
|
43
|
+
type: Component,
|
|
44
|
+
args: [{ selector: 'cui-banner', changeDetection: ChangeDetectionStrategy.OnPush, template: "<cui-svg\n *ngIf=\"ICON_OPTIONS[status] as iconOption\"\n [icon]=\"iconOption.icon\"\n [color]=\"iconOption.color\"\n class=\"c-icon\"\n></cui-svg>\n<div class=\"c-wrapper\">\n <h2\n *ngIf=\"label\"\n class=\"c-heading\"\n >\n {{ label }}\n </h2>\n <ng-content></ng-content>\n <!-- TODO: \u0416\u0434\u0443 \u0442\u0451\u043C\u043D\u0443\u044E \u0442\u0435\u043C\u0443 \u043A\u043D\u043E\u043F\u043E\u043A -->\n <button\n cuiButton\n *ngIf=\"actionButtonText\"\n appearance=\"link\"\n (click)=\"onAction()\"\n >\n {{ actionButtonText }}\n </button>\n</div>\n<button\n *ngIf=\"isCloseable\"\n cuiButton\n appearance=\"ghost\"\n size=\"xxs\"\n icon=\"cuiIconX\"\n (click)=\"onClose()\"\n></button>\n", styles: [":host{--c-info-color: var(--cui-blue-600);--c-success-color: var(--cui-green-700);--c-alert-color: var(--cui-orange-800);padding:12px 16px;font-weight:400;font-size:14px;line-height:20px;display:flex;color:var(--cui-base-900);font-family:var(--cui-main-font)}:host[data-status=info]{background:var(--cui-light-blue-50)}:host[data-status=success]{background:var(--cui-green-50)}:host[data-status=alert]{color:var(--cui-orange-800);background:var(--cui-yellow-100)}:host[data-status=error]{background:var(--cui-red-50)}:host-context([cuiTheme=dark]){--c-info-color: var(--cui-blue-500);--c-success-color: var(--cui-green-500);--c-alert-color: #F9C15A;color:var(--cui-gray-0)}:host-context([cuiTheme=dark])[data-status=info]{background:var(--cui-blue-900)}:host-context([cuiTheme=dark])[data-status=success]{background:var(--cui-green-900)}:host-context([cuiTheme=dark])[data-status=alert]{background:var(--cui-yellow-900)}:host-context([cuiTheme=dark])[data-status=error]{background:var(--cui-red-900)}.c-icon{height:28px}.c-wrapper{flex:1;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-left:12px;margin-right:16px;overflow-wrap:anywhere}.c-heading{font-weight:500;font-size:14px;line-height:20px;margin:0}\n"] }]
|
|
45
|
+
}], propDecorators: { status: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}, {
|
|
48
|
+
type: HostBinding,
|
|
49
|
+
args: ['attr.data-status']
|
|
50
|
+
}], isCloseable: [{
|
|
51
|
+
type: Input
|
|
52
|
+
}], label: [{
|
|
53
|
+
type: Input
|
|
54
|
+
}], actionButtonText: [{
|
|
55
|
+
type: Input
|
|
56
|
+
}], actionButtonClicked: [{
|
|
57
|
+
type: Output
|
|
58
|
+
}], closed: [{
|
|
59
|
+
type: Output
|
|
60
|
+
}] } });
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFubmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9iYW5uZXIvYmFubmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9iYW5uZXIvYmFubmVyLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3JILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7OztBQVF0RCxNQUFNLE9BQU8sa0JBQWtCO0lBTi9CO1FBT21CLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRTVDLGlCQUFZLEdBQXlCO1lBQ3RELElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsYUFBYTtnQkFDbkIsS0FBSyxFQUFFLHFCQUFxQjthQUM3QjtZQUNELE9BQU8sRUFBRTtnQkFDUCxJQUFJLEVBQUUsb0JBQW9CO2dCQUMxQixLQUFLLEVBQUUsc0JBQXNCO2FBQzlCO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLElBQUksRUFBRSxzQkFBc0I7Z0JBQzVCLEtBQUssRUFBRSxzQkFBc0I7YUFDOUI7WUFDRCxLQUFLLEVBQUU7Z0JBQ0wsSUFBSSxFQUFFLGdCQUFnQjtnQkFDdEIsS0FBSyxFQUFFLG9CQUFvQjthQUM1QjtTQUNGLENBQUM7UUFJSyxXQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztRQUd0QyxnQkFBVyxHQUFHLElBQUksQ0FBQztRQVNuQix3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRy9DLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBUzFDO0lBUFcsUUFBUTtRQUNoQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVTLE9BQU87UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7O2dIQS9DVSxrQkFBa0I7b0dBQWxCLGtCQUFrQiwwU0NYL0IscXVCQWdDQTs0RkRyQmEsa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLFlBQVksbUJBR0wsdUJBQXVCLENBQUMsTUFBTTs4QkEwQnhDLE1BQU07c0JBRlosS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBSXhCLFdBQVc7c0JBRGpCLEtBQUs7Z0JBSUMsS0FBSztzQkFEWCxLQUFLO2dCQUlDLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFJQyxtQkFBbUI7c0JBRHpCLE1BQU07Z0JBSUEsTUFBTTtzQkFEWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgaW5qZWN0LCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB0eXBlIHsgQ3VpQmFubmVySWNvbk9wdGlvbnMsIEN1aUJhbm5lck9wdGlvbnMgfSBmcm9tICcuL2Jhbm5lci5vcHRpb25zJztcbmltcG9ydCB7IENVSV9CQU5ORVJfT1BUSU9OUyB9IGZyb20gJy4vYmFubmVyLm9wdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdWktYmFubmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Jhbm5lci50ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYmFubmVyLnN0eWxlLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ3VpQmFubmVyQ29tcG9uZW50IGltcGxlbWVudHMgQ3VpQmFubmVyT3B0aW9ucyB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY3VpQmFubmVyT3B0aW9ucyA9IGluamVjdChDVUlfQkFOTkVSX09QVElPTlMpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBJQ09OX09QVElPTlM6IEN1aUJhbm5lckljb25PcHRpb25zID0ge1xuICAgIGluZm86IHtcbiAgICAgIGljb246ICdjdWlJY29uSW5mbycsXG4gICAgICBjb2xvcjogJ3ZhcigtLWMtaW5mby1jb2xvciknXG4gICAgfSxcbiAgICBzdWNjZXNzOiB7XG4gICAgICBpY29uOiAnY3VpSWNvbkNoZWNrQ2lyY2xlJyxcbiAgICAgIGNvbG9yOiAndmFyKC0tY3VpLWdyZWVuLTUwMCknXG4gICAgfSxcbiAgICBhbGVydDoge1xuICAgICAgaWNvbjogJ2N1aUljb25BbGVydFRyaWFuZ2xlJyxcbiAgICAgIGNvbG9yOiAndmFyKC0tYy1hbGVydC1jb2xvciknXG4gICAgfSxcbiAgICBlcnJvcjoge1xuICAgICAgaWNvbjogJ2N1aUljb25YQ2lyY2xlJyxcbiAgICAgIGNvbG9yOiAndmFyKC0tY3VpLXJlZC01MDApJ1xuICAgIH0sXG4gIH07XG5cbiAgQElucHV0KClcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtc3RhdHVzJylcbiAgcHVibGljIHN0YXR1cyA9IHRoaXMuY3VpQmFubmVyT3B0aW9ucy5zdGF0dXM7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGlzQ2xvc2VhYmxlID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbGFiZWw/OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGFjdGlvbkJ1dHRvblRleHQ/OiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBhY3Rpb25CdXR0b25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHByb3RlY3RlZCBvbkFjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGlvbkJ1dHRvbkNsaWNrZWQuZW1pdCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uQ2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZWQuZW1pdCgpO1xuICB9XG59XG4iLCI8Y3VpLXN2Z1xuICAqbmdJZj1cIklDT05fT1BUSU9OU1tzdGF0dXNdIGFzIGljb25PcHRpb25cIlxuICBbaWNvbl09XCJpY29uT3B0aW9uLmljb25cIlxuICBbY29sb3JdPVwiaWNvbk9wdGlvbi5jb2xvclwiXG4gIGNsYXNzPVwiYy1pY29uXCJcbj48L2N1aS1zdmc+XG48ZGl2IGNsYXNzPVwiYy13cmFwcGVyXCI+XG4gIDxoMlxuICAgICpuZ0lmPVwibGFiZWxcIlxuICAgIGNsYXNzPVwiYy1oZWFkaW5nXCJcbiAgPlxuICAgIHt7IGxhYmVsIH19XG4gIDwvaDI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPCEtLSBUT0RPOiDQltC00YMg0YLRkdC80L3Rg9GOINGC0LXQvNGDINC60L3QvtC/0L7QuiAtLT5cbiAgPGJ1dHRvblxuICAgIGN1aUJ1dHRvblxuICAgICpuZ0lmPVwiYWN0aW9uQnV0dG9uVGV4dFwiXG4gICAgYXBwZWFyYW5jZT1cImxpbmtcIlxuICAgIChjbGljayk9XCJvbkFjdGlvbigpXCJcbiAgPlxuICAgIHt7IGFjdGlvbkJ1dHRvblRleHQgfX1cbiAgPC9idXR0b24+XG48L2Rpdj5cbjxidXR0b25cbiAgKm5nSWY9XCJpc0Nsb3NlYWJsZVwiXG4gIGN1aUJ1dHRvblxuICBhcHBlYXJhbmNlPVwiZ2hvc3RcIlxuICBzaXplPVwieHhzXCJcbiAgaWNvbj1cImN1aUljb25YXCJcbiAgKGNsaWNrKT1cIm9uQ2xvc2UoKVwiXG4+PC9idXR0b24+XG4iXX0=
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { CuiBannerComponent } from './banner.component';
|
|
4
|
+
import { CuiSvgModule } from '../svg';
|
|
5
|
+
import { CuiButtonModule } from '../button';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class CuiBannerModule {
|
|
8
|
+
}
|
|
9
|
+
CuiBannerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiBannerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
10
|
+
CuiBannerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: CuiBannerModule, declarations: [CuiBannerComponent], imports: [CommonModule,
|
|
11
|
+
CuiSvgModule,
|
|
12
|
+
CuiButtonModule], exports: [CuiBannerComponent] });
|
|
13
|
+
CuiBannerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiBannerModule, imports: [CommonModule,
|
|
14
|
+
CuiSvgModule,
|
|
15
|
+
CuiButtonModule] });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiBannerModule, decorators: [{
|
|
17
|
+
type: NgModule,
|
|
18
|
+
args: [{
|
|
19
|
+
imports: [
|
|
20
|
+
CommonModule,
|
|
21
|
+
CuiSvgModule,
|
|
22
|
+
CuiButtonModule
|
|
23
|
+
],
|
|
24
|
+
declarations: [CuiBannerComponent],
|
|
25
|
+
exports: [CuiBannerComponent]
|
|
26
|
+
}]
|
|
27
|
+
}] });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFubmVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9iYW5uZXIvYmFubmVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBVzVDLE1BQU0sT0FBTyxlQUFlOzs2R0FBZixlQUFlOzhHQUFmLGVBQWUsaUJBSFgsa0JBQWtCLGFBSi9CLFlBQVk7UUFDWixZQUFZO1FBQ1osZUFBZSxhQUdQLGtCQUFrQjs4R0FFakIsZUFBZSxZQVB4QixZQUFZO1FBQ1osWUFBWTtRQUNaLGVBQWU7NEZBS04sZUFBZTtrQkFUM0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixZQUFZO3dCQUNaLGVBQWU7cUJBQ2hCO29CQUNELFlBQVksRUFBRSxDQUFDLGtCQUFrQixDQUFDO29CQUNsQyxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztpQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgQ3VpQmFubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9iYW5uZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEN1aVN2Z01vZHVsZSB9IGZyb20gJy4uL3N2Zyc7XG5pbXBvcnQgeyBDdWlCdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9idXR0b24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEN1aVN2Z01vZHVsZSxcbiAgICBDdWlCdXR0b25Nb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbQ3VpQmFubmVyQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0N1aUJhbm5lckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgQ3VpQmFubmVyTW9kdWxlIHtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { cuiCreateToken } from '@cuby-ui/cdk';
|
|
2
|
+
export const CUI_BANNER_DEFAULT_OPTIONS = {
|
|
3
|
+
status: 'info'
|
|
4
|
+
};
|
|
5
|
+
export const CUI_BANNER_OPTIONS = cuiCreateToken(CUI_BANNER_DEFAULT_OPTIONS);
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFubmVyLm9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvYmFubmVyL2Jhbm5lci5vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFjOUMsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQXFCO0lBQzFELE1BQU0sRUFBRSxNQUFNO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDdWlTdGF0dXMgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBjdWlDcmVhdGVUb2tlbiB9IGZyb20gJ0BjdWJ5LXVpL2Nkayc7XG5pbXBvcnQgdHlwZSB7IEN1aUljb24gfSBmcm9tICdAY3VieS11aS9pY29ucyc7XG5cbmV4cG9ydCB0eXBlIEN1aUJhbm5lckljb25PcHRpb25zID0ge1xuICBbayBpbiBDdWlTdGF0dXNdOiB7XG4gICAgaWNvbjogQ3VpSWNvbjtcbiAgICBjb2xvcjogc3RyaW5nO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VpQmFubmVyT3B0aW9ucyB7XG4gIHJlYWRvbmx5IHN0YXR1czogQ3VpU3RhdHVzO1xufVxuXG5leHBvcnQgY29uc3QgQ1VJX0JBTk5FUl9ERUZBVUxUX09QVElPTlM6IEN1aUJhbm5lck9wdGlvbnMgPSB7XG4gIHN0YXR1czogJ2luZm8nXG59O1xuXG5leHBvcnQgY29uc3QgQ1VJX0JBTk5FUl9PUFRJT05TID0gY3VpQ3JlYXRlVG9rZW4oQ1VJX0JBTk5FUl9ERUZBVUxUX09QVElPTlMpO1xuIl19
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './banner.component';
|
|
2
|
+
export * from './banner.module';
|
|
3
|
+
export * from './banner.options';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvYmFubmVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9iYW5uZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYmFubmVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2Jhbm5lci5vcHRpb25zJztcbiJdfQ==
|
|
@@ -29,14 +29,17 @@ export class CuiContextMenuComponent {
|
|
|
29
29
|
}
|
|
30
30
|
this.isVisible = false;
|
|
31
31
|
}
|
|
32
|
+
onClose() {
|
|
33
|
+
this.isVisible = false;
|
|
34
|
+
}
|
|
32
35
|
trackByFn(_, item) {
|
|
33
36
|
return item.label;
|
|
34
37
|
}
|
|
35
38
|
initTargetElementListener() {
|
|
36
|
-
this.targetEventListener = ({
|
|
39
|
+
this.targetEventListener = ({ clientX, clientY }) => {
|
|
37
40
|
this.isVisible = !this.isVisible;
|
|
38
41
|
if (this.isVisible) {
|
|
39
|
-
this.changePosition(
|
|
42
|
+
this.changePosition(clientX, clientY);
|
|
40
43
|
}
|
|
41
44
|
this.changeDetectorRef.markForCheck();
|
|
42
45
|
};
|
|
@@ -48,32 +51,31 @@ export class CuiContextMenuComponent {
|
|
|
48
51
|
changePosition(x, y) {
|
|
49
52
|
this.isHidden = true;
|
|
50
53
|
setTimeout(() => {
|
|
51
|
-
const { scrollX, scrollY } = this.window;
|
|
52
54
|
const { clientWidth, clientHeight } = this.documentElement;
|
|
53
55
|
const width = this.element.offsetWidth;
|
|
54
56
|
const height = this.element.offsetHeight;
|
|
55
57
|
let left = x;
|
|
56
58
|
let top = y;
|
|
57
|
-
if (left + width >
|
|
59
|
+
if (left + width > clientWidth) {
|
|
58
60
|
left -= width;
|
|
59
61
|
}
|
|
60
|
-
if (top + height >
|
|
62
|
+
if (top + height > clientHeight) {
|
|
61
63
|
top -= height;
|
|
62
64
|
}
|
|
63
|
-
left = Math.max(left,
|
|
64
|
-
top = Math.max(top,
|
|
65
|
+
left = Math.max(left, 1);
|
|
66
|
+
top = Math.max(top, 1);
|
|
65
67
|
this.isHidden = false;
|
|
66
|
-
this.
|
|
67
|
-
this.
|
|
68
|
+
this.clientX = left;
|
|
69
|
+
this.clientY = top;
|
|
68
70
|
this.changeDetectorRef.markForCheck();
|
|
69
71
|
});
|
|
70
72
|
}
|
|
71
73
|
}
|
|
72
74
|
CuiContextMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
73
|
-
CuiContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiContextMenuComponent, selector: "cui-context-menu[items][target]", inputs: { items: "items", target: "target" }, host: { listeners: { "document:click": "onClickOutside($event.target)" }, properties: { "class._hidden": "this.isHidden", "style.left.px": "this.
|
|
75
|
+
CuiContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiContextMenuComponent, selector: "cui-context-menu[items][target]", inputs: { items: "items", target: "target" }, host: { listeners: { "document:click": "onClickOutside($event.target)", "window:scroll": "onClose()", "window:resize": "onClose()" }, properties: { "class._hidden": "this.isHidden", "style.left.px": "this.clientX", "style.top.px": "this.clientY" } }, ngImport: i0, template: "<ul\n *ngIf=\"isVisible\"\n class=\"c-ul\"\n>\n <li\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [style.color]=\"item.color\"\n >\n <button\n class=\"c-button\"\n (click)=\"onSelect(item)\"\n >\n <cui-svg\n *ngIf=\"item.icon\"\n [icon]=\"item.icon\"\n [color]=\"item.color\"\n ></cui-svg>\n <span>{{ item.label }}</span>\n </button>\n </li>\n</ul>\n", styles: [":host{position:fixed;z-index:2;display:block;width:268px;border-radius:8px}:host._hidden{visibility:hidden}.c-ul{padding:7px 0;margin:0;list-style:none;font-weight:400;font-size:14px;line-height:20px;box-shadow:0 1px 4px #0000000a,0 1px 4px #0000000a;border:1px solid var(--cui-base-200);border-radius:inherit;background:var(--cui-base-0);color:var(--cui-base-900);font-family:var(--cui-main-font)}.c-button{padding:8px 11px 8px 0;border:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:8px 11px;width:100%;display:flex;align-items:center;gap:12px}.c-button:active{background:var(--cui-base-50)}@media (hover: hover){.c-button:hover{background:var(--cui-base-50)}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
74
76
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiContextMenuComponent, decorators: [{
|
|
75
77
|
type: Component,
|
|
76
|
-
args: [{ selector: 'cui-context-menu[items][target]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ul\n *ngIf=\"isVisible\"\n class=\"c-ul\"\n>\n <li\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [style.color]=\"item.color\"\n >\n <button\n class=\"c-button\"\n (click)=\"onSelect(item)\"\n >\n <cui-svg\n *ngIf=\"item.icon\"\n [icon]=\"item.icon\"\n [color]=\"item.color\"\n ></cui-svg>\n <span>{{ item.label }}</span>\n </button>\n </li>\n</ul>\n", styles: [":host{position:
|
|
78
|
+
args: [{ selector: 'cui-context-menu[items][target]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ul\n *ngIf=\"isVisible\"\n class=\"c-ul\"\n>\n <li\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [style.color]=\"item.color\"\n >\n <button\n class=\"c-button\"\n (click)=\"onSelect(item)\"\n >\n <cui-svg\n *ngIf=\"item.icon\"\n [icon]=\"item.icon\"\n [color]=\"item.color\"\n ></cui-svg>\n <span>{{ item.label }}</span>\n </button>\n </li>\n</ul>\n", styles: [":host{position:fixed;z-index:2;display:block;width:268px;border-radius:8px}:host._hidden{visibility:hidden}.c-ul{padding:7px 0;margin:0;list-style:none;font-weight:400;font-size:14px;line-height:20px;box-shadow:0 1px 4px #0000000a,0 1px 4px #0000000a;border:1px solid var(--cui-base-200);border-radius:inherit;background:var(--cui-base-0);color:var(--cui-base-900);font-family:var(--cui-main-font)}.c-button{padding:8px 11px 8px 0;border:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:8px 11px;width:100%;display:flex;align-items:center;gap:12px}.c-button:active{background:var(--cui-base-50)}@media (hover: hover){.c-button:hover{background:var(--cui-base-50)}}\n"] }]
|
|
77
79
|
}], propDecorators: { items: [{
|
|
78
80
|
type: Input
|
|
79
81
|
}], target: [{
|
|
@@ -81,14 +83,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
81
83
|
}], isHidden: [{
|
|
82
84
|
type: HostBinding,
|
|
83
85
|
args: ['class._hidden']
|
|
84
|
-
}],
|
|
86
|
+
}], clientX: [{
|
|
85
87
|
type: HostBinding,
|
|
86
88
|
args: ['style.left.px']
|
|
87
|
-
}],
|
|
89
|
+
}], clientY: [{
|
|
88
90
|
type: HostBinding,
|
|
89
91
|
args: ['style.top.px']
|
|
90
92
|
}], onClickOutside: [{
|
|
91
93
|
type: HostListener,
|
|
92
94
|
args: ['document:click', ['$event.target']]
|
|
95
|
+
}], onClose: [{
|
|
96
|
+
type: HostListener,
|
|
97
|
+
args: ['window:scroll']
|
|
98
|
+
}, {
|
|
99
|
+
type: HostListener,
|
|
100
|
+
args: ['window:resize']
|
|
93
101
|
}] } });
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQVUzQyxNQUFNLE9BQU8sdUJBQXVCO0lBTnBDO1FBT21CLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzlDLFlBQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzNDLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsb0JBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQztRQUNoRCxXQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFxQixDQUFDO1FBRXBELGNBQVMsR0FBRyxLQUFLLENBQUM7UUFVNUIsYUFBUSxHQUFZLEtBQUssQ0FBQztLQXVGM0I7SUEvRVEsZUFBZTtRQUNwQixJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRVMsUUFBUSxDQUFDLElBQXdCO1FBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBRXZCLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFHUyxjQUFjLENBQUMsTUFBbUI7UUFDMUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNqRSxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBSVMsT0FBTztRQUNmLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFUyxTQUFTLENBQUMsQ0FBUyxFQUFFLElBQXdCO1FBQ3JELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRU8seUJBQXlCO1FBQy9CLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUU7WUFDbEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7WUFFakMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNsQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQzthQUN2QztZQUVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QyxDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRU8sNEJBQTRCO1FBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTyxjQUFjLENBQUMsQ0FBUyxFQUFFLENBQVM7UUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFFckIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLE1BQU0sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUMzRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztZQUN2QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQztZQUN6QyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7WUFDYixJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7WUFFWixJQUFJLElBQUksR0FBRyxLQUFLLEdBQUcsV0FBVyxFQUFFO2dCQUM5QixJQUFJLElBQUksS0FBSyxDQUFDO2FBQ2Y7WUFFRCxJQUFJLEdBQUcsR0FBRyxNQUFNLEdBQUcsWUFBWSxFQUFFO2dCQUMvQixHQUFHLElBQUksTUFBTSxDQUFDO2FBQ2Y7WUFFRCxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDekIsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBRXZCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO1lBRW5CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O3FIQXZHVSx1QkFBdUI7eUdBQXZCLHVCQUF1QixnWENyQnBDLHlhQXFCQTs0RkRBYSx1QkFBdUI7a0JBTm5DLFNBQVM7K0JBQ0UsaUNBQWlDLG1CQUcxQix1QkFBdUIsQ0FBQyxNQUFNOzhCQWF4QyxLQUFLO3NCQURYLEtBQUs7Z0JBSUMsTUFBTTtzQkFEWixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsV0FBVzt1QkFBQyxlQUFlO2dCQUlsQixPQUFPO3NCQURoQixXQUFXO3VCQUFDLGVBQWU7Z0JBSWxCLE9BQU87c0JBRGhCLFdBQVc7dUJBQUMsY0FBYztnQkFrQmpCLGNBQWM7c0JBRHZCLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxlQUFlLENBQUM7Z0JBV3ZDLE9BQU87c0JBRmhCLFlBQVk7dUJBQUMsZUFBZTs7c0JBQzVCLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBJbnB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHR5cGUgeyBDdWlDb250ZXh0TWVudUl0ZW0gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3VpLWNvbnRleHQtbWVudVtpdGVtc11bdGFyZ2V0XScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZXh0LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb250ZXh0LW1lbnUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ3VpQ29udGV4dE1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0KEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50RWxlbWVudCA9IHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdyA9IHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXcgYXMgV2luZG93O1xuXG4gIHByb3RlY3RlZCBpc1Zpc2libGUgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHRhcmdldEV2ZW50TGlzdGVuZXIhOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGl0ZW1zITogQ3VpQ29udGV4dE1lbnVJdGVtW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIHRhcmdldCE6IEhUTUxFbGVtZW50O1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuX2hpZGRlbicpXG4gIGlzSGlkZGVuOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5sZWZ0LnB4JylcbiAgcHJvdGVjdGVkIGNsaWVudFg/OiBudW1iZXI7XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS50b3AucHgnKVxuICBwcm90ZWN0ZWQgY2xpZW50WT86IG51bWJlcjtcblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdFRhcmdldEVsZW1lbnRMaXN0ZW5lcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveVRhcmdldEVsZW1lbnRMaXN0ZW5lcigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uU2VsZWN0KGl0ZW06IEN1aUNvbnRleHRNZW51SXRlbSk6IHZvaWQge1xuICAgIHRoaXMuaXNWaXNpYmxlID0gZmFsc2U7XG5cbiAgICBpdGVtLmNvbW1hbmQ/LigpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudC50YXJnZXQnXSlcbiAgcHJvdGVjdGVkIG9uQ2xpY2tPdXRzaWRlKHRhcmdldDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lbGVtZW50LmNvbnRhaW5zKHRhcmdldCkgfHwgdGhpcy50YXJnZXQuY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNWaXNpYmxlID0gZmFsc2U7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6c2Nyb2xsJylcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gIHByb3RlY3RlZCBvbkNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuaXNWaXNpYmxlID0gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgdHJhY2tCeUZuKF86IG51bWJlciwgaXRlbTogQ3VpQ29udGV4dE1lbnVJdGVtKTogc3RyaW5nIHtcbiAgICByZXR1cm4gaXRlbS5sYWJlbDtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFRhcmdldEVsZW1lbnRMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICB0aGlzLnRhcmdldEV2ZW50TGlzdGVuZXIgPSAoeyBjbGllbnRYLCBjbGllbnRZIH0pID0+IHtcbiAgICAgIHRoaXMuaXNWaXNpYmxlID0gIXRoaXMuaXNWaXNpYmxlO1xuXG4gICAgICBpZiAodGhpcy5pc1Zpc2libGUpIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VQb3NpdGlvbihjbGllbnRYLCBjbGllbnRZKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9O1xuXG4gICAgdGhpcy50YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLnRhcmdldEV2ZW50TGlzdGVuZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXN0cm95VGFyZ2V0RWxlbWVudExpc3RlbmVyKCk6IHZvaWQge1xuICAgIHRoaXMudGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy50YXJnZXRFdmVudExpc3RlbmVyKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hhbmdlUG9zaXRpb24oeDogbnVtYmVyLCB5OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmlzSGlkZGVuID0gdHJ1ZTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgeyBjbGllbnRXaWR0aCwgY2xpZW50SGVpZ2h0IH0gPSB0aGlzLmRvY3VtZW50RWxlbWVudDtcbiAgICAgIGNvbnN0IHdpZHRoID0gdGhpcy5lbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5lbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgICAgIGxldCBsZWZ0ID0geDtcbiAgICAgIGxldCB0b3AgPSB5O1xuXG4gICAgICBpZiAobGVmdCArIHdpZHRoID4gY2xpZW50V2lkdGgpIHtcbiAgICAgICAgbGVmdCAtPSB3aWR0aDtcbiAgICAgIH1cblxuICAgICAgaWYgKHRvcCArIGhlaWdodCA+IGNsaWVudEhlaWdodCkge1xuICAgICAgICB0b3AgLT0gaGVpZ2h0O1xuICAgICAgfVxuXG4gICAgICBsZWZ0ID0gTWF0aC5tYXgobGVmdCwgMSk7XG4gICAgICB0b3AgPSBNYXRoLm1heCh0b3AsIDEpO1xuXG4gICAgICB0aGlzLmlzSGlkZGVuID0gZmFsc2U7XG4gICAgICB0aGlzLmNsaWVudFggPSBsZWZ0O1xuICAgICAgdGhpcy5jbGllbnRZID0gdG9wO1xuXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8dWxcbiAgKm5nSWY9XCJpc1Zpc2libGVcIlxuICBjbGFzcz1cImMtdWxcIlxuPlxuICA8bGlcbiAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgdHJhY2tCeTogdHJhY2tCeUZuXCJcbiAgICBbc3R5bGUuY29sb3JdPVwiaXRlbS5jb2xvclwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImMtYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJvblNlbGVjdChpdGVtKVwiXG4gICAgPlxuICAgICAgPGN1aS1zdmdcbiAgICAgICAgKm5nSWY9XCJpdGVtLmljb25cIlxuICAgICAgICBbaWNvbl09XCJpdGVtLmljb25cIlxuICAgICAgICBbY29sb3JdPVwiaXRlbS5jb2xvclwiXG4gICAgICA+PC9jdWktc3ZnPlxuICAgICAgPHNwYW4+e3sgaXRlbS5sYWJlbCB9fTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9saT5cbjwvdWw+XG4iXX0=
|