@fundamental-ngx/core 0.36.1-rc.7 → 0.36.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/action-bar/package.json +1 -1
  2. package/action-sheet/package.json +1 -1
  3. package/alert/package.json +1 -1
  4. package/avatar/package.json +1 -1
  5. package/avatar-group/package.json +1 -1
  6. package/bar/package.json +1 -1
  7. package/breadcrumb/package.json +1 -1
  8. package/busy-indicator/package.json +1 -1
  9. package/button/package.json +1 -1
  10. package/calendar/package.json +1 -1
  11. package/card/package.json +1 -1
  12. package/carousel/package.json +1 -1
  13. package/checkbox/package.json +1 -1
  14. package/combobox/package.json +1 -1
  15. package/content-density/package.json +2 -2
  16. package/date-picker/package.json +1 -1
  17. package/datetime/package.json +1 -1
  18. package/datetime-picker/package.json +1 -1
  19. package/dialog/esm2020/dialog.component.mjs +2 -2
  20. package/dialog/fesm2015/fundamental-ngx-core-dialog.mjs +1 -1
  21. package/dialog/fesm2015/fundamental-ngx-core-dialog.mjs.map +1 -1
  22. package/dialog/fesm2020/fundamental-ngx-core-dialog.mjs +1 -1
  23. package/dialog/fesm2020/fundamental-ngx-core-dialog.mjs.map +1 -1
  24. package/dialog/package.json +1 -1
  25. package/dynamic-page/package.json +1 -1
  26. package/dynamic-side-content/package.json +1 -1
  27. package/esm2020/dialog/dialog.component.mjs +2 -2
  28. package/esm2020/list/directives/list-group-header.directive.mjs +18 -6
  29. package/esm2020/list/list.component.mjs +2 -2
  30. package/esm2020/table/table-wrapper.component.mjs +6 -22
  31. package/esm2020/table/table.component.mjs +15 -10
  32. package/esm2020/time/time-column/time-column.component.mjs +5 -47
  33. package/esm2020/utils/services/keyboard-support/keyboard-support.service.mjs +9 -13
  34. package/facets/package.json +1 -1
  35. package/feed-input/package.json +1 -1
  36. package/feed-list-item/package.json +1 -1
  37. package/fesm2015/fundamental-ngx-core-dialog.mjs +1 -1
  38. package/fesm2015/fundamental-ngx-core-dialog.mjs.map +1 -1
  39. package/fesm2015/fundamental-ngx-core-list.mjs +16 -5
  40. package/fesm2015/fundamental-ngx-core-list.mjs.map +1 -1
  41. package/fesm2015/fundamental-ngx-core-table.mjs +22 -30
  42. package/fesm2015/fundamental-ngx-core-table.mjs.map +1 -1
  43. package/fesm2015/fundamental-ngx-core-time.mjs +4 -46
  44. package/fesm2015/fundamental-ngx-core-time.mjs.map +1 -1
  45. package/fesm2015/fundamental-ngx-core-utils.mjs +8 -12
  46. package/fesm2015/fundamental-ngx-core-utils.mjs.map +1 -1
  47. package/fesm2020/fundamental-ngx-core-dialog.mjs +1 -1
  48. package/fesm2020/fundamental-ngx-core-dialog.mjs.map +1 -1
  49. package/fesm2020/fundamental-ngx-core-list.mjs +16 -5
  50. package/fesm2020/fundamental-ngx-core-list.mjs.map +1 -1
  51. package/fesm2020/fundamental-ngx-core-table.mjs +22 -30
  52. package/fesm2020/fundamental-ngx-core-table.mjs.map +1 -1
  53. package/fesm2020/fundamental-ngx-core-time.mjs +4 -46
  54. package/fesm2020/fundamental-ngx-core-time.mjs.map +1 -1
  55. package/fesm2020/fundamental-ngx-core-utils.mjs +8 -12
  56. package/fesm2020/fundamental-ngx-core-utils.mjs.map +1 -1
  57. package/file-uploader/package.json +1 -1
  58. package/fixed-card-layout/package.json +1 -1
  59. package/flexible-column-layout/package.json +1 -1
  60. package/form/package.json +1 -1
  61. package/formatted-text/package.json +1 -1
  62. package/grid-list/package.json +1 -1
  63. package/icon/package.json +1 -1
  64. package/illustrated-message/package.json +1 -1
  65. package/infinite-scroll/package.json +1 -1
  66. package/info-label/package.json +1 -1
  67. package/inline-help/package.json +1 -1
  68. package/input-group/package.json +1 -1
  69. package/layout-grid/package.json +1 -1
  70. package/layout-panel/package.json +1 -1
  71. package/link/package.json +1 -1
  72. package/list/directives/list-group-header.directive.d.ts +2 -2
  73. package/list/esm2020/directives/list-group-header.directive.mjs +18 -6
  74. package/list/esm2020/list.component.mjs +2 -2
  75. package/list/fesm2015/fundamental-ngx-core-list.mjs +16 -5
  76. package/list/fesm2015/fundamental-ngx-core-list.mjs.map +1 -1
  77. package/list/fesm2020/fundamental-ngx-core-list.mjs +16 -5
  78. package/list/fesm2020/fundamental-ngx-core-list.mjs.map +1 -1
  79. package/list/package.json +1 -1
  80. package/menu/package.json +1 -1
  81. package/message-box/package.json +1 -1
  82. package/message-strip/package.json +1 -1
  83. package/message-toast/package.json +1 -1
  84. package/micro-process-flow/package.json +1 -1
  85. package/mobile-mode/package.json +1 -1
  86. package/multi-input/package.json +1 -1
  87. package/nested-list/package.json +1 -1
  88. package/notification/package.json +1 -1
  89. package/object-identifier/package.json +1 -1
  90. package/object-marker/package.json +1 -1
  91. package/object-number/package.json +1 -1
  92. package/object-status/package.json +1 -1
  93. package/overflow-layout/package.json +4 -4
  94. package/package.json +2 -2
  95. package/pagination/package.json +1 -1
  96. package/panel/package.json +1 -1
  97. package/popover/package.json +1 -1
  98. package/product-switch/package.json +1 -1
  99. package/progress-indicator/package.json +1 -1
  100. package/quick-view/package.json +1 -1
  101. package/radio/package.json +1 -1
  102. package/rating-indicator/package.json +1 -1
  103. package/resizable-card-layout/package.json +1 -1
  104. package/scroll-spy/package.json +1 -1
  105. package/scrollbar/package.json +1 -1
  106. package/segmented-button/package.json +1 -1
  107. package/select/package.json +1 -1
  108. package/shared/package.json +1 -1
  109. package/shellbar/package.json +1 -1
  110. package/side-navigation/package.json +1 -1
  111. package/slider/package.json +1 -1
  112. package/split-button/package.json +1 -1
  113. package/splitter/package.json +1 -1
  114. package/status-indicator/package.json +1 -1
  115. package/step-input/package.json +1 -1
  116. package/switch/package.json +1 -1
  117. package/table/esm2020/table-wrapper.component.mjs +6 -22
  118. package/table/esm2020/table.component.mjs +15 -10
  119. package/table/fesm2015/fundamental-ngx-core-table.mjs +22 -30
  120. package/table/fesm2015/fundamental-ngx-core-table.mjs.map +1 -1
  121. package/table/fesm2020/fundamental-ngx-core-table.mjs +22 -30
  122. package/table/fesm2020/fundamental-ngx-core-table.mjs.map +1 -1
  123. package/table/package.json +1 -1
  124. package/table/table-wrapper.component.d.ts +3 -10
  125. package/table/table.component.d.ts +1 -8
  126. package/tabs/package.json +1 -1
  127. package/text/package.json +1 -1
  128. package/theming/package.json +1 -1
  129. package/tile/package.json +1 -1
  130. package/time/esm2020/time-column/time-column.component.mjs +5 -47
  131. package/time/fesm2015/fundamental-ngx-core-time.mjs +4 -46
  132. package/time/fesm2015/fundamental-ngx-core-time.mjs.map +1 -1
  133. package/time/fesm2020/fundamental-ngx-core-time.mjs +4 -46
  134. package/time/fesm2020/fundamental-ngx-core-time.mjs.map +1 -1
  135. package/time/package.json +1 -1
  136. package/time/time-column/time-column.component.d.ts +0 -20
  137. package/time-picker/package.json +1 -1
  138. package/timeline/package.json +1 -1
  139. package/title/package.json +1 -1
  140. package/token/package.json +1 -1
  141. package/toolbar/package.json +1 -1
  142. package/tree/package.json +1 -1
  143. package/upload-collection/package.json +1 -1
  144. package/utils/esm2020/services/keyboard-support/keyboard-support.service.mjs +9 -13
  145. package/utils/fesm2015/fundamental-ngx-core-utils.mjs +8 -12
  146. package/utils/fesm2015/fundamental-ngx-core-utils.mjs.map +1 -1
  147. package/utils/fesm2020/fundamental-ngx-core-utils.mjs +8 -12
  148. package/utils/fesm2020/fundamental-ngx-core-utils.mjs.map +1 -1
  149. package/utils/package.json +1 -1
  150. package/utils/services/keyboard-support/keyboard-support.service.d.ts +1 -7
  151. package/vertical-navigation/package.json +1 -1
  152. package/wizard/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-dialog.mjs","sources":["../../../../../libs/core/src/lib/dialog/utils/dialog.animations.ts","../../../../../libs/core/src/lib/dialog/base/dialog-config-base.class.ts","../../../../../libs/core/src/lib/dialog/utils/dialog-config.class.ts","../../../../../libs/core/src/lib/dialog/base/dialog-header-base.class.ts","../../../../../libs/core/src/lib/dialog/dialog-header/dialog-header.component.ts","../../../../../libs/core/src/lib/dialog/dialog-header/dialog-header.component.html","../../../../../libs/core/src/lib/dialog/base/dialog-ref-base.class.ts","../../../../../libs/core/src/lib/dialog/utils/dialog-ref.class.ts","../../../../../libs/core/src/lib/dialog/dialog-body/dialog-body.component.ts","../../../../../libs/core/src/lib/dialog/dialog-body/dialog-body.component.html","../../../../../libs/core/src/lib/dialog/base/dialog-footer-base.class.ts","../../../../../libs/core/src/lib/dialog/dialog-footer/dialog-footer.component.ts","../../../../../libs/core/src/lib/dialog/dialog-footer/dialog-footer.component.html","../../../../../libs/core/src/lib/dialog/utils/dialog-width-to-size.ts","../../../../../libs/core/src/lib/dialog/base/dialog-base.class.ts","../../../../../libs/core/src/lib/dialog/directives/dialog-title.directive.ts","../../../../../libs/core/src/lib/dialog/dialog.component.ts","../../../../../libs/core/src/lib/dialog/dialog.component.html","../../../../../libs/core/src/lib/dialog/dialog-close-button/dialog-close-button.component.ts","../../../../../libs/core/src/lib/dialog/dialog-default/dialog-default.component.ts","../../../../../libs/core/src/lib/dialog/dialog-default/dialog-default.component.html","../../../../../libs/core/src/lib/dialog/dialog-container/dialog-container.component.ts","../../../../../libs/core/src/lib/dialog/base/dialog-base.service.ts","../../../../../libs/core/src/lib/dialog/dialog-service/dialog.service.ts","../../../../../libs/core/src/lib/dialog/dialog-footer-button/dialog-footer-button.component.ts","../../../../../libs/core/src/lib/dialog/directives/dialog-decisive-button.directive.ts","../../../../../libs/core/src/lib/dialog/dialog.module.ts","../../../../../libs/core/src/lib/dialog/utils/dialog-position.class.ts","../../../../../libs/core/src/lib/dialog/base/dialog-content-base.class.ts","../../../../../libs/core/src/lib/dialog/utils/dialog-default-content.class.ts","../../../../../libs/core/src/lib/dialog/fundamental-ngx-core-dialog.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, style, transition, trigger } from '@angular/animations';\n\nexport const dialogFadeNgIf: AnimationTriggerMetadata = trigger('dialog-fade', [\n transition(':enter', [style({ opacity: 0 }), animate('150ms ease-in-out', style({ opacity: 1 }))]),\n transition(':leave', [style({ opacity: 1 }), animate('75ms ease-in-out', style({ opacity: 0 }))])\n]);\n","/* eslint-disable @typescript-eslint/no-inferrable-types */\n\nimport { DynamicComponentConfig } from '@fundamental-ngx/core/utils';\nimport { Nullable } from '@fundamental-ngx/core/shared';\n\nimport { DialogPosition } from '../utils/dialog-position.class';\n\nexport class DialogConfigBase<T> implements DynamicComponentConfig {\n /** Id for the dialog component. If omitted, a unique one is generated. */\n id?: string;\n\n /** Width of the dialog. */\n width?: string;\n\n /** Height of the dialog. */\n height?: string;\n\n /** Minimum width of the dialog. */\n minWidth?: string;\n\n /** Minimum height of the dialog. */\n minHeight?: string;\n\n /** Maximum width of the dialog. */\n maxWidth?: string;\n\n /** Maximum height of the dialog. */\n maxHeight?: string;\n\n /** Position of the dialog. */\n position?: DialogPosition;\n\n /** Aria Modal for the dialog component element */\n ariaModal?: boolean = false;\n\n /** Aria label for the dialog component element. */\n ariaLabel?: Nullable<string>;\n\n /** Id of the element that labels the dialog. */\n ariaLabelledBy?: Nullable<string>;\n\n /** Id of the element that describes the dialog. */\n ariaDescribedBy?: Nullable<string>;\n\n /** Whether the dialog should have a backdrop. */\n hasBackdrop?: boolean = true;\n\n /** Whether clicking on the backdrop should close the dialog. Only works if hasBackdrop is true. */\n backdropClickCloseable?: boolean = false;\n\n /** Global classes to apply to the backdrop. */\n backdropClass?: string;\n\n /** Classes to apply to the `fd-dialog-container` */\n containerClass?: string;\n\n /** Global classes to apply to the dialog panel. */\n dialogPanelClass?: string;\n\n /** Whether the escape key should close the dialog. */\n escKeyCloseable?: boolean = true;\n\n /** Whether the dialog should be focus trapped. */\n focusTrapped?: boolean = true;\n\n /** The container that the dialog is appended to. By default, it is appended to the body. */\n container?: HTMLElement | 'body' = 'body';\n\n /** Data to pass along to the content through the DialogRef. */\n data?: T;\n\n /** Whether the dialog should be displayed in mobile mode. */\n mobile?: boolean;\n\n /** Whether the dialog in mobile mode should have outer space. */\n mobileOuterSpacing?: boolean;\n\n /** Whether the dialog should have vertical padding. */\n verticalPadding?: boolean = true;\n\n /** Workaround for IE11, as `flex-grow: 1` on dialog body won't work when 'min-height' for dialog set\n * There is another way to get dialog of wanted height by setting `min-height` for dialog body.\n */\n bodyMinHeight?: string;\n\n /** Whether the dialog should have responsive horizontal padding changing with Dialogs window width.\n * max-width: 599px - .fd-dialog__content--s\n * min-width: 600px and max-width: 1023px - .fd-dialog__content--m\n * min-width: 1024px and max-width: 1439px - .fd-dialog__content--l\n * min-width: 1440px - .fd-dialog__content--xl\n * */\n responsivePadding?: boolean = false;\n\n /** Whether to close the dialog on router navigation start. */\n closeOnNavigation?: boolean = true;\n}\n","/* eslint-disable @typescript-eslint/no-inferrable-types */\n/**\n * Configuration for opening a dialog with the DialogService.\n */\nimport { Injectable, InjectionToken } from '@angular/core';\nimport { DialogConfigBase } from '../base/dialog-config-base.class';\n\nexport const DIALOG_DEFAULT_CONFIG = new InjectionToken<DialogConfig>('Default DialogConfig');\n\n@Injectable()\nexport class DialogConfig<T = any> extends DialogConfigBase<T> {\n /** Whether the dialog should be displayed in full screen mode. */\n fullScreen?: boolean;\n\n /** Whether the dialog should be draggable. */\n draggable?: boolean;\n\n /** Whether the dialog should be resizable. */\n resizable?: boolean;\n}\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n ContentChild,\n ContentChildren,\n Directive,\n QueryList,\n TemplateRef\n} from '@angular/core';\n\nimport { TemplateDirective } from '@fundamental-ngx/core/utils';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\n\n@Directive()\nexport abstract class DialogHeaderBase implements AfterContentInit {\n /** @hidden */\n headerTemplate: TemplateRef<any>;\n\n /** @hidden */\n subHeaderTemplate: TemplateRef<any>;\n\n /** @hidden */\n @ContentChild(TitleComponent)\n set defaultTitleSize(title: TitleComponent) {\n if (title && !title.headerSize) {\n title.headerSize = 5;\n this._changeDetectorRef.detectChanges();\n }\n }\n\n /** @hidden */\n @ContentChildren(TemplateDirective)\n customTemplates: QueryList<TemplateDirective>;\n\n /** @hidden */\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._assignCustomTemplates();\n }\n\n /** @hidden Assign custom templates */\n private _assignCustomTemplates(): void {\n this.customTemplates.forEach((template) => {\n switch (template.getName()) {\n case 'header':\n this.headerTemplate = template.templateRef;\n break;\n case 'subheader':\n this.subHeaderTemplate = template.templateRef;\n break;\n }\n });\n }\n}\n","import { AfterContentInit, ChangeDetectorRef, Component, Optional } from '@angular/core';\n\nimport { DialogConfig } from '../utils/dialog-config.class';\nimport { DialogHeaderBase } from '../base/dialog-header-base.class';\n\n/**\n * Applies fundamental layout and styling to the contents of a dialog header.\n *\n * ```html\n * <fd-dialog-header>\n * <h1 fd-title>Title</h1>\n * <button fd-dialog-close-button></button>\n * </fd-dialog-header>\n * ```\n */\n@Component({\n selector: 'fd-dialog-header',\n templateUrl: './dialog-header.component.html'\n})\nexport class DialogHeaderComponent extends DialogHeaderBase implements AfterContentInit {\n /** @hidden */\n constructor(@Optional() public dialogConfig: DialogConfig, changeDetectorRef: ChangeDetectorRef) {\n super(changeDetectorRef);\n this.dialogConfig = this.dialogConfig || {};\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n super.ngAfterContentInit();\n }\n}\n","<div\n fd-bar\n class=\"fd-dialog__header\"\n [fdCozy]=\"dialogConfig.mobile\"\n [barDesign]=\"subHeaderTemplate ? 'header-with-subheader' : 'header'\"\n>\n <ng-container *ngTemplateOutlet=\"headerTemplate ? headerTemplate : defaultTemplate\"></ng-container>\n\n <ng-template #defaultTemplate>\n <div fd-bar-left>\n <fd-bar-element [fullWidth]=\"true\">\n <ng-content select=\"[fd-title]\"></ng-content>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <ng-content select=\"[fd-dialog-close-button]\"></ng-content>\n </fd-bar-element>\n </div>\n </ng-template>\n</div>\n\n<div fd-bar *ngIf=\"subHeaderTemplate\" class=\"fd-dialog__subheader\" barDesign=\"subheader\" [fdCozy]=\"dialogConfig.mobile\">\n <ng-container *ngTemplateOutlet=\"subHeaderTemplate\"></ng-container>\n</div>\n","import { Observable, Subject } from 'rxjs';\n\nexport class DialogRefBase<T, P = any> {\n /** @hidden */\n protected readonly _afterClosed = new Subject<P | undefined>();\n\n /** @hidden */\n protected readonly _afterLoaded = new Subject<boolean>();\n\n /**\n * Observable that is triggered when the dialog is closed.\n * On close a *result* is passed back. On dismiss, an *error* is returned instead.\n */\n public afterClosed: Observable<P | undefined> = this._afterClosed.asObservable();\n\n /** Observable that is triggered when the modal view is initialised. */\n public afterLoaded: Observable<boolean> = this._afterLoaded.asObservable();\n\n /** Data passed from the calling component to the content.*/\n public data: T;\n\n /**\n * Closes the dialog and passes the argument to the afterClosed observable.\n * @param result Value passed back to the observable as a result.\n */\n close(result?: P): void {\n this._afterClosed.next(result);\n this._afterClosed.complete();\n }\n\n /**\n * Dismisses the dialog and passes the argument to the afterClosed observable as an error.\n * @param reason Value passed back to the observable as an error.\n */\n dismiss(reason?: any): void {\n this._afterClosed.error(reason);\n }\n\n /** Function that is called after the view of modal is initialised. */\n loaded(): void {\n this._afterLoaded.next(true);\n }\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { DialogRefBase } from '../base/dialog-ref-base.class';\n\n/**\n * Reference to a dialog component\n * It can be injected into the content component through the constructor.\n * For a template, it is declared as part of the implicit context, see examples.\n */\n\n@Injectable()\nexport class DialogRef<T = any, P = any> extends DialogRefBase<T, P> {\n private readonly _onHide = new BehaviorSubject<boolean>(false);\n private readonly _onLoading = new BehaviorSubject<boolean>(false);\n\n /** Observable that is triggered whenever the dialog should be visually hidden or visible.*/\n public onHide: Observable<boolean> = this._onHide.asObservable();\n\n /** Observable that is triggered whenever the dialog should be displayed in loading state.*/\n public onLoading: Observable<boolean> = this._onLoading.asObservable();\n\n /** @hidden */\n constructor() {\n super();\n }\n\n /**\n * Visually hides the dialog.\n * @param isHidden Value used to determine if dialog window should be hidden or visible.\n */\n hide(isHidden: boolean): void {\n this._onHide.next(isHidden);\n }\n\n /**\n * Displays the dialog in loading state.\n * @param isLoading Value used to determine if dialog window should be displayed in loading state.\n */\n loading(isLoading: boolean): void {\n this._onLoading.next(isLoading);\n }\n}\n","import { Component, ElementRef, Optional } from '@angular/core';\n\nimport { DialogConfig } from '../utils/dialog-config.class';\nimport { DialogRef } from '../utils/dialog-ref.class';\n\n/**\n * Applies fundamental layout and styling to the contents of a dialog body.\n *\n * ```html\n * <fd-dialog-body>\n * <!-- Content -->\n * </fd-dialog-body>\n * ```\n */\n@Component({\n selector: 'fd-dialog-body',\n templateUrl: 'dialog-body.component.html',\n host: {\n '[class.fd-dialog__body]': 'true',\n '[class.fd-dialog__body--no-vertical-padding]': '!dialogConfig.verticalPadding',\n '[style.min-height]': 'dialogConfig.bodyMinHeight'\n }\n})\nexport class DialogBodyComponent {\n /** @hidden */\n constructor(\n private _elRef: ElementRef,\n @Optional() public dialogConfig: DialogConfig,\n @Optional() public dialogRef: DialogRef\n ) {}\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elRef;\n }\n}\n","<ng-content></ng-content>\n<div class=\"fd-dialog__loader\" *ngIf=\"dialogRef.onLoading | async\">\n <fd-busy-indicator [loading]=\"true\" size=\"l\"></fd-busy-indicator>\n</div>\n","import { AfterContentInit, ContentChildren, Directive, QueryList, TemplateRef } from '@angular/core';\nimport { startWith } from 'rxjs/operators';\n\nimport { TemplateDirective } from '@fundamental-ngx/core/utils';\nimport { ButtonBarComponent } from '@fundamental-ngx/core/bar';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\n\n@Directive()\nexport abstract class DialogFooterBase implements AfterContentInit {\n /** @hidden */\n footerTemplate: TemplateRef<any> | undefined;\n\n /** @hidden */\n @ContentChildren(TemplateDirective)\n customTemplates: QueryList<TemplateDirective>;\n\n /** @hidden */\n @ContentChildren(ButtonBarComponent)\n buttons: QueryList<ButtonBarComponent>;\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._assignCustomTemplates();\n }\n\n /** @hidden Assign custom templates */\n private _assignCustomTemplates(): void {\n const footerTemplate = this.customTemplates.find((template) => template.getName() === 'footer');\n this.footerTemplate = footerTemplate ? footerTemplate.templateRef : undefined;\n }\n\n /** @hidden */\n protected _listenForButtonChanges(className: string): void {\n const addClassToButton = (button: ButtonComponent): void => {\n if (button && !button.class.includes(className)) {\n button.class = button.class + className;\n button.buildComponentCssClass();\n }\n };\n\n this.buttons.changes.pipe(startWith(1)).subscribe(() =>\n this.buttons.forEach((button) => {\n addClassToButton(button._buttonComponent);\n })\n );\n }\n}\n","import { AfterContentInit, AfterViewInit, Component, Optional } from '@angular/core';\n\nimport { DialogConfig } from '../utils/dialog-config.class';\nimport { DialogFooterBase } from '../base/dialog-footer-base.class';\n\nexport const DialogButtonClass = 'fd-dialog__decisive-button';\n\n/**\n * Building block of the dialog used to create dialog button.\n *\n * ```html\n * <fd-dialog-footer><!--Content--></fd-dialog-footer>\n *\n * Complex footer:\n * <fd-dialog-footer>\n * <ng-template fdTemplate=\"footer\"><!--Content--></ng-template>\n * </fd-dialog-footer>\n * ```\n * */\n@Component({\n selector: 'fd-dialog-footer',\n templateUrl: './dialog-footer.component.html'\n})\nexport class DialogFooterComponent extends DialogFooterBase implements AfterContentInit, AfterViewInit {\n /** @hidden */\n constructor(@Optional() public dialogConfig: DialogConfig) {\n super();\n this.dialogConfig = this.dialogConfig || {};\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n super.ngAfterContentInit();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._listenForButtonChanges(DialogButtonClass);\n }\n}\n","<footer fd-bar class=\"fd-dialog__footer\" barDesign=\"footer\" [fdCozy]=\"dialogConfig.mobile\">\n <ng-container *ngTemplateOutlet=\"footerTemplate ? footerTemplate : defaultTemplate\"></ng-container>\n\n <ng-template #defaultTemplate>\n <div fd-bar-right>\n <ng-content></ng-content>\n </div>\n </ng-template>\n</footer>\n","/** @hidden Describes available dialog padding sizes */\nexport type DialogSize = 'sm' | 'md' | 'lg' | 'xl';\n\n/** @hidden Returns dialog size based on width\n * @param width - dialog window width\n **/\nexport function dialogWidthToSize(width: number): DialogSize {\n if (width < 599) {\n return 'sm';\n } else if (width < 1023) {\n return 'md';\n } else if (width < 1439) {\n return 'lg';\n }\n return 'xl';\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n OnDestroy,\n OnInit\n} from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\nimport { ESCAPE } from '@angular/cdk/keycodes';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { debounceTime, filter } from 'rxjs/operators';\n\nimport { KeyUtil, RtlService, FocusTrapService } from '@fundamental-ngx/core/utils';\n\nimport { DialogConfigBase } from './dialog-config-base.class';\nimport { DialogRefBase } from './dialog-ref-base.class';\nimport { DialogSize, dialogWidthToSize } from '../utils/dialog-width-to-size';\n\n@Directive()\nexport abstract class DialogBase implements OnInit, AfterViewInit, OnDestroy {\n /**\n * @hidden\n */\n @HostBinding('attr.dir')\n _dir: string;\n\n /** @hidden Reference to dialog window element*/\n abstract dialogWindow: ElementRef;\n\n /** @hidden Dialog padding sizes */\n dialogPaddingSize: DialogSize;\n\n /** @hidden */\n protected _focusTrapId: string;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n abstract get _ref(): DialogRefBase<any>;\n\n /** @hidden */\n abstract get _config(): DialogConfigBase<any>;\n\n /** @hidden Listen and close dialog on Escape key */\n @HostListener('keyup', ['$event'])\n closeDialogEsc(event: KeyboardEvent): void {\n if (this._config.escKeyCloseable && KeyUtil.isKeyCode(event, ESCAPE)) {\n this._ref.dismiss('escape');\n }\n }\n\n /** @hidden Listen and close dialog on Backdrop click */\n @HostListener('mousedown', ['$event.target'])\n closeDialog(target: ElementRef): void {\n if (this._config.backdropClickCloseable && target === this._elementRef.nativeElement) {\n this._ref.dismiss('backdrop');\n }\n }\n\n /** @hidden */\n constructor(\n protected _router: Router,\n protected _elementRef: ElementRef,\n protected _changeDetectorRef: ChangeDetectorRef,\n protected _rtlService: RtlService,\n protected _focusTrapService: FocusTrapService\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._listenAndCloseOnNavigation();\n this._subscriptions.add(\n this._rtlService?.rtl.subscribe((isRtl) => {\n this._dir = isRtl ? 'rtl' : 'ltr';\n this._changeDetectorRef.detectChanges();\n })\n );\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._trapFocus();\n this._setPosition();\n this._setWidthHeight();\n this._listenOnWindowResize();\n this.adjustResponsivePadding();\n this._ref.loaded();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._deactivateFocusTrap();\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden Determine dialog padding size based on dialogs window width */\n adjustResponsivePadding(): void {\n if (this._config.responsivePadding) {\n const dialogWidth = this.dialogWindow.nativeElement.getBoundingClientRect().width;\n this.dialogPaddingSize = dialogWidthToSize(dialogWidth);\n this._changeDetectorRef.detectChanges();\n }\n }\n\n /** @hidden Listen on NavigationStart event and dismiss the dialog */\n private _listenAndCloseOnNavigation(): void {\n if (this._router) {\n this._subscriptions.add(\n this._router.events\n .pipe(filter((event) => event instanceof NavigationStart && !!this._config.closeOnNavigation))\n .subscribe(() => this._ref.dismiss())\n );\n }\n }\n\n /** @hidden Trap focus inside dialog window */\n private _trapFocus(): void {\n if (this._config.focusTrapped) {\n try {\n this._focusTrapId = this._focusTrapService.createFocusTrap(this.dialogWindow.nativeElement, {\n clickOutsideDeactivates: this._config.backdropClickCloseable && this._config.hasBackdrop,\n escapeDeactivates: false,\n allowOutsideClick: () => true\n });\n } catch (e) {}\n }\n }\n\n /** @hidden */\n private _deactivateFocusTrap(): void {\n this._focusTrapService.deactivateFocusTrap(this._focusTrapId);\n }\n\n /** @hidden Set dialog window position */\n private _setPosition(): void {\n if (this._config.position) {\n this.dialogWindow.nativeElement.style.top = this._config.position.top;\n this.dialogWindow.nativeElement.style.bottom = this._config.position.bottom;\n this.dialogWindow.nativeElement.style.left = this._config.position.left;\n this.dialogWindow.nativeElement.style.right = this._config.position.right;\n } else {\n this.dialogWindow.nativeElement.style.position = 'relative';\n }\n }\n\n /** @hidden Set dialog window width and height */\n private _setWidthHeight(): void {\n this.dialogWindow.nativeElement.style.width = this._config.width;\n this.dialogWindow.nativeElement.style.height = this._config.height;\n this.dialogWindow.nativeElement.style.minWidth = this._config.minWidth;\n this.dialogWindow.nativeElement.style.minHeight = this._config.minHeight;\n this.dialogWindow.nativeElement.style.maxWidth = this._config.maxWidth;\n this.dialogWindow.nativeElement.style.maxHeight = this._config.maxHeight;\n }\n\n /** @hidden Listen on window resize and adjust padding */\n private _listenOnWindowResize(): void {\n if (this._config.responsivePadding) {\n this._subscriptions.add(\n fromEvent(window, 'resize')\n .pipe(debounceTime(100))\n .subscribe(() => this.adjustResponsivePadding())\n );\n }\n }\n}\n","import { AfterViewInit, Directive, Input, Optional } from '@angular/core';\n\nimport { DialogConfig } from '../utils/dialog-config.class';\n\nlet titleUniqueId = 1;\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-dialog-title]',\n host: {\n '[attr.id]': 'id'\n }\n})\nexport class DialogTitleDirective implements AfterViewInit {\n /** Title ID attribute, generated automatically if not provided */\n @Input()\n id = `fd-dialog-title-` + titleUniqueId++;\n\n /** @hidden */\n constructor(@Optional() public dialogConfig: DialogConfig) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n if (this.dialogConfig && !this.dialogConfig.ariaLabelledBy) {\n this.dialogConfig.ariaLabelledBy = this.id;\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\n\nimport { applyCssClass, CssClassBuilder, FocusTrapService, RtlService } from '@fundamental-ngx/core/utils';\n\nimport { dialogFadeNgIf } from './utils/dialog.animations';\nimport { DialogConfig } from './utils/dialog-config.class';\nimport { DialogHeaderComponent } from './dialog-header/dialog-header.component';\nimport { DialogBodyComponent } from './dialog-body/dialog-body.component';\nimport { DialogFooterComponent } from './dialog-footer/dialog-footer.component';\nimport { DialogRef } from './utils/dialog-ref.class';\nimport { DialogBase } from './base/dialog-base.class';\nimport { DialogTitleDirective } from './directives/dialog-title.directive';\n\n/**\n * Dialog component.\n *\n * ```html\n * <fd-dialog>\n * <fd-dialog-header></fd-dialog-header>\n * <fd-dialog-body></fd-dialog-body>\n * <fd-dialog-footer></fd-dialog-footer>\n * </fd-dialog>\n * ```\n */\n@Component({\n selector: 'fd-dialog',\n styleUrls: ['dialog.component.scss'],\n templateUrl: './dialog.component.html',\n host: {\n tabindex: '-1',\n '[@dialog-fade]': ''\n },\n animations: [dialogFadeNgIf],\n encapsulation: ViewEncapsulation.None\n})\nexport class DialogComponent\n extends DialogBase\n implements OnInit, OnChanges, AfterViewInit, OnDestroy, CssClassBuilder\n{\n /** Custom classes */\n @Input()\n set class(userClass: string) {\n this._class = userClass;\n }\n\n /** DialogRef - should be used for Template based Dialog implementation */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('dialogRef')\n set embeddedDialogRef(value: DialogRef) {\n this._dialogRef = value;\n }\n\n /** DialogConfig - should be used for Template based Dialog implementation */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('dialogConfig')\n set embeddedDialogConfig(value: DialogConfig) {\n this.dialogConfig = value;\n }\n\n /** @hidden */\n @ViewChild('dialogWindow')\n dialogWindow: ElementRef;\n\n /** @hidden If dialog sub-components didn't receive DialogConfig from Injector, DialogConfig is passed from parent.\n * This is necessary when dialog has been passed as TemplateRef and created as EmbeddedView.\n * In such case parent injector of DialogComponent is the component that DECLARED the TemplateRef.\n **/\n @ContentChild(DialogHeaderComponent)\n set dialogHeaderConfig(component: DialogHeaderComponent) {\n if (component) {\n component.dialogConfig = this.dialogConfig;\n }\n }\n\n /** @hidden */\n @ContentChild(DialogBodyComponent)\n set dialogBodyConfig(component: DialogBodyComponent) {\n if (component) {\n component.dialogRef = this._dialogRef;\n component.dialogConfig = this.dialogConfig;\n }\n }\n\n /** @hidden */\n @ContentChild(DialogFooterComponent)\n set dialogFooterConfig(component: DialogFooterComponent) {\n if (component) {\n component.dialogConfig = this.dialogConfig;\n }\n }\n\n /** @hidden */\n @ContentChild(DialogTitleDirective)\n set dialogTitle(component: DialogTitleDirective) {\n if (component) {\n component.dialogConfig = this.dialogConfig;\n }\n }\n\n /** @hidden Whenever dialog should be visible */\n showDialogWindow: boolean;\n\n /** @hidden Whenever dialog is dragged */\n isDragged: boolean;\n\n /** @hidden */\n private _class = '';\n\n /** @hidden */\n private _onHidden: Subscription;\n\n /** @hidden */\n constructor(\n @Optional() public dialogConfig: DialogConfig,\n @Optional() private _dialogRef: DialogRef,\n @Optional() router: Router,\n @Optional() rtlService: RtlService,\n focusTrapService: FocusTrapService,\n changeDetectorRef: ChangeDetectorRef,\n elementRef: ElementRef\n ) {\n super(router, elementRef, changeDetectorRef, rtlService, focusTrapService);\n }\n\n /** @hidden */\n get _config(): DialogConfig {\n return this.dialogConfig;\n }\n\n /** @hidden */\n get _ref(): DialogRef {\n return this._dialogRef;\n }\n\n /** @hidden */\n ngOnInit(): void {\n super.ngOnInit();\n this._listenOnHidden();\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n super.ngAfterViewInit();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this._onHidden.unsubscribe();\n }\n\n /** @hidden */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n this.dialogConfig.hasBackdrop ? 'fd-dialog' : 'fd-dialog--no-backdrop',\n this.dialogConfig.container !== 'body' || this.dialogConfig.position ? 'fd-dialog--targeted' : '',\n this.showDialogWindow ? 'fd-dialog--active' : '',\n this._class,\n this.dialogConfig.backdropClass ? this.dialogConfig.backdropClass : ''\n ];\n }\n\n /** @hidden */\n elementRef(): ElementRef {\n return this._elementRef;\n }\n\n /** @hidden Listen on Dialog visibility */\n private _listenOnHidden(): void {\n this._onHidden = this._dialogRef.onHide.subscribe((isHidden) => {\n this.showDialogWindow = !isHidden;\n this.buildComponentCssClass();\n });\n }\n}\n","<div\n #dialogWindow\n role=\"dialog\"\n tabindex=\"-1\"\n aria-modal=\"true\"\n fdResize\n cdkTrapFocus\n cdkDrag\n cdkDragBoundary=\".fd-dialog\"\n [fdResizeBoundary]=\"elementRef()?.nativeElement\"\n class=\"fd-dialog__content\"\n [class]=\"dialogConfig.dialogPanelClass\"\n [class.cdk-drag]=\"dialogConfig.draggable\"\n [class.fd-dialog__content--s]=\"dialogPaddingSize === 'sm'\"\n [class.fd-dialog__content--m]=\"dialogPaddingSize === 'md'\"\n [class.fd-dialog__content--l]=\"dialogPaddingSize === 'lg'\"\n [class.fd-dialog__content--xl]=\"dialogPaddingSize === 'xl'\"\n [class.fd-dialog__content--mobile]=\"dialogConfig.mobile\"\n [class.fd-dialog__content--full-screen]=\"dialogConfig.fullScreen\"\n [class.fd-dialog__content--no-mobile-stretch]=\"dialogConfig.mobileOuterSpacing\"\n [class.fd-dialog__content--draggable-grab]=\"dialogConfig.draggable && !isDragged\"\n [class.fd-dialog__content--draggable-grabbing]=\"dialogConfig.draggable && isDragged\"\n [class.fd-dialog__content--with-header]=\"headerWrapper.children.length\"\n [cdkDragDisabled]=\"!dialogConfig.draggable\"\n [fdResizeDisabled]=\"!dialogConfig.resizable\"\n [@dialog-fade]\n [attr.id]=\"dialogConfig.id\"\n [attr.aria-label]=\"dialogConfig.ariaLabel\"\n [attr.aria-labelledby]=\"dialogConfig.ariaLabelledBy\"\n [attr.aria-describedby]=\"dialogConfig.ariaDescribedBy\"\n [attr.aria-modal]=\"dialogConfig.ariaModal\"\n (cdkDragStarted)=\"isDragged = true\"\n (cdkDragEnded)=\"isDragged = false\"\n (onResizeEnd)=\"adjustResponsivePadding()\"\n>\n <span fdResizeHandle *ngIf=\"dialogConfig.resizable\" class=\"fd-dialog__resize-handle\"></span>\n\n <div #headerWrapper cdkDragHandle [cdkDragHandleDisabled]=\"!dialogConfig.draggable\">\n <ng-content select=\"fd-dialog-header\"></ng-content>\n </div>\n\n <ng-content select=\"fd-dialog-body\"></ng-content>\n\n <ng-content select=\"fd-dialog-footer\"></ng-content>\n</div>\n","import { Component, Input } from '@angular/core';\n\n/**\n * Directive that applies fundamental dialog styling to a dialog close button.\n *\n * ```html\n * <button fd-dialog-close-button></button>\n * ```\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[fd-dialog-close-button]',\n host: {\n '[attr.aria-label]': '\"close\"',\n '[class.fd-button]': 'true',\n '[class.fd-button--compact]': '!mobile',\n '[class.fd-button--transparent]': 'true',\n '[attr.title]': 'title'\n },\n template: `<fd-icon glyph=\"decline\"></fd-icon><ng-content></ng-content>`\n})\nexport class DialogCloseButtonComponent {\n /** Displays dialog close button in mobile mode */\n @Input()\n mobile = false;\n\n /** add title dynamically to add a tooltip */\n @Input()\n title: string;\n}\n","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component } from '@angular/core';\n\nimport { DialogConfig } from '../utils/dialog-config.class';\nimport { DialogDefaultContent } from '../utils/dialog-default-content.class';\n\n/** Dialog component used to create the dialog in object based approach */\n@Component({\n selector: 'fd-dialog-default',\n templateUrl: './dialog-default.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DialogDefaultComponent implements AfterViewInit {\n /** @hidden */\n _defaultDialogContent: DialogDefaultContent;\n\n /** @hidden */\n _defaultDialogConfiguration: DialogConfig;\n\n /** @hidden */\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n /** @hidden\n * TODO: Inspect why DialogDefaultComponents needs change detection re-run to render adjusted content (dialog header title)\n * */\n ngAfterViewInit(): void {\n this._changeDetectorRef.detectChanges();\n }\n\n /** Whether there is a approve button, or cancel button text */\n _showFooter(): boolean {\n return (\n this._defaultDialogContent &&\n !!(this._defaultDialogContent.cancelButton || this._defaultDialogContent.approveButton)\n );\n }\n\n /** @hidden */\n _closeButtonClicked(): void {\n this._defaultDialogContent.closeButtonCallback?.();\n }\n\n /** @hidden */\n _approveButtonClicked(): void {\n this._defaultDialogContent.approveButtonCallback?.();\n }\n\n /** @hidden */\n _cancelButtonClicked(): void {\n this._defaultDialogContent.cancelButtonCallback?.();\n }\n}\n","<fd-dialog>\n <fd-dialog-header>\n <h1 fd-title [id]=\"_defaultDialogContent?.titleId\">{{ _defaultDialogContent?.title }}</h1>\n <button\n fd-dialog-close-button\n *ngIf=\"_defaultDialogContent?.closeButtonCallback\"\n [title]=\"_defaultDialogContent?.closeButtonTitle || ''\"\n (click)=\"_closeButtonClicked()\"\n ></button>\n <ng-container *ngIf=\"_defaultDialogContent?.subHeader\">\n <ng-template fdTemplate=\"subheader\">\n <ng-container *ngTemplateOutlet=\"_defaultDialogContent.subHeader!\"></ng-container>\n </ng-template>\n </ng-container>\n </fd-dialog-header>\n\n <fd-dialog-body *ngIf=\"_defaultDialogContent?.content\">\n <ng-container *ngTemplateOutlet=\"_defaultDialogContent.content!\"></ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer *ngIf=\"_showFooter()\">\n <fd-button-bar\n *ngIf=\"_defaultDialogContent?.approveButton\"\n fdType=\"emphasized\"\n fd-initial-focus\n [label]=\"_defaultDialogContent.approveButton!\"\n [fdCozy]=\"_defaultDialogConfiguration.mobile\"\n (click)=\"_approveButtonClicked()\"\n [ariaLabel]=\"_defaultDialogContent?.approveButtonAriaLabel\"\n [id]=\"_defaultDialogContent?.approveButtonId\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"_defaultDialogContent?.cancelButton\"\n [label]=\"_defaultDialogContent.cancelButton!\"\n [fdCozy]=\"_defaultDialogConfiguration.mobile\"\n (click)=\"_cancelButtonClicked()\"\n [ariaLabel]=\"_defaultDialogContent?.closeButtonAriaLabel\"\n [id]=\"_defaultDialogContent?.cancelButtonId\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ElementRef,\n Input,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\n\nimport { applyCssClass, CssClassBuilder, DynamicComponentContainer } from '@fundamental-ngx/core/utils';\n\nimport { DialogRef } from '../utils/dialog-ref.class';\nimport { DialogConfig } from '../utils/dialog-config.class';\nimport { DialogDefaultComponent } from '../dialog-default/dialog-default.component';\nimport { DialogDefaultContent } from '../utils/dialog-default-content.class';\nimport { DialogContentType } from '../dialog-service/dialog.service';\n\n/** Dialog container where the dialog content is embedded. */\n@Component({\n selector: 'fd-dialog-container',\n template: '<ng-container #contentContainer></ng-container>',\n styleUrls: ['./dialog-container.component.scss']\n})\nexport class DialogContainerComponent\n extends DynamicComponentContainer<DialogContentType>\n implements AfterViewInit, CssClassBuilder\n{\n /** Custom classes */\n @Input()\n set class(userClass: string) {\n this._class = userClass;\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n @ViewChild('contentContainer', { read: ViewContainerRef })\n containerRef: ViewContainerRef;\n\n /** @hidden */\n private _class = '';\n\n /** @hidden */\n constructor(\n public dialogConfig: DialogConfig,\n private _dialogRef: DialogRef,\n elementRef: ElementRef,\n componentFactoryResolver: ComponentFactoryResolver,\n private _changeDetectorRef: ChangeDetectorRef\n ) {\n super(elementRef, componentFactoryResolver);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._loadContent();\n }\n\n /** @hidden */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [this.dialogConfig.containerClass ? this.dialogConfig.containerClass : '', this._class];\n }\n\n /** @hidden */\n elementRef(): ElementRef {\n return this._elementRef;\n }\n\n /** @hidden Load received content */\n protected _loadContent(): void {\n if (this.childContent instanceof Type) {\n this._createFromComponent(this.childContent);\n } else if (this.childContent instanceof TemplateRef) {\n this._createFromTemplate(this.childContent, this._templateContext());\n } else {\n this._createFromDefaultDialog(this.childContent);\n }\n this._changeDetectorRef.detectChanges();\n }\n\n /** @hidden Returns context for embedded template*/\n private _templateContext(): { $implicit: DialogRef; dialogConfig: DialogConfig } {\n return { $implicit: this._dialogRef, dialogConfig: this.dialogConfig };\n }\n\n /** @hidden Load Dialog component from passed object */\n private _createFromDefaultDialog(config?: DialogDefaultContent): void {\n this.containerRef.clear();\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(DialogDefaultComponent);\n this._componentRef = this.containerRef.createComponent(componentFactory);\n this._componentRef.instance._defaultDialogContent = config;\n this._componentRef.instance._defaultDialogConfiguration = this.dialogConfig;\n }\n}\n","import { ComponentRef } from '@angular/core';\n\nimport { DynamicComponentService } from '@fundamental-ngx/core/utils';\n\nimport { DialogConfig } from '../utils/dialog-config.class';\nimport { DialogConfigBase } from './dialog-config-base.class';\nimport { DialogRefBase } from './dialog-ref-base.class';\n\n/** Service used to dynamically generate a dialog. */\nexport abstract class DialogBaseService<T> {\n /** @hidden Collection of existing dialog references */\n protected _dialogs: ComponentRef<T>[] = [];\n\n /** @hidden */\n constructor(protected _dynamicComponentService: DynamicComponentService) {}\n\n /**\n * Status of the dialog service.\n * Returns true if there are open dialogs, false otherwise.\n */\n hasOpenDialogs(): boolean {\n return this._dialogs && this._dialogs.length > 0;\n }\n\n /** Dismisses all currently open dialogs. */\n dismissAll(): void {\n this._dialogs.forEach((item) => this._destroyDialog(item));\n }\n\n abstract open<D>(content: unknown, config: DialogConfigBase<D>): DialogRefBase<D>;\n\n /** @hidden Extends configuration using default values*/\n protected _applyDefaultConfig(config: DialogConfig, defaultConfig: DialogConfig): DialogConfig {\n return { ...defaultConfig, ...config };\n }\n\n /** @hidden Destroy existing dialog */\n protected _destroyDialog(dialog: ComponentRef<T>): void {\n this._dynamicComponentService.destroyComponent(dialog);\n this._dialogs = this._dialogs.filter((d) => d !== dialog);\n }\n}\n","import { Inject, Injectable, Injector, Optional, TemplateRef, Type } from '@angular/core';\nimport { DialogContainerComponent } from '../dialog-container/dialog-container.component';\nimport { DIALOG_DEFAULT_CONFIG, DialogConfig } from '../utils/dialog-config.class';\nimport { DynamicComponentService, RtlService } from '@fundamental-ngx/core/utils';\nimport { DialogRef } from '../utils/dialog-ref.class';\nimport { DialogBaseService } from '../base/dialog-base.service';\nimport { DialogDefaultContent } from '../utils/dialog-default-content.class';\n\nexport type DialogContentType = TemplateRef<any> | Type<any> | DialogDefaultContent;\n\n/** Service used to create a dialog. */\n@Injectable()\nexport class DialogService extends DialogBaseService<DialogContainerComponent> {\n /** @hidden */\n constructor(\n @Inject(DynamicComponentService) dynamicComponentService: DynamicComponentService,\n @Optional() @Inject(DIALOG_DEFAULT_CONFIG) private _defaultConfig: DialogConfig,\n @Optional() private _rtlService: RtlService,\n private _injector: Injector\n ) {\n super(dynamicComponentService);\n }\n\n /**\n * Opens a dialog component with provided content.\n * @param content Content of the dialog component.\n * @param dialogConfig Configuration of the dialog component.\n * @param parentInjector Parent injector instance.\n */\n public open<T = any>(\n content: DialogContentType,\n dialogConfig?: DialogConfig<T>,\n parentInjector?: Injector\n ): DialogRef<T> {\n const dialogRef = new DialogRef();\n if (!parentInjector) {\n parentInjector = this._injector;\n }\n\n dialogConfig = this._applyDefaultConfig(dialogConfig || {}, this._defaultConfig || new DialogConfig());\n dialogRef.data = dialogConfig.data;\n\n const injector = Injector.create({\n providers: [\n { provide: DialogConfig, useValue: dialogConfig },\n { provide: DialogRef, useValue: dialogRef },\n { provide: RtlService, useValue: this._rtlService },\n { provide: DialogService, useValue: this }\n ],\n parent: parentInjector\n });\n\n const component = this._dynamicComponentService.createDynamicComponent<DialogContainerComponent>(\n content,\n DialogContainerComponent,\n dialogConfig,\n { injector }\n );\n\n this._dialogs.push(component);\n\n const defaultBehaviourOnClose = (): void => {\n this._destroyDialog(component);\n refSub.unsubscribe();\n };\n\n const refSub = dialogRef.afterClosed.subscribe(defaultBehaviourOnClose, defaultBehaviourOnClose);\n\n return dialogRef;\n }\n}\n","import { Component } from '@angular/core';\nimport { BarElementDirective } from '@fundamental-ngx/core/bar';\n\n/**\n * @deprecated\n * Consider using `fd-button-bar`\n */\n@Component({\n selector: 'fd-dialog-footer-button',\n template: '<ng-content></ng-content>'\n})\nexport class DialogFooterButtonComponent extends BarElementDirective {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated\n * Consider using `fd-button-bar`\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-dialog-decisive-button]',\n host: {\n '[class.fd-dialog__decisive-button]': 'true'\n }\n})\nexport class DialogDecisiveButtonDirective {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\n\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { TitleModule } from '@fundamental-ngx/core/title';\nimport { BarModule } from '@fundamental-ngx/core/bar';\nimport { BusyIndicatorModule } from '@fundamental-ngx/core/busy-indicator';\nimport { DynamicComponentService, InitialFocusModule, ResizeModule, TemplateModule } from '@fundamental-ngx/core/utils';\n\nimport { DialogComponent } from './dialog.component';\nimport { DialogHeaderComponent } from './dialog-header/dialog-header.component';\nimport { DialogBodyComponent } from './dialog-body/dialog-body.component';\nimport { DialogFooterComponent } from './dialog-footer/dialog-footer.component';\nimport { DialogService } from './dialog-service/dialog.service';\nimport { DialogContainerComponent } from './dialog-container/dialog-container.component';\nimport { DialogFooterButtonComponent } from './dialog-footer-button/dialog-footer-button.component';\nimport { DialogDefaultComponent } from './dialog-default/dialog-default.component';\nimport { DialogCloseButtonComponent } from './dialog-close-button/dialog-close-button.component';\nimport { DialogDecisiveButtonDirective } from './directives/dialog-decisive-button.directive';\nimport { DialogTitleDirective } from './directives/dialog-title.directive';\n\nconst declarations = [\n DialogComponent,\n DialogBodyComponent,\n DialogFooterComponent,\n DialogHeaderComponent,\n DialogDefaultComponent,\n DialogContainerComponent,\n DialogCloseButtonComponent,\n DialogFooterButtonComponent,\n DialogDecisiveButtonDirective,\n DialogTitleDirective\n];\n\n@NgModule({\n declarations: [declarations],\n imports: [\n BarModule,\n IconModule,\n TitleModule,\n CommonModule,\n ButtonModule,\n ResizeModule,\n TemplateModule,\n DragDropModule,\n InitialFocusModule,\n BusyIndicatorModule,\n A11yModule\n ],\n exports: [declarations, BarModule, TitleModule, TemplateModule, InitialFocusModule],\n providers: [DialogService, DynamicComponentService]\n})\nexport class DialogModule {}\n","/**\n * Represents the positioning of the dialog on the screen.\n */\nexport class DialogPosition {\n /** Value of the dialog's top position. */\n top?: string;\n\n /** Value of the dialog's bottom position. */\n bottom?: string;\n\n /** Value of the dialog's left position. */\n left?: string;\n\n /** Value of the dialog's right position. */\n right?: string;\n}\n","import { Nullable } from '@fundamental-ngx/core/shared';\n\nexport class DialogContentBase {\n /** Dialog Title id */\n titleId?: string;\n\n /** Dialog Title */\n title?: string;\n\n /** Dialog Body */\n content?: unknown;\n\n /** Aria Modal for the dialog component element */\n ariaModal?: boolean;\n\n /** Aria label for the dialog component element. */\n ariaLabel?: Nullable<string>;\n\n /** Aria labelby for the dialog component element. */\n ariaLabelledBy?: Nullable<string>;\n\n /** Aria DescribedBy for the dialog component element.. */\n ariaDescribedBy?: Nullable<string>;\n\n /** Approve Button Label */\n approveButton?: string;\n\n /** Approve Button Id */\n approveButtonId?: string;\n\n /** Approve Button Click Callback */\n approveButtonCallback?: () => void;\n\n /** Aria label for the dialog approve button element. */\n approveButtonAriaLabel?: string;\n\n /** Cancel Button Label */\n cancelButton?: string;\n\n /** Cancel Button Id */\n cancelButtonId?: string;\n\n /** Cancel Button Click Callback */\n cancelButtonCallback?: () => void;\n\n /** Close Button Callback */\n closeButtonCallback?: () => void;\n\n /** close button title */\n closeButtonTitle?: string;\n\n /** Aria labelby for the dialog close button element. */\n closeButtonAriaLabel?: string;\n}\n","import { TemplateRef } from '@angular/core';\nimport { DialogContentBase } from '../base/dialog-content-base.class';\n\nexport class DialogDefaultContent extends DialogContentBase {\n /** Dialog Body */\n content?: TemplateRef<any>;\n\n /** Subheader Body */\n subHeader?: TemplateRef<any>;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.DialogConfig","i2.DialogRef","i3","i4","i2","i5","i1","i6.DialogComponent","i7.DialogBodyComponent","i8.DialogFooterComponent","i9.DialogHeaderComponent","i10.DialogCloseButtonComponent"],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-dialog.mjs","sources":["../../../../../libs/core/src/lib/dialog/utils/dialog.animations.ts","../../../../../libs/core/src/lib/dialog/base/dialog-config-base.class.ts","../../../../../libs/core/src/lib/dialog/utils/dialog-config.class.ts","../../../../../libs/core/src/lib/dialog/base/dialog-header-base.class.ts","../../../../../libs/core/src/lib/dialog/dialog-header/dialog-header.component.ts","../../../../../libs/core/src/lib/dialog/dialog-header/dialog-header.component.html","../../../../../libs/core/src/lib/dialog/base/dialog-ref-base.class.ts","../../../../../libs/core/src/lib/dialog/utils/dialog-ref.class.ts","../../../../../libs/core/src/lib/dialog/dialog-body/dialog-body.component.ts","../../../../../libs/core/src/lib/dialog/dialog-body/dialog-body.component.html","../../../../../libs/core/src/lib/dialog/base/dialog-footer-base.class.ts","../../../../../libs/core/src/lib/dialog/dialog-footer/dialog-footer.component.ts","../../../../../libs/core/src/lib/dialog/dialog-footer/dialog-footer.component.html","../../../../../libs/core/src/lib/dialog/utils/dialog-width-to-size.ts","../../../../../libs/core/src/lib/dialog/base/dialog-base.class.ts","../../../../../libs/core/src/lib/dialog/directives/dialog-title.directive.ts","../../../../../libs/core/src/lib/dialog/dialog.component.ts","../../../../../libs/core/src/lib/dialog/dialog.component.html","../../../../../libs/core/src/lib/dialog/dialog-close-button/dialog-close-button.component.ts","../../../../../libs/core/src/lib/dialog/dialog-default/dialog-default.component.ts","../../../../../libs/core/src/lib/dialog/dialog-default/dialog-default.component.html","../../../../../libs/core/src/lib/dialog/dialog-container/dialog-container.component.ts","../../../../../libs/core/src/lib/dialog/base/dialog-base.service.ts","../../../../../libs/core/src/lib/dialog/dialog-service/dialog.service.ts","../../../../../libs/core/src/lib/dialog/dialog-footer-button/dialog-footer-button.component.ts","../../../../../libs/core/src/lib/dialog/directives/dialog-decisive-button.directive.ts","../../../../../libs/core/src/lib/dialog/dialog.module.ts","../../../../../libs/core/src/lib/dialog/utils/dialog-position.class.ts","../../../../../libs/core/src/lib/dialog/base/dialog-content-base.class.ts","../../../../../libs/core/src/lib/dialog/utils/dialog-default-content.class.ts","../../../../../libs/core/src/lib/dialog/fundamental-ngx-core-dialog.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, style, transition, trigger } from '@angular/animations';\n\nexport const dialogFadeNgIf: AnimationTriggerMetadata = trigger('dialog-fade', [\n transition(':enter', [style({ opacity: 0 }), animate('150ms ease-in-out', style({ opacity: 1 }))]),\n transition(':leave', [style({ opacity: 1 }), animate('75ms ease-in-out', style({ opacity: 0 }))])\n]);\n","/* eslint-disable @typescript-eslint/no-inferrable-types */\n\nimport { DynamicComponentConfig } from '@fundamental-ngx/core/utils';\nimport { Nullable } from '@fundamental-ngx/core/shared';\n\nimport { DialogPosition } from '../utils/dialog-position.class';\n\nexport class DialogConfigBase<T> implements DynamicComponentConfig {\n /** Id for the dialog component. If omitted, a unique one is generated. */\n id?: string;\n\n /** Width of the dialog. */\n width?: string;\n\n /** Height of the dialog. */\n height?: string;\n\n /** Minimum width of the dialog. */\n minWidth?: string;\n\n /** Minimum height of the dialog. */\n minHeight?: string;\n\n /** Maximum width of the dialog. */\n maxWidth?: string;\n\n /** Maximum height of the dialog. */\n maxHeight?: string;\n\n /** Position of the dialog. */\n position?: DialogPosition;\n\n /** Aria Modal for the dialog component element */\n ariaModal?: boolean = false;\n\n /** Aria label for the dialog component element. */\n ariaLabel?: Nullable<string>;\n\n /** Id of the element that labels the dialog. */\n ariaLabelledBy?: Nullable<string>;\n\n /** Id of the element that describes the dialog. */\n ariaDescribedBy?: Nullable<string>;\n\n /** Whether the dialog should have a backdrop. */\n hasBackdrop?: boolean = true;\n\n /** Whether clicking on the backdrop should close the dialog. Only works if hasBackdrop is true. */\n backdropClickCloseable?: boolean = false;\n\n /** Global classes to apply to the backdrop. */\n backdropClass?: string;\n\n /** Classes to apply to the `fd-dialog-container` */\n containerClass?: string;\n\n /** Global classes to apply to the dialog panel. */\n dialogPanelClass?: string;\n\n /** Whether the escape key should close the dialog. */\n escKeyCloseable?: boolean = true;\n\n /** Whether the dialog should be focus trapped. */\n focusTrapped?: boolean = true;\n\n /** The container that the dialog is appended to. By default, it is appended to the body. */\n container?: HTMLElement | 'body' = 'body';\n\n /** Data to pass along to the content through the DialogRef. */\n data?: T;\n\n /** Whether the dialog should be displayed in mobile mode. */\n mobile?: boolean;\n\n /** Whether the dialog in mobile mode should have outer space. */\n mobileOuterSpacing?: boolean;\n\n /** Whether the dialog should have vertical padding. */\n verticalPadding?: boolean = true;\n\n /** Workaround for IE11, as `flex-grow: 1` on dialog body won't work when 'min-height' for dialog set\n * There is another way to get dialog of wanted height by setting `min-height` for dialog body.\n */\n bodyMinHeight?: string;\n\n /** Whether the dialog should have responsive horizontal padding changing with Dialogs window width.\n * max-width: 599px - .fd-dialog__content--s\n * min-width: 600px and max-width: 1023px - .fd-dialog__content--m\n * min-width: 1024px and max-width: 1439px - .fd-dialog__content--l\n * min-width: 1440px - .fd-dialog__content--xl\n * */\n responsivePadding?: boolean = false;\n\n /** Whether to close the dialog on router navigation start. */\n closeOnNavigation?: boolean = true;\n}\n","/* eslint-disable @typescript-eslint/no-inferrable-types */\n/**\n * Configuration for opening a dialog with the DialogService.\n */\nimport { Injectable, InjectionToken } from '@angular/core';\nimport { DialogConfigBase } from '../base/dialog-config-base.class';\n\nexport const DIALOG_DEFAULT_CONFIG = new InjectionToken<DialogConfig>('Default DialogConfig');\n\n@Injectable()\nexport class DialogConfig<T = any> extends DialogConfigBase<T> {\n /** Whether the dialog should be displayed in full screen mode. */\n fullScreen?: boolean;\n\n /** Whether the dialog should be draggable. */\n draggable?: boolean;\n\n /** Whether the dialog should be resizable. */\n resizable?: boolean;\n}\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n ContentChild,\n ContentChildren,\n Directive,\n QueryList,\n TemplateRef\n} from '@angular/core';\n\nimport { TemplateDirective } from '@fundamental-ngx/core/utils';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\n\n@Directive()\nexport abstract class DialogHeaderBase implements AfterContentInit {\n /** @hidden */\n headerTemplate: TemplateRef<any>;\n\n /** @hidden */\n subHeaderTemplate: TemplateRef<any>;\n\n /** @hidden */\n @ContentChild(TitleComponent)\n set defaultTitleSize(title: TitleComponent) {\n if (title && !title.headerSize) {\n title.headerSize = 5;\n this._changeDetectorRef.detectChanges();\n }\n }\n\n /** @hidden */\n @ContentChildren(TemplateDirective)\n customTemplates: QueryList<TemplateDirective>;\n\n /** @hidden */\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._assignCustomTemplates();\n }\n\n /** @hidden Assign custom templates */\n private _assignCustomTemplates(): void {\n this.customTemplates.forEach((template) => {\n switch (template.getName()) {\n case 'header':\n this.headerTemplate = template.templateRef;\n break;\n case 'subheader':\n this.subHeaderTemplate = template.templateRef;\n break;\n }\n });\n }\n}\n","import { AfterContentInit, ChangeDetectorRef, Component, Optional } from '@angular/core';\n\nimport { DialogConfig } from '../utils/dialog-config.class';\nimport { DialogHeaderBase } from '../base/dialog-header-base.class';\n\n/**\n * Applies fundamental layout and styling to the contents of a dialog header.\n *\n * ```html\n * <fd-dialog-header>\n * <h1 fd-title>Title</h1>\n * <button fd-dialog-close-button></button>\n * </fd-dialog-header>\n * ```\n */\n@Component({\n selector: 'fd-dialog-header',\n templateUrl: './dialog-header.component.html'\n})\nexport class DialogHeaderComponent extends DialogHeaderBase implements AfterContentInit {\n /** @hidden */\n constructor(@Optional() public dialogConfig: DialogConfig, changeDetectorRef: ChangeDetectorRef) {\n super(changeDetectorRef);\n this.dialogConfig = this.dialogConfig || {};\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n super.ngAfterContentInit();\n }\n}\n","<div\n fd-bar\n class=\"fd-dialog__header\"\n [fdCozy]=\"dialogConfig.mobile\"\n [barDesign]=\"subHeaderTemplate ? 'header-with-subheader' : 'header'\"\n>\n <ng-container *ngTemplateOutlet=\"headerTemplate ? headerTemplate : defaultTemplate\"></ng-container>\n\n <ng-template #defaultTemplate>\n <div fd-bar-left>\n <fd-bar-element [fullWidth]=\"true\">\n <ng-content select=\"[fd-title]\"></ng-content>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <ng-content select=\"[fd-dialog-close-button]\"></ng-content>\n </fd-bar-element>\n </div>\n </ng-template>\n</div>\n\n<div fd-bar *ngIf=\"subHeaderTemplate\" class=\"fd-dialog__subheader\" barDesign=\"subheader\" [fdCozy]=\"dialogConfig.mobile\">\n <ng-container *ngTemplateOutlet=\"subHeaderTemplate\"></ng-container>\n</div>\n","import { Observable, Subject } from 'rxjs';\n\nexport class DialogRefBase<T, P = any> {\n /** @hidden */\n protected readonly _afterClosed = new Subject<P | undefined>();\n\n /** @hidden */\n protected readonly _afterLoaded = new Subject<boolean>();\n\n /**\n * Observable that is triggered when the dialog is closed.\n * On close a *result* is passed back. On dismiss, an *error* is returned instead.\n */\n public afterClosed: Observable<P | undefined> = this._afterClosed.asObservable();\n\n /** Observable that is triggered when the modal view is initialised. */\n public afterLoaded: Observable<boolean> = this._afterLoaded.asObservable();\n\n /** Data passed from the calling component to the content.*/\n public data: T;\n\n /**\n * Closes the dialog and passes the argument to the afterClosed observable.\n * @param result Value passed back to the observable as a result.\n */\n close(result?: P): void {\n this._afterClosed.next(result);\n this._afterClosed.complete();\n }\n\n /**\n * Dismisses the dialog and passes the argument to the afterClosed observable as an error.\n * @param reason Value passed back to the observable as an error.\n */\n dismiss(reason?: any): void {\n this._afterClosed.error(reason);\n }\n\n /** Function that is called after the view of modal is initialised. */\n loaded(): void {\n this._afterLoaded.next(true);\n }\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { DialogRefBase } from '../base/dialog-ref-base.class';\n\n/**\n * Reference to a dialog component\n * It can be injected into the content component through the constructor.\n * For a template, it is declared as part of the implicit context, see examples.\n */\n\n@Injectable()\nexport class DialogRef<T = any, P = any> extends DialogRefBase<T, P> {\n private readonly _onHide = new BehaviorSubject<boolean>(false);\n private readonly _onLoading = new BehaviorSubject<boolean>(false);\n\n /** Observable that is triggered whenever the dialog should be visually hidden or visible.*/\n public onHide: Observable<boolean> = this._onHide.asObservable();\n\n /** Observable that is triggered whenever the dialog should be displayed in loading state.*/\n public onLoading: Observable<boolean> = this._onLoading.asObservable();\n\n /** @hidden */\n constructor() {\n super();\n }\n\n /**\n * Visually hides the dialog.\n * @param isHidden Value used to determine if dialog window should be hidden or visible.\n */\n hide(isHidden: boolean): void {\n this._onHide.next(isHidden);\n }\n\n /**\n * Displays the dialog in loading state.\n * @param isLoading Value used to determine if dialog window should be displayed in loading state.\n */\n loading(isLoading: boolean): void {\n this._onLoading.next(isLoading);\n }\n}\n","import { Component, ElementRef, Optional } from '@angular/core';\n\nimport { DialogConfig } from '../utils/dialog-config.class';\nimport { DialogRef } from '../utils/dialog-ref.class';\n\n/**\n * Applies fundamental layout and styling to the contents of a dialog body.\n *\n * ```html\n * <fd-dialog-body>\n * <!-- Content -->\n * </fd-dialog-body>\n * ```\n */\n@Component({\n selector: 'fd-dialog-body',\n templateUrl: 'dialog-body.component.html',\n host: {\n '[class.fd-dialog__body]': 'true',\n '[class.fd-dialog__body--no-vertical-padding]': '!dialogConfig.verticalPadding',\n '[style.min-height]': 'dialogConfig.bodyMinHeight'\n }\n})\nexport class DialogBodyComponent {\n /** @hidden */\n constructor(\n private _elRef: ElementRef,\n @Optional() public dialogConfig: DialogConfig,\n @Optional() public dialogRef: DialogRef\n ) {}\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elRef;\n }\n}\n","<ng-content></ng-content>\n<div class=\"fd-dialog__loader\" *ngIf=\"dialogRef.onLoading | async\">\n <fd-busy-indicator [loading]=\"true\" size=\"l\"></fd-busy-indicator>\n</div>\n","import { AfterContentInit, ContentChildren, Directive, QueryList, TemplateRef } from '@angular/core';\nimport { startWith } from 'rxjs/operators';\n\nimport { TemplateDirective } from '@fundamental-ngx/core/utils';\nimport { ButtonBarComponent } from '@fundamental-ngx/core/bar';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\n\n@Directive()\nexport abstract class DialogFooterBase implements AfterContentInit {\n /** @hidden */\n footerTemplate: TemplateRef<any> | undefined;\n\n /** @hidden */\n @ContentChildren(TemplateDirective)\n customTemplates: QueryList<TemplateDirective>;\n\n /** @hidden */\n @ContentChildren(ButtonBarComponent)\n buttons: QueryList<ButtonBarComponent>;\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._assignCustomTemplates();\n }\n\n /** @hidden Assign custom templates */\n private _assignCustomTemplates(): void {\n const footerTemplate = this.customTemplates.find((template) => template.getName() === 'footer');\n this.footerTemplate = footerTemplate ? footerTemplate.templateRef : undefined;\n }\n\n /** @hidden */\n protected _listenForButtonChanges(className: string): void {\n const addClassToButton = (button: ButtonComponent): void => {\n if (button && !button.class.includes(className)) {\n button.class = button.class + className;\n button.buildComponentCssClass();\n }\n };\n\n this.buttons.changes.pipe(startWith(1)).subscribe(() =>\n this.buttons.forEach((button) => {\n addClassToButton(button._buttonComponent);\n })\n );\n }\n}\n","import { AfterContentInit, AfterViewInit, Component, Optional } from '@angular/core';\n\nimport { DialogConfig } from '../utils/dialog-config.class';\nimport { DialogFooterBase } from '../base/dialog-footer-base.class';\n\nexport const DialogButtonClass = 'fd-dialog__decisive-button';\n\n/**\n * Building block of the dialog used to create dialog button.\n *\n * ```html\n * <fd-dialog-footer><!--Content--></fd-dialog-footer>\n *\n * Complex footer:\n * <fd-dialog-footer>\n * <ng-template fdTemplate=\"footer\"><!--Content--></ng-template>\n * </fd-dialog-footer>\n * ```\n * */\n@Component({\n selector: 'fd-dialog-footer',\n templateUrl: './dialog-footer.component.html'\n})\nexport class DialogFooterComponent extends DialogFooterBase implements AfterContentInit, AfterViewInit {\n /** @hidden */\n constructor(@Optional() public dialogConfig: DialogConfig) {\n super();\n this.dialogConfig = this.dialogConfig || {};\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n super.ngAfterContentInit();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._listenForButtonChanges(DialogButtonClass);\n }\n}\n","<footer fd-bar class=\"fd-dialog__footer\" barDesign=\"footer\" [fdCozy]=\"dialogConfig.mobile\">\n <ng-container *ngTemplateOutlet=\"footerTemplate ? footerTemplate : defaultTemplate\"></ng-container>\n\n <ng-template #defaultTemplate>\n <div fd-bar-right>\n <ng-content></ng-content>\n </div>\n </ng-template>\n</footer>\n","/** @hidden Describes available dialog padding sizes */\nexport type DialogSize = 'sm' | 'md' | 'lg' | 'xl';\n\n/** @hidden Returns dialog size based on width\n * @param width - dialog window width\n **/\nexport function dialogWidthToSize(width: number): DialogSize {\n if (width < 599) {\n return 'sm';\n } else if (width < 1023) {\n return 'md';\n } else if (width < 1439) {\n return 'lg';\n }\n return 'xl';\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n OnDestroy,\n OnInit\n} from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\nimport { ESCAPE } from '@angular/cdk/keycodes';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { debounceTime, filter } from 'rxjs/operators';\n\nimport { KeyUtil, RtlService, FocusTrapService } from '@fundamental-ngx/core/utils';\n\nimport { DialogConfigBase } from './dialog-config-base.class';\nimport { DialogRefBase } from './dialog-ref-base.class';\nimport { DialogSize, dialogWidthToSize } from '../utils/dialog-width-to-size';\n\n@Directive()\nexport abstract class DialogBase implements OnInit, AfterViewInit, OnDestroy {\n /**\n * @hidden\n */\n @HostBinding('attr.dir')\n _dir: string;\n\n /** @hidden Reference to dialog window element*/\n abstract dialogWindow: ElementRef;\n\n /** @hidden Dialog padding sizes */\n dialogPaddingSize: DialogSize;\n\n /** @hidden */\n protected _focusTrapId: string;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n abstract get _ref(): DialogRefBase<any>;\n\n /** @hidden */\n abstract get _config(): DialogConfigBase<any>;\n\n /** @hidden Listen and close dialog on Escape key */\n @HostListener('keyup', ['$event'])\n closeDialogEsc(event: KeyboardEvent): void {\n if (this._config.escKeyCloseable && KeyUtil.isKeyCode(event, ESCAPE)) {\n this._ref.dismiss('escape');\n }\n }\n\n /** @hidden Listen and close dialog on Backdrop click */\n @HostListener('mousedown', ['$event.target'])\n closeDialog(target: ElementRef): void {\n if (this._config.backdropClickCloseable && target === this._elementRef.nativeElement) {\n this._ref.dismiss('backdrop');\n }\n }\n\n /** @hidden */\n constructor(\n protected _router: Router,\n protected _elementRef: ElementRef,\n protected _changeDetectorRef: ChangeDetectorRef,\n protected _rtlService: RtlService,\n protected _focusTrapService: FocusTrapService\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._listenAndCloseOnNavigation();\n this._subscriptions.add(\n this._rtlService?.rtl.subscribe((isRtl) => {\n this._dir = isRtl ? 'rtl' : 'ltr';\n this._changeDetectorRef.detectChanges();\n })\n );\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._trapFocus();\n this._setPosition();\n this._setWidthHeight();\n this._listenOnWindowResize();\n this.adjustResponsivePadding();\n this._ref.loaded();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._deactivateFocusTrap();\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden Determine dialog padding size based on dialogs window width */\n adjustResponsivePadding(): void {\n if (this._config.responsivePadding) {\n const dialogWidth = this.dialogWindow.nativeElement.getBoundingClientRect().width;\n this.dialogPaddingSize = dialogWidthToSize(dialogWidth);\n this._changeDetectorRef.detectChanges();\n }\n }\n\n /** @hidden Listen on NavigationStart event and dismiss the dialog */\n private _listenAndCloseOnNavigation(): void {\n if (this._router) {\n this._subscriptions.add(\n this._router.events\n .pipe(filter((event) => event instanceof NavigationStart && !!this._config.closeOnNavigation))\n .subscribe(() => this._ref.dismiss())\n );\n }\n }\n\n /** @hidden Trap focus inside dialog window */\n private _trapFocus(): void {\n if (this._config.focusTrapped) {\n try {\n this._focusTrapId = this._focusTrapService.createFocusTrap(this.dialogWindow.nativeElement, {\n clickOutsideDeactivates: this._config.backdropClickCloseable && this._config.hasBackdrop,\n escapeDeactivates: false,\n allowOutsideClick: () => true\n });\n } catch (e) {}\n }\n }\n\n /** @hidden */\n private _deactivateFocusTrap(): void {\n this._focusTrapService.deactivateFocusTrap(this._focusTrapId);\n }\n\n /** @hidden Set dialog window position */\n private _setPosition(): void {\n if (this._config.position) {\n this.dialogWindow.nativeElement.style.top = this._config.position.top;\n this.dialogWindow.nativeElement.style.bottom = this._config.position.bottom;\n this.dialogWindow.nativeElement.style.left = this._config.position.left;\n this.dialogWindow.nativeElement.style.right = this._config.position.right;\n } else {\n this.dialogWindow.nativeElement.style.position = 'relative';\n }\n }\n\n /** @hidden Set dialog window width and height */\n private _setWidthHeight(): void {\n this.dialogWindow.nativeElement.style.width = this._config.width;\n this.dialogWindow.nativeElement.style.height = this._config.height;\n this.dialogWindow.nativeElement.style.minWidth = this._config.minWidth;\n this.dialogWindow.nativeElement.style.minHeight = this._config.minHeight;\n this.dialogWindow.nativeElement.style.maxWidth = this._config.maxWidth;\n this.dialogWindow.nativeElement.style.maxHeight = this._config.maxHeight;\n }\n\n /** @hidden Listen on window resize and adjust padding */\n private _listenOnWindowResize(): void {\n if (this._config.responsivePadding) {\n this._subscriptions.add(\n fromEvent(window, 'resize')\n .pipe(debounceTime(100))\n .subscribe(() => this.adjustResponsivePadding())\n );\n }\n }\n}\n","import { AfterViewInit, Directive, Input, Optional } from '@angular/core';\n\nimport { DialogConfig } from '../utils/dialog-config.class';\n\nlet titleUniqueId = 1;\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-dialog-title]',\n host: {\n '[attr.id]': 'id'\n }\n})\nexport class DialogTitleDirective implements AfterViewInit {\n /** Title ID attribute, generated automatically if not provided */\n @Input()\n id = `fd-dialog-title-` + titleUniqueId++;\n\n /** @hidden */\n constructor(@Optional() public dialogConfig: DialogConfig) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n if (this.dialogConfig && !this.dialogConfig.ariaLabelledBy) {\n this.dialogConfig.ariaLabelledBy = this.id;\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\n\nimport { applyCssClass, CssClassBuilder, FocusTrapService, RtlService } from '@fundamental-ngx/core/utils';\n\nimport { dialogFadeNgIf } from './utils/dialog.animations';\nimport { DialogConfig } from './utils/dialog-config.class';\nimport { DialogHeaderComponent } from './dialog-header/dialog-header.component';\nimport { DialogBodyComponent } from './dialog-body/dialog-body.component';\nimport { DialogFooterComponent } from './dialog-footer/dialog-footer.component';\nimport { DialogRef } from './utils/dialog-ref.class';\nimport { DialogBase } from './base/dialog-base.class';\nimport { DialogTitleDirective } from './directives/dialog-title.directive';\n\n/**\n * Dialog component.\n *\n * ```html\n * <fd-dialog>\n * <fd-dialog-header></fd-dialog-header>\n * <fd-dialog-body></fd-dialog-body>\n * <fd-dialog-footer></fd-dialog-footer>\n * </fd-dialog>\n * ```\n */\n@Component({\n selector: 'fd-dialog',\n styleUrls: ['dialog.component.scss'],\n templateUrl: './dialog.component.html',\n host: {\n tabindex: '-1',\n '[@dialog-fade]': ''\n },\n animations: [dialogFadeNgIf],\n encapsulation: ViewEncapsulation.None\n})\nexport class DialogComponent\n extends DialogBase\n implements OnInit, OnChanges, AfterViewInit, OnDestroy, CssClassBuilder\n{\n /** Custom classes */\n @Input()\n set class(userClass: string) {\n this._class = userClass;\n }\n\n /** DialogRef - should be used for Template based Dialog implementation */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('dialogRef')\n set embeddedDialogRef(value: DialogRef) {\n this._dialogRef = value;\n }\n\n /** DialogConfig - should be used for Template based Dialog implementation */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('dialogConfig')\n set embeddedDialogConfig(value: DialogConfig) {\n this.dialogConfig = value;\n }\n\n /** @hidden */\n @ViewChild('dialogWindow')\n dialogWindow: ElementRef;\n\n /** @hidden If dialog sub-components didn't receive DialogConfig from Injector, DialogConfig is passed from parent.\n * This is necessary when dialog has been passed as TemplateRef and created as EmbeddedView.\n * In such case parent injector of DialogComponent is the component that DECLARED the TemplateRef.\n **/\n @ContentChild(DialogHeaderComponent)\n set dialogHeaderConfig(component: DialogHeaderComponent) {\n if (component) {\n component.dialogConfig = this.dialogConfig;\n }\n }\n\n /** @hidden */\n @ContentChild(DialogBodyComponent)\n set dialogBodyConfig(component: DialogBodyComponent) {\n if (component) {\n component.dialogRef = this._dialogRef;\n component.dialogConfig = this.dialogConfig;\n }\n }\n\n /** @hidden */\n @ContentChild(DialogFooterComponent)\n set dialogFooterConfig(component: DialogFooterComponent) {\n if (component) {\n component.dialogConfig = this.dialogConfig;\n }\n }\n\n /** @hidden */\n @ContentChild(DialogTitleDirective)\n set dialogTitle(component: DialogTitleDirective) {\n if (component) {\n component.dialogConfig = this.dialogConfig;\n }\n }\n\n /** @hidden Whenever dialog should be visible */\n showDialogWindow: boolean;\n\n /** @hidden Whenever dialog is dragged */\n isDragged: boolean;\n\n /** @hidden */\n private _class = '';\n\n /** @hidden */\n private _onHidden: Subscription;\n\n /** @hidden */\n constructor(\n @Optional() public dialogConfig: DialogConfig,\n @Optional() private _dialogRef: DialogRef,\n @Optional() router: Router,\n @Optional() rtlService: RtlService,\n focusTrapService: FocusTrapService,\n changeDetectorRef: ChangeDetectorRef,\n elementRef: ElementRef\n ) {\n super(router, elementRef, changeDetectorRef, rtlService, focusTrapService);\n }\n\n /** @hidden */\n get _config(): DialogConfig {\n return this.dialogConfig;\n }\n\n /** @hidden */\n get _ref(): DialogRef {\n return this._dialogRef;\n }\n\n /** @hidden */\n ngOnInit(): void {\n super.ngOnInit();\n this._listenOnHidden();\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n super.ngAfterViewInit();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this._onHidden.unsubscribe();\n }\n\n /** @hidden */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n this.dialogConfig.hasBackdrop ? 'fd-dialog' : 'fd-dialog--no-backdrop',\n this.dialogConfig.container !== 'body' ? 'fd-dialog--targeted' : '',\n this.showDialogWindow ? 'fd-dialog--active' : '',\n this._class,\n this.dialogConfig.backdropClass ? this.dialogConfig.backdropClass : ''\n ];\n }\n\n /** @hidden */\n elementRef(): ElementRef {\n return this._elementRef;\n }\n\n /** @hidden Listen on Dialog visibility */\n private _listenOnHidden(): void {\n this._onHidden = this._dialogRef.onHide.subscribe((isHidden) => {\n this.showDialogWindow = !isHidden;\n this.buildComponentCssClass();\n });\n }\n}\n","<div\n #dialogWindow\n role=\"dialog\"\n tabindex=\"-1\"\n aria-modal=\"true\"\n fdResize\n cdkTrapFocus\n cdkDrag\n cdkDragBoundary=\".fd-dialog\"\n [fdResizeBoundary]=\"elementRef()?.nativeElement\"\n class=\"fd-dialog__content\"\n [class]=\"dialogConfig.dialogPanelClass\"\n [class.cdk-drag]=\"dialogConfig.draggable\"\n [class.fd-dialog__content--s]=\"dialogPaddingSize === 'sm'\"\n [class.fd-dialog__content--m]=\"dialogPaddingSize === 'md'\"\n [class.fd-dialog__content--l]=\"dialogPaddingSize === 'lg'\"\n [class.fd-dialog__content--xl]=\"dialogPaddingSize === 'xl'\"\n [class.fd-dialog__content--mobile]=\"dialogConfig.mobile\"\n [class.fd-dialog__content--full-screen]=\"dialogConfig.fullScreen\"\n [class.fd-dialog__content--no-mobile-stretch]=\"dialogConfig.mobileOuterSpacing\"\n [class.fd-dialog__content--draggable-grab]=\"dialogConfig.draggable && !isDragged\"\n [class.fd-dialog__content--draggable-grabbing]=\"dialogConfig.draggable && isDragged\"\n [class.fd-dialog__content--with-header]=\"headerWrapper.children.length\"\n [cdkDragDisabled]=\"!dialogConfig.draggable\"\n [fdResizeDisabled]=\"!dialogConfig.resizable\"\n [@dialog-fade]\n [attr.id]=\"dialogConfig.id\"\n [attr.aria-label]=\"dialogConfig.ariaLabel\"\n [attr.aria-labelledby]=\"dialogConfig.ariaLabelledBy\"\n [attr.aria-describedby]=\"dialogConfig.ariaDescribedBy\"\n [attr.aria-modal]=\"dialogConfig.ariaModal\"\n (cdkDragStarted)=\"isDragged = true\"\n (cdkDragEnded)=\"isDragged = false\"\n (onResizeEnd)=\"adjustResponsivePadding()\"\n>\n <span fdResizeHandle *ngIf=\"dialogConfig.resizable\" class=\"fd-dialog__resize-handle\"></span>\n\n <div #headerWrapper cdkDragHandle [cdkDragHandleDisabled]=\"!dialogConfig.draggable\">\n <ng-content select=\"fd-dialog-header\"></ng-content>\n </div>\n\n <ng-content select=\"fd-dialog-body\"></ng-content>\n\n <ng-content select=\"fd-dialog-footer\"></ng-content>\n</div>\n","import { Component, Input } from '@angular/core';\n\n/**\n * Directive that applies fundamental dialog styling to a dialog close button.\n *\n * ```html\n * <button fd-dialog-close-button></button>\n * ```\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[fd-dialog-close-button]',\n host: {\n '[attr.aria-label]': '\"close\"',\n '[class.fd-button]': 'true',\n '[class.fd-button--compact]': '!mobile',\n '[class.fd-button--transparent]': 'true',\n '[attr.title]': 'title'\n },\n template: `<fd-icon glyph=\"decline\"></fd-icon><ng-content></ng-content>`\n})\nexport class DialogCloseButtonComponent {\n /** Displays dialog close button in mobile mode */\n @Input()\n mobile = false;\n\n /** add title dynamically to add a tooltip */\n @Input()\n title: string;\n}\n","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component } from '@angular/core';\n\nimport { DialogConfig } from '../utils/dialog-config.class';\nimport { DialogDefaultContent } from '../utils/dialog-default-content.class';\n\n/** Dialog component used to create the dialog in object based approach */\n@Component({\n selector: 'fd-dialog-default',\n templateUrl: './dialog-default.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DialogDefaultComponent implements AfterViewInit {\n /** @hidden */\n _defaultDialogContent: DialogDefaultContent;\n\n /** @hidden */\n _defaultDialogConfiguration: DialogConfig;\n\n /** @hidden */\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n /** @hidden\n * TODO: Inspect why DialogDefaultComponents needs change detection re-run to render adjusted content (dialog header title)\n * */\n ngAfterViewInit(): void {\n this._changeDetectorRef.detectChanges();\n }\n\n /** Whether there is a approve button, or cancel button text */\n _showFooter(): boolean {\n return (\n this._defaultDialogContent &&\n !!(this._defaultDialogContent.cancelButton || this._defaultDialogContent.approveButton)\n );\n }\n\n /** @hidden */\n _closeButtonClicked(): void {\n this._defaultDialogContent.closeButtonCallback?.();\n }\n\n /** @hidden */\n _approveButtonClicked(): void {\n this._defaultDialogContent.approveButtonCallback?.();\n }\n\n /** @hidden */\n _cancelButtonClicked(): void {\n this._defaultDialogContent.cancelButtonCallback?.();\n }\n}\n","<fd-dialog>\n <fd-dialog-header>\n <h1 fd-title [id]=\"_defaultDialogContent?.titleId\">{{ _defaultDialogContent?.title }}</h1>\n <button\n fd-dialog-close-button\n *ngIf=\"_defaultDialogContent?.closeButtonCallback\"\n [title]=\"_defaultDialogContent?.closeButtonTitle || ''\"\n (click)=\"_closeButtonClicked()\"\n ></button>\n <ng-container *ngIf=\"_defaultDialogContent?.subHeader\">\n <ng-template fdTemplate=\"subheader\">\n <ng-container *ngTemplateOutlet=\"_defaultDialogContent.subHeader!\"></ng-container>\n </ng-template>\n </ng-container>\n </fd-dialog-header>\n\n <fd-dialog-body *ngIf=\"_defaultDialogContent?.content\">\n <ng-container *ngTemplateOutlet=\"_defaultDialogContent.content!\"></ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer *ngIf=\"_showFooter()\">\n <fd-button-bar\n *ngIf=\"_defaultDialogContent?.approveButton\"\n fdType=\"emphasized\"\n fd-initial-focus\n [label]=\"_defaultDialogContent.approveButton!\"\n [fdCozy]=\"_defaultDialogConfiguration.mobile\"\n (click)=\"_approveButtonClicked()\"\n [ariaLabel]=\"_defaultDialogContent?.approveButtonAriaLabel\"\n [id]=\"_defaultDialogContent?.approveButtonId\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"_defaultDialogContent?.cancelButton\"\n [label]=\"_defaultDialogContent.cancelButton!\"\n [fdCozy]=\"_defaultDialogConfiguration.mobile\"\n (click)=\"_cancelButtonClicked()\"\n [ariaLabel]=\"_defaultDialogContent?.closeButtonAriaLabel\"\n [id]=\"_defaultDialogContent?.cancelButtonId\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ElementRef,\n Input,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\n\nimport { applyCssClass, CssClassBuilder, DynamicComponentContainer } from '@fundamental-ngx/core/utils';\n\nimport { DialogRef } from '../utils/dialog-ref.class';\nimport { DialogConfig } from '../utils/dialog-config.class';\nimport { DialogDefaultComponent } from '../dialog-default/dialog-default.component';\nimport { DialogDefaultContent } from '../utils/dialog-default-content.class';\nimport { DialogContentType } from '../dialog-service/dialog.service';\n\n/** Dialog container where the dialog content is embedded. */\n@Component({\n selector: 'fd-dialog-container',\n template: '<ng-container #contentContainer></ng-container>',\n styleUrls: ['./dialog-container.component.scss']\n})\nexport class DialogContainerComponent\n extends DynamicComponentContainer<DialogContentType>\n implements AfterViewInit, CssClassBuilder\n{\n /** Custom classes */\n @Input()\n set class(userClass: string) {\n this._class = userClass;\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n @ViewChild('contentContainer', { read: ViewContainerRef })\n containerRef: ViewContainerRef;\n\n /** @hidden */\n private _class = '';\n\n /** @hidden */\n constructor(\n public dialogConfig: DialogConfig,\n private _dialogRef: DialogRef,\n elementRef: ElementRef,\n componentFactoryResolver: ComponentFactoryResolver,\n private _changeDetectorRef: ChangeDetectorRef\n ) {\n super(elementRef, componentFactoryResolver);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._loadContent();\n }\n\n /** @hidden */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [this.dialogConfig.containerClass ? this.dialogConfig.containerClass : '', this._class];\n }\n\n /** @hidden */\n elementRef(): ElementRef {\n return this._elementRef;\n }\n\n /** @hidden Load received content */\n protected _loadContent(): void {\n if (this.childContent instanceof Type) {\n this._createFromComponent(this.childContent);\n } else if (this.childContent instanceof TemplateRef) {\n this._createFromTemplate(this.childContent, this._templateContext());\n } else {\n this._createFromDefaultDialog(this.childContent);\n }\n this._changeDetectorRef.detectChanges();\n }\n\n /** @hidden Returns context for embedded template*/\n private _templateContext(): { $implicit: DialogRef; dialogConfig: DialogConfig } {\n return { $implicit: this._dialogRef, dialogConfig: this.dialogConfig };\n }\n\n /** @hidden Load Dialog component from passed object */\n private _createFromDefaultDialog(config?: DialogDefaultContent): void {\n this.containerRef.clear();\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(DialogDefaultComponent);\n this._componentRef = this.containerRef.createComponent(componentFactory);\n this._componentRef.instance._defaultDialogContent = config;\n this._componentRef.instance._defaultDialogConfiguration = this.dialogConfig;\n }\n}\n","import { ComponentRef } from '@angular/core';\n\nimport { DynamicComponentService } from '@fundamental-ngx/core/utils';\n\nimport { DialogConfig } from '../utils/dialog-config.class';\nimport { DialogConfigBase } from './dialog-config-base.class';\nimport { DialogRefBase } from './dialog-ref-base.class';\n\n/** Service used to dynamically generate a dialog. */\nexport abstract class DialogBaseService<T> {\n /** @hidden Collection of existing dialog references */\n protected _dialogs: ComponentRef<T>[] = [];\n\n /** @hidden */\n constructor(protected _dynamicComponentService: DynamicComponentService) {}\n\n /**\n * Status of the dialog service.\n * Returns true if there are open dialogs, false otherwise.\n */\n hasOpenDialogs(): boolean {\n return this._dialogs && this._dialogs.length > 0;\n }\n\n /** Dismisses all currently open dialogs. */\n dismissAll(): void {\n this._dialogs.forEach((item) => this._destroyDialog(item));\n }\n\n abstract open<D>(content: unknown, config: DialogConfigBase<D>): DialogRefBase<D>;\n\n /** @hidden Extends configuration using default values*/\n protected _applyDefaultConfig(config: DialogConfig, defaultConfig: DialogConfig): DialogConfig {\n return { ...defaultConfig, ...config };\n }\n\n /** @hidden Destroy existing dialog */\n protected _destroyDialog(dialog: ComponentRef<T>): void {\n this._dynamicComponentService.destroyComponent(dialog);\n this._dialogs = this._dialogs.filter((d) => d !== dialog);\n }\n}\n","import { Inject, Injectable, Injector, Optional, TemplateRef, Type } from '@angular/core';\nimport { DialogContainerComponent } from '../dialog-container/dialog-container.component';\nimport { DIALOG_DEFAULT_CONFIG, DialogConfig } from '../utils/dialog-config.class';\nimport { DynamicComponentService, RtlService } from '@fundamental-ngx/core/utils';\nimport { DialogRef } from '../utils/dialog-ref.class';\nimport { DialogBaseService } from '../base/dialog-base.service';\nimport { DialogDefaultContent } from '../utils/dialog-default-content.class';\n\nexport type DialogContentType = TemplateRef<any> | Type<any> | DialogDefaultContent;\n\n/** Service used to create a dialog. */\n@Injectable()\nexport class DialogService extends DialogBaseService<DialogContainerComponent> {\n /** @hidden */\n constructor(\n @Inject(DynamicComponentService) dynamicComponentService: DynamicComponentService,\n @Optional() @Inject(DIALOG_DEFAULT_CONFIG) private _defaultConfig: DialogConfig,\n @Optional() private _rtlService: RtlService,\n private _injector: Injector\n ) {\n super(dynamicComponentService);\n }\n\n /**\n * Opens a dialog component with provided content.\n * @param content Content of the dialog component.\n * @param dialogConfig Configuration of the dialog component.\n * @param parentInjector Parent injector instance.\n */\n public open<T = any>(\n content: DialogContentType,\n dialogConfig?: DialogConfig<T>,\n parentInjector?: Injector\n ): DialogRef<T> {\n const dialogRef = new DialogRef();\n if (!parentInjector) {\n parentInjector = this._injector;\n }\n\n dialogConfig = this._applyDefaultConfig(dialogConfig || {}, this._defaultConfig || new DialogConfig());\n dialogRef.data = dialogConfig.data;\n\n const injector = Injector.create({\n providers: [\n { provide: DialogConfig, useValue: dialogConfig },\n { provide: DialogRef, useValue: dialogRef },\n { provide: RtlService, useValue: this._rtlService },\n { provide: DialogService, useValue: this }\n ],\n parent: parentInjector\n });\n\n const component = this._dynamicComponentService.createDynamicComponent<DialogContainerComponent>(\n content,\n DialogContainerComponent,\n dialogConfig,\n { injector }\n );\n\n this._dialogs.push(component);\n\n const defaultBehaviourOnClose = (): void => {\n this._destroyDialog(component);\n refSub.unsubscribe();\n };\n\n const refSub = dialogRef.afterClosed.subscribe(defaultBehaviourOnClose, defaultBehaviourOnClose);\n\n return dialogRef;\n }\n}\n","import { Component } from '@angular/core';\nimport { BarElementDirective } from '@fundamental-ngx/core/bar';\n\n/**\n * @deprecated\n * Consider using `fd-button-bar`\n */\n@Component({\n selector: 'fd-dialog-footer-button',\n template: '<ng-content></ng-content>'\n})\nexport class DialogFooterButtonComponent extends BarElementDirective {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated\n * Consider using `fd-button-bar`\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-dialog-decisive-button]',\n host: {\n '[class.fd-dialog__decisive-button]': 'true'\n }\n})\nexport class DialogDecisiveButtonDirective {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\n\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { TitleModule } from '@fundamental-ngx/core/title';\nimport { BarModule } from '@fundamental-ngx/core/bar';\nimport { BusyIndicatorModule } from '@fundamental-ngx/core/busy-indicator';\nimport { DynamicComponentService, InitialFocusModule, ResizeModule, TemplateModule } from '@fundamental-ngx/core/utils';\n\nimport { DialogComponent } from './dialog.component';\nimport { DialogHeaderComponent } from './dialog-header/dialog-header.component';\nimport { DialogBodyComponent } from './dialog-body/dialog-body.component';\nimport { DialogFooterComponent } from './dialog-footer/dialog-footer.component';\nimport { DialogService } from './dialog-service/dialog.service';\nimport { DialogContainerComponent } from './dialog-container/dialog-container.component';\nimport { DialogFooterButtonComponent } from './dialog-footer-button/dialog-footer-button.component';\nimport { DialogDefaultComponent } from './dialog-default/dialog-default.component';\nimport { DialogCloseButtonComponent } from './dialog-close-button/dialog-close-button.component';\nimport { DialogDecisiveButtonDirective } from './directives/dialog-decisive-button.directive';\nimport { DialogTitleDirective } from './directives/dialog-title.directive';\n\nconst declarations = [\n DialogComponent,\n DialogBodyComponent,\n DialogFooterComponent,\n DialogHeaderComponent,\n DialogDefaultComponent,\n DialogContainerComponent,\n DialogCloseButtonComponent,\n DialogFooterButtonComponent,\n DialogDecisiveButtonDirective,\n DialogTitleDirective\n];\n\n@NgModule({\n declarations: [declarations],\n imports: [\n BarModule,\n IconModule,\n TitleModule,\n CommonModule,\n ButtonModule,\n ResizeModule,\n TemplateModule,\n DragDropModule,\n InitialFocusModule,\n BusyIndicatorModule,\n A11yModule\n ],\n exports: [declarations, BarModule, TitleModule, TemplateModule, InitialFocusModule],\n providers: [DialogService, DynamicComponentService]\n})\nexport class DialogModule {}\n","/**\n * Represents the positioning of the dialog on the screen.\n */\nexport class DialogPosition {\n /** Value of the dialog's top position. */\n top?: string;\n\n /** Value of the dialog's bottom position. */\n bottom?: string;\n\n /** Value of the dialog's left position. */\n left?: string;\n\n /** Value of the dialog's right position. */\n right?: string;\n}\n","import { Nullable } from '@fundamental-ngx/core/shared';\n\nexport class DialogContentBase {\n /** Dialog Title id */\n titleId?: string;\n\n /** Dialog Title */\n title?: string;\n\n /** Dialog Body */\n content?: unknown;\n\n /** Aria Modal for the dialog component element */\n ariaModal?: boolean;\n\n /** Aria label for the dialog component element. */\n ariaLabel?: Nullable<string>;\n\n /** Aria labelby for the dialog component element. */\n ariaLabelledBy?: Nullable<string>;\n\n /** Aria DescribedBy for the dialog component element.. */\n ariaDescribedBy?: Nullable<string>;\n\n /** Approve Button Label */\n approveButton?: string;\n\n /** Approve Button Id */\n approveButtonId?: string;\n\n /** Approve Button Click Callback */\n approveButtonCallback?: () => void;\n\n /** Aria label for the dialog approve button element. */\n approveButtonAriaLabel?: string;\n\n /** Cancel Button Label */\n cancelButton?: string;\n\n /** Cancel Button Id */\n cancelButtonId?: string;\n\n /** Cancel Button Click Callback */\n cancelButtonCallback?: () => void;\n\n /** Close Button Callback */\n closeButtonCallback?: () => void;\n\n /** close button title */\n closeButtonTitle?: string;\n\n /** Aria labelby for the dialog close button element. */\n closeButtonAriaLabel?: string;\n}\n","import { TemplateRef } from '@angular/core';\nimport { DialogContentBase } from '../base/dialog-content-base.class';\n\nexport class DialogDefaultContent extends DialogContentBase {\n /** Dialog Body */\n content?: TemplateRef<any>;\n\n /** Subheader Body */\n subHeader?: TemplateRef<any>;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.DialogConfig","i2.DialogRef","i3","i4","i2","i5","i1","i6.DialogComponent","i7.DialogBodyComponent","i8.DialogFooterComponent","i9.DialogHeaderComponent","i10.DialogCloseButtonComponent"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/dialog",
