@fundamental-ngx/core 0.46.0-rc.51 → 0.46.0-rc.52

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 (61) hide show
  1. package/dialog/base/dialog-base.class.d.ts +8 -7
  2. package/dialog/base/dialog-content-base.class.d.ts +2 -0
  3. package/dialog/base/dialog-footer-base.class.d.ts +6 -4
  4. package/dialog/dialog-body/dialog-body.component.d.ts +2 -2
  5. package/dialog/dialog-close-button/dialog-close-button.component.d.ts +1 -1
  6. package/dialog/dialog-container/dialog-container.component.d.ts +1 -1
  7. package/dialog/dialog-default/dialog-default.component.d.ts +3 -1
  8. package/dialog/dialog-footer/dialog-footer.component.d.ts +2 -2
  9. package/dialog/dialog-full-screen-toggler-button/dialog-full-screen-toggler-button.component.d.ts +20 -0
  10. package/dialog/dialog-header/dialog-header.component.d.ts +2 -2
  11. package/dialog/dialog.component.d.ts +13 -6
  12. package/dialog/dialog.module.d.ts +18 -13
  13. package/dialog/directives/dialog-title.directive.d.ts +1 -1
  14. package/dialog/index.d.ts +2 -0
  15. package/dialog/provide-dialog-service.d.ts +6 -0
  16. package/dialog/utils/dialog-default-content.class.d.ts +6 -0
  17. package/dialog/utils/dialog-ref.class.d.ts +9 -1
  18. package/esm2022/combobox/combobox-mobile/combobox-mobile.component.mjs +5 -5
  19. package/esm2022/date-picker/date-picker-mobile/date-picker-mobile.component.mjs +2 -3
  20. package/esm2022/datetime-picker/datetime-picker-mobile/datetime-picker-mobile.component.mjs +2 -3
  21. package/esm2022/dialog/base/dialog-base.class.mjs +4 -4
  22. package/esm2022/dialog/base/dialog-content-base.class.mjs +1 -1
  23. package/esm2022/dialog/base/dialog-footer-base.class.mjs +12 -7
  24. package/esm2022/dialog/base/dialog-header-base.class.mjs +3 -2
  25. package/esm2022/dialog/dialog-body/dialog-body.component.mjs +9 -9
  26. package/esm2022/dialog/dialog-close-button/dialog-close-button.component.mjs +9 -5
  27. package/esm2022/dialog/dialog-container/dialog-container.component.mjs +5 -5
  28. package/esm2022/dialog/dialog-default/dialog-default.component.mjs +37 -12
  29. package/esm2022/dialog/dialog-footer/dialog-footer.component.mjs +8 -6
  30. package/esm2022/dialog/dialog-full-screen-toggler-button/dialog-full-screen-toggler-button.component.mjs +53 -0
  31. package/esm2022/dialog/dialog-header/dialog-header.component.mjs +8 -6
  32. package/esm2022/dialog/dialog.component.mjs +37 -11
  33. package/esm2022/dialog/dialog.module.mjs +61 -64
  34. package/esm2022/dialog/directives/dialog-title.directive.mjs +4 -3
  35. package/esm2022/dialog/index.mjs +3 -1
  36. package/esm2022/dialog/provide-dialog-service.mjs +10 -0
  37. package/esm2022/dialog/utils/dialog-default-content.class.mjs +1 -1
  38. package/esm2022/dialog/utils/dialog-ref.class.mjs +13 -2
  39. package/esm2022/menu/menu-mobile/menu-mobile.component.mjs +2 -2
  40. package/esm2022/multi-combobox/mobile/mobile-multi-combobox.component.mjs +3 -3
  41. package/esm2022/multi-combobox/multi-combobox.component.mjs +6 -6
  42. package/esm2022/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +4 -4
  43. package/fesm2022/fundamental-ngx-core-combobox.mjs +7 -7
  44. package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
  45. package/fesm2022/fundamental-ngx-core-date-picker.mjs +3 -4
  46. package/fesm2022/fundamental-ngx-core-date-picker.mjs.map +1 -1
  47. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs +3 -4
  48. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  49. package/fesm2022/fundamental-ngx-core-dialog.mjs +225 -105
  50. package/fesm2022/fundamental-ngx-core-dialog.mjs.map +1 -1
  51. package/fesm2022/fundamental-ngx-core-menu.mjs +2 -2
  52. package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
  53. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +7 -7
  54. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  55. package/fesm2022/fundamental-ngx-core-multi-input.mjs +10 -10
  56. package/fesm2022/fundamental-ngx-core-multi-input.mjs.map +1 -1
  57. package/fundamental-ngx-core-v0.46.0-rc.52.tgz +0 -0
  58. package/multi-combobox/multi-combobox.component.d.ts +1 -1
  59. package/package.json +3 -3
  60. package/schematics/add-dependencies/index.js +4 -4
  61. package/fundamental-ngx-core-v0.46.0-rc.51.tgz +0 -0
@@ -1,11 +1,12 @@
1
1
  import { AfterViewInit, ChangeDetectorRef, ElementRef, OnDestroy, OnInit } from '@angular/core';
2
2
  import { Router } from '@angular/router';
3
- import { RtlService, FocusTrapService } from '@fundamental-ngx/cdk/utils';
3
+ import { Subscription } from 'rxjs';
4
+ import { FocusTrapService, RtlService } from '@fundamental-ngx/cdk/utils';
5
+ import { DialogSize } from '../utils/dialog-width-to-size';
4
6
  import { DialogConfigBase } from './dialog-config-base.class';
5
7
  import { DialogRefBase } from './dialog-ref-base.class';
6
- import { DialogSize } from '../utils/dialog-width-to-size';
7
8
  import * as i0 from "@angular/core";
