@koobiq/components 20.1.0 → 20.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/_accordion-theme.scss +1 -1
- package/accordion/accordion-tokens.scss +1 -0
- package/accordion/{accordion-trigger.component.scss → accordion-trigger.scss} +4 -0
- package/accordion/{accordion.component.scss → accordion.scss} +3 -3
- package/accordion/index.d.ts +215 -119
- package/alert/_alert-theme.scss +14 -0
- package/alert/alert.component.scss +24 -13
- package/alert/index.d.ts +63 -29
- package/autocomplete/autocomplete.scss +2 -1
- package/autocomplete/index.d.ts +35 -29
- package/badge/index.d.ts +2 -3
- package/clamped-text/index.d.ts +3 -2
- package/core/index.d.ts +116 -11
- package/core/styles/_core.scss +2 -0
- package/core/styles/common/_animation.scss +31 -24
- package/core/styles/common/_connected-overlay.scss +36 -0
- package/core/styles/common/_select.scss +7 -2
- package/dropdown/dropdown-item.scss +16 -0
- package/dropdown/dropdown-tokens.scss +2 -1
- package/dropdown/dropdown.scss +9 -0
- package/dropdown/index.d.ts +73 -6
- package/fesm2022/koobiq-components-accordion.mjs +406 -303
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-alert.mjs +88 -48
- package/fesm2022/koobiq-components-alert.mjs.map +1 -1
- package/fesm2022/koobiq-components-app-switcher.mjs +1 -1
- package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
- package/fesm2022/koobiq-components-autocomplete.mjs +37 -23
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-badge.mjs +5 -4
- package/fesm2022/koobiq-components-badge.mjs.map +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-clamped-text.mjs +5 -0
- package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +1 -1
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +98 -4
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +10 -7
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +99 -20
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +2 -2
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +203 -32
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +4 -4
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +14 -5
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-inline-edit.mjs +4 -2
- package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +117 -22
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-notification-center.mjs +19 -4
- package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +5 -0
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-search-expandable.mjs +43 -8
- package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +36 -45
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-split-button.mjs +3 -10
- package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +29 -17
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +1 -1
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-timepicker.mjs +3 -4
- package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +3 -5
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +1 -1
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs +118 -6
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +39 -31
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/filter-bar/_filter-bar-theme.scss +0 -4
- package/filter-bar/filter-bar-tokens.scss +3 -0
- package/filter-bar/filters.scss +3 -2
- package/filter-bar/index.d.ts +62 -3
- package/filter-bar/pipes/base-pipe.scss +0 -11
- package/filter-bar/pipes/pipe-input.scss +10 -0
- package/icon/icon-button.scss +3 -1
- package/icon/index.d.ts +15 -2
- package/navbar/_navbar-item_vertical.scss +7 -5
- package/navbar/index.d.ts +38 -4
- package/navbar/navbar-brand.scss +17 -7
- package/notification-center/index.d.ts +2 -1
- package/package.json +3 -3
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/light-theme.css +1 -1
- package/prebuilt-themes/theme.css +1 -1
- package/schematics/collection.json +10 -0
- package/schematics/migrations/alert-signals/README.md +64 -0
- package/schematics/migrations/alert-signals/data.js +70 -0
- package/schematics/migrations/alert-signals/index.js +350 -0
- package/schematics/migrations/alert-signals/schema.json +20 -0
- package/schematics/migrations/autocomplete-panel-width-auto/README.md +68 -0
- package/schematics/migrations/autocomplete-panel-width-auto/index.js +70 -0
- package/schematics/migrations/autocomplete-panel-width-auto/schema.json +15 -0
- package/schematics/migrations/filter-bar-signals/README.md +1 -1
- package/schematics/migrations.json +11 -1
- package/schematics/ng-add/index.js +1 -1
- package/schematics/utils/angular-parsing.js +11 -2
- package/search-expandable/index.d.ts +3 -0
- package/select/index.d.ts +51 -24
- package/tabs/_tabs-common.scss +60 -31
- package/tabs/_tabs-theme.scss +12 -0
- package/tabs/index.d.ts +2 -2
- package/tabs/tab-header.scss +14 -0
- package/tabs/tab-nav-bar.scss +4 -0
- package/tabs/tabs-tokens.scss +1 -0
- package/timezone/index.d.ts +1 -3
- package/tooltip/index.d.ts +73 -4
- package/tree-select/index.d.ts +46 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"koobiq-components-popover.mjs","sources":["../../../packages/components/popover/popover-animations.ts","../../../packages/components/popover/popover.component.ts","../../../packages/components/popover/popover.component.html","../../../packages/components/popover/popover-confirm.component.ts","../../../packages/components/popover/popover-confirm.component.html","../../../packages/components/popover/popover.module.ts","../../../packages/components/popover/koobiq-components-popover.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\n\nexport const kbqPopoverAnimations: {\n readonly popoverState: AnimationTriggerMetadata;\n} = {\n /** Animation that transitions a tooltip in and out. */\n popoverState: trigger('state', [\n state(\n 'initial',\n style({\n opacity: 0,\n transform: 'scale(1, 0.8)'\n })\n ),\n transition(\n '* => visible',\n animate(\n '120ms cubic-bezier(0, 0, 0.2, 1)',\n style({\n opacity: 1,\n transform: 'scale(1, 1)'\n })\n )\n ),\n transition('* => hidden', animate('100ms linear', style({ opacity: 0 })))\n ])\n};\n","import { CdkTrapFocus } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CdkObserveContent } from '@angular/cdk/observers';\nimport {\n CdkScrollable,\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayConfig,\n OverlayContainer,\n ScrollStrategy\n} from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Directive,\n ElementRef,\n EventEmitter,\n InjectionToken,\n Input,\n OnInit,\n Output,\n Renderer2,\n TemplateRef,\n Type,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n input,\n numberAttribute,\n viewChild\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport {\n KbqComponentColors,\n KbqOverflowShadowBottom,\n KbqOverflowShadowContainer,\n KbqOverflowShadowTop,\n KbqPopUp,\n KbqPopUpPlacementValues,\n KbqPopUpSizeValues,\n KbqPopUpTrigger,\n KbqStickToWindowPlacementValues,\n POSITION_TO_CSS_MAP,\n PopUpSizes,\n PopUpTriggers,\n applyPopupMargins\n} from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { NEVER, merge } from 'rxjs';\nimport { kbqPopoverAnimations } from './popover-animations';\n\nexport const defaultOffsetYWithArrow = 8;\n\n@Component({\n selector: 'kbq-popover-component',\n imports: [\n NgTemplateOutlet,\n CdkObserveContent,\n KbqButtonModule,\n KbqIconModule,\n CdkTrapFocus,\n KbqOverflowShadowContainer,\n KbqOverflowShadowTop,\n KbqOverflowShadowBottom\n ],\n templateUrl: './popover.component.html',\n styleUrls: ['./popover.scss', './popover-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '(keydown.esc)': 'onEscape()'\n },\n animations: [kbqPopoverAnimations.popoverState],\n preserveWhitespaces: false\n})\nexport class KbqPopoverComponent extends KbqPopUp implements AfterViewInit {\n prefix = 'kbq-popover';\n\n header: string | TemplateRef<any>;\n footer: string | TemplateRef<any>;\n\n trigger: KbqPopoverTrigger;\n\n isTrapFocus: boolean = false;\n hasCloseButton: boolean = false;\n\n @ViewChild('popover') elementRef: ElementRef;\n readonly cdkTrapFocus = viewChild.required(CdkTrapFocus);\n /** @docs-private */\n readonly overflowContainer = viewChild(KbqOverflowShadowContainer);\n\n ngAfterViewInit() {\n this.visibleChange.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((state) => {\n if (this.offset !== null && state && this.elementRef) {\n applyPopupMargins(\n this.renderer,\n this.elementRef.nativeElement,\n this.prefix,\n `${this.offset!.toString()}px`\n );\n\n this.setStickPosition();\n }\n });\n\n this.cdkTrapFocus().focusTrap.focusFirstTabbableElement();\n }\n\n updateClassMap(placement: string, customClass: string, size: KbqPopUpSizeValues) {\n super.updateClassMap(placement, customClass, { [`${this.prefix}_${size}`]: !!size });\n }\n\n updateTrapFocus(isTrapFocus: boolean): void {\n this.isTrapFocus = isTrapFocus;\n }\n\n onEscape() {\n this.hide(0);\n\n this.trigger.focus();\n }\n\n protected readonly componentColors = KbqComponentColors;\n}\n\nexport const KBQ_POPOVER_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>('kbq-popover-scroll-strategy');\n\n/** @docs-private */\nexport function kbqPopoverScrollStrategyFactory(overlay: Overlay): () => ScrollStrategy {\n return () => overlay.scrollStrategies.reposition({ scrollThrottle: 20 });\n}\n\n/** @docs-private */\nexport const KBQ_POPOVER_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n provide: KBQ_POPOVER_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: kbqPopoverScrollStrategyFactory\n};\n\n/** Creates an error to be thrown if the user supplied an invalid popover position. */\nexport function getKbqPopoverInvalidPositionError(position: string) {\n return Error(`KbqPopover position \"${position}\" is invalid.`);\n}\n\n@Directive({\n selector: '[kbqPopover]',\n host: {\n '[class.kbq-popover_open]': 'isOpen',\n '[class.kbq-active]': 'hasClickTrigger && isOpen',\n '(keydown)': 'keydownHandler($event)',\n '(touchend)': 'touchendHandler()'\n },\n exportAs: 'kbqPopover'\n})\nexport class KbqPopoverTrigger extends KbqPopUpTrigger<KbqPopoverComponent> implements AfterContentInit, OnInit {\n private overlayContainer = inject(OverlayContainer);\n private renderer = inject(Renderer2);\n\n protected scrollStrategy: () => ScrollStrategy = inject(KBQ_POPOVER_SCROLL_STRATEGY);\n\n /** Controls whether the component should be hidden when it is not visible in the viewport. */\n readonly hideIfNotInViewPort = input(true, { transform: booleanAttribute });\n\n /** prevents closure by any event */\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input({ alias: 'kbqPopoverPreventClose', transform: booleanAttribute }) override preventClose: boolean = false;\n\n /** disables default padding for all popover elements (header, content and footer) */\n // TODO: Skipped for migration because:\n // Class of this input is referenced in the signature of another class.\n @Input({ transform: booleanAttribute }) defaultPaddings = true;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input('kbqPopoverVisible')\n get popoverVisible(): boolean {\n return this.visible;\n }\n\n set popoverVisible(value: boolean) {\n super.updateVisible(value);\n }\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input('kbqPopoverPlacement')\n get popoverPlacement(): KbqPopUpPlacementValues {\n return this.placement;\n }\n\n set popoverPlacement(value: KbqPopUpPlacementValues) {\n super.updatePlacement(value);\n }\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input('kbqPopoverPlacementPriority')\n get popoverPlacementPriority() {\n return this.placementPriority;\n }\n\n set popoverPlacementPriority(value) {\n super.updatePlacementPriority(value);\n }\n\n /**\n * Additionally positions the element relative to the window side (Top, Right, Bottom and Left).\n * If container is specified, the positioning will be relative to it.\n * */\n // TODO: Skipped for migration because:\n // This input overrides a field from a superclass, while the superclass field\n // is not migrated.\n @Input('kbqPopoverStickToWindow') stickToWindow: KbqStickToWindowPlacementValues;\n\n /** Container for additional positioning, used with kbqPopoverStickToWindow */\n // TODO: Skipped for migration because:\n // This input overrides a field from a superclass, while the superclass field\n // is not migrated.\n @Input() container: HTMLElement;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get hasBackdrop(): boolean {\n return this._hasBackdrop;\n }\n\n set hasBackdrop(value: boolean) {\n this._hasBackdrop = coerceBooleanProperty(value);\n }\n\n private _hasBackdrop: boolean = false;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input('kbqPopoverHeader')\n get header(): string | TemplateRef<any> {\n return this._header;\n }\n\n set header(value: string | TemplateRef<any>) {\n this._header = value;\n\n this.updateData();\n }\n\n private _header: string | TemplateRef<any>;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input('kbqPopoverContent')\n get content(): string | TemplateRef<any> {\n return this._content;\n }\n\n set content(value: string | TemplateRef<any>) {\n this._content = value;\n\n this.updateData();\n }\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input('kbqPopoverFooter')\n get footer(): string | TemplateRef<any> {\n return this._footer;\n }\n\n set footer(value: string | TemplateRef<any>) {\n this._footer = value;\n\n this.updateData();\n }\n\n private _footer: string | TemplateRef<any>;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input('kbqPopoverDisabled')\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n\n if (this._disabled) {\n this.hide();\n }\n }\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input('kbqTrigger')\n get trigger(): string {\n return this._trigger;\n }\n\n set trigger(value: string) {\n if (value) {\n this._trigger = value;\n\n if (this.trigger.includes(PopUpTriggers.Hover)) {\n this.hideWithTimeout = true;\n this.leaveDelay = this.leaveDelay ?? 500;\n }\n } else {\n this._trigger = `${PopUpTriggers.Click}, ${PopUpTriggers.Keydown}`;\n }\n\n this.initListeners();\n }\n\n private _trigger: string = `${PopUpTriggers.Click}, ${PopUpTriggers.Keydown}`;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input('kbqPopoverSize')\n get size(): KbqPopUpSizeValues {\n return this._size;\n }\n\n set size(value: KbqPopUpSizeValues) {\n if ([PopUpSizes.Small, PopUpSizes.Medium, PopUpSizes.Large, PopUpSizes.Custom].includes(value as PopUpSizes)) {\n this._size = value;\n\n this.updateClassMap();\n } else {\n this._size = PopUpSizes.Medium;\n }\n }\n\n private _size: KbqPopUpSizeValues = PopUpSizes.Medium;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input('kbqPopoverClass')\n get customClass() {\n return this._customClass;\n }\n\n set customClass(value: string) {\n this._customClass = value;\n\n this.updateClassMap();\n }\n\n /** Context for popover templates (kbqPopoverHeader, kbqPopoverContent and kbqPopoverFooter). */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input('kbqPopoverContext')\n get context() {\n return this._context;\n }\n\n set context(ctx) {\n this._context = ctx;\n this.updateData();\n }\n\n private _context: unknown = null;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get hasCloseButton() {\n return this._hasCloseButton;\n }\n set hasCloseButton(value) {\n this._hasCloseButton = value;\n this.updateData();\n }\n private _hasCloseButton = false;\n\n /**\n * Controls the behavior of closing the component on scroll.\n * The default value is `false`.\n * Use CloseScrollStrategy as alternative\n */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get closeOnScroll(): boolean | null {\n return this._closeOnScroll;\n }\n\n set closeOnScroll(value: boolean) {\n this._closeOnScroll = coerceBooleanProperty(value);\n }\n\n private _closeOnScroll: boolean | null = null;\n\n get hasClickTrigger(): boolean {\n return this.trigger.includes(PopUpTriggers.Click);\n }\n\n /** @docs-private */\n get instanceDestroyRef(): DestroyRef {\n return this.instance.destroyRef;\n }\n\n // TODO: Skipped for migration because:\n // Class of this input is referenced in the signature of another class.\n @Input() backdropClass: string = 'cdk-overlay-transparent-backdrop';\n\n // @TODO add realization for arrow (#DS-2514)\n // TODO: Skipped for migration because:\n // This input overrides a field from a superclass, while the superclass field\n // is not migrated.\n @Input({ alias: 'kbqPopoverArrow', transform: booleanAttribute }) arrow: boolean = true;\n\n // TODO: Skipped for migration because:\n // Class of this input is referenced in the signature of another class.\n @Input({ alias: 'kbqPopoverOffset', transform: numberAttribute }) offset: number | null = defaultOffsetYWithArrow;\n\n /** Delay before closing in milliseconds. The default value for kbqTrigger=PopUpTriggers.Hover is 500 ms. */\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input({ alias: 'kbqLeaveDelay', transform: numberAttribute }) leaveDelay: number;\n\n @Output('kbqPopoverPlacementChange') readonly placementChange = new EventEmitter();\n\n @Output('kbqPopoverVisibleChange') readonly visibleChange = new EventEmitter<boolean>();\n\n protected originSelector = '.kbq-popover';\n\n protected get overlayConfig(): OverlayConfig {\n return {\n panelClass: 'kbq-popover__panel',\n hasBackdrop: this.hasBackdrop,\n backdropClass: this.backdropClass\n };\n }\n\n private classAddedToOverlayContainer: boolean = false;\n\n ngOnInit(): void {\n super.ngOnInit();\n\n this.scrollable\n ?.elementScrolled()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(this.hideIfScrolledOutOfView);\n }\n\n ngAfterContentInit(): void {\n if (this.closeOnScroll === null) {\n this.scrollDispatcher.scrolled().subscribe((scrollable: CdkScrollable | void) => {\n if (!scrollable?.getElementRef().nativeElement.classList.contains('kbq-hide-nested-popup')) return;\n\n const parentRects = scrollable.getElementRef().nativeElement.getBoundingClientRect();\n const childRects = this.elementRef.nativeElement.getBoundingClientRect();\n\n if (childRects.bottom < parentRects.top || childRects.top > parentRects.bottom) {\n this.hide();\n }\n });\n }\n }\n\n /**\n * Overrides the base `show` method to display the overlay component with the\n * specified entry delay and apply default positioning offsets.\n */\n override show(delay: number = this.enterDelay) {\n super.show(delay);\n\n this.addClassToOverlayContainer();\n }\n\n override hide(delay: number = this.leaveDelay) {\n super.hide(delay);\n\n this.removeClassFromOverlayContainer();\n }\n\n updateData() {\n if (!this.instance) return;\n\n this.instance.header = this.header;\n this.instance.content = this.content;\n this.instance.context = this.context && { $implicit: this.context };\n this.instance.arrow = this.arrow;\n this.instance.offset = this.offset;\n this.instance.footer = this.footer;\n this.instance.hasCloseButton = this.hasCloseButton;\n this.instance.defaultPaddings = this.defaultPaddings;\n\n this.instance.updateTrapFocus(this.trigger !== PopUpTriggers.Focus);\n\n if (this.isOpen) {\n this.updatePosition(true);\n }\n }\n\n /** Updates the position of the current popover. */\n updatePosition(reapplyPosition: boolean = false) {\n this.overlayRef = this.createOverlay();\n\n const position = (this.overlayRef.getConfig().positionStrategy as FlexibleConnectedPositionStrategy)\n .withPositions(this.getAdjustedPositions())\n .withPush(true);\n\n if (reapplyPosition) {\n setTimeout(() => position.reapplyLastPosition());\n }\n }\n\n getOverlayHandleComponentType(): Type<KbqPopoverComponent> {\n return KbqPopoverComponent;\n }\n\n updateClassMap(newPlacement: string = this.placement) {\n if (!this.instance) {\n return;\n }\n\n this.instance.updateClassMap(POSITION_TO_CSS_MAP[newPlacement], this.customClass, this.size);\n this.instance.markForCheck();\n }\n\n closingActionsForClick() {\n if (this.hasClickTrigger) {\n return this.defaultClosingActions();\n }\n\n return [];\n }\n\n defaultClosingActions() {\n return [\n this.overlayRef!.backdropClick(),\n this.hasBackdrop ? NEVER : this.overlayRef!.outsidePointerEvents()\n ];\n }\n\n closingActions() {\n return merge(...this.closingActionsForClick(), this.closeOnScroll ? this.scrollDispatcher.scrolled() : NEVER);\n }\n\n private hideIfScrolledOutOfView = () => {\n if (!this.scrollable || !this.hideIfNotInViewPort()) return;\n\n const rect = this.elementRef.nativeElement.getBoundingClientRect();\n const containerRect = this.scrollable.getElementRef().nativeElement.getBoundingClientRect();\n\n if (!(\n rect.bottom >= containerRect.top &&\n rect.right >= containerRect.left &&\n rect.top <= containerRect.bottom &&\n rect.left <= containerRect.right\n )) {\n this.hide();\n }\n };\n\n private addClassToOverlayContainer() {\n const overlayContainer = this.overlayContainer?.getContainerElement();\n\n if (overlayContainer.childNodes.length === 1) {\n this.classAddedToOverlayContainer = true;\n\n this.renderer.addClass(overlayContainer, 'cdk-overlay-container_dropdown');\n }\n }\n\n private removeClassFromOverlayContainer() {\n if (this.classAddedToOverlayContainer) {\n this.renderer.removeClass(this.overlayContainer.getContainerElement(), 'cdk-overlay-container_dropdown');\n }\n }\n}\n","<div\n #popover\n class=\"kbq-popover\"\n [class.kbq-popover_arrowless]=\"!arrow\"\n [cdkTrapFocus]=\"isTrapFocus\"\n [class]=\"classMap\"\n [@state]=\"visibility\"\n (@state.done)=\"animationDone($event)\"\n (@state.start)=\"animationStart()\"\n>\n <div\n class=\"kbq-popover__container\"\n [class.kbq-popover__container_with-footer]=\"footer\"\n [class.kbq-popover__container_with-header]=\"header\"\n >\n @if (header) {\n <div\n class=\"kbq-popover__header\"\n [class.kbq-popover__header_default-paddings]=\"defaultPaddings\"\n [class.kbq-popover__header_with-close-button]=\"hasCloseButton\"\n [kbqOverflowShadowTop]=\"overflowContainer()\"\n >\n @if (isTemplateRef(header)) {\n <ng-container [ngTemplateOutlet]=\"$any(header)\" [ngTemplateOutletContext]=\"context\" />\n } @else {\n <div class=\"kbq-popover__header-text\">{{ header }}</div>\n }\n </div>\n }\n\n @if (content) {\n <div\n #popoverContent=\"kbqOverflowShadowContainer\"\n kbqOverflowShadowContainer\n class=\"kbq-popover__content kbq-scrollbar\"\n [class.kbq-popover__content_default-paddings]=\"defaultPaddings\"\n [debounce]=\"15\"\n (cdkObserveContent)=\"popoverContent.checkOverflow()\"\n >\n @if (hasCloseButton && !header) {\n <div class=\"kbq-popover__close-container\">\n <ng-container [ngTemplateOutlet]=\"closeButton\" />\n </div>\n }\n @if (isTemplateRef(content)) {\n <ng-container [ngTemplateOutlet]=\"$any(content)\" [ngTemplateOutletContext]=\"context\" />\n } @else {\n <div>{{ content }}</div>\n }\n </div>\n }\n\n @if (footer) {\n <div\n class=\"kbq-popover__footer\"\n [class.kbq-popover__footer_default-paddings]=\"defaultPaddings\"\n [kbqOverflowShadowBottom]=\"overflowContainer()\"\n >\n @if (isTemplateRef(footer)) {\n <ng-container [ngTemplateOutlet]=\"$any(footer)\" [ngTemplateOutletContext]=\"context\" />\n } @else {\n <div>{{ footer }}</div>\n }\n </div>\n }\n </div>\n\n @if (hasCloseButton && header) {\n <div class=\"kbq-popover__close-container\">\n <ng-container [ngTemplateOutlet]=\"closeButton\" />\n </div>\n }\n\n <ng-template #closeButton>\n <div class=\"kbq-popover__close\" [class.kbq-popover__close_background-overlay-inverse]=\"!header\">\n <button kbq-button class=\"kbq-button_transparent\" [color]=\"componentColors.Contrast\" (click)=\"hide(0)\">\n <i kbq-icon=\"kbq-xmark_16\" [color]=\"componentColors.Contrast\"></i>\n </button>\n </div>\n </ng-template>\n\n @if (arrow) {\n <div class=\"kbq-popover__arrow\"></div>\n }\n</div>\n","import { CdkTrapFocus } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n InjectionToken,\n Input,\n ViewEncapsulation,\n inject,\n output\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport { Subject } from 'rxjs';\nimport { kbqPopoverAnimations } from './popover-animations';\nimport { KbqPopoverComponent, KbqPopoverTrigger } from './popover.component';\n\nexport const KBQ_POPOVER_CONFIRM_TEXT = new InjectionToken<string>('');\nexport const KBQ_POPOVER_CONFIRM_BUTTON_TEXT = new InjectionToken<string>('');\n\n@Component({\n selector: 'kbq-popover-confirm-component',\n imports: [\n CdkTrapFocus,\n KbqButtonModule\n ],\n templateUrl: './popover-confirm.component.html',\n styleUrls: ['./popover.scss', './popover-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n animations: [kbqPopoverAnimations.popoverState],\n preserveWhitespaces: false\n})\nexport class KbqPopoverConfirmComponent extends KbqPopoverComponent {\n onConfirm = new Subject<void>();\n confirmButtonText: string;\n\n confirmText: string;\n}\n\n@Directive({\n selector: '[kbqPopoverConfirm]',\n host: {\n '[class.kbq-popover_open]': 'isOpen',\n '(keydown)': 'keydownHandler($event)',\n '(touchend)': 'touchendHandler()'\n },\n exportAs: 'kbqPopoverConfirm'\n})\nexport class KbqPopoverConfirmTrigger extends KbqPopoverTrigger {\n readonly confirm = output<void>();\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input('kbqPopoverConfirmText')\n get confirmText(): string {\n return this._confirmText;\n }\n\n set confirmText(value: string) {\n this._confirmText = value;\n\n this.updateData();\n }\n\n private _confirmText: string;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input('kbqPopoverConfirmButtonText')\n get confirmButtonText(): string {\n return this._confirmButtonText;\n }\n\n set confirmButtonText(value: string) {\n this._confirmButtonText = value;\n\n this.updateData();\n }\n\n private _confirmButtonText: string = 'Да';\n\n constructor() {\n const confirmText = inject(KBQ_POPOVER_CONFIRM_TEXT, { optional: true });\n const confirmButtonText = inject(KBQ_POPOVER_CONFIRM_BUTTON_TEXT, { optional: true });\n\n super();\n\n this.confirmText = confirmText || 'Вы уверены, что хотите продолжить?';\n this.confirmButtonText = confirmButtonText || 'Да';\n }\n\n updateData() {\n if (!this.instance) {\n return;\n }\n\n super.updateData();\n this.setupButtonEvents();\n this.instance.confirmButtonText = this.confirmButtonText;\n this.instance.confirmText = this.confirmText;\n }\n\n setupButtonEvents() {\n this.instance.onConfirm.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n // TODO: The 'emit' function requires a mandatory void argument\n this.confirm.emit();\n this.hide();\n });\n }\n\n getOverlayHandleComponentType() {\n return KbqPopoverConfirmComponent;\n }\n}\n","<div\n cdkTrapFocus=\"true\"\n cdkTrapFocusAutoCapture=\"true\"\n class=\"kbq-popover-confirm kbq-popover\"\n [class]=\"classMap\"\n [@state]=\"visibility\"\n (@state.done)=\"animationDone($event)\"\n (@state.start)=\"animationStart()\"\n>\n <div class=\"kbq-popover__container\">\n <div class=\"kbq-popover__content\">\n <div>{{ confirmText }}</div>\n <button kbq-button [color]=\"'contrast'\" (click)=\"onConfirm.next()\">\n {{ confirmButtonText }}\n </button>\n </div>\n </div>\n\n <div class=\"kbq-popover__arrow\"></div>\n</div>\n","import {\n A11yModule,\n ConfigurableFocusTrapFactory,\n FOCUS_TRAP_INERT_STRATEGY,\n FocusTrapFactory\n} from '@angular/cdk/a11y';\nimport { CdkObserveContent } from '@angular/cdk/observers';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport { EmptyFocusTrapStrategy } from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqPopoverConfirmComponent, KbqPopoverConfirmTrigger } from './popover-confirm.component';\nimport {\n KBQ_POPOVER_SCROLL_STRATEGY_FACTORY_PROVIDER,\n KbqPopoverComponent,\n KbqPopoverTrigger\n} from './popover.component';\n\n@NgModule({\n imports: [\n OverlayModule,\n KbqButtonModule,\n A11yModule,\n KbqIconModule,\n CdkObserveContent,\n NgTemplateOutlet,\n KbqPopoverComponent,\n KbqPopoverTrigger,\n KbqPopoverConfirmComponent,\n KbqPopoverConfirmTrigger\n ],\n providers: [\n KBQ_POPOVER_SCROLL_STRATEGY_FACTORY_PROVIDER,\n { provide: FocusTrapFactory, useClass: ConfigurableFocusTrapFactory },\n { provide: FOCUS_TRAP_INERT_STRATEGY, useClass: EmptyFocusTrapStrategy }\n ],\n exports: [\n KbqPopoverComponent,\n KbqPopoverTrigger,\n KbqPopoverConfirmComponent,\n KbqPopoverConfirmTrigger\n ]\n})\nexport class KbqPopoverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"koobiq-components-popover.mjs","sources":["../../../packages/components/popover/popover-animations.ts","../../../packages/components/popover/popover.component.ts","../../../packages/components/popover/popover.component.html","../../../packages/components/popover/popover-confirm.component.ts","../../../packages/components/popover/popover-confirm.component.html","../../../packages/components/popover/popover.module.ts","../../../packages/components/popover/koobiq-components-popover.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\n\nexport const kbqPopoverAnimations: {\n readonly popoverState: AnimationTriggerMetadata;\n} = {\n /** Animation that transitions a tooltip in and out. */\n popoverState: trigger('state', [\n state(\n 'initial',\n style({\n opacity: 0,\n transform: 'scale(1, 0.8)'\n })\n ),\n transition(\n '* => visible',\n animate(\n '120ms cubic-bezier(0, 0, 0.2, 1)',\n style({\n opacity: 1,\n transform: 'scale(1, 1)'\n })\n )\n ),\n transition('* => hidden', animate('100ms linear', style({ opacity: 0 })))\n ])\n};\n","import { CdkTrapFocus } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CdkObserveContent } from '@angular/cdk/observers';\nimport {\n CdkScrollable,\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayConfig,\n OverlayContainer,\n ScrollStrategy\n} from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Directive,\n ElementRef,\n EventEmitter,\n InjectionToken,\n Input,\n OnInit,\n Output,\n Renderer2,\n TemplateRef,\n Type,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n input,\n numberAttribute,\n viewChild\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport {\n KbqComponentColors,\n KbqOverflowShadowBottom,\n KbqOverflowShadowContainer,\n KbqOverflowShadowTop,\n KbqPopUp,\n KbqPopUpPlacementValues,\n KbqPopUpSizeValues,\n KbqPopUpTrigger,\n KbqStickToWindowPlacementValues,\n POSITION_TO_CSS_MAP,\n PopUpSizes,\n PopUpTriggers,\n applyPopupMargins\n} from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { NEVER, merge } from 'rxjs';\nimport { kbqPopoverAnimations } from './popover-animations';\n\nexport const defaultOffsetYWithArrow = 8;\n\n@Component({\n selector: 'kbq-popover-component',\n imports: [\n NgTemplateOutlet,\n CdkObserveContent,\n KbqButtonModule,\n KbqIconModule,\n CdkTrapFocus,\n KbqOverflowShadowContainer,\n KbqOverflowShadowTop,\n KbqOverflowShadowBottom\n ],\n templateUrl: './popover.component.html',\n styleUrls: ['./popover.scss', './popover-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '(keydown.esc)': 'onEscape()'\n },\n animations: [kbqPopoverAnimations.popoverState],\n preserveWhitespaces: false\n})\nexport class KbqPopoverComponent extends KbqPopUp implements AfterViewInit {\n prefix = 'kbq-popover';\n\n header: string | TemplateRef<any>;\n footer: string | TemplateRef<any>;\n\n trigger: KbqPopoverTrigger;\n\n isTrapFocus: boolean = false;\n hasCloseButton: boolean = false;\n\n @ViewChild('popover') elementRef: ElementRef;\n readonly cdkTrapFocus = viewChild.required(CdkTrapFocus);\n /** @docs-private */\n readonly overflowContainer = viewChild(KbqOverflowShadowContainer);\n\n ngAfterViewInit() {\n this.visibleChange.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((state) => {\n if (this.offset !== null && state && this.elementRef) {\n applyPopupMargins(\n this.renderer,\n this.elementRef.nativeElement,\n this.prefix,\n `${this.offset!.toString()}px`\n );\n\n this.setStickPosition();\n }\n });\n\n this.cdkTrapFocus().focusTrap.focusFirstTabbableElement();\n }\n\n updateClassMap(placement: string, customClass: string, size: KbqPopUpSizeValues) {\n super.updateClassMap(placement, customClass, { [`${this.prefix}_${size}`]: !!size });\n }\n\n updateTrapFocus(isTrapFocus: boolean): void {\n this.isTrapFocus = isTrapFocus;\n }\n\n onEscape() {\n this.hide(0);\n\n this.trigger.focus();\n }\n\n protected readonly componentColors = KbqComponentColors;\n}\n\nexport const KBQ_POPOVER_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>('kbq-popover-scroll-strategy');\n\n/** @docs-private */\nexport function kbqPopoverScrollStrategyFactory(overlay: Overlay): () => ScrollStrategy {\n return () => overlay.scrollStrategies.reposition({ scrollThrottle: 20 });\n}\n\n/** @docs-private */\nexport const KBQ_POPOVER_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n provide: KBQ_POPOVER_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: kbqPopoverScrollStrategyFactory\n};\n\n/** Creates an error to be thrown if the user supplied an invalid popover position. */\nexport function getKbqPopoverInvalidPositionError(position: string) {\n return Error(`KbqPopover position \"${position}\" is invalid.`);\n}\n\n@Directive({\n selector: '[kbqPopover]',\n host: {\n '[class.kbq-popover_open]': 'isOpen',\n '[class.kbq-active]': 'hasClickTrigger && isOpen',\n '(keydown)': 'keydownHandler($event)',\n '(touchend)': 'touchendHandler()'\n },\n exportAs: 'kbqPopover'\n})\nexport class KbqPopoverTrigger extends KbqPopUpTrigger<KbqPopoverComponent> implements AfterContentInit, OnInit {\n private overlayContainer = inject(OverlayContainer);\n private renderer = inject(Renderer2);\n\n protected scrollStrategy: () => ScrollStrategy = inject(KBQ_POPOVER_SCROLL_STRATEGY);\n\n /** Controls whether the component should be hidden when it is not visible in the viewport. */\n readonly hideIfNotInViewPort = input(true, { transform: booleanAttribute });\n\n /** prevents closure by any event */\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input({ alias: 'kbqPopoverPreventClose', transform: booleanAttribute }) override preventClose: boolean = false;\n\n /** disables default padding for all popover elements (header, content and footer) */\n // TODO: Skipped for migration because:\n // Class of this input is referenced in the signature of another class.\n @Input({ transform: booleanAttribute }) defaultPaddings = true;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input('kbqPopoverVisible')\n get popoverVisible(): boolean {\n return this.visible;\n }\n\n set popoverVisible(value: boolean) {\n super.updateVisible(value);\n }\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input('kbqPopoverPlacement')\n get popoverPlacement(): KbqPopUpPlacementValues {\n return this.placement;\n }\n\n set popoverPlacement(value: KbqPopUpPlacementValues) {\n super.updatePlacement(value);\n }\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input('kbqPopoverPlacementPriority')\n get popoverPlacementPriority() {\n return this.placementPriority;\n }\n\n set popoverPlacementPriority(value) {\n super.updatePlacementPriority(value);\n }\n\n /**\n * Additionally positions the element relative to the window side (Top, Right, Bottom and Left).\n * If container is specified, the positioning will be relative to it.\n * */\n // TODO: Skipped for migration because:\n // This input overrides a field from a superclass, while the superclass field\n // is not migrated.\n @Input('kbqPopoverStickToWindow') stickToWindow: KbqStickToWindowPlacementValues;\n\n /** Container for additional positioning, used with kbqPopoverStickToWindow */\n // TODO: Skipped for migration because:\n // This input overrides a field from a superclass, while the superclass field\n // is not migrated.\n @Input() container: HTMLElement;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get hasBackdrop(): boolean {\n return this._hasBackdrop;\n }\n\n set hasBackdrop(value: boolean) {\n this._hasBackdrop = coerceBooleanProperty(value);\n }\n\n private _hasBackdrop: boolean = false;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input('kbqPopoverHeader')\n get header(): string | TemplateRef<any> {\n return this._header;\n }\n\n set header(value: string | TemplateRef<any>) {\n this._header = value;\n\n this.updateData();\n }\n\n private _header: string | TemplateRef<any>;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input('kbqPopoverContent')\n get content(): string | TemplateRef<any> {\n return this._content;\n }\n\n set content(value: string | TemplateRef<any>) {\n this._content = value;\n\n this.updateData();\n }\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input('kbqPopoverFooter')\n get footer(): string | TemplateRef<any> {\n return this._footer;\n }\n\n set footer(value: string | TemplateRef<any>) {\n this._footer = value;\n\n this.updateData();\n }\n\n private _footer: string | TemplateRef<any>;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input('kbqPopoverDisabled')\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n\n if (this._disabled) {\n this.hide();\n }\n }\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input('kbqTrigger')\n get trigger(): string {\n return this._trigger;\n }\n\n set trigger(value: string) {\n if (value) {\n this._trigger = value;\n\n if (this.trigger.includes(PopUpTriggers.Hover)) {\n this.hideWithTimeout = true;\n this.leaveDelay = this.leaveDelay ?? 500;\n }\n } else {\n this._trigger = `${PopUpTriggers.Click}, ${PopUpTriggers.Keydown}`;\n }\n\n this.initListeners();\n }\n\n private _trigger: string = `${PopUpTriggers.Click}, ${PopUpTriggers.Keydown}`;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input('kbqPopoverSize')\n get size(): KbqPopUpSizeValues {\n return this._size;\n }\n\n set size(value: KbqPopUpSizeValues) {\n if ([PopUpSizes.Small, PopUpSizes.Medium, PopUpSizes.Large, PopUpSizes.Custom].includes(value as PopUpSizes)) {\n this._size = value;\n\n this.updateClassMap();\n } else {\n this._size = PopUpSizes.Medium;\n }\n }\n\n private _size: KbqPopUpSizeValues = PopUpSizes.Medium;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input('kbqPopoverClass')\n get customClass() {\n return this._customClass;\n }\n\n set customClass(value: string) {\n this._customClass = value;\n\n this.updateClassMap();\n }\n\n /** Context for popover templates (kbqPopoverHeader, kbqPopoverContent and kbqPopoverFooter). */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input('kbqPopoverContext')\n get context() {\n return this._context;\n }\n\n set context(ctx) {\n this._context = ctx;\n this.updateData();\n }\n\n private _context: unknown = null;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get hasCloseButton() {\n return this._hasCloseButton;\n }\n set hasCloseButton(value) {\n this._hasCloseButton = value;\n this.updateData();\n }\n private _hasCloseButton = false;\n\n /**\n * Controls the behavior of closing the component on scroll.\n * The default value is `false`.\n * Use CloseScrollStrategy as alternative\n */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get closeOnScroll(): boolean | null {\n return this._closeOnScroll;\n }\n\n set closeOnScroll(value: boolean) {\n this._closeOnScroll = coerceBooleanProperty(value);\n }\n\n private _closeOnScroll: boolean | null = null;\n\n get hasClickTrigger(): boolean {\n return this.trigger.includes(PopUpTriggers.Click);\n }\n\n /** @docs-private */\n get instanceDestroyRef(): DestroyRef {\n return this.instance.destroyRef;\n }\n\n // TODO: Skipped for migration because:\n // Class of this input is referenced in the signature of another class.\n @Input() backdropClass: string = 'cdk-overlay-transparent-backdrop';\n\n // @TODO add realization for arrow (#DS-2514)\n // TODO: Skipped for migration because:\n // This input overrides a field from a superclass, while the superclass field\n // is not migrated.\n @Input({ alias: 'kbqPopoverArrow', transform: booleanAttribute }) arrow: boolean = true;\n\n // TODO: Skipped for migration because:\n // Class of this input is referenced in the signature of another class.\n @Input({ alias: 'kbqPopoverOffset', transform: numberAttribute }) offset: number | null = defaultOffsetYWithArrow;\n\n /** Delay before closing in milliseconds. The default value for kbqTrigger=PopUpTriggers.Hover is 500 ms. */\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input({ alias: 'kbqLeaveDelay', transform: numberAttribute }) leaveDelay: number;\n\n @Output('kbqPopoverPlacementChange') readonly placementChange = new EventEmitter();\n\n @Output('kbqPopoverVisibleChange') readonly visibleChange = new EventEmitter<boolean>();\n\n protected originSelector = '.kbq-popover';\n\n // NB: the trigger↔popover gap is a CSS `margin` on `.kbq-popover` (see `applyPopupMargins`), which sits inside\n // this `pointer-events: auto` pane, so the gap band is already covered and not click/hover-through. This is why\n // the connected-overlay `offsetY`→in-pane-padding fix (KBQ_CONNECTED_OVERLAY_* / --kbq-connected-overlay-gap,\n // used by select/tree-select/autocomplete/datepicker) intentionally does NOT apply here — do not \"port\" it.\n // Guarded by the \"trigger↔panel gap is not click-through\" e2e tests in e2e.playwright-spec.ts.\n protected get overlayConfig(): OverlayConfig {\n return {\n panelClass: 'kbq-popover__panel',\n hasBackdrop: this.hasBackdrop,\n backdropClass: this.backdropClass\n };\n }\n\n private classAddedToOverlayContainer: boolean = false;\n\n ngOnInit(): void {\n super.ngOnInit();\n\n this.scrollable\n ?.elementScrolled()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(this.hideIfScrolledOutOfView);\n }\n\n ngAfterContentInit(): void {\n if (this.closeOnScroll === null) {\n this.scrollDispatcher.scrolled().subscribe((scrollable: CdkScrollable | void) => {\n if (!scrollable?.getElementRef().nativeElement.classList.contains('kbq-hide-nested-popup')) return;\n\n const parentRects = scrollable.getElementRef().nativeElement.getBoundingClientRect();\n const childRects = this.elementRef.nativeElement.getBoundingClientRect();\n\n if (childRects.bottom < parentRects.top || childRects.top > parentRects.bottom) {\n this.hide();\n }\n });\n }\n }\n\n /**\n * Overrides the base `show` method to display the overlay component with the\n * specified entry delay and apply default positioning offsets.\n */\n override show(delay: number = this.enterDelay) {\n super.show(delay);\n\n this.addClassToOverlayContainer();\n }\n\n override hide(delay: number = this.leaveDelay) {\n super.hide(delay);\n\n this.removeClassFromOverlayContainer();\n }\n\n updateData() {\n if (!this.instance) return;\n\n this.instance.header = this.header;\n this.instance.content = this.content;\n this.instance.context = this.context && { $implicit: this.context };\n this.instance.arrow = this.arrow;\n this.instance.offset = this.offset;\n this.instance.footer = this.footer;\n this.instance.hasCloseButton = this.hasCloseButton;\n this.instance.defaultPaddings = this.defaultPaddings;\n\n this.instance.updateTrapFocus(this.trigger !== PopUpTriggers.Focus);\n\n if (this.isOpen) {\n this.updatePosition(true);\n }\n }\n\n /** Updates the position of the current popover. */\n updatePosition(reapplyPosition: boolean = false) {\n this.overlayRef = this.createOverlay();\n\n const position = (this.overlayRef.getConfig().positionStrategy as FlexibleConnectedPositionStrategy)\n .withPositions(this.getAdjustedPositions())\n .withPush(true);\n\n if (reapplyPosition) {\n setTimeout(() => position.reapplyLastPosition());\n }\n }\n\n getOverlayHandleComponentType(): Type<KbqPopoverComponent> {\n return KbqPopoverComponent;\n }\n\n updateClassMap(newPlacement: string = this.placement) {\n if (!this.instance) {\n return;\n }\n\n this.instance.updateClassMap(POSITION_TO_CSS_MAP[newPlacement], this.customClass, this.size);\n this.instance.markForCheck();\n }\n\n closingActionsForClick() {\n if (this.hasClickTrigger) {\n return this.defaultClosingActions();\n }\n\n return [];\n }\n\n defaultClosingActions() {\n return [\n this.overlayRef!.backdropClick(),\n this.hasBackdrop ? NEVER : this.overlayRef!.outsidePointerEvents()\n ];\n }\n\n closingActions() {\n return merge(...this.closingActionsForClick(), this.closeOnScroll ? this.scrollDispatcher.scrolled() : NEVER);\n }\n\n private hideIfScrolledOutOfView = () => {\n if (!this.scrollable || !this.hideIfNotInViewPort()) return;\n\n const rect = this.elementRef.nativeElement.getBoundingClientRect();\n const containerRect = this.scrollable.getElementRef().nativeElement.getBoundingClientRect();\n\n if (!(\n rect.bottom >= containerRect.top &&\n rect.right >= containerRect.left &&\n rect.top <= containerRect.bottom &&\n rect.left <= containerRect.right\n )) {\n this.hide();\n }\n };\n\n private addClassToOverlayContainer() {\n const overlayContainer = this.overlayContainer?.getContainerElement();\n\n if (overlayContainer.childNodes.length === 1) {\n this.classAddedToOverlayContainer = true;\n\n this.renderer.addClass(overlayContainer, 'cdk-overlay-container_dropdown');\n }\n }\n\n private removeClassFromOverlayContainer() {\n if (this.classAddedToOverlayContainer) {\n this.renderer.removeClass(this.overlayContainer.getContainerElement(), 'cdk-overlay-container_dropdown');\n }\n }\n}\n","<div\n #popover\n class=\"kbq-popover\"\n [class.kbq-popover_arrowless]=\"!arrow\"\n [cdkTrapFocus]=\"isTrapFocus\"\n [class]=\"classMap\"\n [@state]=\"visibility\"\n (@state.done)=\"animationDone($event)\"\n (@state.start)=\"animationStart()\"\n>\n <div\n class=\"kbq-popover__container\"\n [class.kbq-popover__container_with-footer]=\"footer\"\n [class.kbq-popover__container_with-header]=\"header\"\n >\n @if (header) {\n <div\n class=\"kbq-popover__header\"\n [class.kbq-popover__header_default-paddings]=\"defaultPaddings\"\n [class.kbq-popover__header_with-close-button]=\"hasCloseButton\"\n [kbqOverflowShadowTop]=\"overflowContainer()\"\n >\n @if (isTemplateRef(header)) {\n <ng-container [ngTemplateOutlet]=\"$any(header)\" [ngTemplateOutletContext]=\"context\" />\n } @else {\n <div class=\"kbq-popover__header-text\">{{ header }}</div>\n }\n </div>\n }\n\n @if (content) {\n <div\n #popoverContent=\"kbqOverflowShadowContainer\"\n kbqOverflowShadowContainer\n class=\"kbq-popover__content kbq-scrollbar\"\n [class.kbq-popover__content_default-paddings]=\"defaultPaddings\"\n [debounce]=\"15\"\n (cdkObserveContent)=\"popoverContent.checkOverflow()\"\n >\n @if (hasCloseButton && !header) {\n <div class=\"kbq-popover__close-container\">\n <ng-container [ngTemplateOutlet]=\"closeButton\" />\n </div>\n }\n @if (isTemplateRef(content)) {\n <ng-container [ngTemplateOutlet]=\"$any(content)\" [ngTemplateOutletContext]=\"context\" />\n } @else {\n <div>{{ content }}</div>\n }\n </div>\n }\n\n @if (footer) {\n <div\n class=\"kbq-popover__footer\"\n [class.kbq-popover__footer_default-paddings]=\"defaultPaddings\"\n [kbqOverflowShadowBottom]=\"overflowContainer()\"\n >\n @if (isTemplateRef(footer)) {\n <ng-container [ngTemplateOutlet]=\"$any(footer)\" [ngTemplateOutletContext]=\"context\" />\n } @else {\n <div>{{ footer }}</div>\n }\n </div>\n }\n </div>\n\n @if (hasCloseButton && header) {\n <div class=\"kbq-popover__close-container\">\n <ng-container [ngTemplateOutlet]=\"closeButton\" />\n </div>\n }\n\n <ng-template #closeButton>\n <div class=\"kbq-popover__close\" [class.kbq-popover__close_background-overlay-inverse]=\"!header\">\n <button kbq-button class=\"kbq-button_transparent\" [color]=\"componentColors.Contrast\" (click)=\"hide(0)\">\n <i kbq-icon=\"kbq-xmark_16\" [color]=\"componentColors.Contrast\"></i>\n </button>\n </div>\n </ng-template>\n\n @if (arrow) {\n <div class=\"kbq-popover__arrow\"></div>\n }\n</div>\n","import { CdkTrapFocus } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n InjectionToken,\n Input,\n ViewEncapsulation,\n inject,\n output\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport { Subject } from 'rxjs';\nimport { kbqPopoverAnimations } from './popover-animations';\nimport { KbqPopoverComponent, KbqPopoverTrigger } from './popover.component';\n\nexport const KBQ_POPOVER_CONFIRM_TEXT = new InjectionToken<string>('');\nexport const KBQ_POPOVER_CONFIRM_BUTTON_TEXT = new InjectionToken<string>('');\n\n@Component({\n selector: 'kbq-popover-confirm-component',\n imports: [\n CdkTrapFocus,\n KbqButtonModule\n ],\n templateUrl: './popover-confirm.component.html',\n styleUrls: ['./popover.scss', './popover-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n animations: [kbqPopoverAnimations.popoverState],\n preserveWhitespaces: false\n})\nexport class KbqPopoverConfirmComponent extends KbqPopoverComponent {\n onConfirm = new Subject<void>();\n confirmButtonText: string;\n\n confirmText: string;\n}\n\n@Directive({\n selector: '[kbqPopoverConfirm]',\n host: {\n '[class.kbq-popover_open]': 'isOpen',\n '(keydown)': 'keydownHandler($event)',\n '(touchend)': 'touchendHandler()'\n },\n exportAs: 'kbqPopoverConfirm'\n})\nexport class KbqPopoverConfirmTrigger extends KbqPopoverTrigger {\n readonly confirm = output<void>();\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input('kbqPopoverConfirmText')\n get confirmText(): string {\n return this._confirmText;\n }\n\n set confirmText(value: string) {\n this._confirmText = value;\n\n this.updateData();\n }\n\n private _confirmText: string;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input('kbqPopoverConfirmButtonText')\n get confirmButtonText(): string {\n return this._confirmButtonText;\n }\n\n set confirmButtonText(value: string) {\n this._confirmButtonText = value;\n\n this.updateData();\n }\n\n private _confirmButtonText: string = 'Да';\n\n constructor() {\n const confirmText = inject(KBQ_POPOVER_CONFIRM_TEXT, { optional: true });\n const confirmButtonText = inject(KBQ_POPOVER_CONFIRM_BUTTON_TEXT, { optional: true });\n\n super();\n\n this.confirmText = confirmText || 'Вы уверены, что хотите продолжить?';\n this.confirmButtonText = confirmButtonText || 'Да';\n }\n\n updateData() {\n if (!this.instance) {\n return;\n }\n\n super.updateData();\n this.setupButtonEvents();\n this.instance.confirmButtonText = this.confirmButtonText;\n this.instance.confirmText = this.confirmText;\n }\n\n setupButtonEvents() {\n this.instance.onConfirm.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n // TODO: The 'emit' function requires a mandatory void argument\n this.confirm.emit();\n this.hide();\n });\n }\n\n getOverlayHandleComponentType() {\n return KbqPopoverConfirmComponent;\n }\n}\n","<div\n cdkTrapFocus=\"true\"\n cdkTrapFocusAutoCapture=\"true\"\n class=\"kbq-popover-confirm kbq-popover\"\n [class]=\"classMap\"\n [@state]=\"visibility\"\n (@state.done)=\"animationDone($event)\"\n (@state.start)=\"animationStart()\"\n>\n <div class=\"kbq-popover__container\">\n <div class=\"kbq-popover__content\">\n <div>{{ confirmText }}</div>\n <button kbq-button [color]=\"'contrast'\" (click)=\"onConfirm.next()\">\n {{ confirmButtonText }}\n </button>\n </div>\n </div>\n\n <div class=\"kbq-popover__arrow\"></div>\n</div>\n","import {\n A11yModule,\n ConfigurableFocusTrapFactory,\n FOCUS_TRAP_INERT_STRATEGY,\n FocusTrapFactory\n} from '@angular/cdk/a11y';\nimport { CdkObserveContent } from '@angular/cdk/observers';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport { EmptyFocusTrapStrategy } from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqPopoverConfirmComponent, KbqPopoverConfirmTrigger } from './popover-confirm.component';\nimport {\n KBQ_POPOVER_SCROLL_STRATEGY_FACTORY_PROVIDER,\n KbqPopoverComponent,\n KbqPopoverTrigger\n} from './popover.component';\n\n@NgModule({\n imports: [\n OverlayModule,\n KbqButtonModule,\n A11yModule,\n KbqIconModule,\n CdkObserveContent,\n NgTemplateOutlet,\n KbqPopoverComponent,\n KbqPopoverTrigger,\n KbqPopoverConfirmComponent,\n KbqPopoverConfirmTrigger\n ],\n providers: [\n KBQ_POPOVER_SCROLL_STRATEGY_FACTORY_PROVIDER,\n { provide: FocusTrapFactory, useClass: ConfigurableFocusTrapFactory },\n { provide: FOCUS_TRAP_INERT_STRATEGY, useClass: EmptyFocusTrapStrategy }\n ],\n exports: [\n KbqPopoverComponent,\n KbqPopoverTrigger,\n KbqPopoverConfirmComponent,\n KbqPopoverConfirmTrigger\n ]\n})\nexport class KbqPopoverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -86,6 +86,9 @@ class KbqSearchExpandable {
|
|
|
86
86
|
this.tooltip = viewChild(KbqTooltipTrigger, ...(ngDevMode ? [{ debugName: "tooltip" }] : []));
|
|
87
87
|
/** Current value in input. */
|
|
88
88
|
this.value = new BehaviorSubject(defaultValue);
|
|
89
|
+
this.lastFocusOrigin = null;
|
|
90
|
+
/** Suppress the automatic input focus once — set when the component auto-opens from a model value. */
|
|
91
|
+
this.suppressInputFocus = false;
|
|
89
92
|
/** state of component. */
|
|
90
93
|
// TODO: Skipped for migration because:
|
|
91
94
|
// Your application code writes to the input. This prevents migration.
|
|
@@ -141,7 +144,20 @@ class KbqSearchExpandable {
|
|
|
141
144
|
});
|
|
142
145
|
this.input.changes
|
|
143
146
|
.pipe(filter((queryList) => queryList.length), map((queryList) => queryList.first), takeUntilDestroyed(this.destroyRef))
|
|
144
|
-
.subscribe((input) =>
|
|
147
|
+
.subscribe((input) => {
|
|
148
|
+
if (this.suppressInputFocus) {
|
|
149
|
+
this.suppressInputFocus = false;
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
input.focus();
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
// When the component starts opened (e.g. a seeded formControl value), the input is present on
|
|
156
|
+
// first render and `input.changes` never fires to consume the flag — clear it so later
|
|
157
|
+
// user-initiated opens focus the input as usual.
|
|
158
|
+
if (this.input.length) {
|
|
159
|
+
this.suppressInputFocus = false;
|
|
160
|
+
}
|
|
145
161
|
}
|
|
146
162
|
ngOnDestroy() {
|
|
147
163
|
this.stopFocusMonitor();
|
|
@@ -157,6 +173,13 @@ class KbqSearchExpandable {
|
|
|
157
173
|
/** Implemented as part of ControlValueAccessor. */
|
|
158
174
|
writeValue(value) {
|
|
159
175
|
this.value.next(value || defaultValue);
|
|
176
|
+
// Expand automatically when the model already holds a value, without stealing focus —
|
|
177
|
+
// unless focus is already inside the component (e.g. on the collapsed toggle button
|
|
178
|
+
// that's about to be removed from the DOM), in which case let it move to the input.
|
|
179
|
+
if (value && !this.isOpened && !this.disabled) {
|
|
180
|
+
this.suppressInputFocus = this.lastFocusOrigin === null;
|
|
181
|
+
this.setOpened(true);
|
|
182
|
+
}
|
|
160
183
|
}
|
|
161
184
|
/** Implemented as part of ControlValueAccessor. */
|
|
162
185
|
setDisabledState(isDisabled) {
|
|
@@ -165,15 +188,27 @@ class KbqSearchExpandable {
|
|
|
165
188
|
toggle() {
|
|
166
189
|
if (this.disabled)
|
|
167
190
|
return;
|
|
168
|
-
this.
|
|
169
|
-
|
|
191
|
+
this.tooltip()?.hide();
|
|
192
|
+
this.setOpened(!this.isOpened);
|
|
193
|
+
}
|
|
194
|
+
setOpened(open) {
|
|
195
|
+
if (this.disabled || this.isOpened === open)
|
|
196
|
+
return;
|
|
197
|
+
this.isOpened = open;
|
|
198
|
+
if (!open) {
|
|
199
|
+
// Never let a stale suppress-flag survive a close.
|
|
200
|
+
this.suppressInputFocus = false;
|
|
170
201
|
this.value.next(defaultValue);
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
202
|
+
// Force the emit — closing must always synchronize the bound control to the reset
|
|
203
|
+
// value, rather than relying on the debounce to eventually settle (it can be raced
|
|
204
|
+
// by a value pushed just before close, silently leaving the control at a stale value).
|
|
205
|
+
this.emitValue(defaultValue, true);
|
|
174
206
|
}
|
|
175
|
-
this.tooltip()?.hide();
|
|
176
207
|
this.isOpenedChange.emit(this.isOpened);
|
|
208
|
+
// Ensure the OnPush view re-renders for callers that mutate isOpened from outside this
|
|
209
|
+
// component's own template (e.g. a parent-owned button), whose click marks the parent —
|
|
210
|
+
// not this component — dirty.
|
|
211
|
+
this.changeDetectorRef.markForCheck();
|
|
177
212
|
}
|
|
178
213
|
initDefaultParams() {
|
|
179
214
|
this.configuration = KBQ_SEARCH_EXPANDABLE_DEFAULT_CONFIGURATION;
|
|
@@ -185,7 +220,7 @@ class KbqSearchExpandable {
|
|
|
185
220
|
this.focusMonitor.stopMonitoring(this.nativeElement);
|
|
186
221
|
}
|
|
187
222
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSearchExpandable, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
188
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: KbqSearchExpandable, isStandalone: true, selector: "kbq-search-expandable", inputs: { isOpened: { classPropertyName: "isOpened", publicName: "isOpened", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, isEmitValueByEnterEnabled: { classPropertyName: "isEmitValueByEnterEnabled", publicName: "isEmitValueByEnterEnabled", isSignal: true, isRequired: false, transformFunction: null }, emitValueTimeout: { classPropertyName: "emitValueTimeout", publicName: "emitValueTimeout", isSignal: true, isRequired: false, transformFunction: null }, tooltipText: { classPropertyName: "tooltipText", publicName: "tooltipText", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: false, isRequired: false, transformFunction: numberAttribute } }, outputs: { isOpenedChange: "isOpenedChange" }, host: { properties: { "class.kbq-search-expandable_opened": "isOpened" }, classAttribute: "kbq-search-expandable" }, viewQueries: [{ propertyName: "tooltip", first: true, predicate: KbqTooltipTrigger, descendants: true, isSignal: true }, { propertyName: "input", predicate: KbqInput, descendants: true }, { propertyName: "button", predicate: KbqButton, descendants: true }], ngImport: i0, template: "@if (!isOpened) {\n <button\n type=\"button\"\n kbq-button\n class=\"kbq-search-expandable__button\"\n [kbqTooltip]=\"tooltipText\"\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [kbqTooltipDisabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n [disabled]=\"disabled\"\n (click)=\"toggle()\"\n >\n <i kbq-icon=\"kbq-magnifying-glass_16\"></i>\n </button>\n} @else {\n <kbq-form-field class=\"kbq-search-expandable__search\">\n <i kbqPrefix kbq-icon=\"kbq-magnifying-glass_16\"></i>\n\n <input\n kbqInput\n name=\"value\"\n type=\"text\"\n autocomplete=\"off\"\n [tabIndex]=\"tabIndex\"\n [placeholder]=\"placeholder\"\n [formControl]=\"$any(ngControl?.control)\"\n (blur)=\"onTouch()\"\n (keyup.escape)=\"toggle()\"\n />\n\n <i\n kbqSuffix\n kbq-icon-button=\"kbq-circle-xmark_16\"\n [disabled]=\"disabled\"\n (click)=\"toggle()\"\n (keyup.enter)=\"toggle()\"\n ></i>\n </kbq-form-field>\n}\n", styles: [".kbq-search-expandable{display:flex;flex-flow:row nowrap;align-items:center;justify-content:flex-start;min-width:0;min-height:0}.kbq-search-expandable__search .kbq-icon-button.kbq-suffix{display:flex;align-items:center;justify-content:center;border-radius:var(--kbq-size-xxs);height:var(--kbq-size-xxl)}\n"], dependencies: [{ kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i2.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "component", type: i2.KbqIconButton, selector: "[kbq-icon-button]", inputs: ["small", "kbq-icon-button", "tabindex", "disabled"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i3.KbqInput, selector: "input[kbqInput],input[kbqNumberInput]", inputs: ["errorStateMatcher", "placeholder", "disabled", "id", "required", "type", "value"], exportAs: ["kbqInput"] }, { kind: "component", type: i4.KbqFormField, selector: "kbq-form-field", inputs: ["noBorders", "inOverlay", "horizontal", "labelClass", "contentClass"], outputs: ["inOverlayChange"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i4.KbqPrefix, selector: "[kbqPrefix]", exportAs: ["kbqPrefix"] }, { kind: "directive", type: i4.KbqSuffix, selector: "[kbqSuffix]" }, { kind: "directive", type: i4.KbqTrim, selector: "[kbqInput], [kbqTextarea]", exportAs: ["KbqTrim"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: KbqToolTipModule }, { kind: "directive", type: i6.KbqTooltipTrigger, selector: "[kbqTooltip]", inputs: ["forDisabledComponent", "ignoreTooltipPointerEvents", "hideWithTimeout", "kbqVisible", "kbqPlacement", "kbqRelativeToPointer", "kbqPlacementPriority", "kbqTooltip", "kbqTooltipDisabled", "kbqEnterDelay", "kbqLeaveDelay", "kbqTrigger", "kbqTooltipClass", "kbqTooltipContext", "kbqTooltipColor", "kbqTooltipArrow", "kbqTooltipOffset", "kbqTooltipModifier", "kbqTooltipHeader"], outputs: ["kbqPlacementChange", "kbqVisibleChange"], exportAs: ["kbqTooltip"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
223
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: KbqSearchExpandable, isStandalone: true, selector: "kbq-search-expandable", inputs: { isOpened: { classPropertyName: "isOpened", publicName: "isOpened", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, isEmitValueByEnterEnabled: { classPropertyName: "isEmitValueByEnterEnabled", publicName: "isEmitValueByEnterEnabled", isSignal: true, isRequired: false, transformFunction: null }, emitValueTimeout: { classPropertyName: "emitValueTimeout", publicName: "emitValueTimeout", isSignal: true, isRequired: false, transformFunction: null }, tooltipText: { classPropertyName: "tooltipText", publicName: "tooltipText", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: false, isRequired: false, transformFunction: numberAttribute } }, outputs: { isOpenedChange: "isOpenedChange" }, host: { properties: { "class.kbq-search-expandable_opened": "isOpened" }, classAttribute: "kbq-search-expandable" }, viewQueries: [{ propertyName: "tooltip", first: true, predicate: KbqTooltipTrigger, descendants: true, isSignal: true }, { propertyName: "input", predicate: KbqInput, descendants: true }, { propertyName: "button", predicate: KbqButton, descendants: true }], ngImport: i0, template: "@if (!isOpened) {\n <button\n type=\"button\"\n kbq-button\n class=\"kbq-search-expandable__button\"\n [kbqTooltip]=\"tooltipText\"\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [kbqTooltipDisabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n [disabled]=\"disabled\"\n (click)=\"toggle()\"\n >\n <i kbq-icon=\"kbq-magnifying-glass_16\"></i>\n </button>\n} @else {\n <kbq-form-field class=\"kbq-search-expandable__search\">\n <i kbqPrefix kbq-icon=\"kbq-magnifying-glass_16\"></i>\n\n <input\n kbqInput\n name=\"value\"\n type=\"text\"\n autocomplete=\"off\"\n [tabIndex]=\"tabIndex\"\n [placeholder]=\"placeholder\"\n [formControl]=\"$any(ngControl?.control)\"\n (blur)=\"onTouch()\"\n (keyup.escape)=\"toggle()\"\n />\n\n <i\n kbqSuffix\n kbq-icon-button=\"kbq-circle-xmark_16\"\n [disabled]=\"disabled\"\n (click)=\"toggle()\"\n (keyup.enter)=\"toggle()\"\n ></i>\n </kbq-form-field>\n}\n", styles: [".kbq-search-expandable{display:flex;flex-flow:row nowrap;align-items:center;justify-content:flex-start;min-width:0;min-height:0}.kbq-search-expandable__search .kbq-icon-button.kbq-suffix{display:flex;align-items:center;justify-content:center;border-radius:var(--kbq-size-xxs);height:var(--kbq-size-xxl)}\n"], dependencies: [{ kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i2.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "component", type: i2.KbqIconButton, selector: "[kbq-icon-button]", inputs: ["size", "small", "kbq-icon-button", "tabindex", "disabled"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i3.KbqInput, selector: "input[kbqInput],input[kbqNumberInput]", inputs: ["errorStateMatcher", "placeholder", "disabled", "id", "required", "type", "value"], exportAs: ["kbqInput"] }, { kind: "component", type: i4.KbqFormField, selector: "kbq-form-field", inputs: ["noBorders", "inOverlay", "horizontal", "labelClass", "contentClass"], outputs: ["inOverlayChange"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i4.KbqPrefix, selector: "[kbqPrefix]", exportAs: ["kbqPrefix"] }, { kind: "directive", type: i4.KbqSuffix, selector: "[kbqSuffix]" }, { kind: "directive", type: i4.KbqTrim, selector: "[kbqInput], [kbqTextarea]", exportAs: ["KbqTrim"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: KbqToolTipModule }, { kind: "directive", type: i6.KbqTooltipTrigger, selector: "[kbqTooltip]", inputs: ["forDisabledComponent", "ignoreTooltipPointerEvents", "kbqTooltipSingleInstance", "hideWithTimeout", "kbqVisible", "kbqPlacement", "kbqRelativeToPointer", "kbqPlacementPriority", "kbqTooltip", "kbqTooltipDisabled", "kbqEnterDelay", "kbqLeaveDelay", "kbqTrigger", "kbqTooltipClass", "kbqTooltipContext", "kbqTooltipColor", "kbqTooltipArrow", "kbqTooltipOffset", "kbqTooltipModifier", "kbqTooltipHeader"], outputs: ["kbqPlacementChange", "kbqVisibleChange"], exportAs: ["kbqTooltip"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
189
224
|
}
|
|
190
225
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSearchExpandable, decorators: [{
|
|
191
226
|
type: Component,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"koobiq-components-search-expandable.mjs","sources":["../../../packages/components/search-expandable/search-expandable.ts","../../../packages/components/search-expandable/search-expandable.html","../../../packages/components/search-expandable/search-expandable.module.ts","../../../packages/components/search-expandable/koobiq-components-search-expandable.ts"],"sourcesContent":["import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n inject,\n InjectionToken,\n Input,\n input,\n numberAttribute,\n OnDestroy,\n output,\n QueryList,\n viewChild,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { KbqButton, KbqButtonModule } from '@koobiq/components/button';\nimport { KBQ_LOCALE_SERVICE, ruRULocaleData } from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqInput, KbqInputModule } from '@koobiq/components/input';\nimport { KbqToolTipModule, KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { BehaviorSubject, debounceTime, distinctUntilChanged, filter } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n/** default configuration of search-expandable */\nexport const KBQ_SEARCH_EXPANDABLE_DEFAULT_CONFIGURATION = ruRULocaleData.searchExpandable;\n\n/** Injection Token for providing configuration of search-expandable */\nexport const KBQ_SEARCH_EXPANDABLE_CONFIGURATION = new InjectionToken('KbqSearchExpandableConfiguration');\n\nexport const defaultValue = '';\nexport const defaultEmitValueTimeout = 200;\n\n@Component({\n selector: 'kbq-search-expandable',\n imports: [\n KbqButtonModule,\n KbqIconModule,\n KbqInputModule,\n FormsModule,\n KbqToolTipModule,\n ReactiveFormsModule\n ],\n templateUrl: './search-expandable.html',\n styleUrls: ['./search-expandable.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-search-expandable',\n '[class.kbq-search-expandable_opened]': 'isOpened'\n }\n})\nexport class KbqSearchExpandable implements ControlValueAccessor, AfterViewInit, OnDestroy {\n /** @docs-private */\n protected readonly ngControl = inject(NgControl, { optional: true, self: true });\n /** @docs-private */\n protected readonly focusMonitor = inject(FocusMonitor);\n /** @docs-private */\n protected readonly localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });\n /** @docs-private */\n protected readonly destroyRef = inject(DestroyRef);\n /** @docs-private */\n protected readonly changeDetectorRef = inject(ChangeDetectorRef);\n /** @docs-private */\n protected readonly nativeElement: HTMLElement = inject(ElementRef).nativeElement;\n\n readonly externalConfiguration = inject(KBQ_SEARCH_EXPANDABLE_CONFIGURATION, { optional: true });\n\n @ViewChildren(KbqInput) private input: QueryList<KbqInput>;\n @ViewChildren(KbqButton) private button: QueryList<KbqButton>;\n private readonly tooltip = viewChild(KbqTooltipTrigger);\n\n configuration;\n\n /** Current value in input. */\n value = new BehaviorSubject(defaultValue);\n\n protected lastFocusOrigin: 'touch' | 'mouse' | 'keyboard' | 'program' | null;\n\n /** state of component. */\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input({ transform: booleanAttribute }) isOpened = false;\n /** Emit event by enter or not. Default is false */\n readonly isEmitValueByEnterEnabled = input(false);\n /** Timeout in milliseconds for emit event. The default value is taken from defaultEmitValueTimeout */\n readonly emitValueTimeout = input(defaultEmitValueTimeout, { transform: numberAttribute });\n\n /** Tooltip text for the search button. When set, overrides localeData.tooltip */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get tooltipText(): string {\n return this._tooltipText ?? this.localeData?.tooltip;\n }\n\n set tooltipText(value: string | null) {\n this._tooltipText = value;\n }\n\n private _tooltipText: string | null;\n\n /** Placeholder for input when expanded */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get placeholder(): string {\n return this._placeholder ?? this.localeData?.placeholder;\n }\n\n set placeholder(value: string | null) {\n this._placeholder = value;\n }\n\n private _placeholder: string | null = this.localeData?.placeholder;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = value;\n\n if (this._disabled) {\n this.stopFocusMonitor();\n } else {\n this.runFocusMonitor();\n }\n }\n\n private _disabled: boolean = false;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input({ transform: numberAttribute })\n get tabIndex(): number {\n return this.disabled ? -1 : this._tabIndex;\n }\n\n set tabIndex(value: number) {\n this._tabIndex = value;\n }\n\n private _tabIndex = 0;\n\n /** Event emitted when the search has been toggled. */\n readonly isOpenedChange = output<boolean>();\n\n /** localized data\n * @docs-private */\n get localeData() {\n return this.configuration;\n }\n\n private lastEmittedValue = defaultValue;\n\n constructor() {\n if (!this.ngControl) {\n throw Error(`kbq-search-expandable must be used with the [formControl], [formControlName] or [(ngModel)].`);\n }\n\n this.ngControl.valueAccessor = this;\n\n this.ngControl.valueChanges?.pipe(takeUntilDestroyed()).subscribe((value) => this.value.next(value));\n\n this.localeService?.changes.pipe(takeUntilDestroyed()).subscribe(this.updateLocaleParams);\n\n if (!this.localeService) {\n this.initDefaultParams();\n }\n\n this.value\n .pipe(\n distinctUntilChanged(),\n filter(() => !this.isEmitValueByEnterEnabled()),\n debounceTime(this.emitValueTimeout()),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe(this.emitValue);\n }\n\n ngAfterViewInit(): void {\n this.runFocusMonitor();\n\n this.button.changes\n .pipe(\n filter((queryList) => queryList.length),\n map((queryList) => queryList.first),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe((button: KbqButton) => {\n const tooltip = this.tooltip();\n\n if (tooltip) {\n tooltip.disabled = true;\n }\n\n this.focusMonitor.focusVia(button.elementRef.nativeElement, this.lastFocusOrigin);\n\n if (tooltip) {\n tooltip.disabled = false;\n }\n });\n\n this.input.changes\n .pipe(\n filter((queryList) => queryList.length),\n map((queryList) => queryList.first),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe((input: KbqInput) => input.focus());\n }\n\n ngOnDestroy() {\n this.stopFocusMonitor();\n }\n\n /** @docs-private */\n onChange: (value: string) => void;\n\n /** @docs-private */\n onTouch: () => void = () => {};\n\n /** Implemented as part of ControlValueAccessor. */\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n /** Implemented as part of ControlValueAccessor. */\n registerOnTouched(fn: () => void): void {\n this.onTouch = fn;\n }\n\n /** Implemented as part of ControlValueAccessor. */\n writeValue(value: string): void {\n this.value.next(value || defaultValue);\n }\n\n /** Implemented as part of ControlValueAccessor. */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n toggle(): void {\n if (this.disabled) return;\n\n this.isOpened = !this.isOpened;\n\n if (!this.isOpened) {\n this.value.next(defaultValue);\n\n if (this.isEmitValueByEnterEnabled()) {\n this.emitValue(defaultValue, true);\n }\n }\n\n this.tooltip()?.hide();\n\n this.isOpenedChange.emit(this.isOpened);\n }\n\n private updateLocaleParams = () => {\n this.configuration = this.externalConfiguration || this.localeService?.getParams('searchExpandable');\n\n this.changeDetectorRef.markForCheck();\n };\n\n private initDefaultParams() {\n this.configuration = KBQ_SEARCH_EXPANDABLE_DEFAULT_CONFIGURATION;\n }\n\n private emitValue = (value: string, forced = false): void => {\n if (value !== this.lastEmittedValue || forced) {\n this.onChange(value);\n this.lastEmittedValue = value;\n }\n };\n\n private runFocusMonitor() {\n this.focusMonitor.monitor(this.nativeElement, true).subscribe((origin) => (this.lastFocusOrigin = origin));\n }\n\n private stopFocusMonitor() {\n this.focusMonitor.stopMonitoring(this.nativeElement);\n }\n}\n","@if (!isOpened) {\n <button\n type=\"button\"\n kbq-button\n class=\"kbq-search-expandable__button\"\n [kbqTooltip]=\"tooltipText\"\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [kbqTooltipDisabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n [disabled]=\"disabled\"\n (click)=\"toggle()\"\n >\n <i kbq-icon=\"kbq-magnifying-glass_16\"></i>\n </button>\n} @else {\n <kbq-form-field class=\"kbq-search-expandable__search\">\n <i kbqPrefix kbq-icon=\"kbq-magnifying-glass_16\"></i>\n\n <input\n kbqInput\n name=\"value\"\n type=\"text\"\n autocomplete=\"off\"\n [tabIndex]=\"tabIndex\"\n [placeholder]=\"placeholder\"\n [formControl]=\"$any(ngControl?.control)\"\n (blur)=\"onTouch()\"\n (keyup.escape)=\"toggle()\"\n />\n\n <i\n kbqSuffix\n kbq-icon-button=\"kbq-circle-xmark_16\"\n [disabled]=\"disabled\"\n (click)=\"toggle()\"\n (keyup.enter)=\"toggle()\"\n ></i>\n </kbq-form-field>\n}\n","import { NgModule } from '@angular/core';\nimport { KbqSearchExpandable } from './search-expandable';\n\n@NgModule({\n imports: [\n KbqSearchExpandable\n ],\n exports: [KbqSearchExpandable]\n})\nexport class KbqSearchExpandableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"koobiq-components-search-expandable.mjs","sources":["../../../packages/components/search-expandable/search-expandable.ts","../../../packages/components/search-expandable/search-expandable.html","../../../packages/components/search-expandable/search-expandable.module.ts","../../../packages/components/search-expandable/koobiq-components-search-expandable.ts"],"sourcesContent":["import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n inject,\n InjectionToken,\n Input,\n input,\n numberAttribute,\n OnDestroy,\n output,\n QueryList,\n viewChild,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { KbqButton, KbqButtonModule } from '@koobiq/components/button';\nimport { KBQ_LOCALE_SERVICE, ruRULocaleData } from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqInput, KbqInputModule } from '@koobiq/components/input';\nimport { KbqToolTipModule, KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { BehaviorSubject, debounceTime, distinctUntilChanged, filter } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n/** default configuration of search-expandable */\nexport const KBQ_SEARCH_EXPANDABLE_DEFAULT_CONFIGURATION = ruRULocaleData.searchExpandable;\n\n/** Injection Token for providing configuration of search-expandable */\nexport const KBQ_SEARCH_EXPANDABLE_CONFIGURATION = new InjectionToken('KbqSearchExpandableConfiguration');\n\nexport const defaultValue = '';\nexport const defaultEmitValueTimeout = 200;\n\n@Component({\n selector: 'kbq-search-expandable',\n imports: [\n KbqButtonModule,\n KbqIconModule,\n KbqInputModule,\n FormsModule,\n KbqToolTipModule,\n ReactiveFormsModule\n ],\n templateUrl: './search-expandable.html',\n styleUrls: ['./search-expandable.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-search-expandable',\n '[class.kbq-search-expandable_opened]': 'isOpened'\n }\n})\nexport class KbqSearchExpandable implements ControlValueAccessor, AfterViewInit, OnDestroy {\n /** @docs-private */\n protected readonly ngControl = inject(NgControl, { optional: true, self: true });\n /** @docs-private */\n protected readonly focusMonitor = inject(FocusMonitor);\n /** @docs-private */\n protected readonly localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });\n /** @docs-private */\n protected readonly destroyRef = inject(DestroyRef);\n /** @docs-private */\n protected readonly changeDetectorRef = inject(ChangeDetectorRef);\n /** @docs-private */\n protected readonly nativeElement: HTMLElement = inject(ElementRef).nativeElement;\n\n readonly externalConfiguration = inject(KBQ_SEARCH_EXPANDABLE_CONFIGURATION, { optional: true });\n\n @ViewChildren(KbqInput) private input: QueryList<KbqInput>;\n @ViewChildren(KbqButton) private button: QueryList<KbqButton>;\n private readonly tooltip = viewChild(KbqTooltipTrigger);\n\n configuration;\n\n /** Current value in input. */\n value = new BehaviorSubject(defaultValue);\n\n protected lastFocusOrigin: 'touch' | 'mouse' | 'keyboard' | 'program' | null = null;\n\n /** Suppress the automatic input focus once — set when the component auto-opens from a model value. */\n private suppressInputFocus = false;\n\n /** state of component. */\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input({ transform: booleanAttribute }) isOpened = false;\n /** Emit event by enter or not. Default is false */\n readonly isEmitValueByEnterEnabled = input(false);\n /** Timeout in milliseconds for emit event. The default value is taken from defaultEmitValueTimeout */\n readonly emitValueTimeout = input(defaultEmitValueTimeout, { transform: numberAttribute });\n\n /** Tooltip text for the search button. When set, overrides localeData.tooltip */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get tooltipText(): string {\n return this._tooltipText ?? this.localeData?.tooltip;\n }\n\n set tooltipText(value: string | null) {\n this._tooltipText = value;\n }\n\n private _tooltipText: string | null;\n\n /** Placeholder for input when expanded */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get placeholder(): string {\n return this._placeholder ?? this.localeData?.placeholder;\n }\n\n set placeholder(value: string | null) {\n this._placeholder = value;\n }\n\n private _placeholder: string | null = this.localeData?.placeholder;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = value;\n\n if (this._disabled) {\n this.stopFocusMonitor();\n } else {\n this.runFocusMonitor();\n }\n }\n\n private _disabled: boolean = false;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input({ transform: numberAttribute })\n get tabIndex(): number {\n return this.disabled ? -1 : this._tabIndex;\n }\n\n set tabIndex(value: number) {\n this._tabIndex = value;\n }\n\n private _tabIndex = 0;\n\n /** Event emitted when the search has been toggled. */\n readonly isOpenedChange = output<boolean>();\n\n /** localized data\n * @docs-private */\n get localeData() {\n return this.configuration;\n }\n\n private lastEmittedValue = defaultValue;\n\n constructor() {\n if (!this.ngControl) {\n throw Error(`kbq-search-expandable must be used with the [formControl], [formControlName] or [(ngModel)].`);\n }\n\n this.ngControl.valueAccessor = this;\n\n this.ngControl.valueChanges?.pipe(takeUntilDestroyed()).subscribe((value) => this.value.next(value));\n\n this.localeService?.changes.pipe(takeUntilDestroyed()).subscribe(this.updateLocaleParams);\n\n if (!this.localeService) {\n this.initDefaultParams();\n }\n\n this.value\n .pipe(\n distinctUntilChanged(),\n filter(() => !this.isEmitValueByEnterEnabled()),\n debounceTime(this.emitValueTimeout()),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe(this.emitValue);\n }\n\n ngAfterViewInit(): void {\n this.runFocusMonitor();\n\n this.button.changes\n .pipe(\n filter((queryList) => queryList.length),\n map((queryList) => queryList.first),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe((button: KbqButton) => {\n const tooltip = this.tooltip();\n\n if (tooltip) {\n tooltip.disabled = true;\n }\n\n this.focusMonitor.focusVia(button.elementRef.nativeElement, this.lastFocusOrigin);\n\n if (tooltip) {\n tooltip.disabled = false;\n }\n });\n\n this.input.changes\n .pipe(\n filter((queryList) => queryList.length),\n map((queryList) => queryList.first),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe((input: KbqInput) => {\n if (this.suppressInputFocus) {\n this.suppressInputFocus = false;\n } else {\n input.focus();\n }\n });\n\n // When the component starts opened (e.g. a seeded formControl value), the input is present on\n // first render and `input.changes` never fires to consume the flag — clear it so later\n // user-initiated opens focus the input as usual.\n if (this.input.length) {\n this.suppressInputFocus = false;\n }\n }\n\n ngOnDestroy() {\n this.stopFocusMonitor();\n }\n\n /** @docs-private */\n onChange: (value: string) => void;\n\n /** @docs-private */\n onTouch: () => void = () => {};\n\n /** Implemented as part of ControlValueAccessor. */\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n /** Implemented as part of ControlValueAccessor. */\n registerOnTouched(fn: () => void): void {\n this.onTouch = fn;\n }\n\n /** Implemented as part of ControlValueAccessor. */\n writeValue(value: string): void {\n this.value.next(value || defaultValue);\n\n // Expand automatically when the model already holds a value, without stealing focus —\n // unless focus is already inside the component (e.g. on the collapsed toggle button\n // that's about to be removed from the DOM), in which case let it move to the input.\n if (value && !this.isOpened && !this.disabled) {\n this.suppressInputFocus = this.lastFocusOrigin === null;\n this.setOpened(true);\n }\n }\n\n /** Implemented as part of ControlValueAccessor. */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n toggle(): void {\n if (this.disabled) return;\n\n this.tooltip()?.hide();\n\n this.setOpened(!this.isOpened);\n }\n\n private setOpened(open: boolean): void {\n if (this.disabled || this.isOpened === open) return;\n\n this.isOpened = open;\n\n if (!open) {\n // Never let a stale suppress-flag survive a close.\n this.suppressInputFocus = false;\n this.value.next(defaultValue);\n // Force the emit — closing must always synchronize the bound control to the reset\n // value, rather than relying on the debounce to eventually settle (it can be raced\n // by a value pushed just before close, silently leaving the control at a stale value).\n this.emitValue(defaultValue, true);\n }\n\n this.isOpenedChange.emit(this.isOpened);\n\n // Ensure the OnPush view re-renders for callers that mutate isOpened from outside this\n // component's own template (e.g. a parent-owned button), whose click marks the parent —\n // not this component — dirty.\n this.changeDetectorRef.markForCheck();\n }\n\n private updateLocaleParams = () => {\n this.configuration = this.externalConfiguration || this.localeService?.getParams('searchExpandable');\n\n this.changeDetectorRef.markForCheck();\n };\n\n private initDefaultParams() {\n this.configuration = KBQ_SEARCH_EXPANDABLE_DEFAULT_CONFIGURATION;\n }\n\n private emitValue = (value: string, forced = false): void => {\n if (value !== this.lastEmittedValue || forced) {\n this.onChange(value);\n this.lastEmittedValue = value;\n }\n };\n\n private runFocusMonitor() {\n this.focusMonitor.monitor(this.nativeElement, true).subscribe((origin) => (this.lastFocusOrigin = origin));\n }\n\n private stopFocusMonitor() {\n this.focusMonitor.stopMonitoring(this.nativeElement);\n }\n}\n","@if (!isOpened) {\n <button\n type=\"button\"\n kbq-button\n class=\"kbq-search-expandable__button\"\n [kbqTooltip]=\"tooltipText\"\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [kbqTooltipDisabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n [disabled]=\"disabled\"\n (click)=\"toggle()\"\n >\n <i kbq-icon=\"kbq-magnifying-glass_16\"></i>\n </button>\n} @else {\n <kbq-form-field class=\"kbq-search-expandable__search\">\n <i kbqPrefix kbq-icon=\"kbq-magnifying-glass_16\"></i>\n\n <input\n kbqInput\n name=\"value\"\n type=\"text\"\n autocomplete=\"off\"\n [tabIndex]=\"tabIndex\"\n [placeholder]=\"placeholder\"\n [formControl]=\"$any(ngControl?.control)\"\n (blur)=\"onTouch()\"\n (keyup.escape)=\"toggle()\"\n />\n\n <i\n kbqSuffix\n kbq-icon-button=\"kbq-circle-xmark_16\"\n [disabled]=\"disabled\"\n (click)=\"toggle()\"\n (keyup.enter)=\"toggle()\"\n ></i>\n </kbq-form-field>\n}\n","import { NgModule } from '@angular/core';\nimport { KbqSearchExpandable } from './search-expandable';\n\n@NgModule({\n imports: [\n KbqSearchExpandable\n ],\n exports: [KbqSearchExpandable]\n})\nexport class KbqSearchExpandableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|