3
- "version": "0.36.1-rc.7",
3
+ "version": "0.36.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^14.0.0",
6
6
  "@angular/core": "^14.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/dynamic-page",
3
- "version": "0.36.1-rc.7",
3
+ "version": "0.36.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^14.0.0",
6
6
  "@angular/core": "^14.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/dynamic-side-content",
3
- "version": "0.36.1-rc.7",
3
+ "version": "0.36.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^14.0.0",
6
6
  "@angular/core": "^14.0.0"
@@ -111,7 +111,7 @@ export class DialogComponent extends DialogBase {
111
111
  buildComponentCssClass() {
112
112
  return [
113
113
  this.dialogConfig.hasBackdrop ? 'fd-dialog' : 'fd-dialog--no-backdrop',
114
- this.dialogConfig.container !== 'body' || this.dialogConfig.position ? 'fd-dialog--targeted' : '',
114
+ this.dialogConfig.container !== 'body' ? 'fd-dialog--targeted' : '',
115
115
  this.showDialogWindow ? 'fd-dialog--active' : '',
116
116
  this._class,
117
117
  this.dialogConfig.backdropClass ? this.dialogConfig.backdropClass : ''
@@ -175,4 +175,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
175
175
  type: ContentChild,
176
176
  args: [DialogTitleDirective]
177
177
  }], buildComponentCssClass: [] } });
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVILGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBSUwsUUFBUSxFQUNSLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR3pDLE9BQU8sRUFBRSxhQUFhLEVBQW1CLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7O0FBRTNFOzs7Ozs7Ozs7O0dBVUc7QUFZSCxNQUFNLE9BQU8sZUFDVCxTQUFRLFVBQVU7SUEyRWxCLGNBQWM7SUFDZCxZQUN1QixZQUEwQixFQUN6QixVQUFxQixFQUM3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QixZQUFZO3VCQUFDLHFCQUFxQjtnQkFTL0IsZ0JBQWdCO3NCQURuQixZQUFZO3VCQUFDLG1CQUFtQjtnQkFVN0Isa0JBQWtCO3NCQURyQixZQUFZO3VCQUFDLHFCQUFxQjtnQkFTL0IsV0FBVztzQkFEZCxZQUFZO3VCQUFDLG9CQUFvQjtnQkFtRWxDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBhcHBseUNzc0NsYXNzLCBDc3NDbGFzc0J1aWxkZXIsIEZvY3VzVHJhcFNlcnZpY2UsIFJ0bFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdXRpbHMnO1xuXG5pbXBvcnQgeyBkaWFsb2dGYWRlTmdJZiB9IGZyb20gJy4vdXRpbHMvZGlhbG9nLmFuaW1hdGlvbnMnO1xuaW1wb3J0IHsgRGlhbG9nQ29uZmlnIH0gZnJvbSAnLi91dGlscy9kaWFsb2ctY29uZmlnLmNsYXNzJztcbmltcG9ydCB7IERpYWxvZ0hlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vZGlhbG9nLWhlYWRlci9kaWFsb2ctaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaWFsb2dCb2R5Q29tcG9uZW50IH0gZnJvbSAnLi9kaWFsb2ctYm9keS9kaWFsb2ctYm9keS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlhbG9nRm9vdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9kaWFsb2ctZm9vdGVyL2RpYWxvZy1mb290ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERpYWxvZ1JlZiB9IGZyb20gJy4vdXRpbHMvZGlhbG9nLXJlZi5jbGFzcyc7XG5pbXBvcnQgeyBEaWFsb2dCYXNlIH0gZnJvbSAnLi9iYXNlL2RpYWxvZy1iYXNlLmNsYXNzJztcbmltcG9ydCB7IERpYWxvZ1RpdGxlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2RpYWxvZy10aXRsZS5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIERpYWxvZyBjb21wb25lbnQuXG4gKlxuICogYGBgaHRtbFxuICogPGZkLWRpYWxvZz5cbiAqICAgICAgPGZkLWRpYWxvZy1oZWFkZXI+PC9mZC1kaWFsb2ctaGVhZGVyPlxuICogICAgICA8ZmQtZGlhbG9nLWJvZHk+PC9mZC1kaWFsb2ctYm9keT5cbiAqICAgICAgPGZkLWRpYWxvZy1mb290ZXI+PC9mZC1kaWFsb2ctZm9vdGVyPlxuICogPC9mZC1kaWFsb2c+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1kaWFsb2cnLFxuICAgIHN0eWxlVXJsczogWydkaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgICBob3N0OiB7XG4gICAgICAgIHRhYmluZGV4OiAnLTEnLFxuICAgICAgICAnW0BkaWFsb2ctZmFkZV0nOiAnJ1xuICAgIH0sXG4gICAgYW5pbWF0aW9uczogW2RpYWxvZ0ZhZGVOZ0lmXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIERpYWxvZ0NvbXBvbmVudFxuICAgIGV4dGVuZHMgRGlhbG9nQmFzZVxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgQ3NzQ2xhc3NCdWlsZGVyXG57XG4gICAgLyoqIEN1c3RvbSBjbGFzc2VzICovXG4gICAgQElucHV0KClcbiAgICBzZXQgY2xhc3ModXNlckNsYXNzOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fY2xhc3MgPSB1c2VyQ2xhc3M7XG4gICAgfVxuXG4gICAgLyoqIERpYWxvZ1JlZiAtIHNob3VsZCBiZSB1c2VkIGZvciBUZW1wbGF0ZSBiYXNlZCBEaWFsb2cgaW1wbGVtZW50YXRpb24gKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICAgIEBJbnB1dCgnZGlhbG9nUmVmJylcbiAgICBzZXQgZW1iZWRkZWREaWFsb2dSZWYodmFsdWU6IERpYWxvZ1JlZikge1xuICAgICAgICB0aGlzLl9kaWFsb2dSZWYgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKiogRGlhbG9nQ29uZmlnIC0gc2hvdWxkIGJlIHVzZWQgZm9yIFRlbXBsYXRlIGJhc2VkIERpYWxvZyBpbXBsZW1lbnRhdGlvbiAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gICAgQElucHV0KCdkaWFsb2dDb25maWcnKVxuICAgIHNldCBlbWJlZGRlZERpYWxvZ0NvbmZpZyh2YWx1ZTogRGlhbG9nQ29uZmlnKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nQ29uZmlnID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdkaWFsb2dXaW5kb3cnKVxuICAgIGRpYWxvZ1dpbmRvdzogRWxlbWVudFJlZjtcblxuICAgIC8qKiBAaGlkZGVuIElmIGRpYWxvZyBzdWItY29tcG9uZW50cyBkaWRuJ3QgcmVjZWl2ZSBEaWFsb2dDb25maWcgZnJvbSBJbmplY3RvciwgRGlhbG9nQ29uZmlnIGlzIHBhc3NlZCBmcm9tIHBhcmVudC5cbiAgICAgKiBUaGlzIGlzIG5lY2Vzc2FyeSB3aGVuIGRpYWxvZyBoYXMgYmVlbiBwYXNzZWQgYXMgVGVtcGxhdGVSZWYgYW5kIGNyZWF0ZWQgYXMgRW1iZWRkZWRWaWV3LlxuICAgICAqIEluIHN1Y2ggY2FzZSBwYXJlbnQgaW5qZWN0b3Igb2YgRGlhbG9nQ29tcG9uZW50IGlzIHRoZSBjb21wb25lbnQgdGhhdCBERUNMQVJFRCB0aGUgVGVtcGxhdGVSZWYuXG4gICAgICoqL1xuICAgIEBDb250ZW50Q2hpbGQoRGlhbG9nSGVhZGVyQ29tcG9uZW50KVxuICAgIHNldCBkaWFsb2dIZWFkZXJDb25maWcoY29tcG9uZW50OiBEaWFsb2dIZWFkZXJDb21wb25lbnQpIHtcbiAgICAgICAgaWYgKGNvbXBvbmVudCkge1xuICAgICAgICAgICAgY29tcG9uZW50LmRpYWxvZ0NvbmZpZyA9IHRoaXMuZGlhbG9nQ29uZmlnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKERpYWxvZ0JvZHlDb21wb25lbnQpXG4gICAgc2V0IGRpYWxvZ0JvZHlDb25maWcoY29tcG9uZW50OiBEaWFsb2dCb2R5Q29tcG9uZW50KSB7XG4gICAgICAgIGlmIChjb21wb25lbnQpIHtcbiAgICAgICAgICAgIGNvbXBvbmVudC5kaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2dSZWY7XG4gICAgICAgICAgICBjb21wb25lbnQuZGlhbG9nQ29uZmlnID0gdGhpcy5kaWFsb2dDb25maWc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGQoRGlhbG9nRm9vdGVyQ29tcG9uZW50KVxuICAgIHNldCBkaWFsb2dGb290ZXJDb25maWcoY29tcG9uZW50OiBEaWFsb2dGb290ZXJDb21wb25lbnQpIHtcbiAgICAgICAgaWYgKGNvbXBvbmVudCkge1xuICAgICAgICAgICAgY29tcG9uZW50LmRpYWxvZ0NvbmZpZyA9IHRoaXMuZGlhbG9nQ29uZmlnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKERpYWxvZ1RpdGxlRGlyZWN0aXZlKVxuICAgIHNldCBkaWFsb2dUaXRsZShjb21wb25lbnQ6IERpYWxvZ1RpdGxlRGlyZWN0aXZlKSB7XG4gICAgICAgIGlmIChjb21wb25lbnQpIHtcbiAgICAgICAgICAgIGNvbXBvbmVudC5kaWFsb2dDb25maWcgPSB0aGlzLmRpYWxvZ0NvbmZpZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIFdoZW5ldmVyIGRpYWxvZyBzaG91bGQgYmUgdmlzaWJsZSAqL1xuICAgIHNob3dEaWFsb2dXaW5kb3c6IGJvb2xlYW47XG5cbiAgICAvKiogQGhpZGRlbiBXaGVuZXZlciBkaWFsb2cgaXMgZHJhZ2dlZCAqL1xuICAgIGlzRHJhZ2dlZDogYm9vbGVhbjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY2xhc3MgPSAnJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfb25IaWRkZW46IFN1YnNjcmlwdGlvbjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIHB1YmxpYyBkaWFsb2dDb25maWc6IERpYWxvZ0NvbmZpZyxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfZGlhbG9nUmVmOiBEaWFsb2dSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBAT3B0aW9uYWwoKSBydGxTZXJ2aWNlOiBSdGxTZXJ2aWNlLFxuICAgICAgICBmb2N1c1RyYXBTZXJ2aWNlOiBGb2N1c1RyYXBTZXJ2aWNlLFxuICAgICAgICBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIocm91dGVyLCBlbGVtZW50UmVmLCBjaGFuZ2VEZXRlY3RvclJlZiwgcnRsU2VydmljZSwgZm9jdXNUcmFwU2VydmljZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgX2NvbmZpZygpOiBEaWFsb2dDb25maWcge1xuICAgICAgICByZXR1cm4gdGhpcy5kaWFsb2dDb25maWc7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgX3JlZigpOiBEaWFsb2dSZWYge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlhbG9nUmVmO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuX2xpc3Rlbk9uSGlkZGVuKCk7XG4gICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgICAgICB0aGlzLl9vbkhpZGRlbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQGFwcGx5Q3NzQ2xhc3NcbiAgICBidWlsZENvbXBvbmVudENzc0NsYXNzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nQ29uZmlnLmhhc0JhY2tkcm9wID8gJ2ZkLWRpYWxvZycgOiAnZmQtZGlhbG9nLS1uby1iYWNrZHJvcCcsXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ0NvbmZpZy5jb250YWluZXIgIT09ICdib2R5JyB8fCB0aGlzLmRpYWxvZ0NvbmZpZy5wb3NpdGlvbiA/ICdmZC1kaWFsb2ctLXRhcmdldGVkJyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5zaG93RGlhbG9nV2luZG93ID8gJ2ZkLWRpYWxvZy0tYWN0aXZlJyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5fY2xhc3MsXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ0NvbmZpZy5iYWNrZHJvcENsYXNzID8gdGhpcy5kaWFsb2dDb25maWcuYmFja2Ryb3BDbGFzcyA6ICcnXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBlbGVtZW50UmVmKCk6IEVsZW1lbnRSZWYge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBMaXN0ZW4gb24gRGlhbG9nIHZpc2liaWxpdHkgKi9cbiAgICBwcml2YXRlIF9saXN0ZW5PbkhpZGRlbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25IaWRkZW4gPSB0aGlzLl9kaWFsb2dSZWYub25IaWRlLnN1YnNjcmliZSgoaXNIaWRkZW4pID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0RpYWxvZ1dpbmRvdyA9ICFpc0hpZGRlbjtcbiAgICAgICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgI2RpYWxvZ1dpbmRvd1xuICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgICBmZFJlc2l6ZVxuICAgIGNka1RyYXBGb2N1c1xuICAgIGNka0RyYWdcbiAgICBjZGtEcmFnQm91bmRhcnk9XCIuZmQtZGlhbG9nXCJcbiAgICBbZmRSZXNpemVCb3VuZGFyeV09XCJlbGVtZW50UmVmKCk/Lm5hdGl2ZUVsZW1lbnRcIlxuICAgIGNsYXNzPVwiZmQtZGlhbG9nX19jb250ZW50XCJcbiAgICBbY2xhc3NdPVwiZGlhbG9nQ29uZmlnLmRpYWxvZ1BhbmVsQ2xhc3NcIlxuICAgIFtjbGFzcy5jZGstZHJhZ109XCJkaWFsb2dDb25maWcuZHJhZ2dhYmxlXCJcbiAgICBbY2xhc3MuZmQtZGlhbG9nX19jb250ZW50LS1zXT1cImRpYWxvZ1BhZGRpbmdTaXplID09PSAnc20nXCJcbiAgICBbY2xhc3MuZmQtZGlhbG9nX19jb250ZW50LS1tXT1cImRpYWxvZ1BhZGRpbmdTaXplID09PSAnbWQnXCJcbiAgICBbY2xhc3MuZmQtZGlhbG9nX19jb250ZW50LS1sXT1cImRpYWxvZ1BhZGRpbmdTaXplID09PSAnbGcnXCJcbiAgICBbY2xhc3MuZmQtZGlhbG9nX19jb250ZW50LS14bF09XCJkaWFsb2dQYWRkaW5nU2l6ZSA9PT0gJ3hsJ1wiXG4gICAgW2NsYXNzLmZkLWRpYWxvZ19fY29udGVudC0tbW9iaWxlXT1cImRpYWxvZ0NvbmZpZy5tb2JpbGVcIlxuICAgIFtjbGFzcy5mZC1kaWFsb2dfX2NvbnRlbnQtLWZ1bGwtc2NyZWVuXT1cImRpYWxvZ0NvbmZpZy5mdWxsU2NyZWVuXCJcbiAgICBbY2xhc3MuZmQtZGlhbG9nX19jb250ZW50LS1uby1tb2JpbGUtc3RyZXRjaF09XCJkaWFsb2dDb25maWcubW9iaWxlT3V0ZXJTcGFjaW5nXCJcbiAgICBbY2xhc3MuZmQtZGlhbG9nX19jb250ZW50LS1kcmFnZ2FibGUtZ3JhYl09XCJkaWFsb2dDb25maWcuZHJhZ2dhYmxlICYmICFpc0RyYWdnZWRcIlxuICAgIFtjbGFzcy5mZC1kaWFsb2dfX2NvbnRlbnQtLWRyYWdnYWJsZS1ncmFiYmluZ109XCJkaWFsb2dDb25maWcuZHJhZ2dhYmxlICYmIGlzRHJhZ2dlZFwiXG4gICAgW2NsYXNzLmZkLWRpYWxvZ19fY29udGVudC0td2l0aC1oZWFkZXJdPVwiaGVhZGVyV3JhcHBlci5jaGlsZHJlbi5sZW5ndGhcIlxuICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiIWRpYWxvZ0NvbmZpZy5kcmFnZ2FibGVcIlxuICAgIFtmZFJlc2l6ZURpc2FibGVkXT1cIiFkaWFsb2dDb25maWcucmVzaXphYmxlXCJcbiAgICBbQGRpYWxvZy1mYWRlXVxuICAgIFthdHRyLmlkXT1cImRpYWxvZ0NvbmZpZy5pZFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJkaWFsb2dDb25maWcuYXJpYUxhYmVsXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiZGlhbG9nQ29uZmlnLmFyaWFMYWJlbGxlZEJ5XCJcbiAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImRpYWxvZ0NvbmZpZy5hcmlhRGVzY3JpYmVkQnlcIlxuICAgIFthdHRyLmFyaWEtbW9kYWxdPVwiZGlhbG9nQ29uZmlnLmFyaWFNb2RhbFwiXG4gICAgKGNka0RyYWdTdGFydGVkKT1cImlzRHJhZ2dlZCA9IHRydWVcIlxuICAgIChjZGtEcmFnRW5kZWQpPVwiaXNEcmFnZ2VkID0gZmFsc2VcIlxuICAgIChvblJlc2l6ZUVuZCk9XCJhZGp1c3RSZXNwb25zaXZlUGFkZGluZygpXCJcbj5cbiAgICA8c3BhbiBmZFJlc2l6ZUhhbmRsZSAqbmdJZj1cImRpYWxvZ0NvbmZpZy5yZXNpemFibGVcIiBjbGFzcz1cImZkLWRpYWxvZ19fcmVzaXplLWhhbmRsZVwiPjwvc3Bhbj5cblxuICAgIDxkaXYgI2hlYWRlcldyYXBwZXIgY2RrRHJhZ0hhbmRsZSBbY2RrRHJhZ0hhbmRsZURpc2FibGVkXT1cIiFkaWFsb2dDb25maWcuZHJhZ2dhYmxlXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImZkLWRpYWxvZy1oZWFkZXJcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmZC1kaWFsb2ctYm9keVwiPjwvbmctY29udGVudD5cblxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImZkLWRpYWxvZy1mb290ZXJcIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVILGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBSUwsUUFBUSxFQUNSLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR3pDLE9BQU8sRUFBRSxhQUFhLEVBQW1CLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7O0FBRTNFOzs7Ozs7Ozs7O0dBVUc7QUFZSCxNQUFNLE9BQU8sZUFDVCxTQUFRLFVBQVU7SUEyRWxCLGNBQWM7SUFDZCxZQUN1QixZQUEwQixFQUN6QixVQUFxQixFQUM3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QWdCO3NCQURuQixZQUFZO3VCQUFDLG1CQUFtQjtnQkFVN0Isa0JBQWtCO3NCQURyQixZQUFZO3VCQUFDLHFCQUFxQjtnQkFTL0IsV0FBVztzQkFEZCxZQUFZO3VCQUFDLG9CQUFvQjtnQkFtRWxDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBhcHBseUNzc0NsYXNzLCBDc3NDbGFzc0J1aWxkZXIsIEZvY3VzVHJhcFNlcnZpY2UsIFJ0bFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdXRpbHMnO1xuXG5pbXBvcnQgeyBkaWFsb2dGYWRlTmdJZiB9IGZyb20gJy4vdXRpbHMvZGlhbG9nLmFuaW1hdGlvbnMnO1xuaW1wb3J0IHsgRGlhbG9nQ29uZmlnIH0gZnJvbSAnLi91dGlscy9kaWFsb2ctY29uZmlnLmNsYXNzJztcbmltcG9ydCB7IERpYWxvZ0hlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vZGlhbG9nLWhlYWRlci9kaWFsb2ctaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaWFsb2dCb2R5Q29tcG9uZW50IH0gZnJvbSAnLi9kaWFsb2ctYm9keS9kaWFsb2ctYm9keS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlhbG9nRm9vdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9kaWFsb2ctZm9vdGVyL2RpYWxvZy1mb290ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERpYWxvZ1JlZiB9IGZyb20gJy4vdXRpbHMvZGlhbG9nLXJlZi5jbGFzcyc7XG5pbXBvcnQgeyBEaWFsb2dCYXNlIH0gZnJvbSAnLi9iYXNlL2RpYWxvZy1iYXNlLmNsYXNzJztcbmltcG9ydCB7IERpYWxvZ1RpdGxlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2RpYWxvZy10aXRsZS5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIERpYWxvZyBjb21wb25lbnQuXG4gKlxuICogYGBgaHRtbFxuICogPGZkLWRpYWxvZz5cbiAqICAgICAgPGZkLWRpYWxvZy1oZWFkZXI+PC9mZC1kaWFsb2ctaGVhZGVyPlxuICogICAgICA8ZmQtZGlhbG9nLWJvZHk+PC9mZC1kaWFsb2ctYm9keT5cbiAqICAgICAgPGZkLWRpYWxvZy1mb290ZXI+PC9mZC1kaWFsb2ctZm9vdGVyPlxuICogPC9mZC1kaWFsb2c+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1kaWFsb2cnLFxuICAgIHN0eWxlVXJsczogWydkaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgICBob3N0OiB7XG4gICAgICAgIHRhYmluZGV4OiAnLTEnLFxuICAgICAgICAnW0BkaWFsb2ctZmFkZV0nOiAnJ1xuICAgIH0sXG4gICAgYW5pbWF0aW9uczogW2RpYWxvZ0ZhZGVOZ0lmXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIERpYWxvZ0NvbXBvbmVudFxuICAgIGV4dGVuZHMgRGlhbG9nQmFzZVxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgQ3NzQ2xhc3NCdWlsZGVyXG57XG4gICAgLyoqIEN1c3RvbSBjbGFzc2VzICovXG4gICAgQElucHV0KClcbiAgICBzZXQgY2xhc3ModXNlckNsYXNzOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fY2xhc3MgPSB1c2VyQ2xhc3M7XG4gICAgfVxuXG4gICAgLyoqIERpYWxvZ1JlZiAtIHNob3VsZCBiZSB1c2VkIGZvciBUZW1wbGF0ZSBiYXNlZCBEaWFsb2cgaW1wbGVtZW50YXRpb24gKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICAgIEBJbnB1dCgnZGlhbG9nUmVmJylcbiAgICBzZXQgZW1iZWRkZWREaWFsb2dSZWYodmFsdWU6IERpYWxvZ1JlZikge1xuICAgICAgICB0aGlzLl9kaWFsb2dSZWYgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKiogRGlhbG9nQ29uZmlnIC0gc2hvdWxkIGJlIHVzZWQgZm9yIFRlbXBsYXRlIGJhc2VkIERpYWxvZyBpbXBsZW1lbnRhdGlvbiAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gICAgQElucHV0KCdkaWFsb2dDb25maWcnKVxuICAgIHNldCBlbWJlZGRlZERpYWxvZ0NvbmZpZyh2YWx1ZTogRGlhbG9nQ29uZmlnKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nQ29uZmlnID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdkaWFsb2dXaW5kb3cnKVxuICAgIGRpYWxvZ1dpbmRvdzogRWxlbWVudFJlZjtcblxuICAgIC8qKiBAaGlkZGVuIElmIGRpYWxvZyBzdWItY29tcG9uZW50cyBkaWRuJ3QgcmVjZWl2ZSBEaWFsb2dDb25maWcgZnJvbSBJbmplY3RvciwgRGlhbG9nQ29uZmlnIGlzIHBhc3NlZCBmcm9tIHBhcmVudC5cbiAgICAgKiBUaGlzIGlzIG5lY2Vzc2FyeSB3aGVuIGRpYWxvZyBoYXMgYmVlbiBwYXNzZWQgYXMgVGVtcGxhdGVSZWYgYW5kIGNyZWF0ZWQgYXMgRW1iZWRkZWRWaWV3LlxuICAgICAqIEluIHN1Y2ggY2FzZSBwYXJlbnQgaW5qZWN0b3Igb2YgRGlhbG9nQ29tcG9uZW50IGlzIHRoZSBjb21wb25lbnQgdGhhdCBERUNMQVJFRCB0aGUgVGVtcGxhdGVSZWYuXG4gICAgICoqL1xuICAgIEBDb250ZW50Q2hpbGQoRGlhbG9nSGVhZGVyQ29tcG9uZW50KVxuICAgIHNldCBkaWFsb2dIZWFkZXJDb25maWcoY29tcG9uZW50OiBEaWFsb2dIZWFkZXJDb21wb25lbnQpIHtcbiAgICAgICAgaWYgKGNvbXBvbmVudCkge1xuICAgICAgICAgICAgY29tcG9uZW50LmRpYWxvZ0NvbmZpZyA9IHRoaXMuZGlhbG9nQ29uZmlnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKERpYWxvZ0JvZHlDb21wb25lbnQpXG4gICAgc2V0IGRpYWxvZ0JvZHlDb25maWcoY29tcG9uZW50OiBEaWFsb2dCb2R5Q29tcG9uZW50KSB7XG4gICAgICAgIGlmIChjb21wb25lbnQpIHtcbiAgICAgICAgICAgIGNvbXBvbmVudC5kaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2dSZWY7XG4gICAgICAgICAgICBjb21wb25lbnQuZGlhbG9nQ29uZmlnID0gdGhpcy5kaWFsb2dDb25maWc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGQoRGlhbG9nRm9vdGVyQ29tcG9uZW50KVxuICAgIHNldCBkaWFsb2dGb290ZXJDb25maWcoY29tcG9uZW50OiBEaWFsb2dGb290ZXJDb21wb25lbnQpIHtcbiAgICAgICAgaWYgKGNvbXBvbmVudCkge1xuICAgICAgICAgICAgY29tcG9uZW50LmRpYWxvZ0NvbmZpZyA9IHRoaXMuZGlhbG9nQ29uZmlnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKERpYWxvZ1RpdGxlRGlyZWN0aXZlKVxuICAgIHNldCBkaWFsb2dUaXRsZShjb21wb25lbnQ6IERpYWxvZ1RpdGxlRGlyZWN0aXZlKSB7XG4gICAgICAgIGlmIChjb21wb25lbnQpIHtcbiAgICAgICAgICAgIGNvbXBvbmVudC5kaWFsb2dDb25maWcgPSB0aGlzLmRpYWxvZ0NvbmZpZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIFdoZW5ldmVyIGRpYWxvZyBzaG91bGQgYmUgdmlzaWJsZSAqL1xuICAgIHNob3dEaWFsb2dXaW5kb3c6IGJvb2xlYW47XG5cbiAgICAvKiogQGhpZGRlbiBXaGVuZXZlciBkaWFsb2cgaXMgZHJhZ2dlZCAqL1xuICAgIGlzRHJhZ2dlZDogYm9vbGVhbjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY2xhc3MgPSAnJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfb25IaWRkZW46IFN1YnNjcmlwdGlvbjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIHB1YmxpYyBkaWFsb2dDb25maWc6IERpYWxvZ0NvbmZpZyxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfZGlhbG9nUmVmOiBEaWFsb2dSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBAT3B0aW9uYWwoKSBydGxTZXJ2aWNlOiBSdGxTZXJ2aWNlLFxuICAgICAgICBmb2N1c1RyYXBTZXJ2aWNlOiBGb2N1c1RyYXBTZXJ2aWNlLFxuICAgICAgICBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIocm91dGVyLCBlbGVtZW50UmVmLCBjaGFuZ2VEZXRlY3RvclJlZiwgcnRsU2VydmljZSwgZm9jdXNUcmFwU2VydmljZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgX2NvbmZpZygpOiBEaWFsb2dDb25maWcge1xuICAgICAgICByZXR1cm4gdGhpcy5kaWFsb2dDb25maWc7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgX3JlZigpOiBEaWFsb2dSZWYge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlhbG9nUmVmO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuX2xpc3Rlbk9uSGlkZGVuKCk7XG4gICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgICAgICB0aGlzLl9vbkhpZGRlbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQGFwcGx5Q3NzQ2xhc3NcbiAgICBidWlsZENvbXBvbmVudENzc0NsYXNzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nQ29uZmlnLmhhc0JhY2tkcm9wID8gJ2ZkLWRpYWxvZycgOiAnZmQtZGlhbG9nLS1uby1iYWNrZHJvcCcsXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ0NvbmZpZy5jb250YWluZXIgIT09ICdib2R5JyA/ICdmZC1kaWFsb2ctLXRhcmdldGVkJyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5zaG93RGlhbG9nV2luZG93ID8gJ2ZkLWRpYWxvZy0tYWN0aXZlJyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5fY2xhc3MsXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ0NvbmZpZy5iYWNrZHJvcENsYXNzID8gdGhpcy5kaWFsb2dDb25maWcuYmFja2Ryb3BDbGFzcyA6ICcnXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBlbGVtZW50UmVmKCk6IEVsZW1lbnRSZWYge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBMaXN0ZW4gb24gRGlhbG9nIHZpc2liaWxpdHkgKi9cbiAgICBwcml2YXRlIF9saXN0ZW5PbkhpZGRlbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25IaWRkZW4gPSB0aGlzLl9kaWFsb2dSZWYub25IaWRlLnN1YnNjcmliZSgoaXNIaWRkZW4pID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0RpYWxvZ1dpbmRvdyA9ICFpc0hpZGRlbjtcbiAgICAgICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgI2RpYWxvZ1dpbmRvd1xuICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgICBmZFJlc2l6ZVxuICAgIGNka1RyYXBGb2N1c1xuICAgIGNka0RyYWdcbiAgICBjZGtEcmFnQm91bmRhcnk9XCIuZmQtZGlhbG9nXCJcbiAgICBbZmRSZXNpemVCb3VuZGFyeV09XCJlbGVtZW50UmVmKCk/Lm5hdGl2ZUVsZW1lbnRcIlxuICAgIGNsYXNzPVwiZmQtZGlhbG9nX19jb250ZW50XCJcbiAgICBbY2xhc3NdPVwiZGlhbG9nQ29uZmlnLmRpYWxvZ1BhbmVsQ2xhc3NcIlxuICAgIFtjbGFzcy5jZGstZHJhZ109XCJkaWFsb2dDb25maWcuZHJhZ2dhYmxlXCJcbiAgICBbY2xhc3MuZmQtZGlhbG9nX19jb250ZW50LS1zXT1cImRpYWxvZ1BhZGRpbmdTaXplID09PSAnc20nXCJcbiAgICBbY2xhc3MuZmQtZGlhbG9nX19jb250ZW50LS1tXT1cImRpYWxvZ1BhZGRpbmdTaXplID09PSAnbWQnXCJcbiAgICBbY2xhc3MuZmQtZGlhbG9nX19jb250ZW50LS1sXT1cImRpYWxvZ1BhZGRpbmdTaXplID09PSAnbGcnXCJcbiAgICBbY2xhc3MuZmQtZGlhbG9nX19jb250ZW50LS14bF09XCJkaWFsb2dQYWRkaW5nU2l6ZSA9PT0gJ3hsJ1wiXG4gICAgW2NsYXNzLmZkLWRpYWxvZ19fY29udGVudC0tbW9iaWxlXT1cImRpYWxvZ0NvbmZpZy5tb2JpbGVcIlxuICAgIFtjbGFzcy5mZC1kaWFsb2dfX2NvbnRlbnQtLWZ1bGwtc2NyZWVuXT1cImRpYWxvZ0NvbmZpZy5mdWxsU2NyZWVuXCJcbiAgICBbY2xhc3MuZmQtZGlhbG9nX19jb250ZW50LS1uby1tb2JpbGUtc3RyZXRjaF09XCJkaWFsb2dDb25maWcubW9iaWxlT3V0ZXJTcGFjaW5nXCJcbiAgICBbY2xhc3MuZmQtZGlhbG9nX19jb250ZW50LS1kcmFnZ2FibGUtZ3JhYl09XCJkaWFsb2dDb25maWcuZHJhZ2dhYmxlICYmICFpc0RyYWdnZWRcIlxuICAgIFtjbGFzcy5mZC1kaWFsb2dfX2NvbnRlbnQtLWRyYWdnYWJsZS1ncmFiYmluZ109XCJkaWFsb2dDb25maWcuZHJhZ2dhYmxlICYmIGlzRHJhZ2dlZFwiXG4gICAgW2NsYXNzLmZkLWRpYWxvZ19fY29udGVudC0td2l0aC1oZWFkZXJdPVwiaGVhZGVyV3JhcHBlci5jaGlsZHJlbi5sZW5ndGhcIlxuICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiIWRpYWxvZ0NvbmZpZy5kcmFnZ2FibGVcIlxuICAgIFtmZFJlc2l6ZURpc2FibGVkXT1cIiFkaWFsb2dDb25maWcucmVzaXphYmxlXCJcbiAgICBbQGRpYWxvZy1mYWRlXVxuICAgIFthdHRyLmlkXT1cImRpYWxvZ0NvbmZpZy5pZFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJkaWFsb2dDb25maWcuYXJpYUxhYmVsXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiZGlhbG9nQ29uZmlnLmFyaWFMYWJlbGxlZEJ5XCJcbiAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImRpYWxvZ0NvbmZpZy5hcmlhRGVzY3JpYmVkQnlcIlxuICAgIFthdHRyLmFyaWEtbW9kYWxdPVwiZGlhbG9nQ29uZmlnLmFyaWFNb2RhbFwiXG4gICAgKGNka0RyYWdTdGFydGVkKT1cImlzRHJhZ2dlZCA9IHRydWVcIlxuICAgIChjZGtEcmFnRW5kZWQpPVwiaXNEcmFnZ2VkID0gZmFsc2VcIlxuICAgIChvblJlc2l6ZUVuZCk9XCJhZGp1c3RSZXNwb25zaXZlUGFkZGluZygpXCJcbj5cbiAgICA8c3BhbiBmZFJlc2l6ZUhhbmRsZSAqbmdJZj1cImRpYWxvZ0NvbmZpZy5yZXNpemFibGVcIiBjbGFzcz1cImZkLWRpYWxvZ19fcmVzaXplLWhhbmRsZVwiPjwvc3Bhbj5cblxuICAgIDxkaXYgI2hlYWRlcldyYXBwZXIgY2RrRHJhZ0hhbmRsZSBbY2RrRHJhZ0hhbmRsZURpc2FibGVkXT1cIiFkaWFsb2dDb25maWcuZHJhZ2dhYmxlXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImZkLWRpYWxvZy1oZWFkZXJcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmZC1kaWFsb2ctYm9keVwiPjwvbmctY29udGVudD5cblxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImZkLWRpYWxvZy1mb290ZXJcIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
@@ -1,9 +1,10 @@
1
- import { Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output } from '@angular/core';
1
+ import { Directive, ElementRef, EventEmitter, forwardRef, HostBinding, HostListener, Input, Output } from '@angular/core';
2
+ import { ListFocusItem } from '../list-focus-item.model';
2
3
  import * as i0 from "@angular/core";
