@koobiq/components 16.0.0-beta.7 → 16.0.0-beta.9

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 (172) hide show
  1. package/badge/_badge-theme.scss +13 -8
  2. package/badge/badge.component.d.ts +19 -1
  3. package/badge/badge.component.scss +28 -0
  4. package/badge/badge.module.d.ts +1 -1
  5. package/button-toggle/_button-toggle-theme.scss +26 -45
  6. package/button-toggle/button-toggle.scss +40 -87
  7. package/card/_card-theme.scss +1 -1
  8. package/core/option/_optgroup-theme.scss +1 -1
  9. package/core/option/_option-theme.scss +2 -2
  10. package/core/option/option.scss +4 -4
  11. package/core/styles/_koobiq-theme.scss +8 -0
  12. package/core/styles/common/_animation.scss +10 -6
  13. package/core/styles/common/_overlay.scss +1 -1
  14. package/core/styles/common/_select.scss +55 -41
  15. package/core/styles/theming/_components-theming.scss +244 -44
  16. package/core/styles/theming/_theming.scss +201 -30
  17. package/core/styles/typography/_typography.scss +175 -5
  18. package/datepicker/_datepicker-theme.scss +43 -57
  19. package/datepicker/calendar-body.scss +11 -26
  20. package/datepicker/calendar-header.scss +7 -31
  21. package/datepicker/calendar.scss +20 -25
  22. package/datepicker/datepicker-content.scss +17 -10
  23. package/datepicker/datepicker-input.scss +1 -1
  24. package/dropdown/_dropdown-theme.scss +2 -2
  25. package/dropdown/dropdown-item.scss +1 -1
  26. package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +6 -6
  27. package/esm2022/badge/badge.component.mjs +65 -5
  28. package/esm2022/badge/badge.module.mjs +10 -6
  29. package/esm2022/button/button.component.mjs +3 -2
  30. package/esm2022/button-toggle/button-toggle.component.mjs +11 -11
  31. package/esm2022/code-block/actionbar.component.mjs +1 -1
  32. package/esm2022/core/option/option.mjs +2 -2
  33. package/esm2022/core/version.mjs +2 -2
  34. package/esm2022/datepicker/calendar-body.component.mjs +6 -4
  35. package/esm2022/datepicker/calendar-header.component.mjs +3 -3
  36. package/esm2022/datepicker/calendar.component.mjs +2 -2
  37. package/esm2022/datepicker/datepicker-toggle.component.mjs +2 -2
  38. package/esm2022/datepicker/datepicker.component.mjs +3 -3
  39. package/esm2022/dropdown/dropdown-item.component.mjs +2 -2
  40. package/esm2022/dropdown/dropdown-trigger.directive.mjs +3 -2
  41. package/esm2022/file-upload/multiple-file-upload.component.mjs +5 -5
  42. package/esm2022/file-upload/single-file-upload.component.mjs +8 -9
  43. package/esm2022/form-field/form-field.mjs +2 -2
  44. package/esm2022/form-field/hint.mjs +15 -5
  45. package/esm2022/icon/icon-button.component.mjs +68 -0
  46. package/esm2022/icon/icon-item.component.mjs +27 -0
  47. package/esm2022/icon/icon.component.mjs +4 -89
  48. package/esm2022/icon/icon.module.mjs +4 -2
  49. package/esm2022/icon/public-api.mjs +3 -1
  50. package/esm2022/link/link.component.mjs +13 -2
  51. package/esm2022/list/list-selection.component.mjs +2 -2
  52. package/esm2022/list/list.component.mjs +2 -2
  53. package/esm2022/modal/modal.component.mjs +2 -2
  54. package/esm2022/popover/popover-confirm.component.mjs +3 -3
  55. package/esm2022/popover/popover.component.mjs +4 -4
  56. package/esm2022/select/select-option.directive.mjs +15 -3
  57. package/esm2022/select/select.component.mjs +13 -9
  58. package/esm2022/sidepanel/sidepanel-container.component.mjs +3 -3
  59. package/esm2022/tabs/tab-group.component.mjs +1 -1
  60. package/esm2022/timezone/timezone-option.component.mjs +2 -2
  61. package/esm2022/timezone/timezone-select.component.mjs +2 -2
  62. package/esm2022/toast/toast-animations.mjs +2 -1
  63. package/esm2022/toast/toast-container.component.mjs +21 -7
  64. package/esm2022/toast/toast.component.mjs +7 -2
  65. package/esm2022/toast/toast.service.mjs +2 -1
  66. package/esm2022/toggle/toggle.component.mjs +3 -3
  67. package/esm2022/tooltip/tooltip.component.mjs +4 -3
  68. package/esm2022/tree/control/base-tree-control.mjs +1 -1
  69. package/esm2022/tree/control/flat-tree-control.mjs +4 -4
  70. package/esm2022/tree/control/tree-control.mjs +1 -1
  71. package/esm2022/tree/padding.directive.mjs +2 -2
  72. package/esm2022/tree/toggle.mjs +2 -4
  73. package/esm2022/tree/tree-base.mjs +1 -1
  74. package/esm2022/tree/tree-option.component.mjs +2 -2
  75. package/esm2022/tree-select/tree-select.component.mjs +6 -7
  76. package/fesm2022/koobiq-components-autocomplete.mjs +5 -5
  77. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  78. package/fesm2022/koobiq-components-badge.mjs +73 -9
  79. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  80. package/fesm2022/koobiq-components-button-toggle.mjs +10 -10
  81. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  82. package/fesm2022/koobiq-components-button.mjs +2 -1
  83. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  84. package/fesm2022/koobiq-components-code-block.mjs +1 -1
  85. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  86. package/fesm2022/koobiq-components-core.mjs +3 -3
  87. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  88. package/fesm2022/koobiq-components-datepicker.mjs +13 -11
  89. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  90. package/fesm2022/koobiq-components-dropdown.mjs +4 -3
  91. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  92. package/fesm2022/koobiq-components-file-upload.mjs +7 -8
  93. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  94. package/fesm2022/koobiq-components-form-field.mjs +16 -6
  95. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  96. package/fesm2022/koobiq-components-icon.mjs +9 -7
  97. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  98. package/fesm2022/koobiq-components-link.mjs +12 -1
  99. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  100. package/fesm2022/koobiq-components-list.mjs +4 -4
  101. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  102. package/fesm2022/koobiq-components-modal.mjs +2 -2
  103. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  104. package/fesm2022/koobiq-components-popover.mjs +5 -5
  105. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  106. package/fesm2022/koobiq-components-select.mjs +26 -10
  107. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  108. package/fesm2022/koobiq-components-sidepanel.mjs +2 -2
  109. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  110. package/fesm2022/koobiq-components-tabs.mjs +1 -1
  111. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  112. package/fesm2022/koobiq-components-timezone.mjs +4 -4
  113. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  114. package/fesm2022/koobiq-components-toast.mjs +25 -8
  115. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  116. package/fesm2022/koobiq-components-toggle.mjs +2 -2
  117. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  118. package/fesm2022/koobiq-components-tooltip.mjs +3 -2
  119. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  120. package/fesm2022/koobiq-components-tree-select.mjs +5 -6
  121. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  122. package/fesm2022/koobiq-components-tree.mjs +8 -9
  123. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  124. package/file-upload/_file-upload-theme.scss +54 -40
  125. package/file-upload/file-upload.scss +2 -9
  126. package/file-upload/multiple-file-upload.component.scss +170 -59
  127. package/file-upload/single-file-upload.component.scss +42 -22
  128. package/form-field/_hint-theme.scss +5 -1
  129. package/form-field/hint.d.ts +4 -1
  130. package/form-field/hint.scss +9 -1
  131. package/icon/_icon-button-theme.scss +129 -0
  132. package/icon/_icon-item-theme.scss +41 -0
  133. package/icon/_icon-theme.scss +1 -233
  134. package/icon/icon-button.component.d.ts +22 -0
  135. package/icon/icon-button.scss +33 -0
  136. package/icon/icon-item.component.d.ts +10 -0
  137. package/icon/icon-item.scss +18 -0
  138. package/icon/icon.component.d.ts +1 -25
  139. package/icon/icon.module.d.ts +6 -4
  140. package/icon/icon.scss +0 -41
  141. package/icon/public-api.d.ts +2 -0
  142. package/link/_link-theme.scss +96 -89
  143. package/link/link.component.d.ts +4 -1
  144. package/list/_list-theme.scss +2 -2
  145. package/list/list.scss +1 -5
  146. package/markdown/_markdown-theme.scss +2 -2
  147. package/modal/_modal-theme.scss +10 -18
  148. package/modal/modal.scss +0 -1
  149. package/navbar/_navbar-theme.scss +1 -1
  150. package/package.json +11 -11
  151. package/popover/_popover-theme.scss +20 -83
  152. package/popover/popover.scss +60 -50
  153. package/prebuilt-themes/dark-theme.css +1 -1
  154. package/prebuilt-themes/light-theme.css +1 -1
  155. package/radio/_radio-theme.scss +2 -2
  156. package/select/_select-theme.scss +7 -7
  157. package/select/select-option.directive.d.ts +2 -0
  158. package/select/select.component.d.ts +1 -1
  159. package/sidepanel/_sidepanel-theme.scss +5 -0
  160. package/table/_table-theme.scss +1 -1
  161. package/toast/toast-animations.d.ts +1 -0
  162. package/toast/toast-container.component.d.ts +7 -3
  163. package/toast/toast.component.d.ts +2 -0
  164. package/toast/toast.service.d.ts +2 -0
  165. package/toggle/_toggle-theme.scss +9 -1
  166. package/toggle/toggle.scss +5 -2
  167. package/tooltip/tooltip.component.d.ts +1 -1
  168. package/tree/_tree-theme.scss +2 -2
  169. package/tree/control/base-tree-control.d.ts +1 -1
  170. package/tree/control/tree-control.d.ts +1 -1
  171. package/tree-select/_tree-select-theme.scss +7 -5
  172. package/tree-select/tree-select.component.d.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-modal.mjs","sources":["../../../packages/components/modal/modal-control.service.ts","../../../packages/components/modal/modal-ref.class.ts","../../../packages/components/modal/modal-util.ts","../../../packages/components/modal/modal.type.ts","../../../packages/components/modal/css-unit.pipe.ts","../../../packages/components/modal/modal.component.ts","../../../packages/components/modal/modal.component.html","../../../packages/components/modal/modal.directive.ts","../../../packages/components/modal/modal.service.ts","../../../packages/components/modal/modal.module.ts","../../../packages/components/modal/koobiq-components-modal.ts"],"sourcesContent":["import { Injectable, Optional, SkipSelf } from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\n\nimport { KbqModalComponent } from '.';\nimport { KbqModalRef } from './modal-ref.class';\n\n\ninterface IRegisteredMeta {\n modalRef: KbqModalRef;\n afterOpenSubscription: Subscription;\n afterCloseSubscription: Subscription;\n}\n\n@Injectable()\nexport class KbqModalControlService {\n // Track singleton afterAllClose through over the injection tree\n get afterAllClose(): Subject<void> {\n return this.parentService ? this.parentService.afterAllClose : this.rootAfterAllClose;\n }\n\n // Track singleton openModals array through over the injection tree\n get openModals(): KbqModalRef[] {\n return this.parentService ? this.parentService.openModals : this.rootOpenModals;\n }\n\n // @ts-ignore\n private rootOpenModals: KbqModalRef[] = this.parentService ? null : [];\n // @ts-ignore\n private rootAfterAllClose: Subject<void> = this.parentService ? null : new Subject<void>();\n // @ts-ignore\n private rootRegisteredMetaMap: Map<KbqModalRef, IRegisteredMeta> = this.parentService ? null : new Map();\n\n // Registered modal for later usage\n private get registeredMetaMap(): Map<KbqModalRef, IRegisteredMeta> {\n return this.parentService ? this.parentService.registeredMetaMap : this.rootRegisteredMetaMap;\n }\n\n constructor(\n @Optional() @SkipSelf() private parentService: KbqModalControlService) {\n }\n\n // Register a modal to listen its open/close\n registerModal(modalRef: KbqModalRef): void {\n if (!this.hasRegistered(modalRef)) {\n const afterOpenSubscription = modalRef.afterOpen.subscribe(() => this.openModals.push(modalRef));\n const afterCloseSubscription = modalRef.afterClose.subscribe(() => this.removeOpenModal(modalRef));\n\n this.registeredMetaMap.set(modalRef, {modalRef, afterOpenSubscription, afterCloseSubscription});\n\n this.handleMultipleMasks(modalRef);\n }\n }\n\n hasRegistered(modalRef: KbqModalRef): boolean {\n return this.registeredMetaMap.has(modalRef);\n }\n\n // Close all registered opened modals\n closeAll(): void {\n let i = this.openModals.length;\n\n while (i--) {\n this.openModals[i].close();\n }\n }\n\n private removeOpenModal(modalRef: KbqModalRef): void {\n const index = this.openModals.indexOf(modalRef);\n\n if (index > -1) {\n this.openModals.splice(index, 1);\n\n if (!this.openModals.length) {\n this.afterAllClose.next();\n }\n }\n }\n\n private handleMultipleMasks(modalRef: KbqModalRef) {\n const modals = Array.from(this.registeredMetaMap.values()).map((v) => v.modalRef) as KbqModalComponent[];\n\n if (modals.filter((modal) => modal.kbqVisible).length > 1) {\n const otherModals = modals.splice(0, modals.length - 1)\n .filter((modal) => modal.kbqVisible && modal.kbqMask);\n\n // hide other masks\n setTimeout(() => {\n otherModals.forEach((modal) => {\n modal.getInstance().kbqMask = false;\n modal.markForCheck();\n });\n });\n\n // show other masks on close\n modalRef.afterClose.subscribe(() => {\n otherModals.forEach((modal) => {\n modal.getInstance().kbqMask = true;\n modal.markForCheck();\n });\n });\n }\n }\n}\n","import { Observable } from 'rxjs';\n\nimport { KbqModalComponent } from './modal.component';\n\n\n/**\n * API class that public to users to handle the modal instance.\n * KbqModalRef is aim to avoid accessing to the modal instance directly by users.\n */\n// tslint:disable-next-line:naming-convention\nexport abstract class KbqModalRef<T = any, R = any> {\n abstract afterOpen: Observable<void>;\n abstract afterClose: Observable<R>;\n\n abstract open(): void;\n\n abstract close(result?: R): void;\n\n abstract destroy(result?: R): void;\n\n /**\n * Trigger the kbqOnOk/kbqOnCancel by manual\n */\n abstract triggerOk(): void;\n\n abstract triggerCancel(): void;\n\n // /**\n // * Return the ComponentRef of kbqContent when specify kbqContent as a Component\n // * Note: this method may return undefined if the Component has not ready yet.\n // (it only available after Modal's ngOnInit)\n // */\n // abstract getContentComponentRef(): ComponentRef<{}>;\n\n /**\n * Return the component instance of kbqContent when specify kbqContent as a Component\n * Note: this method may return undefined if the Component has not ready yet.\n * (it only available after Modal's ngOnInit)\n */\n abstract getContentComponent(): T;\n\n /**\n * Get the dom element of this Modal\n */\n abstract getElement(): HTMLElement;\n\n /**\n * Get the instance of the Modal itself\n */\n abstract getInstance(): KbqModalComponent;\n\n /**\n * Call markForCheck for change detector\n */\n abstract markForCheck();\n}\n","export interface IClickPosition {\n x: number;\n y: number;\n}\n\nexport class ModalUtil {\n private lastPosition: IClickPosition;\n\n constructor(private document: Document) {\n this.lastPosition = {x: -1, y: -1};\n this.listenDocumentClick();\n }\n\n getLastClickPosition(): IClickPosition {\n return this.lastPosition;\n }\n\n listenDocumentClick(): void {\n this.document.addEventListener('click', (event: MouseEvent) => {\n this.lastPosition = {x: event.clientX, y: event.clientY};\n });\n }\n}\n\nexport const modalUtilObject = new ModalUtil(document);\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { EventEmitter, TemplateRef, Type } from '@angular/core';\n\n\nexport type OnClickCallback<T> = ((instance: T) => (false | void | {}) | Promise<false | void | {}>);\n\n// Different modal styles we have supported\nexport type ModalType = 'default' | 'confirm' | 'custom';\n\n// Subtypes of Confirm Modal\nexport type ConfirmType = 'confirm' | 'success' | 'warn';\n\nexport enum ModalSize {\n Small = 'small',\n Medium = 'medium',\n Large = 'large'\n}\n\n// Public options for using by service\nexport interface ModalOptions<T = any, R = any> {\n kbqModalType?: ModalType;\n kbqVisible?: boolean;\n kbqZIndex?: number;\n kbqWidth?: number | string;\n kbqSize?: ModalSize;\n kbqWrapClassName?: string;\n kbqClassName?: string;\n kbqStyle?: object;\n kbqTitle?: string | TemplateRef<{}>;\n kbqContent?: string | TemplateRef<{}> | Type<T>;\n kbqComponent?: Type<T>; // The instance of component opened into the dialog.\n kbqComponentParams?: any;\n kbqClosable?: boolean;\n kbqMask?: boolean;\n kbqMaskClosable?: boolean;\n kbqMaskStyle?: object;\n kbqBodyStyle?: object;\n kbqFooter?: string | TemplateRef<{}> | IModalButtonOptions<T>[]; // Default Modal ONLY\n kbqGetContainer?: HTMLElement | OverlayRef | (() => HTMLElement | OverlayRef) | null; // STATIC\n kbqAfterOpen?: EventEmitter<void>;\n kbqAfterClose?: EventEmitter<R>;\n kbqCloseByESC?: boolean;\n kbqRestoreFocus?: boolean;\n\n // --- Predefined OK & Cancel buttons\n kbqOkText?: string;\n kbqOkType?: string;\n kbqOkLoading?: boolean;\n kbqOnOk?: EventEmitter<T> | OnClickCallback<T>;\n kbqCancelText?: string;\n kbqCancelLoading?: boolean;\n kbqOnCancel?: EventEmitter<T> | OnClickCallback<T>;\n}\n\n// tslint:disable-next-line:no-any\nexport interface IModalOptionsForService<T = any> extends ModalOptions<T> {\n kbqOnOk?: OnClickCallback<T>;\n kbqOnCancel?: OnClickCallback<T>;\n}\n\nexport interface IModalButtonOptions<T = any> {\n label: string;\n // tslint:disable-next-line\n type?: string;\n shape?: string;\n ghost?: boolean;\n size?: string;\n // Default: true, indicate whether show loading automatically while onClick returned a Promise\n autoLoading?: boolean;\n\n // [NOTE] \"componentInstance\" will refer to the component's instance when using Component\n show?: boolean | ((this: IModalButtonOptions<T>, contentComponentInstance?: T) => boolean);\n loading?: boolean | ((this: IModalButtonOptions<T>, contentComponentInstance?: T) => boolean);\n disabled?: boolean | ((this: IModalButtonOptions<T>, contentComponentInstance?: T) => boolean);\n\n autoFocus?: boolean;\n kbqModalMainAction?: boolean;\n\n onClick?(this: IModalButtonOptions<T>, contentComponentInstance?: T): (void | {}) | Promise<(void | {})>;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n\n@Pipe({\n name: 'toCssUnit'\n})\nexport class CssUnitPipe implements PipeTransform {\n transform(value: number | string, defaultUnit: string = 'px'): string {\n const formatted = +value;\n\n return isNaN(formatted) ? `${value}` : `${formatted}${defaultUnit}`;\n }\n}\n","import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n ElementRef,\n EventEmitter,\n Inject,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n Type,\n ViewChild,\n ViewChildren,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { ESCAPE, ENTER } from '@koobiq/cdk/keycodes';\nimport { KbqComponentColors } from '@koobiq/components/core';\nimport { Observable } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport { KbqModalControlService } from './modal-control.service';\nimport { KbqModalRef } from './modal-ref.class';\nimport { modalUtilObject as ModalUtil } from './modal-util';\nimport { IModalButtonOptions, ModalOptions, ModalSize, ModalType, OnClickCallback } from './modal.type';\n\n\n// Duration when perform animations (ms)\nexport const MODAL_ANIMATE_DURATION = 200;\n\ntype AnimationState = 'enter' | 'leave' | null;\n\n\n@Component({\n selector: 'kbq-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '(keydown)': 'onKeyDown($event)'\n }\n})\nexport class KbqModalComponent<T = any, R = any> extends KbqModalRef<T, R>\n implements OnInit, OnChanges, AfterViewInit, OnDestroy, ModalOptions {\n\n componentColors = KbqComponentColors;\n\n @Input() kbqModalType: ModalType = 'default';\n\n // The instance of component opened into the dialog.\n @Input() kbqComponent: Type<T>;\n // If not specified, will use <ng-content>\n @Input() kbqContent: string | TemplateRef<{}> | Type<T>;\n // available when kbqContent is a component\n // @ts-ignore\n @Input() kbqComponentParams: any;\n // Default Modal ONLY\n @Input() kbqFooter: string | TemplateRef<{}> | IModalButtonOptions<T>[];\n\n @Input()\n get kbqVisible() { return this._kbqVisible; }\n set kbqVisible(value) { this._kbqVisible = value; }\n\n private _kbqVisible = false;\n\n @Output() kbqVisibleChange = new EventEmitter<boolean>();\n\n @Input() kbqZIndex: number = 1000;\n @Input() kbqWidth: number | string;\n @Input() kbqSize: ModalSize = ModalSize.Medium;\n @Input() kbqWrapClassName: string;\n @Input() kbqClassName: string;\n @Input() kbqStyle: object;\n @Input() kbqTitle: string | TemplateRef<{}>;\n @Input() kbqCloseByESC: boolean = true;\n\n @Input()\n get kbqClosable() { return this._kbqClosable; }\n set kbqClosable(value) { this._kbqClosable = value; }\n private _kbqClosable = true;\n\n @Input()\n get kbqMask() { return this._kbqMask; }\n set kbqMask(value) { this._kbqMask = value; }\n private _kbqMask = true;\n\n @Input()\n get kbqMaskClosable() { return this._kbqMaskClosable; }\n set kbqMaskClosable(value) { this._kbqMaskClosable = value; }\n private _kbqMaskClosable = false;\n\n @Input() kbqMaskStyle: object;\n @Input() kbqBodyStyle: object;\n\n // Trigger when modal open(visible) after animations\n @Output() kbqAfterOpen = new EventEmitter<void>();\n // Trigger when modal leave-animation over\n @Output() kbqAfterClose = new EventEmitter<R>();\n\n // --- Predefined OK & Cancel buttons\n @Input() kbqOkText: string;\n @Input() kbqOkType = KbqComponentColors.Contrast;\n\n @Input() kbqRestoreFocus = true;\n\n @Input()\n get kbqOkLoading() { return this._kbqOkLoading; }\n set kbqOkLoading(value) { this._kbqOkLoading = value; }\n private _kbqOkLoading = false;\n\n @Input() @Output() kbqOnOk: EventEmitter<T> | OnClickCallback<T> = new EventEmitter<T>();\n @Input() kbqCancelText: string;\n\n @Input()\n get kbqCancelLoading() { return this._kbqCancelLoading; }\n set kbqCancelLoading(value) { this._kbqCancelLoading = value; }\n private _kbqCancelLoading = false;\n\n @Input() @Output() kbqOnCancel: EventEmitter<T> | OnClickCallback<T> = new EventEmitter<T>();\n\n @ViewChild('modalContainer', { static: true }) modalContainer: ElementRef;\n @ViewChild('bodyContainer', { read: ViewContainerRef, static: false }) bodyContainer: ViewContainerRef;\n // Only aim to focus the ok button that needs to be auto focused\n @ViewChildren('autoFocusedButton', { read: ElementRef }) autoFocusedButtons: QueryList<ElementRef>;\n\n @ViewChild('modalBody') modalBody: ElementRef;\n\n maskAnimationClassMap: object;\n modalAnimationClassMap: object;\n // The origin point that animation based on\n transformOrigin = '0px 0px 0px';\n\n // Observable alias for kbqAfterOpen\n get afterOpen(): Observable<void> {\n return this.kbqAfterOpen.asObservable();\n }\n\n // Observable alias for kbqAfterClose\n get afterClose(): Observable<R> {\n return this.kbqAfterClose.asObservable();\n }\n\n get okText(): string {\n return this.kbqOkText;\n }\n\n get cancelText(): string {\n return this.kbqCancelText;\n }\n\n // Indicate whether this dialog should hidden\n get hidden(): boolean {\n return !this.kbqVisible && !this.animationState;\n }\n\n private focusedElementBeforeOpen: HTMLElement | null;\n\n private previouslyFocusedElementOrigin: FocusOrigin;\n\n // Handle the reference when using kbqContent as Component\n private contentComponentRef: ComponentRef<T>;\n // Current animation state\n private animationState: AnimationState;\n private container: HTMLElement | OverlayRef;\n\n constructor(\n private overlay: Overlay,\n private renderer: Renderer2,\n private cfr: ComponentFactoryResolver,\n private elementRef: ElementRef,\n private viewContainer: ViewContainerRef,\n private modalControl: KbqModalControlService,\n private changeDetector: ChangeDetectorRef,\n private focusMonitor: FocusMonitor,\n @Inject(DOCUMENT) private document: any\n ) {\n super();\n }\n\n @Input() kbqGetContainer: HTMLElement | OverlayRef | (() => HTMLElement | OverlayRef) = () => this.overlay.create();\n\n ngOnInit() {\n // Create component along without View\n if (this.isComponent(this.kbqContent)) {\n this.createDynamicComponent(this.kbqContent as Type<T>);\n }\n\n // Setup default button options\n if (this.isModalButtons(this.kbqFooter)) {\n this.kbqFooter = this.formatModalButtons(this.kbqFooter as IModalButtonOptions<T>[]);\n }\n\n if (this.isComponent(this.kbqComponent)) {\n this.createDynamicComponent(this.kbqComponent);\n }\n\n // Place the modal dom to elsewhere\n this.container = typeof this.kbqGetContainer === 'function' ? this.kbqGetContainer() : this.kbqGetContainer;\n if (this.container instanceof HTMLElement) {\n this.container.appendChild(this.elementRef.nativeElement);\n } else if (this.container instanceof OverlayRef) {\n // NOTE: only attach the dom to overlay, the view container is not changed actually\n this.container.overlayElement.appendChild(this.elementRef.nativeElement);\n }\n\n // Register modal when afterOpen/afterClose is stable\n this.modalControl.registerModal(this);\n }\n\n // [NOTE] NOT available when using by service!\n // Because ngOnChanges never be called when using by service,\n // here we can't support \"kbqContent\"(Component) etc. as inputs that initialized dynamically.\n // BUT: User also can change \"kbqContent\" dynamically to trigger UI changes\n // (provided you don't use \bComponent that needs initializations)\n ngOnChanges(changes: SimpleChanges) {\n if (changes.kbqVisible) {\n // Do not trigger animation while initializing\n this.handleVisibleStateChange(this.kbqVisible, !changes.kbqVisible.firstChange);\n }\n }\n\n ngAfterViewInit() {\n // If using Component, it is the time to attach View while bodyContainer is ready\n if (this.contentComponentRef) {\n this.bodyContainer.insert(this.contentComponentRef.hostView);\n }\n this.getElement().getElementsByTagName('button')[0]?.focus();\n\n for (const autoFocusedButton of this.autoFocusedButtons.toArray()) {\n if (autoFocusedButton.nativeElement.autofocus) {\n (autoFocusedButton.nativeElement as HTMLButtonElement).focus();\n\n break;\n }\n }\n }\n\n ngOnDestroy() {\n if (this.container instanceof OverlayRef) {\n this.container.dispose();\n }\n }\n\n open() {\n this.focusedElementBeforeOpen = this.document.activeElement;\n this.focusMonitor.monitor(this.modalContainer, true)\n .pipe(take(1))\n .subscribe((origin) => {\n this.previouslyFocusedElementOrigin = origin;\n this.focusMonitor.stopMonitoring(this.modalContainer);\n });\n\n this.changeVisibleFromInside(true);\n }\n\n close(result?: R) {\n this.changeVisibleFromInside(false, result).then(() => {\n if (this.kbqRestoreFocus && this.focusedElementBeforeOpen) {\n this.focusMonitor.focusVia(\n this.focusedElementBeforeOpen as HTMLElement,\n this.previouslyFocusedElementOrigin\n );\n this.focusedElementBeforeOpen = null;\n }\n });\n }\n\n // Destroy equals Close\n destroy(result?: R) {\n this.close(result);\n }\n\n markForCheck() {\n this.changeDetector.markForCheck();\n }\n\n triggerOk() {\n this.onClickOkCancel('ok');\n }\n\n triggerCancel() {\n this.onClickOkCancel('cancel');\n }\n\n getInstance(): KbqModalComponent {\n return this;\n }\n\n getContentComponentRef(): ComponentRef<T> {\n return this.contentComponentRef;\n }\n\n getContentComponent(): T {\n return this.contentComponentRef && this.contentComponentRef.instance;\n }\n\n getElement(): HTMLElement {\n return this.elementRef && this.elementRef.nativeElement;\n }\n\n getKbqFooter(): HTMLElement {\n return this.getElement().getElementsByClassName('kbq-modal-footer').item(0) as HTMLElement;\n }\n\n onClickMask($event: MouseEvent) {\n if (\n this.kbqMask &&\n this.kbqMaskClosable &&\n ($event.target as HTMLElement).classList.contains('kbq-modal-wrap') &&\n this.kbqVisible\n ) {\n this.onClickOkCancel('cancel');\n }\n }\n\n // tslint:disable-next-line: no-reserved-keywords\n isModalType(type: ModalType): boolean {\n return this.kbqModalType === type;\n }\n\n onKeyDown(event: KeyboardEvent): void {\n\n // tslint:disable-next-line:deprecation .key isn't supported in Edge\n if (event.keyCode === ESCAPE && this.container && (this.container instanceof OverlayRef)) {\n\n this.close();\n event.preventDefault();\n }\n // tslint:disable-next-line:deprecation .key isn't supported in Edge\n if (event.ctrlKey && event.keyCode === ENTER) {\n if (this.kbqModalType === 'confirm') {\n this.triggerOk();\n }\n\n (this.getElement().querySelector('[kbq-modal-main-action]') as HTMLElement)?.click();\n\n event.preventDefault();\n }\n }\n\n // AoT\n onClickCloseBtn() {\n if (this.kbqVisible) {\n this.onClickOkCancel('cancel');\n }\n }\n\n // AoT\n // tslint:disable-next-line: no-reserved-keywords\n onClickOkCancel(type: 'ok' | 'cancel') {\n this.handleCloseResult(type, (doClose) => doClose !== false);\n }\n\n handleCloseResult(\n triggerType: 'ok' | 'cancel',\n canClose: (doClose: boolean | void | {}) => boolean\n ) {\n const trigger = { ok: this.kbqOnOk, cancel: this.kbqOnCancel }[triggerType];\n const loadingKey = { ok: 'kbqOkLoading', cancel: 'kbqCancelLoading' }[triggerType];\n\n if (trigger instanceof EventEmitter) {\n trigger.emit(this.getContentComponent());\n } else if (typeof trigger === 'function') {\n\n const result = trigger(this.getContentComponent());\n // Users can return \"false\" to prevent closing by default\n const caseClose = (doClose: boolean | void | {}) => canClose(doClose) && this.close(doClose as R);\n\n if (isPromise(result)) {\n this[loadingKey] = true;\n const handleThen = (doClose) => {\n this[loadingKey] = false;\n caseClose(doClose);\n };\n (result as Promise<void>).then(handleThen).catch(handleThen);\n } else {\n caseClose(result);\n }\n }\n }\n\n // AoT\n isNonEmptyString(value: {}): boolean {\n return typeof value === 'string' && value !== '';\n }\n\n // AoT\n isTemplateRef(value: {}): boolean {\n return value instanceof TemplateRef;\n }\n\n // AoT\n isComponent(value: {}): boolean {\n return value instanceof Type;\n }\n\n // AoT\n isModalButtons(value: {}): boolean {\n return Array.isArray(value) && value.length > 0;\n }\n\n // Lookup a button's property, if the prop is a function, call & then return the result, otherwise, return itself.\n // AoT\n getButtonCallableProp(options: IModalButtonOptions<T>, prop: string): {} {\n const value = options[prop];\n const args: any[] = [];\n if (this.contentComponentRef) {\n args.push(this.contentComponentRef.instance);\n }\n\n return typeof value === 'function' ? value.apply(options, args) : value;\n }\n\n // On kbqFooter's modal button click\n // AoT\n onButtonClick(button: IModalButtonOptions<T>) {\n // Call onClick directly\n // tslint:disable-next-line:no-inferred-empty-object-type rule seems to be broken\n const result = this.getButtonCallableProp(button, 'onClick');\n if (isPromise(result)) {\n button.loading = true;\n (result as Promise<{}>).then(() => button.loading = false).catch(() => button.loading = false);\n }\n }\n\n // Do rest things when visible state changed\n private handleVisibleStateChange(visible: boolean, animation: boolean = true, closeResult?: R): Promise<any> {\n // Hide scrollbar at the first time when shown up\n if (visible) {\n this.changeBodyOverflow(1);\n }\n\n return Promise\n .resolve(animation && this.animateTo(visible))\n // Emit open/close event after animations over\n .then(() => {\n if (visible) {\n this.kbqAfterOpen.emit();\n } else {\n this.kbqAfterClose.emit(closeResult);\n // Show/hide scrollbar when animation is over\n this.changeBodyOverflow();\n }\n });\n }\n\n // Change kbqVisible from inside\n private changeVisibleFromInside(visible: boolean, closeResult?: R): Promise<void> {\n if (this.kbqVisible !== visible) {\n // Change kbqVisible value immediately\n this.kbqVisible = visible;\n this.kbqVisibleChange.emit(visible);\n\n return this.handleVisibleStateChange(visible, true, closeResult);\n }\n\n return Promise.resolve();\n }\n\n private changeAnimationState(state: AnimationState) {\n this.animationState = state;\n if (state) {\n this.maskAnimationClassMap = {\n [`fade-${state}`]: true,\n [`fade-${state}-active`]: true\n };\n\n this.modalAnimationClassMap = {\n [`zoom-${state}`]: true,\n [`zoom-${state}-active`]: true\n };\n } else {\n // @ts-ignore\n this.maskAnimationClassMap = this.modalAnimationClassMap = null;\n }\n\n if (this.contentComponentRef) {\n this.contentComponentRef.changeDetectorRef.markForCheck();\n } else {\n this.changeDetector.markForCheck();\n }\n }\n\n private animateTo(isVisible: boolean): Promise<any> {\n // Figure out the lastest click position when shows up\n if (isVisible) {\n // [NOTE] Using timeout due to the document.click event is fired later than visible change,\n // so if not postponed to next event-loop, we can't get the lastest click position\n window.setTimeout(() => this.updateTransformOrigin());\n }\n\n this.changeAnimationState(isVisible ? 'enter' : 'leave');\n\n // Return when animation is over\n return new Promise((resolve) => {\n return window.setTimeout(\n () => {\n this.changeAnimationState(null);\n resolve(null);\n },\n MODAL_ANIMATE_DURATION\n );\n });\n }\n\n private formatModalButtons(buttons: IModalButtonOptions<T>[]): IModalButtonOptions<T>[] {\n return buttons.map((button) => {\n\n return {\n ...{\n type: 'default',\n size: 'default',\n autoLoading: true,\n show: true,\n loading: false,\n disabled: false\n },\n ...button\n };\n });\n }\n\n /**\n * Create a component dynamically but not attach to any View\n * (this action will be executed when bodyContainer is ready)\n * @param component Component class\n */\n private createDynamicComponent(component: Type<T>) {\n const factory = this.cfr.resolveComponentFactory(component);\n const childInjector = Injector.create({\n providers: [{provide: KbqModalRef, useValue: this}],\n parent: this.viewContainer.injector\n });\n\n this.contentComponentRef = factory.create(childInjector);\n\n if (this.kbqComponentParams) {\n // @ts-ignore\n Object.assign(this.contentComponentRef.instance, this.kbqComponentParams);\n }\n\n // Do the first change detection immediately\n // (or we do detection at ngAfterViewInit, multi-changes error will be thrown)\n this.contentComponentRef.changeDetectorRef.detectChanges();\n }\n\n // Update transform-origin to the last click position on document\n private updateTransformOrigin() {\n const modalElement = this.modalContainer.nativeElement as HTMLElement;\n const lastPosition = ModalUtil.getLastClickPosition();\n\n if (lastPosition) {\n this.transformOrigin = `${lastPosition.x - modalElement.offsetLeft}px ${lastPosition.y - modalElement.offsetTop}px 0px`;\n }\n }\n\n /**\n * Take care of the body's overflow to decide the existense of scrollbar\n * @param plusNum The number that the openModals.length will increase soon\n */\n private changeBodyOverflow(plusNum: number = 0) {\n const openModals = this.modalControl.openModals;\n\n if (openModals.length + plusNum > 0) {\n this.renderer.setStyle(this.document.body, 'overflow', 'hidden');\n } else {\n this.renderer.removeStyle(this.document.body, 'overflow');\n }\n }\n}\n\n////////////\n\nfunction isPromise(obj: {} | void): boolean {\n // tslint:disable-next-line: no-unbound-method\n return !!obj &&\n (typeof obj === 'object' || typeof obj === 'function') &&\n typeof (obj as Promise<{}>).then === 'function' &&\n typeof (obj as Promise<{}>).catch === 'function';\n}\n","<!-- Compatible: the <ng-content> can appear only once -->\n<ng-template #tplOriginContent>\n <ng-content></ng-content>\n</ng-template>\n\n<div>\n <div *ngIf=\"kbqMask\"\n class=\"kbq-modal-mask\"\n [ngClass]=\"maskAnimationClassMap\"\n [class.kbq-modal-mask-hidden]=\"hidden\"\n [ngStyle]=\"kbqMaskStyle\"\n [style.zIndex]=\"kbqZIndex\">\n </div>\n\n <div (mousedown)=\"onClickMask($event)\"\n class=\"kbq-modal-wrap {{ kbqWrapClassName }}\"\n [style.zIndex]=\"kbqZIndex\"\n [style.display]=\"hidden ? 'none' : ''\"\n tabindex=\"-1\">\n\n <div #modalContainer\n class=\"kbq-modal {{ kbqClassName }} kbq-modal_{{ kbqSize }}\"\n [ngClass]=\"modalAnimationClassMap\"\n [ngStyle]=\"kbqStyle\"\n [style.width]=\"kbqWidth | toCssUnit\"\n [style.transform-origin]=\"transformOrigin\">\n\n <div class=\"kbq-modal-content\" cdkTrapFocus>\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isModalType('default')\"\n [ngTemplateOutlet]=\"tplContentDefault\"></ng-container>\n <ng-container *ngSwitchCase=\"isModalType('confirm')\"\n [ngTemplateOutlet]=\"tplContentConfirm\"></ng-container>\n <ng-container *ngSwitchCase=\"isModalType('custom')\"\n [ngTemplateOutlet]=\"tplContentCustom\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #tplContentCustom>\n <ng-container #bodyContainer></ng-container>\n</ng-template>\n\n\n<!-- [Predefined] Default Modal Content -->\n<ng-template #tplContentDefault>\n <div *ngIf=\"kbqTitle\" class=\"kbq-modal-header\" kbq-title>\n <div class=\"kbq-modal-title\">\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(kbqTitle)\" [ngTemplateOutlet]=\"$any(kbqTitle)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(kbqTitle)\">\n <div [innerHTML]=\"kbqTitle\"></div>\n </ng-container>\n </ng-container>\n </div>\n\n <button *ngIf=\"kbqClosable\"\n kbq-button\n [color]=\"'contrast'\"\n (click)=\"onClickCloseBtn()\"\n class=\"kbq-modal-close kbq-button_transparent\">\n <i kbq-icon=\"mc-close-L_16\" [color]=\"componentColors.Contrast\"></i>\n </button>\n </div>\n <div class=\"kbq-modal-body kbq-scrollbar\" #modalBody [ngStyle]=\"kbqBodyStyle\">\n <ng-container #bodyContainer>\n <ng-container *ngIf=\"!isComponent(kbqContent)\" [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(kbqContent)\" [ngTemplateOutlet]=\"$any(kbqContent)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(kbqContent)\">\n <div [innerHTML]=\"kbqContent\"></div>\n </ng-container>\n <ng-container *ngSwitchDefault [ngTemplateOutlet]=\"tplOriginContent\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n <div *ngIf=\"kbqFooter || kbqOkText || kbqCancelText\" class=\"kbq-modal-footer\">\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(kbqFooter)\" [ngTemplateOutlet]=\"$any(kbqFooter)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(kbqFooter)\">\n <div [innerHTML]=\"kbqFooter\"></div>\n </ng-container>\n <ng-container *ngSwitchCase=\"isModalButtons(kbqFooter)\">\n <ng-container *ngFor=\"let button of $any(kbqFooter)\">\n <button\n kbq-button\n #autoFocusedButton\n [attr.autofocus]=\"button.autoFocus\"\n [attr.kbq-modal-main-action]=\"button.kbqModalMainAction\"\n *ngIf=\"getButtonCallableProp(button, 'show')\"\n [disabled]=\"getButtonCallableProp(button, 'disabled')\"\n [class.kbq-progress]=\"getButtonCallableProp(button, 'loading')\"\n (click)=\"onButtonClick(button)\"\n [color]=\"button.type\">\n {{ button.label }}\n </button>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button\n #autoFocusedButton\n [attr.autofocus]=\"true\"\n *ngIf=\"kbqOkText\"\n kbq-button\n [color]=\"componentColors.Contrast\"\n (click)=\"onClickOkCancel('ok')\">\n\n {{ okText }}\n </button>\n <button *ngIf=\"kbqCancelText\" kbq-button (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n<!-- /[Predefined] Default Modal Content -->\n\n<!-- [Predefined] Confirm Modal Content -->\n<ng-template #tplContentConfirm>\n <div class=\"kbq-modal-body\" [ngStyle]=\"kbqBodyStyle\">\n <ng-container #bodyContainer>\n <ng-container *ngIf=\"!isComponent(kbqContent)\" [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(kbqContent)\"\n [ngTemplateOutlet]=\"$any(kbqContent)\">\n </ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(kbqContent)\">\n <div [innerHTML]=\"kbqContent\"></div>\n </ng-container>\n <ng-container *ngSwitchDefault [ngTemplateOutlet]=\"tplOriginContent\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n <div class=\"kbq-confirm-footer\" *ngIf=\"kbqOkText || kbqCancelText\">\n <button\n kbq-button\n #autoFocusedButton\n [color]=\"kbqOkType\"\n [attr.autofocus]=\"true\"\n *ngIf=\"kbqOkText\"\n (click)=\"onClickOkCancel('ok')\">\n\n {{ okText }}\n </button>\n\n <button kbq-button *ngIf=\"kbqCancelText\" (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n </div>\n</ng-template>\n<!-- /[Predefined] Confirm Modal Content -->\n","import { Directive } from '@angular/core';\n\n\n@Directive({\n selector: `[kbq-modal-title], kbq-modal-title, [mcModalTitle]`,\n host: {\n class: 'kbq-modal-header kbq-modal-title'\n }\n})\nexport class KbqModalTitle {}\n\n@Directive({\n selector: `[kbq-modal-body], kbq-modal-body, [mcModalBody]`,\n host: {\n class: 'kbq-modal-body'\n }\n})\nexport class KbqModalBody {}\n\n@Directive({\n selector: `[kbq-modal-footer], kbq-modal-footer, [mcModalFooter]`,\n host: {\n class: 'kbq-modal-footer'\n }\n})\nexport class KbqModalFooter {}\n\n@Directive({\n selector: `[kbq-modal-main-action]`\n})\nexport class KbqModalMainAction {}\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentRef, Injectable } from '@angular/core';\nimport { ESCAPE } from '@koobiq/cdk/keycodes';\nimport { Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { KbqModalControlService } from './modal-control.service';\nimport { KbqModalRef } from './modal-ref.class';\nimport { KbqModalComponent } from './modal.component';\nimport { ConfirmType, ModalOptions, IModalOptionsForService } from './modal.type';\n\n\n// A builder used for managing service creating modals\nexport class ModalBuilderForService {\n // Modal ComponentRef, \"null\" means it has been destroyed\n private modalRef: ComponentRef<KbqModalComponent> | null;\n private overlayRef: OverlayRef;\n\n constructor(private overlay: Overlay, options: IModalOptionsForService = {}) {\n this.createModal();\n\n if (!('kbqGetContainer' in options)) {\n options.kbqGetContainer = undefined;\n }\n\n this.changeProps(options);\n this.modalRef!.instance.open();\n this.modalRef!.instance.kbqAfterClose.subscribe(() => this.destroyModal());\n\n this.overlayRef.keydownEvents()\n .pipe(filter((event: KeyboardEvent) => {\n // tslint:disable-next-line:deprecation replacement .key isn't supported in Edge\n return !!(event.keyCode === ESCAPE && options.kbqCloseByESC);\n }))\n .subscribe(\n () => this.getInstance()?.handleCloseResult('cancel', () => true)\n );\n }\n\n getInstance(): KbqModalComponent | null {\n return this.modalRef && this.modalRef.instance;\n }\n\n destroyModal(): void {\n if (this.modalRef) {\n this.overlayRef.dispose();\n this.modalRef = null;\n }\n }\n\n private changeProps(options: ModalOptions): void {\n if (this.modalRef) {\n // here not limit user's inputs at runtime\n Object.assign(this.modalRef.instance, options);\n }\n }\n\n // Create component to ApplicationRef\n private createModal(): void {\n this.overlayRef = this.overlay.create();\n this.overlayRef.hostElement.classList.add('kbq-modal-overlay');\n this.modalRef = this.overlayRef.attach(new ComponentPortal(KbqModalComponent));\n }\n}\n\n@Injectable()\nexport class KbqModalService {\n // Track of the current close modals (we assume invisible is close this time)\n get openModals(): KbqModalRef[] {\n return this.modalControl.openModals;\n }\n\n get afterAllClose(): Observable<void> {\n return this.modalControl.afterAllClose.asObservable();\n }\n\n constructor(\n private overlay: Overlay,\n private modalControl: KbqModalControlService\n ) {}\n\n // Closes all of the currently-open dialogs\n closeAll(): void {\n this.modalControl.closeAll();\n }\n\n create<T>(options: IModalOptionsForService<T> = {}): KbqModalRef<T> {\n\n if (typeof options.kbqOnCancel !== 'function') {\n // Leave a empty function to close this modal by default\n // tslint:disable-next-line\n options.kbqOnCancel = () => {};\n }\n\n if (!('kbqCloseByESC' in options)) {\n options.kbqCloseByESC = true;\n }\n // Remove the Cancel button if the user not specify a Cancel button\n if (!('kbqCancelText' in options)) {\n options.kbqCancelText = undefined;\n }\n // Remove the Ok button if the user not specify a Ok button\n if (!('kbqOkText' in options)) {\n options.kbqOkText = undefined;\n }\n // Remove the footer if the user not specify a footer\n if (!('kbqFooter' in options)) {\n options.kbqFooter = undefined;\n }\n\n return new ModalBuilderForService(this.overlay, options).getInstance()!;\n }\n\n confirm<T>(options: IModalOptionsForService<T> = {}, confirmType: ConfirmType = 'confirm'): KbqModalRef<T> {\n if ('kbqFooter' in options) {\n console.warn(`The Confirm-Modal doesn't support \"kbqFooter\", this property will be ignored.`);\n }\n\n // NOTE: only support function currently by calling confirm()\n if (typeof options.kbqOnOk !== 'function') {\n // Leave a empty function to close this modal by default\n // tslint:disable-next-line\n options.kbqOnOk = () => {};\n }\n\n options.kbqModalType = 'confirm';\n options.kbqClassName = `kbq-confirm kbq-confirm-${confirmType} ${options.kbqClassName || ''}`;\n\n return this.create(options);\n }\n\n open<T>(options: IModalOptionsForService<T> = {}): KbqModalRef<T> {\n\n options.kbqModalType = 'custom';\n\n return this.create(options);\n }\n\n success<T>(options: IModalOptionsForService<T> = {}): KbqModalRef<T> {\n return this.simpleConfirm(options, 'success');\n }\n\n // tslint:disable-next-line: no-reserved-keywords\n delete<T>(options: IModalOptionsForService<T> = {}): KbqModalRef<T> {\n return this.simpleConfirm(options, 'warn');\n }\n\n private simpleConfirm<T>(options: IModalOptionsForService<T> = {}, confirmType: ConfirmType): KbqModalRef<T> {\n return this.confirm(options, confirmType);\n }\n}\n","import { A11yModule, ConfigurableFocusTrapFactory, FocusTrapFactory } from '@angular/cdk/a11y';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { KbqButtonModule } from '@koobiq/components/button';\r\nimport { KbqIconModule } from '@koobiq/components/icon';\r\nimport { KbqTitleModule } from '@koobiq/components/title';\r\n\r\nimport { CssUnitPipe } from './css-unit.pipe';\r\nimport { KbqModalControlService } from './modal-control.service';\r\nimport { KbqModalComponent } from './modal.component';\r\nimport { KbqModalBody, KbqModalFooter, KbqModalTitle, KbqModalMainAction } from './modal.directive';\r\nimport { KbqModalService } from './modal.service';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n OverlayModule,\r\n A11yModule,\r\n KbqButtonModule,\r\n KbqIconModule,\r\n KbqTitleModule\r\n ],\r\n exports: [\r\n KbqModalComponent,\r\n KbqModalTitle,\r\n KbqModalBody,\r\n KbqModalFooter,\r\n KbqModalMainAction\r\n ],\r\n declarations: [\r\n KbqModalComponent,\r\n KbqModalTitle,\r\n KbqModalBody,\r\n KbqModalFooter,\r\n CssUnitPipe,\r\n KbqModalMainAction\r\n ],\r\n providers: [\r\n KbqModalControlService,\r\n KbqModalService,\r\n { provide: FocusTrapFactory, useClass: ConfigurableFocusTrapFactory }\r\n ]\r\n})\r\nexport class KbqModalModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["ModalUtil","i8.CssUnitPipe","i2.KbqModalControlService"],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-modal.mjs","sources":["../../../packages/components/modal/modal-control.service.ts","../../../packages/components/modal/modal-ref.class.ts","../../../packages/components/modal/modal-util.ts","../../../packages/components/modal/modal.type.ts","../../../packages/components/modal/css-unit.pipe.ts","../../../packages/components/modal/modal.component.ts","../../../packages/components/modal/modal.component.html","../../../packages/components/modal/modal.directive.ts","../../../packages/components/modal/modal.service.ts","../../../packages/components/modal/modal.module.ts","../../../packages/components/modal/koobiq-components-modal.ts"],"sourcesContent":["import { Injectable, Optional, SkipSelf } from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\n\nimport { KbqModalComponent } from '.';\nimport { KbqModalRef } from './modal-ref.class';\n\n\ninterface IRegisteredMeta {\n modalRef: KbqModalRef;\n afterOpenSubscription: Subscription;\n afterCloseSubscription: Subscription;\n}\n\n@Injectable()\nexport class KbqModalControlService {\n // Track singleton afterAllClose through over the injection tree\n get afterAllClose(): Subject<void> {\n return this.parentService ? this.parentService.afterAllClose : this.rootAfterAllClose;\n }\n\n // Track singleton openModals array through over the injection tree\n get openModals(): KbqModalRef[] {\n return this.parentService ? this.parentService.openModals : this.rootOpenModals;\n }\n\n // @ts-ignore\n private rootOpenModals: KbqModalRef[] = this.parentService ? null : [];\n // @ts-ignore\n private rootAfterAllClose: Subject<void> = this.parentService ? null : new Subject<void>();\n // @ts-ignore\n private rootRegisteredMetaMap: Map<KbqModalRef, IRegisteredMeta> = this.parentService ? null : new Map();\n\n // Registered modal for later usage\n private get registeredMetaMap(): Map<KbqModalRef, IRegisteredMeta> {\n return this.parentService ? this.parentService.registeredMetaMap : this.rootRegisteredMetaMap;\n }\n\n constructor(\n @Optional() @SkipSelf() private parentService: KbqModalControlService) {\n }\n\n // Register a modal to listen its open/close\n registerModal(modalRef: KbqModalRef): void {\n if (!this.hasRegistered(modalRef)) {\n const afterOpenSubscription = modalRef.afterOpen.subscribe(() => this.openModals.push(modalRef));\n const afterCloseSubscription = modalRef.afterClose.subscribe(() => this.removeOpenModal(modalRef));\n\n this.registeredMetaMap.set(modalRef, {modalRef, afterOpenSubscription, afterCloseSubscription});\n\n this.handleMultipleMasks(modalRef);\n }\n }\n\n hasRegistered(modalRef: KbqModalRef): boolean {\n return this.registeredMetaMap.has(modalRef);\n }\n\n // Close all registered opened modals\n closeAll(): void {\n let i = this.openModals.length;\n\n while (i--) {\n this.openModals[i].close();\n }\n }\n\n private removeOpenModal(modalRef: KbqModalRef): void {\n const index = this.openModals.indexOf(modalRef);\n\n if (index > -1) {\n this.openModals.splice(index, 1);\n\n if (!this.openModals.length) {\n this.afterAllClose.next();\n }\n }\n }\n\n private handleMultipleMasks(modalRef: KbqModalRef) {\n const modals = Array.from(this.registeredMetaMap.values()).map((v) => v.modalRef) as KbqModalComponent[];\n\n if (modals.filter((modal) => modal.kbqVisible).length > 1) {\n const otherModals = modals.splice(0, modals.length - 1)\n .filter((modal) => modal.kbqVisible && modal.kbqMask);\n\n // hide other masks\n setTimeout(() => {\n otherModals.forEach((modal) => {\n modal.getInstance().kbqMask = false;\n modal.markForCheck();\n });\n });\n\n // show other masks on close\n modalRef.afterClose.subscribe(() => {\n otherModals.forEach((modal) => {\n modal.getInstance().kbqMask = true;\n modal.markForCheck();\n });\n });\n }\n }\n}\n","import { Observable } from 'rxjs';\n\nimport { KbqModalComponent } from './modal.component';\n\n\n/**\n * API class that public to users to handle the modal instance.\n * KbqModalRef is aim to avoid accessing to the modal instance directly by users.\n */\n// tslint:disable-next-line:naming-convention\nexport abstract class KbqModalRef<T = any, R = any> {\n abstract afterOpen: Observable<void>;\n abstract afterClose: Observable<R>;\n\n abstract open(): void;\n\n abstract close(result?: R): void;\n\n abstract destroy(result?: R): void;\n\n /**\n * Trigger the kbqOnOk/kbqOnCancel by manual\n */\n abstract triggerOk(): void;\n\n abstract triggerCancel(): void;\n\n // /**\n // * Return the ComponentRef of kbqContent when specify kbqContent as a Component\n // * Note: this method may return undefined if the Component has not ready yet.\n // (it only available after Modal's ngOnInit)\n // */\n // abstract getContentComponentRef(): ComponentRef<{}>;\n\n /**\n * Return the component instance of kbqContent when specify kbqContent as a Component\n * Note: this method may return undefined if the Component has not ready yet.\n * (it only available after Modal's ngOnInit)\n */\n abstract getContentComponent(): T;\n\n /**\n * Get the dom element of this Modal\n */\n abstract getElement(): HTMLElement;\n\n /**\n * Get the instance of the Modal itself\n */\n abstract getInstance(): KbqModalComponent;\n\n /**\n * Call markForCheck for change detector\n */\n abstract markForCheck();\n}\n","export interface IClickPosition {\n x: number;\n y: number;\n}\n\nexport class ModalUtil {\n private lastPosition: IClickPosition;\n\n constructor(private document: Document) {\n this.lastPosition = {x: -1, y: -1};\n this.listenDocumentClick();\n }\n\n getLastClickPosition(): IClickPosition {\n return this.lastPosition;\n }\n\n listenDocumentClick(): void {\n this.document.addEventListener('click', (event: MouseEvent) => {\n this.lastPosition = {x: event.clientX, y: event.clientY};\n });\n }\n}\n\nexport const modalUtilObject = new ModalUtil(document);\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { EventEmitter, TemplateRef, Type } from '@angular/core';\n\n\nexport type OnClickCallback<T> = ((instance: T) => (false | void | {}) | Promise<false | void | {}>);\n\n// Different modal styles we have supported\nexport type ModalType = 'default' | 'confirm' | 'custom';\n\n// Subtypes of Confirm Modal\nexport type ConfirmType = 'confirm' | 'success' | 'warn';\n\nexport enum ModalSize {\n Small = 'small',\n Medium = 'medium',\n Large = 'large'\n}\n\n// Public options for using by service\nexport interface ModalOptions<T = any, R = any> {\n kbqModalType?: ModalType;\n kbqVisible?: boolean;\n kbqZIndex?: number;\n kbqWidth?: number | string;\n kbqSize?: ModalSize;\n kbqWrapClassName?: string;\n kbqClassName?: string;\n kbqStyle?: object;\n kbqTitle?: string | TemplateRef<{}>;\n kbqContent?: string | TemplateRef<{}> | Type<T>;\n kbqComponent?: Type<T>; // The instance of component opened into the dialog.\n kbqComponentParams?: any;\n kbqClosable?: boolean;\n kbqMask?: boolean;\n kbqMaskClosable?: boolean;\n kbqMaskStyle?: object;\n kbqBodyStyle?: object;\n kbqFooter?: string | TemplateRef<{}> | IModalButtonOptions<T>[]; // Default Modal ONLY\n kbqGetContainer?: HTMLElement | OverlayRef | (() => HTMLElement | OverlayRef) | null; // STATIC\n kbqAfterOpen?: EventEmitter<void>;\n kbqAfterClose?: EventEmitter<R>;\n kbqCloseByESC?: boolean;\n kbqRestoreFocus?: boolean;\n\n // --- Predefined OK & Cancel buttons\n kbqOkText?: string;\n kbqOkType?: string;\n kbqOkLoading?: boolean;\n kbqOnOk?: EventEmitter<T> | OnClickCallback<T>;\n kbqCancelText?: string;\n kbqCancelLoading?: boolean;\n kbqOnCancel?: EventEmitter<T> | OnClickCallback<T>;\n}\n\n// tslint:disable-next-line:no-any\nexport interface IModalOptionsForService<T = any> extends ModalOptions<T> {\n kbqOnOk?: OnClickCallback<T>;\n kbqOnCancel?: OnClickCallback<T>;\n}\n\nexport interface IModalButtonOptions<T = any> {\n label: string;\n // tslint:disable-next-line\n type?: string;\n shape?: string;\n ghost?: boolean;\n size?: string;\n // Default: true, indicate whether show loading automatically while onClick returned a Promise\n autoLoading?: boolean;\n\n // [NOTE] \"componentInstance\" will refer to the component's instance when using Component\n show?: boolean | ((this: IModalButtonOptions<T>, contentComponentInstance?: T) => boolean);\n loading?: boolean | ((this: IModalButtonOptions<T>, contentComponentInstance?: T) => boolean);\n disabled?: boolean | ((this: IModalButtonOptions<T>, contentComponentInstance?: T) => boolean);\n\n autoFocus?: boolean;\n kbqModalMainAction?: boolean;\n\n onClick?(this: IModalButtonOptions<T>, contentComponentInstance?: T): (void | {}) | Promise<(void | {})>;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n\n@Pipe({\n name: 'toCssUnit'\n})\nexport class CssUnitPipe implements PipeTransform {\n transform(value: number | string, defaultUnit: string = 'px'): string {\n const formatted = +value;\n\n return isNaN(formatted) ? `${value}` : `${formatted}${defaultUnit}`;\n }\n}\n","import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n ElementRef,\n EventEmitter,\n Inject,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n Type,\n ViewChild,\n ViewChildren,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { ESCAPE, ENTER } from '@koobiq/cdk/keycodes';\nimport { KbqComponentColors } from '@koobiq/components/core';\nimport { Observable } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport { KbqModalControlService } from './modal-control.service';\nimport { KbqModalRef } from './modal-ref.class';\nimport { modalUtilObject as ModalUtil } from './modal-util';\nimport { IModalButtonOptions, ModalOptions, ModalSize, ModalType, OnClickCallback } from './modal.type';\n\n\n// Duration when perform animations (ms)\nexport const MODAL_ANIMATE_DURATION = 200;\n\ntype AnimationState = 'enter' | 'leave' | null;\n\n\n@Component({\n selector: 'kbq-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '(keydown)': 'onKeyDown($event)'\n }\n})\nexport class KbqModalComponent<T = any, R = any> extends KbqModalRef<T, R>\n implements OnInit, OnChanges, AfterViewInit, OnDestroy, ModalOptions {\n\n componentColors = KbqComponentColors;\n\n @Input() kbqModalType: ModalType = 'default';\n\n // The instance of component opened into the dialog.\n @Input() kbqComponent: Type<T>;\n // If not specified, will use <ng-content>\n @Input() kbqContent: string | TemplateRef<{}> | Type<T>;\n // available when kbqContent is a component\n // @ts-ignore\n @Input() kbqComponentParams: any;\n // Default Modal ONLY\n @Input() kbqFooter: string | TemplateRef<{}> | IModalButtonOptions<T>[];\n\n @Input()\n get kbqVisible() { return this._kbqVisible; }\n set kbqVisible(value) { this._kbqVisible = value; }\n\n private _kbqVisible = false;\n\n @Output() kbqVisibleChange = new EventEmitter<boolean>();\n\n @Input() kbqZIndex: number = 1000;\n @Input() kbqWidth: number | string;\n @Input() kbqSize: ModalSize = ModalSize.Medium;\n @Input() kbqWrapClassName: string;\n @Input() kbqClassName: string;\n @Input() kbqStyle: object;\n @Input() kbqTitle: string | TemplateRef<{}>;\n @Input() kbqCloseByESC: boolean = true;\n\n @Input()\n get kbqClosable() { return this._kbqClosable; }\n set kbqClosable(value) { this._kbqClosable = value; }\n private _kbqClosable = true;\n\n @Input()\n get kbqMask() { return this._kbqMask; }\n set kbqMask(value) { this._kbqMask = value; }\n private _kbqMask = true;\n\n @Input()\n get kbqMaskClosable() { return this._kbqMaskClosable; }\n set kbqMaskClosable(value) { this._kbqMaskClosable = value; }\n private _kbqMaskClosable = false;\n\n @Input() kbqMaskStyle: object;\n @Input() kbqBodyStyle: object;\n\n // Trigger when modal open(visible) after animations\n @Output() kbqAfterOpen = new EventEmitter<void>();\n // Trigger when modal leave-animation over\n @Output() kbqAfterClose = new EventEmitter<R>();\n\n // --- Predefined OK & Cancel buttons\n @Input() kbqOkText: string;\n @Input() kbqOkType = KbqComponentColors.Contrast;\n\n @Input() kbqRestoreFocus = true;\n\n @Input()\n get kbqOkLoading() { return this._kbqOkLoading; }\n set kbqOkLoading(value) { this._kbqOkLoading = value; }\n private _kbqOkLoading = false;\n\n @Input() @Output() kbqOnOk: EventEmitter<T> | OnClickCallback<T> = new EventEmitter<T>();\n @Input() kbqCancelText: string;\n\n @Input()\n get kbqCancelLoading() { return this._kbqCancelLoading; }\n set kbqCancelLoading(value) { this._kbqCancelLoading = value; }\n private _kbqCancelLoading = false;\n\n @Input() @Output() kbqOnCancel: EventEmitter<T> | OnClickCallback<T> = new EventEmitter<T>();\n\n @ViewChild('modalContainer', { static: true }) modalContainer: ElementRef;\n @ViewChild('bodyContainer', { read: ViewContainerRef, static: false }) bodyContainer: ViewContainerRef;\n // Only aim to focus the ok button that needs to be auto focused\n @ViewChildren('autoFocusedButton', { read: ElementRef }) autoFocusedButtons: QueryList<ElementRef>;\n\n @ViewChild('modalBody') modalBody: ElementRef;\n\n maskAnimationClassMap: object;\n modalAnimationClassMap: object;\n // The origin point that animation based on\n transformOrigin = '0px 0px 0px';\n\n // Observable alias for kbqAfterOpen\n get afterOpen(): Observable<void> {\n return this.kbqAfterOpen.asObservable();\n }\n\n // Observable alias for kbqAfterClose\n get afterClose(): Observable<R> {\n return this.kbqAfterClose.asObservable();\n }\n\n get okText(): string {\n return this.kbqOkText;\n }\n\n get cancelText(): string {\n return this.kbqCancelText;\n }\n\n // Indicate whether this dialog should hidden\n get hidden(): boolean {\n return !this.kbqVisible && !this.animationState;\n }\n\n private focusedElementBeforeOpen: HTMLElement | null;\n\n private previouslyFocusedElementOrigin: FocusOrigin;\n\n // Handle the reference when using kbqContent as Component\n private contentComponentRef: ComponentRef<T>;\n // Current animation state\n private animationState: AnimationState;\n private container: HTMLElement | OverlayRef;\n\n constructor(\n private overlay: Overlay,\n private renderer: Renderer2,\n private cfr: ComponentFactoryResolver,\n private elementRef: ElementRef,\n private viewContainer: ViewContainerRef,\n private modalControl: KbqModalControlService,\n private changeDetector: ChangeDetectorRef,\n private focusMonitor: FocusMonitor,\n @Inject(DOCUMENT) private document: any\n ) {\n super();\n }\n\n @Input() kbqGetContainer: HTMLElement | OverlayRef | (() => HTMLElement | OverlayRef) = () => this.overlay.create();\n\n ngOnInit() {\n // Create component along without View\n if (this.isComponent(this.kbqContent)) {\n this.createDynamicComponent(this.kbqContent as Type<T>);\n }\n\n // Setup default button options\n if (this.isModalButtons(this.kbqFooter)) {\n this.kbqFooter = this.formatModalButtons(this.kbqFooter as IModalButtonOptions<T>[]);\n }\n\n if (this.isComponent(this.kbqComponent)) {\n this.createDynamicComponent(this.kbqComponent);\n }\n\n // Place the modal dom to elsewhere\n this.container = typeof this.kbqGetContainer === 'function' ? this.kbqGetContainer() : this.kbqGetContainer;\n if (this.container instanceof HTMLElement) {\n this.container.appendChild(this.elementRef.nativeElement);\n } else if (this.container instanceof OverlayRef) {\n // NOTE: only attach the dom to overlay, the view container is not changed actually\n this.container.overlayElement.appendChild(this.elementRef.nativeElement);\n }\n\n // Register modal when afterOpen/afterClose is stable\n this.modalControl.registerModal(this);\n }\n\n // [NOTE] NOT available when using by service!\n // Because ngOnChanges never be called when using by service,\n // here we can't support \"kbqContent\"(Component) etc. as inputs that initialized dynamically.\n // BUT: User also can change \"kbqContent\" dynamically to trigger UI changes\n // (provided you don't use \bComponent that needs initializations)\n ngOnChanges(changes: SimpleChanges) {\n if (changes.kbqVisible) {\n // Do not trigger animation while initializing\n this.handleVisibleStateChange(this.kbqVisible, !changes.kbqVisible.firstChange);\n }\n }\n\n ngAfterViewInit() {\n // If using Component, it is the time to attach View while bodyContainer is ready\n if (this.contentComponentRef) {\n this.bodyContainer.insert(this.contentComponentRef.hostView);\n }\n this.getElement().getElementsByTagName('button')[0]?.focus();\n\n for (const autoFocusedButton of this.autoFocusedButtons.toArray()) {\n if (autoFocusedButton.nativeElement.autofocus) {\n (autoFocusedButton.nativeElement as HTMLButtonElement).focus();\n\n break;\n }\n }\n }\n\n ngOnDestroy() {\n if (this.container instanceof OverlayRef) {\n this.container.dispose();\n }\n }\n\n open() {\n this.focusedElementBeforeOpen = this.document.activeElement;\n this.focusMonitor.monitor(this.modalContainer, true)\n .pipe(take(1))\n .subscribe((origin) => {\n this.previouslyFocusedElementOrigin = origin;\n this.focusMonitor.stopMonitoring(this.modalContainer);\n });\n\n this.changeVisibleFromInside(true);\n }\n\n close(result?: R) {\n this.changeVisibleFromInside(false, result).then(() => {\n if (this.kbqRestoreFocus && this.focusedElementBeforeOpen) {\n this.focusMonitor.focusVia(\n this.focusedElementBeforeOpen as HTMLElement,\n this.previouslyFocusedElementOrigin\n );\n this.focusedElementBeforeOpen = null;\n }\n });\n }\n\n // Destroy equals Close\n destroy(result?: R) {\n this.close(result);\n }\n\n markForCheck() {\n this.changeDetector.markForCheck();\n }\n\n triggerOk() {\n this.onClickOkCancel('ok');\n }\n\n triggerCancel() {\n this.onClickOkCancel('cancel');\n }\n\n getInstance(): KbqModalComponent {\n return this;\n }\n\n getContentComponentRef(): ComponentRef<T> {\n return this.contentComponentRef;\n }\n\n getContentComponent(): T {\n return this.contentComponentRef && this.contentComponentRef.instance;\n }\n\n getElement(): HTMLElement {\n return this.elementRef && this.elementRef.nativeElement;\n }\n\n getKbqFooter(): HTMLElement {\n return this.getElement().getElementsByClassName('kbq-modal-footer').item(0) as HTMLElement;\n }\n\n onClickMask($event: MouseEvent) {\n if (\n this.kbqMask &&\n this.kbqMaskClosable &&\n ($event.target as HTMLElement).classList.contains('kbq-modal-wrap') &&\n this.kbqVisible\n ) {\n this.onClickOkCancel('cancel');\n }\n }\n\n // tslint:disable-next-line: no-reserved-keywords\n isModalType(type: ModalType): boolean {\n return this.kbqModalType === type;\n }\n\n onKeyDown(event: KeyboardEvent): void {\n\n // tslint:disable-next-line:deprecation .key isn't supported in Edge\n if (event.keyCode === ESCAPE && this.container && (this.container instanceof OverlayRef)) {\n\n this.close();\n event.preventDefault();\n }\n // tslint:disable-next-line:deprecation .key isn't supported in Edge\n if (event.ctrlKey && event.keyCode === ENTER) {\n if (this.kbqModalType === 'confirm') {\n this.triggerOk();\n }\n\n (this.getElement().querySelector('[kbq-modal-main-action]') as HTMLElement)?.click();\n\n event.preventDefault();\n }\n }\n\n // AoT\n onClickCloseBtn() {\n if (this.kbqVisible) {\n this.onClickOkCancel('cancel');\n }\n }\n\n // AoT\n // tslint:disable-next-line: no-reserved-keywords\n onClickOkCancel(type: 'ok' | 'cancel') {\n this.handleCloseResult(type, (doClose) => doClose !== false);\n }\n\n handleCloseResult(\n triggerType: 'ok' | 'cancel',\n canClose: (doClose: boolean | void | {}) => boolean\n ) {\n const trigger = { ok: this.kbqOnOk, cancel: this.kbqOnCancel }[triggerType];\n const loadingKey = { ok: 'kbqOkLoading', cancel: 'kbqCancelLoading' }[triggerType];\n\n if (trigger instanceof EventEmitter) {\n trigger.emit(this.getContentComponent());\n } else if (typeof trigger === 'function') {\n\n const result = trigger(this.getContentComponent());\n // Users can return \"false\" to prevent closing by default\n const caseClose = (doClose: boolean | void | {}) => canClose(doClose) && this.close(doClose as R);\n\n if (isPromise(result)) {\n this[loadingKey] = true;\n const handleThen = (doClose) => {\n this[loadingKey] = false;\n caseClose(doClose);\n };\n (result as Promise<void>).then(handleThen).catch(handleThen);\n } else {\n caseClose(result);\n }\n }\n }\n\n // AoT\n isNonEmptyString(value: {}): boolean {\n return typeof value === 'string' && value !== '';\n }\n\n // AoT\n isTemplateRef(value: {}): boolean {\n return value instanceof TemplateRef;\n }\n\n // AoT\n isComponent(value: {}): boolean {\n return value instanceof Type;\n }\n\n // AoT\n isModalButtons(value: {}): boolean {\n return Array.isArray(value) && value.length > 0;\n }\n\n // Lookup a button's property, if the prop is a function, call & then return the result, otherwise, return itself.\n // AoT\n getButtonCallableProp(options: IModalButtonOptions<T>, prop: string): {} {\n const value = options[prop];\n const args: any[] = [];\n if (this.contentComponentRef) {\n args.push(this.contentComponentRef.instance);\n }\n\n return typeof value === 'function' ? value.apply(options, args) : value;\n }\n\n // On kbqFooter's modal button click\n // AoT\n onButtonClick(button: IModalButtonOptions<T>) {\n // Call onClick directly\n // tslint:disable-next-line:no-inferred-empty-object-type rule seems to be broken\n const result = this.getButtonCallableProp(button, 'onClick');\n if (isPromise(result)) {\n button.loading = true;\n (result as Promise<{}>).then(() => button.loading = false).catch(() => button.loading = false);\n }\n }\n\n // Do rest things when visible state changed\n private handleVisibleStateChange(visible: boolean, animation: boolean = true, closeResult?: R): Promise<any> {\n // Hide scrollbar at the first time when shown up\n if (visible) {\n this.changeBodyOverflow(1);\n }\n\n return Promise\n .resolve(animation && this.animateTo(visible))\n // Emit open/close event after animations over\n .then(() => {\n if (visible) {\n this.kbqAfterOpen.emit();\n } else {\n this.kbqAfterClose.emit(closeResult);\n // Show/hide scrollbar when animation is over\n this.changeBodyOverflow();\n }\n });\n }\n\n // Change kbqVisible from inside\n private changeVisibleFromInside(visible: boolean, closeResult?: R): Promise<void> {\n if (this.kbqVisible !== visible) {\n // Change kbqVisible value immediately\n this.kbqVisible = visible;\n this.kbqVisibleChange.emit(visible);\n\n return this.handleVisibleStateChange(visible, true, closeResult);\n }\n\n return Promise.resolve();\n }\n\n private changeAnimationState(state: AnimationState) {\n this.animationState = state;\n if (state) {\n this.maskAnimationClassMap = {\n [`fade-${state}`]: true,\n [`fade-${state}-active`]: true\n };\n\n this.modalAnimationClassMap = {\n [`zoom-${state}`]: true,\n [`zoom-${state}-active`]: true\n };\n } else {\n // @ts-ignore\n this.maskAnimationClassMap = this.modalAnimationClassMap = null;\n }\n\n if (this.contentComponentRef) {\n this.contentComponentRef.changeDetectorRef.markForCheck();\n } else {\n this.changeDetector.markForCheck();\n }\n }\n\n private animateTo(isVisible: boolean): Promise<any> {\n // Figure out the lastest click position when shows up\n if (isVisible) {\n // [NOTE] Using timeout due to the document.click event is fired later than visible change,\n // so if not postponed to next event-loop, we can't get the lastest click position\n window.setTimeout(() => this.updateTransformOrigin());\n }\n\n this.changeAnimationState(isVisible ? 'enter' : 'leave');\n\n // Return when animation is over\n return new Promise((resolve) => {\n return window.setTimeout(\n () => {\n this.changeAnimationState(null);\n resolve(null);\n },\n MODAL_ANIMATE_DURATION\n );\n });\n }\n\n private formatModalButtons(buttons: IModalButtonOptions<T>[]): IModalButtonOptions<T>[] {\n return buttons.map((button) => {\n\n return {\n ...{\n type: 'default',\n size: 'default',\n autoLoading: true,\n show: true,\n loading: false,\n disabled: false\n },\n ...button\n };\n });\n }\n\n /**\n * Create a component dynamically but not attach to any View\n * (this action will be executed when bodyContainer is ready)\n * @param component Component class\n */\n private createDynamicComponent(component: Type<T>) {\n const factory = this.cfr.resolveComponentFactory(component);\n const childInjector = Injector.create({\n providers: [{provide: KbqModalRef, useValue: this}],\n parent: this.viewContainer.injector\n });\n\n this.contentComponentRef = factory.create(childInjector);\n\n if (this.kbqComponentParams) {\n // @ts-ignore\n Object.assign(this.contentComponentRef.instance, this.kbqComponentParams);\n }\n\n // Do the first change detection immediately\n // (or we do detection at ngAfterViewInit, multi-changes error will be thrown)\n this.contentComponentRef.changeDetectorRef.detectChanges();\n }\n\n // Update transform-origin to the last click position on document\n private updateTransformOrigin() {\n const modalElement = this.modalContainer.nativeElement as HTMLElement;\n const lastPosition = ModalUtil.getLastClickPosition();\n\n if (lastPosition) {\n this.transformOrigin = `${lastPosition.x - modalElement.offsetLeft}px ${lastPosition.y - modalElement.offsetTop}px 0px`;\n }\n }\n\n /**\n * Take care of the body's overflow to decide the existense of scrollbar\n * @param plusNum The number that the openModals.length will increase soon\n */\n private changeBodyOverflow(plusNum: number = 0) {\n const openModals = this.modalControl.openModals;\n\n if (openModals.length + plusNum > 0) {\n this.renderer.setStyle(this.document.body, 'overflow', 'hidden');\n } else {\n this.renderer.removeStyle(this.document.body, 'overflow');\n }\n }\n}\n\n////////////\n\nfunction isPromise(obj: {} | void): boolean {\n // tslint:disable-next-line: no-unbound-method\n return !!obj &&\n (typeof obj === 'object' || typeof obj === 'function') &&\n typeof (obj as Promise<{}>).then === 'function' &&\n typeof (obj as Promise<{}>).catch === 'function';\n}\n","<!-- Compatible: the <ng-content> can appear only once -->\n<ng-template #tplOriginContent>\n <ng-content></ng-content>\n</ng-template>\n\n<div>\n <div *ngIf=\"kbqMask\"\n class=\"kbq-modal-mask\"\n [ngClass]=\"maskAnimationClassMap\"\n [class.kbq-modal-mask-hidden]=\"hidden\"\n [ngStyle]=\"kbqMaskStyle\"\n [style.zIndex]=\"kbqZIndex\">\n </div>\n\n <div (mousedown)=\"onClickMask($event)\"\n class=\"kbq-modal-wrap {{ kbqWrapClassName }}\"\n [style.zIndex]=\"kbqZIndex\"\n [style.display]=\"hidden ? 'none' : ''\"\n tabindex=\"-1\">\n\n <div #modalContainer\n class=\"kbq-modal {{ kbqClassName }} kbq-modal_{{ kbqSize }}\"\n [ngClass]=\"modalAnimationClassMap\"\n [ngStyle]=\"kbqStyle\"\n [style.width]=\"kbqWidth | toCssUnit\"\n [style.transform-origin]=\"transformOrigin\">\n\n <div class=\"kbq-modal-content\" cdkTrapFocus>\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isModalType('default')\"\n [ngTemplateOutlet]=\"tplContentDefault\"></ng-container>\n <ng-container *ngSwitchCase=\"isModalType('confirm')\"\n [ngTemplateOutlet]=\"tplContentConfirm\"></ng-container>\n <ng-container *ngSwitchCase=\"isModalType('custom')\"\n [ngTemplateOutlet]=\"tplContentCustom\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #tplContentCustom>\n <ng-container #bodyContainer></ng-container>\n</ng-template>\n\n\n<!-- [Predefined] Default Modal Content -->\n<ng-template #tplContentDefault>\n <div *ngIf=\"kbqTitle\" class=\"kbq-modal-header\" kbq-title>\n <div class=\"kbq-modal-title\">\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(kbqTitle)\" [ngTemplateOutlet]=\"$any(kbqTitle)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(kbqTitle)\">\n <div [innerHTML]=\"kbqTitle\"></div>\n </ng-container>\n </ng-container>\n </div>\n\n <button *ngIf=\"kbqClosable\"\n kbq-button\n [color]=\"'contrast'\"\n (click)=\"onClickCloseBtn()\"\n class=\"kbq-modal-close kbq-button_transparent\">\n <i kbq-icon=\"mc-close-L_16\" [color]=\"componentColors.Contrast\"></i>\n </button>\n </div>\n <div class=\"kbq-modal-body kbq-scrollbar\" #modalBody [ngStyle]=\"kbqBodyStyle\">\n <ng-container #bodyContainer>\n <ng-container *ngIf=\"!isComponent(kbqContent)\" [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(kbqContent)\" [ngTemplateOutlet]=\"$any(kbqContent)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(kbqContent)\">\n <div [innerHTML]=\"kbqContent\"></div>\n </ng-container>\n <ng-container *ngSwitchDefault [ngTemplateOutlet]=\"tplOriginContent\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n <div *ngIf=\"kbqFooter || kbqOkText || kbqCancelText\" class=\"kbq-modal-footer\">\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(kbqFooter)\" [ngTemplateOutlet]=\"$any(kbqFooter)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(kbqFooter)\">\n <div [innerHTML]=\"kbqFooter\"></div>\n </ng-container>\n <ng-container *ngSwitchCase=\"isModalButtons(kbqFooter)\">\n <ng-container *ngFor=\"let button of $any(kbqFooter)\">\n <button\n kbq-button\n #autoFocusedButton\n [attr.autofocus]=\"button.autoFocus\"\n [attr.kbq-modal-main-action]=\"button.kbqModalMainAction\"\n *ngIf=\"getButtonCallableProp(button, 'show')\"\n [disabled]=\"getButtonCallableProp(button, 'disabled')\"\n [class.kbq-progress]=\"getButtonCallableProp(button, 'loading')\"\n (click)=\"onButtonClick(button)\"\n [color]=\"button.type\">\n {{ button.label }}\n </button>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button\n #autoFocusedButton\n [attr.autofocus]=\"true\"\n *ngIf=\"kbqOkText\"\n kbq-button\n [color]=\"componentColors.Contrast\"\n (click)=\"onClickOkCancel('ok')\">\n\n {{ okText }}\n </button>\n <button *ngIf=\"kbqCancelText\" kbq-button (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n<!-- /[Predefined] Default Modal Content -->\n\n<!-- [Predefined] Confirm Modal Content -->\n<ng-template #tplContentConfirm>\n <div class=\"kbq-modal-body\" [ngStyle]=\"kbqBodyStyle\">\n <ng-container #bodyContainer>\n <ng-container *ngIf=\"!isComponent(kbqContent)\" [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(kbqContent)\"\n [ngTemplateOutlet]=\"$any(kbqContent)\">\n </ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(kbqContent)\">\n <div [innerHTML]=\"kbqContent\"></div>\n </ng-container>\n <ng-container *ngSwitchDefault [ngTemplateOutlet]=\"tplOriginContent\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n <div class=\"kbq-confirm-footer\" *ngIf=\"kbqOkText || kbqCancelText\">\n <button\n kbq-button\n #autoFocusedButton\n [color]=\"kbqOkType\"\n [attr.autofocus]=\"true\"\n *ngIf=\"kbqOkText\"\n (click)=\"onClickOkCancel('ok')\">\n\n {{ okText }}\n </button>\n\n <button kbq-button *ngIf=\"kbqCancelText\" (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n </div>\n</ng-template>\n<!-- /[Predefined] Confirm Modal Content -->\n","import { Directive } from '@angular/core';\n\n\n@Directive({\n selector: `[kbq-modal-title], kbq-modal-title, [mcModalTitle]`,\n host: {\n class: 'kbq-modal-header kbq-modal-title'\n }\n})\nexport class KbqModalTitle {}\n\n@Directive({\n selector: `[kbq-modal-body], kbq-modal-body, [mcModalBody]`,\n host: {\n class: 'kbq-modal-body'\n }\n})\nexport class KbqModalBody {}\n\n@Directive({\n selector: `[kbq-modal-footer], kbq-modal-footer, [mcModalFooter]`,\n host: {\n class: 'kbq-modal-footer'\n }\n})\nexport class KbqModalFooter {}\n\n@Directive({\n selector: `[kbq-modal-main-action]`\n})\nexport class KbqModalMainAction {}\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentRef, Injectable } from '@angular/core';\nimport { ESCAPE } from '@koobiq/cdk/keycodes';\nimport { Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { KbqModalControlService } from './modal-control.service';\nimport { KbqModalRef } from './modal-ref.class';\nimport { KbqModalComponent } from './modal.component';\nimport { ConfirmType, ModalOptions, IModalOptionsForService } from './modal.type';\n\n\n// A builder used for managing service creating modals\nexport class ModalBuilderForService {\n // Modal ComponentRef, \"null\" means it has been destroyed\n private modalRef: ComponentRef<KbqModalComponent> | null;\n private overlayRef: OverlayRef;\n\n constructor(private overlay: Overlay, options: IModalOptionsForService = {}) {\n this.createModal();\n\n if (!('kbqGetContainer' in options)) {\n options.kbqGetContainer = undefined;\n }\n\n this.changeProps(options);\n this.modalRef!.instance.open();\n this.modalRef!.instance.kbqAfterClose.subscribe(() => this.destroyModal());\n\n this.overlayRef.keydownEvents()\n .pipe(filter((event: KeyboardEvent) => {\n // tslint:disable-next-line:deprecation replacement .key isn't supported in Edge\n return !!(event.keyCode === ESCAPE && options.kbqCloseByESC);\n }))\n .subscribe(\n () => this.getInstance()?.handleCloseResult('cancel', () => true)\n );\n }\n\n getInstance(): KbqModalComponent | null {\n return this.modalRef && this.modalRef.instance;\n }\n\n destroyModal(): void {\n if (this.modalRef) {\n this.overlayRef.dispose();\n this.modalRef = null;\n }\n }\n\n private changeProps(options: ModalOptions): void {\n if (this.modalRef) {\n // here not limit user's inputs at runtime\n Object.assign(this.modalRef.instance, options);\n }\n }\n\n // Create component to ApplicationRef\n private createModal(): void {\n this.overlayRef = this.overlay.create();\n this.overlayRef.hostElement.classList.add('kbq-modal-overlay');\n this.modalRef = this.overlayRef.attach(new ComponentPortal(KbqModalComponent));\n }\n}\n\n@Injectable()\nexport class KbqModalService {\n // Track of the current close modals (we assume invisible is close this time)\n get openModals(): KbqModalRef[] {\n return this.modalControl.openModals;\n }\n\n get afterAllClose(): Observable<void> {\n return this.modalControl.afterAllClose.asObservable();\n }\n\n constructor(\n private overlay: Overlay,\n private modalControl: KbqModalControlService\n ) {}\n\n // Closes all of the currently-open dialogs\n closeAll(): void {\n this.modalControl.closeAll();\n }\n\n create<T>(options: IModalOptionsForService<T> = {}): KbqModalRef<T> {\n\n if (typeof options.kbqOnCancel !== 'function') {\n // Leave a empty function to close this modal by default\n // tslint:disable-next-line\n options.kbqOnCancel = () => {};\n }\n\n if (!('kbqCloseByESC' in options)) {\n options.kbqCloseByESC = true;\n }\n // Remove the Cancel button if the user not specify a Cancel button\n if (!('kbqCancelText' in options)) {\n options.kbqCancelText = undefined;\n }\n // Remove the Ok button if the user not specify a Ok button\n if (!('kbqOkText' in options)) {\n options.kbqOkText = undefined;\n }\n // Remove the footer if the user not specify a footer\n if (!('kbqFooter' in options)) {\n options.kbqFooter = undefined;\n }\n\n return new ModalBuilderForService(this.overlay, options).getInstance()!;\n }\n\n confirm<T>(options: IModalOptionsForService<T> = {}, confirmType: ConfirmType = 'confirm'): KbqModalRef<T> {\n if ('kbqFooter' in options) {\n console.warn(`The Confirm-Modal doesn't support \"kbqFooter\", this property will be ignored.`);\n }\n\n // NOTE: only support function currently by calling confirm()\n if (typeof options.kbqOnOk !== 'function') {\n // Leave a empty function to close this modal by default\n // tslint:disable-next-line\n options.kbqOnOk = () => {};\n }\n\n options.kbqModalType = 'confirm';\n options.kbqClassName = `kbq-confirm kbq-confirm-${confirmType} ${options.kbqClassName || ''}`;\n\n return this.create(options);\n }\n\n open<T>(options: IModalOptionsForService<T> = {}): KbqModalRef<T> {\n\n options.kbqModalType = 'custom';\n\n return this.create(options);\n }\n\n success<T>(options: IModalOptionsForService<T> = {}): KbqModalRef<T> {\n return this.simpleConfirm(options, 'success');\n }\n\n // tslint:disable-next-line: no-reserved-keywords\n delete<T>(options: IModalOptionsForService<T> = {}): KbqModalRef<T> {\n return this.simpleConfirm(options, 'warn');\n }\n\n private simpleConfirm<T>(options: IModalOptionsForService<T> = {}, confirmType: ConfirmType): KbqModalRef<T> {\n return this.confirm(options, confirmType);\n }\n}\n","import { A11yModule, ConfigurableFocusTrapFactory, FocusTrapFactory } from '@angular/cdk/a11y';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { KbqButtonModule } from '@koobiq/components/button';\r\nimport { KbqIconModule } from '@koobiq/components/icon';\r\nimport { KbqTitleModule } from '@koobiq/components/title';\r\n\r\nimport { CssUnitPipe } from './css-unit.pipe';\r\nimport { KbqModalControlService } from './modal-control.service';\r\nimport { KbqModalComponent } from './modal.component';\r\nimport { KbqModalBody, KbqModalFooter, KbqModalTitle, KbqModalMainAction } from './modal.directive';\r\nimport { KbqModalService } from './modal.service';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n OverlayModule,\r\n A11yModule,\r\n KbqButtonModule,\r\n KbqIconModule,\r\n KbqTitleModule\r\n ],\r\n exports: [\r\n KbqModalComponent,\r\n KbqModalTitle,\r\n KbqModalBody,\r\n KbqModalFooter,\r\n KbqModalMainAction\r\n ],\r\n declarations: [\r\n KbqModalComponent,\r\n KbqModalTitle,\r\n KbqModalBody,\r\n KbqModalFooter,\r\n CssUnitPipe,\r\n KbqModalMainAction\r\n ],\r\n providers: [\r\n KbqModalControlService,\r\n KbqModalService,\r\n { provide: FocusTrapFactory, useClass: ConfigurableFocusTrapFactory }\r\n ]\r\n})\r\nexport class KbqModalModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["ModalUtil","i8.CssUnitPipe","i2.KbqModalControlService"],"mappings":"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"}
@@ -43,13 +43,13 @@ class KbqPopoverComponent extends KbqPopUp {
43
43
  this.isTrapFocus = isTrapFocus;
44
44
  }
45
45
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqPopoverComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
46
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: KbqPopoverComponent, selector: "kbq-popover-component", host: { listeners: { "keydown.esc": "hide(0)" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"kbq-popover\"\n [cdkTrapFocus]=\"isTrapFocus\"\n [cdkTrapFocusAutoCapture]=\"isTrapFocus\"\n [ngClass]=\"classMap\"\n [@state]=\"visibility\"\n (@state.start)=\"animationStart()\"\n (@state.done)=\"animationDone($event)\">\n\n <div class=\"kbq-popover__container\">\n <div class=\"kbq-popover__header\" *ngIf=\"header\">\n <ng-container *ngIf=\"isTemplateRef(header)\" [ngTemplateOutlet]=\"$any(header)\"></ng-container>\n <ng-container *ngIf=\"!isTemplateRef(header)\">\n <div>{{ header }}</div>\n </ng-container>\n </div>\n\n <div class=\"kbq-popover__content\"\n [ngClass]=\"{ 'kbq-popover__content_padding_bottom': footer }\"\n *ngIf=\"content\">\n <ng-container *ngIf=\"isTemplateRef(content)\" [ngTemplateOutlet]=\"$any(content)\"></ng-container>\n <ng-container *ngIf=\"!isTemplateRef(content)\">\n <div>{{ content }}</div>\n </ng-container>\n </div>\n\n <div class=\"kbq-popover__footer\" *ngIf=\"footer\">\n <ng-container *ngIf=\"isTemplateRef(footer)\" [ngTemplateOutlet]=\"$any(footer)\"></ng-container>\n <ng-container *ngIf=\"!isTemplateRef(footer)\">\n <div>{{ footer }}</div>\n </ng-container>\n </div>\n </div>\n\n <div class=\"kbq-popover__arrow\" [class.kbq-popover__arrow_with-footer]=\"footer\"></div>\n</div>\n", styles: [".kbq-popover{position:relative;border-radius:var(--kbq-popover-size-border-radius, );border-width:var(--kbq-popover-size-border-width, );border-style:solid;box-sizing:border-box;z-index:1030;list-style:none;white-space:pre-line}.kbq-popover.kbq-popover_small{max-width:var(--kbq-popover-size-small-width, )}.kbq-popover.kbq-popover_medium{max-width:var(--kbq-popover-size-medium-width, )}.kbq-popover.kbq-popover_large{max-width:var(--kbq-popover-size-large-width, )}.kbq-popover.kbq-popover_placement-top,.kbq-popover.kbq-popover_placement-top-left,.kbq-popover.kbq-popover_placement-top-right{margin-bottom:calc(var(--kbq-popover-size-trigger-margin, ))}.kbq-popover.kbq-popover_placement-right,.kbq-popover.kbq-popover_placement-right-top,.kbq-popover.kbq-popover_placement-right-bottom{margin-left:calc(var(--kbq-popover-size-trigger-margin, ))}.kbq-popover.kbq-popover_placement-bottom,.kbq-popover.kbq-popover_placement-bottom-left,.kbq-popover.kbq-popover_placement-bottom-right{margin-top:calc(var(--kbq-popover-size-trigger-margin, ))}.kbq-popover.kbq-popover_placement-left,.kbq-popover.kbq-popover_placement-left-top,.kbq-popover.kbq-popover_placement-left-bottom{margin-right:calc(var(--kbq-popover-size-trigger-margin, ))}.kbq-popover__container{display:flex;flex-direction:column;max-height:var(--kbq-popover-size-max-height, );border-radius:var(--kbq-popover-size-border-radius, );overflow:hidden}.kbq-popover__header{display:flex;align-items:center;height:var(--kbq-popover-header-size-height, );padding:var(--kbq-popover-header-size-padding, );border-bottom-width:1px;border-bottom-style:solid}.kbq-popover__content{overflow:hidden;padding:var(--kbq-popover-size-padding, )}.kbq-popover__content.kbq-popover__content_padding_bottom{padding-bottom:calc(var(--kbq-popover-size-padding, ) + var(--kbq-popover-footer-size-margin-top, ))}.kbq-popover__footer{box-sizing:border-box;height:var(--kbq-popover-footer-size-height, );padding:var(--kbq-popover-footer-size-padding, );border-top-width:1px;border-top-style:solid}.kbq-popover__arrow{position:absolute;z-index:-1;width:var(--kbq-popover-size-arrow-size, );height:var(--kbq-popover-size-arrow-size, );border:solid 1px;transform:rotate(45deg)}.kbq-popover_placement-top .kbq-popover__arrow{bottom:calc(var(--kbq-popover-size-arrow-size, -1) / -2);left:50%;margin-left:calc(var(--kbq-popover-size-arrow-size, -1) / -2)}.kbq-popover_placement-top-left .kbq-popover__arrow{bottom:calc(var(--kbq-popover-size-arrow-size, -1) / -2);left:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover_placement-top-right .kbq-popover__arrow{bottom:calc(var(--kbq-popover-size-arrow-size, -1) / -2);right:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover_placement-right .kbq-popover__arrow{left:calc(var(--kbq-popover-size-arrow-size, -1) / -2);top:50%;margin-top:calc(var(--kbq-popover-size-arrow-size, -1) / -2)}.kbq-popover_placement-right-top .kbq-popover__arrow{left:calc(var(--kbq-popover-size-arrow-size, -1) / -2);top:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover_placement-right-bottom .kbq-popover__arrow{left:calc(var(--kbq-popover-size-arrow-size, -1) / -2);bottom:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover_placement-left .kbq-popover__arrow{right:calc(var(--kbq-popover-size-arrow-size, -1) / -2);top:50%;margin-top:calc(var(--kbq-popover-size-arrow-size, -1) / -2)}.kbq-popover_placement-left-top .kbq-popover__arrow{right:calc(var(--kbq-popover-size-arrow-size, -1) / -2);top:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover_placement-left-bottom .kbq-popover__arrow{right:calc(var(--kbq-popover-size-arrow-size, -1) / -2);bottom:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover_placement-bottom .kbq-popover__arrow{top:calc(var(--kbq-popover-size-arrow-size, -1) / -2);left:50%;margin-left:calc(var(--kbq-popover-size-arrow-size, -1) / -2)}.kbq-popover_placement-bottom-left .kbq-popover__arrow{top:calc(var(--kbq-popover-size-arrow-size, -1) / -2);left:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover_placement-bottom-right .kbq-popover__arrow{top:calc(var(--kbq-popover-size-arrow-size, -1) / -2);right:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover-confirm .kbq-popover__content{padding:24px 16px 16px}.kbq-popover-confirm .kbq-popover__content button{margin-top:16px;display:block;margin-left:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], animations: [kbqPopoverAnimations.popoverState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
46
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: KbqPopoverComponent, selector: "kbq-popover-component", host: { listeners: { "keydown.esc": "hide(0)" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"kbq-popover\"\n [cdkTrapFocus]=\"isTrapFocus\"\n [cdkTrapFocusAutoCapture]=\"isTrapFocus\"\n [ngClass]=\"classMap\"\n [@state]=\"visibility\"\n (@state.start)=\"animationStart()\"\n (@state.done)=\"animationDone($event)\">\n\n <div class=\"kbq-popover__container\"\n [class.kbq-popover__container_with-header]=\"header\"\n [class.kbq-popover__container_with-footer]=\"footer\">\n <div class=\"kbq-popover__header\" *ngIf=\"header\">\n <ng-container *ngIf=\"isTemplateRef(header)\" [ngTemplateOutlet]=\"$any(header)\"></ng-container>\n <ng-container *ngIf=\"!isTemplateRef(header)\">\n <div class=\"kbq-popover__header-text\">{{ header }}</div>\n </ng-container>\n </div>\n\n <div class=\"kbq-popover__content kbq-scrollbar\" *ngIf=\"content\">\n <ng-container *ngIf=\"isTemplateRef(content)\" [ngTemplateOutlet]=\"$any(content)\"></ng-container>\n <ng-container *ngIf=\"!isTemplateRef(content)\">\n <div>{{ content }}</div>\n </ng-container>\n </div>\n\n <div class=\"kbq-popover__footer\" *ngIf=\"footer\">\n <ng-container *ngIf=\"isTemplateRef(footer)\" [ngTemplateOutlet]=\"$any(footer)\"></ng-container>\n <ng-container *ngIf=\"!isTemplateRef(footer)\">\n <div>{{ footer }}</div>\n </ng-container>\n </div>\n </div>\n\n <div class=\"kbq-popover__arrow\"></div>\n</div>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:29px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.04) 10px,rgba(255,255,255,.04) 10px,rgba(255,255,255,.04) 20px,rgba(0,0,0,.04) 20px,rgba(0,0,0,.04) 30px,rgba(255,255,255,.04) 31px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-button-size-border-width, 2px))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-button-size-border-radius, 8px)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-button-size-border-radius, 8px)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-button-size-border-width, 2px))}.kbq-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.kbq-popover{position:relative;border-radius:var(--kbq-popover-size-container-border-radius, 12px);box-sizing:border-box;z-index:1030;list-style:none;white-space:pre-line}.kbq-popover.kbq-popover_small{max-width:var(--kbq-popover-size-container-width-small, 200px)}.kbq-popover.kbq-popover_medium{max-width:var(--kbq-popover-size-container-width-medium, 400px)}.kbq-popover.kbq-popover_large{max-width:var(--kbq-popover-size-container-width-large, 640px)}.kbq-popover.kbq-popover_placement-top,.kbq-popover.kbq-popover_placement-top-left,.kbq-popover.kbq-popover_placement-top-right{margin-bottom:8px}.kbq-popover.kbq-popover_placement-right,.kbq-popover.kbq-popover_placement-right-top,.kbq-popover.kbq-popover_placement-right-bottom{margin-left:8px}.kbq-popover.kbq-popover_placement-bottom,.kbq-popover.kbq-popover_placement-bottom-left,.kbq-popover.kbq-popover_placement-bottom-right{margin-top:8px}.kbq-popover.kbq-popover_placement-left,.kbq-popover.kbq-popover_placement-left-top,.kbq-popover.kbq-popover_placement-left-bottom{margin-right:8px}.kbq-popover__content{overflow-y:auto;padding:var(--kbq-popover-size-content-padding-top, 24px) var(--kbq-popover-size-content-padding-horizontal, 24px) var(--kbq-popover-size-content-padding-bottom, 32px)}.kbq-popover__container{overflow:hidden;display:flex;flex-direction:column;max-height:var(--kbq-popover-size-container-max-height, 480px);border-radius:var(--kbq-popover-size-container-border-radius, 12px)}.kbq-popover__container.kbq-popover__container_with-header .kbq-popover__content{padding-top:var(--kbq-popover-size-content-padding-vertical, )}.kbq-popover__container.kbq-popover__container_with-footer .kbq-popover__content{padding-bottom:var(--kbq-popover-size-content-padding-vertical, )}.kbq-popover__header{display:flex;align-items:center;overflow:hidden;padding:var(--kbq-popover-size-header-padding-top, 16px) var(--kbq-popover-size-header-padding-horizontal, 24px) var(--kbq-popover-size-header-padding-bottom, 8px) var(--kbq-popover-size-header-padding-horizontal, 24px)}.kbq-popover__header .kbq-popover__header-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-popover__footer{padding:var(--kbq-popover-size-footer-padding-vertical, 16px) var(--kbq-popover-size-footer-padding-horizontal, 24px)}.kbq-popover__arrow{position:absolute;z-index:-1;width:12px;height:12px;transform:rotate(45deg)}.kbq-popover_placement-top .kbq-popover__arrow{bottom:-5.5px;left:50%;margin-left:-5.5px}.kbq-popover_placement-top-left .kbq-popover__arrow{bottom:-5.5px;left:9px}.kbq-popover_placement-top-right .kbq-popover__arrow{bottom:-5.5px;right:9px}.kbq-popover_placement-right .kbq-popover__arrow{left:-5.5px;top:50%;margin-top:-5.5px}.kbq-popover_placement-right-top .kbq-popover__arrow{left:-5.5px;top:9px}.kbq-popover_placement-right-bottom .kbq-popover__arrow{left:-5.5px;bottom:9px}.kbq-popover_placement-left .kbq-popover__arrow{right:-5.5px;top:50%;margin-top:-5.5px}.kbq-popover_placement-left-top .kbq-popover__arrow{right:-5.5px;top:9px}.kbq-popover_placement-left-bottom .kbq-popover__arrow{right:-5.5px;bottom:9px}.kbq-popover_placement-bottom .kbq-popover__arrow{top:-5.5px;left:50%;margin-left:-5.5px}.kbq-popover_placement-bottom-left .kbq-popover__arrow{top:-5.5px;left:9px}.kbq-popover_placement-bottom-right .kbq-popover__arrow{top:-5.5px;right:9px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], animations: [kbqPopoverAnimations.popoverState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
47
47
  }
48
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqPopoverComponent, decorators: [{
49
49
  type: Component,
50
50
  args: [{ selector: 'kbq-popover-component', preserveWhitespaces: false, host: {
51
51
  '(keydown.esc)': 'hide(0)'
52
- }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [kbqPopoverAnimations.popoverState], template: "<div class=\"kbq-popover\"\n [cdkTrapFocus]=\"isTrapFocus\"\n [cdkTrapFocusAutoCapture]=\"isTrapFocus\"\n [ngClass]=\"classMap\"\n [@state]=\"visibility\"\n (@state.start)=\"animationStart()\"\n (@state.done)=\"animationDone($event)\">\n\n <div class=\"kbq-popover__container\">\n <div class=\"kbq-popover__header\" *ngIf=\"header\">\n <ng-container *ngIf=\"isTemplateRef(header)\" [ngTemplateOutlet]=\"$any(header)\"></ng-container>\n <ng-container *ngIf=\"!isTemplateRef(header)\">\n <div>{{ header }}</div>\n </ng-container>\n </div>\n\n <div class=\"kbq-popover__content\"\n [ngClass]=\"{ 'kbq-popover__content_padding_bottom': footer }\"\n *ngIf=\"content\">\n <ng-container *ngIf=\"isTemplateRef(content)\" [ngTemplateOutlet]=\"$any(content)\"></ng-container>\n <ng-container *ngIf=\"!isTemplateRef(content)\">\n <div>{{ content }}</div>\n </ng-container>\n </div>\n\n <div class=\"kbq-popover__footer\" *ngIf=\"footer\">\n <ng-container *ngIf=\"isTemplateRef(footer)\" [ngTemplateOutlet]=\"$any(footer)\"></ng-container>\n <ng-container *ngIf=\"!isTemplateRef(footer)\">\n <div>{{ footer }}</div>\n </ng-container>\n </div>\n </div>\n\n <div class=\"kbq-popover__arrow\" [class.kbq-popover__arrow_with-footer]=\"footer\"></div>\n</div>\n", styles: [".kbq-popover{position:relative;border-radius:var(--kbq-popover-size-border-radius, );border-width:var(--kbq-popover-size-border-width, );border-style:solid;box-sizing:border-box;z-index:1030;list-style:none;white-space:pre-line}.kbq-popover.kbq-popover_small{max-width:var(--kbq-popover-size-small-width, )}.kbq-popover.kbq-popover_medium{max-width:var(--kbq-popover-size-medium-width, )}.kbq-popover.kbq-popover_large{max-width:var(--kbq-popover-size-large-width, )}.kbq-popover.kbq-popover_placement-top,.kbq-popover.kbq-popover_placement-top-left,.kbq-popover.kbq-popover_placement-top-right{margin-bottom:calc(var(--kbq-popover-size-trigger-margin, ))}.kbq-popover.kbq-popover_placement-right,.kbq-popover.kbq-popover_placement-right-top,.kbq-popover.kbq-popover_placement-right-bottom{margin-left:calc(var(--kbq-popover-size-trigger-margin, ))}.kbq-popover.kbq-popover_placement-bottom,.kbq-popover.kbq-popover_placement-bottom-left,.kbq-popover.kbq-popover_placement-bottom-right{margin-top:calc(var(--kbq-popover-size-trigger-margin, ))}.kbq-popover.kbq-popover_placement-left,.kbq-popover.kbq-popover_placement-left-top,.kbq-popover.kbq-popover_placement-left-bottom{margin-right:calc(var(--kbq-popover-size-trigger-margin, ))}.kbq-popover__container{display:flex;flex-direction:column;max-height:var(--kbq-popover-size-max-height, );border-radius:var(--kbq-popover-size-border-radius, );overflow:hidden}.kbq-popover__header{display:flex;align-items:center;height:var(--kbq-popover-header-size-height, );padding:var(--kbq-popover-header-size-padding, );border-bottom-width:1px;border-bottom-style:solid}.kbq-popover__content{overflow:hidden;padding:var(--kbq-popover-size-padding, )}.kbq-popover__content.kbq-popover__content_padding_bottom{padding-bottom:calc(var(--kbq-popover-size-padding, ) + var(--kbq-popover-footer-size-margin-top, ))}.kbq-popover__footer{box-sizing:border-box;height:var(--kbq-popover-footer-size-height, );padding:var(--kbq-popover-footer-size-padding, );border-top-width:1px;border-top-style:solid}.kbq-popover__arrow{position:absolute;z-index:-1;width:var(--kbq-popover-size-arrow-size, );height:var(--kbq-popover-size-arrow-size, );border:solid 1px;transform:rotate(45deg)}.kbq-popover_placement-top .kbq-popover__arrow{bottom:calc(var(--kbq-popover-size-arrow-size, -1) / -2);left:50%;margin-left:calc(var(--kbq-popover-size-arrow-size, -1) / -2)}.kbq-popover_placement-top-left .kbq-popover__arrow{bottom:calc(var(--kbq-popover-size-arrow-size, -1) / -2);left:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover_placement-top-right .kbq-popover__arrow{bottom:calc(var(--kbq-popover-size-arrow-size, -1) / -2);right:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover_placement-right .kbq-popover__arrow{left:calc(var(--kbq-popover-size-arrow-size, -1) / -2);top:50%;margin-top:calc(var(--kbq-popover-size-arrow-size, -1) / -2)}.kbq-popover_placement-right-top .kbq-popover__arrow{left:calc(var(--kbq-popover-size-arrow-size, -1) / -2);top:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover_placement-right-bottom .kbq-popover__arrow{left:calc(var(--kbq-popover-size-arrow-size, -1) / -2);bottom:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover_placement-left .kbq-popover__arrow{right:calc(var(--kbq-popover-size-arrow-size, -1) / -2);top:50%;margin-top:calc(var(--kbq-popover-size-arrow-size, -1) / -2)}.kbq-popover_placement-left-top .kbq-popover__arrow{right:calc(var(--kbq-popover-size-arrow-size, -1) / -2);top:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover_placement-left-bottom .kbq-popover__arrow{right:calc(var(--kbq-popover-size-arrow-size, -1) / -2);bottom:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover_placement-bottom .kbq-popover__arrow{top:calc(var(--kbq-popover-size-arrow-size, -1) / -2);left:50%;margin-left:calc(var(--kbq-popover-size-arrow-size, -1) / -2)}.kbq-popover_placement-bottom-left .kbq-popover__arrow{top:calc(var(--kbq-popover-size-arrow-size, -1) / -2);left:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover_placement-bottom-right .kbq-popover__arrow{top:calc(var(--kbq-popover-size-arrow-size, -1) / -2);right:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover-confirm .kbq-popover__content{padding:24px 16px 16px}.kbq-popover-confirm .kbq-popover__content button{margin-top:16px;display:block;margin-left:auto}\n"] }]
52
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [kbqPopoverAnimations.popoverState], template: "<div class=\"kbq-popover\"\n [cdkTrapFocus]=\"isTrapFocus\"\n [cdkTrapFocusAutoCapture]=\"isTrapFocus\"\n [ngClass]=\"classMap\"\n [@state]=\"visibility\"\n (@state.start)=\"animationStart()\"\n (@state.done)=\"animationDone($event)\">\n\n <div class=\"kbq-popover__container\"\n [class.kbq-popover__container_with-header]=\"header\"\n [class.kbq-popover__container_with-footer]=\"footer\">\n <div class=\"kbq-popover__header\" *ngIf=\"header\">\n <ng-container *ngIf=\"isTemplateRef(header)\" [ngTemplateOutlet]=\"$any(header)\"></ng-container>\n <ng-container *ngIf=\"!isTemplateRef(header)\">\n <div class=\"kbq-popover__header-text\">{{ header }}</div>\n </ng-container>\n </div>\n\n <div class=\"kbq-popover__content kbq-scrollbar\" *ngIf=\"content\">\n <ng-container *ngIf=\"isTemplateRef(content)\" [ngTemplateOutlet]=\"$any(content)\"></ng-container>\n <ng-container *ngIf=\"!isTemplateRef(content)\">\n <div>{{ content }}</div>\n </ng-container>\n </div>\n\n <div class=\"kbq-popover__footer\" *ngIf=\"footer\">\n <ng-container *ngIf=\"isTemplateRef(footer)\" [ngTemplateOutlet]=\"$any(footer)\"></ng-container>\n <ng-container *ngIf=\"!isTemplateRef(footer)\">\n <div>{{ footer }}</div>\n </ng-container>\n </div>\n </div>\n\n <div class=\"kbq-popover__arrow\"></div>\n</div>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:29px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.04) 10px,rgba(255,255,255,.04) 10px,rgba(255,255,255,.04) 20px,rgba(0,0,0,.04) 20px,rgba(0,0,0,.04) 30px,rgba(255,255,255,.04) 31px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-button-size-border-width, 2px))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-button-size-border-radius, 8px)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-button-size-border-radius, 8px)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-button-size-border-width, 2px))}.kbq-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.kbq-popover{position:relative;border-radius:var(--kbq-popover-size-container-border-radius, 12px);box-sizing:border-box;z-index:1030;list-style:none;white-space:pre-line}.kbq-popover.kbq-popover_small{max-width:var(--kbq-popover-size-container-width-small, 200px)}.kbq-popover.kbq-popover_medium{max-width:var(--kbq-popover-size-container-width-medium, 400px)}.kbq-popover.kbq-popover_large{max-width:var(--kbq-popover-size-container-width-large, 640px)}.kbq-popover.kbq-popover_placement-top,.kbq-popover.kbq-popover_placement-top-left,.kbq-popover.kbq-popover_placement-top-right{margin-bottom:8px}.kbq-popover.kbq-popover_placement-right,.kbq-popover.kbq-popover_placement-right-top,.kbq-popover.kbq-popover_placement-right-bottom{margin-left:8px}.kbq-popover.kbq-popover_placement-bottom,.kbq-popover.kbq-popover_placement-bottom-left,.kbq-popover.kbq-popover_placement-bottom-right{margin-top:8px}.kbq-popover.kbq-popover_placement-left,.kbq-popover.kbq-popover_placement-left-top,.kbq-popover.kbq-popover_placement-left-bottom{margin-right:8px}.kbq-popover__content{overflow-y:auto;padding:var(--kbq-popover-size-content-padding-top, 24px) var(--kbq-popover-size-content-padding-horizontal, 24px) var(--kbq-popover-size-content-padding-bottom, 32px)}.kbq-popover__container{overflow:hidden;display:flex;flex-direction:column;max-height:var(--kbq-popover-size-container-max-height, 480px);border-radius:var(--kbq-popover-size-container-border-radius, 12px)}.kbq-popover__container.kbq-popover__container_with-header .kbq-popover__content{padding-top:var(--kbq-popover-size-content-padding-vertical, )}.kbq-popover__container.kbq-popover__container_with-footer .kbq-popover__content{padding-bottom:var(--kbq-popover-size-content-padding-vertical, )}.kbq-popover__header{display:flex;align-items:center;overflow:hidden;padding:var(--kbq-popover-size-header-padding-top, 16px) var(--kbq-popover-size-header-padding-horizontal, 24px) var(--kbq-popover-size-header-padding-bottom, 8px) var(--kbq-popover-size-header-padding-horizontal, 24px)}.kbq-popover__header .kbq-popover__header-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-popover__footer{padding:var(--kbq-popover-size-footer-padding-vertical, 16px) var(--kbq-popover-size-footer-padding-horizontal, 24px)}.kbq-popover__arrow{position:absolute;z-index:-1;width:12px;height:12px;transform:rotate(45deg)}.kbq-popover_placement-top .kbq-popover__arrow{bottom:-5.5px;left:50%;margin-left:-5.5px}.kbq-popover_placement-top-left .kbq-popover__arrow{bottom:-5.5px;left:9px}.kbq-popover_placement-top-right .kbq-popover__arrow{bottom:-5.5px;right:9px}.kbq-popover_placement-right .kbq-popover__arrow{left:-5.5px;top:50%;margin-top:-5.5px}.kbq-popover_placement-right-top .kbq-popover__arrow{left:-5.5px;top:9px}.kbq-popover_placement-right-bottom .kbq-popover__arrow{left:-5.5px;bottom:9px}.kbq-popover_placement-left .kbq-popover__arrow{right:-5.5px;top:50%;margin-top:-5.5px}.kbq-popover_placement-left-top .kbq-popover__arrow{right:-5.5px;top:9px}.kbq-popover_placement-left-bottom .kbq-popover__arrow{right:-5.5px;bottom:9px}.kbq-popover_placement-bottom .kbq-popover__arrow{top:-5.5px;left:50%;margin-left:-5.5px}.kbq-popover_placement-bottom-left .kbq-popover__arrow{top:-5.5px;left:9px}.kbq-popover_placement-bottom-right .kbq-popover__arrow{top:-5.5px;right:9px}\n"] }]
53
53
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });
54
54
  const KBQ_POPOVER_SCROLL_STRATEGY = new InjectionToken('kbq-popover-scroll-strategy');
55
55
  /** @docs-private */
@@ -209,7 +209,7 @@ class KbqPopoverTrigger extends KbqPopUpTrigger {
209
209
  this.instance.markForCheck();
210
210
  }
211
211
  closingActionsForClick() {
212
- if (this.trigger === PopUpTriggers.Click) {
212
+ if (this.hasClickTrigger) {
213
213
  return [
214
214
  this.overlayRef.backdropClick(),
215
215
  this.hasBackdrop ? NEVER : this.overlayRef.outsidePointerEvents()
@@ -293,11 +293,11 @@ class KbqPopoverConfirmComponent extends KbqPopoverComponent {
293
293
  this.onConfirm = new Subject();
294
294
  }
295
295
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqPopoverConfirmComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
296
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: KbqPopoverConfirmComponent, selector: "kbq-popover-confirm-component", usesInheritance: true, ngImport: i0, template: "<div class=\"kbq-popover-confirm kbq-popover\"\n cdkTrapFocus=\"true\"\n cdkTrapFocusAutoCapture=\"true\"\n [ngClass]=\"classMap\"\n [@state]=\"visibility\"\n (@state.start)=\"animationStart()\"\n (@state.done)=\"animationDone($event)\">\n <div class=\"kbq-popover__content\">\n <div>{{ confirmText }}</div>\n <button kbq-button [color]=\"themePalette.Primary\" (click)=\"onConfirm.next()\">{{confirmButtonText}}</button>\n </div>\n\n <div class=\"kbq-popover__arrow\"></div>\n</div>\n", styles: [".kbq-popover{position:relative;border-radius:var(--kbq-popover-size-border-radius, );border-width:var(--kbq-popover-size-border-width, );border-style:solid;box-sizing:border-box;z-index:1030;list-style:none;white-space:pre-line}.kbq-popover.kbq-popover_small{max-width:var(--kbq-popover-size-small-width, )}.kbq-popover.kbq-popover_medium{max-width:var(--kbq-popover-size-medium-width, )}.kbq-popover.kbq-popover_large{max-width:var(--kbq-popover-size-large-width, )}.kbq-popover.kbq-popover_placement-top,.kbq-popover.kbq-popover_placement-top-left,.kbq-popover.kbq-popover_placement-top-right{margin-bottom:calc(var(--kbq-popover-size-trigger-margin, ))}.kbq-popover.kbq-popover_placement-right,.kbq-popover.kbq-popover_placement-right-top,.kbq-popover.kbq-popover_placement-right-bottom{margin-left:calc(var(--kbq-popover-size-trigger-margin, ))}.kbq-popover.kbq-popover_placement-bottom,.kbq-popover.kbq-popover_placement-bottom-left,.kbq-popover.kbq-popover_placement-bottom-right{margin-top:calc(var(--kbq-popover-size-trigger-margin, ))}.kbq-popover.kbq-popover_placement-left,.kbq-popover.kbq-popover_placement-left-top,.kbq-popover.kbq-popover_placement-left-bottom{margin-right:calc(var(--kbq-popover-size-trigger-margin, ))}.kbq-popover__container{display:flex;flex-direction:column;max-height:var(--kbq-popover-size-max-height, );border-radius:var(--kbq-popover-size-border-radius, );overflow:hidden}.kbq-popover__header{display:flex;align-items:center;height:var(--kbq-popover-header-size-height, );padding:var(--kbq-popover-header-size-padding, );border-bottom-width:1px;border-bottom-style:solid}.kbq-popover__content{overflow:hidden;padding:var(--kbq-popover-size-padding, )}.kbq-popover__content.kbq-popover__content_padding_bottom{padding-bottom:calc(var(--kbq-popover-size-padding, ) + var(--kbq-popover-footer-size-margin-top, ))}.kbq-popover__footer{box-sizing:border-box;height:var(--kbq-popover-footer-size-height, );padding:var(--kbq-popover-footer-size-padding, );border-top-width:1px;border-top-style:solid}.kbq-popover__arrow{position:absolute;z-index:-1;width:var(--kbq-popover-size-arrow-size, );height:var(--kbq-popover-size-arrow-size, );border:solid 1px;transform:rotate(45deg)}.kbq-popover_placement-top .kbq-popover__arrow{bottom:calc(var(--kbq-popover-size-arrow-size, -1) / -2);left:50%;margin-left:calc(var(--kbq-popover-size-arrow-size, -1) / -2)}.kbq-popover_placement-top-left .kbq-popover__arrow{bottom:calc(var(--kbq-popover-size-arrow-size, -1) / -2);left:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover_placement-top-right .kbq-popover__arrow{bottom:calc(var(--kbq-popover-size-arrow-size, -1) / -2);right:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover_placement-right .kbq-popover__arrow{left:calc(var(--kbq-popover-size-arrow-size, -1) / -2);top:50%;margin-top:calc(var(--kbq-popover-size-arrow-size, -1) / -2)}.kbq-popover_placement-right-top .kbq-popover__arrow{left:calc(var(--kbq-popover-size-arrow-size, -1) / -2);top:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover_placement-right-bottom .kbq-popover__arrow{left:calc(var(--kbq-popover-size-arrow-size, -1) / -2);bottom:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover_placement-left .kbq-popover__arrow{right:calc(var(--kbq-popover-size-arrow-size, -1) / -2);top:50%;margin-top:calc(var(--kbq-popover-size-arrow-size, -1) / -2)}.kbq-popover_placement-left-top .kbq-popover__arrow{right:calc(var(--kbq-popover-size-arrow-size, -1) / -2);top:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover_placement-left-bottom .kbq-popover__arrow{right:calc(var(--kbq-popover-size-arrow-size, -1) / -2);bottom:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover_placement-bottom .kbq-popover__arrow{top:calc(var(--kbq-popover-size-arrow-size, -1) / -2);left:50%;margin-left:calc(var(--kbq-popover-size-arrow-size, -1) / -2)}.kbq-popover_placement-bottom-left .kbq-popover__arrow{top:calc(var(--kbq-popover-size-arrow-size, -1) / -2);left:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover_placement-bottom-right .kbq-popover__arrow{top:calc(var(--kbq-popover-size-arrow-size, -1) / -2);right:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover-confirm .kbq-popover__content{padding:24px 16px 16px}.kbq-popover-confirm .kbq-popover__content button{margin-top:16px;display:block;margin-left:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2$1.KbqButton, selector: "[kbq-button]", inputs: ["color", "tabIndex", "kbqStyle", "disabled"] }, { kind: "directive", type: i2$1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], animations: [kbqPopoverAnimations.popoverState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
296
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: KbqPopoverConfirmComponent, selector: "kbq-popover-confirm-component", usesInheritance: true, ngImport: i0, template: "<div class=\"kbq-popover-confirm kbq-popover\"\n cdkTrapFocus=\"true\"\n cdkTrapFocusAutoCapture=\"true\"\n [ngClass]=\"classMap\"\n [@state]=\"visibility\"\n (@state.start)=\"animationStart()\"\n (@state.done)=\"animationDone($event)\">\n <div class=\"kbq-popover__content\">\n <div>{{ confirmText }}</div>\n <button kbq-button [color]=\"themePalette.Primary\" (click)=\"onConfirm.next()\">{{confirmButtonText}}</button>\n </div>\n\n <div class=\"kbq-popover__arrow\"></div>\n</div>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:29px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.04) 10px,rgba(255,255,255,.04) 10px,rgba(255,255,255,.04) 20px,rgba(0,0,0,.04) 20px,rgba(0,0,0,.04) 30px,rgba(255,255,255,.04) 31px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-button-size-border-width, 2px))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-button-size-border-radius, 8px)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-button-size-border-radius, 8px)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-button-size-border-width, 2px))}.kbq-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.kbq-popover{position:relative;border-radius:var(--kbq-popover-size-container-border-radius, 12px);box-sizing:border-box;z-index:1030;list-style:none;white-space:pre-line}.kbq-popover.kbq-popover_small{max-width:var(--kbq-popover-size-container-width-small, 200px)}.kbq-popover.kbq-popover_medium{max-width:var(--kbq-popover-size-container-width-medium, 400px)}.kbq-popover.kbq-popover_large{max-width:var(--kbq-popover-size-container-width-large, 640px)}.kbq-popover.kbq-popover_placement-top,.kbq-popover.kbq-popover_placement-top-left,.kbq-popover.kbq-popover_placement-top-right{margin-bottom:8px}.kbq-popover.kbq-popover_placement-right,.kbq-popover.kbq-popover_placement-right-top,.kbq-popover.kbq-popover_placement-right-bottom{margin-left:8px}.kbq-popover.kbq-popover_placement-bottom,.kbq-popover.kbq-popover_placement-bottom-left,.kbq-popover.kbq-popover_placement-bottom-right{margin-top:8px}.kbq-popover.kbq-popover_placement-left,.kbq-popover.kbq-popover_placement-left-top,.kbq-popover.kbq-popover_placement-left-bottom{margin-right:8px}.kbq-popover__content{overflow-y:auto;padding:var(--kbq-popover-size-content-padding-top, 24px) var(--kbq-popover-size-content-padding-horizontal, 24px) var(--kbq-popover-size-content-padding-bottom, 32px)}.kbq-popover__container{overflow:hidden;display:flex;flex-direction:column;max-height:var(--kbq-popover-size-container-max-height, 480px);border-radius:var(--kbq-popover-size-container-border-radius, 12px)}.kbq-popover__container.kbq-popover__container_with-header .kbq-popover__content{padding-top:var(--kbq-popover-size-content-padding-vertical, )}.kbq-popover__container.kbq-popover__container_with-footer .kbq-popover__content{padding-bottom:var(--kbq-popover-size-content-padding-vertical, )}.kbq-popover__header{display:flex;align-items:center;overflow:hidden;padding:var(--kbq-popover-size-header-padding-top, 16px) var(--kbq-popover-size-header-padding-horizontal, 24px) var(--kbq-popover-size-header-padding-bottom, 8px) var(--kbq-popover-size-header-padding-horizontal, 24px)}.kbq-popover__header .kbq-popover__header-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-popover__footer{padding:var(--kbq-popover-size-footer-padding-vertical, 16px) var(--kbq-popover-size-footer-padding-horizontal, 24px)}.kbq-popover__arrow{position:absolute;z-index:-1;width:12px;height:12px;transform:rotate(45deg)}.kbq-popover_placement-top .kbq-popover__arrow{bottom:-5.5px;left:50%;margin-left:-5.5px}.kbq-popover_placement-top-left .kbq-popover__arrow{bottom:-5.5px;left:9px}.kbq-popover_placement-top-right .kbq-popover__arrow{bottom:-5.5px;right:9px}.kbq-popover_placement-right .kbq-popover__arrow{left:-5.5px;top:50%;margin-top:-5.5px}.kbq-popover_placement-right-top .kbq-popover__arrow{left:-5.5px;top:9px}.kbq-popover_placement-right-bottom .kbq-popover__arrow{left:-5.5px;bottom:9px}.kbq-popover_placement-left .kbq-popover__arrow{right:-5.5px;top:50%;margin-top:-5.5px}.kbq-popover_placement-left-top .kbq-popover__arrow{right:-5.5px;top:9px}.kbq-popover_placement-left-bottom .kbq-popover__arrow{right:-5.5px;bottom:9px}.kbq-popover_placement-bottom .kbq-popover__arrow{top:-5.5px;left:50%;margin-left:-5.5px}.kbq-popover_placement-bottom-left .kbq-popover__arrow{top:-5.5px;left:9px}.kbq-popover_placement-bottom-right .kbq-popover__arrow{top:-5.5px;right:9px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2$1.KbqButton, selector: "[kbq-button]", inputs: ["color", "tabIndex", "kbqStyle", "disabled"] }, { kind: "directive", type: i2$1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], animations: [kbqPopoverAnimations.popoverState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
297
297
  }
298
298
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqPopoverConfirmComponent, decorators: [{
299
299
  type: Component,
300
- args: [{ selector: 'kbq-popover-confirm-component', preserveWhitespaces: false, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [kbqPopoverAnimations.popoverState], template: "<div class=\"kbq-popover-confirm kbq-popover\"\n cdkTrapFocus=\"true\"\n cdkTrapFocusAutoCapture=\"true\"\n [ngClass]=\"classMap\"\n [@state]=\"visibility\"\n (@state.start)=\"animationStart()\"\n (@state.done)=\"animationDone($event)\">\n <div class=\"kbq-popover__content\">\n <div>{{ confirmText }}</div>\n <button kbq-button [color]=\"themePalette.Primary\" (click)=\"onConfirm.next()\">{{confirmButtonText}}</button>\n </div>\n\n <div class=\"kbq-popover__arrow\"></div>\n</div>\n", styles: [".kbq-popover{position:relative;border-radius:var(--kbq-popover-size-border-radius, );border-width:var(--kbq-popover-size-border-width, );border-style:solid;box-sizing:border-box;z-index:1030;list-style:none;white-space:pre-line}.kbq-popover.kbq-popover_small{max-width:var(--kbq-popover-size-small-width, )}.kbq-popover.kbq-popover_medium{max-width:var(--kbq-popover-size-medium-width, )}.kbq-popover.kbq-popover_large{max-width:var(--kbq-popover-size-large-width, )}.kbq-popover.kbq-popover_placement-top,.kbq-popover.kbq-popover_placement-top-left,.kbq-popover.kbq-popover_placement-top-right{margin-bottom:calc(var(--kbq-popover-size-trigger-margin, ))}.kbq-popover.kbq-popover_placement-right,.kbq-popover.kbq-popover_placement-right-top,.kbq-popover.kbq-popover_placement-right-bottom{margin-left:calc(var(--kbq-popover-size-trigger-margin, ))}.kbq-popover.kbq-popover_placement-bottom,.kbq-popover.kbq-popover_placement-bottom-left,.kbq-popover.kbq-popover_placement-bottom-right{margin-top:calc(var(--kbq-popover-size-trigger-margin, ))}.kbq-popover.kbq-popover_placement-left,.kbq-popover.kbq-popover_placement-left-top,.kbq-popover.kbq-popover_placement-left-bottom{margin-right:calc(var(--kbq-popover-size-trigger-margin, ))}.kbq-popover__container{display:flex;flex-direction:column;max-height:var(--kbq-popover-size-max-height, );border-radius:var(--kbq-popover-size-border-radius, );overflow:hidden}.kbq-popover__header{display:flex;align-items:center;height:var(--kbq-popover-header-size-height, );padding:var(--kbq-popover-header-size-padding, );border-bottom-width:1px;border-bottom-style:solid}.kbq-popover__content{overflow:hidden;padding:var(--kbq-popover-size-padding, )}.kbq-popover__content.kbq-popover__content_padding_bottom{padding-bottom:calc(var(--kbq-popover-size-padding, ) + var(--kbq-popover-footer-size-margin-top, ))}.kbq-popover__footer{box-sizing:border-box;height:var(--kbq-popover-footer-size-height, );padding:var(--kbq-popover-footer-size-padding, );border-top-width:1px;border-top-style:solid}.kbq-popover__arrow{position:absolute;z-index:-1;width:var(--kbq-popover-size-arrow-size, );height:var(--kbq-popover-size-arrow-size, );border:solid 1px;transform:rotate(45deg)}.kbq-popover_placement-top .kbq-popover__arrow{bottom:calc(var(--kbq-popover-size-arrow-size, -1) / -2);left:50%;margin-left:calc(var(--kbq-popover-size-arrow-size, -1) / -2)}.kbq-popover_placement-top-left .kbq-popover__arrow{bottom:calc(var(--kbq-popover-size-arrow-size, -1) / -2);left:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover_placement-top-right .kbq-popover__arrow{bottom:calc(var(--kbq-popover-size-arrow-size, -1) / -2);right:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover_placement-right .kbq-popover__arrow{left:calc(var(--kbq-popover-size-arrow-size, -1) / -2);top:50%;margin-top:calc(var(--kbq-popover-size-arrow-size, -1) / -2)}.kbq-popover_placement-right-top .kbq-popover__arrow{left:calc(var(--kbq-popover-size-arrow-size, -1) / -2);top:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover_placement-right-bottom .kbq-popover__arrow{left:calc(var(--kbq-popover-size-arrow-size, -1) / -2);bottom:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover_placement-left .kbq-popover__arrow{right:calc(var(--kbq-popover-size-arrow-size, -1) / -2);top:50%;margin-top:calc(var(--kbq-popover-size-arrow-size, -1) / -2)}.kbq-popover_placement-left-top .kbq-popover__arrow{right:calc(var(--kbq-popover-size-arrow-size, -1) / -2);top:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover_placement-left-bottom .kbq-popover__arrow{right:calc(var(--kbq-popover-size-arrow-size, -1) / -2);bottom:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover_placement-bottom .kbq-popover__arrow{top:calc(var(--kbq-popover-size-arrow-size, -1) / -2);left:50%;margin-left:calc(var(--kbq-popover-size-arrow-size, -1) / -2)}.kbq-popover_placement-bottom-left .kbq-popover__arrow{top:calc(var(--kbq-popover-size-arrow-size, -1) / -2);left:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover_placement-bottom-right .kbq-popover__arrow{top:calc(var(--kbq-popover-size-arrow-size, -1) / -2);right:calc(18px - var(--kbq-popover-size-trigger-margin, ))}.kbq-popover-confirm .kbq-popover__content{padding:24px 16px 16px}.kbq-popover-confirm .kbq-popover__content button{margin-top:16px;display:block;margin-left:auto}\n"] }]
300
+ args: [{ selector: 'kbq-popover-confirm-component', preserveWhitespaces: false, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [kbqPopoverAnimations.popoverState], template: "<div class=\"kbq-popover-confirm kbq-popover\"\n cdkTrapFocus=\"true\"\n cdkTrapFocusAutoCapture=\"true\"\n [ngClass]=\"classMap\"\n [@state]=\"visibility\"\n (@state.start)=\"animationStart()\"\n (@state.done)=\"animationDone($event)\">\n <div class=\"kbq-popover__content\">\n <div>{{ confirmText }}</div>\n <button kbq-button [color]=\"themePalette.Primary\" (click)=\"onConfirm.next()\">{{confirmButtonText}}</button>\n </div>\n\n <div class=\"kbq-popover__arrow\"></div>\n</div>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:29px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.04) 10px,rgba(255,255,255,.04) 10px,rgba(255,255,255,.04) 20px,rgba(0,0,0,.04) 20px,rgba(0,0,0,.04) 30px,rgba(255,255,255,.04) 31px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-button-size-border-width, 2px))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-button-size-border-radius, 8px)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-button-size-border-radius, 8px)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-button-size-border-width, 2px))}.kbq-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.kbq-popover{position:relative;border-radius:var(--kbq-popover-size-container-border-radius, 12px);box-sizing:border-box;z-index:1030;list-style:none;white-space:pre-line}.kbq-popover.kbq-popover_small{max-width:var(--kbq-popover-size-container-width-small, 200px)}.kbq-popover.kbq-popover_medium{max-width:var(--kbq-popover-size-container-width-medium, 400px)}.kbq-popover.kbq-popover_large{max-width:var(--kbq-popover-size-container-width-large, 640px)}.kbq-popover.kbq-popover_placement-top,.kbq-popover.kbq-popover_placement-top-left,.kbq-popover.kbq-popover_placement-top-right{margin-bottom:8px}.kbq-popover.kbq-popover_placement-right,.kbq-popover.kbq-popover_placement-right-top,.kbq-popover.kbq-popover_placement-right-bottom{margin-left:8px}.kbq-popover.kbq-popover_placement-bottom,.kbq-popover.kbq-popover_placement-bottom-left,.kbq-popover.kbq-popover_placement-bottom-right{margin-top:8px}.kbq-popover.kbq-popover_placement-left,.kbq-popover.kbq-popover_placement-left-top,.kbq-popover.kbq-popover_placement-left-bottom{margin-right:8px}.kbq-popover__content{overflow-y:auto;padding:var(--kbq-popover-size-content-padding-top, 24px) var(--kbq-popover-size-content-padding-horizontal, 24px) var(--kbq-popover-size-content-padding-bottom, 32px)}.kbq-popover__container{overflow:hidden;display:flex;flex-direction:column;max-height:var(--kbq-popover-size-container-max-height, 480px);border-radius:var(--kbq-popover-size-container-border-radius, 12px)}.kbq-popover__container.kbq-popover__container_with-header .kbq-popover__content{padding-top:var(--kbq-popover-size-content-padding-vertical, )}.kbq-popover__container.kbq-popover__container_with-footer .kbq-popover__content{padding-bottom:var(--kbq-popover-size-content-padding-vertical, )}.kbq-popover__header{display:flex;align-items:center;overflow:hidden;padding:var(--kbq-popover-size-header-padding-top, 16px) var(--kbq-popover-size-header-padding-horizontal, 24px) var(--kbq-popover-size-header-padding-bottom, 8px) var(--kbq-popover-size-header-padding-horizontal, 24px)}.kbq-popover__header .kbq-popover__header-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-popover__footer{padding:var(--kbq-popover-size-footer-padding-vertical, 16px) var(--kbq-popover-size-footer-padding-horizontal, 24px)}.kbq-popover__arrow{position:absolute;z-index:-1;width:12px;height:12px;transform:rotate(45deg)}.kbq-popover_placement-top .kbq-popover__arrow{bottom:-5.5px;left:50%;margin-left:-5.5px}.kbq-popover_placement-top-left .kbq-popover__arrow{bottom:-5.5px;left:9px}.kbq-popover_placement-top-right .kbq-popover__arrow{bottom:-5.5px;right:9px}.kbq-popover_placement-right .kbq-popover__arrow{left:-5.5px;top:50%;margin-top:-5.5px}.kbq-popover_placement-right-top .kbq-popover__arrow{left:-5.5px;top:9px}.kbq-popover_placement-right-bottom .kbq-popover__arrow{left:-5.5px;bottom:9px}.kbq-popover_placement-left .kbq-popover__arrow{right:-5.5px;top:50%;margin-top:-5.5px}.kbq-popover_placement-left-top .kbq-popover__arrow{right:-5.5px;top:9px}.kbq-popover_placement-left-bottom .kbq-popover__arrow{right:-5.5px;bottom:9px}.kbq-popover_placement-bottom .kbq-popover__arrow{top:-5.5px;left:50%;margin-left:-5.5px}.kbq-popover_placement-bottom-left .kbq-popover__arrow{top:-5.5px;left:9px}.kbq-popover_placement-bottom-right .kbq-popover__arrow{top:-5.5px;right:9px}\n"] }]
301
301
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });
302
302
  class KbqPopoverConfirmTrigger extends KbqPopoverTrigger {
303
303
  get confirmText() {