@ng-nest/ui 12.0.10 → 12.1.2
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/alert/alert.component.d.ts +2 -1
- package/bundles/ng-nest-ui-alert.umd.js +6 -1
- package/bundles/ng-nest-ui-alert.umd.js.map +1 -1
- package/bundles/ng-nest-ui-carousel.umd.js +10 -10
- package/bundles/ng-nest-ui-carousel.umd.js.map +1 -1
- package/bundles/ng-nest-ui-core.umd.js.map +1 -1
- package/bundles/ng-nest-ui-dialog.umd.js +284 -32
- package/bundles/ng-nest-ui-dialog.umd.js.map +1 -1
- package/bundles/ng-nest-ui-drawer.umd.js +245 -14
- package/bundles/ng-nest-ui-drawer.umd.js.map +1 -1
- package/bundles/ng-nest-ui-find.umd.js +27 -3
- package/bundles/ng-nest-ui-find.umd.js.map +1 -1
- package/bundles/ng-nest-ui-input.umd.js +2 -1
- package/bundles/ng-nest-ui-input.umd.js.map +1 -1
- package/bundles/ng-nest-ui-menu.umd.js +1 -1
- package/bundles/ng-nest-ui-menu.umd.js.map +1 -1
- package/bundles/ng-nest-ui-message.umd.js +52 -16
- package/bundles/ng-nest-ui-message.umd.js.map +1 -1
- package/bundles/ng-nest-ui-popconfirm.umd.js +33 -4
- package/bundles/ng-nest-ui-popconfirm.umd.js.map +1 -1
- package/bundles/ng-nest-ui-popover.umd.js +13 -2
- package/bundles/ng-nest-ui-popover.umd.js.map +1 -1
- package/bundles/ng-nest-ui-portal.umd.js +8 -8
- package/bundles/ng-nest-ui-portal.umd.js.map +1 -1
- package/bundles/ng-nest-ui-progress.umd.js +235 -20
- package/bundles/ng-nest-ui-progress.umd.js.map +1 -1
- package/bundles/ng-nest-ui-select.umd.js +1 -1
- package/bundles/ng-nest-ui-steps.umd.js +19 -7
- package/bundles/ng-nest-ui-steps.umd.js.map +1 -1
- package/bundles/ng-nest-ui-table.umd.js +9 -5
- package/bundles/ng-nest-ui-table.umd.js.map +1 -1
- package/carousel/carousel-panel.component.d.ts +2 -3
- package/core/config/config.d.ts +7 -0
- package/core/interfaces/layout.type.d.ts +1 -1
- package/dialog/dialog-container.component.d.ts +18 -0
- package/dialog/dialog-container.directives.d.ts +24 -0
- package/dialog/dialog-ref.d.ts +9 -0
- package/dialog/dialog.module.d.ts +13 -11
- package/dialog/dialog.property.d.ts +84 -6
- package/dialog/dialog.service.d.ts +19 -0
- package/dialog/public-api.d.ts +4 -0
- package/drawer/drawer-container.component.d.ts +18 -0
- package/drawer/drawer-container.directives.d.ts +19 -0
- package/drawer/drawer-ref.d.ts +9 -0
- package/drawer/drawer.module.d.ts +8 -6
- package/drawer/drawer.property.d.ts +83 -2
- package/drawer/drawer.service.d.ts +19 -0
- package/drawer/public-api.d.ts +5 -0
- package/esm2015/alert/alert.component.js +8 -3
- package/esm2015/carousel/carousel-panel.component.js +12 -11
- package/esm2015/core/config/config.js +1 -1
- package/esm2015/core/interfaces/layout.type.js +1 -1
- package/esm2015/dialog/dialog-container.component.js +59 -0
- package/esm2015/dialog/dialog-container.directives.js +73 -0
- package/esm2015/dialog/dialog-ref.js +17 -0
- package/esm2015/dialog/dialog.component.js +2 -2
- package/esm2015/dialog/dialog.module.js +37 -7
- package/esm2015/dialog/dialog.property.js +17 -16
- package/esm2015/dialog/dialog.service.js +67 -0
- package/esm2015/dialog/public-api.js +5 -1
- package/esm2015/drawer/drawer-container.component.js +59 -0
- package/esm2015/drawer/drawer-container.directives.js +57 -0
- package/esm2015/drawer/drawer-ref.js +17 -0
- package/esm2015/drawer/drawer.component.js +2 -2
- package/esm2015/drawer/drawer.module.js +22 -6
- package/esm2015/drawer/drawer.property.js +22 -6
- package/esm2015/drawer/drawer.service.js +65 -0
- package/esm2015/drawer/public-api.js +6 -1
- package/esm2015/find/find.component.js +12 -3
- package/esm2015/find/find.property.js +18 -2
- package/esm2015/input/input.component.js +3 -2
- package/esm2015/menu/menu.component.js +2 -2
- package/esm2015/message/message-ref.js +12 -0
- package/esm2015/message/message.component.js +3 -3
- package/esm2015/message/message.property.js +2 -2
- package/esm2015/message/message.service.js +37 -15
- package/esm2015/message/public-api.js +2 -1
- package/esm2015/popconfirm/popconfirm.component.js +25 -4
- package/esm2015/popconfirm/popconfirm.property.js +10 -3
- package/esm2015/popover/popover.directive.js +8 -2
- package/esm2015/popover/popover.property.js +7 -2
- package/esm2015/portal/portal.module.js +4 -3
- package/esm2015/portal/portal.service.js +8 -9
- package/esm2015/progress/progress.component.js +177 -15
- package/esm2015/progress/progress.property.js +50 -3
- package/esm2015/select/select.component.js +1 -1
- package/esm2015/steps/steps.component.js +14 -7
- package/esm2015/steps/steps.property.js +8 -3
- package/esm2015/table/table-body.component.js +3 -3
- package/esm2015/table/table.component.js +2 -2
- package/esm2015/table/table.property.js +7 -3
- package/fesm2015/ng-nest-ui-alert.js +7 -2
- package/fesm2015/ng-nest-ui-alert.js.map +1 -1
- package/fesm2015/ng-nest-ui-carousel.js +9 -9
- package/fesm2015/ng-nest-ui-carousel.js.map +1 -1
- package/fesm2015/ng-nest-ui-core.js.map +1 -1
- package/fesm2015/ng-nest-ui-dialog.js +254 -25
- package/fesm2015/ng-nest-ui-dialog.js.map +1 -1
- package/fesm2015/ng-nest-ui-drawer.js +224 -13
- package/fesm2015/ng-nest-ui-drawer.js.map +1 -1
- package/fesm2015/ng-nest-ui-find.js +28 -3
- package/fesm2015/ng-nest-ui-find.js.map +1 -1
- package/fesm2015/ng-nest-ui-input.js +2 -1
- package/fesm2015/ng-nest-ui-input.js.map +1 -1
- package/fesm2015/ng-nest-ui-menu.js +1 -1
- package/fesm2015/ng-nest-ui-menu.js.map +1 -1
- package/fesm2015/ng-nest-ui-message.js +50 -17
- package/fesm2015/ng-nest-ui-message.js.map +1 -1
- package/fesm2015/ng-nest-ui-popconfirm.js +33 -5
- package/fesm2015/ng-nest-ui-popconfirm.js.map +1 -1
- package/fesm2015/ng-nest-ui-popover.js +13 -2
- package/fesm2015/ng-nest-ui-popover.js.map +1 -1
- package/fesm2015/ng-nest-ui-portal.js +10 -10
- package/fesm2015/ng-nest-ui-portal.js.map +1 -1
- package/fesm2015/ng-nest-ui-progress.js +225 -17
- package/fesm2015/ng-nest-ui-progress.js.map +1 -1
- package/fesm2015/ng-nest-ui-select.js +1 -1
- package/fesm2015/ng-nest-ui-steps.js +20 -8
- package/fesm2015/ng-nest-ui-steps.js.map +1 -1
- package/fesm2015/ng-nest-ui-table.js +9 -5
- package/fesm2015/ng-nest-ui-table.js.map +1 -1
- package/find/find.property.d.ts +31 -1
- package/message/message-ref.d.ts +8 -0
- package/message/message.component.d.ts +3 -3
- package/message/message.property.d.ts +24 -4
- package/message/message.service.d.ts +4 -1
- package/message/public-api.d.ts +1 -0
- package/package.json +1 -1
- package/popconfirm/popconfirm.component.d.ts +6 -2
- package/popconfirm/popconfirm.property.d.ts +13 -2
- package/popover/popover.property.d.ts +6 -1
- package/portal/portal.module.d.ts +1 -1
- package/portal/portal.service.d.ts +2 -3
- package/progress/progress.component.d.ts +31 -3
- package/progress/progress.property.d.ts +80 -5
- package/steps/steps.property.d.ts +7 -2
- package/table/table.property.d.ts +24 -3
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { XDialogRef } from './dialog-ref';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class XDialogCloseDirective {
|
|
4
|
+
dialogRef: XDialogRef<any>;
|
|
5
|
+
onCloseClick(): void;
|
|
6
|
+
constructor(dialogRef: XDialogRef<any>);
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<XDialogCloseDirective, [{ optional: true; }]>;
|
|
8
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<XDialogCloseDirective, "[x-dialog-close]", never, {}, {}, never>;
|
|
9
|
+
}
|
|
10
|
+
export declare class XDialogTitleDirective {
|
|
11
|
+
_has: boolean;
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<XDialogTitleDirective, never>;
|
|
13
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<XDialogTitleDirective, "[x-dialog-title]", never, {}, {}, never>;
|
|
14
|
+
}
|
|
15
|
+
export declare class XDialogContentDirective {
|
|
16
|
+
_has: boolean;
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<XDialogContentDirective, never>;
|
|
18
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<XDialogContentDirective, "[x-dialog-content], x-dialog-content", never, {}, {}, never>;
|
|
19
|
+
}
|
|
20
|
+
export declare class XDialogActionsDirective {
|
|
21
|
+
_has: boolean;
|
|
22
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<XDialogActionsDirective, never>;
|
|
23
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<XDialogActionsDirective, "[x-dialog-actions], x-dialog-actions", never, {}, {}, never>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { OverlayRef } from '@angular/cdk/overlay';
|
|
2
|
+
import { XDialogContainerComponent } from './dialog-container.component';
|
|
3
|
+
export declare class XDialogRef<C> {
|
|
4
|
+
overlayRef: OverlayRef;
|
|
5
|
+
containerInstance: XDialogContainerComponent;
|
|
6
|
+
componentInstance: C;
|
|
7
|
+
constructor(overlayRef: OverlayRef, containerInstance: XDialogContainerComponent);
|
|
8
|
+
close(): void;
|
|
9
|
+
}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
import * as i1 from "./dialog.component";
|
|
3
|
-
import * as i2 from "./dialog.
|
|
4
|
-
import * as i3 from "
|
|
5
|
-
import * as i4 from "
|
|
6
|
-
import * as i5 from "@angular/
|
|
7
|
-
import * as i6 from "@
|
|
8
|
-
import * as i7 from "@
|
|
9
|
-
import * as i8 from "@ng-nest/ui/
|
|
10
|
-
import * as i9 from "@ng-nest/ui/
|
|
11
|
-
import * as i10 from "@ng-nest/ui/
|
|
12
|
-
import * as i11 from "@ng-nest/ui/
|
|
3
|
+
import * as i2 from "./dialog-container.directives";
|
|
4
|
+
import * as i3 from "./dialog-container.component";
|
|
5
|
+
import * as i4 from "./dialog.property";
|
|
6
|
+
import * as i5 from "@angular/common";
|
|
7
|
+
import * as i6 from "@angular/forms";
|
|
8
|
+
import * as i7 from "@angular/cdk/drag-drop";
|
|
9
|
+
import * as i8 from "@ng-nest/ui/input";
|
|
10
|
+
import * as i9 from "@ng-nest/ui/button";
|
|
11
|
+
import * as i10 from "@ng-nest/ui/icon";
|
|
12
|
+
import * as i11 from "@ng-nest/ui/portal";
|
|
13
|
+
import * as i12 from "@ng-nest/ui/alert";
|
|
14
|
+
import * as i13 from "@ng-nest/ui/outlet";
|
|
13
15
|
export declare class XDialogModule {
|
|
14
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<XDialogModule, never>;
|
|
15
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<XDialogModule, [typeof i1.XDialogComponent, typeof i2.XDialogProperty], [typeof
|
|
17
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<XDialogModule, [typeof i1.XDialogComponent, typeof i2.XDialogCloseDirective, typeof i2.XDialogTitleDirective, typeof i2.XDialogContentDirective, typeof i2.XDialogActionsDirective, typeof i3.XDialogContainerComponent, typeof i4.XDialogProperty], [typeof i5.CommonModule, typeof i6.FormsModule, typeof i6.ReactiveFormsModule, typeof i7.DragDropModule, typeof i8.XInputModule, typeof i9.XButtonModule, typeof i10.XIconModule, typeof i11.XPortalModule, typeof i12.XAlertModule, typeof i13.XOutletModule], [typeof i1.XDialogComponent, typeof i2.XDialogCloseDirective, typeof i2.XDialogTitleDirective, typeof i2.XDialogContentDirective, typeof i2.XDialogActionsDirective, typeof i3.XDialogContainerComponent]>;
|
|
16
18
|
static ɵinj: i0.ɵɵInjectorDeclaration<XDialogModule>;
|
|
17
19
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
1
|
+
import { EventEmitter, ViewContainerRef, InjectionToken } from '@angular/core';
|
|
2
2
|
import { XStatus, XPlace, XTemplate, XEffect, XBoolean } from '@ng-nest/ui/core';
|
|
3
3
|
import { XAlertProperty, XAlertOption } from '@ng-nest/ui/alert';
|
|
4
4
|
import { XPortalOverlayRef } from '@ng-nest/ui/portal';
|
|
5
5
|
import { XDialogComponent } from './dialog.component';
|
|
6
|
+
import { XDialogContainerComponent } from './dialog-container.component';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
/**
|
|
8
9
|
* Dialog
|
|
@@ -10,7 +11,9 @@ import * as i0 from "@angular/core";
|
|
|
10
11
|
* @decorator component
|
|
11
12
|
*/
|
|
12
13
|
export declare const XDialogPrefix = "x-dialog";
|
|
14
|
+
export declare const X_DIALOG_CONFIG_NAME = "dialog";
|
|
13
15
|
export declare const XDialogPortal = "x-dialog-portal";
|
|
16
|
+
export declare const X_DIALOG_DATA: InjectionToken<any>;
|
|
14
17
|
/**
|
|
15
18
|
* Dialog Property
|
|
16
19
|
*/
|
|
@@ -217,19 +220,94 @@ export interface XDialogOption extends XAlertOption {
|
|
|
217
220
|
*/
|
|
218
221
|
beforeClose?: Function;
|
|
219
222
|
}
|
|
223
|
+
/**
|
|
224
|
+
* Dialog option by service
|
|
225
|
+
*/
|
|
226
|
+
export interface XDialogRefOption {
|
|
227
|
+
/**
|
|
228
|
+
* @zh_CN 展示方向
|
|
229
|
+
* @en_US Display direction
|
|
230
|
+
* @default 'center'
|
|
231
|
+
* @withConfig true
|
|
232
|
+
*/
|
|
233
|
+
placement?: XPlace;
|
|
234
|
+
/**
|
|
235
|
+
* @zh_CN 偏移距离
|
|
236
|
+
* @en_US Offset distance
|
|
237
|
+
* @default '1rem'
|
|
238
|
+
* @withConfig true
|
|
239
|
+
*/
|
|
240
|
+
offset?: string;
|
|
241
|
+
/**
|
|
242
|
+
* @zh_CN 宽度
|
|
243
|
+
* @en_US Width
|
|
244
|
+
* @default '32rem'
|
|
245
|
+
* @withConfig true
|
|
246
|
+
*/
|
|
247
|
+
width?: string;
|
|
248
|
+
/**
|
|
249
|
+
* @zh_CN 高度
|
|
250
|
+
* @en_US Height
|
|
251
|
+
*/
|
|
252
|
+
height?: string;
|
|
253
|
+
/**
|
|
254
|
+
* @zh_CN 自定义样式名
|
|
255
|
+
* @en_US Custom style name
|
|
256
|
+
*/
|
|
257
|
+
className?: string;
|
|
258
|
+
/**
|
|
259
|
+
* @zh_CN 点击遮罩关闭
|
|
260
|
+
* @en_US Click the mask to close
|
|
261
|
+
* @default true
|
|
262
|
+
* @withConfig true
|
|
263
|
+
*/
|
|
264
|
+
backdropClose?: boolean;
|
|
265
|
+
/**
|
|
266
|
+
* @zh_CN 是否显示背景遮罩
|
|
267
|
+
* @en_US Whether to display the background mask
|
|
268
|
+
* @default true
|
|
269
|
+
* @withConfig true
|
|
270
|
+
*/
|
|
271
|
+
hasBackdrop?: boolean;
|
|
272
|
+
/**
|
|
273
|
+
* @zh_CN 拖动对话框
|
|
274
|
+
* @en_US Drag dialog
|
|
275
|
+
* @default false
|
|
276
|
+
* @withConfig true
|
|
277
|
+
*/
|
|
278
|
+
draggable?: boolean;
|
|
279
|
+
/**
|
|
280
|
+
* @zh_CN 数据,通过 "@Inject(X_DIALOG_DATA)" 来接收数据
|
|
281
|
+
* @en_US Data. Receive data by "@Inject(X_DIALOG_DATA)"
|
|
282
|
+
*/
|
|
283
|
+
data?: any;
|
|
284
|
+
/**
|
|
285
|
+
* @en_US 视图容器实例可以包含其他视图容器。
|
|
286
|
+
* @en_US A view container instance can contain other view containers.
|
|
287
|
+
*/
|
|
288
|
+
viewContainerRef?: ViewContainerRef;
|
|
289
|
+
}
|
|
290
|
+
export declare type XDialogAnimationState = XPlace | 'void';
|
|
291
|
+
export interface XDialogAnimationEvent {
|
|
292
|
+
state: XDialogAnimationState;
|
|
293
|
+
action: 'start' | 'done';
|
|
294
|
+
totalTime: number;
|
|
295
|
+
}
|
|
220
296
|
export interface XDialogCallback {
|
|
221
297
|
(action: XDialogAction, message?: string): void;
|
|
222
298
|
}
|
|
223
299
|
export declare type XDialogAction = 'confirm' | 'cancel';
|
|
224
300
|
/**
|
|
225
|
-
* @zh_CN
|
|
226
|
-
* @en_US
|
|
301
|
+
* @zh_CN 创建的弹框对象
|
|
302
|
+
* @en_US Dialog object created
|
|
227
303
|
*/
|
|
228
304
|
export interface XDialogOverlayRef extends XPortalOverlayRef<XDialogComponent> {
|
|
229
305
|
}
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
306
|
+
/**
|
|
307
|
+
* @zh_CN 创建的弹框对象,通过服务
|
|
308
|
+
* @en_US Dialog object created by service
|
|
309
|
+
*/
|
|
310
|
+
export interface XDialogContainerOverlayRef extends XPortalOverlayRef<XDialogContainerComponent> {
|
|
233
311
|
}
|
|
234
312
|
/**
|
|
235
313
|
* @zh_CN 类型
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Overlay } from '@angular/cdk/overlay';
|
|
2
|
+
import { ComponentType } from '@angular/cdk/portal';
|
|
3
|
+
import { TemplateRef } from '@angular/core';
|
|
4
|
+
import { XConfigService, XDialogConfig } from '@ng-nest/ui/core';
|
|
5
|
+
import { XPortalService } from '@ng-nest/ui/portal';
|
|
6
|
+
import { XDialogRef } from './dialog-ref';
|
|
7
|
+
import { XDialogRefOption } from './dialog.property';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export declare class XDialogService {
|
|
10
|
+
portalService: XPortalService;
|
|
11
|
+
configService: XConfigService;
|
|
12
|
+
overlay: Overlay;
|
|
13
|
+
default: XDialogRefOption;
|
|
14
|
+
configDefault?: XDialogConfig;
|
|
15
|
+
constructor(portalService: XPortalService, configService: XConfigService, overlay: Overlay);
|
|
16
|
+
create<T>(content: TemplateRef<any> | ComponentType<T>, option?: XDialogRefOption): XDialogRef<T>;
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<XDialogService, never>;
|
|
18
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<XDialogService>;
|
|
19
|
+
}
|
package/dialog/public-api.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
export * from './dialog.component';
|
|
2
|
+
export * from './dialog-container.component';
|
|
3
|
+
export * from './dialog-container.directives';
|
|
2
4
|
export * from './dialog.module';
|
|
3
5
|
export * from './dialog.property';
|
|
6
|
+
export * from './dialog.service';
|
|
7
|
+
export * from './dialog-ref';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
|
|
2
|
+
import { ComponentRef, EmbeddedViewRef, EventEmitter } from '@angular/core';
|
|
3
|
+
import { XDrawerAnimationEvent, XDrawerAnimationState } from './drawer.property';
|
|
4
|
+
import { AnimationEvent } from '@angular/animations';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class XDrawerContainerComponent extends BasePortalOutlet {
|
|
7
|
+
_has: boolean;
|
|
8
|
+
placement?: XDrawerAnimationState;
|
|
9
|
+
done({ toState, totalTime }: AnimationEvent): void;
|
|
10
|
+
start({ toState, totalTime }: AnimationEvent): void;
|
|
11
|
+
portalOutlet: CdkPortalOutlet;
|
|
12
|
+
animationChanged: EventEmitter<XDrawerAnimationEvent>;
|
|
13
|
+
constructor();
|
|
14
|
+
attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T>;
|
|
15
|
+
attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C>;
|
|
16
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<XDrawerContainerComponent, never>;
|
|
17
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<XDrawerContainerComponent, "x-drawer-container", never, {}, {}, never, never>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { XDrawerRef } from './drawer-ref';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class XDrawerCloseDirective {
|
|
4
|
+
drawerRef: XDrawerRef<any>;
|
|
5
|
+
onCloseClick(): void;
|
|
6
|
+
constructor(drawerRef: XDrawerRef<any>);
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<XDrawerCloseDirective, [{ optional: true; }]>;
|
|
8
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<XDrawerCloseDirective, "[x-drawer-close]", never, {}, {}, never>;
|
|
9
|
+
}
|
|
10
|
+
export declare class XDrawerTitleDirective {
|
|
11
|
+
_has: boolean;
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<XDrawerTitleDirective, never>;
|
|
13
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<XDrawerTitleDirective, "[x-drawer-title]", never, {}, {}, never>;
|
|
14
|
+
}
|
|
15
|
+
export declare class XDrawerContentDirective {
|
|
16
|
+
_has: boolean;
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<XDrawerContentDirective, never>;
|
|
18
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<XDrawerContentDirective, "[x-drawer-content], x-drawer-content", never, {}, {}, never>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { OverlayRef } from '@angular/cdk/overlay';
|
|
2
|
+
import { XDrawerContainerComponent } from './drawer-container.component';
|
|
3
|
+
export declare class XDrawerRef<C> {
|
|
4
|
+
overlayRef: OverlayRef;
|
|
5
|
+
containerInstance: XDrawerContainerComponent;
|
|
6
|
+
componentInstance: C;
|
|
7
|
+
constructor(overlayRef: OverlayRef, containerInstance: XDrawerContainerComponent);
|
|
8
|
+
close(): void;
|
|
9
|
+
}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
import * as i1 from "./drawer.component";
|
|
3
|
-
import * as i2 from "./drawer.
|
|
4
|
-
import * as i3 from "
|
|
5
|
-
import * as i4 from "
|
|
6
|
-
import * as i5 from "@
|
|
7
|
-
import * as i6 from "@ng-nest/ui/
|
|
3
|
+
import * as i2 from "./drawer-container.directives";
|
|
4
|
+
import * as i3 from "./drawer-container.component";
|
|
5
|
+
import * as i4 from "./drawer.property";
|
|
6
|
+
import * as i5 from "@angular/common";
|
|
7
|
+
import * as i6 from "@ng-nest/ui/outlet";
|
|
8
|
+
import * as i7 from "@ng-nest/ui/button";
|
|
9
|
+
import * as i8 from "@ng-nest/ui/portal";
|
|
8
10
|
export declare class XDrawerModule {
|
|
9
11
|
static ɵfac: i0.ɵɵFactoryDeclaration<XDrawerModule, never>;
|
|
10
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<XDrawerModule, [typeof i1.XDrawerComponent, typeof i2.XDrawerProperty], [typeof
|
|
12
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<XDrawerModule, [typeof i1.XDrawerComponent, typeof i2.XDrawerCloseDirective, typeof i2.XDrawerTitleDirective, typeof i2.XDrawerContentDirective, typeof i3.XDrawerContainerComponent, typeof i4.XDrawerProperty], [typeof i5.CommonModule, typeof i6.XOutletModule, typeof i7.XButtonModule, typeof i8.XPortalModule], [typeof i1.XDrawerComponent, typeof i2.XDrawerCloseDirective, typeof i2.XDrawerTitleDirective, typeof i2.XDrawerContentDirective, typeof i3.XDrawerContainerComponent]>;
|
|
11
13
|
static ɵinj: i0.ɵɵInjectorDeclaration<XDrawerModule>;
|
|
12
14
|
}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { XTemplate, XPosition, XProperty, XBoolean } from '@ng-nest/ui/core';
|
|
2
|
-
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { EventEmitter, InjectionToken, ViewContainerRef } from '@angular/core';
|
|
3
|
+
import { XPortalOverlayRef } from '@ng-nest/ui/portal';
|
|
4
|
+
import { XDrawerContainerComponent } from './drawer-container.component';
|
|
5
|
+
import { XDrawerRef } from './drawer-ref';
|
|
3
6
|
import * as i0 from "@angular/core";
|
|
4
7
|
/**
|
|
5
8
|
* Drawer
|
|
@@ -7,6 +10,8 @@ import * as i0 from "@angular/core";
|
|
|
7
10
|
* @decorator component
|
|
8
11
|
*/
|
|
9
12
|
export declare const XDrawerPrefix = "x-drawer";
|
|
13
|
+
export declare const X_DRAWER_CONFIG_NAME = "drawer";
|
|
14
|
+
export declare const X_DRAWER_DATA: InjectionToken<any>;
|
|
10
15
|
/**
|
|
11
16
|
* Drawer Property
|
|
12
17
|
*/
|
|
@@ -31,6 +36,21 @@ export declare class XDrawerProperty extends XProperty {
|
|
|
31
36
|
* @en_US Size, supports fixed value
|
|
32
37
|
*/
|
|
33
38
|
size?: string;
|
|
39
|
+
/**
|
|
40
|
+
* @zh_CN 点击遮罩关闭
|
|
41
|
+
* @en_US Click the mask to close
|
|
42
|
+
*/
|
|
43
|
+
backdropClose: XBoolean;
|
|
44
|
+
/**
|
|
45
|
+
* @zh_CN 是否显示背景遮罩
|
|
46
|
+
* @en_US Whether to display the background mask
|
|
47
|
+
*/
|
|
48
|
+
hasBackdrop: XBoolean;
|
|
49
|
+
/**
|
|
50
|
+
* @zh_CN 自定义样式名
|
|
51
|
+
* @en_US Custom style name
|
|
52
|
+
*/
|
|
53
|
+
className: string;
|
|
34
54
|
/**
|
|
35
55
|
* @zh_CN 关闭的事件
|
|
36
56
|
* @en_US Closed event
|
|
@@ -42,5 +62,66 @@ export declare class XDrawerProperty extends XProperty {
|
|
|
42
62
|
*/
|
|
43
63
|
visibleChange: EventEmitter<boolean>;
|
|
44
64
|
static ɵfac: i0.ɵɵFactoryDeclaration<XDrawerProperty, never>;
|
|
45
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<XDrawerProperty, "ng-component", never, { "title": "title"; "visible": "visible"; "placement": "placement"; "size": "size"; }, { "close": "close"; "visibleChange": "visibleChange"; }, never, never>;
|
|
65
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<XDrawerProperty, "ng-component", never, { "title": "title"; "visible": "visible"; "placement": "placement"; "size": "size"; "backdropClose": "backdropClose"; "hasBackdrop": "hasBackdrop"; "className": "className"; }, { "close": "close"; "visibleChange": "visibleChange"; }, never, never>;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Drawer Option
|
|
69
|
+
*/
|
|
70
|
+
export interface XDrawerOption {
|
|
71
|
+
/**
|
|
72
|
+
* @zh_CN 展示方向
|
|
73
|
+
* @en_US Display direction
|
|
74
|
+
* @default 'right'
|
|
75
|
+
* @withConfig true
|
|
76
|
+
*/
|
|
77
|
+
placement?: XPosition;
|
|
78
|
+
/**
|
|
79
|
+
* @zh_CN 尺寸,支持固定值
|
|
80
|
+
* @en_US Size, supports fixed value
|
|
81
|
+
* @default '30%'
|
|
82
|
+
* @withConfig true
|
|
83
|
+
*/
|
|
84
|
+
size?: string;
|
|
85
|
+
/**
|
|
86
|
+
* @zh_CN 自定义样式名
|
|
87
|
+
* @en_US Custom style name
|
|
88
|
+
*/
|
|
89
|
+
className?: string;
|
|
90
|
+
/**
|
|
91
|
+
* @zh_CN 点击遮罩关闭
|
|
92
|
+
* @en_US Click the mask to close
|
|
93
|
+
* @default true
|
|
94
|
+
* @withConfig true
|
|
95
|
+
*/
|
|
96
|
+
backdropClose?: boolean;
|
|
97
|
+
/**
|
|
98
|
+
* @zh_CN 是否显示背景遮罩
|
|
99
|
+
* @en_US Whether to display the background mask
|
|
100
|
+
* @default true
|
|
101
|
+
* @withConfig true
|
|
102
|
+
*/
|
|
103
|
+
hasBackdrop?: boolean;
|
|
104
|
+
/**
|
|
105
|
+
* @zh_CN 数据,通过 "@Inject(X_DRAWER_DATA)" 来接收数据
|
|
106
|
+
* @en_US Data. Receive data by "@Inject(X_DRAWER_DATA)"
|
|
107
|
+
*/
|
|
108
|
+
data?: any;
|
|
109
|
+
/**
|
|
110
|
+
* @en_US 视图容器实例可以包含其他视图容器。
|
|
111
|
+
* @en_US A view container instance can contain other view containers.
|
|
112
|
+
*/
|
|
113
|
+
viewContainerRef?: ViewContainerRef;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* @zh_CN 创建的抽屉对象
|
|
117
|
+
* @en_US Drawer object created
|
|
118
|
+
*/
|
|
119
|
+
export interface XDrawerOverlayRef extends XPortalOverlayRef<XDrawerContainerComponent> {
|
|
120
|
+
drawerRef?: XDrawerRef<any>;
|
|
121
|
+
}
|
|
122
|
+
export declare type XDrawerAnimationState = XPosition | 'void';
|
|
123
|
+
export interface XDrawerAnimationEvent {
|
|
124
|
+
state: XDrawerAnimationState;
|
|
125
|
+
action: 'start' | 'done';
|
|
126
|
+
totalTime: number;
|
|
46
127
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Overlay } from '@angular/cdk/overlay';
|
|
2
|
+
import { ComponentType } from '@angular/cdk/portal';
|
|
3
|
+
import { TemplateRef } from '@angular/core';
|
|
4
|
+
import { XConfigService, XDrawerConfig } from '@ng-nest/ui/core';
|
|
5
|
+
import { XPortalService } from '@ng-nest/ui/portal';
|
|
6
|
+
import { XDrawerRef } from './drawer-ref';
|
|
7
|
+
import { XDrawerOption } from './drawer.property';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export declare class XDrawerService {
|
|
10
|
+
portalService: XPortalService;
|
|
11
|
+
configService: XConfigService;
|
|
12
|
+
overlay: Overlay;
|
|
13
|
+
default: XDrawerOption;
|
|
14
|
+
configDefault?: XDrawerConfig;
|
|
15
|
+
constructor(portalService: XPortalService, configService: XConfigService, overlay: Overlay);
|
|
16
|
+
create<T>(content: TemplateRef<any> | ComponentType<T>, option?: XDrawerOption): XDrawerRef<T>;
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<XDrawerService, never>;
|
|
18
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<XDrawerService>;
|
|
19
|
+
}
|
package/drawer/public-api.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
export * from './drawer.component';
|
|
2
|
+
export * from './drawer-container.component';
|
|
3
|
+
export * from './drawer-container.directives';
|
|
4
|
+
export * from './drawer.component';
|
|
2
5
|
export * from './drawer.module';
|
|
3
6
|
export * from './drawer.property';
|
|
7
|
+
export * from './drawer.service';
|
|
8
|
+
export * from './drawer-ref';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';
|
|
2
2
|
import { XAlertPrefix, XAlertProperty } from './alert.property';
|
|
3
|
-
import { XFadeAnimation, XIsEmpty } from '@ng-nest/ui/core';
|
|
3
|
+
import { XFadeAnimation, XIsEmpty, XIsChange, XClearClass } from '@ng-nest/ui/core';
|
|
4
4
|
import { of, Subject } from 'rxjs';
|
|
5
5
|
import { delay, takeUntil } from 'rxjs/operators';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
@@ -25,7 +25,12 @@ export class XAlertComponent extends XAlertProperty {
|
|
|
25
25
|
this._unSubject.next();
|
|
26
26
|
this._unSubject.unsubscribe();
|
|
27
27
|
}
|
|
28
|
+
ngOnChanges(changes) {
|
|
29
|
+
const { type, effect, title, content, showIcon, draggable } = changes;
|
|
30
|
+
XIsChange(type, effect, title, content, showIcon, draggable) && this.setClassMap();
|
|
31
|
+
}
|
|
28
32
|
setClassMap() {
|
|
33
|
+
XClearClass(this.classMap);
|
|
29
34
|
this.classMap = {
|
|
30
35
|
[`${XAlertPrefix}-${this.type}`]: !XIsEmpty(this.type),
|
|
31
36
|
[`x-${this.effect}`]: !XIsEmpty(this.effect),
|
|
@@ -60,7 +65,7 @@ export class XAlertComponent extends XAlertProperty {
|
|
|
60
65
|
}
|
|
61
66
|
}
|
|
62
67
|
/** @nocollapse */ XAlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XAlertComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
|
|
63
|
-
/** @nocollapse */ XAlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XAlertComponent, selector: "x-alert", usesInheritance: true, ngImport: i0, template: "<div\r\n #alert\r\n class=\"x-alert\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"!draggable\"\r\n [cdkDragBoundary]=\"dragBoundary\"\r\n [ngClass]=\"classMap\"\r\n *ngIf=\"!hide\"\r\n @x-fade-animation\r\n [@.disabled]=\"disabledAnimation\"\r\n (@x-fade-animation.done)=\"onCloseAnimationDone()\"\r\n>\r\n <ng-container *ngIf=\"showIcon\">\r\n <ng-container *ngTemplateOutlet=\"iconTpl\"></ng-container>\r\n </ng-container>\r\n <ng-template #iconTpl>\r\n <ng-container [ngSwitch]=\"type\">\r\n <x-icon class=\"x-alert-icon\" *ngSwitchCase=\"'success'\" type=\"adf-check-circle\"></x-icon>\r\n <x-icon class=\"x-alert-icon\" *ngSwitchCase=\"'info'\" type=\"adf-info-circle\"></x-icon>\r\n <x-icon class=\"x-alert-icon\" *ngSwitchCase=\"'warning'\" type=\"adf-exclamation-circle\"></x-icon>\r\n <x-icon class=\"x-alert-icon\" *ngSwitchCase=\"'error'\" type=\"adf-close-circle\"></x-icon>\r\n </ng-container>\r\n </ng-template>\r\n <div class=\"x-alert-inner\">\r\n <span class=\"x-alert-title\" cdkDragHandle [class.x-bold]=\"title && content\">\r\n <ng-container *xOutlet=\"title; context: { $iconTpl: iconTpl }\">{{ title }}</ng-container>\r\n </span>\r\n <div class=\"x-alert-content\" *ngIf=\"content\">\r\n <ng-container *xOutlet=\"content; context: { $iconTpl: iconTpl }\">{{ content }}</ng-container>\r\n </div>\r\n <x-button\r\n *ngIf=\"!hideClose\"\r\n class=\"x-alert-close\"\r\n size=\"small\"\r\n [icon]=\"!closeText ? 'fto-x' : ''\"\r\n [onlyIcon]=\"!closeText\"\r\n [type]=\"closeText ? 'text' : 'initial'\"\r\n (click)=\"onClose()\"\r\n closable\r\n >{{ closeText }}</x-button\r\n >\r\n </div>\r\n</div>\r\n", styles: ["x-alert{display:block}.x-alert{margin:0;background-color:var(--x-background);border:.0625rem solid var(--x-border-300);border-radius:var(--x-border-radius);padding:.5rem 1rem;position:relative;display:flex;align-items:center}.x-alert-close{position:absolute;top:.425rem;right:.
|
|
68
|
+
/** @nocollapse */ XAlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XAlertComponent, selector: "x-alert", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n #alert\r\n class=\"x-alert\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"!draggable\"\r\n [cdkDragBoundary]=\"dragBoundary\"\r\n [ngClass]=\"classMap\"\r\n *ngIf=\"!hide\"\r\n @x-fade-animation\r\n [@.disabled]=\"disabledAnimation\"\r\n (@x-fade-animation.done)=\"onCloseAnimationDone()\"\r\n>\r\n <ng-container *ngIf=\"showIcon\">\r\n <ng-container *ngTemplateOutlet=\"iconTpl\"></ng-container>\r\n </ng-container>\r\n <ng-template #iconTpl>\r\n <ng-container [ngSwitch]=\"type\">\r\n <x-icon class=\"x-alert-icon\" *ngSwitchCase=\"'success'\" type=\"adf-check-circle\"></x-icon>\r\n <x-icon class=\"x-alert-icon\" *ngSwitchCase=\"'info'\" type=\"adf-info-circle\"></x-icon>\r\n <x-icon class=\"x-alert-icon\" *ngSwitchCase=\"'warning'\" type=\"adf-exclamation-circle\"></x-icon>\r\n <x-icon class=\"x-alert-icon\" *ngSwitchCase=\"'error'\" type=\"adf-close-circle\"></x-icon>\r\n <x-icon class=\"x-alert-icon\" *ngSwitchCase=\"'loading'\" type=\"fto-loader\" [spin]=\"true\"></x-icon>\r\n </ng-container>\r\n </ng-template>\r\n <div class=\"x-alert-inner\">\r\n <span class=\"x-alert-title\" cdkDragHandle [class.x-bold]=\"title && content\">\r\n <ng-container *xOutlet=\"title; context: { $iconTpl: iconTpl }\">{{ title }}</ng-container>\r\n </span>\r\n <div class=\"x-alert-content\" *ngIf=\"content\">\r\n <ng-container *xOutlet=\"content; context: { $iconTpl: iconTpl }\">{{ content }}</ng-container>\r\n </div>\r\n <x-button\r\n *ngIf=\"!hideClose\"\r\n class=\"x-alert-close\"\r\n size=\"small\"\r\n [icon]=\"!closeText ? 'fto-x' : ''\"\r\n [onlyIcon]=\"!closeText\"\r\n [type]=\"closeText ? 'text' : 'initial'\"\r\n (click)=\"onClose()\"\r\n closable\r\n >{{ closeText }}</x-button\r\n >\r\n </div>\r\n</div>\r\n", styles: ["x-alert{display:block}.x-alert{margin:0;background-color:var(--x-background);border:.0625rem solid var(--x-border-300);border-radius:var(--x-border-radius);padding:.5rem 1rem;position:relative;display:flex;align-items:center}.x-alert-close{position:absolute;top:.425rem;right:.425rem}.x-alert-inner{width:100%}.x-alert-title.x-bold{font-weight:600}.x-alert-content{font-size:calc(var(--x-font-size) - .0625rem);line-height:1.325rem;margin:.25rem 0 0}.x-alert-icon.x-icon{font-size:calc(var(--x-font-size) + .25rem);margin-right:.5rem}.x-alert-icon-medium>.x-icon{font-size:1.75rem}.x-alert-draggable .cdk-drag-handle{cursor:move}.x-alert-success.x-light{color:var(--x-success);background-color:var(--x-success-900);border-color:transparent;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-success.x-light x-button.x-alert-close .x-button{color:var(--x-success-400)}.x-alert-success.x-light x-button.x-alert-close .x-button:hover{color:var(--x-success)}.x-alert-success.x-dark{color:var(--x-success-900);background-color:var(--x-success);border-color:transparent;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-success.x-dark x-button.x-alert-close .x-button{color:var(--x-success-900)}.x-alert-success.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-success.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:transparent;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-success.x-white .x-alert-icon.x-icon{color:var(--x-success)}.x-alert-success.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-success.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}.x-alert-info.x-light{color:var(--x-info);background-color:var(--x-info-900);border-color:transparent;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-info.x-light x-button.x-alert-close .x-button{color:var(--x-info-400)}.x-alert-info.x-light x-button.x-alert-close .x-button:hover{color:var(--x-info)}.x-alert-info.x-dark{color:var(--x-info-900);background-color:var(--x-info);border-color:transparent;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-info.x-dark x-button.x-alert-close .x-button{color:var(--x-info-900)}.x-alert-info.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-info.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:transparent;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-info.x-white .x-alert-icon.x-icon{color:var(--x-info)}.x-alert-info.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-info.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}.x-alert-warning.x-light{color:var(--x-warning);background-color:var(--x-warning-900);border-color:transparent;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-warning.x-light x-button.x-alert-close .x-button{color:var(--x-warning-400)}.x-alert-warning.x-light x-button.x-alert-close .x-button:hover{color:var(--x-warning)}.x-alert-warning.x-dark{color:var(--x-warning-900);background-color:var(--x-warning);border-color:transparent;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-warning.x-dark x-button.x-alert-close .x-button{color:var(--x-warning-900)}.x-alert-warning.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-warning.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:transparent;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-warning.x-white .x-alert-icon.x-icon{color:var(--x-warning)}.x-alert-warning.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-warning.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}.x-alert-error.x-light{color:var(--x-danger);background-color:var(--x-danger-900);border-color:transparent;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-error.x-light x-button.x-alert-close .x-button{color:var(--x-danger-400)}.x-alert-error.x-light x-button.x-alert-close .x-button:hover{color:var(--x-danger)}.x-alert-error.x-dark{color:var(--x-danger-900);background-color:var(--x-danger);border-color:transparent;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-error.x-dark x-button.x-alert-close .x-button{color:var(--x-danger-900)}.x-alert-error.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-error.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:transparent;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-error.x-white .x-alert-icon.x-icon{color:var(--x-danger)}.x-alert-error.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-error.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}.x-alert-loading.x-light{color:var(--x-primary);background-color:var(--x-info-900);border-color:transparent;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-loading.x-light x-button.x-alert-close .x-button{color:var(--x-info-400)}.x-alert-loading.x-light x-button.x-alert-close .x-button:hover{color:var(--x-primary)}.x-alert-loading.x-dark{color:var(--x-info-900);background-color:var(--x-primary);border-color:transparent;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-loading.x-dark x-button.x-alert-close .x-button{color:var(--x-info-900)}.x-alert-loading.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-loading.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:transparent;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-loading.x-white .x-alert-icon.x-icon{color:var(--x-primary)}.x-alert-loading.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-loading.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}\n"], components: [{ type: i2.XIconComponent, selector: "x-icon" }, { type: i3.XButtonComponent, selector: "x-button" }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragDisabled", "cdkDragStartDelay", "cdkDragLockAxis", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragBoundary", "cdkDragRootElement", "cdkDragPreviewContainer", "cdkDragData", "cdkDragFreeDragPosition"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i5.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { type: i6.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], animations: [XFadeAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
64
69
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XAlertComponent, decorators: [{
|
|
65
70
|
type: Component,
|
|
66
71
|
args: [{
|
|
@@ -72,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImpor
|
|
|
72
77
|
animations: [XFadeAnimation]
|
|
73
78
|
}]
|
|
74
79
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.XConfigService }]; } });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvYWxlcnQvYWxlcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvYWxlcnQvYWxlcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxpQkFBaUIsRUFBcUIsdUJBQXVCLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQzNJLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQWtCLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRyxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQVVsRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxjQUFjO0lBR2pELFlBQW1CLEdBQXNCLEVBQVMsYUFBNkI7UUFDN0UsS0FBSyxFQUFFLENBQUM7UUFEUyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUZ2RSxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUl6QyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDdEUsU0FBUyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JGLENBQUM7SUFFRCxXQUFXO1FBQ1QsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHO1lBQ2QsQ0FBQyxHQUFHLFlBQVksSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ3RELENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQzVDLENBQUMsR0FBRyxZQUFZLGNBQWMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUM3RyxDQUFDLEdBQUcsWUFBWSxZQUFZLENBQUMsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUN2RCxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsRUFBRSxDQUFDLElBQUksQ0FBQztpQkFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUM5RCxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0gsQ0FBQztJQUVELE9BQU87O1FBQ0wsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsTUFBQSxJQUFJLENBQUMsS0FBSywwQ0FBRSxJQUFJLEVBQUUsQ0FBQztTQUNwQjthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDakIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFRCxvQkFBb0I7O1FBQ2xCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLE1BQUEsSUFBSSxDQUFDLEtBQUssMENBQUUsSUFBSSxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDOzsrSEF2RFUsZUFBZTttSEFBZixlQUFlLDJGQ2Q1Qix1ekRBNENBLG1tT0RoQ2MsQ0FBQyxjQUFjLENBQUM7MkZBRWpCLGVBQWU7a0JBUjNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEdBQUcsWUFBWSxFQUFFO29CQUMzQixXQUFXLEVBQUUsd0JBQXdCO29CQUNyQyxTQUFTLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztvQkFDckMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxVQUFVLEVBQUUsQ0FBQyxjQUFjLENBQUM7aUJBQzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIE9uRGVzdHJveSwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYQWxlcnRQcmVmaXgsIFhBbGVydFByb3BlcnR5IH0gZnJvbSAnLi9hbGVydC5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhGYWRlQW5pbWF0aW9uLCBYSXNFbXB0eSwgWENvbmZpZ1NlcnZpY2UsIFhJc0NoYW5nZSwgWENsZWFyQ2xhc3MgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVsYXksIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYQWxlcnRQcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWxlcnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2FsZXJ0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBhbmltYXRpb25zOiBbWEZhZGVBbmltYXRpb25dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYQWxlcnRDb21wb25lbnQgZXh0ZW5kcyBYQWxlcnRQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHVibGljIGNvbmZpZ1NlcnZpY2U6IFhDb25maWdTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XHJcbiAgICB0aGlzLnNldER1cmF0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGNvbnN0IHsgdHlwZSwgZWZmZWN0LCB0aXRsZSwgY29udGVudCwgc2hvd0ljb24sIGRyYWdnYWJsZSB9ID0gY2hhbmdlcztcclxuICAgIFhJc0NoYW5nZSh0eXBlLCBlZmZlY3QsIHRpdGxlLCBjb250ZW50LCBzaG93SWNvbiwgZHJhZ2dhYmxlKSAmJiB0aGlzLnNldENsYXNzTWFwKCk7XHJcbiAgfVxyXG5cclxuICBzZXRDbGFzc01hcCgpIHtcclxuICAgIFhDbGVhckNsYXNzKHRoaXMuY2xhc3NNYXApO1xyXG4gICAgdGhpcy5jbGFzc01hcCA9IHtcclxuICAgICAgW2Ake1hBbGVydFByZWZpeH0tJHt0aGlzLnR5cGV9YF06ICFYSXNFbXB0eSh0aGlzLnR5cGUpLFxyXG4gICAgICBbYHgtJHt0aGlzLmVmZmVjdH1gXTogIVhJc0VtcHR5KHRoaXMuZWZmZWN0KSxcclxuICAgICAgW2Ake1hBbGVydFByZWZpeH0taWNvbi1tZWRpdW1gXTogIVhJc0VtcHR5KHRoaXMudGl0bGUpICYmICFYSXNFbXB0eSh0aGlzLmNvbnRlbnQpICYmICFYSXNFbXB0eSh0aGlzLnNob3dJY29uKSxcclxuICAgICAgW2Ake1hBbGVydFByZWZpeH0tZHJhZ2dhYmxlYF06IEJvb2xlYW4odGhpcy5kcmFnZ2FibGUpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc2V0RHVyYXRpb24oKSB7XHJcbiAgICBpZiAodGhpcy5kdXJhdGlvbikge1xyXG4gICAgICBvZih0cnVlKVxyXG4gICAgICAgIC5waXBlKGRlbGF5KE51bWJlcih0aGlzLmR1cmF0aW9uKSksIHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5vbkNsb3NlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNsb3NlKCkge1xyXG4gICAgaWYgKHRoaXMubWFudWFsKSB7XHJcbiAgICAgIHRoaXMuY2xvc2U/LmVtaXQoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaGlkZSA9IHRydWU7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2xvc2VBbmltYXRpb25Eb25lKCkge1xyXG4gICAgaWYgKHRoaXMuaGlkZSkge1xyXG4gICAgICB0aGlzLmNsb3NlPy5lbWl0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAjYWxlcnRcclxuICBjbGFzcz1cIngtYWxlcnRcIlxyXG4gIGNka0RyYWdcclxuICBbY2RrRHJhZ0Rpc2FibGVkXT1cIiFkcmFnZ2FibGVcIlxyXG4gIFtjZGtEcmFnQm91bmRhcnldPVwiZHJhZ0JvdW5kYXJ5XCJcclxuICBbbmdDbGFzc109XCJjbGFzc01hcFwiXHJcbiAgKm5nSWY9XCIhaGlkZVwiXHJcbiAgQHgtZmFkZS1hbmltYXRpb25cclxuICBbQC5kaXNhYmxlZF09XCJkaXNhYmxlZEFuaW1hdGlvblwiXHJcbiAgKEB4LWZhZGUtYW5pbWF0aW9uLmRvbmUpPVwib25DbG9zZUFuaW1hdGlvbkRvbmUoKVwiXHJcbj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0ljb25cIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpY29uVHBsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLXRlbXBsYXRlICNpY29uVHBsPlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidHlwZVwiPlxyXG4gICAgICA8eC1pY29uIGNsYXNzPVwieC1hbGVydC1pY29uXCIgKm5nU3dpdGNoQ2FzZT1cIidzdWNjZXNzJ1wiIHR5cGU9XCJhZGYtY2hlY2stY2lyY2xlXCI+PC94LWljb24+XHJcbiAgICAgIDx4LWljb24gY2xhc3M9XCJ4LWFsZXJ0LWljb25cIiAqbmdTd2l0Y2hDYXNlPVwiJ2luZm8nXCIgdHlwZT1cImFkZi1pbmZvLWNpcmNsZVwiPjwveC1pY29uPlxyXG4gICAgICA8eC1pY29uIGNsYXNzPVwieC1hbGVydC1pY29uXCIgKm5nU3dpdGNoQ2FzZT1cIid3YXJuaW5nJ1wiIHR5cGU9XCJhZGYtZXhjbGFtYXRpb24tY2lyY2xlXCI+PC94LWljb24+XHJcbiAgICAgIDx4LWljb24gY2xhc3M9XCJ4LWFsZXJ0LWljb25cIiAqbmdTd2l0Y2hDYXNlPVwiJ2Vycm9yJ1wiIHR5cGU9XCJhZGYtY2xvc2UtY2lyY2xlXCI+PC94LWljb24+XHJcbiAgICAgIDx4LWljb24gY2xhc3M9XCJ4LWFsZXJ0LWljb25cIiAqbmdTd2l0Y2hDYXNlPVwiJ2xvYWRpbmcnXCIgdHlwZT1cImZ0by1sb2FkZXJcIiBbc3Bpbl09XCJ0cnVlXCI+PC94LWljb24+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWFsZXJ0LWlubmVyXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cIngtYWxlcnQtdGl0bGVcIiBjZGtEcmFnSGFuZGxlIFtjbGFzcy54LWJvbGRdPVwidGl0bGUgJiYgY29udGVudFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwidGl0bGU7IGNvbnRleHQ6IHsgJGljb25UcGw6IGljb25UcGwgfVwiPnt7IHRpdGxlIH19PC9uZy1jb250YWluZXI+XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1hbGVydC1jb250ZW50XCIgKm5nSWY9XCJjb250ZW50XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJjb250ZW50OyBjb250ZXh0OiB7ICRpY29uVHBsOiBpY29uVHBsIH1cIj57eyBjb250ZW50IH19PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDx4LWJ1dHRvblxyXG4gICAgICAqbmdJZj1cIiFoaWRlQ2xvc2VcIlxyXG4gICAgICBjbGFzcz1cIngtYWxlcnQtY2xvc2VcIlxyXG4gICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICBbaWNvbl09XCIhY2xvc2VUZXh0ID8gJ2Z0by14JyA6ICcnXCJcclxuICAgICAgW29ubHlJY29uXT1cIiFjbG9zZVRleHRcIlxyXG4gICAgICBbdHlwZV09XCJjbG9zZVRleHQgPyAndGV4dCcgOiAnaW5pdGlhbCdcIlxyXG4gICAgICAoY2xpY2spPVwib25DbG9zZSgpXCJcclxuICAgICAgY2xvc2FibGVcclxuICAgICAgPnt7IGNsb3NlVGV4dCB9fTwveC1idXR0b25cclxuICAgID5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|