3
4
  let uniqueId = 0;
4
- export class ListGroupHeaderDirective {
5
- /** @hidden */
5
+ export class ListGroupHeaderDirective extends ListFocusItem {
6
6
  constructor(elementRef) {
7
+ super(elementRef);
7
8
  this.elementRef = elementRef;
8
9
  /** id of an element to be applied */
9
10
  this.nativeElementId = `fd-list-group-header-${++uniqueId}`;
@@ -16,7 +17,12 @@ export class ListGroupHeaderDirective {
16
17
  }
17
18
  }
18
19
  ListGroupHeaderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ListGroupHeaderDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
19
- ListGroupHeaderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.2", type: ListGroupHeaderDirective, selector: "[fdListGroupHeader], [fd-list-group-header]", inputs: { nativeElementId: "nativeElementId" }, outputs: { keyDown: "keyDown" }, host: { listeners: { "keydown": "keydownHandler($event)" }, properties: { "style.outline": "\"none\"", "class.fd-list__item": "true", "class.fd-list__group-header": "true", "attr.id": "this.nativeElementId" } }, ngImport: i0 });
20
+ ListGroupHeaderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.2", type: ListGroupHeaderDirective, selector: "[fdListGroupHeader], [fd-list-group-header]", inputs: { nativeElementId: "nativeElementId" }, outputs: { keyDown: "keyDown" }, host: { listeners: { "keydown": "keydownHandler($event)" }, properties: { "style.outline": "\"none\"", "class.fd-list__item": "true", "class.fd-list__group-header": "true", "attr.id": "this.nativeElementId" } }, providers: [
21
+ {
22
+ provide: ListFocusItem,
23
+ useExisting: forwardRef(() => ListGroupHeaderDirective)
24
+ }
25
+ ], usesInheritance: true, ngImport: i0 });
20
26
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ListGroupHeaderDirective, decorators: [{
21
27
  type: Directive,
22
28
  args: [{
@@ -25,7 +31,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
25
31
  '[style.outline]': '"none"',
26
32
  '[class.fd-list__item]': 'true',
27
33
  '[class.fd-list__group-header]': 'true'
28
- }
34
+ },
35
+ providers: [
36
+ {
37
+ provide: ListFocusItem,
38
+ useExisting: forwardRef(() => ListGroupHeaderDirective)
39
+ }
40
+ ]
29
41
  }]