8
- export declare abstract class DialogBase implements OnInit, AfterViewInit, OnDestroy {
9
+ export declare abstract class DialogBase<T = any, D extends DialogRefBase<T> = DialogRefBase<T>> implements OnInit, AfterViewInit, OnDestroy {
9
10
  protected _router: Router;
10
11
  readonly elementRef: ElementRef;
11
12
  protected _changeDetectorRef: ChangeDetectorRef;
@@ -22,9 +23,9 @@ export declare abstract class DialogBase implements OnInit, AfterViewInit, OnDes
22
23
  /** @hidden */
23
24
  protected _focusTrapId: string;
24
25
  /** @hidden */
25
- private _subscriptions;
26
+ protected _subscriptions: Subscription;
26
27
  /** @hidden */
27
- abstract get _ref(): DialogRefBase<any>;
28
+ abstract get _ref(): D;
28
29
  /** @hidden */
29
30
  abstract get _config(): DialogConfigBase<any>;
30
31
  /**
@@ -58,6 +59,6 @@ export declare abstract class DialogBase implements OnInit, AfterViewInit, OnDes
58
59
  private _setWidthHeight;
59
60
  /** @hidden Listen on window resize and adjust padding */
60
61
  private _listenOnWindowResize;
61
- static ɵfac: i0.ɵɵFactoryDeclaration<DialogBase, never>;
62
- static ɵdir: i0.ɵɵDirectiveDeclaration<DialogBase, never, never, {}, {}, never, never, false, never, false>;
62
+ static ɵfac: i0.ɵɵFactoryDeclaration<DialogBase<any, any>, never>;
63
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DialogBase<any, any>, never, never, {}, {}, never, never, false, never, false>;
63
64
  }
@@ -30,6 +30,8 @@ export declare class DialogContentBase {
30
30
  cancelButtonCallback?: () => void;
31
31
  /** Close Button Callback */
32
32
  closeButtonCallback?: () => void;
33
+ /** Full screen Button Click callback */
34
+ fullScreenButtonCallback?: () => void;
33
35
  /** close button title */
34
36
  closeButtonTitle?: string;
35
37
  /** Aria labelby for the dialog close button element. */
@@ -3,18 +3,20 @@ import { TemplateDirective } from '@fundamental-ngx/cdk/utils';
3
3
  import { ButtonBarComponent } from '@fundamental-ngx/core/bar';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare abstract class DialogFooterBase implements AfterContentInit {
6
- /** @hidden */
7
- footerTemplate: TemplateRef<any> | undefined;
8
6
  /** @hidden */
9
7
  customTemplates: QueryList<TemplateDirective>;
10
8
  /** @hidden */
11
9
  buttons: QueryList<ButtonBarComponent>;
12
10
  /** @hidden */
11
+ footerTemplate: TemplateRef<any> | undefined;
12
+ /** @hidden */
13
+ private readonly _cdr;
14
+ /** @hidden */
13
15
  ngAfterContentInit(): void;
14
- /** @hidden Assign custom templates */
15
- private _assignCustomTemplates;
16
16
  /** @hidden */
17
17
  protected _listenForButtonChanges(className: string): void;
18
+ /** @hidden Assign custom templates */
19
+ private _assignCustomTemplates;
18
20
  static ɵfac: i0.ɵɵFactoryDeclaration<DialogFooterBase, never>;
19
21
  static ɵdir: i0.ɵɵDirectiveDeclaration<DialogFooterBase, never, never, {}, {}, ["customTemplates", "buttons"], never, false, never, false>;
20
22
  }
@@ -1,7 +1,7 @@
1
1
  import { ElementRef } from '@angular/core';
2
+ import { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';
2
3
  import { DialogConfig } from '../utils/dialog-config.class';
3
4
  import { DialogRef } from '../utils/dialog-ref.class';
4
- import { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@fundamental-ngx/core/scrollbar";
7
7
  /**
@@ -21,5 +21,5 @@ export declare class DialogBodyComponent {
21
21
  /** @hidden */
22
22
  constructor(elementRef: ElementRef, dialogConfig: DialogConfig, dialogRef: DialogRef, _scrollbarDirective: ScrollbarDirective);
23
23
  static ɵfac: i0.ɵɵFactoryDeclaration<DialogBodyComponent, [null, { optional: true; }, { optional: true; }, null]>;
24
- static ɵcmp: i0.ɵɵComponentDeclaration<DialogBodyComponent, "fd-dialog-body", never, {}, {}, never, ["*"], false, [{ directive: typeof i1.ScrollbarDirective; inputs: {}; outputs: {}; }], false>;
24
+ static ɵcmp: i0.ɵɵComponentDeclaration<DialogBodyComponent, "fd-dialog-body", never, {}, {}, never, ["*"], true, [{ directive: typeof i1.ScrollbarDirective; inputs: {}; outputs: {}; }], false>;
25
25
  }
@@ -12,5 +12,5 @@ export declare class DialogCloseButtonComponent {
12
12
  /** add title dynamically to add a tooltip */
13
13
  title: string;
14
14
  static ɵfac: i0.ɵɵFactoryDeclaration<DialogCloseButtonComponent, never>;
15
- static ɵcmp: i0.ɵɵComponentDeclaration<DialogCloseButtonComponent, "[fd-dialog-close-button]", never, { "mobile": { "alias": "mobile"; "required": false; }; "title": { "alias": "title"; "required": false; }; }, {}, never, ["*"], false, never, false>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<DialogCloseButtonComponent, "[fd-dialog-close-button]", never, { "mobile": { "alias": "mobile"; "required": false; }; "title": { "alias": "title"; "required": false; }; }, {}, never, ["*"], true, never, false>;
16
16
  }
@@ -44,5 +44,5 @@ export declare class DialogContainerComponent extends DynamicComponentContainer<
44
44
  */
45
45
  private _listenOnClose;
46
46
  static ɵfac: i0.ɵɵFactoryDeclaration<DialogContainerComponent, never>;
47
- static ɵcmp: i0.ɵɵComponentDeclaration<DialogContainerComponent, "fd-dialog-container", never, { "class": { "alias": "class"; "required": false; }; }, {}, never, never, false, never, false>;
47
+ static ɵcmp: i0.ɵɵComponentDeclaration<DialogContainerComponent, "fd-dialog-container", never, { "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never, false>;
48
48
  }
@@ -24,6 +24,8 @@ export declare class DialogDefaultComponent implements AfterViewInit {
24
24
  _approveButtonClicked(): void;
25
25
  /** @hidden */
26
26
  _cancelButtonClicked(): void;
27
+ /** @hidden */
28
+ _fullScreenButtonClicked(): void;
27
29
  static ɵfac: i0.ɵɵFactoryDeclaration<DialogDefaultComponent, never>;
28
- static ɵcmp: i0.ɵɵComponentDeclaration<DialogDefaultComponent, "fd-dialog-default", never, {}, {}, never, never, false, never, false>;
30
+ static ɵcmp: i0.ɵɵComponentDeclaration<DialogDefaultComponent, "fd-dialog-default", never, {}, {}, never, never, true, never, false>;
29
31
  }
@@ -1,6 +1,6 @@
1
1
  import { AfterContentInit, AfterViewInit } from '@angular/core';
2
- import { DialogConfig } from '../utils/dialog-config.class';
3
2
  import { DialogFooterBase } from '../base/dialog-footer-base.class';
3
+ import { DialogConfig } from '../utils/dialog-config.class';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare const DialogButtonClass = "fd-dialog__decisive-button";
6
6
  /**
@@ -24,5 +24,5 @@ export declare class DialogFooterComponent extends DialogFooterBase implements A
24
24
  /** @hidden */
25
25
  ngAfterViewInit(): void;
26
26
  static ɵfac: i0.ɵɵFactoryDeclaration<DialogFooterComponent, [{ optional: true; }]>;
27
- static ɵcmp: i0.ɵɵComponentDeclaration<DialogFooterComponent, "fd-dialog-footer", never, {}, {}, never, ["*"], false, never, false>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<DialogFooterComponent, "fd-dialog-footer", never, {}, {}, never, ["*"], true, never, false>;
28
28
  }
@@ -0,0 +1,20 @@
1
+ import { OnInit } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class DialogFullScreenTogglerButtonComponent implements OnInit {
4
+ /** Displays dialog close button in mobile mode */
5
+ mobile: boolean;
6
+ /** add title dynamically to add a tooltip */
7
+ title: string;
8
+ /** @hidden */
9
+ _fullscreen: boolean;
10
+ /** @hidden */
11
+ private readonly _ref;
12
+ /** @hidden */
13
+ private readonly _destroyRef;
14
+ /** @hidden */
15
+ private readonly _cdr;
16
+ /** @hidden */
17
+ ngOnInit(): void;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<DialogFullScreenTogglerButtonComponent, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<DialogFullScreenTogglerButtonComponent, "[fd-dialog-full-screen-toggler-button]", never, { "mobile": { "alias": "mobile"; "required": false; }; "title": { "alias": "title"; "required": false; }; }, {}, never, never, true, never, false>;
20
+ }
@@ -1,6 +1,6 @@
1
1
  import { AfterContentInit, ChangeDetectorRef } from '@angular/core';
2
- import { DialogConfig } from '../utils/dialog-config.class';
3
2
  import { DialogHeaderBase } from '../base/dialog-header-base.class';
3
+ import { DialogConfig } from '../utils/dialog-config.class';
4
4
  import * as i0 from "@angular/core";
5
5
  /**
6
6
  * Applies fundamental layout and styling to the contents of a dialog header.
@@ -19,5 +19,5 @@ export declare class DialogHeaderComponent extends DialogHeaderBase implements A
19
19
  /** @hidden */
20
20
  ngAfterContentInit(): void;
21
21
  static ɵfac: i0.ɵɵFactoryDeclaration<DialogHeaderComponent, [{ optional: true; }, null]>;
22
- static ɵcmp: i0.ɵɵComponentDeclaration<DialogHeaderComponent, "fd-dialog-header", never, {}, {}, never, ["[fd-title]", "[fd-dialog-close-button]"], false, never, false>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<DialogHeaderComponent, "fd-dialog-header", never, {}, {}, never, ["[fd-title]", "[fd-dialog-full-screen-toggler-button]", "[fd-dialog-close-button]"], true, never, false>;
23
23
  }
@@ -1,13 +1,13 @@
1
1
  import { AfterViewInit, ChangeDetectorRef, ElementRef, OnChanges, OnDestroy, OnInit } from '@angular/core';
2
2
  import { Router } from '@angular/router';
3
3
  import { CssClassBuilder, FocusTrapService, RtlService } from '@fundamental-ngx/cdk/utils';
4
- import { DialogConfig } from './utils/dialog-config.class';
5
- import { DialogHeaderComponent } from './dialog-header/dialog-header.component';
4
+ import { DialogBase } from './base/dialog-base.class';
6
5
  import { DialogBodyComponent } from './dialog-body/dialog-body.component';
7
6
  import { DialogFooterComponent } from './dialog-footer/dialog-footer.component';
8
- import { DialogRef } from './utils/dialog-ref.class';
9
- import { DialogBase } from './base/dialog-base.class';
7
+ import { DialogHeaderComponent } from './dialog-header/dialog-header.component';
10
8
  import { DialogTitleDirective } from './directives/dialog-title.directive';
9
+ import { DialogConfig } from './utils/dialog-config.class';
10
+ import { DialogRef } from './utils/dialog-ref.class';
11
11
  import * as i0 from "@angular/core";
12
12
  /**
13
13
  * Dialog component.
@@ -20,7 +20,7 @@ import * as i0 from "@angular/core";
20
20
  * </fd-dialog>
21
21
  * ```
22
22
  */
23
- export declare class DialogComponent extends DialogBase implements OnInit, OnChanges, AfterViewInit, OnDestroy, CssClassBuilder {
23
+ export declare class DialogComponent extends DialogBase<DialogRef> implements OnInit, OnChanges, AfterViewInit, OnDestroy, CssClassBuilder {
24
24
  dialogConfig: DialogConfig;
25
25
  private _dialogRef;
26
26
  /** Custom classes */
@@ -46,6 +46,11 @@ export declare class DialogComponent extends DialogBase implements OnInit, OnCha
46
46
  showDialogWindow: boolean;
47
47
  /** @hidden Whenever dialog is dragged */
48
48
  isDragged: boolean;
49
+ /**
50
+ * @hidden
51
+ * Whether the Dialog in full-screen mode.
52
+ */
53
+ _fullScreen: boolean;
49
54
  /** @hidden */
50
55
  private _class;
51
56
  /** @hidden */
@@ -66,8 +71,10 @@ export declare class DialogComponent extends DialogBase implements OnInit, OnCha
66
71
  ngOnDestroy(): void;
67
72
  /** @hidden */
68
73
  buildComponentCssClass(): string[];
74
+ /** @hidden */
75
+ private _listenOnFullScreen;
69
76
  /** @hidden Listen on Dialog visibility */
70
77
  private _listenOnHidden;
71
78
  static ɵfac: i0.ɵɵFactoryDeclaration<DialogComponent, [{ optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, null, null, null]>;
72
- static ɵcmp: i0.ɵɵComponentDeclaration<DialogComponent, "fd-dialog", never, { "class": { "alias": "class"; "required": false; }; "embeddedDialogRef": { "alias": "dialogRef"; "required": false; }; "embeddedDialogConfig": { "alias": "dialogConfig"; "required": false; }; }, {}, ["dialogHeaderConfig", "dialogBodyConfig", "dialogFooterConfig", "dialogTitle"], ["fd-dialog-header", "fd-dialog-body", "fd-dialog-footer"], false, never, false>;
79
+ static ɵcmp: i0.ɵɵComponentDeclaration<DialogComponent, "fd-dialog", never, { "class": { "alias": "class"; "required": false; }; "embeddedDialogRef": { "alias": "dialogRef"; "required": false; }; "embeddedDialogConfig": { "alias": "dialogConfig"; "required": false; }; }, {}, ["dialogHeaderConfig", "dialogBodyConfig", "dialogFooterConfig", "dialogTitle"], ["fd-dialog-header", "fd-dialog-body", "fd-dialog-footer"], true, never, false>;
73
80
  }
@@ -7,20 +7,25 @@ import * as i5 from "./dialog-default/dialog-default.component";
7
7
  import * as i6 from "./dialog-container/dialog-container.component";
8
8
  import * as i7 from "./dialog-close-button/dialog-close-button.component";
9
9
  import * as i8 from "./directives/dialog-title.directive";
10
- import * as i9 from "@fundamental-ngx/core/bar";
11
- import * as i10 from "@fundamental-ngx/core/icon";
12
- import * as i11 from "@fundamental-ngx/core/title";
13
- import * as i12 from "@angular/common";
14
- import * as i13 from "@fundamental-ngx/core/button";
15
- import * as i14 from "@fundamental-ngx/cdk/utils";
16
- import * as i15 from "@angular/cdk/drag-drop";
17
- import * as i16 from "@fundamental-ngx/core/busy-indicator";
18
- import * as i17 from "@angular/cdk/a11y";
19
- import * as i18 from "@fundamental-ngx/core/scrollbar";
20
- import * as i19 from "@angular/cdk/portal";
21
- import * as i20 from "@angular/cdk/overlay";
10
+ import * as i9 from "./dialog-full-screen-toggler-button/dialog-full-screen-toggler-button.component";
11
+ import * as i10 from "@fundamental-ngx/cdk/utils";
12
+ import * as i11 from "@fundamental-ngx/core/bar";
13
+ import * as i12 from "@fundamental-ngx/core/title";
14
+ /**
15
+ * @deprecated
16
+ * Use following imports instead:
17
+ * `DialogComponent`,
18
+ * `DialogBodyComponent`,
19
+ * `DialogFooterComponent`,
20
+ * `DialogHeaderComponent`,
21
+ * `DialogCloseButtonComponent`,
22
+ * `DialogTitleDirective`,
23
+ * `DialogFullScreenTogglerButtonComponent`
24
+ *
25
+ * in order to provide dialog service, use `provideDialogService()`
26
+ */
22
27
  export declare class DialogModule {
23
28
  static ɵfac: i0.ɵɵFactoryDeclaration<DialogModule, never>;
24
- static ɵmod: i0.ɵɵNgModuleDeclaration<DialogModule, [typeof i1.DialogComponent, typeof i2.DialogBodyComponent, typeof i3.DialogFooterComponent, typeof i4.DialogHeaderComponent, typeof i5.DialogDefaultComponent, typeof i6.DialogContainerComponent, typeof i7.DialogCloseButtonComponent, typeof i8.DialogTitleDirective], [typeof i9.BarModule, typeof i10.IconModule, typeof i11.TitleModule, typeof i12.CommonModule, typeof i13.ButtonModule, typeof i14.ResizeModule, typeof i14.TemplateModule, typeof i15.DragDropModule, typeof i14.InitialFocusModule, typeof i16.BusyIndicatorModule, typeof i17.A11yModule, typeof i18.ScrollbarModule, typeof i19.PortalModule, typeof i20.OverlayModule, typeof i14.DynamicPortalComponent], [typeof i1.DialogComponent, typeof i2.DialogBodyComponent, typeof i3.DialogFooterComponent, typeof i4.DialogHeaderComponent, typeof i5.DialogDefaultComponent, typeof i6.DialogContainerComponent, typeof i7.DialogCloseButtonComponent, typeof i8.DialogTitleDirective, typeof i9.BarModule, typeof i11.TitleModule, typeof i14.TemplateModule, typeof i14.InitialFocusModule]>;
29
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DialogModule, never, [typeof i1.DialogComponent, typeof i2.DialogBodyComponent, typeof i3.DialogFooterComponent, typeof i4.DialogHeaderComponent, typeof i5.DialogDefaultComponent, typeof i6.DialogContainerComponent, typeof i7.DialogCloseButtonComponent, typeof i8.DialogTitleDirective, typeof i9.DialogFullScreenTogglerButtonComponent, typeof i10.TemplateModule, typeof i11.BarModule, typeof i12.TitleComponent], [typeof i1.DialogComponent, typeof i2.DialogBodyComponent, typeof i3.DialogFooterComponent, typeof i4.DialogHeaderComponent, typeof i5.DialogDefaultComponent, typeof i6.DialogContainerComponent, typeof i7.DialogCloseButtonComponent, typeof i8.DialogTitleDirective, typeof i9.DialogFullScreenTogglerButtonComponent, typeof i10.TemplateModule, typeof i11.BarModule, typeof i12.TitleComponent]>;
25
30
  static ɵinj: i0.ɵɵInjectorDeclaration<DialogModule>;
26
31
  }
@@ -10,5 +10,5 @@ export declare class DialogTitleDirective implements AfterViewInit {
10
10
  /** @hidden */
11
11
  ngAfterViewInit(): void;
12
12
  static ɵfac: i0.ɵɵFactoryDeclaration<DialogTitleDirective, [{ optional: true; }]>;
13
- static ɵdir: i0.ɵɵDirectiveDeclaration<DialogTitleDirective, "[fd-dialog-title]", never, { "id": { "alias": "id"; "required": false; }; }, {}, never, never, false, never, false>;
13
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DialogTitleDirective, "[fd-dialog-title]", never, { "id": { "alias": "id"; "required": false; }; }, {}, never, never, true, never, false>;
14
14
  }
package/dialog/index.d.ts CHANGED
@@ -24,3 +24,5 @@ export * from './utils/dialog.animations';
24
24
  export * from './dialog.types';
25
25
  export * from './tokens';
26
26
  export * from './utils/dialog-overlay.container';
27
+ export * from './dialog-full-screen-toggler-button/dialog-full-screen-toggler-button.component';
28
+ export * from './provide-dialog-service';
@@ -0,0 +1,6 @@
1
+ import { Provider } from '@angular/core';
2
+ /**
3
+ * Provides necessary services for dialog functionality to properly work.
4
+ * @returns Array of Providers.
5
+ */
6
+ export declare function provideDialogService(): Provider[];
@@ -5,4 +5,10 @@ export declare class DialogDefaultContent extends DialogContentBase {
5
5
  content?: TemplateRef<any>;
6
6
  /** Subheader Body */
7
7
  subHeader?: TemplateRef<any>;
8
+ /** Whether to allow dialog to be opened in full screen mode. */
9
+ allowFullScreen?: boolean;
10
+ /** Full screen button text when dialog is not in full-screen mode. */
11
+ fullScreenExpandButtonText?: string;
12
+ /** Full screen button text when dialog is in full-screen mode. */
13
+ fullScreenMinifyButtonText?: string;
8
14
  }
@@ -1,5 +1,5 @@
1
- import { Observable } from 'rxjs';
2
1
  import { TemplateRef, Type } from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
3
  import { DialogRefBase } from '../base/dialog-ref-base.class';
4
4
  import * as i0 from "@angular/core";
5
5
  export interface DialogRefLoadingConfiguration {
@@ -17,10 +17,14 @@ export declare class DialogRef<T = any, P = any> extends DialogRefBase<T, P> imp
17
17
  private readonly _onHide;
18
18
  /** @hidden */
19
19
  private readonly _onLoading;
20
+ /** @hidden */
21
+ private readonly _fullScreen;
20
22
  /** Observable that is triggered whenever the dialog should be visually hidden or visible.*/
21
23
  onHide: Observable<boolean>;
22
24
  /** Observable that is triggered whenever the dialog should be displayed in loading state.*/
23
25
  onLoading: Observable<boolean>;
26
+ /** Observable that is triggered whenever the full-screen state being changed. */
27
+ fullScreen: Observable<boolean>;
24
28
  /** Value used to determine if dialog window should be hidden or visible. */
25
29
  isLoading: boolean;
26
30
  /** Text, that is rendered in loading state */
@@ -37,6 +41,10 @@ export declare class DialogRef<T = any, P = any> extends DialogRefBase<T, P> imp
37
41
  * @param loadingData Value used to determine if dialog window should be displayed in loading state.
38
42
  */
39
43
  loading(loadingData: boolean | DialogRefLoadingConfiguration): void;
44
+ /**
45
+ * Toggles full-screen mode of the Dialog.
46
+ */
47
+ toggleFullScreen(): void;
40
48
  static ɵfac: i0.ɵɵFactoryDeclaration<DialogRef<any, any>, never>;
41
49
  static ɵprov: i0.ɵɵInjectableDeclaration<DialogRef<any, any>>;
42
50
  }
@@ -13,9 +13,9 @@ import { asyncScheduler } from 'rxjs';
13
13
  import { COMBOBOX_COMPONENT } from '../combobox.interface';
14
14
  import * as i0 from "@angular/core";
15
15
  import * as i1 from "@fundamental-ngx/core/dialog";
16
- import * as i2 from "@fundamental-ngx/core/bar";
17
- import * as i3 from "@fundamental-ngx/core/title";
18
- import * as i4 from "@fundamental-ngx/cdk/utils";
16
+ import * as i2 from "@fundamental-ngx/cdk/utils";
17
+ import * as i3 from "@fundamental-ngx/core/bar";
18
+ import * as i4 from "@fundamental-ngx/core/title";
19
19
  export class ComboboxMobileComponent extends MobileModeBase {
20
20
  /** @hidden */
21
21
  constructor(elementRef, dialogService, comboboxComponent, mobileModes) {
@@ -96,7 +96,7 @@ export class ComboboxMobileComponent extends MobileModeBase {
96
96
  });
97
97
  }
98
98
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ComboboxMobileComponent, deps: [{ token: i0.ElementRef }, { token: i1.DialogService }, { token: COMBOBOX_COMPONENT }, { token: MOBILE_MODE_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
99
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: ComboboxMobileComponent, isStandalone: true, selector: "fd-combobox-mobile", viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 fd-title *ngIf=\"mobileConfig?.title\">{{ mobileConfig.title }}</h1>\n <button\n title=\"Close\"\n fd-dialog-close-button\n *ngIf=\"mobileConfig?.hasCloseButton\"\n [mobile]=\"true\"\n (click)=\"handleDismiss()\"\n ></button>\n <ng-template fdkTemplate=\"subheader\">\n <div fd-bar-middle>\n <fd-bar-element [fullWidth]=\"true\">\n <ng-container *ngTemplateOutlet=\"childContent?.controlTemplate || null\"></ng-container>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <ng-container *ngTemplateOutlet=\"childContent?.listTemplate || null\"></ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n *ngIf=\"mobileConfig?.approveButtonText\"\n fdType=\"emphasized\"\n [label]=\"mobileConfig.approveButtonText!\"\n (click)=\"handleApprove()\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"mobileConfig?.cancelButtonText\"\n fdkInitialFocus\n [label]=\"mobileConfig.cancelButtonText!\"\n (click)=\"handleDismiss()\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: DialogModule }, { kind: "component", type: i1.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i1.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i1.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i1.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i1.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title"] }, { kind: "directive", type: i2.BarMiddleDirective, selector: "[fd-bar-middle]" }, { kind: "directive", type: i2.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i2.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: i3.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i4.TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "directive", type: i4.InitialFocusDirective, selector: "[fdkInitialFocus]", inputs: ["fdkInitialFocus", "enabled", "focusLastElement"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: BarModule }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
99
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: ComboboxMobileComponent, isStandalone: true, selector: "fd-combobox-mobile", viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 fd-title *ngIf=\"mobileConfig?.title\">{{ mobileConfig.title }}</h1>\n <button\n title=\"Close\"\n fd-dialog-close-button\n *ngIf=\"mobileConfig?.hasCloseButton\"\n [mobile]=\"true\"\n (click)=\"handleDismiss()\"\n ></button>\n <ng-template fdkTemplate=\"subheader\">\n <div fd-bar-middle>\n <fd-bar-element [fullWidth]=\"true\">\n <ng-container *ngTemplateOutlet=\"childContent?.controlTemplate || null\"></ng-container>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <ng-container *ngTemplateOutlet=\"childContent?.listTemplate || null\"></ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n *ngIf=\"mobileConfig?.approveButtonText\"\n fdType=\"emphasized\"\n [label]=\"mobileConfig.approveButtonText!\"\n (click)=\"handleApprove()\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"mobileConfig?.cancelButtonText\"\n fdkInitialFocus\n [label]=\"mobileConfig.cancelButtonText!\"\n (click)=\"handleDismiss()\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: DialogModule }, { kind: "component", type: i1.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i1.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i1.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i1.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i1.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title"] }, { kind: "directive", type: i2.TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "directive", type: i3.BarMiddleDirective, selector: "[fd-bar-middle]" }, { kind: "directive", type: i3.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i3.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: i4.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: BarModule }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: InitialFocusDirective, selector: "[fdkInitialFocus]", inputs: ["fdkInitialFocus", "enabled", "focusLastElement"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
100
100
  }
101
101
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ComboboxMobileComponent, decorators: [{
102
102
  type: Component,
@@ -123,4 +123,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
123
123
  type: ViewChild,
124
124
  args: ['dialogTemplate']
125
125
  }] } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3gtbW9iaWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2NvbWJvYm94L2NvbWJvYm94LW1vYmlsZS9jb21ib2JveC1tb2JpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY29tYm9ib3gvY29tYm9ib3gtbW9iaWxlL2NvbWJvYm94LW1vYmlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLFNBQVMsRUFHVCxRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUNILGtCQUFrQixFQUNsQixjQUFjLEVBRWQsaUJBQWlCLEVBQ3BCLE1BQU0sbUNBQW1DLENBQUM7QUFFM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxrQkFBa0IsRUFBcUIsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7O0FBb0I5RSxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsY0FBaUM7SUFlMUUsY0FBYztJQUNkLFlBQ0ksVUFBc0IsRUFDdEIsYUFBNEIsRUFDQSxpQkFBb0MsRUFDeEIsV0FBb0M7UUFFNUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBbEJqRzs7Ozs7V0FLRztRQUNILGlCQUFZLEdBQWlGLElBQUksQ0FBQztJQWFsRyxDQUFDO0lBRUQsY0FBYztJQUNkLFFBQVE7UUFDSixJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsY0FBYztJQUNkLFdBQVc7UUFDUCxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGNBQWM7SUFDZCxhQUFhO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELGNBQWM7SUFDZCxhQUFhO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxjQUFjO0lBQ04sYUFBYSxDQUFDLElBQWE7UUFDL0IsSUFBSSxJQUFJLEVBQUU7WUFDTixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFLEVBQUU7Z0JBQ3ZDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNoQjtTQUNKO0lBQ0wsQ0FBQztJQUVELGNBQWM7SUFDTiw2QkFBNkI7UUFDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNuSCxDQUFDO0lBRUQsY0FBYztJQUNOLEtBQUs7UUFDVCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDM0QsTUFBTSxFQUFFLElBQUk7WUFDWixHQUFHLElBQUksQ0FBQyxZQUFZO1lBQ3BCLHNCQUFzQixFQUFFLEtBQUs7WUFDN0IsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYTtZQUN6QyxlQUFlLEVBQUUsSUFBSTtTQUN4QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztRQUVwQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUM7WUFDaEQsS0FBSyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxJQUFJLEtBQUssUUFBUSxFQUFFO29CQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7b0JBQ3BELE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztpQkFDeEI7WUFDTCxDQUFDO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGNBQWM7SUFDTiw0QkFBNEI7UUFDaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXO2FBQ3JCLElBQUksQ0FDRCxTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUUsNEJBQTRCO1FBQ3ZELFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQzlCO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUk7Z0JBQ0EsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLHVDQUF1QyxDQUFDLENBQUM7Z0JBQ3BHLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNqQjtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNaLElBQUksU0FBUyxFQUFFLEVBQUU7b0JBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyx1Q0FBdUMsRUFBRSxLQUFLLENBQUMsQ0FBQztpQkFDakU7YUFDSjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs4R0FyR1EsdUJBQXVCLHlFQW1CcEIsa0JBQWtCLGFBQ04sa0JBQWtCO2tHQXBCakMsdUJBQXVCLHVOQ25EcEMsZ3FEQTBDQSwyQ0RGUSxZQUFZLHl5Q0FDWixJQUFJLDRGQUdKLFNBQVMsK0JBQ1QsZ0JBQWdCOzsyRkFNWCx1QkFBdUI7a0JBbEJuQyxTQUFTOytCQUNJLG9CQUFvQixtQkFFYix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGNBQ3pCLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLElBQUk7d0JBQ0osY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLFNBQVM7d0JBQ1QsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIscUJBQXFCO3FCQUN4Qjs7MEJBcUJJLE1BQU07MkJBQUMsa0JBQWtCOzswQkFDekIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxrQkFBa0I7NENBbEJiLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgaXNEZXZNb2RlLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgb2JzZXJ2ZU9uLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGlhbG9nJztcbmltcG9ydCB7XG4gICAgTU9CSUxFX01PREVfQ09ORklHLFxuICAgIE1vYmlsZU1vZGVCYXNlLFxuICAgIE1vYmlsZU1vZGVDb25maWdUb2tlbixcbiAgICBNb2JpbGVNb2RlQ29udHJvbFxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbW9iaWxlLW1vZGUnO1xuXG5pbXBvcnQgeyBDZGtTY3JvbGxhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbml0aWFsRm9jdXNEaXJlY3RpdmUsIFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQmFyTW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Jhcic7XG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGlhbG9nJztcbmltcG9ydCB7IFNjcm9sbGJhckRpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zY3JvbGxiYXInO1xuaW1wb3J0IHsgVGl0bGVDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdGl0bGUnO1xuaW1wb3J0IHsgYXN5bmNTY2hlZHVsZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENPTUJPQk9YX0NPTVBPTkVOVCwgQ29tYm9ib3hJbnRlcmZhY2UgfSBmcm9tICcuLi9jb21ib2JveC5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLWNvbWJvYm94LW1vYmlsZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbWJvYm94LW1vYmlsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgRGlhbG9nTW9kdWxlLFxuICAgICAgICBOZ0lmLFxuICAgICAgICBUaXRsZUNvbXBvbmVudCxcbiAgICAgICAgVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgICAgIEJhck1vZHVsZSxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgQ2RrU2Nyb2xsYWJsZSxcbiAgICAgICAgU2Nyb2xsYmFyRGlyZWN0aXZlLFxuICAgICAgICBJbml0aWFsRm9jdXNEaXJlY3RpdmVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIENvbWJvYm94TW9iaWxlQ29tcG9uZW50IGV4dGVuZHMgTW9iaWxlTW9kZUJhc2U8Q29tYm9ib3hJbnRlcmZhY2U+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnZGlhbG9nVGVtcGxhdGUnKSBkaWFsb2dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBGb3IgaW50ZXJuYWwgdXNhZ2VcbiAgICAgKiBDb250cm9sIGVsZW1lbnQsIHdoaWNoIHdpbGwgYmUgcmVuZGVyZWQgaW5zaWRlIGRpYWxvZy5cbiAgICAgKiBMaXN0IGVsZW1lbnQsIHdoaWNoIHdpbGwgYmUgcmVuZGVyZWQgaW5zaWRlIGRpYWxvZy5cbiAgICAgKi9cbiAgICBjaGlsZENvbnRlbnQ6IHsgbGlzdFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+OyBjb250cm9sVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfSB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZWxlY3RlZEJhY2t1cDogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcbiAgICAgICAgQEluamVjdChDT01CT0JPWF9DT01QT05FTlQpIGNvbWJvYm94Q29tcG9uZW50OiBDb21ib2JveEludGVyZmFjZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChNT0JJTEVfTU9ERV9DT05GSUcpIG1vYmlsZU1vZGVzOiBNb2JpbGVNb2RlQ29uZmlnVG9rZW5bXVxuICAgICkge1xuICAgICAgICBzdXBlcihlbGVtZW50UmVmLCBkaWFsb2dTZXJ2aWNlLCBjb21ib2JveENvbXBvbmVudCwgTW9iaWxlTW9kZUNvbnRyb2wuQ09NQk9CT1gsIG1vYmlsZU1vZGVzKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9saXN0ZW5Pbk11bHRpSW5wdXRPcGVuQ2hhbmdlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIub25EZXN0cm95KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBoYW5kbGVEaXNtaXNzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5kaXNtaXNzKCk7XG4gICAgICAgIHRoaXMuX2NvbXBvbmVudC5kaWFsb2dEaXNtaXNzKHRoaXMuX3NlbGVjdGVkQmFja3VwKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGhhbmRsZUFwcHJvdmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgICAgIHRoaXMuX2NvbXBvbmVudC5kaWFsb2dBcHByb3ZlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90b2dnbGVEaWFsb2cob3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAob3Blbikge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRCYWNrdXAgPSB0aGlzLl9jb21wb25lbnQuZ2V0VmFsdWUoKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5fZGlhbG9nU2VydmljZS5oYXNPcGVuRGlhbG9ncygpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fb3BlbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Pbk11bHRpSW5wdXRPcGVuQ2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jb21wb25lbnQub3BlbkNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChpc09wZW4pID0+IHRoaXMuX3RvZ2dsZURpYWxvZyhpc09wZW4pKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX29wZW4oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKHRoaXMuZGlhbG9nVGVtcGxhdGUsIHtcbiAgICAgICAgICAgIG1vYmlsZTogdHJ1ZSxcbiAgICAgICAgICAgIC4uLnRoaXMuZGlhbG9nQ29uZmlnLFxuICAgICAgICAgICAgYmFja2Ryb3BDbGlja0Nsb3NlYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBjb250YWluZXI6IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIGRpc2FibGVQYWRkaW5nczogdHJ1ZVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9mb2N1c0lucHV0RWxlbWVudE9uY2VPcGVuZWQoKTtcblxuICAgICAgICBjb25zdCByZWZTdWIgPSB0aGlzLmRpYWxvZ1JlZi5hZnRlckNsb3NlZC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgZXJyb3I6ICh0eXBlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdlc2NhcGUnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudC5kaWFsb2dEaXNtaXNzKHRoaXMuX3NlbGVjdGVkQmFja3VwKTtcbiAgICAgICAgICAgICAgICAgICAgcmVmU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2ZvY3VzSW5wdXRFbGVtZW50T25jZU9wZW5lZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuYWZ0ZXJMb2FkZWRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG9ic2VydmVPbihhc3luY1NjaGVkdWxlciksIC8vIG1ha2luZyB0aGUgbGlzdGVuZXIgYXN5bmNcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2ZkLWlucHV0LWdyb3VwIGlucHV0W3JvbGU9XCJjb21ib2JveFwiXScpO1xuICAgICAgICAgICAgICAgICAgICBpbnB1dC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGZvY3VzIGNvbWJvYm94IHNlYXJjaCBpbnB1dCcsIGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSBsZXQtZGlhbG9nIGxldC1kaWFsb2dDb25maWc9XCJkaWFsb2dDb25maWdcIiAjZGlhbG9nVGVtcGxhdGU+XG4gICAgPGZkLWRpYWxvZyBbZGlhbG9nQ29uZmlnXT1cImRpYWxvZ0NvbmZpZ1wiIFtkaWFsb2dSZWZdPVwiZGlhbG9nXCI+XG4gICAgICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxuICAgICAgICAgICAgPGgxIGZkLXRpdGxlICpuZ0lmPVwibW9iaWxlQ29uZmlnPy50aXRsZVwiPnt7IG1vYmlsZUNvbmZpZy50aXRsZSB9fTwvaDE+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJDbG9zZVwiXG4gICAgICAgICAgICAgICAgZmQtZGlhbG9nLWNsb3NlLWJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwibW9iaWxlQ29uZmlnPy5oYXNDbG9zZUJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW21vYmlsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlRGlzbWlzcygpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBmZGtUZW1wbGF0ZT1cInN1YmhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLW1pZGRsZT5cbiAgICAgICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50IFtmdWxsV2lkdGhdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNoaWxkQ29udGVudD8uY29udHJvbFRlbXBsYXRlIHx8IG51bGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9mZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZmQtZGlhbG9nLWhlYWRlcj5cblxuICAgICAgICA8ZmQtZGlhbG9nLWJvZHk+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2hpbGRDb250ZW50Py5saXN0VGVtcGxhdGUgfHwgbnVsbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2ZkLWRpYWxvZy1ib2R5PlxuXG4gICAgICAgIDxmZC1kaWFsb2ctZm9vdGVyPlxuICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIm1vYmlsZUNvbmZpZz8uYXBwcm92ZUJ1dHRvblRleHRcIlxuICAgICAgICAgICAgICAgIGZkVHlwZT1cImVtcGhhc2l6ZWRcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJtb2JpbGVDb25maWcuYXBwcm92ZUJ1dHRvblRleHQhXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQXBwcm92ZSgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJtb2JpbGVDb25maWc/LmNhbmNlbEJ1dHRvblRleHRcIlxuICAgICAgICAgICAgICAgIGZka0luaXRpYWxGb2N1c1xuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJtb2JpbGVDb25maWcuY2FuY2VsQnV0dG9uVGV4dCFcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVEaXNtaXNzKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9mZC1idXR0b24tYmFyPlxuICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XG4gICAgPC9mZC1kaWFsb2c+XG48L25nLXRlbXBsYXRlPlxuIl19
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3gtbW9iaWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2NvbWJvYm94L2NvbWJvYm94LW1vYmlsZS9jb21ib2JveC1tb2JpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY29tYm9ib3gvY29tYm9ib3gtbW9iaWxlL2NvbWJvYm94LW1vYmlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLFNBQVMsRUFHVCxRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUNILGtCQUFrQixFQUNsQixjQUFjLEVBRWQsaUJBQWlCLEVBQ3BCLE1BQU0sbUNBQW1DLENBQUM7QUFFM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFB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U0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUk7Z0JBQ0EsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLHVDQUF1QyxDQUFDLENBQUM7Z0JBQ3BHLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNqQjtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNaLElBQUksU0FBUyxFQUFFLEVBQUU7b0JBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyx1Q0FBdUMsRUFBRSxLQUFLLENBQUMsQ0FBQztpQkFDakU7YUFDSjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs4R0FyR1EsdUJBQXVCLHlFQW1CcEIsa0JBQWtCLGFBQ04sa0JBQWtCO2tHQXBCakMsdUJBQXVCLHVOQ25EcEMsZ3FEQTBDQSwyQ0RGUSxZQUFZLHVwQ0FDWixJQUFJLDRGQUdKLFNBQVMsK0JBQ1QsZ0JBQWdCLG9KQUdoQixxQkFBcUI7OzJGQUdoQix1QkFBdUI7a0JBbEJuQyxTQUFTOytCQUNJLG9CQUFvQixtQkFFYix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGNBQ3pCLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLElBQUk7d0JBQ0osY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLFNBQVM7d0JBQ1QsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIscUJBQXFCO3FCQUN4Qjs7MEJBcUJJLE1BQU07MkJBQUMsa0JBQWtCOzswQkFDekIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxrQkFBa0I7NENBbEJiLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgaXNEZXZNb2RlLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgb2JzZXJ2ZU9uLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGlhbG9nJztcbmltcG9ydCB7XG4gICAgTU9CSUxFX01PREVfQ09ORklHLFxuICAgIE1vYmlsZU1vZGVCYXNlLFxuICAgIE1vYmlsZU1vZGVDb25maWdUb2tlbixcbiAgICBNb2JpbGVNb2RlQ29udHJvbFxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbW9iaWxlLW1vZGUnO1xuXG5pbXBvcnQgeyBDZGtTY3JvbGxhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbml0aWFsRm9jdXNEaXJlY3RpdmUsIFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQmFyTW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Jhcic7XG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGlhbG9nJztcbmltcG9ydCB7IFNjcm9sbGJhckRpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zY3JvbGxiYXInO1xuaW1wb3J0IHsgVGl0bGVDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdGl0bGUnO1xuaW1wb3J0IHsgYXN5bmNTY2hlZHVsZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENPTUJPQk9YX0NPTVBPTkVOVCwgQ29tYm9ib3hJbnRlcmZhY2UgfSBmcm9tICcuLi9jb21ib2JveC5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLWNvbWJvYm94LW1vYmlsZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbWJvYm94LW1vYmlsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgRGlhbG9nTW9kdWxlLFxuICAgICAgICBOZ0lmLFxuICAgICAgICBUaXRsZUNvbXBvbmVudCxcbiAgICAgICAgVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgICAgIEJhck1vZHVsZSxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgQ2RrU2Nyb2xsYWJsZSxcbiAgICAgICAgU2Nyb2xsYmFyRGlyZWN0aXZlLFxuICAgICAgICBJbml0aWFsRm9jdXNEaXJlY3RpdmVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIENvbWJvYm94TW9iaWxlQ29tcG9uZW50IGV4dGVuZHMgTW9iaWxlTW9kZUJhc2U8Q29tYm9ib3hJbnRlcmZhY2U+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnZGlhbG9nVGVtcGxhdGUnKSBkaWFsb2dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBGb3IgaW50ZXJuYWwgdXNhZ2VcbiAgICAgKiBDb250cm9sIGVsZW1lbnQsIHdoaWNoIHdpbGwgYmUgcmVuZGVyZWQgaW5zaWRlIGRpYWxvZy5cbiAgICAgKiBMaXN0IGVsZW1lbnQsIHdoaWNoIHdpbGwgYmUgcmVuZGVyZWQgaW5zaWRlIGRpYWxvZy5cbiAgICAgKi9cbiAgICBjaGlsZENvbnRlbnQ6IHsgbGlzdFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+OyBjb250cm9sVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfSB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZWxlY3RlZEJhY2t1cDogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcbiAgICAgICAgQEluamVjdChDT01CT0JPWF9DT01QT05FTlQpIGNvbWJvYm94Q29tcG9uZW50OiBDb21ib2JveEludGVyZmFjZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChNT0JJTEVfTU9ERV9DT05GSUcpIG1vYmlsZU1vZGVzOiBNb2JpbGVNb2RlQ29uZmlnVG9rZW5bXVxuICAgICkge1xuICAgICAgICBzdXBlcihlbGVtZW50UmVmLCBkaWFsb2dTZXJ2aWNlLCBjb21ib2JveENvbXBvbmVudCwgTW9iaWxlTW9kZUNvbnRyb2wuQ09NQk9CT1gsIG1vYmlsZU1vZGVzKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9saXN0ZW5Pbk11bHRpSW5wdXRPcGVuQ2hhbmdlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIub25EZXN0cm95KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBoYW5kbGVEaXNtaXNzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5kaXNtaXNzKCk7XG4gICAgICAgIHRoaXMuX2NvbXBvbmVudC5kaWFsb2dEaXNtaXNzKHRoaXMuX3NlbGVjdGVkQmFja3VwKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGhhbmRsZUFwcHJvdmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgICAgIHRoaXMuX2NvbXBvbmVudC5kaWFsb2dBcHByb3ZlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90b2dnbGVEaWFsb2cob3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAob3Blbikge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRCYWNrdXAgPSB0aGlzLl9jb21wb25lbnQuZ2V0VmFsdWUoKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5fZGlhbG9nU2VydmljZS5oYXNPcGVuRGlhbG9ncygpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fb3BlbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Pbk11bHRpSW5wdXRPcGVuQ2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jb21wb25lbnQub3BlbkNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChpc09wZW4pID0+IHRoaXMuX3RvZ2dsZURpYWxvZyhpc09wZW4pKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX29wZW4oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKHRoaXMuZGlhbG9nVGVtcGxhdGUsIHtcbiAgICAgICAgICAgIG1vYmlsZTogdHJ1ZSxcbiAgICAgICAgICAgIC4uLnRoaXMuZGlhbG9nQ29uZmlnLFxuICAgICAgICAgICAgYmFja2Ryb3BDbGlja0Nsb3NlYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBjb250YWluZXI6IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIGRpc2FibGVQYWRkaW5nczogdHJ1ZVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9mb2N1c0lucHV0RWxlbWVudE9uY2VPcGVuZWQoKTtcblxuICAgICAgICBjb25zdCByZWZTdWIgPSB0aGlzLmRpYWxvZ1JlZi5hZnRlckNsb3NlZC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgZXJyb3I6ICh0eXBlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdlc2NhcGUnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudC5kaWFsb2dEaXNtaXNzKHRoaXMuX3NlbGVjdGVkQmFja3VwKTtcbiAgICAgICAgICAgICAgICAgICAgcmVmU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2ZvY3VzSW5wdXRFbGVtZW50T25jZU9wZW5lZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuYWZ0ZXJMb2FkZWRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG9ic2VydmVPbihhc3luY1NjaGVkdWxlciksIC8vIG1ha2luZyB0aGUgbGlzdGVuZXIgYXN5bmNcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2ZkLWlucHV0LWdyb3VwIGlucHV0W3JvbGU9XCJjb21ib2JveFwiXScpO1xuICAgICAgICAgICAgICAgICAgICBpbnB1dC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGZvY3VzIGNvbWJvYm94IHNlYXJjaCBpbnB1dCcsIGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSBsZXQtZGlhbG9nIGxldC1kaWFsb2dDb25maWc9XCJkaWFsb2dDb25maWdcIiAjZGlhbG9nVGVtcGxhdGU+XG4gICAgPGZkLWRpYWxvZyBbZGlhbG9nQ29uZmlnXT1cImRpYWxvZ0NvbmZpZ1wiIFtkaWFsb2dSZWZdPVwiZGlhbG9nXCI+XG4gICAgICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxuICAgICAgICAgICAgPGgxIGZkLXRpdGxlICpuZ0lmPVwibW9iaWxlQ29uZmlnPy50aXRsZVwiPnt7IG1vYmlsZUNvbmZpZy50aXRsZSB9fTwvaDE+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJDbG9zZVwiXG4gICAgICAgICAgICAgICAgZmQtZGlhbG9nLWNsb3NlLWJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwibW9iaWxlQ29uZmlnPy5oYXNDbG9zZUJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW21vYmlsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlRGlzbWlzcygpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBmZGtUZW1wbGF0ZT1cInN1YmhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLW1pZGRsZT5cbiAgICAgICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50IFtmdWxsV2lkdGhdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNoaWxkQ29udGVudD8uY29udHJvbFRlbXBsYXRlIHx8IG51bGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9mZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZmQtZGlhbG9nLWhlYWRlcj5cblxuICAgICAgICA8ZmQtZGlhbG9nLWJvZHk+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2hpbGRDb250ZW50Py5saXN0VGVtcGxhdGUgfHwgbnVsbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2ZkLWRpYWxvZy1ib2R5PlxuXG4gICAgICAgIDxmZC1kaWFsb2ctZm9vdGVyPlxuICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIm1vYmlsZUNvbmZpZz8uYXBwcm92ZUJ1dHRvblRleHRcIlxuICAgICAgICAgICAgICAgIGZkVHlwZT1cImVtcGhhc2l6ZWRcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJtb2JpbGVDb25maWcuYXBwcm92ZUJ1dHRvblRleHQhXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQXBwcm92ZSgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJtb2JpbGVDb25maWc/LmNhbmNlbEJ1dHRvblRleHRcIlxuICAgICAgICAgICAgICAgIGZka0luaXRpYWxGb2N1c1xuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJtb2JpbGVDb25maWcuY2FuY2VsQnV0dG9uVGV4dCFcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVEaXNtaXNzKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9mZC1idXR0b24tYmFyPlxuICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XG4gICAgPC9mZC1kaWFsb2c+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -14,7 +14,6 @@ import * as i0 from "@angular/core";
14
14
  import * as i1 from "@fundamental-ngx/core/dialog";
15
15
  import * as i2 from "@fundamental-ngx/core/bar";
16
16
  import * as i3 from "@fundamental-ngx/core/title";
17
- import * as i4 from "@fundamental-ngx/cdk/utils";
18
17
  export class DatePickerMobileComponent extends MobileModeBase {
19
18
  /** @hidden */
20
19
  constructor(elementRef, dialogService, _destroyRef, datePickerConfig, datePickerComponent, mobileModes) {
@@ -64,7 +63,7 @@ export class DatePickerMobileComponent extends MobileModeBase {
64
63
  });
65
64
  }
66
65
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: DatePickerMobileComponent, deps: [{ token: i0.ElementRef }, { token: i1.DialogService }, { token: i0.DestroyRef }, { token: FD_DATE_PICKER_MOBILE_CONFIG }, { token: FD_DATE_PICKER_COMPONENT }, { token: MOBILE_MODE_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
67
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: DatePickerMobileComponent, isStandalone: true, selector: "fd-date-picker-mobile", viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 fd-title *ngIf=\"mobileConfig?.title\">{{ mobileConfig.title }}</h1>\n <button\n title=\"Close\"\n fd-dialog-close-button\n *ngIf=\"mobileConfig?.hasCloseButton\"\n [mobile]=\"true\"\n (click)=\"handleDismiss()\"\n ></button>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <ng-container *ngTemplateOutlet=\"datePickerConfig?.calendarTemplate || null\"></ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n *ngIf=\"mobileConfig?.approveButtonText\"\n fdType=\"emphasized\"\n [label]=\"mobileConfig.approveButtonText!\"\n (click)=\"handleApprove()\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"mobileConfig?.cancelButtonText\"\n fdkInitialFocus\n [label]=\"mobileConfig.cancelButtonText!\"\n (click)=\"handleDismiss()\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: DialogModule }, { kind: "component", type: i1.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i1.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i1.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i1.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i1.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title"] }, { kind: "component", type: i2.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: i3.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i4.InitialFocusDirective, selector: "[fdkInitialFocus]", inputs: ["fdkInitialFocus", "enabled", "focusLastElement"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TitleModule }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: BarModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
66
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: DatePickerMobileComponent, isStandalone: true, selector: "fd-date-picker-mobile", viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 fd-title *ngIf=\"mobileConfig?.title\">{{ mobileConfig.title }}</h1>\n <button\n title=\"Close\"\n fd-dialog-close-button\n *ngIf=\"mobileConfig?.hasCloseButton\"\n [mobile]=\"true\"\n (click)=\"handleDismiss()\"\n ></button>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <ng-container *ngTemplateOutlet=\"datePickerConfig?.calendarTemplate || null\"></ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n *ngIf=\"mobileConfig?.approveButtonText\"\n fdType=\"emphasized\"\n [label]=\"mobileConfig.approveButtonText!\"\n (click)=\"handleApprove()\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"mobileConfig?.cancelButtonText\"\n fdkInitialFocus\n [label]=\"mobileConfig.cancelButtonText!\"\n (click)=\"handleDismiss()\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: DialogModule }, { kind: "component", type: i1.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i1.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i1.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i1.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i1.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title"] }, { kind: "component", type: i2.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: i3.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TitleModule }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: BarModule }, { kind: "directive", type: InitialFocusDirective, selector: "[fdkInitialFocus]", inputs: ["fdkInitialFocus", "enabled", "focusLastElement"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
68
67
  }
69
68
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: DatePickerMobileComponent, decorators: [{
70
69
  type: Component,
@@ -93,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
93
92
  type: ViewChild,
94
93
  args: ['dialogTemplate']
95
94
  }] } });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItbW9iaWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLW1vYmlsZS9kYXRlLXBpY2tlci1tb2JpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXItbW9iaWxlL2RhdGUtcGlja2VyLW1vYmlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILGtCQUFrQixFQUNsQixjQUFjLEVBRWQsaUJBQWlCLEVBQ3BCLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVuRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixF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QVk7d0JBQ1osSUFBSTt3QkFDSixXQUFXO3dCQUNYLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLFNBQVM7d0JBQ1QscUJBQXFCO3FCQUN4Qjs7MEJBY0ksTUFBTTsyQkFBQyw0QkFBNEI7OzBCQUVuQyxNQUFNOzJCQUFDLHdCQUF3Qjs7MEJBQy9CLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsa0JBQWtCOzRDQWJiLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRGVzdHJveVJlZixcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBPcHRpb25hbCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIE1PQklMRV9NT0RFX0NPTkZJRyxcbiAgICBNb2JpbGVNb2RlQmFzZSxcbiAgICBNb2JpbGVNb2RlQ29uZmlnVG9rZW4sXG4gICAgTW9iaWxlTW9kZUNvbnRyb2xcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL21vYmlsZS1tb2RlJztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGlhbG9nJztcbmltcG9ydCB7IEZEX0RBVEVfUElDS0VSX0NPTVBPTkVOVCwgRkRfREFURV9QSUNLRVJfTU9CSUxFX0NPTkZJRyB9IGZyb20gJy4uL3Rva2Vucyc7XG5pbXBvcnQgeyBEYXRlUmFuZ2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY2FsZW5kYXInO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRGF0ZVBpY2tlciB9IGZyb20gJy4uL2RhdGUtcGlja2VyLm1vZGVsJztcbmltcG9ydCB7IEluaXRpYWxGb2N1c0RpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IEJhck1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9iYXInO1xuaW1wb3J0IHsgU2Nyb2xsYmFyRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3Njcm9sbGJhcic7XG5pbXBvcnQgeyBDZGtTY3JvbGxhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgVGl0bGVNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdGl0bGUnO1xuaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGlhbG9nJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1kYXRlLXBpY2tlci1tb2JpbGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXBpY2tlci1tb2JpbGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIERpYWxvZ01vZHVsZSxcbiAgICAgICAgTmdJZixcbiAgICAgICAgVGl0bGVNb2R1bGUsXG4gICAgICAgIENka1Njcm9sbGFibGUsXG4gICAgICAgIFNjcm9sbGJhckRpcmVjdGl2ZSxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgQmFyTW9kdWxlLFxuICAgICAgICBJbml0aWFsRm9jdXNEaXJlY3RpdmVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIERhdGVQaWNrZXJNb2JpbGVDb21wb25lbnQ8RD4gZXh0ZW5kcyBNb2JpbGVNb2RlQmFzZTxEYXRlUGlja2VyPEQ+PiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdkaWFsb2dUZW1wbGF0ZScpIGRpYWxvZ1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZWxlY3RlZEJhY2t1cDogRCB8IERhdGVSYW5nZTxEPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3lSZWY6IERlc3Ryb3lSZWYsXG4gICAgICAgIEBJbmplY3QoRkRfREFURV9QSUNLRVJfTU9CSUxFX0NPTkZJRylcbiAgICAgICAgcHVibGljIGRhdGVQaWNrZXJDb25maWc6IHsgY2FsZW5kYXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjsgY29udHJvbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IH0sXG4gICAgICAgIEBJbmplY3QoRkRfREFURV9QSUNLRVJfQ09NUE9ORU5UKSBkYXRlUGlja2VyQ29tcG9uZW50OiBEYXRlUGlja2VyPEQ+LFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1PQklMRV9NT0RFX0NPTkZJRykgbW9iaWxlTW9kZXM6IE1vYmlsZU1vZGVDb25maWdUb2tlbltdXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYsIGRpYWxvZ1NlcnZpY2UsIGRhdGVQaWNrZXJDb21wb25lbnQsIE1vYmlsZU1vZGVDb250cm9sLkRBVEVfUElDS0VSLCBtb2JpbGVNb2Rlcyk7XG5cbiAgICAgICAgdGhpcy5fY29tcG9uZW50LmlzT3BlbkNoYW5nZS5zdWJzY3JpYmUoKGlzT3BlbikgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdG9nZ2xlRGlhbG9nKGlzT3Blbik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaGFuZGxlQXBwcm92ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgICAgICAgdGhpcy5fY29tcG9uZW50LmRpYWxvZ0FwcHJvdmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGhhbmRsZURpc21pc3MoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmRpc21pc3MoKTtcbiAgICAgICAgdGhpcy5fY29tcG9uZW50LmRpYWxvZ0Rpc21pc3ModGhpcy5fc2VsZWN0ZWRCYWNrdXApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdG9nZ2xlRGlhbG9nKG9wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKG9wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkQmFja3VwID0gdGhpcy5fY29tcG9uZW50LnNlbGVjdGVkRGF0ZSE7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX2RpYWxvZ1NlcnZpY2UuaGFzT3BlbkRpYWxvZ3MoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX29wZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfb3BlbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4odGhpcy5kaWFsb2dUZW1wbGF0ZSwge1xuICAgICAgICAgICAgbW9iaWxlOiB0cnVlLFxuICAgICAgICAgICAgYmFja2Ryb3BDbGlja0Nsb3NlYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBkaXNhYmxlUGFkZGluZ3M6IHRydWUsXG4gICAgICAgICAgICAuLi50aGlzLmRpYWxvZ0NvbmZpZyxcbiAgICAgICAgICAgIGNvbnRhaW5lcjogdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX3NlbGVjdGVkQmFja3VwID0gdGhpcy5fY29tcG9uZW50LmdldFNlbGVjdGVkRGF0ZSgpO1xuXG4gICAgICAgIGNvbnN0IHJlZlN1YiA9IHRoaXMuZGlhbG9nUmVmLmFmdGVyQ2xvc2VkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgZXJyb3I6ICh0eXBlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdlc2NhcGUnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudC5kaWFsb2dEaXNtaXNzKHRoaXMuX3NlbGVjdGVkQmFja3VwKTtcbiAgICAgICAgICAgICAgICAgICAgcmVmU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgbGV0LWRpYWxvZyBsZXQtZGlhbG9nQ29uZmlnPVwiZGlhbG9nQ29uZmlnXCIgI2RpYWxvZ1RlbXBsYXRlPlxuICAgIDxmZC1kaWFsb2cgW2RpYWxvZ0NvbmZpZ109XCJkaWFsb2dDb25maWdcIiBbZGlhbG9nUmVmXT1cImRpYWxvZ1wiPlxuICAgICAgICA8ZmQtZGlhbG9nLWhlYWRlcj5cbiAgICAgICAgICAgIDxoMSBmZC10aXRsZSAqbmdJZj1cIm1vYmlsZUNvbmZpZz8udGl0bGVcIj57eyBtb2JpbGVDb25maWcudGl0bGUgfX08L2gxPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHRpdGxlPVwiQ2xvc2VcIlxuICAgICAgICAgICAgICAgIGZkLWRpYWxvZy1jbG9zZS1idXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cIm1vYmlsZUNvbmZpZz8uaGFzQ2xvc2VCdXR0b25cIlxuICAgICAgICAgICAgICAgIFttb2JpbGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZURpc21pc3MoKVwiXG4gICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDwvZmQtZGlhbG9nLWhlYWRlcj5cblxuICAgICAgICA8ZmQtZGlhbG9nLWJvZHk+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGF0ZVBpY2tlckNvbmZpZz8uY2FsZW5kYXJUZW1wbGF0ZSB8fCBudWxsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZmQtZGlhbG9nLWJvZHk+XG5cbiAgICAgICAgPGZkLWRpYWxvZy1mb290ZXI+XG4gICAgICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgICAgICpuZ0lmPVwibW9iaWxlQ29uZmlnPy5hcHByb3ZlQnV0dG9uVGV4dFwiXG4gICAgICAgICAgICAgICAgZmRUeXBlPVwiZW1waGFzaXplZFwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIm1vYmlsZUNvbmZpZy5hcHByb3ZlQnV0dG9uVGV4dCFcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVBcHByb3ZlKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9mZC1idXR0b24tYmFyPlxuICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIm1vYmlsZUNvbmZpZz8uY2FuY2VsQnV0dG9uVGV4dFwiXG4gICAgICAgICAgICAgICAgZmRrSW5pdGlhbEZvY3VzXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIm1vYmlsZUNvbmZpZy5jYW5jZWxCdXR0b25UZXh0IVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZURpc21pc3MoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgIDwvZmQtZGlhbG9nLWZvb3Rlcj5cbiAgICA8L2ZkLWRpYWxvZz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItbW9iaWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLW1vYmlsZS9kYXRlLXBpY2tlci1tb2JpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXItbW9iaWxlL2RhdGUtcGlja2VyLW1vYmlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILGtCQUFrQixFQUNsQixjQUFjLEVBRWQsaUJBQWlCLEVBQ3BCLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVuRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixF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V0FDUDt3QkFDTCxZQUFZO3dCQUNaLElBQUk7d0JBQ0osV0FBVzt3QkFDWCxhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixTQUFTO3dCQUNULHFCQUFxQjtxQkFDeEI7OzBCQWNJLE1BQU07MkJBQUMsNEJBQTRCOzswQkFFbkMsTUFBTTsyQkFBQyx3QkFBd0I7OzBCQUMvQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGtCQUFrQjs0Q0FiYixjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgT3B0aW9uYWwsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBNT0JJTEVfTU9ERV9DT05GSUcsXG4gICAgTW9iaWxlTW9kZUJhc2UsXG4gICAgTW9iaWxlTW9kZUNvbmZpZ1Rva2VuLFxuICAgIE1vYmlsZU1vZGVDb250cm9sXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9tb2JpbGUtbW9kZSc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RpYWxvZyc7XG5pbXBvcnQgeyBGRF9EQVRFX1BJQ0tFUl9DT01QT05FTlQsIEZEX0RBVEVfUElDS0VSX01PQklMRV9DT05GSUcgfSBmcm9tICcuLi90b2tlbnMnO1xuaW1wb3J0IHsgRGF0ZVJhbmdlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NhbGVuZGFyJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IERhdGVQaWNrZXIgfSBmcm9tICcuLi9kYXRlLXBpY2tlci5tb2RlbCc7XG5pbXBvcnQgeyBJbml0aWFsRm9jdXNEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBCYXJNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYmFyJztcbmltcG9ydCB7IFNjcm9sbGJhckRpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zY3JvbGxiYXInO1xuaW1wb3J0IHsgQ2RrU2Nyb2xsYWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRpdGxlTW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3RpdGxlJztcbmltcG9ydCB7IE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RpYWxvZyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtZGF0ZS1waWNrZXItbW9iaWxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1waWNrZXItbW9iaWxlLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBEaWFsb2dNb2R1bGUsXG4gICAgICAgIE5nSWYsXG4gICAgICAgIFRpdGxlTW9kdWxlLFxuICAgICAgICBDZGtTY3JvbGxhYmxlLFxuICAgICAgICBTY3JvbGxiYXJEaXJlY3RpdmUsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIEJhck1vZHVsZSxcbiAgICAgICAgSW5pdGlhbEZvY3VzRGlyZWN0aXZlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlUGlja2VyTW9iaWxlQ29tcG9uZW50PEQ+IGV4dGVuZHMgTW9iaWxlTW9kZUJhc2U8RGF0ZVBpY2tlcjxEPj4ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnZGlhbG9nVGVtcGxhdGUnKSBkaWFsb2dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWRCYWNrdXA6IEQgfCBEYXRlUmFuZ2U8RD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmOiBEZXN0cm95UmVmLFxuICAgICAgICBASW5qZWN0KEZEX0RBVEVfUElDS0VSX01PQklMRV9DT05GSUcpXG4gICAgICAgIHB1YmxpYyBkYXRlUGlja2VyQ29uZmlnOiB7IGNhbGVuZGFyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47IGNvbnRyb2xUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB9LFxuICAgICAgICBASW5qZWN0KEZEX0RBVEVfUElDS0VSX0NPTVBPTkVOVCkgZGF0ZVBpY2tlckNvbXBvbmVudDogRGF0ZVBpY2tlcjxEPixcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChNT0JJTEVfTU9ERV9DT05GSUcpIG1vYmlsZU1vZGVzOiBNb2JpbGVNb2RlQ29uZmlnVG9rZW5bXVxuICAgICkge1xuICAgICAgICBzdXBlcihlbGVtZW50UmVmLCBkaWFsb2dTZXJ2aWNlLCBkYXRlUGlja2VyQ29tcG9uZW50LCBNb2JpbGVNb2RlQ29udHJvbC5EQVRFX1BJQ0tFUiwgbW9iaWxlTW9kZXMpO1xuXG4gICAgICAgIHRoaXMuX2NvbXBvbmVudC5pc09wZW5DaGFuZ2Uuc3Vic2NyaWJlKChpc09wZW4pID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3RvZ2dsZURpYWxvZyhpc09wZW4pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGhhbmRsZUFwcHJvdmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgICAgIHRoaXMuX2NvbXBvbmVudC5kaWFsb2dBcHByb3ZlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBoYW5kbGVEaXNtaXNzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5kaXNtaXNzKCk7XG4gICAgICAgIHRoaXMuX2NvbXBvbmVudC5kaWFsb2dEaXNtaXNzKHRoaXMuX3NlbGVjdGVkQmFja3VwKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RvZ2dsZURpYWxvZyhvcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChvcGVuKSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZEJhY2t1cCA9IHRoaXMuX2NvbXBvbmVudC5zZWxlY3RlZERhdGUhO1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9kaWFsb2dTZXJ2aWNlLmhhc09wZW5EaWFsb2dzKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vcGVuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX29wZW4oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKHRoaXMuZGlhbG9nVGVtcGxhdGUsIHtcbiAgICAgICAgICAgIG1vYmlsZTogdHJ1ZSxcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xpY2tDbG9zZWFibGU6IGZhbHNlLFxuICAgICAgICAgICAgZGlzYWJsZVBhZGRpbmdzOiB0cnVlLFxuICAgICAgICAgICAgLi4udGhpcy5kaWFsb2dDb25maWcsXG4gICAgICAgICAgICBjb250YWluZXI6IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9zZWxlY3RlZEJhY2t1cCA9IHRoaXMuX2NvbXBvbmVudC5nZXRTZWxlY3RlZERhdGUoKTtcblxuICAgICAgICBjb25zdCByZWZTdWIgPSB0aGlzLmRpYWxvZ1JlZi5hZnRlckNsb3NlZC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIGVycm9yOiAodHlwZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSAnZXNjYXBlJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb21wb25lbnQuZGlhbG9nRGlzbWlzcyh0aGlzLl9zZWxlY3RlZEJhY2t1cCk7XG4gICAgICAgICAgICAgICAgICAgIHJlZlN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPG5nLXRlbXBsYXRlIGxldC1kaWFsb2cgbGV0LWRpYWxvZ0NvbmZpZz1cImRpYWxvZ0NvbmZpZ1wiICNkaWFsb2dUZW1wbGF0ZT5cbiAgICA8ZmQtZGlhbG9nIFtkaWFsb2dDb25maWddPVwiZGlhbG9nQ29uZmlnXCIgW2RpYWxvZ1JlZl09XCJkaWFsb2dcIj5cbiAgICAgICAgPGZkLWRpYWxvZy1oZWFkZXI+XG4gICAgICAgICAgICA8aDEgZmQtdGl0bGUgKm5nSWY9XCJtb2JpbGVDb25maWc/LnRpdGxlXCI+e3sgbW9iaWxlQ29uZmlnLnRpdGxlIH19PC9oMT5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0aXRsZT1cIkNsb3NlXCJcbiAgICAgICAgICAgICAgICBmZC1kaWFsb2ctY2xvc2UtYnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJtb2JpbGVDb25maWc/Lmhhc0Nsb3NlQnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbbW9iaWxlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVEaXNtaXNzKClcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L2ZkLWRpYWxvZy1oZWFkZXI+XG5cbiAgICAgICAgPGZkLWRpYWxvZy1ib2R5PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRhdGVQaWNrZXJDb25maWc/LmNhbGVuZGFyVGVtcGxhdGUgfHwgbnVsbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2ZkLWRpYWxvZy1ib2R5PlxuXG4gICAgICAgIDxmZC1kaWFsb2ctZm9vdGVyPlxuICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIm1vYmlsZUNvbmZpZz8uYXBwcm92ZUJ1dHRvblRleHRcIlxuICAgICAgICAgICAgICAgIGZkVHlwZT1cImVtcGhhc2l6ZWRcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJtb2JpbGVDb25maWcuYXBwcm92ZUJ1dHRvblRleHQhXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQXBwcm92ZSgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJtb2JpbGVDb25maWc/LmNhbmNlbEJ1dHRvblRleHRcIlxuICAgICAgICAgICAgICAgIGZka0luaXRpYWxGb2N1c1xuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJtb2JpbGVDb25maWcuY2FuY2VsQnV0dG9uVGV4dCFcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVEaXNtaXNzKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9mZC1idXR0b24tYmFyPlxuICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XG4gICAgPC9mZC1kaWFsb2c+XG48L25nLXRlbXBsYXRlPlxuIl19