@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.
Files changed (137) hide show
  1. package/alert/alert.component.d.ts +2 -1
  2. package/bundles/ng-nest-ui-alert.umd.js +6 -1
  3. package/bundles/ng-nest-ui-alert.umd.js.map +1 -1
  4. package/bundles/ng-nest-ui-carousel.umd.js +10 -10
  5. package/bundles/ng-nest-ui-carousel.umd.js.map +1 -1
  6. package/bundles/ng-nest-ui-core.umd.js.map +1 -1
  7. package/bundles/ng-nest-ui-dialog.umd.js +284 -32
  8. package/bundles/ng-nest-ui-dialog.umd.js.map +1 -1
  9. package/bundles/ng-nest-ui-drawer.umd.js +245 -14
  10. package/bundles/ng-nest-ui-drawer.umd.js.map +1 -1
  11. package/bundles/ng-nest-ui-find.umd.js +27 -3
  12. package/bundles/ng-nest-ui-find.umd.js.map +1 -1
  13. package/bundles/ng-nest-ui-input.umd.js +2 -1
  14. package/bundles/ng-nest-ui-input.umd.js.map +1 -1
  15. package/bundles/ng-nest-ui-menu.umd.js +1 -1
  16. package/bundles/ng-nest-ui-menu.umd.js.map +1 -1
  17. package/bundles/ng-nest-ui-message.umd.js +52 -16
  18. package/bundles/ng-nest-ui-message.umd.js.map +1 -1
  19. package/bundles/ng-nest-ui-popconfirm.umd.js +33 -4
  20. package/bundles/ng-nest-ui-popconfirm.umd.js.map +1 -1
  21. package/bundles/ng-nest-ui-popover.umd.js +13 -2
  22. package/bundles/ng-nest-ui-popover.umd.js.map +1 -1
  23. package/bundles/ng-nest-ui-portal.umd.js +8 -8
  24. package/bundles/ng-nest-ui-portal.umd.js.map +1 -1
  25. package/bundles/ng-nest-ui-progress.umd.js +235 -20
  26. package/bundles/ng-nest-ui-progress.umd.js.map +1 -1
  27. package/bundles/ng-nest-ui-select.umd.js +1 -1
  28. package/bundles/ng-nest-ui-steps.umd.js +19 -7
  29. package/bundles/ng-nest-ui-steps.umd.js.map +1 -1
  30. package/bundles/ng-nest-ui-table.umd.js +9 -5
  31. package/bundles/ng-nest-ui-table.umd.js.map +1 -1
  32. package/carousel/carousel-panel.component.d.ts +2 -3
  33. package/core/config/config.d.ts +7 -0
  34. package/core/interfaces/layout.type.d.ts +1 -1
  35. package/dialog/dialog-container.component.d.ts +18 -0
  36. package/dialog/dialog-container.directives.d.ts +24 -0
  37. package/dialog/dialog-ref.d.ts +9 -0
  38. package/dialog/dialog.module.d.ts +13 -11
  39. package/dialog/dialog.property.d.ts +84 -6
  40. package/dialog/dialog.service.d.ts +19 -0
  41. package/dialog/public-api.d.ts +4 -0
  42. package/drawer/drawer-container.component.d.ts +18 -0
  43. package/drawer/drawer-container.directives.d.ts +19 -0
  44. package/drawer/drawer-ref.d.ts +9 -0
  45. package/drawer/drawer.module.d.ts +8 -6
  46. package/drawer/drawer.property.d.ts +83 -2
  47. package/drawer/drawer.service.d.ts +19 -0
  48. package/drawer/public-api.d.ts +5 -0
  49. package/esm2015/alert/alert.component.js +8 -3
  50. package/esm2015/carousel/carousel-panel.component.js +12 -11
  51. package/esm2015/core/config/config.js +1 -1
  52. package/esm2015/core/interfaces/layout.type.js +1 -1
  53. package/esm2015/dialog/dialog-container.component.js +59 -0
  54. package/esm2015/dialog/dialog-container.directives.js +73 -0
  55. package/esm2015/dialog/dialog-ref.js +17 -0
  56. package/esm2015/dialog/dialog.component.js +2 -2
  57. package/esm2015/dialog/dialog.module.js +37 -7
  58. package/esm2015/dialog/dialog.property.js +17 -16
  59. package/esm2015/dialog/dialog.service.js +67 -0
  60. package/esm2015/dialog/public-api.js +5 -1
  61. package/esm2015/drawer/drawer-container.component.js +59 -0
  62. package/esm2015/drawer/drawer-container.directives.js +57 -0
  63. package/esm2015/drawer/drawer-ref.js +17 -0
  64. package/esm2015/drawer/drawer.component.js +2 -2
  65. package/esm2015/drawer/drawer.module.js +22 -6
  66. package/esm2015/drawer/drawer.property.js +22 -6
  67. package/esm2015/drawer/drawer.service.js +65 -0
  68. package/esm2015/drawer/public-api.js +6 -1
  69. package/esm2015/find/find.component.js +12 -3
  70. package/esm2015/find/find.property.js +18 -2
  71. package/esm2015/input/input.component.js +3 -2
  72. package/esm2015/menu/menu.component.js +2 -2
  73. package/esm2015/message/message-ref.js +12 -0
  74. package/esm2015/message/message.component.js +3 -3
  75. package/esm2015/message/message.property.js +2 -2
  76. package/esm2015/message/message.service.js +37 -15
  77. package/esm2015/message/public-api.js +2 -1
  78. package/esm2015/popconfirm/popconfirm.component.js +25 -4
  79. package/esm2015/popconfirm/popconfirm.property.js +10 -3
  80. package/esm2015/popover/popover.directive.js +8 -2
  81. package/esm2015/popover/popover.property.js +7 -2
  82. package/esm2015/portal/portal.module.js +4 -3
  83. package/esm2015/portal/portal.service.js +8 -9
  84. package/esm2015/progress/progress.component.js +177 -15
  85. package/esm2015/progress/progress.property.js +50 -3
  86. package/esm2015/select/select.component.js +1 -1
  87. package/esm2015/steps/steps.component.js +14 -7
  88. package/esm2015/steps/steps.property.js +8 -3
  89. package/esm2015/table/table-body.component.js +3 -3
  90. package/esm2015/table/table.component.js +2 -2
  91. package/esm2015/table/table.property.js +7 -3
  92. package/fesm2015/ng-nest-ui-alert.js +7 -2
  93. package/fesm2015/ng-nest-ui-alert.js.map +1 -1
  94. package/fesm2015/ng-nest-ui-carousel.js +9 -9
  95. package/fesm2015/ng-nest-ui-carousel.js.map +1 -1
  96. package/fesm2015/ng-nest-ui-core.js.map +1 -1
  97. package/fesm2015/ng-nest-ui-dialog.js +254 -25
  98. package/fesm2015/ng-nest-ui-dialog.js.map +1 -1
  99. package/fesm2015/ng-nest-ui-drawer.js +224 -13
  100. package/fesm2015/ng-nest-ui-drawer.js.map +1 -1
  101. package/fesm2015/ng-nest-ui-find.js +28 -3
  102. package/fesm2015/ng-nest-ui-find.js.map +1 -1
  103. package/fesm2015/ng-nest-ui-input.js +2 -1
  104. package/fesm2015/ng-nest-ui-input.js.map +1 -1
  105. package/fesm2015/ng-nest-ui-menu.js +1 -1
  106. package/fesm2015/ng-nest-ui-menu.js.map +1 -1
  107. package/fesm2015/ng-nest-ui-message.js +50 -17
  108. package/fesm2015/ng-nest-ui-message.js.map +1 -1
  109. package/fesm2015/ng-nest-ui-popconfirm.js +33 -5
  110. package/fesm2015/ng-nest-ui-popconfirm.js.map +1 -1
  111. package/fesm2015/ng-nest-ui-popover.js +13 -2
  112. package/fesm2015/ng-nest-ui-popover.js.map +1 -1
  113. package/fesm2015/ng-nest-ui-portal.js +10 -10
  114. package/fesm2015/ng-nest-ui-portal.js.map +1 -1
  115. package/fesm2015/ng-nest-ui-progress.js +225 -17
  116. package/fesm2015/ng-nest-ui-progress.js.map +1 -1
  117. package/fesm2015/ng-nest-ui-select.js +1 -1
  118. package/fesm2015/ng-nest-ui-steps.js +20 -8
  119. package/fesm2015/ng-nest-ui-steps.js.map +1 -1
  120. package/fesm2015/ng-nest-ui-table.js +9 -5
  121. package/fesm2015/ng-nest-ui-table.js.map +1 -1
  122. package/find/find.property.d.ts +31 -1
  123. package/message/message-ref.d.ts +8 -0
  124. package/message/message.component.d.ts +3 -3
  125. package/message/message.property.d.ts +24 -4
  126. package/message/message.service.d.ts +4 -1
  127. package/message/public-api.d.ts +1 -0
  128. package/package.json +1 -1
  129. package/popconfirm/popconfirm.component.d.ts +6 -2
  130. package/popconfirm/popconfirm.property.d.ts +13 -2
  131. package/popover/popover.property.d.ts +6 -1
  132. package/portal/portal.module.d.ts +1 -1
  133. package/portal/portal.service.d.ts +2 -3
  134. package/progress/progress.component.d.ts +31 -3
  135. package/progress/progress.property.d.ts +80 -5
  136. package/steps/steps.property.d.ts +7 -2
  137. 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.property";