30
42
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { nativeElementId: [{
31
43
  type: Input
@@ -38,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
38
50
  type: HostListener,
39
51
  args: ['keydown', ['$event']]
40
52
  }] } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1ncm91cC1oZWFkZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvbGlzdC9kaXJlY3RpdmVzL2xpc3QtZ3JvdXAtaGVhZGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUU5RyxJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFVakIsTUFBTSxPQUFPLHdCQUF3QjtJQVVqQyxjQUFjO0lBQ2QsWUFBcUIsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVYzQyxxQ0FBcUM7UUFHckMsb0JBQWUsR0FBa0Isd0JBQXdCLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFFdEUsNkRBQTZEO1FBRTdELFlBQU8sR0FBZ0MsSUFBSSxZQUFZLEVBQWlCLENBQUM7SUFHM0IsQ0FBQztJQUUvQyxjQUFjO0lBRWQsY0FBYyxDQUFDLEtBQW9CO1FBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7O3FIQWpCUSx3QkFBd0I7eUdBQXhCLHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQVJwQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw2Q0FBNkM7b0JBQ3ZELElBQUksRUFBRTt3QkFDRixpQkFBaUIsRUFBRSxRQUFRO3dCQUMzQix1QkFBdUIsRUFBRSxNQUFNO3dCQUMvQiwrQkFBK0IsRUFBRSxNQUFNO3FCQUMxQztpQkFDSjtpR0FLRyxlQUFlO3NCQUZkLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsU0FBUztnQkFLdEIsT0FBTztzQkFETixNQUFNO2dCQVFQLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5sZXQgdW5pcXVlSWQgPSAwO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZExpc3RHcm91cEhlYWRlcl0sIFtmZC1saXN0LWdyb3VwLWhlYWRlcl0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tzdHlsZS5vdXRsaW5lXSc6ICdcIm5vbmVcIicsXG4gICAgICAgICdbY2xhc3MuZmQtbGlzdF9faXRlbV0nOiAndHJ1ZScsXG4gICAgICAgICdbY2xhc3MuZmQtbGlzdF9fZ3JvdXAtaGVhZGVyXSc6ICd0cnVlJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgTGlzdEdyb3VwSGVhZGVyRGlyZWN0aXZlIHtcbiAgICAvKiogaWQgb2YgYW4gZWxlbWVudCB0byBiZSBhcHBsaWVkICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxuICAgIG5hdGl2ZUVsZW1lbnRJZDogc3RyaW5nIHwgbnVsbCA9IGBmZC1saXN0LWdyb3VwLWhlYWRlci0keysrdW5pcXVlSWR9YDtcblxuICAgIC8qKiBAaGlkZGVuIEltcGxlbWVudGF0aW9uIG9mIEtleWJvYXJkU3VwcG9ydEl0ZW1JbnRlcmZhY2UgKi9cbiAgICBAT3V0cHV0KClcbiAgICBrZXlEb3duOiBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIGtleWRvd25IYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMua2V5RG93bi5lbWl0KGV2ZW50KTtcbiAgICB9XG59XG4iXX0=
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1ncm91cC1oZWFkZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvbGlzdC9kaXJlY3RpdmVzL2xpc3QtZ3JvdXAtaGVhZGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBRXpELElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztBQWdCakIsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGFBQWE7SUFVdkQsWUFBcUIsVUFBc0I7UUFDdkMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBREQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVQzQyxxQ0FBcUM7UUFHckMsb0JBQWUsR0FBa0Isd0JBQXdCLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFFdEUsNkRBQTZEO1FBRTdELFlBQU8sR0FBZ0MsSUFBSSxZQUFZLEVBQWlCLENBQUM7SUFJekUsQ0FBQztJQUVELGNBQWM7SUFFZCxjQUFjLENBQUMsS0FBb0I7UUFDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQzs7cUhBbEJRLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLDJXQVB0QjtRQUNQO1lBQ0ksT0FBTyxFQUFFLGFBQWE7WUFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztTQUMxRDtLQUNKOzJGQUVRLHdCQUF3QjtrQkFkcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsNkNBQTZDO29CQUN2RCxJQUFJLEVBQUU7d0JBQ0YsaUJBQWlCLEVBQUUsUUFBUTt3QkFDM0IsdUJBQXVCLEVBQUUsTUFBTTt3QkFDL0IsK0JBQStCLEVBQUUsTUFBTTtxQkFDMUM7b0JBQ0QsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx5QkFBeUIsQ0FBQzt5QkFDMUQ7cUJBQ0o7aUJBQ0o7aUdBS0csZUFBZTtzQkFGZCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLFNBQVM7Z0JBS3RCLE9BQU87c0JBRE4sTUFBTTtnQkFTUCxjQUFjO3NCQURiLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBMaXN0Rm9jdXNJdGVtIH0gZnJvbSAnLi4vbGlzdC1mb2N1cy1pdGVtLm1vZGVsJztcblxubGV0IHVuaXF1ZUlkID0gMDtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRMaXN0R3JvdXBIZWFkZXJdLCBbZmQtbGlzdC1ncm91cC1oZWFkZXJdJyxcbiAgICBob3N0OiB7XG4gICAgICAgICdbc3R5bGUub3V0bGluZV0nOiAnXCJub25lXCInLFxuICAgICAgICAnW2NsYXNzLmZkLWxpc3RfX2l0ZW1dJzogJ3RydWUnLFxuICAgICAgICAnW2NsYXNzLmZkLWxpc3RfX2dyb3VwLWhlYWRlcl0nOiAndHJ1ZSdcbiAgICB9LFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBMaXN0Rm9jdXNJdGVtLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTGlzdEdyb3VwSGVhZGVyRGlyZWN0aXZlKVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBMaXN0R3JvdXBIZWFkZXJEaXJlY3RpdmUgZXh0ZW5kcyBMaXN0Rm9jdXNJdGVtIHtcbiAgICAvKiogaWQgb2YgYW4gZWxlbWVudCB0byBiZSBhcHBsaWVkICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxuICAgIG5hdGl2ZUVsZW1lbnRJZDogc3RyaW5nIHwgbnVsbCA9IGBmZC1saXN0LWdyb3VwLWhlYWRlci0keysrdW5pcXVlSWR9YDtcblxuICAgIC8qKiBAaGlkZGVuIEltcGxlbWVudGF0aW9uIG9mIEtleWJvYXJkU3VwcG9ydEl0ZW1JbnRlcmZhY2UgKi9cbiAgICBAT3V0cHV0KClcbiAgICBrZXlEb3duOiBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAga2V5ZG93bkhhbmRsZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5rZXlEb3duLmVtaXQoZXZlbnQpO1xuICAgIH1cbn1cbiJdfQ==