4
- import * as i3 from "@angular/common";
5
- import * as i4 from "@angular/forms";
6
- import * as i5 from "@angular/cdk/drag-drop";
7
- import * as i6 from "@ng-nest/ui/input";
8
- import * as i7 from "@ng-nest/ui/button";
9
- import * as i8 from "@ng-nest/ui/icon";
10
- import * as i9 from "@ng-nest/ui/portal";
11
- import * as i10 from "@ng-nest/ui/alert";
12
- import * as i11 from "@ng-nest/ui/outlet";
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 i3.CommonModule, typeof i4.FormsModule, typeof i4.ReactiveFormsModule, typeof i5.DragDropModule, typeof i6.XInputModule, typeof i7.XButtonModule, typeof i8.XIconModule, typeof i9.XPortalModule, typeof i10.XAlertModule, typeof i11.XOutletModule], [typeof i1.XDialogComponent]>;
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 Message object created
301
+ * @zh_CN 创建的弹框对象
302
+ * @en_US Dialog object created
227
303
  */
228
304
  export interface XDialogOverlayRef extends XPortalOverlayRef<XDialogComponent> {
229
305
  }
230
- export interface XDialogRef {
231
- ref?: XDialogOverlayRef;
232
- input?: XDialogProperty;
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
+ }
@@ -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.property";
4
- import * as i3 from "@angular/common";
5
- import * as i4 from "@ng-nest/ui/outlet";
6
- import * as i5 from "@ng-nest/ui/button";
7
- import * as i6 from "@ng-nest/ui/portal";
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 i3.CommonModule, typeof i4.XOutletModule, typeof i5.XButtonModule, typeof i6.XPortalModule], [typeof i1.XDrawerComponent]>;
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
+ }
@@ -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:.25rem}.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)}\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 });
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvYWxlcnQvYWxlcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvYWxlcnQvYWxlcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxpQkFBaUIsRUFBcUIsdUJBQXVCLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDNUgsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBa0IsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQVVsRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxjQUFjO0lBR2pELFlBQW1CLEdBQXNCLEVBQVMsYUFBNkI7UUFDN0UsS0FBSyxFQUFFLENBQUM7UUFEUyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUZ2RSxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUl6QyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxHQUFHO1lBQ2QsQ0FBQyxHQUFHLFlBQVksSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ3RELENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQzVDLENBQUMsR0FBRyxZQUFZLGNBQWMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUM3RyxDQUFDLEdBQUcsWUFBWSxZQUFZLENBQUMsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUN2RCxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsRUFBRSxDQUFDLElBQUksQ0FBQztpQkFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUM5RCxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0gsQ0FBQztJQUVELE9BQU87O1FBQ0wsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsTUFBQSxJQUFJLENBQUMsS0FBSywwQ0FBRSxJQUFJLEVBQUUsQ0FBQztTQUNwQjthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDakIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFRCxvQkFBb0I7O1FBQ2xCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLE1BQUEsSUFBSSxDQUFDLEtBQUssMENBQUUsSUFBSSxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDOzsrSEFqRFUsZUFBZTttSEFBZixlQUFlLHNFQ2Q1Qixxc0RBMkNBLDRoTUQvQmMsQ0FBQyxjQUFjLENBQUM7MkZBRWpCLGVBQWU7a0JBUjNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEdBQUcsWUFBWSxFQUFFO29CQUMzQixXQUFXLEVBQUUsd0JBQXdCO29CQUNyQyxTQUFTLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztvQkFDckMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxVQUFVLEVBQUUsQ0FBQyxjQUFjLENBQUM7aUJBQzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYQWxlcnRQcmVmaXgsIFhBbGVydFByb3BlcnR5IH0gZnJvbSAnLi9hbGVydC5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhGYWRlQW5pbWF0aW9uLCBYSXNFbXB0eSwgWENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVsYXksIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYQWxlcnRQcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWxlcnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2FsZXJ0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBhbmltYXRpb25zOiBbWEZhZGVBbmltYXRpb25dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYQWxlcnRDb21wb25lbnQgZXh0ZW5kcyBYQWxlcnRQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHVibGljIGNvbmZpZ1NlcnZpY2U6IFhDb25maWdTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XHJcbiAgICB0aGlzLnNldER1cmF0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHNldENsYXNzTWFwKCkge1xyXG4gICAgdGhpcy5jbGFzc01hcCA9IHtcclxuICAgICAgW2Ake1hBbGVydFByZWZpeH0tJHt0aGlzLnR5cGV9YF06ICFYSXNFbXB0eSh0aGlzLnR5cGUpLFxyXG4gICAgICBbYHgtJHt0aGlzLmVmZmVjdH1gXTogIVhJc0VtcHR5KHRoaXMuZWZmZWN0KSxcclxuICAgICAgW2Ake1hBbGVydFByZWZpeH0taWNvbi1tZWRpdW1gXTogIVhJc0VtcHR5KHRoaXMudGl0bGUpICYmICFYSXNFbXB0eSh0aGlzLmNvbnRlbnQpICYmICFYSXNFbXB0eSh0aGlzLnNob3dJY29uKSxcclxuICAgICAgW2Ake1hBbGVydFByZWZpeH0tZHJhZ2dhYmxlYF06IEJvb2xlYW4odGhpcy5kcmFnZ2FibGUpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc2V0RHVyYXRpb24oKSB7XHJcbiAgICBpZiAodGhpcy5kdXJhdGlvbikge1xyXG4gICAgICBvZih0cnVlKVxyXG4gICAgICAgIC5waXBlKGRlbGF5KE51bWJlcih0aGlzLmR1cmF0aW9uKSksIHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5vbkNsb3NlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNsb3NlKCkge1xyXG4gICAgaWYgKHRoaXMubWFudWFsKSB7XHJcbiAgICAgIHRoaXMuY2xvc2U/LmVtaXQoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaGlkZSA9IHRydWU7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2xvc2VBbmltYXRpb25Eb25lKCkge1xyXG4gICAgaWYgKHRoaXMuaGlkZSkge1xyXG4gICAgICB0aGlzLmNsb3NlPy5lbWl0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAjYWxlcnRcclxuICBjbGFzcz1cIngtYWxlcnRcIlxyXG4gIGNka0RyYWdcclxuICBbY2RrRHJhZ0Rpc2FibGVkXT1cIiFkcmFnZ2FibGVcIlxyXG4gIFtjZGtEcmFnQm91bmRhcnldPVwiZHJhZ0JvdW5kYXJ5XCJcclxuICBbbmdDbGFzc109XCJjbGFzc01hcFwiXHJcbiAgKm5nSWY9XCIhaGlkZVwiXHJcbiAgQHgtZmFkZS1hbmltYXRpb25cclxuICBbQC5kaXNhYmxlZF09XCJkaXNhYmxlZEFuaW1hdGlvblwiXHJcbiAgKEB4LWZhZGUtYW5pbWF0aW9uLmRvbmUpPVwib25DbG9zZUFuaW1hdGlvbkRvbmUoKVwiXHJcbj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0ljb25cIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpY29uVHBsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLXRlbXBsYXRlICNpY29uVHBsPlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidHlwZVwiPlxyXG4gICAgICA8eC1pY29uIGNsYXNzPVwieC1hbGVydC1pY29uXCIgKm5nU3dpdGNoQ2FzZT1cIidzdWNjZXNzJ1wiIHR5cGU9XCJhZGYtY2hlY2stY2lyY2xlXCI+PC94LWljb24+XHJcbiAgICAgIDx4LWljb24gY2xhc3M9XCJ4LWFsZXJ0LWljb25cIiAqbmdTd2l0Y2hDYXNlPVwiJ2luZm8nXCIgdHlwZT1cImFkZi1pbmZvLWNpcmNsZVwiPjwveC1pY29uPlxyXG4gICAgICA8eC1pY29uIGNsYXNzPVwieC1hbGVydC1pY29uXCIgKm5nU3dpdGNoQ2FzZT1cIid3YXJuaW5nJ1wiIHR5cGU9XCJhZGYtZXhjbGFtYXRpb24tY2lyY2xlXCI+PC94LWljb24+XHJcbiAgICAgIDx4LWljb24gY2xhc3M9XCJ4LWFsZXJ0LWljb25cIiAqbmdTd2l0Y2hDYXNlPVwiJ2Vycm9yJ1wiIHR5cGU9XCJhZGYtY2xvc2UtY2lyY2xlXCI+PC94LWljb24+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWFsZXJ0LWlubmVyXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cIngtYWxlcnQtdGl0bGVcIiBjZGtEcmFnSGFuZGxlIFtjbGFzcy54LWJvbGRdPVwidGl0bGUgJiYgY29udGVudFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwidGl0bGU7IGNvbnRleHQ6IHsgJGljb25UcGw6IGljb25UcGwgfVwiPnt7IHRpdGxlIH19PC9uZy1jb250YWluZXI+XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1hbGVydC1jb250ZW50XCIgKm5nSWY9XCJjb250ZW50XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJjb250ZW50OyBjb250ZXh0OiB7ICRpY29uVHBsOiBpY29uVHBsIH1cIj57eyBjb250ZW50IH19PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDx4LWJ1dHRvblxyXG4gICAgICAqbmdJZj1cIiFoaWRlQ2xvc2VcIlxyXG4gICAgICBjbGFzcz1cIngtYWxlcnQtY2xvc2VcIlxyXG4gICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICBbaWNvbl09XCIhY2xvc2VUZXh0ID8gJ2Z0by14JyA6ICcnXCJcclxuICAgICAgW29ubHlJY29uXT1cIiFjbG9zZVRleHRcIlxyXG4gICAgICBbdHlwZV09XCJjbG9zZVRleHQgPyAndGV4dCcgOiAnaW5pdGlhbCdcIlxyXG4gICAgICAoY2xpY2spPVwib25DbG9zZSgpXCJcclxuICAgICAgY2xvc2FibGVcclxuICAgICAgPnt7IGNsb3NlVGV4dCB9fTwveC1idXR0b25cclxuICAgID5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
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==