@cuby-ui/core 0.0.212 → 0.0.213

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.
@@ -1 +1 @@
1
- {"version":3,"file":"cuby-ui-core.mjs","sources":["../../../projects/core/components/accordion/accordion.component.ts","../../../projects/core/components/accordion/accordion.template.html","../../../projects/core/components/accordion/accordion.directive.ts","../../../projects/core/components/button/button.options.ts","../../../projects/core/components/svg/svg.component.ts","../../../projects/core/components/svg/svg.template.html","../../../projects/core/components/button/button.component.ts","../../../projects/core/components/button/button.template.html","../../../projects/core/components/accordion/accordion-item/accordion-item.component.ts","../../../projects/core/components/accordion/accordion-item/accordion-item.template.html","../../../projects/core/components/svg/svg.module.ts","../../../projects/core/components/button/button.module.ts","../../../projects/core/components/accordion/accordion.module.ts","../../../projects/core/components/notification/notification.options.ts","../../../projects/core/components/notification/notification.component.ts","../../../projects/core/components/notification/notification.template.html","../../../projects/core/components/notification/notification.module.ts","../../../projects/core/components/alert/alert.tokens.ts","../../../projects/core/components/alert/alert.component.ts","../../../projects/core/components/alert/alert.template.html","../../../projects/core/components/alert/alerts.component.ts","../../../projects/core/components/alert/alerts.template.html","../../../projects/core/components/alert/alert.module.ts","../../../projects/core/components/alert/alert.service.ts","../../../projects/core/components/badge/badge.options.ts","../../../projects/core/components/badge/badge.component.ts","../../../projects/core/components/badge/badge.template.html","../../../projects/core/components/badge/badge.module.ts","../../../projects/core/components/banner/banner.options.ts","../../../projects/core/classes/accessors.ts","../../../projects/core/classes/vehicle.ts","../../../projects/core/classes/driver.ts","../../../projects/core/services/position.service.ts","../../../projects/core/services/theme.options.ts","../../../projects/core/services/theme.service.ts","../../../projects/core/services/visual-viewport.service.ts","../../../projects/core/components/banner/banner.component.ts","../../../projects/core/components/banner/banner.template.html","../../../projects/core/components/banner/banner.module.ts","../../../projects/core/components/breadcrumbs/breadcrumbs.component.ts","../../../projects/core/components/breadcrumbs/breadcrumbs.template.html","../../../projects/core/components/breadcrumbs/breadcrumb/breadcrumb.component.ts","../../../projects/core/components/breadcrumbs/breadcrumb/breadcrumb.template.html","../../../projects/core/components/breadcrumbs/breadcrumbs.module.ts","../../../projects/core/components/button-group/button-group.component.ts","../../../projects/core/components/button-group/button-group.template.html","../../../projects/core/components/button-group/button-group.module.ts","../../../projects/core/components/checkbox/checkbox.component.ts","../../../projects/core/components/checkbox/checkbox.module.ts","../../../projects/core/components/root/root.options.ts","../../../projects/core/components/dialog/dialog.tokens.ts","../../../projects/core/components/dialog/dialogs.component.ts","../../../projects/core/components/dialog/dialogs.template.html","../../../projects/core/animations/animations.ts","../../../projects/core/directives/tooltip/tooltip.service.ts","../../../projects/core/directives/tooltip/tooltips.component.ts","../../../projects/core/directives/tooltip/tooltips.template.html","../../../projects/core/components/root/root.component.ts","../../../projects/core/components/root/root.template.html","../../../projects/core/components/dialog/dialog.component.ts","../../../projects/core/components/dialog/dialog.template.html","../../../projects/core/components/dialog/dialog-actions/dialog-actions.component.ts","../../../projects/core/components/dialog/dialog-actions/dialog-actions.template.html","../../../projects/core/components/dialog/dialog-header/dialog-header.component.ts","../../../projects/core/components/dialog/dialog-header/dialog-header.template.html","../../../projects/core/components/dialog/dialog.module.ts","../../../projects/core/components/dialog/dialog.service.ts","../../../projects/core/tokens/reduced-motion.ts","../../../projects/core/tokens/animations-speed.ts","../../../projects/core/tokens/viewport.ts","../../../projects/core/utils/format/remove-spaces.ts","../../../projects/core/utils/format/replace.ts","../../../projects/core/utils/miscellaneous/is-obscured.ts","../../../projects/core/utils/miscellaneous/override-options.ts","../../../projects/core/utils/miscellaneous/to-animation-options.ts","../../../projects/core/directives/tooltip/tooltip.providers.ts","../../../projects/core/directives/tooltip/tooltip-driver.directive.ts","../../../projects/core/directives/tooltip/tooltip-options.directive.ts","../../../projects/core/directives/tooltip/tooltip-hover.directive.ts","../../../projects/core/directives/tooltip/tooltip-position.directive.ts","../../../projects/core/directives/tooltip/tooltip.directive.ts","../../../projects/core/directives/tooltip/tooltip-pointer.directive.ts","../../../projects/core/directives/tooltip/tooltip-unstyled.component.ts","../../../projects/core/directives/tooltip/tooltip.component.ts","../../../projects/core/directives/tooltip/tooltip-describe.directive.ts","../../../projects/core/directives/tooltip/tooltip-host.directive.ts","../../../projects/core/directives/tooltip/tooltip-manual.directive.ts","../../../projects/core/directives/tooltip/tooltip-overflow.directive.ts","../../../projects/core/directives/tooltip/tooltip.ts","../../../projects/core/components/root/root.module.ts","../../../projects/core/components/context-menu/context-menu.component.ts","../../../projects/core/components/context-menu/context-menu.component.html","../../../projects/core/components/context-menu/context-menu.module.ts","../../../projects/core/components/dropdown/dropdown.directive.ts","../../../projects/core/components/dropdown/dropdown-wrapper.component.ts","../../../projects/core/components/dropdown/dropdown-wrapper.component.html","../../../projects/core/components/form-field/form-field.component.ts","../../../projects/core/components/form-field/form-field.template.html","../../../projects/core/components/form-field/form-field.module.ts","../../../projects/core/components/hint/hint.component.ts","../../../projects/core/components/hint/hint.template.html","../../../projects/core/components/hint/hint.module.ts","../../../projects/core/components/icon-button/icon-button.component.ts","../../../projects/core/components/icon-button/icon-button.template.html","../../../projects/core/components/icon-button/icon-button.module.ts","../../../projects/core/directives/text-field-controller/text-field.controller.ts","../../../projects/core/directives/text-field-controller/text-field-icon-left.directive.ts","../../../projects/core/directives/text-field-controller/text-field-id.directive.ts","../../../projects/core/directives/text-field-controller/text-field-is-error.directive.ts","../../../projects/core/directives/text-field-controller/text-field-placeholder.directive.ts","../../../projects/core/directives/text-field-controller/text-field-size.directive.ts","../../../projects/core/directives/text-field-controller/text-field-controller.module.ts","../../../projects/core/directives/text-field-controller/text-field-controller.provider.ts","../../../projects/core/components/input-number/input-number.component.ts","../../../projects/core/components/input-number/input-number.template.html","../../../projects/core/components/input-number/input-number.module.ts","../../../projects/core/components/input-password/input-password.component.ts","../../../projects/core/components/input-password/input-password.template.html","../../../projects/core/components/input-password/input-password.module.ts","../../../projects/core/components/input-text/input-text.component.ts","../../../projects/core/components/input-text/input-text.template.html","../../../projects/core/components/input-text/input-text.module.ts","../../../projects/core/components/input-time/input-time.options.ts","../../../projects/core/components/input-time/input-time.component.ts","../../../projects/core/components/input-time/input-time.template.html","../../../projects/core/components/input-time/input-time.module.ts","../../../projects/core/components/label/label.component.ts","../../../projects/core/components/label/label.template.html","../../../projects/core/components/label/label.module.ts","../../../projects/core/components/letter-box/letter-box.component.ts","../../../projects/core/components/letter-box/letter-box.component.html","../../../projects/core/components/radio/radio.component.ts","../../../projects/core/components/radio/radio.module.ts","../../../projects/core/components/select/select.component.ts","../../../projects/core/components/select/select.template.html","../../../projects/core/components/select/select.module.ts","../../../projects/core/components/tabs/tab/tab.component.ts","../../../projects/core/components/tabs/tab/tab.template.html","../../../projects/core/components/tabs/tabs.component.ts","../../../projects/core/components/tabs/tabs.template.html","../../../projects/core/components/tabs/tabs.module.ts","../../../projects/core/components/textarea/textarea.component.ts","../../../projects/core/components/textarea/textarea.module.ts","../../../projects/core/components/toggle/toggle.component.ts","../../../projects/core/components/toggle/toggle.module.ts","../../../projects/core/components/render-dynamic-components/render-dynamic-components.service.ts","../../../projects/core/components/render-dynamic-components/render-dynamic-components.component.ts","../../../projects/core/components/render-dynamic-components/render-dynamic-components.component.html","../../../projects/core/interceptors/x-ndjson.interceptor.ts","../../../projects/core/cuby-ui-core.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'cui-accordion',\r\n templateUrl: './accordion.template.html',\r\n styleUrls: ['./accordion.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiAccordionComponent {\r\n}\r\n","<ng-content select=\"cui-accordion-item\"></ng-content>\r\n","import { Directive, effect, inject, input, model, Renderer2 } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[cuiAccordion]',\r\n standalone: true,\r\n host: {\r\n '(click)': 'onToggle($event)'\r\n }\r\n})\r\nexport class CuiAccordionDirective {\r\n private readonly renderer = inject(Renderer2);\r\n\r\n private wrapper!: HTMLElement;\r\n\r\n public readonly content = input.required<HTMLElement>();\r\n public readonly isOpen = model(true);\r\n\r\n constructor() {\r\n this.initWrapperEffect();\r\n this.initOpenChangesEffect();\r\n }\r\n\r\n protected onToggle(event: Event): void {\r\n if (event.defaultPrevented) {\r\n return;\r\n }\r\n\r\n this.isOpen.update((prev) => !prev);\r\n }\r\n\r\n private initWrapperEffect(): void {\r\n const effectRef = effect(() => {\r\n const content = this.content();\r\n\r\n this.wrapper = this.renderer.createElement('div');\r\n\r\n content.after(this.wrapper);\r\n this.renderer.appendChild(this.wrapper, content);\r\n\r\n effectRef.destroy();\r\n });\r\n }\r\n\r\n private initOpenChangesEffect(): void {\r\n effect(() => {\r\n const isOpen = this.isOpen();\r\n const doAction = isOpen ? this.close : this.open;\r\n\r\n doAction.call(this, this.wrapper);\r\n });\r\n }\r\n\r\n private open(wrapper: HTMLElement): void {\r\n this.renderer.setStyle(wrapper, 'visibility', 'hidden');\r\n this.renderer.setStyle(wrapper, 'height', '0');\r\n this.renderer.setStyle(wrapper, 'overflow', 'hidden')\r\n }\r\n\r\n private close(wrapper: HTMLElement): void {\r\n this.renderer.setStyle(wrapper, 'visibility', 'visible');\r\n this.renderer.setStyle(wrapper, 'height', '');\r\n this.renderer.setStyle(wrapper, 'overflow', '');\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nimport type {\r\n CuiAppearanceAction,\r\n CuiAppearanceDestructive,\r\n CuiAppearanceFlat,\r\n CuiAppearanceGhost,\r\n CuiAppearanceLink,\r\n CuiAppearanceOutlined,\r\n CuiAppearanceOutlinedGray,\r\n CuiAppearanceSecondary,\r\n CuiShapeRounded,\r\n CuiSizeMd,\r\n CuiSizeSm,\r\n CuiSizeXs,\r\n CuiSizeXxs\r\n} from '../../types';\r\n\r\nexport interface CuiButtonOptions {\r\n readonly appearance:\r\n | CuiAppearanceAction\r\n | CuiAppearanceSecondary\r\n | CuiAppearanceOutlined\r\n | CuiAppearanceOutlinedGray\r\n | CuiAppearanceGhost\r\n | CuiAppearanceFlat\r\n | CuiAppearanceDestructive\r\n | CuiAppearanceLink\r\n readonly shape: CuiShapeRounded | null;\r\n readonly size:\r\n | CuiSizeXxs\r\n | CuiSizeXs\r\n | CuiSizeSm\r\n | CuiSizeMd;\r\n}\r\n\r\nexport const CUI_BUTTON_DEFAULT_OPTIONS: CuiButtonOptions = {\r\n appearance: 'action',\r\n shape: null,\r\n size: 'sm'\r\n};\r\n\r\nexport const CUI_BUTTON_OPTIONS = new InjectionToken('', {\r\n factory: () => CUI_BUTTON_DEFAULT_OPTIONS\r\n});\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n HostBinding,\r\n inject,\r\n Input\r\n} from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\nimport type { CuiIcon } from '@cuby-ui/icons';\r\nimport { CUI_ICONS, cuiIsIcon } from '@cuby-ui/icons';\r\n\r\n@Component({\r\n selector: 'cui-svg[icon]',\r\n templateUrl: './svg.template.html',\r\n styleUrls: ['./svg.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiSvgComponent {\r\n private readonly domSanitizer = inject(DomSanitizer);\r\n\r\n protected safeSvgContent!: SafeHtml;\r\n\r\n @Input()\r\n public width?: number;\r\n\r\n @Input()\r\n public height?: number;\r\n\r\n @Input()\r\n @HostBinding('style.--stroke-width')\r\n public strokeWidth?: number;\r\n\r\n @Input()\r\n @HostBinding('style.--color')\r\n public color?: string;\r\n\r\n @Input()\r\n public set icon(icon: CuiIcon | string) {\r\n // TODO: В данном случае подключаются все иконки (вероятно, можно как-то оптимизировано их подключать)\r\n this.safeSvgContent = this.domSanitizer.bypassSecurityTrustHtml(cuiIsIcon(icon)\r\n ? CUI_ICONS[icon]\r\n : icon);\r\n }\r\n\r\n @HostBinding('class._with-stroke-width')\r\n public get isWithStrokeWidth(): boolean {\r\n return !!this.strokeWidth;\r\n }\r\n\r\n @HostBinding('class._with-color')\r\n public get isWithColor(): boolean {\r\n return !!this.color;\r\n }\r\n}\r\n","<span\r\n [innerHTML]=\"safeSvgContent\"\r\n [style.width.px]=\"width\"\r\n [style.height.px]=\"height\"\r\n></span>","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n HostBinding,\r\n inject,\r\n Input,\r\n ViewChild,\r\n OnInit\r\n} from '@angular/core';\r\nimport type { CuiIcon } from '@cuby-ui/icons';\r\nimport { CUI_WINDOW } from '@cuby-ui/cdk';\r\n\r\nimport { CUI_BUTTON_OPTIONS, CuiButtonOptions } from './button.options';\r\n\r\n@Component({\r\n selector: 'button[cuiButton], a[cuiButton]',\r\n templateUrl: './button.template.html',\r\n styleUrls: ['./button.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiButtonComponent implements CuiButtonOptions, OnInit {\r\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\r\n private readonly element = inject(ElementRef).nativeElement as HTMLButtonElement;\r\n private readonly window = inject(CUI_WINDOW);\r\n private readonly cuiButtonOptions = inject(CUI_BUTTON_OPTIONS);\r\n\r\n protected readonly AppearanceIconColors: Record<CuiButtonOptions['appearance'], string> = {\r\n action: '--c-action-icon-color',\r\n secondary: '--c-secondary-icon-color',\r\n outlined: '--c-outlined-icon-color',\r\n 'outlined-gray': '--c-outlined-gray-icon-color',\r\n ghost: '--c-ghost-icon-color',\r\n flat: '--c-flat-icon-color',\r\n destructive: '--c-destructive-icon-color',\r\n link: '--c-link-icon-color'\r\n };\r\n protected readonly COLOR_BASE_500 = 'var(--cui-base-500)';\r\n protected readonly BUTTON_ICONS_COLOR_BASE_500: CuiButtonOptions['appearance'][] = [\r\n 'secondary',\r\n 'outlined',\r\n 'outlined-gray',\r\n 'ghost'\r\n ];\r\n\r\n protected _appearance = this.cuiButtonOptions.appearance;\r\n protected iconColor = this.getIconColor(this._appearance);\r\n protected _size = this.cuiButtonOptions.size;\r\n protected iconDimensions = {\r\n width: 20,\r\n height: 20\r\n };\r\n\r\n @Input()\r\n @HostBinding('attr.data-shape')\r\n public shape = this.cuiButtonOptions.shape;\r\n\r\n @Input()\r\n @HostBinding('class._disabled')\r\n public disabled = false;\r\n\r\n @Input()\r\n @HostBinding('class._loading')\r\n public isLoaderShown = false;\r\n\r\n @Input()\r\n public icon?: CuiIcon | string;\r\n\r\n @Input()\r\n public iconRight?: CuiIcon | string;\r\n\r\n @Input()\r\n @HostBinding('attr.data-appearance')\r\n public get appearance(): CuiButtonOptions['appearance'] {\r\n return this._appearance;\r\n }\r\n\r\n public set appearance(appearance: CuiButtonOptions['appearance']) {\r\n this._appearance = appearance;\r\n\r\n this.changeIconColor();\r\n }\r\n\r\n @Input()\r\n @HostBinding('attr.data-size')\r\n public get size(): CuiButtonOptions['size'] {\r\n return this._size;\r\n }\r\n\r\n public set size(size: CuiButtonOptions['size']) {\r\n this._size = size;\r\n\r\n if (size === 'xxs') {\r\n this.iconDimensions = {\r\n width: 16,\r\n height: 16\r\n };\r\n\r\n return;\r\n }\r\n\r\n this.iconDimensions = {\r\n width: 20,\r\n height: 20\r\n };\r\n }\r\n\r\n @HostBinding('class._only-icon')\r\n protected containsOnlyIcon = false;\r\n\r\n @HostBinding('disabled')\r\n protected get isDisabled(): boolean {\r\n return this.disabled || this.isLoaderShown;\r\n }\r\n\r\n @ViewChild('content')\r\n protected content!: ElementRef<HTMLSpanElement>;\r\n\r\n public ngOnInit(): void {\r\n this.initIconColor();\r\n }\r\n\r\n private initIconColor(): void {\r\n this.changeIconColor();\r\n }\r\n\r\n private changeIconColor(): void {\r\n Promise.resolve().then(() => {\r\n this.iconColor = this.getIconColor(this._appearance);\r\n\r\n this.changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n private getIconColor(appearance: CuiButtonOptions['appearance']): string {\r\n const customIconColor = this.window\r\n .getComputedStyle(this.element)\r\n .getPropertyValue(this.AppearanceIconColors[appearance]);\r\n\r\n if (customIconColor) {\r\n return customIconColor;\r\n }\r\n\r\n if (this.BUTTON_ICONS_COLOR_BASE_500.includes(appearance)) {\r\n return this.COLOR_BASE_500;\r\n }\r\n\r\n return 'currentColor';\r\n }\r\n}\r\n","<span\r\n class=\"c-wrapper\"\r\n [class.c-wrapper_invisible]=\"isLoaderShown\"\r\n>\r\n <cui-svg\r\n *ngIf=\"icon\"\r\n [icon]=\"icon\"\r\n [width]=\"iconDimensions.width\"\r\n [height]=\"iconDimensions.height\"\r\n [color]=\"iconColor\"\r\n ></cui-svg>\r\n <span\r\n #content\r\n class=\"c-content\"\r\n ><ng-content></ng-content></span>\r\n <cui-svg\r\n *ngIf=\"iconRight\"\r\n [icon]=\"iconRight\"\r\n [width]=\"iconDimensions.width\"\r\n [height]=\"iconDimensions.height\"\r\n [color]=\"iconColor\"\r\n ></cui-svg>\r\n</span>\r\n<cui-svg\r\n *ngIf=\"isLoaderShown\"\r\n icon=\"cuiIconLoading\"\r\n class=\"c-loader\"\r\n></cui-svg>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport type { CuiIcon } from '@cuby-ui/icons';\r\nimport { CuiAccordionAppearance } from './accordion-item.options';\r\n\r\n@Component({\r\n selector: 'cui-accordion-item',\r\n templateUrl: './accordion-item.template.html',\r\n styleUrls: ['./accordion-item.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiAccordionItemComponent {\r\n @Input()\r\n public isOpen = true;\r\n\r\n @Input()\r\n public appearance: CuiAccordionAppearance = 'default';\r\n\r\n @Output()\r\n public readonly isOpenChange = new EventEmitter<boolean>();\r\n\r\n protected get buttonIcon(): CuiIcon {\r\n return this.isOpen ? 'cuiIconChevronDown' : 'cuiIconChevronRight';\r\n }\r\n\r\n @HostBinding('attr.appearance')\r\n public get _appearance(): string {\r\n return this.appearance;\r\n }\r\n\r\n protected onRowToggle(): void {\r\n this.isOpen = !this.isOpen;\r\n\r\n this.isOpenChange.emit(this.isOpen);\r\n }\r\n}\r\n","<header class=\"c-header\">\r\n <button\r\n cuiButton\r\n appearance=\"ghost\"\r\n size=\"xxs\"\r\n [icon]=\"buttonIcon\"\r\n (click)=\"onRowToggle()\"\r\n ></button>\r\n <div class=\"c-header__wrapper\">\r\n <ng-content></ng-content>\r\n </div>\r\n</header>\r\n<div *ngIf=\"isOpen\" class=\"c-content\">\r\n <ng-content select=\"[cuiAccordionItemContent]\"></ng-content>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { CuiSvgComponent } from './svg.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [CuiSvgComponent],\r\n exports: [CuiSvgComponent]\r\n})\r\nexport class CuiSvgModule {\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { CuiButtonComponent } from './button.component';\r\nimport { CuiSvgModule } from '../svg';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CuiSvgModule\r\n ],\r\n declarations: [CuiButtonComponent],\r\n exports: [CuiButtonComponent]\r\n})\r\nexport class CuiButtonModule {\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { CuiAccordionComponent } from './accordion.component';\r\nimport { CuiAccordionItemComponent } from './accordion-item/accordion-item.component';\r\nimport { CuiSvgModule } from '../svg';\r\nimport { CuiButtonModule } from '../button';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CuiSvgModule,\r\n CuiButtonModule\r\n ],\r\n declarations: [\r\n CuiAccordionComponent,\r\n CuiAccordionItemComponent\r\n ],\r\n exports: [\r\n CuiAccordionComponent,\r\n CuiAccordionItemComponent\r\n ]\r\n})\r\nexport class CuiAccordionModule {\r\n}\r\n","import { cuiCreateToken } from '@cuby-ui/cdk';\r\n\r\nimport type { CuiStatus } from '../../types';\r\n\r\nexport type CuiNotificationIcons = Record<CuiStatus, { icon: string }>;\r\n\r\nexport type CuiNotificationIconOptions = Record<CuiStatus, { color: string }>;\r\n\r\nexport interface CuiNotificationOptions {\r\n readonly status: CuiStatus;\r\n readonly mode: 'default' | 'light';\r\n}\r\n\r\nexport const CUI_NOTIFICATION_DEFAULT_OPTIONS: CuiNotificationOptions = {\r\n status: 'info',\r\n mode: 'default'\r\n};\r\n\r\nexport const CUI_NOTIFICATION_OPTIONS = cuiCreateToken(CUI_NOTIFICATION_DEFAULT_OPTIONS);\r\n\r\nexport const CUI_NOTIFICATION_ICONS: CuiNotificationIcons = {\r\n info: {\r\n icon: 'cuiIconInfo'\r\n },\r\n success: {\r\n icon: 'cuiIconCheckCircle'\r\n },\r\n alert: {\r\n icon: 'cuiIconAlertTriangle'\r\n },\r\n error: {\r\n icon: 'cuiIconXCircle'\r\n },\r\n} as const;\r\n\r\nexport const CUI_NOTIFICATION_ICON_OPTIONS_DEFAULT_MODE: CuiNotificationIconOptions = {\r\n info: {\r\n color: 'var(--c-info-icon-color)'\r\n },\r\n success: {\r\n color: 'var(--cui-green-500)'\r\n },\r\n alert: {\r\n color: 'var(--cui-yellow-400)'\r\n },\r\n error: {\r\n color: 'var(--cui-danger)'\r\n },\r\n} as const;\r\n\r\nexport const CUI_NOTIFICATION_ICON_OPTIONS_LIGHT_MODE: CuiNotificationIconOptions = {\r\n info: {\r\n color: 'var(--cui-info)'\r\n },\r\n success: {\r\n color: 'var(--cui-green-700)'\r\n },\r\n alert: {\r\n color: 'var(--cui-yellow-400)'\r\n },\r\n error: {\r\n color: 'var(--cui-danger)'\r\n },\r\n} as const;\r\n\r\nexport const CUI_NOTIFICATION_ICON_OPTIONS: Record<CuiNotificationOptions['mode'], CuiNotificationIconOptions> = {\r\n default: CUI_NOTIFICATION_ICON_OPTIONS_DEFAULT_MODE,\r\n light: CUI_NOTIFICATION_ICON_OPTIONS_LIGHT_MODE\r\n}","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n HostBinding,\r\n inject,\r\n Input,\r\n OnInit,\r\n Output\r\n} from '@angular/core';\r\nimport {\r\n CUI_NOTIFICATION_ICON_OPTIONS,\r\n CuiNotificationIconOptions,\r\n CuiNotificationOptions\r\n} from './notification.options';\r\nimport { CUI_NOTIFICATION_OPTIONS, CUI_NOTIFICATION_ICONS } from './notification.options';\r\n\r\n@Component({\r\n selector: 'cui-notification',\r\n templateUrl: './notification.template.html',\r\n styleUrls: ['./notification.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiNotificationComponent implements CuiNotificationOptions, OnInit {\r\n private readonly cuiNotificationOptions = inject(CUI_NOTIFICATION_OPTIONS);\r\n\r\n protected readonly ICONS = CUI_NOTIFICATION_ICONS;\r\n protected readonly ICON_OPTIONS = CUI_NOTIFICATION_ICON_OPTIONS;\r\n\r\n protected iconOptions!: CuiNotificationIconOptions;\r\n\r\n @Input()\r\n @HostBinding('attr.data-status')\r\n public status = this.cuiNotificationOptions.status;\r\n\r\n @Input()\r\n @HostBinding('attr.data-mode')\r\n public mode = this.cuiNotificationOptions.mode;\r\n\r\n @Input()\r\n public isCloseable = false;\r\n\r\n @Output()\r\n public readonly closed = new EventEmitter<void>();\r\n\r\n public ngOnInit(): void {\r\n this.initIconOptions();\r\n }\r\n\r\n protected onClose(): void {\r\n this.closed.next();\r\n }\r\n\r\n private initIconOptions(): void {\r\n this.iconOptions = this.ICON_OPTIONS[this.mode];\r\n }\r\n}\r\n","<cui-svg\r\n class=\"c-icon\"\r\n [icon]=\"ICONS[status].icon\"\r\n [color]=\"iconOptions[status].color\"\r\n></cui-svg>\r\n<div class=\"c-content\">\r\n <ng-content></ng-content>\r\n</div>\r\n<button\r\n *ngIf=\"isCloseable\"\r\n class=\"c-button\"\r\n (click)=\"onClose()\"\r\n>\r\n <cui-svg\r\n icon=\"cuiIconX\"\r\n color=\"var(--cui-gray-0)\"\r\n />\r\n</button>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { CuiSvgModule } from '../svg';\r\nimport { CuiNotificationComponent } from './notification.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CuiSvgModule\r\n ],\r\n declarations: [CuiNotificationComponent],\r\n exports: [CuiNotificationComponent]\r\n})\r\nexport class CuiNotificationModule {\r\n}\r\n","import { inject, InjectionToken } from '@angular/core';\r\nimport { cuiCreateTokenFromFactory, CuiPopover } from '@cuby-ui/cdk';\r\nimport { cuiCreateToken } from '@cuby-ui/cdk';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\nimport type { CuiAlertOptions } from './alert.interfaces';\r\nimport { CUI_NOTIFICATION_OPTIONS } from '../notification';\r\n\r\nexport const CUI_ALERTS = cuiCreateToken(\r\n new BehaviorSubject<ReadonlyArray<CuiPopover<CuiAlertOptions>>>([])\r\n);\r\n\r\nexport const CUI_ALERT_DEFAULT_OPTIONS: Omit<CuiAlertOptions, 'status'> = {\r\n label: '',\r\n needAutoClose: true,\r\n isCloseable: true,\r\n mode: 'default',\r\n position: 'right',\r\n resizing: 'fixed'\r\n};\r\n\r\nexport const CUI_ALERT_OPTIONS = cuiCreateTokenFromFactory(\r\n () => ({\r\n ...CUI_ALERT_DEFAULT_OPTIONS,\r\n ...inject(CUI_NOTIFICATION_OPTIONS)\r\n })\r\n);\r\n\r\nexport const CUI_ALERT_CONTEXT = new InjectionToken<CuiPopover<CuiAlertOptions>>('');\r\n","import type { OnInit } from '@angular/core';\r\nimport { ChangeDetectionStrategy, Component, inject, HostBinding } from '@angular/core';\r\n\r\nimport { CUI_ALERT_CONTEXT } from './alert.tokens';\r\nimport type { CuiAlertResizing } from './alert.types';\r\n\r\n@Component({\r\n selector: 'cui-alert',\r\n templateUrl: './alert.template.html',\r\n styleUrls: ['./alert.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiAlertComponent implements OnInit {\r\n protected readonly context = inject(CUI_ALERT_CONTEXT);\r\n\r\n protected readonly AUTO_CLOSE_DURATION_IN_MILLISECONDS = 3000;\r\n\r\n @HostBinding('attr.data-resizing')\r\n protected get resizing(): CuiAlertResizing {\r\n return this.context.resizing;\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.initAutoClose();\r\n }\r\n\r\n protected onClosed(): void {\r\n this.context.$implicit.complete();\r\n }\r\n\r\n private initAutoClose(): void {\r\n if (!this.context.needAutoClose) {\r\n return;\r\n }\r\n\r\n setTimeout(this.onClosed.bind(this), this.AUTO_CLOSE_DURATION_IN_MILLISECONDS);\r\n }\r\n}\r\n","<cui-notification\r\n [status]=\"context.status\"\r\n [mode]=\"context.mode\"\r\n [isCloseable]=\"context.isCloseable\"\r\n (closed)=\"onClosed()\"\r\n>\r\n <h2\r\n *ngIf=\"context.label\"\r\n class=\"c-heading\"\r\n >\r\n {{ context.label }}\r\n </h2>\r\n {{ context.content }}\r\n</cui-notification>\r\n","import type { OnInit } from '@angular/core';\r\nimport { ChangeDetectionStrategy, Component, inject, Injector } from '@angular/core';\r\nimport type { CuiPopover } from '@cuby-ui/cdk';\r\nimport { CuiDestroyService } from '@cuby-ui/cdk';\r\nimport type { Observable } from 'rxjs';\r\nimport { takeUntil } from 'rxjs';\r\n\r\nimport { CUI_ALERT_CONTEXT, CUI_ALERTS } from './alert.tokens';\r\nimport type { CuiAlertOptions } from './alert.interfaces';\r\n\r\n@Component({\r\n selector: 'cui-alerts',\r\n templateUrl: './alerts.template.html',\r\n styleUrls: ['./alerts.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [CuiDestroyService]\r\n})\r\nexport class CuiAlertsComponent implements OnInit {\r\n private readonly destroy$ = inject(CuiDestroyService, { self: true });\r\n\r\n protected readonly alerts$: Observable<ReadonlyArray<CuiPopover<CuiAlertOptions>>> = inject(CUI_ALERTS);\r\n protected alertInjectors!: ReadonlyArray<Injector>;\r\n\r\n public ngOnInit(): void {\r\n this.initAlertInjectorsSubscription();\r\n }\r\n\r\n protected trackByFn(_: number, alert: CuiPopover<CuiAlertOptions>): string {\r\n return alert.id;\r\n }\r\n\r\n protected alertsMatcher(alert: CuiPopover<CuiAlertOptions>, position: string): boolean {\r\n return alert.position === position;\r\n }\r\n\r\n protected initAlertInjectorsSubscription(): void {\r\n this.alerts$\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(dialogs => this.alertInjectors = dialogs.map(useValue => Injector.create({\r\n providers: [{ provide: CUI_ALERT_CONTEXT, useValue }]\r\n })));\r\n }\r\n}\r\n","<ng-container *cuiLet=\"alerts$ | async as alerts\">\r\n <div class=\"c-wrapper c-wrapper_position_center\">\r\n <ng-container *ngFor=\"let alert of alerts! | cuiFilter: alertsMatcher: 'center'; let i = index; trackBy: trackByFn\">\r\n <ng-container *ngComponentOutlet=\"alert.component; injector: alertInjectors[i]\" />\r\n </ng-container>\r\n </div>\r\n <div class=\"c-wrapper c-wrapper_position_right\">\r\n <ng-container *ngFor=\"let alert of alerts! | cuiFilter: alertsMatcher: 'right'; let i = index; trackBy: trackByFn\">\r\n <ng-container *ngComponentOutlet=\"alert.component; injector: alertInjectors[i]\" />\r\n </ng-container>\r\n </div>\r\n</ng-container>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CuiFilterPipe, CuiLetDirective } from '@cuby-ui/cdk';\r\n\r\nimport { CuiAlertComponent } from './alert.component';\r\nimport { CuiAlertsComponent } from './alerts.component';\r\nimport { CuiNotificationModule } from '../notification';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CuiFilterPipe,\r\n CuiNotificationModule,\r\n CuiLetDirective\r\n ],\r\n declarations: [\r\n CuiAlertComponent,\r\n CuiAlertsComponent\r\n ],\r\n exports: [\r\n CuiAlertComponent,\r\n CuiAlertComponent,\r\n CuiAlertsComponent\r\n ]\r\n})\r\nexport class CuiAlertModule {\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { CuiPopoverService } from '@cuby-ui/cdk';\r\n\r\nimport { CUI_ALERT_OPTIONS, CUI_ALERTS } from './alert.tokens';\r\nimport { CuiAlertComponent } from './alert.component';\r\nimport type { CuiAlertOptions } from './alert.interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n useFactory: () => new CuiAlertService(CUI_ALERTS, CuiAlertComponent, inject(CUI_ALERT_OPTIONS))\r\n})\r\nexport class CuiAlertService extends CuiPopoverService<CuiAlertOptions> {\r\n}\r\n","import { cuiCreateToken } from '@cuby-ui/cdk';\r\n\r\nimport type { CuiSizeMd, CuiSizeSm } from '../../types';\r\n\r\nexport interface CuiBadgeOptions {\r\n readonly color: 'light-blue' | 'yellow' | 'green' | 'gray' | 'dark-gray' | 'red' | 'violet';\r\n readonly size: CuiSizeSm | CuiSizeMd;\r\n readonly isWithDot: boolean;\r\n}\r\n\r\nexport const CUI_BADGE_DEFAULT_OPTIONS: CuiBadgeOptions = {\r\n color: 'light-blue',\r\n size: 'sm',\r\n isWithDot: false\r\n};\r\n\r\nexport const CUI_BADGE_OPTIONS = cuiCreateToken(CUI_BADGE_DEFAULT_OPTIONS);","import { ChangeDetectionStrategy, Component, HostBinding, inject, Input } from '@angular/core';\r\n\r\nimport type { CuiBadgeOptions } from './badge.options';\r\nimport { CUI_BADGE_OPTIONS } from './badge.options';\r\n\r\n@Component({\r\n selector: 'cui-badge',\r\n templateUrl: './badge.template.html',\r\n styleUrls: ['./badge.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiBadgeComponent implements CuiBadgeOptions {\r\n private readonly options = inject(CUI_BADGE_OPTIONS);\r\n\r\n @Input()\r\n @HostBinding('attr.data-color')\r\n public color = this.options.color;\r\n\r\n @Input()\r\n @HostBinding('attr.data-size')\r\n public size = this.options.size;\r\n\r\n @Input()\r\n public isWithDot = this.options.isWithDot;\r\n}\r\n","<span\r\n *ngIf=\"isWithDot\"\r\n class=\"c-dots\"\r\n></span>\r\n<ng-content />","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { CuiBadgeComponent } from './badge.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [CuiBadgeComponent],\r\n exports: [CuiBadgeComponent]\r\n})\r\nexport class CuiBadgeModule {\r\n}\r\n","import type { CuiStatus } from '../../types';\r\nimport { cuiCreateToken } from '@cuby-ui/cdk';\r\nimport type { CuiIcon } from '@cuby-ui/icons';\r\n\r\nexport type CuiBannerIconOptions = {\r\n [k in CuiStatus]: {\r\n icon: CuiIcon;\r\n color: string;\r\n }\r\n}\r\n\r\nexport interface CuiBannerOptions {\r\n readonly status: CuiStatus;\r\n}\r\n\r\nexport const CUI_BANNER_DEFAULT_OPTIONS: CuiBannerOptions = {\r\n status: 'info'\r\n};\r\n\r\nexport const CUI_BANNER_OPTIONS = cuiCreateToken(CUI_BANNER_DEFAULT_OPTIONS);\r\n","import type {AbstractType, ExistingProvider, FactoryProvider, Type} from '@angular/core';\r\nimport {Optional, SkipSelf} from '@angular/core';\r\nimport {cuiProvide} from '@cuby-ui/cdk';\r\nimport type {CuiPoint} from '../types';\r\n\r\nexport abstract class CuiAccessor {\r\n public abstract readonly type: string;\r\n}\r\n\r\nexport abstract class CuiPositionAccessor extends CuiAccessor {\r\n /*\r\n * TODO @deprecated switching from DOMRect to HTMLElement in v5\r\n */\r\n public abstract getPosition(rect: DOMRect, element?: HTMLElement): CuiPoint;\r\n}\r\n\r\nexport abstract class CuiRectAccessor extends CuiAccessor {\r\n public abstract getClientRect(): DOMRect;\r\n}\r\n\r\nexport function cuiProvideAccessor<T extends CuiAccessor>(\r\n provide: AbstractType<T>,\r\n type: string,\r\n fallback: Type<T>,\r\n): FactoryProvider {\r\n return {\r\n provide,\r\n deps: [[new SkipSelf(), new Optional(), provide], fallback],\r\n useFactory: cuiFallbackAccessor<T>(type),\r\n };\r\n}\r\n\r\nexport function cuiFallbackAccessor<T extends CuiAccessor>(\r\n type: string,\r\n): (accessors: readonly T[] | null, fallback: T) => T {\r\n return (accessors, fallback) =>\r\n accessors?.find?.(\r\n (accessor) => accessor !== fallback && accessor.type === type,\r\n ) || fallback;\r\n}\r\n\r\nexport function cuiPositionAccessorFor(\r\n type: string,\r\n fallback: Type<CuiPositionAccessor>,\r\n): FactoryProvider {\r\n return cuiProvideAccessor(CuiPositionAccessor, type, fallback);\r\n}\r\n\r\nexport function cuiRectAccessorFor(\r\n type: string,\r\n fallback: Type<CuiRectAccessor>,\r\n): FactoryProvider {\r\n return cuiProvideAccessor(CuiRectAccessor, type, fallback);\r\n}\r\n\r\nexport function cuiAsPositionAccessor(\r\n accessor: Type<CuiPositionAccessor>,\r\n): ExistingProvider {\r\n return cuiProvide(CuiPositionAccessor, accessor, true);\r\n}\r\n\r\nexport function cuiAsRectAccessor(accessor: Type<CuiRectAccessor>): ExistingProvider {\r\n return cuiProvide(CuiRectAccessor, accessor, true);\r\n}\r\n","import type {ExistingProvider, Type} from '@angular/core';\r\nimport {cuiProvide} from '@cuby-ui/cdk';\r\n\r\nexport abstract class CuiVehicle {\r\n public abstract readonly type: string;\r\n public abstract toggle(value: boolean): void;\r\n}\r\n\r\nexport function cuiAsVehicle(vehicle: Type<CuiVehicle>): ExistingProvider {\r\n return cuiProvide(CuiVehicle, vehicle, true);\r\n}\r\n","import type {AfterViewInit, ExistingProvider, Type} from '@angular/core';\r\nimport {DestroyRef, Directive, inject} from '@angular/core';\r\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\r\nimport {cuiProvide} from '@cuby-ui/cdk';\r\nimport {distinctUntilChanged, merge, Observable} from 'rxjs';\r\n\r\nimport {CuiVehicle} from './vehicle';\r\n\r\nexport abstract class CuiDriver extends Observable<boolean> {\r\n public abstract readonly type: string;\r\n}\r\n\r\nexport function cuiAsDriver(driver: Type<CuiDriver>): ExistingProvider {\r\n return cuiProvide(CuiDriver, driver, true);\r\n}\r\n\r\n@Directive()\r\nexport abstract class CuiDriverDirective implements AfterViewInit {\r\n public abstract type: string;\r\n\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly drivers: readonly CuiDriver[] =\r\n inject<any>(CuiDriver, {self: true, optional: true}) || [];\r\n\r\n private readonly vehicles: readonly CuiVehicle[] = inject<any>(CuiVehicle, {\r\n self: true,\r\n optional: true,\r\n });\r\n\r\n public ngAfterViewInit(): void {\r\n const vehicle = this.vehicles?.find(({type}) => type === this.type);\r\n\r\n merge(...this.drivers.filter(({type}) => type === this.type))\r\n .pipe(distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))\r\n .subscribe((value) => {\r\n vehicle?.toggle(value);\r\n });\r\n }\r\n}\r\n","import {inject, Injectable, NgZone} from '@angular/core';\r\nimport {CUI_ANIMATION_FRAME} from '@cuby-ui/cdk';\r\nimport {EMPTY_CLIENT_RECT, cuiInjectElement, cuiZonefree} from '@cuby-ui/cdk';\r\nimport {CuiPositionAccessor} from '../classes';\r\nimport type {CuiPoint} from '../types';\r\nimport {finalize, map, Observable, startWith} from 'rxjs';\r\n\r\n@Injectable()\r\nexport class CuiPositionService extends Observable<CuiPoint> {\r\n private readonly el = cuiInjectElement();\r\n private readonly accessor = inject(CuiPositionAccessor);\r\n\r\n constructor() {\r\n const animationFrame$ = inject(CUI_ANIMATION_FRAME);\r\n const zone = inject(NgZone);\r\n\r\n super((subscriber) =>\r\n animationFrame$\r\n .pipe(\r\n startWith(null),\r\n map(() =>\r\n this.accessor.getPosition(\r\n this.el.getBoundingClientRect(),\r\n this.el,\r\n ),\r\n ),\r\n cuiZonefree(zone),\r\n finalize(() => this.accessor.getPosition(EMPTY_CLIENT_RECT)),\r\n )\r\n .subscribe(subscriber),\r\n );\r\n }\r\n}\r\n","import { cuiCreateToken } from '@cuby-ui/cdk';\r\n\r\nexport type CuiTheme = 'light' | 'dark';\r\n\r\nexport const CUI_THEME_STORAGE_DEFAULT_KEY = 'cuiTheme';\r\n\r\nexport const CUI_DEFAULT_THEME: CuiTheme = 'light';\r\n\r\nexport const CUI_THEME_STORAGE_KEY = cuiCreateToken(CUI_THEME_STORAGE_DEFAULT_KEY);\r\n\r\nexport const CUI_THEME = cuiCreateToken<CuiTheme>(CUI_DEFAULT_THEME);","import { inject, Injectable } from '@angular/core';\r\nimport type { CuiNullable } from '@cuby-ui/cdk';\r\nimport { CUI_LOCAL_STORAGE } from '@cuby-ui/cdk';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\nimport type { CuiTheme } from './theme.options';\r\nimport { CUI_THEME, CUI_THEME_STORAGE_KEY } from './theme.options';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CuiThemeService extends BehaviorSubject<CuiTheme> {\r\n private readonly localStorage = inject(CUI_LOCAL_STORAGE);\r\n private readonly key = inject(CUI_THEME_STORAGE_KEY);\r\n\r\n constructor() {\r\n super(\r\n inject(CUI_LOCAL_STORAGE).getItem(inject(CUI_THEME_STORAGE_KEY)) as CuiNullable<CuiTheme>\r\n ?? inject(CUI_THEME)\r\n );\r\n }\r\n\r\n public override next(theme: CuiTheme): void {\r\n this.localStorage.setItem(this.key, theme);\r\n super.next(theme);\r\n }\r\n\r\n // При работе только двух тем\r\n public switch(): void {\r\n this.next(this.value === 'light' ? 'dark' : 'light');\r\n }\r\n}","import {inject, Injectable} from '@angular/core';\r\nimport { CUI_WINDOW } from '@cuby-ui/cdk';\r\nimport {CUI_IS_WEBKIT} from '@cuby-ui/cdk';\r\nimport type {CuiPoint} from '../types';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CuiVisualViewportService {\r\n private readonly isWebkit = inject(CUI_IS_WEBKIT);\r\n private readonly win = inject(CUI_WINDOW);\r\n\r\n // https://bugs.webkit.org/show_bug.cgi?id=207089\r\n public correct(point: CuiPoint): CuiPoint {\r\n return this.isWebkit\r\n ? [\r\n point[0] + (this.win.visualViewport?.offsetTop ?? 0),\r\n point[1] + (this.win.visualViewport?.offsetLeft ?? 0),\r\n ]\r\n : point;\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, inject, Input, Output } from '@angular/core';\r\n\r\nimport type { CuiBannerIconOptions, CuiBannerOptions } from './banner.options';\r\nimport { CUI_BANNER_OPTIONS } from './banner.options';\r\nimport type { CuiTheme } from '../../services';\r\nimport { CuiThemeService } from '../../services';\r\n\r\n@Component({\r\n selector: 'cui-banner',\r\n templateUrl: './banner.template.html',\r\n styleUrls: ['./banner.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiBannerComponent implements CuiBannerOptions {\r\n private readonly options = inject(CUI_BANNER_OPTIONS);\r\n protected readonly theme$ = inject(CuiThemeService);\r\n\r\n protected readonly ICON_OPTIONS: CuiBannerIconOptions = {\r\n info: {\r\n icon: 'cuiIconInfo',\r\n color: 'var(--c-info-icon-color)'\r\n },\r\n success: {\r\n icon: 'cuiIconCheckCircle',\r\n color: 'var(--cui-success)'\r\n },\r\n alert: {\r\n icon: 'cuiIconAlertTriangle',\r\n color: 'var(--c-alert-icon-color)'\r\n },\r\n error: {\r\n icon: 'cuiIconAlertCircle',\r\n color: 'var(--cui-danger)'\r\n },\r\n };\r\n protected readonly THEME_CLOSE_BUTTON_ICON_COLORS: Record<CuiTheme, string> = {\r\n light: 'var(--cui-gray-500)',\r\n dark: 'var(--cui-gray-0)'\r\n }\r\n\r\n @Input()\r\n @HostBinding('attr.data-status')\r\n public status = this.options.status;\r\n\r\n @Input()\r\n public isCloseable = true;\r\n\r\n @Input()\r\n public label?: string;\r\n\r\n @Input()\r\n public actionButtonText?: string;\r\n\r\n @Output()\r\n public actionButtonClicked = new EventEmitter<void>();\r\n\r\n @Output()\r\n public closed = new EventEmitter<void>();\r\n\r\n protected onAction(): void {\r\n this.actionButtonClicked.emit();\r\n }\r\n\r\n protected onClose(): void {\r\n this.closed.emit();\r\n }\r\n}\r\n","<cui-svg\r\n *cuiLet=\"ICON_OPTIONS[status] as iconOption\"\r\n [icon]=\"iconOption.icon\"\r\n [color]=\"iconOption.color\"\r\n class=\"c-icon\"\r\n></cui-svg>\r\n<div class=\"c-wrapper\">\r\n <h2\r\n *ngIf=\"label\"\r\n class=\"c-heading\"\r\n >\r\n {{ label }}\r\n </h2>\r\n <ng-content></ng-content>\r\n <button\r\n cuiButton\r\n *ngIf=\"actionButtonText\"\r\n appearance=\"link\"\r\n class=\"c-action\"\r\n (click)=\"onAction()\"\r\n >\r\n {{ actionButtonText }}\r\n </button>\r\n</div>\r\n<button\r\n *ngIf=\"isCloseable\"\r\n class=\"c-button\"\r\n (click)=\"onClose()\"\r\n>\r\n <cui-svg\r\n *cuiLet=\"theme$ | async as theme\"\r\n icon=\"cuiIconX\"\r\n [color]=\"THEME_CLOSE_BUTTON_ICON_COLORS[theme!]\"\r\n />\r\n</button>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CuiLetDirective } from '@cuby-ui/cdk';\r\n\r\nimport { CuiBannerComponent } from './banner.component';\r\nimport { CuiSvgModule } from '../svg';\r\nimport { CuiButtonModule } from '../button';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CuiLetDirective,\r\n CuiSvgModule,\r\n CuiButtonModule\r\n ],\r\n declarations: [CuiBannerComponent],\r\n exports: [CuiBannerComponent]\r\n})\r\nexport class CuiBannerModule {\r\n}\r\n","import { ChangeDetectionStrategy, Component, ContentChildren, QueryList, TemplateRef } from '@angular/core';\r\n\r\nimport { CuiItemDirective } from '@cuby-ui/cdk';\r\n\r\n@Component({\r\n selector: 'cui-breadcrumbs',\r\n templateUrl: './breadcrumbs.template.html',\r\n styleUrls: ['./breadcrumbs.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiBreadcrumbsComponent {\r\n @ContentChildren(CuiItemDirective, { read: TemplateRef })\r\n protected readonly breadcrumbs!: QueryList<TemplateRef<unknown>>;\r\n}\r\n","<ng-container *ngIf=\"breadcrumbs.changes | async\"/>\r\n<ng-container *ngFor=\"let breadcrumb of breadcrumbs; let isLast = last\">\r\n <ng-container *ngTemplateOutlet=\"breadcrumb\" />\r\n <cui-svg\r\n *ngIf=\"!isLast\"\r\n icon=\"cuiIconSlashDivider\"\r\n color=\"var(--cui-base-500)\"\r\n />\r\n</ng-container>\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: '[cuiBreadcrumb]',\r\n templateUrl: './breadcrumb.template.html',\r\n styleUrls: ['./breadcrumb.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiBreadcrumbComponent {\r\n @Input()\r\n public isLast = false;\r\n}\r\n","<ng-content />\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { CuiBreadcrumbsComponent } from './breadcrumbs.component';\r\nimport { CuiBreadcrumbComponent } from './breadcrumb/breadcrumb.component';\r\nimport { CuiSvgModule } from '../svg';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CuiSvgModule\r\n ],\r\n declarations: [\r\n CuiBreadcrumbsComponent,\r\n CuiBreadcrumbComponent\r\n ],\r\n exports: [\r\n CuiBreadcrumbsComponent,\r\n CuiBreadcrumbComponent\r\n ]\r\n})\r\nexport class CuiBreadcrumbsModule {\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'cui-button-group',\r\n templateUrl: './button-group.template.html',\r\n styleUrls: ['./button-group.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiButtonGroupComponent {\r\n}\r\n","<ng-content select=\"button[cuiButton], a[cuiButton]\"></ng-content>\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { CuiButtonGroupComponent } from './button-group.component';\r\n\r\n@NgModule({\r\n declarations: [CuiButtonGroupComponent],\r\n exports: [CuiButtonGroupComponent]\r\n})\r\nexport class CuiButtonGroupModule {\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'input[type=\"checkbox\"][cuiCheckbox]',\r\n template: '',\r\n styleUrls: ['./checkbox.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiCheckboxComponent {\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { CuiCheckboxComponent } from './checkbox.component';\r\n\r\n@NgModule({\r\n declarations: [CuiCheckboxComponent],\r\n exports: [CuiCheckboxComponent]\r\n})\r\nexport class CuiCheckboxModule {\r\n}\r\n","export const CUI_ROOT_SELECTOR = 'cui-root';","import { InjectionToken } from '@angular/core';\r\nimport type { CuiPopover } from '@cuby-ui/cdk';\r\nimport { cuiCreateToken } from '@cuby-ui/cdk';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\nimport type { CuiDialogOptions } from './dialog.interfaces';\r\n\r\nexport const CUI_DIALOGS = cuiCreateToken(\r\n new BehaviorSubject<ReadonlyArray<CuiPopover<CuiDialogOptions>>>([])\r\n);\r\n\r\nexport const CUI_DIALOG_DEFAULT_OPTIONS: CuiDialogOptions = {\r\n size: 'auto',\r\n data: undefined,\r\n dismissible: true\r\n};\r\n\r\nexport const CUI_DIALOG_OPTIONS = cuiCreateToken(CUI_DIALOG_DEFAULT_OPTIONS);\r\n\r\nexport const CUI_DIALOG_CONTEXT = new InjectionToken<CuiPopover<CuiDialogOptions>>('');\r\n","import type { OnInit } from '@angular/core';\r\nimport { ChangeDetectionStrategy, Component, inject, Injector } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport type { CuiPopover } from '@cuby-ui/cdk';\r\nimport { CuiDestroyService } from '@cuby-ui/cdk';\r\nimport type { Observable } from 'rxjs';\r\nimport { takeUntil } from 'rxjs';\r\n\r\nimport { CUI_DIALOG_CONTEXT, CUI_DIALOGS } from './dialog.tokens';\r\nimport type { CuiDialogOptions } from './dialog.interfaces';\r\n\r\n@Component({\r\n selector: 'cui-dialogs',\r\n templateUrl: './dialogs.template.html',\r\n styleUrls: ['./dialogs.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [CuiDestroyService]\r\n})\r\nexport class CuiDialogsComponent implements OnInit {\r\n private readonly document = inject(DOCUMENT);\r\n private readonly destroy$ = inject(CuiDestroyService, { self: true });\r\n\r\n protected readonly dialogs$: Observable<ReadonlyArray<CuiPopover<CuiDialogOptions>>> = inject(CUI_DIALOGS);\r\n protected dialogInjectorCache = new Map<string, Injector>();\r\n protected dialogInjectors!: ReadonlyArray<Injector>;\r\n\r\n public ngOnInit(): void {\r\n this.initDialogsSubscription();\r\n }\r\n\r\n protected trackByFn(_: number, dialog: CuiPopover<CuiDialogOptions>): string {\r\n return dialog.id;\r\n }\r\n\r\n protected initDialogsSubscription(): void {\r\n this.dialogs$\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(dialogs => {\r\n this.document.body.style.overflow = dialogs.length ? 'hidden' : '';\r\n this.dialogInjectors = dialogs.map(dialog => {\r\n if (!this.dialogInjectorCache.has(dialog.id)) {\r\n this.dialogInjectorCache.set(dialog.id, Injector.create({\r\n providers: [{ provide: CUI_DIALOG_CONTEXT, useValue: dialog }],\r\n parent: dialog.injector\r\n }));\r\n }\r\n\r\n return this.dialogInjectorCache.get(dialog.id)!;\r\n });\r\n\r\n this.dialogInjectorCache.forEach((_, dialogId) => {\r\n if (dialogs.find(dialog => dialog.id === dialogId)) {\r\n return;\r\n }\r\n\r\n this.dialogInjectorCache.delete(dialogId);\r\n });\r\n });\r\n }\r\n}\r\n","<ng-container *cuiLet=\"dialogs$ | async as dialogs\">\r\n <ng-container *ngFor=\"let dialog of dialogs; let i = index; trackBy: trackByFn\">\r\n <ng-container *ngComponentOutlet=\"dialog.component; injector: dialogInjectors[i]\"></ng-container>\r\n </ng-container>\r\n <div\r\n *ngIf=\"dialogs!.length\"\r\n class=\"c-overlay\"\r\n ></div>\r\n</ng-container>\r\n","import {\r\n animate,\r\n animateChild,\r\n query,\r\n stagger,\r\n style,\r\n transition,\r\n trigger,\r\n} from '@angular/animations';\r\n\r\nconst TRANSITION = '{{duration}}ms ease-in-out';\r\nconst DURATION = {params: {duration: 300}};\r\nconst STAGGER = 300;\r\n\r\nexport interface CuiDurationOptions {\r\n params: {duration: number};\r\n value: string;\r\n}\r\n\r\n/**\r\n * Add to enable child :leave animation (fixes https://github.com/angular/angular/issues/15753)\r\n */\r\nexport const cuiParentAnimation = trigger('cuiParentAnimation', [\r\n transition(':leave', [query(':scope > *', [animateChild()], {optional: true})]),\r\n]);\r\n\r\n/**\r\n * Add on parent to stop initial :enter animation for children\r\n */\r\nexport const cuiParentStop = trigger('cuiParentStop', [transition(':enter', [])]);\r\n\r\nexport const cuiHost = trigger('cuiHost', [\r\n transition(':enter', [\r\n style({overflow: 'clip'}),\r\n query(':scope > *', [animateChild()], {optional: true}),\r\n ]),\r\n transition(':leave', [query(':scope > *', [animateChild()], {optional: true})]),\r\n]);\r\n\r\nexport const cuiHeightCollapse = trigger('cuiHeightCollapse', [\r\n transition(\r\n ':enter',\r\n [style({height: 0}), animate(TRANSITION, style({height: '*'}))],\r\n DURATION,\r\n ),\r\n transition(\r\n ':leave',\r\n [style({height: '*'}), animate(TRANSITION, style({height: 0}))],\r\n DURATION,\r\n ),\r\n]);\r\n\r\nexport const cuiHeightCollapseList = trigger('cuiHeightCollapseList', [\r\n transition(\r\n '* => *',\r\n [\r\n query(\r\n ':enter',\r\n [\r\n style({height: 0}),\r\n stagger(STAGGER, [animate(TRANSITION, style({height: '*'}))]),\r\n ],\r\n {\r\n optional: true,\r\n },\r\n ),\r\n query(\r\n ':leave',\r\n [\r\n style({height: '*'}),\r\n stagger(STAGGER, [animate(TRANSITION, style({height: 0}))]),\r\n ],\r\n {\r\n optional: true,\r\n },\r\n ),\r\n ],\r\n DURATION,\r\n ),\r\n]);\r\n\r\nexport const cuiWidthCollapse = trigger('cuiWidthCollapse', [\r\n transition(\r\n ':enter',\r\n [style({width: 0}), animate(TRANSITION, style({width: '*'}))],\r\n DURATION,\r\n ),\r\n transition(\r\n ':leave',\r\n [style({width: '*'}), animate(TRANSITION, style({width: 0}))],\r\n DURATION,\r\n ),\r\n]);\r\n\r\nexport const cuiWidthCollapseList = trigger('cuiWidthCollapseList', [\r\n transition(\r\n '* => *',\r\n [\r\n query(\r\n ':enter',\r\n [\r\n style({width: 0}),\r\n stagger(STAGGER, [animate(TRANSITION, style({width: '*'}))]),\r\n ],\r\n {\r\n optional: true,\r\n },\r\n ),\r\n query(\r\n ':leave',\r\n [\r\n style({width: '*'}),\r\n stagger(STAGGER, [animate(TRANSITION, style({width: 0}))]),\r\n ],\r\n {\r\n optional: true,\r\n },\r\n ),\r\n ],\r\n DURATION,\r\n ),\r\n]);\r\n\r\nexport const cuiFadeIn = trigger('cuiFadeIn', [\r\n transition(\r\n ':enter',\r\n [style({opacity: 0}), animate(TRANSITION, style({opacity: 1}))],\r\n DURATION,\r\n ),\r\n transition(\r\n ':leave',\r\n [style({opacity: 1}), animate(TRANSITION, style({opacity: 0}))],\r\n DURATION,\r\n ),\r\n]);\r\n\r\nexport const cuiFadeInList = trigger('cuiFadeInList', [\r\n transition(\r\n '* => *',\r\n [\r\n query(\r\n ':enter',\r\n [\r\n style({opacity: 0}),\r\n stagger(STAGGER, [animate(TRANSITION, style({opacity: 1}))]),\r\n ],\r\n {\r\n optional: true,\r\n },\r\n ),\r\n query(\r\n ':leave',\r\n [\r\n style({opacity: 1}),\r\n stagger(STAGGER, [animate(TRANSITION, style({opacity: 0}))]),\r\n ],\r\n {\r\n optional: true,\r\n },\r\n ),\r\n ],\r\n DURATION,\r\n ),\r\n]);\r\n\r\nexport const cuiFadeInTop = trigger('cuiFadeInTop', [\r\n transition(\r\n ':enter',\r\n [\r\n style({transform: 'translateY(-{{start}}px)', opacity: 0}),\r\n animate(TRANSITION, style({transform: 'translateY({{end}})', opacity: 1})),\r\n ],\r\n {params: {end: 0, start: 10, duration: 300}},\r\n ),\r\n transition(\r\n ':leave',\r\n [\r\n style({transform: 'translateY({{end}})', opacity: 1}),\r\n animate(\r\n TRANSITION,\r\n style({transform: 'translateY(-{{start}}px)', opacity: 0}),\r\n ),\r\n ],\r\n {params: {end: 0, start: 10, duration: 300}},\r\n ),\r\n]);\r\n\r\nexport const cuiFadeInBottom = trigger('cuiFadeInBottom', [\r\n transition(\r\n ':enter',\r\n [\r\n style({transform: 'translateY({{start}}px)', opacity: 0}),\r\n animate(TRANSITION, style({transform: 'translateY({{end}})', opacity: 1})),\r\n ],\r\n {params: {end: 0, start: 10, duration: 300}},\r\n ),\r\n transition(\r\n ':leave',\r\n [\r\n style({transform: 'translateY({{end}})', opacity: 1}),\r\n animate(\r\n TRANSITION,\r\n style({transform: 'translateY({{start}}px)', opacity: 0}),\r\n ),\r\n ],\r\n {params: {end: 0, start: 10, duration: 300}},\r\n ),\r\n]);\r\n\r\nexport const cuiDropdownAnimation = trigger('cuiDropdownAnimation', [\r\n transition(\r\n ':enter',\r\n [\r\n style({transform: 'translateY(-{{start}}px)', opacity: 0}),\r\n animate(TRANSITION, style({transform: 'translateY({{end}})', opacity: 1})),\r\n ],\r\n {params: {end: 0, start: 10, duration: 300}},\r\n ),\r\n transition(\r\n ':leave',\r\n [\r\n style({transform: 'translateY({{end}})', opacity: 1}),\r\n animate(\r\n TRANSITION,\r\n style({transform: 'translateY(-{{start}}px)', opacity: 0}),\r\n ),\r\n ],\r\n {params: {end: 0, start: 10, duration: 300}},\r\n ),\r\n]);\r\n\r\nexport const cuiScaleIn = trigger('cuiScaleIn', [\r\n transition(\r\n ':enter',\r\n [\r\n style({transform: 'scale({{start}})'}),\r\n animate('{{duration}}ms {{easing}}', style({transform: 'scale({{end}})'})),\r\n ],\r\n {params: {end: 1, start: 0, duration: 300, easing: 'ease-in-out'}},\r\n ),\r\n transition(\r\n ':leave',\r\n [\r\n style({transform: 'scale({{end}})'}),\r\n animate(TRANSITION, style({transform: 'scale({{start}})'})),\r\n ],\r\n {params: {end: 1, start: 0, duration: 300}},\r\n ),\r\n]);\r\n\r\nexport const cuiPop = trigger('cuiPop', [\r\n transition(\r\n ':enter',\r\n [\r\n style({transform: 'scale({{start}})'}),\r\n animate(TRANSITION, style({transform: 'scale({{middle}})'})),\r\n animate(TRANSITION, style({transform: 'scale({{end}})'})),\r\n ],\r\n {params: {end: 1, middle: 1.1, start: 0, duration: 300}},\r\n ),\r\n transition(\r\n ':leave',\r\n [\r\n style({transform: 'scale({{end}})'}),\r\n animate(TRANSITION, style({transform: 'scale({{middle}})'})),\r\n animate(TRANSITION, style({transform: 'scale({{start}})'})),\r\n ],\r\n {params: {end: 1, middle: 1.1, start: 0, duration: 300}},\r\n ),\r\n]);\r\n\r\nexport const cuiScaleInList = trigger('cuiScaleInList', [\r\n transition(\r\n '* => *',\r\n [\r\n query(\r\n ':enter',\r\n [\r\n style({transform: 'scale({{start}})'}),\r\n stagger(STAGGER, [\r\n animate(TRANSITION, style({transform: 'scale({{end}})'})),\r\n ]),\r\n ],\r\n {optional: true},\r\n ),\r\n query(\r\n ':leave',\r\n [\r\n style({transform: 'scale({{end}})'}),\r\n stagger(STAGGER, [\r\n animate(TRANSITION, style({transform: 'scale({{start}})'})),\r\n ]),\r\n ],\r\n {optional: true},\r\n ),\r\n ],\r\n {params: {end: 1, start: 0, duration: 300}},\r\n ),\r\n]);\r\n\r\nexport const cuiSlideIn = trigger('cuiSlideIn', [\r\n transition(\r\n '* => left',\r\n [\r\n style({transform: 'translateX(-{{start}})'}),\r\n animate(TRANSITION, style({transform: 'translateX({{end}})'})),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n transition(\r\n 'left => *',\r\n [\r\n style({transform: 'translateX({{end}})'}),\r\n animate(TRANSITION, style({transform: 'translateX(-{{start}})'})),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n transition(\r\n '* => right',\r\n [\r\n style({transform: 'translateX({{start}})'}),\r\n animate(TRANSITION, style({transform: 'translateX({{end}})'})),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n transition(\r\n 'right => *',\r\n [\r\n style({transform: 'translateX({{end}})'}),\r\n animate(TRANSITION, style({transform: 'translateX({{start}})'})),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n]);\r\n\r\nexport const cuiSlideInLeft = trigger('cuiSlideInLeft', [\r\n transition(\r\n ':enter',\r\n [\r\n style({transform: 'translateX(-{{start}})'}),\r\n animate(TRANSITION, style({transform: 'translateX({{end}})'})),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n transition(\r\n ':leave',\r\n [\r\n style({transform: 'translateX({{end}})'}),\r\n animate(TRANSITION, style({transform: 'translateX(-{{start}})'})),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n]);\r\n\r\nexport const cuiSlideInLeftList = trigger('cuiSlideInLeftList', [\r\n transition(\r\n '* => *',\r\n [\r\n query(\r\n ':enter',\r\n [\r\n style({transform: 'translateX(-{{start}})'}),\r\n stagger(STAGGER, [\r\n animate(TRANSITION, style({transform: 'translateX({{end}})'})),\r\n ]),\r\n ],\r\n {optional: true},\r\n ),\r\n query(\r\n ':leave',\r\n [\r\n style({transform: 'translateX({{end}})'}),\r\n stagger(STAGGER, [\r\n animate(TRANSITION, style({transform: 'translateX(-{{start}})'})),\r\n ]),\r\n ],\r\n {optional: true},\r\n ),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n]);\r\n\r\nexport const cuiSlideInRight = trigger('cuiSlideInRight', [\r\n transition(\r\n ':enter',\r\n [\r\n style({transform: 'translateX({{start}})'}),\r\n animate(TRANSITION, style({transform: 'translateX({{end}})'})),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n transition(\r\n ':leave',\r\n [\r\n style({transform: 'translateX({{end}})'}),\r\n animate(TRANSITION, style({transform: 'translateX({{start}})'})),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n]);\r\n\r\nexport const cuiSlideInRightList = trigger('cuiSlideInRightList', [\r\n transition(\r\n '* => *',\r\n [\r\n query(\r\n ':enter',\r\n [\r\n style({transform: 'translateX({{start}})'}),\r\n stagger(STAGGER, [\r\n animate(TRANSITION, style({transform: 'translateX({{end}})'})),\r\n ]),\r\n ],\r\n {optional: true},\r\n ),\r\n query(\r\n ':leave',\r\n [\r\n style({transform: 'translateX({{end}})'}),\r\n stagger(STAGGER, [\r\n animate(TRANSITION, style({transform: 'translateX({{start}})'})),\r\n ]),\r\n ],\r\n {optional: true},\r\n ),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n]);\r\n\r\nexport const cuiSlideInTop = trigger('cuiSlideInTop', [\r\n transition(\r\n ':enter',\r\n [\r\n style({transform: 'translate3d(0,{{start}},0)', pointerEvents: 'none'}),\r\n animate(TRANSITION, style({transform: 'translate3d(0,{{end}},0)'})),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n transition(\r\n ':leave',\r\n [\r\n style({transform: 'translate3d(0,{{end}},0)'}),\r\n animate(TRANSITION, style({transform: 'translate3d(0,{{start}},0)'})),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n]);\r\n\r\nexport const cuiSlideInTopList = trigger('cuiSlideInTopList', [\r\n transition(\r\n '* => *',\r\n [\r\n query(\r\n ':enter',\r\n [\r\n style({transform: 'translateY({{start}})'}),\r\n stagger(STAGGER, [\r\n animate(TRANSITION, style({transform: 'translateY({{end}})'})),\r\n ]),\r\n ],\r\n {optional: true},\r\n ),\r\n query(\r\n ':leave',\r\n [\r\n style({transform: 'translateY({{end}})'}),\r\n stagger(STAGGER, [\r\n animate(TRANSITION, style({transform: 'translateY({{start}})'})),\r\n ]),\r\n ],\r\n {optional: true},\r\n ),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n]);\r\n\r\nexport const cuiSlideInBottom = trigger('cuiSlideInBottom', [\r\n transition(\r\n ':enter',\r\n [\r\n style({transform: 'translateY(-{{start}})'}),\r\n animate(TRANSITION, style({transform: 'translateY({{end}})'})),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n transition(\r\n ':leave',\r\n [\r\n style({transform: 'translateY({{end}})'}),\r\n animate(TRANSITION, style({transform: 'translateY(-{{start}})'})),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n]);\r\n\r\nexport const cuiSlideInBottomList = trigger('cuiSlideInBottomList', [\r\n transition(\r\n '* => *',\r\n [\r\n query(\r\n ':enter',\r\n [\r\n style({transform: 'translateY(-{{start}})'}),\r\n stagger(STAGGER, [\r\n animate(TRANSITION, style({transform: 'translateY({{end}})'})),\r\n ]),\r\n ],\r\n {optional: true},\r\n ),\r\n query(\r\n ':leave',\r\n [\r\n style({transform: 'translateY({{end}})'}),\r\n stagger(STAGGER, [\r\n animate(TRANSITION, style({transform: 'translateY(-{{start}})'})),\r\n ]),\r\n ],\r\n {optional: true},\r\n ),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n]);","import {Injectable} from '@angular/core';\r\nimport type {CuiPortalItem} from '../../types';\r\nimport {BehaviorSubject} from 'rxjs';\r\n\r\n/**\r\n * Service for displaying hints/tooltips\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CuiTooltipService extends BehaviorSubject<readonly CuiPortalItem[]> {\r\n constructor() {\r\n super([]);\r\n }\r\n\r\n public add(directive: CuiPortalItem): void {\r\n this.next(this.value.concat(directive));\r\n }\r\n\r\n public remove(directive: CuiPortalItem): void {\r\n if (this.value.includes(directive)) {\r\n this.next(this.value.filter((hint) => hint !== directive));\r\n }\r\n }\r\n}\r\n","import {NgForOf} from '@angular/common';\r\nimport type {OnInit} from '@angular/core';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n inject,\r\n} from '@angular/core';\r\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\r\nimport {CuiActiveZone} from '@cuby-ui/cdk';\r\nimport {cuiParentAnimation} from '../../animations';\r\nimport type {CuiPortalItem} from '../../types';\r\nimport { PolymorpheusOutlet, PolymorpheusTemplate } from '@taiga-ui/polymorpheus';\r\n\r\nimport {CuiTooltipService} from './tooltip.service';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'cui-tooltips',\r\n imports: [NgForOf, PolymorpheusTemplate, CuiActiveZone, PolymorpheusOutlet],\r\n templateUrl: './tooltips.template.html',\r\n styleUrls: ['./tooltips.style.scss'],\r\n // So that we do not force OnPush on custom hints\r\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n animations: [cuiParentAnimation],\r\n host: {\r\n 'aria-live': 'polite',\r\n },\r\n})\r\nexport class CuiTooltips implements OnInit {\r\n private readonly hints$ = inject(CuiTooltipService);\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly cdr = inject(ChangeDetectorRef);\r\n\r\n protected hints: readonly CuiPortalItem[] = [];\r\n\r\n public ngOnInit(): void {\r\n // Due to this view being parallel to app content, `markForCheck` from `async` pipe\r\n // can happen after view was checked, so calling `detectChanges` instead\r\n this.hints$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((hints) => {\r\n this.hints = hints;\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n}\r\n","<div\r\n *ngFor=\"let hint of hints\"\r\n role=\"tooltip\"\r\n @cuiParentAnimation\r\n [cuiActiveZoneParent]=\"hint.activeZone || null\"\r\n\r\n>\r\n <ng-container *polymorpheusOutlet=\"hint.component; context: {$implicit: hint}\" />\r\n</div>\r\n","import type { OnInit } from '@angular/core';\r\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { CuiDestroyService } from '@cuby-ui/cdk';\r\nimport { takeUntil } from 'rxjs';\r\n\r\nimport { CuiThemeService } from '../../services';\r\nimport { CUI_ROOT_SELECTOR } from './root.options';\r\n\r\n@Component({\r\n selector: CUI_ROOT_SELECTOR,\r\n templateUrl: './root.template.html',\r\n styleUrls: ['./root.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [CuiDestroyService],\r\n})\r\nexport class CuiRootComponent implements OnInit {\r\n private readonly document = inject(DOCUMENT);\r\n private readonly theme$ = inject(CuiThemeService);\r\n private readonly destroy$ = inject(CuiDestroyService);\r\n\r\n public ngOnInit(): void {\r\n this.initThemeSubscription();\r\n }\r\n\r\n private initThemeSubscription(): void {\r\n this.theme$\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(theme => this.document.documentElement.setAttribute('cuiTheme', theme));\r\n }\r\n}\r\n","<div class=\"c-content\">\r\n <ng-content />\r\n</div>\r\n<cui-dialogs />\r\n<cui-alerts />\r\n<cui-tooltips />\r\n","import type { OnInit } from '@angular/core';\r\nimport { HostBinding, HostListener, Type } from '@angular/core';\r\nimport { ChangeDetectionStrategy, Component, inject, TemplateRef, ElementRef } from '@angular/core';\r\nimport type { CuiValueOf } from '@cuby-ui/cdk';\r\nimport { CuiFocusTrapDirective } from '@cuby-ui/cdk';\r\n\r\nimport type { CuiDialogSize } from './dialog.interfaces';\r\nimport { CUI_DIALOG_CONTEXT } from './dialog.tokens';\r\n\r\n// TODO: сделать структурную директиву\r\nconst ContentType = {\r\n String: 'string',\r\n Template: 'template',\r\n Component: 'component'\r\n} as const;\r\n\r\ntype IContentType = CuiValueOf<typeof ContentType>;\r\n\r\n@Component({\r\n selector: 'cui-dialog',\r\n templateUrl: './dialog.template.html',\r\n styleUrls: ['./dialog.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n hostDirectives: [CuiFocusTrapDirective]\r\n})\r\nexport class CuiDialogComponent implements OnInit {\r\n protected readonly element = inject(ElementRef).nativeElement as HTMLElement;\r\n protected readonly context = inject(CUI_DIALOG_CONTEXT);\r\n\r\n protected readonly LAST_OF_TYPE_SELECTOR = ':last-of-type';\r\n\r\n protected readonly ContentType = ContentType;\r\n\r\n protected contentType: IContentType = ContentType.Component;\r\n\r\n @HostBinding('attr.data-size')\r\n protected get size(): CuiDialogSize {\r\n return this.context.size;\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.initContentType();\r\n }\r\n\r\n protected get contentTemplateRef(): TemplateRef<unknown> {\r\n return this.context.content as TemplateRef<unknown>;\r\n }\r\n\r\n protected get componentType(): Type<unknown> {\r\n return this.context.content as Type<unknown>;\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event'])\r\n protected onEscape(): void {\r\n if (!this.context.dismissible) {\r\n return\r\n }\r\n\r\n if (!this.element.matches(this.LAST_OF_TYPE_SELECTOR)) {\r\n return;\r\n }\r\n\r\n this.context.completeWith();\r\n }\r\n\r\n private initContentType(): void {\r\n const content = this.context.content;\r\n\r\n switch (true) {\r\n case (typeof content === 'string'):\r\n this.contentType = ContentType.String;\r\n\r\n return;\r\n\r\n case (content instanceof TemplateRef):\r\n this.contentType = ContentType.Template;\r\n\r\n return;\r\n }\r\n }\r\n}\r\n","<ng-container [ngSwitch]=\"contentType\">\r\n <ng-container *ngSwitchCase=\"ContentType.String\">\r\n {{ context.content }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"ContentType.Template\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplateRef; context: context\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"ContentType.Component\">\r\n <div class=\"c-component-container\">\r\n <ng-container *ngComponentOutlet=\"componentType\"></ng-container>\r\n </div>\r\n </ng-container>\r\n</ng-container>\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'cui-dialog-actions',\r\n templateUrl: './dialog-actions.template.html',\r\n styleUrls: ['./dialog-actions.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiDialogActionsComponent {\r\n}\r\n","<div class=\"c-divider\"></div>\r\n<div class=\"c-content\">\r\n <ng-content />\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport type { PolymorpheusContent } from '@taiga-ui/polymorpheus';\r\nimport { PolymorpheusContext } from '@taiga-ui/polymorpheus/classes/context';\r\n\r\n@Component({\r\n selector: 'header[cuiDialogHeader][heading]',\r\n templateUrl: './dialog-header.template.html',\r\n styleUrls: ['./dialog-header.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiDialogHeaderComponent {\r\n @Input()\r\n public heading!: PolymorpheusContent;\r\n\r\n @Input()\r\n public headingContext?: PolymorpheusContext<any>['$implicit'];\r\n\r\n @Input()\r\n public subheading?: string;\r\n\r\n @Output()\r\n public readonly closed = new EventEmitter<MouseEvent>();\r\n\r\n protected onClose(event: MouseEvent): void {\r\n this.closed.emit(event);\r\n }\r\n}\r\n","<div class=\"c-heading\">\r\n <ng-container *polymorpheusOutlet=\"heading as heading; context: headingContext\">{{ heading }}</ng-container>\r\n</div>\r\n<button\r\n cuiButton\r\n type=\"button\"\r\n appearance=\"ghost\"\r\n icon=\"cuiIconClearSm\"\r\n class=\"c-button\"\r\n (click)=\"onClose($event)\"\r\n></button>\r\n<span *ngIf=\"subheading\">{{ subheading }}</span>\r\n<ng-content />\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CuiLetDirective } from '@cuby-ui/cdk';\r\n\r\nimport { CuiButtonModule } from '../button';\r\nimport { CuiDialogComponent } from './dialog.component';\r\nimport { CuiDialogsComponent } from './dialogs.component';\r\nimport { CuiDialogActionsComponent } from './dialog-actions/dialog-actions.component';\r\nimport { CuiDialogHeaderComponent } from './dialog-header/dialog-header.component';\r\nimport { PolymorpheusOutlet } from '@taiga-ui/polymorpheus';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n PolymorpheusOutlet,\r\n CuiLetDirective,\r\n CuiButtonModule\r\n ],\r\n declarations: [\r\n CuiDialogComponent,\r\n CuiDialogsComponent,\r\n CuiDialogActionsComponent,\r\n CuiDialogHeaderComponent\r\n ],\r\n exports: [\r\n CuiDialogComponent,\r\n CuiDialogsComponent,\r\n CuiDialogActionsComponent,\r\n CuiDialogHeaderComponent\r\n ]\r\n})\r\nexport class CuiDialogModule {\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { CuiPopoverService } from '@cuby-ui/cdk';\r\n\r\nimport { CUI_DIALOG_OPTIONS, CUI_DIALOGS } from './dialog.tokens';\r\nimport { CuiDialogComponent } from './dialog.component';\r\nimport type { CuiDialogOptions } from './dialog.interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n useFactory: () => new CuiDialogService(CUI_DIALOGS, CuiDialogComponent, inject(CUI_DIALOG_OPTIONS))\r\n})\r\nexport class CuiDialogService extends CuiPopoverService<CuiDialogOptions> {\r\n}\r\n","import {DOCUMENT} from '@angular/common';\r\nimport {inject} from '@angular/core';\r\nimport {cuiCreateTokenFromFactory} from '@cuby-ui/cdk';\r\n\r\nexport const CUI_REDUCED_MOTION = cuiCreateTokenFromFactory(\r\n () =>\r\n inject(DOCUMENT).defaultView?.matchMedia?.('(prefers-reduced-motion: reduce)')\r\n .matches ?? false,\r\n);\r\n","import {inject} from '@angular/core';\r\nimport {cuiCreateTokenFromFactory} from '@cuby-ui/cdk';\r\n\r\nimport {CUI_REDUCED_MOTION} from './reduced-motion';\r\n\r\n/**\r\n * Speed of all Taiga UI animations. 1 equals 300ms.\r\n */\r\nexport const CUI_ANIMATIONS_SPEED = cuiCreateTokenFromFactory<number>(() =>\r\n inject(CUI_REDUCED_MOTION) ? 0 : 1,\r\n);\r\n","import type {Provider, Type} from '@angular/core';\r\nimport {inject} from '@angular/core';\r\nimport { CUI_WINDOW, cuiCreateTokenFromFactory, cuiProvide } from '@cuby-ui/cdk';\r\nimport type {CuiRectAccessor} from '../classes';\r\n\r\n/**\r\n * Viewport accessor\r\n */\r\nexport const CUI_VIEWPORT = cuiCreateTokenFromFactory<CuiRectAccessor>(() => {\r\n const win = inject(CUI_WINDOW);\r\n\r\n return {\r\n type: 'viewport',\r\n getClientRect() {\r\n const rect = {\r\n top: 0,\r\n left: 0,\r\n right: win.innerWidth,\r\n bottom: win.innerHeight,\r\n width: win.innerWidth,\r\n height: win.innerHeight,\r\n x: 0,\r\n y: 0,\r\n };\r\n\r\n return {\r\n ...rect,\r\n toJSON: () => JSON.stringify(rect),\r\n };\r\n },\r\n };\r\n});\r\n\r\nexport function cuiAsViewport(accessor: Type<CuiRectAccessor>): Provider {\r\n return cuiProvide(CUI_VIEWPORT, accessor);\r\n}\r\n","export function cuiRemoveSpaces(value: string): string {\r\n return value.replace(/\\s+/g, '');\r\n}\r\n","export function cuiReplace(value: string, search: string, replace: string): string {\r\n const regex = new RegExp(search.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'g');\r\n\r\n return value.replace(regex, replace);\r\n}\r\n","import {cuiGetElementObscures} from '@cuby-ui/cdk';\r\n\r\n/**\r\n * @internal\r\n */\r\nexport function cuiIsObscured(el: HTMLElement, exceptSelector = 'cui-hints'): boolean {\r\n return !!cuiGetElementObscures(el)?.some((el) => !el.closest(exceptSelector));\r\n}\r\n","export function cuiOverrideOptions<T>(\r\n override: Partial<T>,\r\n fallback: T,\r\n): (directive: T | null, options: T | null) => T {\r\n return (directive, options) => {\r\n const result: T = directive || {...(options || fallback)};\r\n\r\n Object.keys(override).forEach((key) => {\r\n // Update directive props with new defaults before inputs are processed\r\n (result as Record<string, unknown>)[key] = override[key as keyof T];\r\n });\r\n\r\n return result;\r\n };\r\n}\r\n","import type {AnimationOptions} from '@angular/animations';\r\n\r\nexport const CUI_ANIMATIONS_DEFAULT_DURATION = 300;\r\n\r\nexport function cuiToAnimationOptions(speed: number, easing?: string): AnimationOptions {\r\n return {\r\n value: '',\r\n params: {\r\n duration: cuiGetDuration(speed),\r\n easing,\r\n },\r\n } as unknown as AnimationOptions;\r\n}\r\n\r\nexport function cuiGetDuration(speed: number): number {\r\n return speed && CUI_ANIMATIONS_DEFAULT_DURATION / speed;\r\n}\r\n","import type {Type} from '@angular/core';\r\nimport {cuiCreateTokenFromFactory} from '@cuby-ui/cdk';\r\n\r\nimport {CuiTooltipComponent} from './tooltip.component';\r\n\r\n/**\r\n * A component to display a tooltip\r\n */\r\nexport const CUI_TOOLTIP_COMPONENT = cuiCreateTokenFromFactory<Type<unknown>>(\r\n () => CuiTooltipComponent,\r\n);\r\n","import {Directive} from '@angular/core';\r\nimport {CuiDriverDirective} from '../../classes';\r\n\r\n@Directive({\r\n standalone: true,\r\n})\r\nexport class CuiTooltipDriver extends CuiDriverDirective {\r\n public readonly type = 'hint';\r\n}\r\n","import type {FactoryProvider, OnChanges} from '@angular/core';\r\nimport {Directive, inject, Input, Optional, Self, SkipSelf} from '@angular/core';\r\nimport { cuiCreateToken, cuiProvide } from '@cuby-ui/cdk';\r\nimport {cuiOverrideOptions} from '../../utils';\r\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\r\nimport {Subject} from 'rxjs';\r\n\r\nexport type CuiTooltipDirection =\r\n | 'bottom-left'\r\n | 'bottom-right'\r\n | 'bottom'\r\n | 'left-bottom'\r\n | 'left-top'\r\n | 'left'\r\n | 'right-bottom'\r\n | 'right-top'\r\n | 'right'\r\n | 'top-left'\r\n | 'top-right'\r\n | 'top';\r\n\r\nexport const CUI_TOOLTIP_DIRECTIONS: readonly CuiTooltipDirection[] = [\r\n 'top',\r\n 'top-left',\r\n 'top-right',\r\n 'bottom',\r\n 'bottom-left',\r\n 'bottom-right',\r\n 'left-top',\r\n 'left',\r\n 'left-bottom',\r\n 'right-top',\r\n 'right',\r\n 'right-bottom',\r\n];\r\n\r\nexport interface CuiTooltipOptions {\r\n readonly appearance: string;\r\n readonly direction: CuiTooltipDirection | CuiTooltipDirection[];\r\n readonly hideDelay: number;\r\n readonly icon: string;\r\n readonly showDelay: number;\r\n}\r\n\r\n/** Default values for tooltip options */\r\nexport const CUI_TOOLTIP_DEFAULT_OPTIONS: CuiTooltipOptions = {\r\n direction: 'top',\r\n showDelay: 500,\r\n hideDelay: 200,\r\n appearance: '',\r\n /** TODO @deprecated use {@link CUI_TOOLTIP_OPTIONS} instead **/\r\n icon: '@cui.circle-help',\r\n};\r\n\r\n/**\r\n * Default parameters for tooltip directive\r\n */\r\nexport const CUI_TOOLTIP_OPTIONS = cuiCreateToken(CUI_TOOLTIP_DEFAULT_OPTIONS);\r\n\r\nexport const cuiTooltipOptionsProvider: (\r\n options: Partial<CuiTooltipOptions>,\r\n) => FactoryProvider = (override: Partial<CuiTooltipOptions>) => ({\r\n provide: CUI_TOOLTIP_OPTIONS,\r\n deps: [\r\n [new Optional(), new Self(), CuiTooltipOptionsDirective],\r\n [new Optional(), new SkipSelf(), CUI_TOOLTIP_OPTIONS],\r\n ],\r\n useFactory: cuiOverrideOptions(override, CUI_TOOLTIP_DEFAULT_OPTIONS),\r\n});\r\n\r\n/**\r\n * @deprecated: drop in 5.0\r\n */\r\n@Directive({\r\n standalone: true,\r\n selector: '[cuiTooltipContent]',\r\n providers: [cuiProvide(CUI_TOOLTIP_OPTIONS, CuiTooltipOptionsDirective)],\r\n})\r\nexport class CuiTooltipOptionsDirective implements CuiTooltipOptions, OnChanges {\r\n private readonly options = inject(CUI_TOOLTIP_OPTIONS, {skipSelf: true});\r\n\r\n @Input('cuiTooltipContent')\r\n public content: PolymorpheusContent;\r\n\r\n @Input('cuiTooltipDirection')\r\n public direction = this.options.direction;\r\n\r\n @Input('cuiTooltipAppearance')\r\n public appearance = this.options.appearance;\r\n\r\n @Input('cuiTooltipShowDelay')\r\n public showDelay = this.options.showDelay;\r\n\r\n @Input('cuiTooltipHideDelay')\r\n public hideDelay = this.options.hideDelay;\r\n\r\n public icon = this.options.icon;\r\n\r\n public readonly change$ = new Subject<void>();\r\n\r\n public ngOnChanges(): void {\r\n this.change$.next();\r\n }\r\n}\r\n","import {Directive, inject, Input} from '@angular/core';\r\nimport {CuiHoveredService, CUI_IS_MOBILE, cuiInjectElement} from '@cuby-ui/cdk';\r\nimport {cuiAsDriver, CuiDriver} from '../../classes';\r\nimport {cuiIsObscured} from '../../utils';\r\nimport {\r\n delay,\r\n filter,\r\n map,\r\n merge,\r\n of,\r\n repeat,\r\n Subject,\r\n switchMap,\r\n takeUntil,\r\n tap,\r\n} from 'rxjs';\r\n\r\nimport type {CuiTooltipOptions} from './tooltip-options.directive';\r\nimport {CUI_TOOLTIP_OPTIONS} from './tooltip-options.directive';\r\n\r\n@Directive({\r\n standalone: true,\r\n providers: [cuiAsDriver(CuiTooltipHover), CuiHoveredService],\r\n exportAs: 'cuiTooltipHover',\r\n})\r\nexport class CuiTooltipHover extends CuiDriver {\r\n private readonly isMobile = inject(CUI_IS_MOBILE);\r\n private readonly el = cuiInjectElement();\r\n private readonly hovered$ = inject(CuiHoveredService);\r\n private readonly options = inject(CUI_TOOLTIP_OPTIONS);\r\n private visible = false;\r\n private readonly toggle$ = new Subject<boolean>();\r\n private readonly stream$ = merge(\r\n this.toggle$.pipe(\r\n switchMap((visible) =>\r\n this.isMobile\r\n ? of(visible)\r\n : of(visible).pipe(delay(visible ? 0 : this.cuiTooltipHideDelay)),\r\n ),\r\n takeUntil(this.hovered$),\r\n repeat(),\r\n ),\r\n this.hovered$.pipe(\r\n switchMap((visible) =>\r\n this.isMobile\r\n ? of(visible)\r\n : of(visible).pipe(\r\n delay(visible ? this.cuiTooltipShowDelay : this.cuiTooltipHideDelay),\r\n ),\r\n ),\r\n takeUntil(this.toggle$),\r\n repeat(),\r\n ),\r\n ).pipe(\r\n filter(() => this.enabled),\r\n map(\r\n (value) =>\r\n value &&\r\n (this.el.hasAttribute('cuiTooltipPointer') || !cuiIsObscured(this.el)),\r\n ),\r\n tap((visible) => {\r\n this.visible = visible;\r\n }),\r\n );\r\n\r\n private readonly parent = inject(CuiTooltipHover, {\r\n optional: true,\r\n skipSelf: true,\r\n });\r\n\r\n @Input()\r\n public cuiTooltipShowDelay: CuiTooltipOptions['showDelay'] = this.options.showDelay;\r\n\r\n @Input()\r\n public cuiTooltipHideDelay: CuiTooltipOptions['hideDelay'] = this.options.hideDelay;\r\n\r\n public readonly type = 'hint';\r\n\r\n public enabled = true;\r\n\r\n constructor() {\r\n super((subscriber) => this.stream$.subscribe(subscriber));\r\n }\r\n\r\n public toggle(visible = !this.visible): void {\r\n this.toggle$.next(visible);\r\n this.parent?.toggle(visible);\r\n }\r\n}\r\n","import {Directive, EventEmitter, inject, Input, Output} from '@angular/core';\r\nimport {EMPTY_CLIENT_RECT, CUI_IS_MOBILE, cuiPure } from '@cuby-ui/cdk';\r\nimport {\r\n cuiFallbackAccessor,\r\n CuiPositionAccessor,\r\n CuiRectAccessor,\r\n} from '../../classes';\r\nimport {CUI_VIEWPORT} from '../../tokens';\r\nimport type {CuiPoint} from '../../types';\r\n\r\nimport {CuiTooltipDirective} from './tooltip.directive';\r\nimport type {CuiTooltipDirection, CuiTooltipOptions} from './tooltip-options.directive';\r\nimport {CUI_TOOLTIP_DIRECTIONS, CUI_TOOLTIP_OPTIONS} from './tooltip-options.directive';\r\n\r\nconst GAP = 8;\r\nconst ARROW_OFFSET = 24;\r\nconst TOP = 0;\r\nconst LEFT = 1;\r\n\r\n@Directive({\r\n standalone: true,\r\n})\r\nexport class CuiTooltipPosition extends CuiPositionAccessor {\r\n private readonly offset = inject(CUI_IS_MOBILE) ? 16 : 5;\r\n private readonly viewport = inject(CUI_VIEWPORT);\r\n private readonly accessor = cuiFallbackAccessor<CuiRectAccessor>('hint')(\r\n inject<any>(CuiRectAccessor),\r\n inject(CuiTooltipDirective),\r\n );\r\n\r\n private readonly points: Record<CuiTooltipDirection, [number, number]> =\r\n CUI_TOOLTIP_DIRECTIONS.reduce(\r\n (acc, direction) => ({...acc, [direction]: [0, 0]}),\r\n {} as Record<CuiTooltipDirection, [number, number]>,\r\n );\r\n\r\n @Input('cuiTooltipDirection')\r\n public direction: CuiTooltipOptions['direction'] = inject(CUI_TOOLTIP_OPTIONS).direction;\r\n\r\n @Output('cuiTooltipDirectionChange')\r\n public readonly directionChange = new EventEmitter<CuiTooltipDirection>();\r\n\r\n public readonly type = 'hint';\r\n\r\n @cuiPure\r\n public emitDirection(direction: CuiTooltipDirection): void {\r\n this.directionChange.emit(direction);\r\n }\r\n\r\n public getPosition(rect: DOMRect, el?: HTMLElement): CuiPoint {\r\n const width = el?.clientWidth ?? rect.width;\r\n const height = el?.clientHeight ?? rect.height;\r\n const hostRect = this.accessor.getClientRect() ?? EMPTY_CLIENT_RECT;\r\n const leftCenter = hostRect.left + hostRect.width / 2;\r\n const topCenter = hostRect.top + hostRect.height / 2;\r\n\r\n this.points['top-left'][TOP] = hostRect.top - height - this.offset;\r\n this.points['top-left'][LEFT] = leftCenter - width + ARROW_OFFSET;\r\n this.points.top[TOP] = this.points['top-left'][TOP];\r\n this.points.top[LEFT] = leftCenter - width / 2;\r\n this.points['top-right'][TOP] = this.points['top-left'][TOP];\r\n this.points['top-right'][LEFT] = leftCenter - ARROW_OFFSET;\r\n\r\n this.points['bottom-left'][TOP] = hostRect.bottom + this.offset;\r\n this.points['bottom-left'][LEFT] = this.points['top-left'][LEFT];\r\n this.points.bottom[TOP] = this.points['bottom-left'][TOP];\r\n this.points.bottom[LEFT] = this.points.top[LEFT];\r\n this.points['bottom-right'][TOP] = this.points['bottom-left'][TOP];\r\n this.points['bottom-right'][LEFT] = this.points['top-right'][LEFT];\r\n\r\n this.points['left-top'][TOP] = topCenter - height + ARROW_OFFSET;\r\n this.points['left-top'][LEFT] = hostRect.left - width - this.offset;\r\n this.points.left[TOP] = topCenter - height / 2;\r\n this.points.left[LEFT] = this.points['left-top'][LEFT];\r\n this.points['left-bottom'][TOP] = topCenter - ARROW_OFFSET;\r\n this.points['left-bottom'][LEFT] = this.points['left-top'][LEFT];\r\n\r\n this.points['right-top'][TOP] = this.points['left-top'][TOP];\r\n this.points['right-top'][LEFT] = hostRect.right + this.offset;\r\n this.points.right[TOP] = this.points.left[TOP];\r\n this.points.right[LEFT] = this.points['right-top'][LEFT];\r\n this.points['right-bottom'][TOP] = this.points['left-bottom'][TOP];\r\n this.points['right-bottom'][LEFT] = this.points['right-top'][LEFT];\r\n\r\n const priorityDirections = Array.isArray(this.direction)\r\n ? this.direction\r\n : [this.direction];\r\n const sortedDirections = priorityDirections.concat(CUI_TOOLTIP_DIRECTIONS);\r\n\r\n const direction = sortedDirections.find((direction) =>\r\n this.checkPosition(this.points[direction], width, height),\r\n );\r\n\r\n this.emitDirection(direction || this.fallback);\r\n\r\n return this.points[direction || this.fallback];\r\n }\r\n\r\n private get fallback(): CuiTooltipDirection {\r\n return this.points.top[TOP] >\r\n this.viewport.getClientRect().bottom - this.points.bottom[TOP]\r\n ? 'top'\r\n : 'bottom';\r\n }\r\n\r\n private checkPosition([top, left]: CuiPoint, width: number, height: number): boolean {\r\n const viewport = this.viewport.getClientRect();\r\n\r\n return (\r\n top > GAP &&\r\n left > GAP &&\r\n top + height < viewport.bottom - GAP &&\r\n left + width < viewport.right - GAP\r\n );\r\n }\r\n}\r\n","import type {OnDestroy} from '@angular/core';\r\nimport {Directive, inject, INJECTOR, Input, signal} from '@angular/core';\r\nimport {cuiInjectElement, CuiActiveZone} from '@cuby-ui/cdk';\r\nimport type {CuiRectAccessor, CuiVehicle } from '../../classes';\r\nimport {cuiAsRectAccessor, cuiAsVehicle } from '../../classes';\r\nimport type {CuiPortalItem} from '../../types';\r\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\r\nimport {PolymorpheusComponent} from '@taiga-ui/polymorpheus';\r\n\r\nimport {CUI_TOOLTIP_COMPONENT} from './tooltip.providers';\r\nimport {CuiTooltipService} from './tooltip.service';\r\nimport {CuiTooltipDriver} from './tooltip-driver.directive';\r\nimport {CuiTooltipHover} from './tooltip-hover.directive';\r\nimport {CUI_TOOLTIP_OPTIONS} from './tooltip-options.directive';\r\nimport {CuiTooltipPosition} from './tooltip-position.directive';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[cuiTooltip]:not(ng-container):not(ng-template)',\r\n providers: [\r\n cuiAsRectAccessor(CuiTooltipDirective),\r\n cuiAsVehicle(CuiTooltipDirective),\r\n {\r\n provide: PolymorpheusComponent,\r\n deps: [CUI_TOOLTIP_COMPONENT, INJECTOR],\r\n useClass: PolymorpheusComponent,\r\n },\r\n ],\r\n hostDirectives: [\r\n CuiTooltipDriver,\r\n {\r\n directive: CuiTooltipHover,\r\n inputs: ['cuiTooltipHideDelay', 'cuiTooltipShowDelay'],\r\n },\r\n {\r\n directive: CuiTooltipPosition,\r\n inputs: ['cuiTooltipDirection'],\r\n outputs: ['cuiTooltipDirectionChange'],\r\n },\r\n ],\r\n})\r\nexport class CuiTooltipDirective<C>\r\n implements OnDestroy, CuiPortalItem<C>, CuiRectAccessor, CuiVehicle\r\n{\r\n private readonly service = inject(CuiTooltipService);\r\n\r\n @Input('cuiTooltipContext')\r\n public context?: C;\r\n\r\n @Input('cuiTooltipAppearance')\r\n public appearance = inject(CUI_TOOLTIP_OPTIONS).appearance;\r\n\r\n public content = signal<PolymorpheusContent<C>>(null);\r\n public component = inject(PolymorpheusComponent<unknown>);\r\n public readonly el = cuiInjectElement();\r\n public readonly activeZone? = inject(CuiActiveZone, {optional: true});\r\n public readonly type = 'hint';\r\n\r\n @Input()\r\n public set cuiTooltip(content: PolymorpheusContent<C>) {\r\n this.content.set(content);\r\n\r\n if (!content) {\r\n this.toggle(false);\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.toggle(false);\r\n }\r\n\r\n public getClientRect(): DOMRect {\r\n return this.el.getBoundingClientRect();\r\n }\r\n\r\n public toggle(show: boolean): void {\r\n if (show && this.content()) {\r\n this.service.add(this);\r\n } else {\r\n this.service.remove(this);\r\n }\r\n }\r\n}\r\n","import {Directive} from '@angular/core';\r\nimport {EMPTY_CLIENT_RECT, cuiPointToClientRect} from '@cuby-ui/cdk';\r\nimport type {CuiRectAccessor} from '../../classes';\r\nimport {cuiAsDriver, cuiAsRectAccessor} from '../../classes';\r\n\r\nimport {CuiTooltipHover} from './tooltip-hover.directive';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[cuiTooltip][cuiTooltipPointer]',\r\n providers: [cuiAsRectAccessor(CuiTooltipPointer), cuiAsDriver(CuiTooltipPointer)],\r\n host: {\r\n '(mousemove.silent)': 'onMove($event)',\r\n },\r\n})\r\nexport class CuiTooltipPointer extends CuiTooltipHover implements CuiRectAccessor {\r\n private currentRect = EMPTY_CLIENT_RECT;\r\n\r\n public getClientRect(): DOMRect {\r\n return this.currentRect;\r\n }\r\n\r\n protected onMove({clientX, clientY}: MouseEvent): void {\r\n this.currentRect = cuiPointToClientRect(clientX, clientY);\r\n }\r\n}\r\n","import type {WritableSignal} from '@angular/core';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Directive,\r\n inject,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport type {CuiContext} from '@cuby-ui/cdk';\r\nimport {cuiParentAnimation} from '../../animations';\r\nimport type {CuiPortalItem} from '../../types';\r\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\r\nimport {\r\n injectContext,\r\n PolymorpheusComponent,\r\n PolymorpheusOutlet,\r\n} from '@taiga-ui/polymorpheus';\r\n\r\nimport {CuiTooltipDirective} from './tooltip.directive';\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [PolymorpheusOutlet],\r\n template: '<ng-container *polymorpheusOutlet=\"context.$implicit.content()\" />',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [cuiParentAnimation],\r\n host: {'[@cuiParentAnimation]': ''},\r\n})\r\nexport class CuiTooltipUnstyledComponent {\r\n protected readonly context =\r\n injectContext<\r\n CuiContext<CuiPortalItem & {content: WritableSignal<PolymorpheusContent>}>\r\n >();\r\n}\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: 'ng-template[cuiTooltip]',\r\n})\r\nexport class CuiTooltipUnstyled<C> {\r\n constructor() {\r\n const hint = inject(CuiTooltipDirective<C>);\r\n\r\n hint.component = new PolymorpheusComponent(CuiTooltipUnstyledComponent);\r\n hint.content.set(inject(TemplateRef<C>));\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, forwardRef, inject, signal } from '@angular/core';\r\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\r\nimport {EMPTY_CLIENT_RECT,CuiHoveredService, CuiContext} from '@cuby-ui/cdk';\r\nimport {cuiFadeIn, cuiScaleIn} from '../../animations';\r\nimport {\r\n cuiPositionAccessorFor,\r\n CuiRectAccessor,\r\n cuiRectAccessorFor,\r\n} from '../../classes';\r\nimport {CuiPositionService, CuiVisualViewportService} from '../../services';\r\nimport {CUI_ANIMATIONS_SPEED, CUI_VIEWPORT} from '../../tokens';\r\nimport {cuiIsObscured, cuiToAnimationOptions} from '../../utils';\r\nimport {injectContext, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\r\nimport {map, takeWhile} from 'rxjs';\r\n\r\nimport {CuiTooltipDirective} from './tooltip.directive';\r\nimport {CuiTooltipHover} from './tooltip-hover.directive';\r\nimport {CuiTooltipPointer} from './tooltip-pointer.directive';\r\nimport {CuiTooltipPosition} from './tooltip-position.directive';\r\nimport {CuiTooltipUnstyledComponent} from './tooltip-unstyled.component';\r\nimport { CUI_IS_MOBILE, cuiClamp, cuiInjectElement, cuiPure, cuiPx } from '@cuby-ui/cdk';\r\n\r\nconst GAP = 8;\r\n\r\nexport const CUI_TOOLTIP_PROVIDERS = [\r\n CuiPositionService,\r\n CuiHoveredService,\r\n cuiPositionAccessorFor('hint', CuiTooltipPosition),\r\n cuiRectAccessorFor('hint', forwardRef(() => CuiTooltipDirective)),\r\n];\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'cui-tooltip',\r\n imports: [PolymorpheusOutlet],\r\n template: `\r\n <ng-content />\r\n <span\r\n *polymorpheusOutlet=\"content() as text; context: hint.context\"\r\n [innerHTML]=\"text\"\r\n ></span>\r\n `,\r\n styleUrls: ['./tooltip.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: CUI_TOOLTIP_PROVIDERS,\r\n animations: [cuiFadeIn, cuiScaleIn],\r\n host: {\r\n '[@cuiScaleIn]': 'isMobile ? options : desktop',\r\n '[@cuiFadeIn]': 'options',\r\n '[class._untouchable]': 'pointer',\r\n '[class._mobile]': 'isMobile',\r\n '[attr.data-appearance]': 'appearance',\r\n '[attr.cuiTheme]': 'appearance',\r\n '(document:click)': 'onClick($event.target)',\r\n },\r\n})\r\nexport class CuiTooltipComponent<C = any> {\r\n private readonly el = cuiInjectElement();\r\n private readonly hover = inject(CuiTooltipHover);\r\n private readonly vvs = inject(CuiVisualViewportService);\r\n private readonly viewport = inject(CUI_VIEWPORT);\r\n\r\n protected readonly desktop = {value: '', params: {end: 1, start: 1}};\r\n protected readonly options = cuiToAnimationOptions(\r\n inject(CUI_ANIMATIONS_SPEED),\r\n 'cubic-bezier(0.35, 1.3, 0.25, 1)',\r\n );\r\n\r\n protected readonly pointer = inject(CuiTooltipPointer, {optional: true});\r\n protected readonly accessor = inject(CuiRectAccessor);\r\n protected readonly hint = injectContext<CuiContext<CuiTooltipDirective<C>>>().$implicit;\r\n protected readonly isMobile = inject(CUI_IS_MOBILE);\r\n\r\n protected readonly content =\r\n this.hint.component.component === CuiTooltipUnstyledComponent\r\n ? signal('')\r\n : this.hint.content;\r\n\r\n protected readonly appearance =\r\n this.hint.appearance ||\r\n this.hint.el.closest('[cuiTheme]')?.getAttribute('cuiTheme');\r\n\r\n constructor() {\r\n inject(CuiPositionService)\r\n .pipe(\r\n takeWhile(() => this.hint.el.isConnected),\r\n map((point) => this.vvs.correct(point)),\r\n takeUntilDestroyed(),\r\n )\r\n .subscribe({\r\n next: ([top, left]) => this.update(top, left),\r\n complete: () => this.hover.toggle(false),\r\n });\r\n\r\n inject(CuiHoveredService)\r\n .pipe(takeUntilDestroyed())\r\n .subscribe((hover) => this.hover.toggle(hover));\r\n }\r\n\r\n protected onClick(target: HTMLElement): void {\r\n if (\r\n (!target.closest('cui-hint') && !this.hint.el.contains(target)) ||\r\n cuiIsObscured(this.hint.el)\r\n ) {\r\n this.hover.toggle(false);\r\n }\r\n }\r\n\r\n @cuiPure\r\n private apply(top: string, left: string, beakTop: number, beakLeft: number): void {\r\n this.el.style.top = top;\r\n this.el.style.left = left;\r\n this.el.style.setProperty('--top', `${beakTop}%`);\r\n this.el.style.setProperty('--left', `${beakLeft}%`);\r\n this.el.style.setProperty(\r\n '--rotate',\r\n !beakLeft || Math.ceil(beakLeft) === 100 ? '90deg' : '0deg',\r\n );\r\n }\r\n\r\n private update(top: number, left: number): void {\r\n const {clientHeight, clientWidth} = this.el;\r\n const rect = this.accessor.getClientRect();\r\n const viewport = this.viewport.getClientRect();\r\n\r\n if (rect === EMPTY_CLIENT_RECT || !clientHeight || !clientWidth) {\r\n return;\r\n }\r\n\r\n const safeLeft = cuiClamp(left, GAP, viewport.width - clientWidth - GAP);\r\n const [beakTop, beakLeft] = this.vvs.correct([\r\n rect.top + rect.height / 2 - top,\r\n rect.left + rect.width / 2 - safeLeft,\r\n ]);\r\n\r\n this.apply(\r\n cuiPx(Math.round(top)),\r\n cuiPx(Math.round(safeLeft)),\r\n Math.round((cuiClamp(beakTop, 0, clientHeight) / clientHeight) * 100),\r\n Math.round((cuiClamp(beakLeft, 0, clientWidth) / clientWidth) * 100),\r\n );\r\n }\r\n}\r\n","import {DOCUMENT} from '@angular/common';\r\nimport {Directive, inject, Input, NgZone} from '@angular/core';\r\nimport {\r\n cuiIfMap,\r\n cuiTypedFromEvent,\r\n cuiZonefreeScheduler,\r\n cuiZoneOptimized,\r\n cuiInjectElement,\r\n cuiIsPresent, cuiPure,\r\n cuiIsNativeFocused\r\n} from '@cuby-ui/cdk';\r\nimport {cuiAsDriver, CuiDriver} from '../../classes';\r\nimport {\r\n BehaviorSubject,\r\n debounce,\r\n distinctUntilChanged,\r\n fromEvent,\r\n map,\r\n merge,\r\n of,\r\n skip,\r\n startWith,\r\n switchMap,\r\n timer,\r\n} from 'rxjs';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[cuiTooltipDescribe]',\r\n providers: [cuiAsDriver(CuiTooltipDescribe)],\r\n})\r\nexport class CuiTooltipDescribe extends CuiDriver {\r\n private readonly doc = inject(DOCUMENT);\r\n private readonly el = cuiInjectElement();\r\n private readonly zone = inject(NgZone);\r\n private readonly id$ = new BehaviorSubject('');\r\n private readonly stream$ = this.id$.pipe(\r\n distinctUntilChanged(),\r\n cuiIfMap(() => fromEvent(this.doc, 'keydown', {capture: true}), cuiIsPresent),\r\n switchMap(() =>\r\n this.focused\r\n ? of(false)\r\n : merge(\r\n cuiTypedFromEvent(this.doc, 'keyup'),\r\n cuiTypedFromEvent(this.element, 'blur'),\r\n ).pipe(map(() => this.focused)),\r\n ),\r\n debounce((visible) =>\r\n visible ? timer(1000, cuiZonefreeScheduler(this.zone)) : of(null),\r\n ),\r\n startWith(false),\r\n distinctUntilChanged(),\r\n skip(1),\r\n cuiZoneOptimized(),\r\n );\r\n\r\n public readonly type = 'hint';\r\n\r\n constructor() {\r\n super((subscriber) => this.stream$.subscribe(subscriber));\r\n }\r\n\r\n @Input()\r\n public set cuiTooltipDescribe(id: string | null | undefined) {\r\n this.id$.next(id || '');\r\n }\r\n\r\n @cuiPure\r\n private get element(): HTMLElement {\r\n return this.doc.getElementById(this.id$.value || '') || this.el;\r\n }\r\n\r\n private get focused(): boolean {\r\n return cuiIsNativeFocused(this.element);\r\n }\r\n}\r\n","import {Directive, Input} from '@angular/core';\r\nimport {EMPTY_CLIENT_RECT} from '@cuby-ui/cdk';\r\nimport {cuiAsRectAccessor, CuiRectAccessor} from '../../classes';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[cuiTooltip][cuiTooltipHost]',\r\n providers: [cuiAsRectAccessor(CuiTooltipHost)],\r\n})\r\nexport class CuiTooltipHost extends CuiRectAccessor {\r\n @Input()\r\n public cuiTooltipHost?: HTMLElement;\r\n\r\n public readonly type = 'hint';\r\n\r\n public getClientRect(): DOMRect {\r\n return this.cuiTooltipHost?.getBoundingClientRect() || EMPTY_CLIENT_RECT;\r\n }\r\n}\r\n","import type {OnChanges} from '@angular/core';\r\nimport {Directive, inject, Input} from '@angular/core';\r\nimport {cuiAsDriver, CuiDriver} from '../../classes';\r\nimport {BehaviorSubject} from 'rxjs';\r\n\r\nimport {CuiTooltipHover} from './tooltip-hover.directive';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[cuiTooltip][cuiTooltipManual]',\r\n providers: [cuiAsDriver(CuiTooltipManual)],\r\n})\r\nexport class CuiTooltipManual extends CuiDriver implements OnChanges {\r\n private readonly hover = inject(CuiTooltipHover);\r\n private readonly stream$ = new BehaviorSubject(false);\r\n\r\n @Input()\r\n public cuiTooltipManual = false;\r\n\r\n public readonly type = 'hint';\r\n\r\n constructor() {\r\n super((subscriber) => this.stream$.subscribe(subscriber));\r\n this.hover.enabled = false;\r\n }\r\n\r\n public ngOnChanges(): void {\r\n this.stream$.next(this.cuiTooltipManual);\r\n }\r\n}\r\n","import {Directive, inject} from '@angular/core';\r\n\r\nimport {CuiTooltipDirective} from './tooltip.directive';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[cuiTooltipOverflow]',\r\n hostDirectives: [\r\n {\r\n directive: CuiTooltipDirective,\r\n inputs: ['cuiTooltipAppearance'],\r\n },\r\n ],\r\n host: {\r\n '(mouseenter)': 'onMouseEnter($event.currentTarget)',\r\n },\r\n})\r\nexport class CuiTooltipOverflow {\r\n private readonly hint = inject(CuiTooltipDirective);\r\n\r\n protected onMouseEnter({scrollWidth, clientWidth, textContent}: Element): void {\r\n this.hint.cuiTooltip = scrollWidth > clientWidth ? textContent : '';\r\n }\r\n}\r\n","import {CuiTooltipComponent} from './tooltip.component';\r\nimport {CuiTooltipDirective} from './tooltip.directive';\r\nimport {CuiTooltipDescribe} from './tooltip-describe.directive';\r\nimport {CuiTooltipDriver} from './tooltip-driver.directive';\r\nimport {CuiTooltipHost} from './tooltip-host.directive';\r\nimport {CuiTooltipHover} from './tooltip-hover.directive';\r\nimport {CuiTooltipManual} from './tooltip-manual.directive';\r\nimport {CuiTooltipOptionsDirective} from './tooltip-options.directive';\r\nimport {CuiTooltipOverflow} from './tooltip-overflow.directive';\r\nimport {CuiTooltipPointer} from './tooltip-pointer.directive';\r\nimport {CuiTooltipPosition} from './tooltip-position.directive';\r\nimport {CuiTooltipUnstyled} from './tooltip-unstyled.component';\r\n\r\nexport const CuiTooltip = [\r\n CuiTooltipComponent,\r\n CuiTooltipDirective,\r\n CuiTooltipOptionsDirective,\r\n CuiTooltipUnstyled,\r\n CuiTooltipDriver,\r\n CuiTooltipPosition,\r\n CuiTooltipHover,\r\n CuiTooltipOverflow,\r\n CuiTooltipDescribe,\r\n CuiTooltipHost,\r\n CuiTooltipManual,\r\n CuiTooltipPointer,\r\n] as const;\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { CuiRootComponent } from './root.component';\r\nimport { CuiDialogModule } from '../dialog';\r\nimport { CuiAlertModule } from '../alert';\r\nimport { CuiTooltips } from '../../directives/tooltip';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CuiDialogModule,\r\n CuiAlertModule,\r\n CuiTooltips\r\n ],\r\n declarations: [CuiRootComponent],\r\n exports: [CuiRootComponent]\r\n})\r\nexport class CuiRootModule {\r\n}\r\n","import type { OnInit, AfterViewInit, TemplateRef, OnDestroy } from '@angular/core';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n HostListener,\r\n inject,\r\n Input,\r\n ViewContainerRef,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { CuiDestroyService, CuiClickOutsideDirective, CuiTargetDirective, CUI_WINDOW, cuiGetClosestFocusable } from '@cuby-ui/cdk';\r\nimport { fromEvent, take, takeUntil } from 'rxjs';\r\n\r\nimport type { CuiContextMenuItem } from '../../interfaces';\r\nimport { CUI_ROOT_SELECTOR } from '../root';\r\n\r\n@Component({\r\n selector: 'cui-context-menu[items][target]',\r\n templateUrl: './context-menu.component.html',\r\n styleUrls: ['./context-menu.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [CuiDestroyService],\r\n hostDirectives: [\r\n CuiClickOutsideDirective,\r\n {\r\n directive: CuiTargetDirective,\r\n inputs: ['ccTarget: target']\r\n }\r\n ]\r\n})\r\nexport class CuiContextMenuComponent implements OnInit, AfterViewInit, OnDestroy {\r\n private readonly viewContainerRef = inject(ViewContainerRef);\r\n private readonly document = inject(DOCUMENT);\r\n private readonly documentElement = this.document.documentElement;\r\n private readonly window = inject(CUI_WINDOW);\r\n private readonly destroy$ = inject(CuiDestroyService, { self: true });\r\n private readonly cuiClickOutsideDirective = inject(CuiClickOutsideDirective, { self: true });\r\n private readonly cuiTargetDirective = inject(CuiTargetDirective, { self: true });\r\n\r\n protected readonly EXTRA_OFFSET_LEFT = 0;\r\n protected readonly EXTRA_OFFSET_TOP = 0;\r\n\r\n protected isVisible = false;\r\n protected node?: HTMLDivElement;\r\n\r\n @Input()\r\n public items!: CuiContextMenuItem[];\r\n\r\n @Input()\r\n public target!: HTMLElement;\r\n\r\n @ViewChild('list')\r\n protected readonly list!: TemplateRef<any>;\r\n\r\n @ViewChild('backdrop')\r\n protected readonly backdrop!: TemplateRef<any>;\r\n\r\n public ngOnInit(): void {\r\n this.initClickOutsideSubscription();\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.clearViewContainerRef();\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n this.initTargetElementListener();\r\n }\r\n\r\n protected onSelect(item: CuiContextMenuItem): void {\r\n this.close();\r\n\r\n item.command?.();\r\n }\r\n\r\n @HostListener('window:resize')\r\n protected onClose(): void {\r\n this.close();\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n protected onStopClickPropagation(event: MouseEvent): void {\r\n event.stopPropagation();\r\n }\r\n\r\n protected trackByFn(_: number, item: CuiContextMenuItem): string {\r\n return item.label;\r\n }\r\n\r\n private initClickOutsideSubscription(): void {\r\n this.cuiClickOutsideDirective.cuiClickOutside\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((target) => {\r\n if (this.target.contains(target)) {\r\n return;\r\n }\r\n\r\n this.close();\r\n })\r\n }\r\n\r\n private initTargetElementListener(): void {\r\n this.cuiTargetDirective.clicked\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(this.targetEventListener.bind(this));\r\n }\r\n\r\n private initHidingSubscription(): void {\r\n this.initHidingFromWindowEvent('scroll');\r\n this.initHidingFromWindowEvent('resize');\r\n }\r\n\r\n private initHidingFromWindowEvent(eventName: keyof WindowEventMap): void {\r\n fromEvent(this.window, eventName)\r\n .pipe(take(1))\r\n .subscribe(() => this.close());\r\n }\r\n\r\n private targetEventListener(event: MouseEvent): void {\r\n event.stopPropagation();\r\n // TODO: нужен для перерисовки ngFor\r\n this.document.body.click();\r\n\r\n this.isVisible = !this.isVisible;\r\n\r\n this.clearViewContainerRef();\r\n\r\n if (!this.isVisible) {\r\n return;\r\n }\r\n\r\n this.renderList();\r\n this.changePosition(event.clientX, event.clientY);\r\n this.initHidingSubscription();\r\n };\r\n\r\n private close(): void {\r\n this.isVisible = false;\r\n\r\n this.clearViewContainerRef();\r\n }\r\n\r\n private renderList(): void {\r\n const root = this.document.querySelector(CUI_ROOT_SELECTOR)!;\r\n const backdropViewRef = this.viewContainerRef.createEmbeddedView(this.backdrop);\r\n const listViewRef = this.viewContainerRef.createEmbeddedView(this.list);\r\n\r\n this.node = listViewRef.rootNodes[0];\r\n\r\n root.append(backdropViewRef.rootNodes[0], this.node!);\r\n }\r\n\r\n private changePosition(x: number, y: number): void {\r\n this.node!.style.visibility = 'hidden';\r\n\r\n setTimeout(() => {\r\n const { clientWidth, clientHeight } = this.documentElement;\r\n const width = this.node!.offsetWidth;\r\n const height = this.node!.offsetHeight;\r\n let left = x;\r\n let top = y;\r\n\r\n if (left + width > clientWidth) {\r\n left -= width;\r\n }\r\n\r\n if (top + height > clientHeight) {\r\n top -= height;\r\n }\r\n\r\n left = Math.max(left, this.EXTRA_OFFSET_LEFT);\r\n top = Math.max(top, this.EXTRA_OFFSET_TOP);\r\n\r\n this.node!.style.left = left + 'px';\r\n this.node!.style.top = top + 'px';\r\n this.node!.style.visibility = '';\r\n\r\n cuiGetClosestFocusable({ initial: this.node!, root: this.node! })?.focus();\r\n });\r\n }\r\n\r\n private clearViewContainerRef(): void {\r\n this.viewContainerRef.clear();\r\n }\r\n}\r\n","<ng-template #backdrop>\r\n <div class=\"c-backdrop\"></div>\r\n</ng-template>\r\n\r\n<ng-template #list>\r\n <div class=\"c-container\">\r\n <ul class=\"c-ul\">\r\n <li\r\n *ngFor=\"let item of items; trackBy: trackByFn\"\r\n [style.color]=\"item.color\"\r\n >\r\n <button\r\n type=\"button\"\r\n class=\"c-button\"\r\n (click)=\"onSelect(item)\"\r\n >\r\n <cui-svg\r\n *ngIf=\"item.icon\"\r\n [icon]=\"item.icon\"\r\n [color]=\"item.color\"\r\n ></cui-svg>\r\n <span>{{ item.label }}</span>\r\n </button>\r\n </li>\r\n </ul>\r\n </div>\r\n</ng-template>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { CuiSvgModule } from '../svg';\r\nimport { CuiContextMenuComponent } from './context-menu.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CuiSvgModule\r\n ],\r\n declarations: [CuiContextMenuComponent],\r\n exports: [CuiContextMenuComponent]\r\n})\r\nexport class CuiContextMenuModule {\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport type { OnDestroy, OnInit, TemplateRef } from '@angular/core';\r\nimport { Directive, ElementRef, EventEmitter, HostListener, inject, Input, Output, signal, ViewContainerRef } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { CUI_WINDOW } from '@cuby-ui/cdk';\r\nimport { fromEvent } from 'rxjs';\r\n\r\nimport type { ChangePositionYParams, CuiDropdownOrientation } from './dropdown.interfaces';\r\n\r\n@Directive({\r\n selector: '[cuiDropdown]',\r\n exportAs: 'cuiDropdown',\r\n standalone: true,\r\n})\r\nexport class CuiDropdownDirective implements OnInit, OnDestroy {\r\n private readonly document = inject(DOCUMENT);\r\n private readonly viewContainerRef = inject(ViewContainerRef);\r\n private readonly target = inject(ElementRef).nativeElement;\r\n private readonly window = inject(CUI_WINDOW);\r\n\r\n private readonly SPACE_BETWEEN_TARGET_AND_LIST = 5;\r\n private readonly CONTAINER_SELECTOR = 'cui-dropdowns';\r\n private readonly DROPDOWN_SELECTOR = 'cui-dropdown';\r\n\r\n private container!: Element;\r\n private element!: HTMLElement;\r\n private backdrop!: HTMLDivElement;\r\n\r\n @Input({ required: true, alias: 'cuiDropdown' })\r\n public content!: TemplateRef<unknown>;\r\n\r\n @Input()\r\n public orientation: CuiDropdownOrientation = 'left';\r\n\r\n @Output()\r\n public readonly isOpened = new EventEmitter<boolean>();\r\n\r\n private readonly isOpen = signal(false);\r\n private readonly targetToggleEventListener = (): void => {\r\n if (!this.isOpen()) {\r\n this.open();\r\n\r\n return;\r\n }\r\n\r\n this.close();\r\n };\r\n private elementResizeObserver!: ResizeObserver;\r\n\r\n constructor() {\r\n this.initTargetElementListener();\r\n }\r\n\r\n @HostListener('window:resize')\r\n protected onResize(): void {\r\n this.close();\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n protected onClick(event: MouseEvent): void {\r\n if (!this.isOpen()) {\r\n return;\r\n }\r\n\r\n const target = event.target as HTMLElement;\r\n const elements = this.document.elementsFromPoint(event.clientX, event.clientY);\r\n const doesExist = elements.some((element) => this.element.contains(element));\r\n\r\n if (this.target.contains(target) || this.element.contains(target) || doesExist) {\r\n return;\r\n }\r\n\r\n this.close();\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.initContainer();\r\n this.initDropdown();\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.close();\r\n this.destroyElementResizeObserver();\r\n }\r\n\r\n public open(): void {\r\n this.isOpen.set(true);\r\n this.container.append(this.backdrop, this.element);\r\n this.calculateDropdownPosition();\r\n this.isOpened.emit(true);\r\n }\r\n\r\n public close(): void {\r\n this.isOpen.set(false);\r\n this.element?.remove();\r\n this.backdrop?.remove();\r\n this.isOpened.emit(false);\r\n }\r\n\r\n private initContainer(): void {\r\n const root = this.document.querySelector('cui-dialogs');\r\n const container = this.document.body.querySelector(this.CONTAINER_SELECTOR);\r\n\r\n if (container) {\r\n this.container = container;\r\n\r\n return;\r\n }\r\n\r\n this.container = this.document.createElement(this.CONTAINER_SELECTOR);\r\n\r\n root?.after(this.container);\r\n }\r\n\r\n private initDropdown(): void {\r\n const content = this.viewContainerRef.createEmbeddedView(this.content).rootNodes;\r\n this.element = this.document.createElement(this.DROPDOWN_SELECTOR);\r\n this.backdrop = this.document.createElement('div');\r\n\r\n this.element.style.top = '0';\r\n this.element.style.position = 'absolute';\r\n this.backdrop.style.position = 'fixed';\r\n this.backdrop.style.inset = '0';\r\n this.element.append(...content);\r\n\r\n this.initResizeObserver();\r\n }\r\n\r\n private initTargetElementListener(): void {\r\n fromEvent(this.target, 'click').pipe(takeUntilDestroyed()).subscribe(this.targetToggleEventListener);\r\n }\r\n\r\n private initResizeObserver(): void {\r\n this.elementResizeObserver = new ResizeObserver(() => {\r\n this.changeDropdownYCoordinateIfNeeded();\r\n });\r\n\r\n this.elementResizeObserver.observe(this.element);\r\n }\r\n\r\n private destroyElementResizeObserver(): void {\r\n this.elementResizeObserver.disconnect();\r\n }\r\n\r\n private changeDropdownYCoordinateIfNeeded(): void {\r\n const distanceToBottom =\r\n this.document.documentElement.clientHeight - this.element.getBoundingClientRect().bottom;\r\n\r\n if (distanceToBottom >= 0) {\r\n return;\r\n }\r\n\r\n this.element.style.top = parseFloat(this.element.style.top) + distanceToBottom + 'px';\r\n }\r\n\r\n private calculateDropdownPosition(): void {\r\n this.element.style.visibility = 'hidden';\r\n\r\n setTimeout(() => {\r\n const targetRect = this.target.getBoundingClientRect();\r\n const container = this.findScrollableContainer(this.target);\r\n const containerRect = container.getBoundingClientRect();\r\n const { clientHeight, clientWidth } = this.document.documentElement;\r\n const visibleTop = Math.max(targetRect.top, containerRect.top);\r\n const visibleBottom = Math.min(targetRect.bottom, containerRect.bottom);\r\n const dropdownHeight = this.element.offsetHeight;\r\n\r\n const shouldListOpenAbove = clientHeight - visibleBottom < dropdownHeight;\r\n const shouldListAlignLeft = targetRect.left + dropdownHeight > clientWidth;\r\n const orientation = this.orientation ?? (shouldListAlignLeft ? 'left' : 'right');\r\n\r\n this.changePositionY({ shouldListOpenAbove, visibleTop, visibleBottom, dropdownHeight });\r\n this.changePositionX(orientation, clientWidth, targetRect);\r\n\r\n this.element.style.visibility = 'visible';\r\n });\r\n }\r\n\r\n private changePositionX(orientation: string, clientWidth: number, targetRect: DOMRect): void {\r\n switch (orientation) {\r\n case 'right':\r\n this.element.style.left = 'auto';\r\n this.element.style.right = `${clientWidth - targetRect.right}px`;\r\n break;\r\n\r\n case 'stretch':\r\n this.element.style.left = `${targetRect.left}px`;\r\n this.element.style.right = `${clientWidth - targetRect.right}px`;\r\n break;\r\n\r\n default:\r\n this.element.style.right = 'auto';\r\n this.element.style.left = `${targetRect.left}px`;\r\n }\r\n }\r\n\r\n private changePositionY({\r\n shouldListOpenAbove,\r\n visibleTop,\r\n visibleBottom,\r\n dropdownHeight\r\n }: ChangePositionYParams): void {\r\n const offset = this.SPACE_BETWEEN_TARGET_AND_LIST;\r\n\r\n if (shouldListOpenAbove) {\r\n this.element.style.top = `${this.window.scrollY + visibleTop - dropdownHeight - offset}px`;\r\n\r\n return;\r\n }\r\n\r\n this.element.style.top = `${this.window.scrollY + visibleBottom + offset}px`;\r\n }\r\n\r\n private findScrollableContainer(element: HTMLElement): HTMLElement {\r\n let parent = element.parentElement;\r\n\r\n while (parent) {\r\n const { overflowY } = window.getComputedStyle(parent);\r\n\r\n if (overflowY === 'auto' || overflowY === 'scroll') {\r\n return parent;\r\n }\r\n\r\n parent = parent.parentElement;\r\n }\r\n\r\n return this.document.body;\r\n }\r\n}\r\n","import { NgIf } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { CuiFocusTrapDirective } from '@cuby-ui/cdk';\r\n\r\n@Component({\r\n selector: 'cui-dropdown-wrapper',\r\n standalone: true,\r\n imports: [NgIf],\r\n templateUrl: './dropdown-wrapper.component.html',\r\n styleUrls: ['./dropdown-wrapper.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n hostDirectives: [CuiFocusTrapDirective]\r\n})\r\nexport class CuiDropdownWrapperComponent {\r\n @Input()\r\n public title?: string;\r\n\r\n @Input()\r\n public width?: string;\r\n}\r\n","<div\r\n [style.width]=\"width\"\r\n class=\"dropdown\"\r\n>\r\n <header *ngIf=\"title\" class=\"header\">\r\n <h3 class=\"title\">{{ title }}</h3>\r\n <ng-content select=\"[ccDropdownHeaderContent]\" />\r\n </header>\r\n\r\n <div class=\"scrollable-content\">\r\n <ng-content />\r\n </div>\r\n <footer class=\"footer\">\r\n <ng-content select=\"[ccDropdownFooterContent]\" />\r\n </footer>\r\n</div>\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'cui-form-field',\r\n templateUrl: './form-field.template.html',\r\n styleUrls: ['./form-field.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiFormFieldComponent {\r\n}\r\n","<ng-content select=\"label[cuiLabel]\" />\r\n<ng-content />\r\n<div class=\"c-hint-container\">\r\n <ng-content select=\"cui-hint\" />\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { CuiFormFieldComponent } from './form-field.component';\r\n\r\n@NgModule({\r\n declarations: [CuiFormFieldComponent],\r\n exports: [CuiFormFieldComponent]\r\n})\r\nexport class CuiFormFieldModule {\r\n}\r\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\r\n\r\nimport type { CuiHintType } from '../../types';\r\n\r\n@Component({\r\n selector: 'cui-hint',\r\n templateUrl: './hint.template.html',\r\n styleUrls: ['./hint.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiHintComponent {\r\n @Input()\r\n @HostBinding('attr.data-hint-type')\r\n public hintType: CuiHintType = 'info';\r\n}\r\n","<ng-content></ng-content>\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { CuiHintComponent } from './hint.component';\r\n\r\n@NgModule({\r\n declarations: [CuiHintComponent],\r\n exports: [CuiHintComponent]\r\n})\r\nexport class CuiHintModule {\r\n}\r\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\r\nimport type { CuiIcon } from '@cuby-ui/icons';\r\n\r\n@Component({\r\n selector: 'button[cuiIconButton][icon], a[cuiIconButton][icon]',\r\n templateUrl: './icon-button.template.html',\r\n styleUrls: ['./icon-button.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiIconButtonComponent {\r\n protected readonly ICON_WIDTH = 16;\r\n protected readonly ICON_HEIGHT = 16;\r\n protected readonly ICON_STROKE_WIDTH = 1.5;\r\n\r\n @Input()\r\n public icon!: CuiIcon | string;\r\n\r\n @Input()\r\n public color?: string;\r\n\r\n @Input()\r\n @HostBinding('style.--icon-hover-color')\r\n public hoverColor?: string;\r\n\r\n @HostBinding('class._with-hover-color')\r\n protected get isWithHoverColor(): boolean {\r\n return !!this.hoverColor;\r\n }\r\n}\r\n","<cui-svg\r\n [icon]=\"icon\"\r\n [width]=\"ICON_WIDTH\"\r\n [height]=\"ICON_HEIGHT\"\r\n [color]=\"color\"\r\n [strokeWidth]=\"ICON_STROKE_WIDTH\"\r\n class=\"c-icon\"\r\n></cui-svg>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { CuiIconButtonComponent } from './icon-button.component';\r\nimport { CuiSvgModule } from '../svg';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CuiSvgModule\r\n ],\r\n declarations: [CuiIconButtonComponent],\r\n exports: [CuiIconButtonComponent]\r\n})\r\nexport class CuiIconButtonModule {\r\n}\r\n","import type { CuiIcon } from '@cuby-ui/icons';\r\n\r\nimport type { CuiTextFieldSizeDirective } from './text-field-size.directive';\r\nimport type { CuiTextFieldIdDirective } from './text-field-id.directive';\r\nimport type { CuiTextFieldIconLeftDirective } from './text-field-icon-left.directive';\r\nimport type { CuiTextFieldPlaceholderDirective } from './text-field-placeholder.directive';\r\nimport type { CuiTextFieldIsErrorDirective } from './text-field-is-error.directive';\r\nimport type { CuiSizeMd, CuiSizeSm } from '../../types';\r\n\r\nexport class CuiTextFieldController {\r\n constructor(private readonly iconLeftDirective: CuiTextFieldIconLeftDirective,\r\n private readonly idDirective: CuiTextFieldIdDirective,\r\n private readonly isErrorDirective: CuiTextFieldIsErrorDirective,\r\n private readonly placeholderDirective: CuiTextFieldPlaceholderDirective,\r\n private readonly sizeDirective: CuiTextFieldSizeDirective) {\r\n }\r\n\r\n public get iconLeft(): CuiIcon | string | undefined {\r\n return this.iconLeftDirective.iconLeft;\r\n }\r\n\r\n public get id(): string | undefined {\r\n return this.idDirective.id;\r\n }\r\n\r\n public get isError(): boolean {\r\n return this.isErrorDirective.isError;\r\n }\r\n\r\n public get placeholder(): string | undefined {\r\n return this.placeholderDirective.placeholder;\r\n }\r\n\r\n public get size(): CuiSizeSm | CuiSizeMd {\r\n return this.sizeDirective.size;\r\n }\r\n}\r\n","import { Directive, InjectionToken, Input } from '@angular/core';\r\nimport { cuiProvide } from '@cuby-ui/cdk';\r\nimport type { CuiIcon } from '@cuby-ui/icons';\r\n\r\nexport const CUI_TEXT_FIELD_ICON_LEFT = new InjectionToken<CuiTextFieldIconLeftDirective>('', {\r\n factory: () => new CuiTextFieldIconLeftDirective()\r\n});\r\n\r\n@Directive({\r\n selector: '[cuiTextFieldIconLeft]',\r\n providers: [cuiProvide(CUI_TEXT_FIELD_ICON_LEFT, CuiTextFieldIconLeftDirective)]\r\n})\r\nexport class CuiTextFieldIconLeftDirective {\r\n @Input('cuiTextFieldIconLeft')\r\n public iconLeft?: CuiIcon | string;\r\n}\r\n","import { Directive, InjectionToken, Input } from '@angular/core';\r\nimport { cuiProvide } from '@cuby-ui/cdk';\r\n\r\nexport const CUI_TEXT_FIELD_ID = new InjectionToken<CuiTextFieldIdDirective>('', {\r\n factory: () => new CuiTextFieldIdDirective()\r\n});\r\n\r\n@Directive({\r\n selector: '[cuiTextFieldId]',\r\n providers: [cuiProvide(CUI_TEXT_FIELD_ID, CuiTextFieldIdDirective)]\r\n})\r\nexport class CuiTextFieldIdDirective {\r\n @Input('cuiTextFieldId')\r\n public id?: string;\r\n}\r\n","import { Directive, InjectionToken, Input } from '@angular/core';\r\nimport { cuiProvide } from '@cuby-ui/cdk';\r\n\r\nexport const CUI_TEXT_FIELD_IS_ERROR = new InjectionToken<CuiTextFieldIsErrorDirective>('', {\r\n factory: () => new CuiTextFieldIsErrorDirective()\r\n});\r\n\r\n@Directive({\r\n selector: '[cuiTextFieldIsError]',\r\n providers: [cuiProvide(CUI_TEXT_FIELD_IS_ERROR, CuiTextFieldIsErrorDirective)]\r\n})\r\nexport class CuiTextFieldIsErrorDirective {\r\n @Input('cuiTextFieldIsError')\r\n public isError = false;\r\n}\r\n","import { Directive, InjectionToken, Input } from '@angular/core';\r\nimport { cuiProvide } from '@cuby-ui/cdk';\r\n\r\nexport const CUI_TEXT_FIELD_PLACEHOLDER = new InjectionToken<CuiTextFieldPlaceholderDirective>('', {\r\n factory: () => new CuiTextFieldPlaceholderDirective()\r\n});\r\n\r\n@Directive({\r\n selector: '[cuiTextFieldPlaceholder]',\r\n providers: [cuiProvide(CUI_TEXT_FIELD_PLACEHOLDER, CuiTextFieldPlaceholderDirective)]\r\n})\r\nexport class CuiTextFieldPlaceholderDirective {\r\n @Input('cuiTextFieldPlaceholder')\r\n public placeholder?: string;\r\n}\r\n","import { Directive, InjectionToken, Input } from '@angular/core';\r\nimport { cuiProvide } from '@cuby-ui/cdk';\r\n\r\nimport type { CuiSizeMd, CuiSizeSm } from '../../types';\r\n\r\nexport const CUI_TEXT_FIELD_SIZE = new InjectionToken<CuiTextFieldSizeDirective>('', {\r\n factory: () => new CuiTextFieldSizeDirective()\r\n});\r\n\r\n@Directive({\r\n selector: '[cuiTextFieldSize]',\r\n providers: [cuiProvide(CUI_TEXT_FIELD_SIZE, CuiTextFieldSizeDirective)]\r\n})\r\nexport class CuiTextFieldSizeDirective {\r\n @Input('cuiTextFieldSize')\r\n public size: CuiSizeSm | CuiSizeMd = 'sm';\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { CuiTextFieldIconLeftDirective } from './text-field-icon-left.directive';\r\nimport { CuiTextFieldIdDirective } from './text-field-id.directive';\r\nimport { CuiTextFieldIsErrorDirective } from './text-field-is-error.directive';\r\nimport { CuiTextFieldPlaceholderDirective } from './text-field-placeholder.directive';\r\nimport { CuiTextFieldSizeDirective } from './text-field-size.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n CuiTextFieldIconLeftDirective,\r\n CuiTextFieldIdDirective,\r\n CuiTextFieldPlaceholderDirective,\r\n CuiTextFieldIsErrorDirective,\r\n CuiTextFieldSizeDirective\r\n ],\r\n exports: [\r\n CuiTextFieldIconLeftDirective,\r\n CuiTextFieldIdDirective,\r\n CuiTextFieldPlaceholderDirective,\r\n CuiTextFieldIsErrorDirective,\r\n CuiTextFieldSizeDirective\r\n ]\r\n})\r\nexport class CuiTextFieldControllerModule {\r\n}\r\n","import { InjectionToken, Provider } from '@angular/core';\r\n\r\nimport { CuiTextFieldController } from './text-field.controller';\r\n\r\nimport { CUI_TEXT_FIELD_SIZE } from './text-field-size.directive';\r\nimport type { CuiTextFieldSizeDirective } from './text-field-size.directive';\r\nimport { CUI_TEXT_FIELD_ID } from './text-field-id.directive';\r\nimport type { CuiTextFieldIdDirective } from './text-field-id.directive';\r\nimport { CUI_TEXT_FIELD_IS_ERROR } from './text-field-is-error.directive';\r\nimport type { CuiTextFieldIsErrorDirective } from './text-field-is-error.directive';\r\nimport { CUI_TEXT_FIELD_PLACEHOLDER } from './text-field-placeholder.directive';\r\nimport type { CuiTextFieldPlaceholderDirective } from './text-field-placeholder.directive';\r\nimport { CUI_TEXT_FIELD_ICON_LEFT } from './text-field-icon-left.directive';\r\nimport type { CuiTextFieldIconLeftDirective } from './text-field-icon-left.directive';\r\n\r\nexport const CUI_TEXT_FIELD_CONTROLLER = new InjectionToken<CuiTextFieldController>('');\r\n\r\nexport const CUI_TEXT_FILED_CONTROLLER_PROVIDER: Provider = [\r\n {\r\n provide: CUI_TEXT_FIELD_CONTROLLER,\r\n useFactory: (...controllers: [\r\n CuiTextFieldIconLeftDirective,\r\n CuiTextFieldIdDirective,\r\n CuiTextFieldIsErrorDirective,\r\n CuiTextFieldPlaceholderDirective,\r\n CuiTextFieldSizeDirective\r\n ]) => {\r\n return new CuiTextFieldController(...controllers);\r\n },\r\n deps: [\r\n CUI_TEXT_FIELD_ICON_LEFT,\r\n CUI_TEXT_FIELD_ID,\r\n CUI_TEXT_FIELD_IS_ERROR,\r\n CUI_TEXT_FIELD_PLACEHOLDER,\r\n CUI_TEXT_FIELD_SIZE\r\n ]\r\n }\r\n];\r\n","import type { ElementRef } from '@angular/core';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n HostBinding,\r\n HostListener,\r\n inject,\r\n Input,\r\n ViewChild\r\n} from '@angular/core';\r\nimport type { ControlValueAccessor } from '@angular/forms';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport type { MaskitoOptions } from '@maskito/core';\r\nimport { maskitoNumberOptionsGenerator, maskitoParseNumber } from '@maskito/kit';\r\nimport { CuiNullable, CuiOnChange, CuiOnTouched } from '@cuby-ui/cdk';\r\nimport { cuiProvide } from '@cuby-ui/cdk';\r\nimport type { CuiIcon } from '@cuby-ui/icons';\r\n\r\nimport { CUI_TEXT_FIELD_CONTROLLER, CUI_TEXT_FILED_CONTROLLER_PROVIDER } from '../../directives';\r\nimport { CuiSizeMd, CuiSizeSm } from '../../types';\r\n\r\n@Component({\r\n selector: 'cui-input-number',\r\n templateUrl: './input-number.template.html',\r\n styleUrls: ['./input-number.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n CUI_TEXT_FILED_CONTROLLER_PROVIDER,\r\n cuiProvide(NG_VALUE_ACCESSOR, CuiInputNumberComponent, true)\r\n ]\r\n})\r\nexport class CuiInputNumberComponent implements ControlValueAccessor {\r\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\r\n private readonly cuiTextFieldController = inject(CUI_TEXT_FIELD_CONTROLLER);\r\n\r\n protected maskOptions = this.generateMask();\r\n protected _precision = 0;\r\n protected _min = Number.MIN_SAFE_INTEGER;\r\n protected _max = Number.MAX_SAFE_INTEGER;\r\n protected value!: CuiNullable<string>;\r\n protected onChange!: CuiOnChange<CuiNullable<number>>;\r\n protected onTouched!: CuiOnTouched;\r\n\r\n @Input()\r\n public set precision(value: number) {\r\n this._precision = value;\r\n this.maskOptions = this.generateMask();\r\n }\r\n\r\n @Input()\r\n public set min(value: number) {\r\n this._min = value;\r\n this.maskOptions = this.generateMask();\r\n }\r\n\r\n @Input()\r\n public set max(value: number) {\r\n this._max = value;\r\n this.maskOptions = this.generateMask();\r\n }\r\n\r\n @HostBinding('class._disabled')\r\n protected isDisabled!: boolean;\r\n\r\n @ViewChild('input')\r\n protected input!: ElementRef<HTMLInputElement>;\r\n\r\n protected get id(): string | undefined {\r\n return this.cuiTextFieldController.id;\r\n }\r\n\r\n protected get placeholder(): string | undefined {\r\n return this.cuiTextFieldController.placeholder;\r\n }\r\n\r\n protected get iconLeft(): CuiIcon | string | undefined {\r\n return this.cuiTextFieldController.iconLeft;\r\n }\r\n\r\n @HostBinding('attr.data-size')\r\n protected get size(): CuiSizeSm | CuiSizeMd {\r\n return this.cuiTextFieldController.size;\r\n }\r\n\r\n @HostBinding('class._with-error')\r\n protected get isError(): boolean {\r\n return this.cuiTextFieldController.isError;\r\n }\r\n\r\n public writeValue(value: CuiNullable<number>): void {\r\n this.value = value?.toString();\r\n\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n public registerOnChange(fn: CuiOnChange<CuiNullable<number>>): void {\r\n this.onChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: CuiOnTouched): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n public setDisabledState(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n protected onInput({ target }: Event): void {\r\n this.changeModel((target as HTMLInputElement).value);\r\n }\r\n\r\n @HostListener('click')\r\n protected onFocus(): void {\r\n this.input.nativeElement.focus();\r\n }\r\n\r\n private changeModel(value: string): void {\r\n const parsedValue = maskitoParseNumber(value);\r\n\r\n this.value = value;\r\n\r\n this.onChange(Number.isNaN(parsedValue) ? null : parsedValue);\r\n }\r\n\r\n private generateMask(): MaskitoOptions {\r\n return maskitoNumberOptionsGenerator({\r\n precision: this._precision,\r\n min: this._min,\r\n max: this._max\r\n });\r\n }\r\n}\r\n","<cui-svg\r\n *ngIf=\"iconLeft\"\r\n [icon]=\"iconLeft\"\r\n color=\"var(--cui-base-500)\"\r\n></cui-svg>\r\n<input\r\n #input\r\n [ngModel]=\"value\"\r\n [attr.id]=\"id\"\r\n [attr.placeholder]=\"placeholder\"\r\n type=\"text\"\r\n [maskito]=\"maskOptions\"\r\n [disabled]=\"isDisabled\"\r\n class=\"c-input\"\r\n (input)=\"onInput($event)\"\r\n (focus)=\"onTouched()\"\r\n>\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MaskitoDirective } from '@maskito/angular';\r\n\r\nimport { CuiInputNumberComponent } from './input-number.component';\r\nimport { CuiSvgModule } from '../svg';\r\nimport { CuiTextFieldControllerModule } from '../../directives';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n MaskitoDirective,\r\n CuiSvgModule,\r\n ],\r\n declarations: [CuiInputNumberComponent],\r\n exports: [\r\n CuiInputNumberComponent,\r\n CuiTextFieldControllerModule\r\n ]\r\n})\r\nexport class CuiInputNumberModule {\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n HostBinding,\r\n inject\r\n} from '@angular/core';\r\nimport type { ControlValueAccessor } from '@angular/forms';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport type { CuiInputType, CuiNullable, CuiOnChange, CuiOnTouched } from '@cuby-ui/cdk';\r\nimport { cuiProvide } from '@cuby-ui/cdk';\r\nimport type { CuiIcon } from '@cuby-ui/icons';\r\n\r\nimport { CUI_TEXT_FIELD_CONTROLLER, CUI_TEXT_FILED_CONTROLLER_PROVIDER } from '../../directives';\r\nimport { CuiSizeMd, CuiSizeSm } from '../../types';\r\n\r\n@Component({\r\n selector: 'cui-input-password',\r\n templateUrl: './input-password.template.html',\r\n styleUrls: ['./input-password.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n CUI_TEXT_FILED_CONTROLLER_PROVIDER,\r\n cuiProvide(NG_VALUE_ACCESSOR, CuiInputPasswordComponent, true)\r\n ]\r\n})\r\nexport class CuiInputPasswordComponent implements ControlValueAccessor {\r\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\r\n private readonly cuiTextFieldController = inject(CUI_TEXT_FIELD_CONTROLLER);\r\n\r\n protected isPasswordHidden = true;\r\n protected value!: CuiNullable<string>;\r\n protected onChange!: CuiOnChange<string>;\r\n protected onTouched!: CuiOnTouched;\r\n\r\n @HostBinding('class._disabled')\r\n protected isDisabled!: boolean;\r\n\r\n protected get id(): string | undefined {\r\n return this.cuiTextFieldController.id;\r\n }\r\n\r\n protected get placeholder(): string | undefined {\r\n return this.cuiTextFieldController.placeholder;\r\n }\r\n\r\n protected get iconLeft(): CuiIcon | string | undefined {\r\n return this.cuiTextFieldController.iconLeft;\r\n }\r\n\r\n protected get isToggleButtonShown(): boolean {\r\n return !this.isDisabled;\r\n }\r\n\r\n protected get icon(): CuiIcon {\r\n return this.isPasswordHidden ? 'cuiIconEye' : 'cuiIconEyeOff';\r\n }\r\n\r\n protected get type(): CuiInputType {\r\n return this.isPasswordHidden ? 'password' : 'text';\r\n }\r\n\r\n protected get buttonTitle(): string {\r\n return this.isPasswordHidden ? 'Reveal password' : 'Hide password';\r\n }\r\n\r\n @HostBinding('attr.data-size')\r\n protected get size(): CuiSizeSm | CuiSizeMd {\r\n return this.cuiTextFieldController.size;\r\n }\r\n\r\n @HostBinding('class._with-error')\r\n protected get isError(): boolean {\r\n return this.cuiTextFieldController.isError;\r\n }\r\n\r\n public writeValue(value: CuiNullable<string>): void {\r\n this.value = value;\r\n\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n public registerOnChange(fn: CuiOnChange<string>): void {\r\n this.onChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: CuiOnTouched): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n public setDisabledState(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n\r\n if (this.isDisabled) {\r\n this.isPasswordHidden = true;\r\n }\r\n\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n protected onInput({ target }: Event): void {\r\n const value = (target as HTMLInputElement).value;\r\n\r\n this.value = value;\r\n\r\n this.onChange(value);\r\n }\r\n\r\n protected onTogglePasswordVisibility(): void {\r\n this.isPasswordHidden = !this.isPasswordHidden;\r\n }\r\n}\r\n","<cui-svg\r\n *ngIf=\"iconLeft\"\r\n [icon]=\"iconLeft\"\r\n color=\"var(--cui-base-500)\"\r\n></cui-svg>\r\n<input\r\n [ngModel]=\"value\"\r\n [attr.id]=\"id\"\r\n [attr.placeholder]=\"placeholder\"\r\n [type]=\"type\"\r\n [disabled]=\"isDisabled\"\r\n class=\"c-input\"\r\n (input)=\"onInput($event)\"\r\n (focus)=\"onTouched()\"\r\n>\r\n<button\r\n *ngIf=\"isToggleButtonShown\"\r\n [title]=\"buttonTitle\"\r\n class=\"c-button\"\r\n (click)=\"onTogglePasswordVisibility()\"\r\n>\r\n <cui-svg\r\n [icon]=\"icon\"\r\n [width]=\"16\"\r\n [height]=\"16\"\r\n color=\"var(--cui-base-500)\"\r\n ></cui-svg>\r\n</button>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { CuiInputPasswordComponent } from './input-password.component';\r\nimport { CuiSvgModule } from '../svg';\r\nimport { CuiTextFieldControllerModule } from '../../directives';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n CuiSvgModule\r\n ],\r\n declarations: [CuiInputPasswordComponent],\r\n exports: [\r\n CuiInputPasswordComponent,\r\n CuiTextFieldControllerModule\r\n ]\r\n})\r\nexport class CuiInputPasswordModule {\r\n}\r\n","import type { ElementRef } from '@angular/core';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n HostBinding,\r\n HostListener,\r\n inject,\r\n ViewChild\r\n} from '@angular/core';\r\nimport type { ControlValueAccessor } from '@angular/forms';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport type { CuiOnChange, CuiOnTouched, CuiNullable } from '@cuby-ui/cdk';\r\nimport { cuiProvide } from '@cuby-ui/cdk';\r\nimport type { CuiIcon } from '@cuby-ui/icons';\r\n\r\nimport { CUI_TEXT_FIELD_CONTROLLER, CUI_TEXT_FILED_CONTROLLER_PROVIDER } from '../../directives';\r\nimport { CuiSizeMd, CuiSizeSm } from '../../types';\r\n\r\n@Component({\r\n selector: 'cui-input-text',\r\n templateUrl: './input-text.template.html',\r\n styleUrls: ['./input-text.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n CUI_TEXT_FILED_CONTROLLER_PROVIDER,\r\n cuiProvide(NG_VALUE_ACCESSOR, CuiInputTextComponent, true)\r\n ]\r\n})\r\nexport class CuiInputTextComponent implements ControlValueAccessor {\r\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\r\n private readonly cuiTextFieldController = inject(CUI_TEXT_FIELD_CONTROLLER);\r\n\r\n protected value!: CuiNullable<string>;\r\n protected onChange!: CuiOnChange<string>;\r\n protected onTouched!: CuiOnTouched;\r\n\r\n @HostBinding('class._disabled')\r\n protected isDisabled!: boolean;\r\n\r\n @ViewChild('input')\r\n protected input!: ElementRef<HTMLInputElement>;\r\n\r\n protected get id(): string | undefined {\r\n return this.cuiTextFieldController.id;\r\n }\r\n\r\n protected get placeholder(): string | undefined {\r\n return this.cuiTextFieldController.placeholder;\r\n }\r\n\r\n protected get iconLeft(): CuiIcon | string | undefined {\r\n return this.cuiTextFieldController.iconLeft;\r\n }\r\n\r\n protected get isClearButtonHidden(): boolean {\r\n return !(this.value && !this.isDisabled);\r\n }\r\n\r\n @HostBinding('attr.data-size')\r\n protected get size(): CuiSizeSm | CuiSizeMd {\r\n return this.cuiTextFieldController.size;\r\n }\r\n\r\n @HostBinding('class._with-error')\r\n protected get isError(): boolean {\r\n return this.cuiTextFieldController.isError;\r\n }\r\n\r\n public writeValue(value: CuiNullable<string>): void {\r\n this.value = value;\r\n\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n public registerOnChange(fn: CuiOnChange<string>): void {\r\n this.onChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: CuiOnTouched): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n public setDisabledState(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n protected onInput({ target }: Event): void {\r\n this.changeModel((target as HTMLInputElement).value);\r\n }\r\n\r\n protected onClear(): void {\r\n this.changeModel('');\r\n }\r\n\r\n @HostListener('click')\r\n protected onFocus(): void {\r\n this.input.nativeElement.focus();\r\n }\r\n\r\n private changeModel(value: string): void {\r\n this.value = value;\r\n\r\n this.onChange(value);\r\n }\r\n}\r\n","<cui-svg\r\n *ngIf=\"iconLeft\"\r\n [icon]=\"iconLeft\"\r\n color=\"var(--cui-base-500)\"\r\n></cui-svg>\r\n<input\r\n #input\r\n [ngModel]=\"value\"\r\n [attr.id]=\"id\"\r\n [attr.placeholder]=\"placeholder\"\r\n type=\"text\"\r\n [disabled]=\"isDisabled\"\r\n class=\"c-input\"\r\n (input)=\"onInput($event)\"\r\n (focus)=\"onTouched()\"\r\n>\r\n<button\r\n type=\"button\"\r\n class=\"c-button\"\r\n [class.c-button_hidden]=\"isClearButtonHidden\"\r\n (click)=\"onClear()\"\r\n>\r\n <cui-svg\r\n icon=\"cuiIconClear\"\r\n color=\"var(--cui-base-300)\"\r\n class=\"c-close-icon\"\r\n />\r\n</button>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { CuiInputTextComponent } from './input-text.component';\r\nimport { CuiSvgModule } from '../svg';\r\nimport { CuiTextFieldControllerModule } from '../../directives';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n CuiSvgModule\r\n ],\r\n declarations: [CuiInputTextComponent],\r\n exports: [\r\n CuiInputTextComponent,\r\n CuiTextFieldControllerModule\r\n ]\r\n})\r\nexport class CuiInputModule {\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport type { CuiTimeMode } from '@cuby-ui/cdk';\r\n\r\nexport interface CuiInputTimeOptions {\r\n readonly mode: CuiTimeMode;\r\n}\r\n\r\nexport const CUI_INPUT_TIME_DEFAULT_OPTIONS: CuiInputTimeOptions = {\r\n mode: 'HH:MM'\r\n};\r\n\r\nexport const CUI_INPUT_TIME_OPTIONS = new InjectionToken('', {\r\n factory: () => CUI_INPUT_TIME_DEFAULT_OPTIONS\r\n});","import type { ElementRef } from '@angular/core';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n HostBinding,\r\n HostListener,\r\n inject,\r\n Input,\r\n ViewChild\r\n} from '@angular/core';\r\nimport type { ControlValueAccessor } from '@angular/forms';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport type { MaskitoTimeMode } from '@maskito/kit';\r\nimport { maskitoTimeOptionsGenerator } from '@maskito/kit';\r\nimport type { MaskitoOptions } from '@maskito/core';\r\nimport type { CuiNullable, CuiOnChange, CuiOnTouched } from '@cuby-ui/cdk';\r\nimport { cuiProvide, CuiTime } from '@cuby-ui/cdk';\r\n\r\nimport { CUI_INPUT_TIME_OPTIONS, CuiInputTimeOptions } from './input-time.options';\r\nimport type { CuiSizeMd, CuiSizeSm } from '../../types';\r\nimport { CUI_TEXT_FIELD_CONTROLLER, CUI_TEXT_FILED_CONTROLLER_PROVIDER } from '../../directives';\r\n\r\n@Component({\r\n selector: 'cui-input-time',\r\n templateUrl: './input-time.template.html',\r\n styleUrls: ['./input-time.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n CUI_TEXT_FILED_CONTROLLER_PROVIDER,\r\n cuiProvide(NG_VALUE_ACCESSOR, CuiInputTimeComponent, true)\r\n ]\r\n})\r\nexport class CuiInputTimeComponent implements CuiInputTimeOptions, ControlValueAccessor {\r\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\r\n private readonly cuiTextFieldController = inject(CUI_TEXT_FIELD_CONTROLLER);\r\n private readonly options = inject(CUI_INPUT_TIME_OPTIONS);\r\n\r\n protected _mode = this.options.mode\r\n protected maskOptions = this.generateMask(this._mode);\r\n protected defaultPlaceholder = this._mode.toLowerCase();\r\n protected value!: CuiNullable<CuiTime>;\r\n protected onChange!: CuiOnChange<CuiNullable<CuiTime>>;\r\n protected onTouched!: CuiOnTouched;\r\n\r\n @Input()\r\n public set mode(value: CuiInputTimeOptions['mode']) {\r\n this._mode = value;\r\n this.maskOptions = this.generateMask(value);\r\n this.defaultPlaceholder = value.toLowerCase();\r\n }\r\n\r\n @HostBinding('class._disabled')\r\n protected isDisabled!: boolean;\r\n\r\n @ViewChild('input')\r\n protected input!: ElementRef<HTMLInputElement>;\r\n\r\n protected get id(): string | undefined {\r\n return this.cuiTextFieldController.id;\r\n }\r\n\r\n protected get placeholder(): string | undefined {\r\n return this.cuiTextFieldController.placeholder ?? this.defaultPlaceholder;\r\n }\r\n\r\n public get computedValue(): string {\r\n return this.value ? this.value.toString(this._mode) : '';\r\n }\r\n\r\n @HostBinding('attr.data-size')\r\n protected get size(): CuiSizeSm | CuiSizeMd {\r\n return this.cuiTextFieldController.size;\r\n }\r\n\r\n @HostBinding('class._with-error')\r\n protected get isError(): boolean {\r\n return this.cuiTextFieldController.isError;\r\n }\r\n\r\n public writeValue(value: CuiNullable<CuiTime>): void {\r\n this.value = value;\r\n\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n public registerOnChange(fn: CuiOnChange<CuiNullable<CuiTime>>): void {\r\n this.onChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: CuiOnTouched): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n public setDisabledState(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n protected onInput(event: Event): void {\r\n const value = (event.target as HTMLInputElement).value;\r\n\r\n if (value.length !== this._mode.length) {\r\n this.onChange(null);\r\n\r\n return;\r\n }\r\n\r\n const time = CuiTime.fromString(value);\r\n\r\n this.onChange(time);\r\n }\r\n\r\n @HostListener('click')\r\n protected onFocus(): void {\r\n this.input.nativeElement.focus();\r\n }\r\n\r\n private generateMask(mode: MaskitoTimeMode): MaskitoOptions {\r\n return maskitoTimeOptionsGenerator({ mode });\r\n }\r\n}\r\n","<cui-svg\r\n icon=\"cuiIconClock\"\r\n color=\"var(--cui-base-500)\"\r\n></cui-svg>\r\n<input\r\n #input\r\n [ngModel]=\"computedValue\"\r\n [attr.id]=\"id\"\r\n [attr.placeholder]=\"placeholder\"\r\n type=\"text\"\r\n [maskito]=\"maskOptions\"\r\n [disabled]=\"isDisabled\"\r\n class=\"c-input\"\r\n (input)=\"onInput($event)\"\r\n (focus)=\"onTouched()\"\r\n>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MaskitoDirective } from '@maskito/angular';\r\n\r\nimport { CuiInputTimeComponent } from './input-time.component';\r\nimport { CuiSvgModule } from '../svg';\r\nimport { CuiTextFieldControllerModule } from '../../directives';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n MaskitoDirective,\r\n CuiSvgModule\r\n ],\r\n declarations: [CuiInputTimeComponent],\r\n exports: [\r\n CuiInputTimeComponent,\r\n CuiTextFieldControllerModule\r\n ]\r\n})\r\nexport class CuiInputTimeModule {\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'label[cuiLabel]',\r\n templateUrl: './label.template.html',\r\n styleUrls: ['./label.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiLabelComponent {\r\n @Input()\r\n public isRequired = false;\r\n}\r\n","<span class=\"c-wrapper\">\r\n <ng-content></ng-content>\r\n</span>\r\n<span\r\n *ngIf=\"isRequired\"\r\n class=\"c-star\"\r\n>\r\n *\r\n</span>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { CuiLabelComponent } from './label.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [CuiLabelComponent],\r\n exports: [CuiLabelComponent]\r\n})\r\nexport class CuiLabelModule {\r\n}\r\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\r\n\r\nimport type { CuiShape, CuiSize } from './letter-box.interfaces';\r\n\r\n@Component({\r\n selector: 'cui-letter-box',\r\n standalone: true,\r\n templateUrl: './letter-box.component.html',\r\n styleUrls: ['./letter-box.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiLetterBoxComponent {\r\n protected readonly DEFAULT_BACKGROUND_COLOR = 'var(--cui-magenta-500)';\r\n\r\n @Input({ required: true })\r\n public letter!: string;\r\n\r\n @Input()\r\n public backgroundColor?: string;\r\n\r\n @Input()\r\n public size: CuiSize = 'sm';\r\n\r\n @Input()\r\n public shape: CuiShape = null;\r\n\r\n @HostBinding('style.background-color')\r\n protected get _backgroundColor(): string {\r\n return this.backgroundColor ?? this.DEFAULT_BACKGROUND_COLOR;\r\n }\r\n\r\n @HostBinding('attr.data-size')\r\n protected get _size(): CuiSize {\r\n return this.size;\r\n }\r\n\r\n @HostBinding('attr.data-shape')\r\n protected get _shape(): CuiShape {\r\n return this.shape;\r\n }\r\n}\r\n","{{ letter }}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'input[type=\"radio\"][cuiRadio]',\r\n template: '',\r\n styleUrls: ['./radio.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiRadioComponent {\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { CuiRadioComponent } from './radio.component';\r\n\r\n@NgModule({\r\n declarations: [CuiRadioComponent],\r\n exports: [CuiRadioComponent]\r\n})\r\nexport class CuiRadioModule {\r\n}\r\n","import type { OnDestroy, OnInit, TemplateRef } from '@angular/core';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n inject,\r\n Input,\r\n ElementRef,\r\n ViewChild,\r\n HostBinding,\r\n ViewContainerRef,\r\n HostListener\r\n} from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport type { CuiOnChange, CuiOnTouched, CuiNullable } from '@cuby-ui/cdk';\r\nimport { CuiDestroyService } from '@cuby-ui/cdk';\r\nimport { cuiProvide, CuiClickOutsideDirective } from '@cuby-ui/cdk';\r\nimport { takeUntil } from 'rxjs';\r\n\r\nimport type { CuiOption } from '../../interfaces';\r\nimport type { CuiSizeMd, CuiSizeSm } from '../../types';\r\nimport { CUI_TEXT_FIELD_CONTROLLER, CUI_TEXT_FILED_CONTROLLER_PROVIDER } from '../../directives';\r\nimport { CUI_ROOT_SELECTOR } from '../root';\r\n\r\n@Component({\r\n selector: 'cui-select[options]',\r\n templateUrl: './select.template.html',\r\n styleUrls: ['./select.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n CUI_TEXT_FILED_CONTROLLER_PROVIDER,\r\n cuiProvide(NG_VALUE_ACCESSOR, CuiSelectComponent, true),\r\n CuiDestroyService\r\n ],\r\n hostDirectives: [CuiClickOutsideDirective]\r\n})\r\nexport class CuiSelectComponent implements ControlValueAccessor, OnInit, OnDestroy {\r\n private readonly element = inject(ElementRef).nativeElement;\r\n private readonly document = inject(DOCUMENT);\r\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\r\n private readonly viewContainerRef = inject(ViewContainerRef);\r\n private readonly destroy$ = inject(CuiDestroyService, {self: true});\r\n private readonly cuiTextFieldController = inject(CUI_TEXT_FIELD_CONTROLLER);\r\n private readonly cuiClickOutsideDirective = inject(CuiClickOutsideDirective, {self: true});\r\n\r\n protected readonly SPACE_BETWEEN_BUTTON_AND_OPTIONS = 3;\r\n\r\n protected isOpened = false;\r\n protected isOptionsListAbove = false;\r\n protected value!: CuiNullable<unknown>;\r\n protected onChange!: CuiOnChange<unknown>;\r\n protected onTouched!: CuiOnTouched;\r\n protected isDisabled!: boolean;\r\n protected selectedOption?: CuiOption;\r\n\r\n @Input()\r\n public options!: CuiOption[];\r\n\r\n @Input()\r\n public defaultOptionText?: string;\r\n\r\n @ViewChild('button')\r\n protected readonly button!: ElementRef<HTMLButtonElement>;\r\n\r\n @ViewChild('getOptionsListHeightContainer')\r\n protected readonly getOptionsListHeightContainer!: ElementRef<HTMLUListElement>;\r\n\r\n @ViewChild('backdrop')\r\n protected readonly backdrop!: TemplateRef<unknown>;\r\n\r\n @ViewChild('optionsWrapper')\r\n protected readonly optionsWrapper!: TemplateRef<unknown>;\r\n\r\n @HostBinding('style.--c-gap')\r\n protected gap = `${this.SPACE_BETWEEN_BUTTON_AND_OPTIONS}px`;\r\n\r\n protected get id(): string | undefined {\r\n return this.cuiTextFieldController.id;\r\n }\r\n\r\n protected get size(): CuiSizeSm | CuiSizeMd {\r\n return this.cuiTextFieldController.size;\r\n }\r\n\r\n protected get placeholder(): string | undefined {\r\n return this.cuiTextFieldController.placeholder;\r\n }\r\n\r\n protected get isError(): boolean {\r\n return this.cuiTextFieldController.isError;\r\n }\r\n\r\n protected trackByFn(_: number, item: CuiOption): string {\r\n return item.label;\r\n }\r\n\r\n public writeValue(value: unknown): void {\r\n this.value = value;\r\n // TODO: Непонятно, зачем нужно в construction вторая часть выражения\r\n this.selectedOption = this.options.find(option => option.value === value) ?? value as CuiOption;\r\n\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n public registerOnChange(fn: CuiOnChange<unknown>): void {\r\n this.onChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: CuiOnTouched): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.initClickOutsideSubscription();\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.clearViewContainerRef();\r\n }\r\n\r\n public setDisabledState(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n protected onSelect(event: Event, option: CuiOption): void {\r\n event.stopPropagation();\r\n\r\n if (option.isDisabled) {\r\n return\r\n }\r\n\r\n this.value = option.value;\r\n this.selectedOption = option;\r\n\r\n this.onChange(this.value);\r\n this.onSwitch();\r\n this.onTouched();\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n protected onSwitch(): void {\r\n if (!this.options.length && !this.defaultOptionText) {\r\n return;\r\n }\r\n\r\n if (!this.isOpened) {\r\n this.open();\r\n\r\n return;\r\n }\r\n\r\n this.close();\r\n }\r\n\r\n protected onClose(): void {\r\n this.close();\r\n }\r\n\r\n @HostListener('window:resize')\r\n protected onWindowResize(): void {\r\n this.button.nativeElement.blur();\r\n this.close();\r\n }\r\n\r\n private initClickOutsideSubscription(): void {\r\n this.cuiClickOutsideDirective.cuiClickOutside\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(() => {\r\n if (this.isOpened) {\r\n this.onTouched();\r\n }\r\n\r\n this.close();\r\n });\r\n }\r\n\r\n private open(): void {\r\n this.isOpened = true;\r\n\r\n const rootElement = this.document.querySelector(CUI_ROOT_SELECTOR)!;\r\n const {\r\n top: elementRectTop,\r\n left: elementRectLeft,\r\n bottom: elementRectBottom\r\n } = this.element.getBoundingClientRect();\r\n const distanceToBottom = this.document.documentElement.clientHeight\r\n - (elementRectBottom + this.SPACE_BETWEEN_BUTTON_AND_OPTIONS);\r\n const embeddedViewRef = this.viewContainerRef.createEmbeddedView(this.optionsWrapper);\r\n const node = embeddedViewRef.rootNodes[0];\r\n const nodeStyles = node.style;\r\n\r\n this.isOptionsListAbove = distanceToBottom < this.getOptionsListHeightContainer.nativeElement.offsetHeight;\r\n\r\n embeddedViewRef.detectChanges();\r\n\r\n nodeStyles.width = this.element.offsetWidth + 'px';\r\n nodeStyles.left = window.scrollX + elementRectLeft + 'px';\r\n\r\n if (this.isOptionsListAbove) {\r\n nodeStyles.top = window.scrollY + elementRectTop\r\n - this.getOptionsListHeightContainer.nativeElement.offsetHeight\r\n - this.SPACE_BETWEEN_BUTTON_AND_OPTIONS\r\n + 'px';\r\n } else {\r\n nodeStyles.top = window.scrollY + elementRectBottom + this.SPACE_BETWEEN_BUTTON_AND_OPTIONS + 'px';\r\n }\r\n\r\n rootElement.appendChild(this.viewContainerRef.createEmbeddedView(this.backdrop).rootNodes[0]);\r\n rootElement.appendChild(embeddedViewRef.rootNodes[0]);\r\n }\r\n\r\n private close(): void {\r\n this.isOpened = false;\r\n\r\n this.clearViewContainerRef();\r\n }\r\n\r\n private clearViewContainerRef(): void {\r\n this.viewContainerRef.clear();\r\n }\r\n}\r\n","<button\r\n #button\r\n type=\"button\"\r\n [attr.id]=\"id\"\r\n [attr.data-size]=\"size\"\r\n [disabled]=\"isDisabled\"\r\n class=\"c-button\"\r\n [class.c-button_active]=\"isOpened\"\r\n [class.c-button_with-error]=\"isError\"\r\n (click)=\"onSwitch()\"\r\n>\r\n <ng-container *ngIf=\"selectedOption; else placeholderTemplate\">\r\n {{ selectedOption.label }}\r\n </ng-container>\r\n <ng-template #placeholderTemplate>\r\n <span class=\"c-placeholder\">{{ placeholder }}</span>\r\n </ng-template>\r\n <cui-svg\r\n icon=\"cuiIconChevronDown\"\r\n color=\"var(--cui-base-500)\"\r\n />\r\n</button>\r\n<ng-template #backdrop>\r\n <div class=\"c-backdrop\"></div>\r\n</ng-template>\r\n<ng-template #optionsWrapper>\r\n <div\r\n cuiFocusTrap\r\n class=\"c-options__wrapper\"\r\n [class.c-options__wrapper_top]=\"isOptionsListAbove\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"optionsList\"/>\r\n </div>\r\n</ng-template>\r\n<div\r\n #getOptionsListHeightContainer\r\n class=\"c-get-options-list-height-container\"\r\n>\r\n <ng-container *ngTemplateOutlet=\"optionsList\"/>\r\n</div>\r\n<ng-template #optionsList>\r\n <ul\r\n class=\"c-options\"\r\n [class.c-options_top]=\"isOptionsListAbove\"\r\n >\r\n <ng-container *ngIf=\"options.length; else empty\">\r\n <li *ngFor=\"let option of options; trackBy: trackByFn\">\r\n <button\r\n type=\"button\"\r\n class=\"c-option-button\"\r\n [class.c-option-button_selected]=\"selectedOption === option\"\r\n [disabled]=\"option.isDisabled\"\r\n (click)=\"onSelect($event, option)\"\r\n >\r\n <span>{{ option.label }}</span>\r\n <cui-svg\r\n *ngIf=\"selectedOption === option\"\r\n icon=\"cuiIconCheckSm\"\r\n color=\"var(--cui-info)\"\r\n class=\"c-option-button__icon\"\r\n />\r\n </button>\r\n </li>\r\n </ng-container>\r\n <ng-template #empty>\r\n <li *ngIf=\"defaultOptionText\">\r\n <button\r\n type=\"button\"\r\n class=\"c-option-button\"\r\n (click)=\"onClose()\"\r\n >\r\n {{ defaultOptionText }}\r\n </button>\r\n </li>\r\n </ng-template>\r\n </ul>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { CuiSelectComponent } from './select.component';\r\nimport { CuiSvgModule } from '../svg';\r\nimport { CuiTextFieldControllerModule } from '../../directives';\r\nimport { CuiFocusTrapDirective } from '@cuby-ui/cdk';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CuiSvgModule,\r\n CuiFocusTrapDirective\r\n ],\r\n declarations: [CuiSelectComponent],\r\n exports: [\r\n CuiSelectComponent,\r\n CuiTextFieldControllerModule\r\n ]\r\n})\r\nexport class CuiSelectModule {\r\n}\r\n","import { ChangeDetectionStrategy, Component, ElementRef, HostListener, inject } from '@angular/core';\r\n\r\nexport const CUI_TAB_ACTIVATE = 'cui-tab-activate';\r\n\r\n@Component({\r\n selector: 'button[cuiTab]',\r\n templateUrl: './tab.template.html',\r\n styleUrls: ['./tab.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiTabComponent {\r\n protected readonly element = inject(ElementRef).nativeElement as HTMLButtonElement;\r\n\r\n @HostListener('click')\r\n protected onClick(): void {\r\n this.element.dispatchEvent(new CustomEvent(CUI_TAB_ACTIVATE, { bubbles: true }));\r\n }\r\n}\r\n","<ng-content />\r\n","import type { AfterViewChecked } from '@angular/core';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n inject,\r\n Input,\r\n Output\r\n} from '@angular/core';\r\n\r\nimport { CUI_TAB_ACTIVATE } from './tab';\r\n\r\n@Component({\r\n selector: 'cui-tabs',\r\n templateUrl: './tabs.template.html',\r\n styleUrls: ['./tabs.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiTabsComponent implements AfterViewChecked {\r\n private readonly element = inject(ElementRef).nativeElement as HTMLElement;\r\n\r\n private readonly activeElementClass = '_active';\r\n\r\n protected get tabs(): readonly HTMLElement[] {\r\n return Array.from(this.element.querySelectorAll<HTMLElement>('[cuiTab]'));\r\n }\r\n\r\n public get activeElement(): HTMLElement | null {\r\n return this.tabs[this.activeItemIndex] || null;\r\n }\r\n\r\n public ngAfterViewChecked(): void {\r\n this.changeActiveItem();\r\n }\r\n\r\n @Input()\r\n public activeItemIndex = 0;\r\n\r\n @Output()\r\n public readonly activeItemIndexChange = new EventEmitter<number>();\r\n\r\n @HostListener(CUI_TAB_ACTIVATE, ['$event'])\r\n protected onActivate(event: CustomEvent): void {\r\n event.stopPropagation();\r\n\r\n const index = this.tabs.findIndex((tab) => tab === event.target);\r\n\r\n if (index === this.activeItemIndex) {\r\n return;\r\n }\r\n\r\n this.activeItemIndexChange.emit(index);\r\n this.activeItemIndex = index;\r\n }\r\n\r\n private changeActiveItem(): void {\r\n this.tabs.forEach(nativeElement => {\r\n const active = nativeElement === this.activeElement;\r\n\r\n nativeElement.classList.toggle(this.activeElementClass, active);\r\n });\r\n }\r\n}\r\n","<ng-content select=\"[cuiTab]\" />\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { CuiTabsComponent } from './tabs.component';\r\nimport { CuiTabComponent } from './tab';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [CuiTabsComponent, CuiTabComponent],\r\n exports: [CuiTabsComponent, CuiTabComponent]\r\n})\r\nexport class CuiTabsModule {\r\n}\r\n","import { ChangeDetectionStrategy, Component, HostBinding, inject, Input } from '@angular/core';\r\nimport { CuiAutoResizingDirective } from '@cuby-ui/cdk';\r\n\r\nimport { CUI_TEXT_FIELD_CONTROLLER, CUI_TEXT_FILED_CONTROLLER_PROVIDER } from '../../directives';\r\n\r\n@Component({\r\n selector: 'textarea[cuiTextarea]',\r\n template: '',\r\n styleUrls: ['./textarea.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [CUI_TEXT_FILED_CONTROLLER_PROVIDER],\r\n hostDirectives: [CuiAutoResizingDirective]\r\n})\r\nexport class CuiTextareaComponent {\r\n private readonly cuiTextFieldController = inject(CUI_TEXT_FIELD_CONTROLLER);\r\n\r\n @Input()\r\n @HostBinding('rows')\r\n public rows = 4;\r\n\r\n @Input()\r\n @HostBinding('class._no-borders-and-paddings')\r\n public noBordersAndPaddings = false;\r\n\r\n @HostBinding('class._with-error')\r\n protected get isError(): boolean {\r\n return this.cuiTextFieldController.isError;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { CuiTextareaComponent } from './textarea.component';\r\n\r\n@NgModule({\r\n declarations: [CuiTextareaComponent],\r\n exports: [CuiTextareaComponent]\r\n})\r\nexport class CuiTextareaModule {\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'input[type=\"checkbox\"][cuiToggle]',\r\n template: '',\r\n styleUrls: ['./toggle.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiToggleComponent {\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { CuiToggleComponent } from './toggle.component';\r\n\r\n@NgModule({\r\n declarations: [CuiToggleComponent],\r\n exports: [CuiToggleComponent]\r\n})\r\nexport class CuiToggleModule {\r\n}\r\n","import { Injectable, signal } from '@angular/core';\r\n\r\nimport type { CuiDynamicComponent } from './render-dynamic-components.options';\r\n\r\n@Injectable()\r\nexport class CuiRenderDynamicComponentsService {\r\n private readonly dynamicComponentsSignal = signal<CuiDynamicComponent[]>([]);\r\n\r\n public readonly dynamicComponents = this.dynamicComponentsSignal.asReadonly();\r\n\r\n public open(dynamicComponent: CuiDynamicComponent): void {\r\n this.dynamicComponentsSignal.update((prevDynamicComponents) => [...prevDynamicComponents, dynamicComponent]);\r\n }\r\n\r\n public closeLast(): void {\r\n this.dynamicComponentsSignal.update((prevDynamicComponents) => prevDynamicComponents.slice(0, -1));\r\n }\r\n\r\n public closeAllExceptFirst(): void {\r\n this.dynamicComponentsSignal.update((prevDynamicComponents) => {\r\n const firstDynamicComponent = prevDynamicComponents[0];\r\n\r\n return firstDynamicComponent ? [firstDynamicComponent] : [];\r\n });\r\n }\r\n\r\n public closeAll(): void {\r\n this.dynamicComponentsSignal.set([]);\r\n }\r\n}\r\n","import { NgComponentOutlet } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\r\n\r\nimport { CuiRenderDynamicComponentsService } from './render-dynamic-components.service';\r\n\r\n@Component({\r\n selector: 'cui-render-dynamic-components',\r\n imports: [NgComponentOutlet],\r\n standalone: true,\r\n templateUrl: './render-dynamic-components.component.html',\r\n styleUrl: './render-dynamic-components.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiRenderDynamicComponentsComponent {\r\n private readonly renderDynamicComponentsService = inject(CuiRenderDynamicComponentsService);\r\n\r\n protected readonly dynamicComponents = this.renderDynamicComponentsService.dynamicComponents;\r\n}\r\n","@for (dynamicComponent of dynamicComponents(); let isLast = $last; track $index) {\r\n <div\r\n class=\"container\"\r\n [class.container_hidden]=\"!isLast\"\r\n >\r\n <ng-container *ngComponentOutlet=\"dynamicComponent.component; inputs: dynamicComponent.inputs\" />\r\n </div>\r\n}\r\n","import type { HttpEvent, HttpInterceptorFn } from '@angular/common/http';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport const cuiXNdjsonInterceptor: HttpInterceptorFn = (request, next) => {\r\n if (request.headers.get('Content-Type') !== 'application/x-ndjson') {\r\n return next(request);\r\n }\r\n\r\n return new Observable<HttpEvent<unknown>>((observer) => {\r\n const controller = new AbortController();\r\n const signal = controller.signal;\r\n\r\n (async (): Promise<void> => {\r\n try {\r\n const response = await fetch(request.urlWithParams, {\r\n method: request.method,\r\n headers: request.headers.keys().reduce((headers: Record<string, string>, key) => {\r\n headers[key] = request.headers.get(key)!;\r\n\r\n return headers;\r\n }, {}),\r\n body: request.body ? JSON.stringify(request.body) : null,\r\n signal\r\n });\r\n\r\n if (!response.ok) {\r\n const error = await response.json();\r\n\r\n observer.error(new HttpErrorResponse({ error }));\r\n\r\n return;\r\n }\r\n\r\n const reader = response.body!.getReader();\r\n const decoder = new TextDecoder();\r\n let buffer = '';\r\n\r\n for (;;) {\r\n const { done, value } = await reader.read();\r\n\r\n if (done) {\r\n observer.complete();\r\n\r\n return;\r\n }\r\n\r\n buffer += decoder.decode(value);\r\n const lines = buffer.split('\\n');\r\n buffer = lines.pop() ?? '';\r\n\r\n lines.forEach((line) => observer.next(JSON.parse(line)));\r\n }\r\n } catch (error) {\r\n observer.error(new HttpErrorResponse({ error }));\r\n }\r\n })();\r\n\r\n return () => controller.abort();\r\n });\r\n};\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.CuiSvgComponent","i2.CuiButtonComponent","i2.CuiNotificationComponent","i2","i3.CuiSvgComponent","i4.CuiButtonComponent","i1.CuiDialogsComponent","i2.CuiAlertsComponent","i3.CuiTooltips","i3.CuiButtonComponent","GAP","i1.CuiTooltipDriver","i2.CuiTooltipHover","i3.CuiTooltipPosition","i1.CuiTooltipDirective","i1","i1.CuiSvgComponent","i4.CuiSvgComponent"],"mappings":"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"}
1
+ {"version":3,"file":"cuby-ui-core.mjs","sources":["../../../projects/core/components/accordion/accordion.component.ts","../../../projects/core/components/accordion/accordion.template.html","../../../projects/core/components/accordion/accordion.directive.ts","../../../projects/core/components/button/button.options.ts","../../../projects/core/components/svg/svg.component.ts","../../../projects/core/components/svg/svg.template.html","../../../projects/core/components/button/button.component.ts","../../../projects/core/components/button/button.template.html","../../../projects/core/components/accordion/accordion-item/accordion-item.component.ts","../../../projects/core/components/accordion/accordion-item/accordion-item.template.html","../../../projects/core/components/svg/svg.module.ts","../../../projects/core/components/button/button.module.ts","../../../projects/core/components/accordion/accordion.module.ts","../../../projects/core/components/notification/notification.options.ts","../../../projects/core/components/notification/notification.component.ts","../../../projects/core/components/notification/notification.template.html","../../../projects/core/components/notification/notification.module.ts","../../../projects/core/components/alert/alert.tokens.ts","../../../projects/core/components/alert/alert.component.ts","../../../projects/core/components/alert/alert.template.html","../../../projects/core/components/alert/alerts.component.ts","../../../projects/core/components/alert/alerts.template.html","../../../projects/core/components/alert/alert.module.ts","../../../projects/core/components/alert/alert.service.ts","../../../projects/core/components/badge/badge.options.ts","../../../projects/core/components/badge/badge.component.ts","../../../projects/core/components/badge/badge.template.html","../../../projects/core/components/badge/badge.module.ts","../../../projects/core/components/banner/banner.options.ts","../../../projects/core/classes/accessors.ts","../../../projects/core/classes/vehicle.ts","../../../projects/core/classes/driver.ts","../../../projects/core/services/position.service.ts","../../../projects/core/services/theme.options.ts","../../../projects/core/services/theme.service.ts","../../../projects/core/services/loader.options.ts","../../../projects/core/services/loader.service.ts","../../../projects/core/services/visual-viewport.service.ts","../../../projects/core/components/banner/banner.component.ts","../../../projects/core/components/banner/banner.template.html","../../../projects/core/components/banner/banner.module.ts","../../../projects/core/components/breadcrumbs/breadcrumbs.component.ts","../../../projects/core/components/breadcrumbs/breadcrumbs.template.html","../../../projects/core/components/breadcrumbs/breadcrumb/breadcrumb.component.ts","../../../projects/core/components/breadcrumbs/breadcrumb/breadcrumb.template.html","../../../projects/core/components/breadcrumbs/breadcrumbs.module.ts","../../../projects/core/components/button-group/button-group.component.ts","../../../projects/core/components/button-group/button-group.template.html","../../../projects/core/components/button-group/button-group.module.ts","../../../projects/core/components/checkbox/checkbox.component.ts","../../../projects/core/components/checkbox/checkbox.module.ts","../../../projects/core/components/root/root.options.ts","../../../projects/core/components/dialog/dialog.tokens.ts","../../../projects/core/components/dialog/dialogs.component.ts","../../../projects/core/components/dialog/dialogs.template.html","../../../projects/core/animations/animations.ts","../../../projects/core/directives/tooltip/tooltip.service.ts","../../../projects/core/directives/tooltip/tooltips.component.ts","../../../projects/core/directives/tooltip/tooltips.template.html","../../../projects/core/components/root/root.component.ts","../../../projects/core/components/root/root.template.html","../../../projects/core/components/dialog/dialog.component.ts","../../../projects/core/components/dialog/dialog.template.html","../../../projects/core/components/dialog/dialog-actions/dialog-actions.component.ts","../../../projects/core/components/dialog/dialog-actions/dialog-actions.template.html","../../../projects/core/components/dialog/dialog-header/dialog-header.component.ts","../../../projects/core/components/dialog/dialog-header/dialog-header.template.html","../../../projects/core/components/dialog/dialog.module.ts","../../../projects/core/components/dialog/dialog.service.ts","../../../projects/core/tokens/reduced-motion.ts","../../../projects/core/tokens/animations-speed.ts","../../../projects/core/tokens/viewport.ts","../../../projects/core/utils/format/remove-spaces.ts","../../../projects/core/utils/format/replace.ts","../../../projects/core/utils/miscellaneous/is-obscured.ts","../../../projects/core/utils/miscellaneous/override-options.ts","../../../projects/core/utils/miscellaneous/to-animation-options.ts","../../../projects/core/directives/tooltip/tooltip.providers.ts","../../../projects/core/directives/tooltip/tooltip-driver.directive.ts","../../../projects/core/directives/tooltip/tooltip-options.directive.ts","../../../projects/core/directives/tooltip/tooltip-hover.directive.ts","../../../projects/core/directives/tooltip/tooltip-position.directive.ts","../../../projects/core/directives/tooltip/tooltip.directive.ts","../../../projects/core/directives/tooltip/tooltip-pointer.directive.ts","../../../projects/core/directives/tooltip/tooltip-unstyled.component.ts","../../../projects/core/directives/tooltip/tooltip.component.ts","../../../projects/core/directives/tooltip/tooltip-describe.directive.ts","../../../projects/core/directives/tooltip/tooltip-host.directive.ts","../../../projects/core/directives/tooltip/tooltip-manual.directive.ts","../../../projects/core/directives/tooltip/tooltip-overflow.directive.ts","../../../projects/core/directives/tooltip/tooltip.ts","../../../projects/core/components/root/root.module.ts","../../../projects/core/components/context-menu/context-menu.component.ts","../../../projects/core/components/context-menu/context-menu.component.html","../../../projects/core/components/context-menu/context-menu.module.ts","../../../projects/core/components/dropdown/dropdown.directive.ts","../../../projects/core/components/dropdown/dropdown-wrapper.component.ts","../../../projects/core/components/dropdown/dropdown-wrapper.component.html","../../../projects/core/components/form-field/form-field.component.ts","../../../projects/core/components/form-field/form-field.template.html","../../../projects/core/components/form-field/form-field.module.ts","../../../projects/core/components/hint/hint.component.ts","../../../projects/core/components/hint/hint.template.html","../../../projects/core/components/hint/hint.module.ts","../../../projects/core/components/icon-button/icon-button.component.ts","../../../projects/core/components/icon-button/icon-button.template.html","../../../projects/core/components/icon-button/icon-button.module.ts","../../../projects/core/directives/text-field-controller/text-field.controller.ts","../../../projects/core/directives/text-field-controller/text-field-icon-left.directive.ts","../../../projects/core/directives/text-field-controller/text-field-id.directive.ts","../../../projects/core/directives/text-field-controller/text-field-is-error.directive.ts","../../../projects/core/directives/text-field-controller/text-field-placeholder.directive.ts","../../../projects/core/directives/text-field-controller/text-field-size.directive.ts","../../../projects/core/directives/text-field-controller/text-field-controller.module.ts","../../../projects/core/directives/text-field-controller/text-field-controller.provider.ts","../../../projects/core/components/input-number/input-number.component.ts","../../../projects/core/components/input-number/input-number.template.html","../../../projects/core/components/input-number/input-number.module.ts","../../../projects/core/components/input-password/input-password.component.ts","../../../projects/core/components/input-password/input-password.template.html","../../../projects/core/components/input-password/input-password.module.ts","../../../projects/core/components/input-text/input-text.component.ts","../../../projects/core/components/input-text/input-text.template.html","../../../projects/core/components/input-text/input-text.module.ts","../../../projects/core/components/input-time/input-time.options.ts","../../../projects/core/components/input-time/input-time.component.ts","../../../projects/core/components/input-time/input-time.template.html","../../../projects/core/components/input-time/input-time.module.ts","../../../projects/core/components/label/label.component.ts","../../../projects/core/components/label/label.template.html","../../../projects/core/components/label/label.module.ts","../../../projects/core/components/letter-box/letter-box.component.ts","../../../projects/core/components/letter-box/letter-box.component.html","../../../projects/core/components/radio/radio.component.ts","../../../projects/core/components/radio/radio.module.ts","../../../projects/core/components/select/select.component.ts","../../../projects/core/components/select/select.template.html","../../../projects/core/components/select/select.module.ts","../../../projects/core/components/tabs/tab/tab.component.ts","../../../projects/core/components/tabs/tab/tab.template.html","../../../projects/core/components/tabs/tabs.component.ts","../../../projects/core/components/tabs/tabs.template.html","../../../projects/core/components/tabs/tabs.module.ts","../../../projects/core/components/textarea/textarea.component.ts","../../../projects/core/components/textarea/textarea.module.ts","../../../projects/core/components/toggle/toggle.component.ts","../../../projects/core/components/toggle/toggle.module.ts","../../../projects/core/components/render-dynamic-components/render-dynamic-components.service.ts","../../../projects/core/components/render-dynamic-components/render-dynamic-components.component.ts","../../../projects/core/components/render-dynamic-components/render-dynamic-components.component.html","../../../projects/core/interceptors/x-ndjson.interceptor.ts","../../../projects/core/interceptors/loader.interceptor.ts","../../../projects/core/cuby-ui-core.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'cui-accordion',\r\n templateUrl: './accordion.template.html',\r\n styleUrls: ['./accordion.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiAccordionComponent {\r\n}\r\n","<ng-content select=\"cui-accordion-item\"></ng-content>\r\n","import { Directive, effect, inject, input, model, Renderer2 } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[cuiAccordion]',\r\n standalone: true,\r\n host: {\r\n '(click)': 'onToggle($event)'\r\n }\r\n})\r\nexport class CuiAccordionDirective {\r\n private readonly renderer = inject(Renderer2);\r\n\r\n private wrapper!: HTMLElement;\r\n\r\n public readonly content = input.required<HTMLElement>();\r\n public readonly isOpen = model(true);\r\n\r\n constructor() {\r\n this.initWrapperEffect();\r\n this.initOpenChangesEffect();\r\n }\r\n\r\n protected onToggle(event: Event): void {\r\n if (event.defaultPrevented) {\r\n return;\r\n }\r\n\r\n this.isOpen.update((prev) => !prev);\r\n }\r\n\r\n private initWrapperEffect(): void {\r\n const effectRef = effect(() => {\r\n const content = this.content();\r\n\r\n this.wrapper = this.renderer.createElement('div');\r\n\r\n content.after(this.wrapper);\r\n this.renderer.appendChild(this.wrapper, content);\r\n\r\n effectRef.destroy();\r\n });\r\n }\r\n\r\n private initOpenChangesEffect(): void {\r\n effect(() => {\r\n const isOpen = this.isOpen();\r\n const doAction = isOpen ? this.close : this.open;\r\n\r\n doAction.call(this, this.wrapper);\r\n });\r\n }\r\n\r\n private open(wrapper: HTMLElement): void {\r\n this.renderer.setStyle(wrapper, 'visibility', 'hidden');\r\n this.renderer.setStyle(wrapper, 'height', '0');\r\n this.renderer.setStyle(wrapper, 'overflow', 'hidden')\r\n }\r\n\r\n private close(wrapper: HTMLElement): void {\r\n this.renderer.setStyle(wrapper, 'visibility', 'visible');\r\n this.renderer.setStyle(wrapper, 'height', '');\r\n this.renderer.setStyle(wrapper, 'overflow', '');\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nimport type {\r\n CuiAppearanceAction,\r\n CuiAppearanceDestructive,\r\n CuiAppearanceFlat,\r\n CuiAppearanceGhost,\r\n CuiAppearanceLink,\r\n CuiAppearanceOutlined,\r\n CuiAppearanceOutlinedGray,\r\n CuiAppearanceSecondary,\r\n CuiShapeRounded,\r\n CuiSizeMd,\r\n CuiSizeSm,\r\n CuiSizeXs,\r\n CuiSizeXxs\r\n} from '../../types';\r\n\r\nexport interface CuiButtonOptions {\r\n readonly appearance:\r\n | CuiAppearanceAction\r\n | CuiAppearanceSecondary\r\n | CuiAppearanceOutlined\r\n | CuiAppearanceOutlinedGray\r\n | CuiAppearanceGhost\r\n | CuiAppearanceFlat\r\n | CuiAppearanceDestructive\r\n | CuiAppearanceLink\r\n readonly shape: CuiShapeRounded | null;\r\n readonly size:\r\n | CuiSizeXxs\r\n | CuiSizeXs\r\n | CuiSizeSm\r\n | CuiSizeMd;\r\n}\r\n\r\nexport const CUI_BUTTON_DEFAULT_OPTIONS: CuiButtonOptions = {\r\n appearance: 'action',\r\n shape: null,\r\n size: 'sm'\r\n};\r\n\r\nexport const CUI_BUTTON_OPTIONS = new InjectionToken('', {\r\n factory: () => CUI_BUTTON_DEFAULT_OPTIONS\r\n});\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n HostBinding,\r\n inject,\r\n Input\r\n} from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\nimport type { CuiIcon } from '@cuby-ui/icons';\r\nimport { CUI_ICONS, cuiIsIcon } from '@cuby-ui/icons';\r\n\r\n@Component({\r\n selector: 'cui-svg[icon]',\r\n templateUrl: './svg.template.html',\r\n styleUrls: ['./svg.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiSvgComponent {\r\n private readonly domSanitizer = inject(DomSanitizer);\r\n\r\n protected safeSvgContent!: SafeHtml;\r\n\r\n @Input()\r\n public width?: number;\r\n\r\n @Input()\r\n public height?: number;\r\n\r\n @Input()\r\n @HostBinding('style.--stroke-width')\r\n public strokeWidth?: number;\r\n\r\n @Input()\r\n @HostBinding('style.--color')\r\n public color?: string;\r\n\r\n @Input()\r\n public set icon(icon: CuiIcon | string) {\r\n // TODO: В данном случае подключаются все иконки (вероятно, можно как-то оптимизировано их подключать)\r\n this.safeSvgContent = this.domSanitizer.bypassSecurityTrustHtml(cuiIsIcon(icon)\r\n ? CUI_ICONS[icon]\r\n : icon);\r\n }\r\n\r\n @HostBinding('class._with-stroke-width')\r\n public get isWithStrokeWidth(): boolean {\r\n return !!this.strokeWidth;\r\n }\r\n\r\n @HostBinding('class._with-color')\r\n public get isWithColor(): boolean {\r\n return !!this.color;\r\n }\r\n}\r\n","<span\r\n [innerHTML]=\"safeSvgContent\"\r\n [style.width.px]=\"width\"\r\n [style.height.px]=\"height\"\r\n></span>","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n HostBinding,\r\n inject,\r\n Input,\r\n ViewChild,\r\n OnInit\r\n} from '@angular/core';\r\nimport type { CuiIcon } from '@cuby-ui/icons';\r\nimport { CUI_WINDOW } from '@cuby-ui/cdk';\r\n\r\nimport { CUI_BUTTON_OPTIONS, CuiButtonOptions } from './button.options';\r\n\r\n@Component({\r\n selector: 'button[cuiButton], a[cuiButton]',\r\n templateUrl: './button.template.html',\r\n styleUrls: ['./button.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiButtonComponent implements CuiButtonOptions, OnInit {\r\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\r\n private readonly element = inject(ElementRef).nativeElement as HTMLButtonElement;\r\n private readonly window = inject(CUI_WINDOW);\r\n private readonly cuiButtonOptions = inject(CUI_BUTTON_OPTIONS);\r\n\r\n protected readonly AppearanceIconColors: Record<CuiButtonOptions['appearance'], string> = {\r\n action: '--c-action-icon-color',\r\n secondary: '--c-secondary-icon-color',\r\n outlined: '--c-outlined-icon-color',\r\n 'outlined-gray': '--c-outlined-gray-icon-color',\r\n ghost: '--c-ghost-icon-color',\r\n flat: '--c-flat-icon-color',\r\n destructive: '--c-destructive-icon-color',\r\n link: '--c-link-icon-color'\r\n };\r\n protected readonly COLOR_BASE_500 = 'var(--cui-base-500)';\r\n protected readonly BUTTON_ICONS_COLOR_BASE_500: CuiButtonOptions['appearance'][] = [\r\n 'secondary',\r\n 'outlined',\r\n 'outlined-gray',\r\n 'ghost'\r\n ];\r\n\r\n protected _appearance = this.cuiButtonOptions.appearance;\r\n protected iconColor = this.getIconColor(this._appearance);\r\n protected _size = this.cuiButtonOptions.size;\r\n protected iconDimensions = {\r\n width: 20,\r\n height: 20\r\n };\r\n\r\n @Input()\r\n @HostBinding('attr.data-shape')\r\n public shape = this.cuiButtonOptions.shape;\r\n\r\n @Input()\r\n @HostBinding('class._disabled')\r\n public disabled = false;\r\n\r\n @Input()\r\n @HostBinding('class._loading')\r\n public isLoaderShown = false;\r\n\r\n @Input()\r\n public icon?: CuiIcon | string;\r\n\r\n @Input()\r\n public iconRight?: CuiIcon | string;\r\n\r\n @Input()\r\n @HostBinding('attr.data-appearance')\r\n public get appearance(): CuiButtonOptions['appearance'] {\r\n return this._appearance;\r\n }\r\n\r\n public set appearance(appearance: CuiButtonOptions['appearance']) {\r\n this._appearance = appearance;\r\n\r\n this.changeIconColor();\r\n }\r\n\r\n @Input()\r\n @HostBinding('attr.data-size')\r\n public get size(): CuiButtonOptions['size'] {\r\n return this._size;\r\n }\r\n\r\n public set size(size: CuiButtonOptions['size']) {\r\n this._size = size;\r\n\r\n if (size === 'xxs') {\r\n this.iconDimensions = {\r\n width: 16,\r\n height: 16\r\n };\r\n\r\n return;\r\n }\r\n\r\n this.iconDimensions = {\r\n width: 20,\r\n height: 20\r\n };\r\n }\r\n\r\n @HostBinding('class._only-icon')\r\n protected containsOnlyIcon = false;\r\n\r\n @HostBinding('disabled')\r\n protected get isDisabled(): boolean {\r\n return this.disabled || this.isLoaderShown;\r\n }\r\n\r\n @ViewChild('content')\r\n protected content!: ElementRef<HTMLSpanElement>;\r\n\r\n public ngOnInit(): void {\r\n this.initIconColor();\r\n }\r\n\r\n private initIconColor(): void {\r\n this.changeIconColor();\r\n }\r\n\r\n private changeIconColor(): void {\r\n Promise.resolve().then(() => {\r\n this.iconColor = this.getIconColor(this._appearance);\r\n\r\n this.changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n private getIconColor(appearance: CuiButtonOptions['appearance']): string {\r\n const customIconColor = this.window\r\n .getComputedStyle(this.element)\r\n .getPropertyValue(this.AppearanceIconColors[appearance]);\r\n\r\n if (customIconColor) {\r\n return customIconColor;\r\n }\r\n\r\n if (this.BUTTON_ICONS_COLOR_BASE_500.includes(appearance)) {\r\n return this.COLOR_BASE_500;\r\n }\r\n\r\n return 'currentColor';\r\n }\r\n}\r\n","<span\r\n class=\"c-wrapper\"\r\n [class.c-wrapper_invisible]=\"isLoaderShown\"\r\n>\r\n <cui-svg\r\n *ngIf=\"icon\"\r\n [icon]=\"icon\"\r\n [width]=\"iconDimensions.width\"\r\n [height]=\"iconDimensions.height\"\r\n [color]=\"iconColor\"\r\n ></cui-svg>\r\n <span\r\n #content\r\n class=\"c-content\"\r\n ><ng-content></ng-content></span>\r\n <cui-svg\r\n *ngIf=\"iconRight\"\r\n [icon]=\"iconRight\"\r\n [width]=\"iconDimensions.width\"\r\n [height]=\"iconDimensions.height\"\r\n [color]=\"iconColor\"\r\n ></cui-svg>\r\n</span>\r\n<cui-svg\r\n *ngIf=\"isLoaderShown\"\r\n icon=\"cuiIconLoading\"\r\n class=\"c-loader\"\r\n></cui-svg>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport type { CuiIcon } from '@cuby-ui/icons';\r\nimport { CuiAccordionAppearance } from './accordion-item.options';\r\n\r\n@Component({\r\n selector: 'cui-accordion-item',\r\n templateUrl: './accordion-item.template.html',\r\n styleUrls: ['./accordion-item.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiAccordionItemComponent {\r\n @Input()\r\n public isOpen = true;\r\n\r\n @Input()\r\n public appearance: CuiAccordionAppearance = 'default';\r\n\r\n @Output()\r\n public readonly isOpenChange = new EventEmitter<boolean>();\r\n\r\n protected get buttonIcon(): CuiIcon {\r\n return this.isOpen ? 'cuiIconChevronDown' : 'cuiIconChevronRight';\r\n }\r\n\r\n @HostBinding('attr.appearance')\r\n public get _appearance(): string {\r\n return this.appearance;\r\n }\r\n\r\n protected onRowToggle(): void {\r\n this.isOpen = !this.isOpen;\r\n\r\n this.isOpenChange.emit(this.isOpen);\r\n }\r\n}\r\n","<header class=\"c-header\">\r\n <button\r\n cuiButton\r\n appearance=\"ghost\"\r\n size=\"xxs\"\r\n [icon]=\"buttonIcon\"\r\n (click)=\"onRowToggle()\"\r\n ></button>\r\n <div class=\"c-header__wrapper\">\r\n <ng-content></ng-content>\r\n </div>\r\n</header>\r\n<div *ngIf=\"isOpen\" class=\"c-content\">\r\n <ng-content select=\"[cuiAccordionItemContent]\"></ng-content>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { CuiSvgComponent } from './svg.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [CuiSvgComponent],\r\n exports: [CuiSvgComponent]\r\n})\r\nexport class CuiSvgModule {\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { CuiButtonComponent } from './button.component';\r\nimport { CuiSvgModule } from '../svg';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CuiSvgModule\r\n ],\r\n declarations: [CuiButtonComponent],\r\n exports: [CuiButtonComponent]\r\n})\r\nexport class CuiButtonModule {\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { CuiAccordionComponent } from './accordion.component';\r\nimport { CuiAccordionItemComponent } from './accordion-item/accordion-item.component';\r\nimport { CuiSvgModule } from '../svg';\r\nimport { CuiButtonModule } from '../button';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CuiSvgModule,\r\n CuiButtonModule\r\n ],\r\n declarations: [\r\n CuiAccordionComponent,\r\n CuiAccordionItemComponent\r\n ],\r\n exports: [\r\n CuiAccordionComponent,\r\n CuiAccordionItemComponent\r\n ]\r\n})\r\nexport class CuiAccordionModule {\r\n}\r\n","import { cuiCreateToken } from '@cuby-ui/cdk';\r\n\r\nimport type { CuiStatus } from '../../types';\r\n\r\nexport type CuiNotificationIcons = Record<CuiStatus, { icon: string }>;\r\n\r\nexport type CuiNotificationIconOptions = Record<CuiStatus, { color: string }>;\r\n\r\nexport interface CuiNotificationOptions {\r\n readonly status: CuiStatus;\r\n readonly mode: 'default' | 'light';\r\n}\r\n\r\nexport const CUI_NOTIFICATION_DEFAULT_OPTIONS: CuiNotificationOptions = {\r\n status: 'info',\r\n mode: 'default'\r\n};\r\n\r\nexport const CUI_NOTIFICATION_OPTIONS = cuiCreateToken(CUI_NOTIFICATION_DEFAULT_OPTIONS);\r\n\r\nexport const CUI_NOTIFICATION_ICONS: CuiNotificationIcons = {\r\n info: {\r\n icon: 'cuiIconInfo'\r\n },\r\n success: {\r\n icon: 'cuiIconCheckCircle'\r\n },\r\n alert: {\r\n icon: 'cuiIconAlertTriangle'\r\n },\r\n error: {\r\n icon: 'cuiIconXCircle'\r\n },\r\n} as const;\r\n\r\nexport const CUI_NOTIFICATION_ICON_OPTIONS_DEFAULT_MODE: CuiNotificationIconOptions = {\r\n info: {\r\n color: 'var(--c-info-icon-color)'\r\n },\r\n success: {\r\n color: 'var(--cui-green-500)'\r\n },\r\n alert: {\r\n color: 'var(--cui-yellow-400)'\r\n },\r\n error: {\r\n color: 'var(--cui-danger)'\r\n },\r\n} as const;\r\n\r\nexport const CUI_NOTIFICATION_ICON_OPTIONS_LIGHT_MODE: CuiNotificationIconOptions = {\r\n info: {\r\n color: 'var(--cui-info)'\r\n },\r\n success: {\r\n color: 'var(--cui-green-700)'\r\n },\r\n alert: {\r\n color: 'var(--cui-yellow-400)'\r\n },\r\n error: {\r\n color: 'var(--cui-danger)'\r\n },\r\n} as const;\r\n\r\nexport const CUI_NOTIFICATION_ICON_OPTIONS: Record<CuiNotificationOptions['mode'], CuiNotificationIconOptions> = {\r\n default: CUI_NOTIFICATION_ICON_OPTIONS_DEFAULT_MODE,\r\n light: CUI_NOTIFICATION_ICON_OPTIONS_LIGHT_MODE\r\n}","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n HostBinding,\r\n inject,\r\n Input,\r\n OnInit,\r\n Output\r\n} from '@angular/core';\r\nimport {\r\n CUI_NOTIFICATION_ICON_OPTIONS,\r\n CuiNotificationIconOptions,\r\n CuiNotificationOptions\r\n} from './notification.options';\r\nimport { CUI_NOTIFICATION_OPTIONS, CUI_NOTIFICATION_ICONS } from './notification.options';\r\n\r\n@Component({\r\n selector: 'cui-notification',\r\n templateUrl: './notification.template.html',\r\n styleUrls: ['./notification.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiNotificationComponent implements CuiNotificationOptions, OnInit {\r\n private readonly cuiNotificationOptions = inject(CUI_NOTIFICATION_OPTIONS);\r\n\r\n protected readonly ICONS = CUI_NOTIFICATION_ICONS;\r\n protected readonly ICON_OPTIONS = CUI_NOTIFICATION_ICON_OPTIONS;\r\n\r\n protected iconOptions!: CuiNotificationIconOptions;\r\n\r\n @Input()\r\n @HostBinding('attr.data-status')\r\n public status = this.cuiNotificationOptions.status;\r\n\r\n @Input()\r\n @HostBinding('attr.data-mode')\r\n public mode = this.cuiNotificationOptions.mode;\r\n\r\n @Input()\r\n public isCloseable = false;\r\n\r\n @Output()\r\n public readonly closed = new EventEmitter<void>();\r\n\r\n public ngOnInit(): void {\r\n this.initIconOptions();\r\n }\r\n\r\n protected onClose(): void {\r\n this.closed.next();\r\n }\r\n\r\n private initIconOptions(): void {\r\n this.iconOptions = this.ICON_OPTIONS[this.mode];\r\n }\r\n}\r\n","<cui-svg\r\n class=\"c-icon\"\r\n [icon]=\"ICONS[status].icon\"\r\n [color]=\"iconOptions[status].color\"\r\n></cui-svg>\r\n<div class=\"c-content\">\r\n <ng-content></ng-content>\r\n</div>\r\n<button\r\n *ngIf=\"isCloseable\"\r\n class=\"c-button\"\r\n (click)=\"onClose()\"\r\n>\r\n <cui-svg\r\n icon=\"cuiIconX\"\r\n color=\"var(--cui-gray-0)\"\r\n />\r\n</button>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { CuiSvgModule } from '../svg';\r\nimport { CuiNotificationComponent } from './notification.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CuiSvgModule\r\n ],\r\n declarations: [CuiNotificationComponent],\r\n exports: [CuiNotificationComponent]\r\n})\r\nexport class CuiNotificationModule {\r\n}\r\n","import { inject, InjectionToken } from '@angular/core';\r\nimport { cuiCreateTokenFromFactory, CuiPopover } from '@cuby-ui/cdk';\r\nimport { cuiCreateToken } from '@cuby-ui/cdk';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\nimport type { CuiAlertOptions } from './alert.interfaces';\r\nimport { CUI_NOTIFICATION_OPTIONS } from '../notification';\r\n\r\nexport const CUI_ALERTS = cuiCreateToken(\r\n new BehaviorSubject<ReadonlyArray<CuiPopover<CuiAlertOptions>>>([])\r\n);\r\n\r\nexport const CUI_ALERT_DEFAULT_OPTIONS: Omit<CuiAlertOptions, 'status'> = {\r\n label: '',\r\n needAutoClose: true,\r\n isCloseable: true,\r\n mode: 'default',\r\n position: 'right',\r\n resizing: 'fixed'\r\n};\r\n\r\nexport const CUI_ALERT_OPTIONS = cuiCreateTokenFromFactory(\r\n () => ({\r\n ...CUI_ALERT_DEFAULT_OPTIONS,\r\n ...inject(CUI_NOTIFICATION_OPTIONS)\r\n })\r\n);\r\n\r\nexport const CUI_ALERT_CONTEXT = new InjectionToken<CuiPopover<CuiAlertOptions>>('');\r\n","import type { OnInit } from '@angular/core';\r\nimport { ChangeDetectionStrategy, Component, inject, HostBinding } from '@angular/core';\r\n\r\nimport { CUI_ALERT_CONTEXT } from './alert.tokens';\r\nimport type { CuiAlertResizing } from './alert.types';\r\n\r\n@Component({\r\n selector: 'cui-alert',\r\n templateUrl: './alert.template.html',\r\n styleUrls: ['./alert.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiAlertComponent implements OnInit {\r\n protected readonly context = inject(CUI_ALERT_CONTEXT);\r\n\r\n protected readonly AUTO_CLOSE_DURATION_IN_MILLISECONDS = 3000;\r\n\r\n @HostBinding('attr.data-resizing')\r\n protected get resizing(): CuiAlertResizing {\r\n return this.context.resizing;\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.initAutoClose();\r\n }\r\n\r\n protected onClosed(): void {\r\n this.context.$implicit.complete();\r\n }\r\n\r\n private initAutoClose(): void {\r\n if (!this.context.needAutoClose) {\r\n return;\r\n }\r\n\r\n setTimeout(this.onClosed.bind(this), this.AUTO_CLOSE_DURATION_IN_MILLISECONDS);\r\n }\r\n}\r\n","<cui-notification\r\n [status]=\"context.status\"\r\n [mode]=\"context.mode\"\r\n [isCloseable]=\"context.isCloseable\"\r\n (closed)=\"onClosed()\"\r\n>\r\n <h2\r\n *ngIf=\"context.label\"\r\n class=\"c-heading\"\r\n >\r\n {{ context.label }}\r\n </h2>\r\n {{ context.content }}\r\n</cui-notification>\r\n","import type { OnInit } from '@angular/core';\r\nimport { ChangeDetectionStrategy, Component, inject, Injector } from '@angular/core';\r\nimport type { CuiPopover } from '@cuby-ui/cdk';\r\nimport { CuiDestroyService } from '@cuby-ui/cdk';\r\nimport type { Observable } from 'rxjs';\r\nimport { takeUntil } from 'rxjs';\r\n\r\nimport { CUI_ALERT_CONTEXT, CUI_ALERTS } from './alert.tokens';\r\nimport type { CuiAlertOptions } from './alert.interfaces';\r\n\r\n@Component({\r\n selector: 'cui-alerts',\r\n templateUrl: './alerts.template.html',\r\n styleUrls: ['./alerts.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [CuiDestroyService]\r\n})\r\nexport class CuiAlertsComponent implements OnInit {\r\n private readonly destroy$ = inject(CuiDestroyService, { self: true });\r\n\r\n protected readonly alerts$: Observable<ReadonlyArray<CuiPopover<CuiAlertOptions>>> = inject(CUI_ALERTS);\r\n protected alertInjectors!: ReadonlyArray<Injector>;\r\n\r\n public ngOnInit(): void {\r\n this.initAlertInjectorsSubscription();\r\n }\r\n\r\n protected trackByFn(_: number, alert: CuiPopover<CuiAlertOptions>): string {\r\n return alert.id;\r\n }\r\n\r\n protected alertsMatcher(alert: CuiPopover<CuiAlertOptions>, position: string): boolean {\r\n return alert.position === position;\r\n }\r\n\r\n protected initAlertInjectorsSubscription(): void {\r\n this.alerts$\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(dialogs => this.alertInjectors = dialogs.map(useValue => Injector.create({\r\n providers: [{ provide: CUI_ALERT_CONTEXT, useValue }]\r\n })));\r\n }\r\n}\r\n","<ng-container *cuiLet=\"alerts$ | async as alerts\">\r\n <div class=\"c-wrapper c-wrapper_position_center\">\r\n <ng-container *ngFor=\"let alert of alerts! | cuiFilter: alertsMatcher: 'center'; let i = index; trackBy: trackByFn\">\r\n <ng-container *ngComponentOutlet=\"alert.component; injector: alertInjectors[i]\" />\r\n </ng-container>\r\n </div>\r\n <div class=\"c-wrapper c-wrapper_position_right\">\r\n <ng-container *ngFor=\"let alert of alerts! | cuiFilter: alertsMatcher: 'right'; let i = index; trackBy: trackByFn\">\r\n <ng-container *ngComponentOutlet=\"alert.component; injector: alertInjectors[i]\" />\r\n </ng-container>\r\n </div>\r\n</ng-container>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CuiFilterPipe, CuiLetDirective } from '@cuby-ui/cdk';\r\n\r\nimport { CuiAlertComponent } from './alert.component';\r\nimport { CuiAlertsComponent } from './alerts.component';\r\nimport { CuiNotificationModule } from '../notification';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CuiFilterPipe,\r\n CuiNotificationModule,\r\n CuiLetDirective\r\n ],\r\n declarations: [\r\n CuiAlertComponent,\r\n CuiAlertsComponent\r\n ],\r\n exports: [\r\n CuiAlertComponent,\r\n CuiAlertComponent,\r\n CuiAlertsComponent\r\n ]\r\n})\r\nexport class CuiAlertModule {\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { CuiPopoverService } from '@cuby-ui/cdk';\r\n\r\nimport { CUI_ALERT_OPTIONS, CUI_ALERTS } from './alert.tokens';\r\nimport { CuiAlertComponent } from './alert.component';\r\nimport type { CuiAlertOptions } from './alert.interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n useFactory: () => new CuiAlertService(CUI_ALERTS, CuiAlertComponent, inject(CUI_ALERT_OPTIONS))\r\n})\r\nexport class CuiAlertService extends CuiPopoverService<CuiAlertOptions> {\r\n}\r\n","import { cuiCreateToken } from '@cuby-ui/cdk';\r\n\r\nimport type { CuiSizeMd, CuiSizeSm } from '../../types';\r\n\r\nexport interface CuiBadgeOptions {\r\n readonly color: 'light-blue' | 'yellow' | 'green' | 'gray' | 'dark-gray' | 'red' | 'violet';\r\n readonly size: CuiSizeSm | CuiSizeMd;\r\n readonly isWithDot: boolean;\r\n}\r\n\r\nexport const CUI_BADGE_DEFAULT_OPTIONS: CuiBadgeOptions = {\r\n color: 'light-blue',\r\n size: 'sm',\r\n isWithDot: false\r\n};\r\n\r\nexport const CUI_BADGE_OPTIONS = cuiCreateToken(CUI_BADGE_DEFAULT_OPTIONS);","import { ChangeDetectionStrategy, Component, HostBinding, inject, Input } from '@angular/core';\r\n\r\nimport type { CuiBadgeOptions } from './badge.options';\r\nimport { CUI_BADGE_OPTIONS } from './badge.options';\r\n\r\n@Component({\r\n selector: 'cui-badge',\r\n templateUrl: './badge.template.html',\r\n styleUrls: ['./badge.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiBadgeComponent implements CuiBadgeOptions {\r\n private readonly options = inject(CUI_BADGE_OPTIONS);\r\n\r\n @Input()\r\n @HostBinding('attr.data-color')\r\n public color = this.options.color;\r\n\r\n @Input()\r\n @HostBinding('attr.data-size')\r\n public size = this.options.size;\r\n\r\n @Input()\r\n public isWithDot = this.options.isWithDot;\r\n}\r\n","<span\r\n *ngIf=\"isWithDot\"\r\n class=\"c-dots\"\r\n></span>\r\n<ng-content />","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { CuiBadgeComponent } from './badge.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [CuiBadgeComponent],\r\n exports: [CuiBadgeComponent]\r\n})\r\nexport class CuiBadgeModule {\r\n}\r\n","import type { CuiStatus } from '../../types';\r\nimport { cuiCreateToken } from '@cuby-ui/cdk';\r\nimport type { CuiIcon } from '@cuby-ui/icons';\r\n\r\nexport type CuiBannerIconOptions = {\r\n [k in CuiStatus]: {\r\n icon: CuiIcon;\r\n color: string;\r\n }\r\n}\r\n\r\nexport interface CuiBannerOptions {\r\n readonly status: CuiStatus;\r\n}\r\n\r\nexport const CUI_BANNER_DEFAULT_OPTIONS: CuiBannerOptions = {\r\n status: 'info'\r\n};\r\n\r\nexport const CUI_BANNER_OPTIONS = cuiCreateToken(CUI_BANNER_DEFAULT_OPTIONS);\r\n","import type {AbstractType, ExistingProvider, FactoryProvider, Type} from '@angular/core';\r\nimport {Optional, SkipSelf} from '@angular/core';\r\nimport {cuiProvide} from '@cuby-ui/cdk';\r\nimport type {CuiPoint} from '../types';\r\n\r\nexport abstract class CuiAccessor {\r\n public abstract readonly type: string;\r\n}\r\n\r\nexport abstract class CuiPositionAccessor extends CuiAccessor {\r\n /*\r\n * TODO @deprecated switching from DOMRect to HTMLElement in v5\r\n */\r\n public abstract getPosition(rect: DOMRect, element?: HTMLElement): CuiPoint;\r\n}\r\n\r\nexport abstract class CuiRectAccessor extends CuiAccessor {\r\n public abstract getClientRect(): DOMRect;\r\n}\r\n\r\nexport function cuiProvideAccessor<T extends CuiAccessor>(\r\n provide: AbstractType<T>,\r\n type: string,\r\n fallback: Type<T>,\r\n): FactoryProvider {\r\n return {\r\n provide,\r\n deps: [[new SkipSelf(), new Optional(), provide], fallback],\r\n useFactory: cuiFallbackAccessor<T>(type),\r\n };\r\n}\r\n\r\nexport function cuiFallbackAccessor<T extends CuiAccessor>(\r\n type: string,\r\n): (accessors: readonly T[] | null, fallback: T) => T {\r\n return (accessors, fallback) =>\r\n accessors?.find?.(\r\n (accessor) => accessor !== fallback && accessor.type === type,\r\n ) || fallback;\r\n}\r\n\r\nexport function cuiPositionAccessorFor(\r\n type: string,\r\n fallback: Type<CuiPositionAccessor>,\r\n): FactoryProvider {\r\n return cuiProvideAccessor(CuiPositionAccessor, type, fallback);\r\n}\r\n\r\nexport function cuiRectAccessorFor(\r\n type: string,\r\n fallback: Type<CuiRectAccessor>,\r\n): FactoryProvider {\r\n return cuiProvideAccessor(CuiRectAccessor, type, fallback);\r\n}\r\n\r\nexport function cuiAsPositionAccessor(\r\n accessor: Type<CuiPositionAccessor>,\r\n): ExistingProvider {\r\n return cuiProvide(CuiPositionAccessor, accessor, true);\r\n}\r\n\r\nexport function cuiAsRectAccessor(accessor: Type<CuiRectAccessor>): ExistingProvider {\r\n return cuiProvide(CuiRectAccessor, accessor, true);\r\n}\r\n","import type {ExistingProvider, Type} from '@angular/core';\r\nimport {cuiProvide} from '@cuby-ui/cdk';\r\n\r\nexport abstract class CuiVehicle {\r\n public abstract readonly type: string;\r\n public abstract toggle(value: boolean): void;\r\n}\r\n\r\nexport function cuiAsVehicle(vehicle: Type<CuiVehicle>): ExistingProvider {\r\n return cuiProvide(CuiVehicle, vehicle, true);\r\n}\r\n","import type {AfterViewInit, ExistingProvider, Type} from '@angular/core';\r\nimport {DestroyRef, Directive, inject} from '@angular/core';\r\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\r\nimport {cuiProvide} from '@cuby-ui/cdk';\r\nimport {distinctUntilChanged, merge, Observable} from 'rxjs';\r\n\r\nimport {CuiVehicle} from './vehicle';\r\n\r\nexport abstract class CuiDriver extends Observable<boolean> {\r\n public abstract readonly type: string;\r\n}\r\n\r\nexport function cuiAsDriver(driver: Type<CuiDriver>): ExistingProvider {\r\n return cuiProvide(CuiDriver, driver, true);\r\n}\r\n\r\n@Directive()\r\nexport abstract class CuiDriverDirective implements AfterViewInit {\r\n public abstract type: string;\r\n\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly drivers: readonly CuiDriver[] =\r\n inject<any>(CuiDriver, {self: true, optional: true}) || [];\r\n\r\n private readonly vehicles: readonly CuiVehicle[] = inject<any>(CuiVehicle, {\r\n self: true,\r\n optional: true,\r\n });\r\n\r\n public ngAfterViewInit(): void {\r\n const vehicle = this.vehicles?.find(({type}) => type === this.type);\r\n\r\n merge(...this.drivers.filter(({type}) => type === this.type))\r\n .pipe(distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))\r\n .subscribe((value) => {\r\n vehicle?.toggle(value);\r\n });\r\n }\r\n}\r\n","import {inject, Injectable, NgZone} from '@angular/core';\r\nimport {CUI_ANIMATION_FRAME} from '@cuby-ui/cdk';\r\nimport {EMPTY_CLIENT_RECT, cuiInjectElement, cuiZonefree} from '@cuby-ui/cdk';\r\nimport {CuiPositionAccessor} from '../classes';\r\nimport type {CuiPoint} from '../types';\r\nimport {finalize, map, Observable, startWith} from 'rxjs';\r\n\r\n@Injectable()\r\nexport class CuiPositionService extends Observable<CuiPoint> {\r\n private readonly el = cuiInjectElement();\r\n private readonly accessor = inject(CuiPositionAccessor);\r\n\r\n constructor() {\r\n const animationFrame$ = inject(CUI_ANIMATION_FRAME);\r\n const zone = inject(NgZone);\r\n\r\n super((subscriber) =>\r\n animationFrame$\r\n .pipe(\r\n startWith(null),\r\n map(() =>\r\n this.accessor.getPosition(\r\n this.el.getBoundingClientRect(),\r\n this.el,\r\n ),\r\n ),\r\n cuiZonefree(zone),\r\n finalize(() => this.accessor.getPosition(EMPTY_CLIENT_RECT)),\r\n )\r\n .subscribe(subscriber),\r\n );\r\n }\r\n}\r\n","import { cuiCreateToken } from '@cuby-ui/cdk';\r\n\r\nexport type CuiTheme = 'light' | 'dark';\r\n\r\nexport const CUI_THEME_STORAGE_DEFAULT_KEY = 'cuiTheme';\r\n\r\nexport const CUI_DEFAULT_THEME: CuiTheme = 'light';\r\n\r\nexport const CUI_THEME_STORAGE_KEY = cuiCreateToken(CUI_THEME_STORAGE_DEFAULT_KEY);\r\n\r\nexport const CUI_THEME = cuiCreateToken<CuiTheme>(CUI_DEFAULT_THEME);","import { inject, Injectable } from '@angular/core';\r\nimport type { CuiNullable } from '@cuby-ui/cdk';\r\nimport { CUI_LOCAL_STORAGE } from '@cuby-ui/cdk';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\nimport type { CuiTheme } from './theme.options';\r\nimport { CUI_THEME, CUI_THEME_STORAGE_KEY } from './theme.options';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CuiThemeService extends BehaviorSubject<CuiTheme> {\r\n private readonly localStorage = inject(CUI_LOCAL_STORAGE);\r\n private readonly key = inject(CUI_THEME_STORAGE_KEY);\r\n\r\n constructor() {\r\n super(\r\n inject(CUI_LOCAL_STORAGE).getItem(inject(CUI_THEME_STORAGE_KEY)) as CuiNullable<CuiTheme>\r\n ?? inject(CUI_THEME)\r\n );\r\n }\r\n\r\n public override next(theme: CuiTheme): void {\r\n this.localStorage.setItem(this.key, theme);\r\n super.next(theme);\r\n }\r\n\r\n // При работе только двух тем\r\n public switch(): void {\r\n this.next(this.value === 'light' ? 'dark' : 'light');\r\n }\r\n}","import type { CuiValueOf } from '@cuby-ui/cdk';\r\n\r\nexport const LoadingState = {\r\n LOADING: 'loading',\r\n COMPLETED: 'completed',\r\n INITIAL: 'initial'\r\n} as const;\r\n\r\nexport type LoadingState = CuiValueOf<typeof LoadingState>;\r\n","import { Injectable, signal } from '@angular/core';\r\n\r\nimport { LoadingState } from './loader.options';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoaderService {\r\n private readonly RESET_TO_INITIAL_TIME = 1000;\r\n\r\n private readonly loaderStateSignal = signal<LoadingState>(LoadingState.INITIAL);\r\n\r\n private requestCount = 0;\r\n private resetLoadingStateTimerId?: ReturnType<typeof setTimeout>;\r\n\r\n public readonly loaderState = this.loaderStateSignal.asReadonly();\r\n\r\n constructor() {\r\n AngularOutsideLoaderService.setInstance(this);\r\n }\r\n\r\n public setLoading(): void {\r\n this.requestCount++;\r\n // need to use without queueMicrotask (error)\r\n queueMicrotask(() => this.loaderStateSignal.set(LoadingState.LOADING));\r\n }\r\n\r\n public setCompleted(): void {\r\n this.requestCount = this.requestCount && this.requestCount - 1;\r\n\r\n if (this.requestCount) {\r\n return;\r\n }\r\n\r\n return this.loaderStateSignal.set(LoadingState.COMPLETED);\r\n }\r\n\r\n public handleCompletedRequest(): void {\r\n this.setCompleted();\r\n clearTimeout(this.resetLoadingStateTimerId);\r\n\r\n this.resetLoadingStateTimerId = setTimeout(() => {\r\n if (this.requestCount) {\r\n return;\r\n }\r\n\r\n this.loaderStateSignal.set(LoadingState.INITIAL);\r\n }, this.RESET_TO_INITIAL_TIME);\r\n }\r\n\r\n public reset(): void {\r\n this.requestCount = 0;\r\n this.resetLoadingStateTimerId = undefined;\r\n this.loaderStateSignal.set(LoadingState.INITIAL);\r\n }\r\n}\r\n\r\n// NEED TO USE LoaderService OUTSIDE ANGULAR INJECTION CONTEXT\r\nexport class AngularOutsideLoaderService {\r\n private static instance: LoaderService;\r\n\r\n public static getInstance(): LoaderService {\r\n if (!this.instance) {\r\n throw new Error(\"The instance hasn't been initialized yet\");\r\n }\r\n\r\n return this.instance;\r\n }\r\n\r\n public static setInstance(instance: LoaderService): void {\r\n this.instance = instance;\r\n }\r\n}\r\n","import {inject, Injectable} from '@angular/core';\r\nimport { CUI_WINDOW } from '@cuby-ui/cdk';\r\nimport {CUI_IS_WEBKIT} from '@cuby-ui/cdk';\r\nimport type {CuiPoint} from '../types';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CuiVisualViewportService {\r\n private readonly isWebkit = inject(CUI_IS_WEBKIT);\r\n private readonly win = inject(CUI_WINDOW);\r\n\r\n // https://bugs.webkit.org/show_bug.cgi?id=207089\r\n public correct(point: CuiPoint): CuiPoint {\r\n return this.isWebkit\r\n ? [\r\n point[0] + (this.win.visualViewport?.offsetTop ?? 0),\r\n point[1] + (this.win.visualViewport?.offsetLeft ?? 0),\r\n ]\r\n : point;\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, inject, Input, Output } from '@angular/core';\r\n\r\nimport type { CuiBannerIconOptions, CuiBannerOptions } from './banner.options';\r\nimport { CUI_BANNER_OPTIONS } from './banner.options';\r\nimport type { CuiTheme } from '../../services';\r\nimport { CuiThemeService } from '../../services';\r\n\r\n@Component({\r\n selector: 'cui-banner',\r\n templateUrl: './banner.template.html',\r\n styleUrls: ['./banner.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiBannerComponent implements CuiBannerOptions {\r\n private readonly options = inject(CUI_BANNER_OPTIONS);\r\n protected readonly theme$ = inject(CuiThemeService);\r\n\r\n protected readonly ICON_OPTIONS: CuiBannerIconOptions = {\r\n info: {\r\n icon: 'cuiIconInfo',\r\n color: 'var(--c-info-icon-color)'\r\n },\r\n success: {\r\n icon: 'cuiIconCheckCircle',\r\n color: 'var(--cui-success)'\r\n },\r\n alert: {\r\n icon: 'cuiIconAlertTriangle',\r\n color: 'var(--c-alert-icon-color)'\r\n },\r\n error: {\r\n icon: 'cuiIconAlertCircle',\r\n color: 'var(--cui-danger)'\r\n },\r\n };\r\n protected readonly THEME_CLOSE_BUTTON_ICON_COLORS: Record<CuiTheme, string> = {\r\n light: 'var(--cui-gray-500)',\r\n dark: 'var(--cui-gray-0)'\r\n }\r\n\r\n @Input()\r\n @HostBinding('attr.data-status')\r\n public status = this.options.status;\r\n\r\n @Input()\r\n public isCloseable = true;\r\n\r\n @Input()\r\n public label?: string;\r\n\r\n @Input()\r\n public actionButtonText?: string;\r\n\r\n @Output()\r\n public actionButtonClicked = new EventEmitter<void>();\r\n\r\n @Output()\r\n public closed = new EventEmitter<void>();\r\n\r\n protected onAction(): void {\r\n this.actionButtonClicked.emit();\r\n }\r\n\r\n protected onClose(): void {\r\n this.closed.emit();\r\n }\r\n}\r\n","<cui-svg\r\n *cuiLet=\"ICON_OPTIONS[status] as iconOption\"\r\n [icon]=\"iconOption.icon\"\r\n [color]=\"iconOption.color\"\r\n class=\"c-icon\"\r\n></cui-svg>\r\n<div class=\"c-wrapper\">\r\n <h2\r\n *ngIf=\"label\"\r\n class=\"c-heading\"\r\n >\r\n {{ label }}\r\n </h2>\r\n <ng-content></ng-content>\r\n <button\r\n cuiButton\r\n *ngIf=\"actionButtonText\"\r\n appearance=\"link\"\r\n class=\"c-action\"\r\n (click)=\"onAction()\"\r\n >\r\n {{ actionButtonText }}\r\n </button>\r\n</div>\r\n<button\r\n *ngIf=\"isCloseable\"\r\n class=\"c-button\"\r\n (click)=\"onClose()\"\r\n>\r\n <cui-svg\r\n *cuiLet=\"theme$ | async as theme\"\r\n icon=\"cuiIconX\"\r\n [color]=\"THEME_CLOSE_BUTTON_ICON_COLORS[theme!]\"\r\n />\r\n</button>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CuiLetDirective } from '@cuby-ui/cdk';\r\n\r\nimport { CuiBannerComponent } from './banner.component';\r\nimport { CuiSvgModule } from '../svg';\r\nimport { CuiButtonModule } from '../button';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CuiLetDirective,\r\n CuiSvgModule,\r\n CuiButtonModule\r\n ],\r\n declarations: [CuiBannerComponent],\r\n exports: [CuiBannerComponent]\r\n})\r\nexport class CuiBannerModule {\r\n}\r\n","import { ChangeDetectionStrategy, Component, ContentChildren, QueryList, TemplateRef } from '@angular/core';\r\n\r\nimport { CuiItemDirective } from '@cuby-ui/cdk';\r\n\r\n@Component({\r\n selector: 'cui-breadcrumbs',\r\n templateUrl: './breadcrumbs.template.html',\r\n styleUrls: ['./breadcrumbs.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiBreadcrumbsComponent {\r\n @ContentChildren(CuiItemDirective, { read: TemplateRef })\r\n protected readonly breadcrumbs!: QueryList<TemplateRef<unknown>>;\r\n}\r\n","<ng-container *ngIf=\"breadcrumbs.changes | async\"/>\r\n<ng-container *ngFor=\"let breadcrumb of breadcrumbs; let isLast = last\">\r\n <ng-container *ngTemplateOutlet=\"breadcrumb\" />\r\n <cui-svg\r\n *ngIf=\"!isLast\"\r\n icon=\"cuiIconSlashDivider\"\r\n color=\"var(--cui-base-500)\"\r\n />\r\n</ng-container>\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: '[cuiBreadcrumb]',\r\n templateUrl: './breadcrumb.template.html',\r\n styleUrls: ['./breadcrumb.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiBreadcrumbComponent {\r\n @Input()\r\n public isLast = false;\r\n}\r\n","<ng-content />\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { CuiBreadcrumbsComponent } from './breadcrumbs.component';\r\nimport { CuiBreadcrumbComponent } from './breadcrumb/breadcrumb.component';\r\nimport { CuiSvgModule } from '../svg';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CuiSvgModule\r\n ],\r\n declarations: [\r\n CuiBreadcrumbsComponent,\r\n CuiBreadcrumbComponent\r\n ],\r\n exports: [\r\n CuiBreadcrumbsComponent,\r\n CuiBreadcrumbComponent\r\n ]\r\n})\r\nexport class CuiBreadcrumbsModule {\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'cui-button-group',\r\n templateUrl: './button-group.template.html',\r\n styleUrls: ['./button-group.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiButtonGroupComponent {\r\n}\r\n","<ng-content select=\"button[cuiButton], a[cuiButton]\"></ng-content>\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { CuiButtonGroupComponent } from './button-group.component';\r\n\r\n@NgModule({\r\n declarations: [CuiButtonGroupComponent],\r\n exports: [CuiButtonGroupComponent]\r\n})\r\nexport class CuiButtonGroupModule {\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'input[type=\"checkbox\"][cuiCheckbox]',\r\n template: '',\r\n styleUrls: ['./checkbox.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiCheckboxComponent {\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { CuiCheckboxComponent } from './checkbox.component';\r\n\r\n@NgModule({\r\n declarations: [CuiCheckboxComponent],\r\n exports: [CuiCheckboxComponent]\r\n})\r\nexport class CuiCheckboxModule {\r\n}\r\n","export const CUI_ROOT_SELECTOR = 'cui-root';","import { InjectionToken } from '@angular/core';\r\nimport type { CuiPopover } from '@cuby-ui/cdk';\r\nimport { cuiCreateToken } from '@cuby-ui/cdk';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\nimport type { CuiDialogOptions } from './dialog.interfaces';\r\n\r\nexport const CUI_DIALOGS = cuiCreateToken(\r\n new BehaviorSubject<ReadonlyArray<CuiPopover<CuiDialogOptions>>>([])\r\n);\r\n\r\nexport const CUI_DIALOG_DEFAULT_OPTIONS: CuiDialogOptions = {\r\n size: 'auto',\r\n data: undefined,\r\n dismissible: true\r\n};\r\n\r\nexport const CUI_DIALOG_OPTIONS = cuiCreateToken(CUI_DIALOG_DEFAULT_OPTIONS);\r\n\r\nexport const CUI_DIALOG_CONTEXT = new InjectionToken<CuiPopover<CuiDialogOptions>>('');\r\n","import type { OnInit } from '@angular/core';\r\nimport { ChangeDetectionStrategy, Component, inject, Injector } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport type { CuiPopover } from '@cuby-ui/cdk';\r\nimport { CuiDestroyService } from '@cuby-ui/cdk';\r\nimport type { Observable } from 'rxjs';\r\nimport { takeUntil } from 'rxjs';\r\n\r\nimport { CUI_DIALOG_CONTEXT, CUI_DIALOGS } from './dialog.tokens';\r\nimport type { CuiDialogOptions } from './dialog.interfaces';\r\n\r\n@Component({\r\n selector: 'cui-dialogs',\r\n templateUrl: './dialogs.template.html',\r\n styleUrls: ['./dialogs.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [CuiDestroyService]\r\n})\r\nexport class CuiDialogsComponent implements OnInit {\r\n private readonly document = inject(DOCUMENT);\r\n private readonly destroy$ = inject(CuiDestroyService, { self: true });\r\n\r\n protected readonly dialogs$: Observable<ReadonlyArray<CuiPopover<CuiDialogOptions>>> = inject(CUI_DIALOGS);\r\n protected dialogInjectorCache = new Map<string, Injector>();\r\n protected dialogInjectors!: ReadonlyArray<Injector>;\r\n\r\n public ngOnInit(): void {\r\n this.initDialogsSubscription();\r\n }\r\n\r\n protected trackByFn(_: number, dialog: CuiPopover<CuiDialogOptions>): string {\r\n return dialog.id;\r\n }\r\n\r\n protected initDialogsSubscription(): void {\r\n this.dialogs$\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(dialogs => {\r\n this.document.body.style.overflow = dialogs.length ? 'hidden' : '';\r\n this.dialogInjectors = dialogs.map(dialog => {\r\n if (!this.dialogInjectorCache.has(dialog.id)) {\r\n this.dialogInjectorCache.set(dialog.id, Injector.create({\r\n providers: [{ provide: CUI_DIALOG_CONTEXT, useValue: dialog }],\r\n parent: dialog.injector\r\n }));\r\n }\r\n\r\n return this.dialogInjectorCache.get(dialog.id)!;\r\n });\r\n\r\n this.dialogInjectorCache.forEach((_, dialogId) => {\r\n if (dialogs.find(dialog => dialog.id === dialogId)) {\r\n return;\r\n }\r\n\r\n this.dialogInjectorCache.delete(dialogId);\r\n });\r\n });\r\n }\r\n}\r\n","<ng-container *cuiLet=\"dialogs$ | async as dialogs\">\r\n <ng-container *ngFor=\"let dialog of dialogs; let i = index; trackBy: trackByFn\">\r\n <ng-container *ngComponentOutlet=\"dialog.component; injector: dialogInjectors[i]\"></ng-container>\r\n </ng-container>\r\n <div\r\n *ngIf=\"dialogs!.length\"\r\n class=\"c-overlay\"\r\n ></div>\r\n</ng-container>\r\n","import {\r\n animate,\r\n animateChild,\r\n query,\r\n stagger,\r\n style,\r\n transition,\r\n trigger,\r\n} from '@angular/animations';\r\n\r\nconst TRANSITION = '{{duration}}ms ease-in-out';\r\nconst DURATION = {params: {duration: 300}};\r\nconst STAGGER = 300;\r\n\r\nexport interface CuiDurationOptions {\r\n params: {duration: number};\r\n value: string;\r\n}\r\n\r\n/**\r\n * Add to enable child :leave animation (fixes https://github.com/angular/angular/issues/15753)\r\n */\r\nexport const cuiParentAnimation = trigger('cuiParentAnimation', [\r\n transition(':leave', [query(':scope > *', [animateChild()], {optional: true})]),\r\n]);\r\n\r\n/**\r\n * Add on parent to stop initial :enter animation for children\r\n */\r\nexport const cuiParentStop = trigger('cuiParentStop', [transition(':enter', [])]);\r\n\r\nexport const cuiHost = trigger('cuiHost', [\r\n transition(':enter', [\r\n style({overflow: 'clip'}),\r\n query(':scope > *', [animateChild()], {optional: true}),\r\n ]),\r\n transition(':leave', [query(':scope > *', [animateChild()], {optional: true})]),\r\n]);\r\n\r\nexport const cuiHeightCollapse = trigger('cuiHeightCollapse', [\r\n transition(\r\n ':enter',\r\n [style({height: 0}), animate(TRANSITION, style({height: '*'}))],\r\n DURATION,\r\n ),\r\n transition(\r\n ':leave',\r\n [style({height: '*'}), animate(TRANSITION, style({height: 0}))],\r\n DURATION,\r\n ),\r\n]);\r\n\r\nexport const cuiHeightCollapseList = trigger('cuiHeightCollapseList', [\r\n transition(\r\n '* => *',\r\n [\r\n query(\r\n ':enter',\r\n [\r\n style({height: 0}),\r\n stagger(STAGGER, [animate(TRANSITION, style({height: '*'}))]),\r\n ],\r\n {\r\n optional: true,\r\n },\r\n ),\r\n query(\r\n ':leave',\r\n [\r\n style({height: '*'}),\r\n stagger(STAGGER, [animate(TRANSITION, style({height: 0}))]),\r\n ],\r\n {\r\n optional: true,\r\n },\r\n ),\r\n ],\r\n DURATION,\r\n ),\r\n]);\r\n\r\nexport const cuiWidthCollapse = trigger('cuiWidthCollapse', [\r\n transition(\r\n ':enter',\r\n [style({width: 0}), animate(TRANSITION, style({width: '*'}))],\r\n DURATION,\r\n ),\r\n transition(\r\n ':leave',\r\n [style({width: '*'}), animate(TRANSITION, style({width: 0}))],\r\n DURATION,\r\n ),\r\n]);\r\n\r\nexport const cuiWidthCollapseList = trigger('cuiWidthCollapseList', [\r\n transition(\r\n '* => *',\r\n [\r\n query(\r\n ':enter',\r\n [\r\n style({width: 0}),\r\n stagger(STAGGER, [animate(TRANSITION, style({width: '*'}))]),\r\n ],\r\n {\r\n optional: true,\r\n },\r\n ),\r\n query(\r\n ':leave',\r\n [\r\n style({width: '*'}),\r\n stagger(STAGGER, [animate(TRANSITION, style({width: 0}))]),\r\n ],\r\n {\r\n optional: true,\r\n },\r\n ),\r\n ],\r\n DURATION,\r\n ),\r\n]);\r\n\r\nexport const cuiFadeIn = trigger('cuiFadeIn', [\r\n transition(\r\n ':enter',\r\n [style({opacity: 0}), animate(TRANSITION, style({opacity: 1}))],\r\n DURATION,\r\n ),\r\n transition(\r\n ':leave',\r\n [style({opacity: 1}), animate(TRANSITION, style({opacity: 0}))],\r\n DURATION,\r\n ),\r\n]);\r\n\r\nexport const cuiFadeInList = trigger('cuiFadeInList', [\r\n transition(\r\n '* => *',\r\n [\r\n query(\r\n ':enter',\r\n [\r\n style({opacity: 0}),\r\n stagger(STAGGER, [animate(TRANSITION, style({opacity: 1}))]),\r\n ],\r\n {\r\n optional: true,\r\n },\r\n ),\r\n query(\r\n ':leave',\r\n [\r\n style({opacity: 1}),\r\n stagger(STAGGER, [animate(TRANSITION, style({opacity: 0}))]),\r\n ],\r\n {\r\n optional: true,\r\n },\r\n ),\r\n ],\r\n DURATION,\r\n ),\r\n]);\r\n\r\nexport const cuiFadeInTop = trigger('cuiFadeInTop', [\r\n transition(\r\n ':enter',\r\n [\r\n style({transform: 'translateY(-{{start}}px)', opacity: 0}),\r\n animate(TRANSITION, style({transform: 'translateY({{end}})', opacity: 1})),\r\n ],\r\n {params: {end: 0, start: 10, duration: 300}},\r\n ),\r\n transition(\r\n ':leave',\r\n [\r\n style({transform: 'translateY({{end}})', opacity: 1}),\r\n animate(\r\n TRANSITION,\r\n style({transform: 'translateY(-{{start}}px)', opacity: 0}),\r\n ),\r\n ],\r\n {params: {end: 0, start: 10, duration: 300}},\r\n ),\r\n]);\r\n\r\nexport const cuiFadeInBottom = trigger('cuiFadeInBottom', [\r\n transition(\r\n ':enter',\r\n [\r\n style({transform: 'translateY({{start}}px)', opacity: 0}),\r\n animate(TRANSITION, style({transform: 'translateY({{end}})', opacity: 1})),\r\n ],\r\n {params: {end: 0, start: 10, duration: 300}},\r\n ),\r\n transition(\r\n ':leave',\r\n [\r\n style({transform: 'translateY({{end}})', opacity: 1}),\r\n animate(\r\n TRANSITION,\r\n style({transform: 'translateY({{start}}px)', opacity: 0}),\r\n ),\r\n ],\r\n {params: {end: 0, start: 10, duration: 300}},\r\n ),\r\n]);\r\n\r\nexport const cuiDropdownAnimation = trigger('cuiDropdownAnimation', [\r\n transition(\r\n ':enter',\r\n [\r\n style({transform: 'translateY(-{{start}}px)', opacity: 0}),\r\n animate(TRANSITION, style({transform: 'translateY({{end}})', opacity: 1})),\r\n ],\r\n {params: {end: 0, start: 10, duration: 300}},\r\n ),\r\n transition(\r\n ':leave',\r\n [\r\n style({transform: 'translateY({{end}})', opacity: 1}),\r\n animate(\r\n TRANSITION,\r\n style({transform: 'translateY(-{{start}}px)', opacity: 0}),\r\n ),\r\n ],\r\n {params: {end: 0, start: 10, duration: 300}},\r\n ),\r\n]);\r\n\r\nexport const cuiScaleIn = trigger('cuiScaleIn', [\r\n transition(\r\n ':enter',\r\n [\r\n style({transform: 'scale({{start}})'}),\r\n animate('{{duration}}ms {{easing}}', style({transform: 'scale({{end}})'})),\r\n ],\r\n {params: {end: 1, start: 0, duration: 300, easing: 'ease-in-out'}},\r\n ),\r\n transition(\r\n ':leave',\r\n [\r\n style({transform: 'scale({{end}})'}),\r\n animate(TRANSITION, style({transform: 'scale({{start}})'})),\r\n ],\r\n {params: {end: 1, start: 0, duration: 300}},\r\n ),\r\n]);\r\n\r\nexport const cuiPop = trigger('cuiPop', [\r\n transition(\r\n ':enter',\r\n [\r\n style({transform: 'scale({{start}})'}),\r\n animate(TRANSITION, style({transform: 'scale({{middle}})'})),\r\n animate(TRANSITION, style({transform: 'scale({{end}})'})),\r\n ],\r\n {params: {end: 1, middle: 1.1, start: 0, duration: 300}},\r\n ),\r\n transition(\r\n ':leave',\r\n [\r\n style({transform: 'scale({{end}})'}),\r\n animate(TRANSITION, style({transform: 'scale({{middle}})'})),\r\n animate(TRANSITION, style({transform: 'scale({{start}})'})),\r\n ],\r\n {params: {end: 1, middle: 1.1, start: 0, duration: 300}},\r\n ),\r\n]);\r\n\r\nexport const cuiScaleInList = trigger('cuiScaleInList', [\r\n transition(\r\n '* => *',\r\n [\r\n query(\r\n ':enter',\r\n [\r\n style({transform: 'scale({{start}})'}),\r\n stagger(STAGGER, [\r\n animate(TRANSITION, style({transform: 'scale({{end}})'})),\r\n ]),\r\n ],\r\n {optional: true},\r\n ),\r\n query(\r\n ':leave',\r\n [\r\n style({transform: 'scale({{end}})'}),\r\n stagger(STAGGER, [\r\n animate(TRANSITION, style({transform: 'scale({{start}})'})),\r\n ]),\r\n ],\r\n {optional: true},\r\n ),\r\n ],\r\n {params: {end: 1, start: 0, duration: 300}},\r\n ),\r\n]);\r\n\r\nexport const cuiSlideIn = trigger('cuiSlideIn', [\r\n transition(\r\n '* => left',\r\n [\r\n style({transform: 'translateX(-{{start}})'}),\r\n animate(TRANSITION, style({transform: 'translateX({{end}})'})),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n transition(\r\n 'left => *',\r\n [\r\n style({transform: 'translateX({{end}})'}),\r\n animate(TRANSITION, style({transform: 'translateX(-{{start}})'})),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n transition(\r\n '* => right',\r\n [\r\n style({transform: 'translateX({{start}})'}),\r\n animate(TRANSITION, style({transform: 'translateX({{end}})'})),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n transition(\r\n 'right => *',\r\n [\r\n style({transform: 'translateX({{end}})'}),\r\n animate(TRANSITION, style({transform: 'translateX({{start}})'})),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n]);\r\n\r\nexport const cuiSlideInLeft = trigger('cuiSlideInLeft', [\r\n transition(\r\n ':enter',\r\n [\r\n style({transform: 'translateX(-{{start}})'}),\r\n animate(TRANSITION, style({transform: 'translateX({{end}})'})),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n transition(\r\n ':leave',\r\n [\r\n style({transform: 'translateX({{end}})'}),\r\n animate(TRANSITION, style({transform: 'translateX(-{{start}})'})),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n]);\r\n\r\nexport const cuiSlideInLeftList = trigger('cuiSlideInLeftList', [\r\n transition(\r\n '* => *',\r\n [\r\n query(\r\n ':enter',\r\n [\r\n style({transform: 'translateX(-{{start}})'}),\r\n stagger(STAGGER, [\r\n animate(TRANSITION, style({transform: 'translateX({{end}})'})),\r\n ]),\r\n ],\r\n {optional: true},\r\n ),\r\n query(\r\n ':leave',\r\n [\r\n style({transform: 'translateX({{end}})'}),\r\n stagger(STAGGER, [\r\n animate(TRANSITION, style({transform: 'translateX(-{{start}})'})),\r\n ]),\r\n ],\r\n {optional: true},\r\n ),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n]);\r\n\r\nexport const cuiSlideInRight = trigger('cuiSlideInRight', [\r\n transition(\r\n ':enter',\r\n [\r\n style({transform: 'translateX({{start}})'}),\r\n animate(TRANSITION, style({transform: 'translateX({{end}})'})),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n transition(\r\n ':leave',\r\n [\r\n style({transform: 'translateX({{end}})'}),\r\n animate(TRANSITION, style({transform: 'translateX({{start}})'})),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n]);\r\n\r\nexport const cuiSlideInRightList = trigger('cuiSlideInRightList', [\r\n transition(\r\n '* => *',\r\n [\r\n query(\r\n ':enter',\r\n [\r\n style({transform: 'translateX({{start}})'}),\r\n stagger(STAGGER, [\r\n animate(TRANSITION, style({transform: 'translateX({{end}})'})),\r\n ]),\r\n ],\r\n {optional: true},\r\n ),\r\n query(\r\n ':leave',\r\n [\r\n style({transform: 'translateX({{end}})'}),\r\n stagger(STAGGER, [\r\n animate(TRANSITION, style({transform: 'translateX({{start}})'})),\r\n ]),\r\n ],\r\n {optional: true},\r\n ),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n]);\r\n\r\nexport const cuiSlideInTop = trigger('cuiSlideInTop', [\r\n transition(\r\n ':enter',\r\n [\r\n style({transform: 'translate3d(0,{{start}},0)', pointerEvents: 'none'}),\r\n animate(TRANSITION, style({transform: 'translate3d(0,{{end}},0)'})),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n transition(\r\n ':leave',\r\n [\r\n style({transform: 'translate3d(0,{{end}},0)'}),\r\n animate(TRANSITION, style({transform: 'translate3d(0,{{start}},0)'})),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n]);\r\n\r\nexport const cuiSlideInTopList = trigger('cuiSlideInTopList', [\r\n transition(\r\n '* => *',\r\n [\r\n query(\r\n ':enter',\r\n [\r\n style({transform: 'translateY({{start}})'}),\r\n stagger(STAGGER, [\r\n animate(TRANSITION, style({transform: 'translateY({{end}})'})),\r\n ]),\r\n ],\r\n {optional: true},\r\n ),\r\n query(\r\n ':leave',\r\n [\r\n style({transform: 'translateY({{end}})'}),\r\n stagger(STAGGER, [\r\n animate(TRANSITION, style({transform: 'translateY({{start}})'})),\r\n ]),\r\n ],\r\n {optional: true},\r\n ),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n]);\r\n\r\nexport const cuiSlideInBottom = trigger('cuiSlideInBottom', [\r\n transition(\r\n ':enter',\r\n [\r\n style({transform: 'translateY(-{{start}})'}),\r\n animate(TRANSITION, style({transform: 'translateY({{end}})'})),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n transition(\r\n ':leave',\r\n [\r\n style({transform: 'translateY({{end}})'}),\r\n animate(TRANSITION, style({transform: 'translateY(-{{start}})'})),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n]);\r\n\r\nexport const cuiSlideInBottomList = trigger('cuiSlideInBottomList', [\r\n transition(\r\n '* => *',\r\n [\r\n query(\r\n ':enter',\r\n [\r\n style({transform: 'translateY(-{{start}})'}),\r\n stagger(STAGGER, [\r\n animate(TRANSITION, style({transform: 'translateY({{end}})'})),\r\n ]),\r\n ],\r\n {optional: true},\r\n ),\r\n query(\r\n ':leave',\r\n [\r\n style({transform: 'translateY({{end}})'}),\r\n stagger(STAGGER, [\r\n animate(TRANSITION, style({transform: 'translateY(-{{start}})'})),\r\n ]),\r\n ],\r\n {optional: true},\r\n ),\r\n ],\r\n {params: {end: 0, start: '100%', duration: 300}},\r\n ),\r\n]);","import {Injectable} from '@angular/core';\r\nimport type {CuiPortalItem} from '../../types';\r\nimport {BehaviorSubject} from 'rxjs';\r\n\r\n/**\r\n * Service for displaying hints/tooltips\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CuiTooltipService extends BehaviorSubject<readonly CuiPortalItem[]> {\r\n constructor() {\r\n super([]);\r\n }\r\n\r\n public add(directive: CuiPortalItem): void {\r\n this.next(this.value.concat(directive));\r\n }\r\n\r\n public remove(directive: CuiPortalItem): void {\r\n if (this.value.includes(directive)) {\r\n this.next(this.value.filter((hint) => hint !== directive));\r\n }\r\n }\r\n}\r\n","import {NgForOf} from '@angular/common';\r\nimport type {OnInit} from '@angular/core';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n inject,\r\n} from '@angular/core';\r\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\r\nimport {CuiActiveZone} from '@cuby-ui/cdk';\r\nimport {cuiParentAnimation} from '../../animations';\r\nimport type {CuiPortalItem} from '../../types';\r\nimport { PolymorpheusOutlet, PolymorpheusTemplate } from '@taiga-ui/polymorpheus';\r\n\r\nimport {CuiTooltipService} from './tooltip.service';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'cui-tooltips',\r\n imports: [NgForOf, PolymorpheusTemplate, CuiActiveZone, PolymorpheusOutlet],\r\n templateUrl: './tooltips.template.html',\r\n styleUrls: ['./tooltips.style.scss'],\r\n // So that we do not force OnPush on custom hints\r\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n animations: [cuiParentAnimation],\r\n host: {\r\n 'aria-live': 'polite',\r\n },\r\n})\r\nexport class CuiTooltips implements OnInit {\r\n private readonly hints$ = inject(CuiTooltipService);\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly cdr = inject(ChangeDetectorRef);\r\n\r\n protected hints: readonly CuiPortalItem[] = [];\r\n\r\n public ngOnInit(): void {\r\n // Due to this view being parallel to app content, `markForCheck` from `async` pipe\r\n // can happen after view was checked, so calling `detectChanges` instead\r\n this.hints$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((hints) => {\r\n this.hints = hints;\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n}\r\n","<div\r\n *ngFor=\"let hint of hints\"\r\n role=\"tooltip\"\r\n @cuiParentAnimation\r\n [cuiActiveZoneParent]=\"hint.activeZone || null\"\r\n\r\n>\r\n <ng-container *polymorpheusOutlet=\"hint.component; context: {$implicit: hint}\" />\r\n</div>\r\n","import type { OnInit } from '@angular/core';\r\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { CuiDestroyService } from '@cuby-ui/cdk';\r\nimport { takeUntil } from 'rxjs';\r\n\r\nimport { CuiThemeService } from '../../services';\r\nimport { CUI_ROOT_SELECTOR } from './root.options';\r\n\r\n@Component({\r\n selector: CUI_ROOT_SELECTOR,\r\n templateUrl: './root.template.html',\r\n styleUrls: ['./root.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [CuiDestroyService],\r\n})\r\nexport class CuiRootComponent implements OnInit {\r\n private readonly document = inject(DOCUMENT);\r\n private readonly theme$ = inject(CuiThemeService);\r\n private readonly destroy$ = inject(CuiDestroyService);\r\n\r\n public ngOnInit(): void {\r\n this.initThemeSubscription();\r\n }\r\n\r\n private initThemeSubscription(): void {\r\n this.theme$\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(theme => this.document.documentElement.setAttribute('cuiTheme', theme));\r\n }\r\n}\r\n","<div class=\"c-content\">\r\n <ng-content />\r\n</div>\r\n<cui-dialogs />\r\n<cui-alerts />\r\n<cui-tooltips />\r\n","import type { OnInit } from '@angular/core';\r\nimport { HostBinding, HostListener, Type } from '@angular/core';\r\nimport { ChangeDetectionStrategy, Component, inject, TemplateRef, ElementRef } from '@angular/core';\r\nimport type { CuiValueOf } from '@cuby-ui/cdk';\r\nimport { CuiFocusTrapDirective } from '@cuby-ui/cdk';\r\n\r\nimport type { CuiDialogSize } from './dialog.interfaces';\r\nimport { CUI_DIALOG_CONTEXT } from './dialog.tokens';\r\n\r\n// TODO: сделать структурную директиву\r\nconst ContentType = {\r\n String: 'string',\r\n Template: 'template',\r\n Component: 'component'\r\n} as const;\r\n\r\ntype IContentType = CuiValueOf<typeof ContentType>;\r\n\r\n@Component({\r\n selector: 'cui-dialog',\r\n templateUrl: './dialog.template.html',\r\n styleUrls: ['./dialog.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n hostDirectives: [CuiFocusTrapDirective]\r\n})\r\nexport class CuiDialogComponent implements OnInit {\r\n protected readonly element = inject(ElementRef).nativeElement as HTMLElement;\r\n protected readonly context = inject(CUI_DIALOG_CONTEXT);\r\n\r\n protected readonly LAST_OF_TYPE_SELECTOR = ':last-of-type';\r\n\r\n protected readonly ContentType = ContentType;\r\n\r\n protected contentType: IContentType = ContentType.Component;\r\n\r\n @HostBinding('attr.data-size')\r\n protected get size(): CuiDialogSize {\r\n return this.context.size;\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.initContentType();\r\n }\r\n\r\n protected get contentTemplateRef(): TemplateRef<unknown> {\r\n return this.context.content as TemplateRef<unknown>;\r\n }\r\n\r\n protected get componentType(): Type<unknown> {\r\n return this.context.content as Type<unknown>;\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event'])\r\n protected onEscape(): void {\r\n if (!this.context.dismissible) {\r\n return\r\n }\r\n\r\n if (!this.element.matches(this.LAST_OF_TYPE_SELECTOR)) {\r\n return;\r\n }\r\n\r\n this.context.completeWith();\r\n }\r\n\r\n private initContentType(): void {\r\n const content = this.context.content;\r\n\r\n switch (true) {\r\n case (typeof content === 'string'):\r\n this.contentType = ContentType.String;\r\n\r\n return;\r\n\r\n case (content instanceof TemplateRef):\r\n this.contentType = ContentType.Template;\r\n\r\n return;\r\n }\r\n }\r\n}\r\n","<ng-container [ngSwitch]=\"contentType\">\r\n <ng-container *ngSwitchCase=\"ContentType.String\">\r\n {{ context.content }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"ContentType.Template\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplateRef; context: context\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"ContentType.Component\">\r\n <div class=\"c-component-container\">\r\n <ng-container *ngComponentOutlet=\"componentType\"></ng-container>\r\n </div>\r\n </ng-container>\r\n</ng-container>\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'cui-dialog-actions',\r\n templateUrl: './dialog-actions.template.html',\r\n styleUrls: ['./dialog-actions.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiDialogActionsComponent {\r\n}\r\n","<div class=\"c-divider\"></div>\r\n<div class=\"c-content\">\r\n <ng-content />\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport type { PolymorpheusContent } from '@taiga-ui/polymorpheus';\r\nimport { PolymorpheusContext } from '@taiga-ui/polymorpheus/classes/context';\r\n\r\n@Component({\r\n selector: 'header[cuiDialogHeader][heading]',\r\n templateUrl: './dialog-header.template.html',\r\n styleUrls: ['./dialog-header.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiDialogHeaderComponent {\r\n @Input()\r\n public heading!: PolymorpheusContent;\r\n\r\n @Input()\r\n public headingContext?: PolymorpheusContext<any>['$implicit'];\r\n\r\n @Input()\r\n public subheading?: string;\r\n\r\n @Output()\r\n public readonly closed = new EventEmitter<MouseEvent>();\r\n\r\n protected onClose(event: MouseEvent): void {\r\n this.closed.emit(event);\r\n }\r\n}\r\n","<div class=\"c-heading\">\r\n <ng-container *polymorpheusOutlet=\"heading as heading; context: headingContext\">{{ heading }}</ng-container>\r\n</div>\r\n<button\r\n cuiButton\r\n type=\"button\"\r\n appearance=\"ghost\"\r\n icon=\"cuiIconClearSm\"\r\n class=\"c-button\"\r\n (click)=\"onClose($event)\"\r\n></button>\r\n<span *ngIf=\"subheading\">{{ subheading }}</span>\r\n<ng-content />\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CuiLetDirective } from '@cuby-ui/cdk';\r\n\r\nimport { CuiButtonModule } from '../button';\r\nimport { CuiDialogComponent } from './dialog.component';\r\nimport { CuiDialogsComponent } from './dialogs.component';\r\nimport { CuiDialogActionsComponent } from './dialog-actions/dialog-actions.component';\r\nimport { CuiDialogHeaderComponent } from './dialog-header/dialog-header.component';\r\nimport { PolymorpheusOutlet } from '@taiga-ui/polymorpheus';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n PolymorpheusOutlet,\r\n CuiLetDirective,\r\n CuiButtonModule\r\n ],\r\n declarations: [\r\n CuiDialogComponent,\r\n CuiDialogsComponent,\r\n CuiDialogActionsComponent,\r\n CuiDialogHeaderComponent\r\n ],\r\n exports: [\r\n CuiDialogComponent,\r\n CuiDialogsComponent,\r\n CuiDialogActionsComponent,\r\n CuiDialogHeaderComponent\r\n ]\r\n})\r\nexport class CuiDialogModule {\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { CuiPopoverService } from '@cuby-ui/cdk';\r\n\r\nimport { CUI_DIALOG_OPTIONS, CUI_DIALOGS } from './dialog.tokens';\r\nimport { CuiDialogComponent } from './dialog.component';\r\nimport type { CuiDialogOptions } from './dialog.interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n useFactory: () => new CuiDialogService(CUI_DIALOGS, CuiDialogComponent, inject(CUI_DIALOG_OPTIONS))\r\n})\r\nexport class CuiDialogService extends CuiPopoverService<CuiDialogOptions> {\r\n}\r\n","import {DOCUMENT} from '@angular/common';\r\nimport {inject} from '@angular/core';\r\nimport {cuiCreateTokenFromFactory} from '@cuby-ui/cdk';\r\n\r\nexport const CUI_REDUCED_MOTION = cuiCreateTokenFromFactory(\r\n () =>\r\n inject(DOCUMENT).defaultView?.matchMedia?.('(prefers-reduced-motion: reduce)')\r\n .matches ?? false,\r\n);\r\n","import {inject} from '@angular/core';\r\nimport {cuiCreateTokenFromFactory} from '@cuby-ui/cdk';\r\n\r\nimport {CUI_REDUCED_MOTION} from './reduced-motion';\r\n\r\n/**\r\n * Speed of all Taiga UI animations. 1 equals 300ms.\r\n */\r\nexport const CUI_ANIMATIONS_SPEED = cuiCreateTokenFromFactory<number>(() =>\r\n inject(CUI_REDUCED_MOTION) ? 0 : 1,\r\n);\r\n","import type {Provider, Type} from '@angular/core';\r\nimport {inject} from '@angular/core';\r\nimport { CUI_WINDOW, cuiCreateTokenFromFactory, cuiProvide } from '@cuby-ui/cdk';\r\nimport type {CuiRectAccessor} from '../classes';\r\n\r\n/**\r\n * Viewport accessor\r\n */\r\nexport const CUI_VIEWPORT = cuiCreateTokenFromFactory<CuiRectAccessor>(() => {\r\n const win = inject(CUI_WINDOW);\r\n\r\n return {\r\n type: 'viewport',\r\n getClientRect() {\r\n const rect = {\r\n top: 0,\r\n left: 0,\r\n right: win.innerWidth,\r\n bottom: win.innerHeight,\r\n width: win.innerWidth,\r\n height: win.innerHeight,\r\n x: 0,\r\n y: 0,\r\n };\r\n\r\n return {\r\n ...rect,\r\n toJSON: () => JSON.stringify(rect),\r\n };\r\n },\r\n };\r\n});\r\n\r\nexport function cuiAsViewport(accessor: Type<CuiRectAccessor>): Provider {\r\n return cuiProvide(CUI_VIEWPORT, accessor);\r\n}\r\n","export function cuiRemoveSpaces(value: string): string {\r\n return value.replace(/\\s+/g, '');\r\n}\r\n","export function cuiReplace(value: string, search: string, replace: string): string {\r\n const regex = new RegExp(search.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'g');\r\n\r\n return value.replace(regex, replace);\r\n}\r\n","import {cuiGetElementObscures} from '@cuby-ui/cdk';\r\n\r\n/**\r\n * @internal\r\n */\r\nexport function cuiIsObscured(el: HTMLElement, exceptSelector = 'cui-hints'): boolean {\r\n return !!cuiGetElementObscures(el)?.some((el) => !el.closest(exceptSelector));\r\n}\r\n","export function cuiOverrideOptions<T>(\r\n override: Partial<T>,\r\n fallback: T,\r\n): (directive: T | null, options: T | null) => T {\r\n return (directive, options) => {\r\n const result: T = directive || {...(options || fallback)};\r\n\r\n Object.keys(override).forEach((key) => {\r\n // Update directive props with new defaults before inputs are processed\r\n (result as Record<string, unknown>)[key] = override[key as keyof T];\r\n });\r\n\r\n return result;\r\n };\r\n}\r\n","import type {AnimationOptions} from '@angular/animations';\r\n\r\nexport const CUI_ANIMATIONS_DEFAULT_DURATION = 300;\r\n\r\nexport function cuiToAnimationOptions(speed: number, easing?: string): AnimationOptions {\r\n return {\r\n value: '',\r\n params: {\r\n duration: cuiGetDuration(speed),\r\n easing,\r\n },\r\n } as unknown as AnimationOptions;\r\n}\r\n\r\nexport function cuiGetDuration(speed: number): number {\r\n return speed && CUI_ANIMATIONS_DEFAULT_DURATION / speed;\r\n}\r\n","import type {Type} from '@angular/core';\r\nimport {cuiCreateTokenFromFactory} from '@cuby-ui/cdk';\r\n\r\nimport {CuiTooltipComponent} from './tooltip.component';\r\n\r\n/**\r\n * A component to display a tooltip\r\n */\r\nexport const CUI_TOOLTIP_COMPONENT = cuiCreateTokenFromFactory<Type<unknown>>(\r\n () => CuiTooltipComponent,\r\n);\r\n","import {Directive} from '@angular/core';\r\nimport {CuiDriverDirective} from '../../classes';\r\n\r\n@Directive({\r\n standalone: true,\r\n})\r\nexport class CuiTooltipDriver extends CuiDriverDirective {\r\n public readonly type = 'hint';\r\n}\r\n","import type {FactoryProvider, OnChanges} from '@angular/core';\r\nimport {Directive, inject, Input, Optional, Self, SkipSelf} from '@angular/core';\r\nimport { cuiCreateToken, cuiProvide } from '@cuby-ui/cdk';\r\nimport {cuiOverrideOptions} from '../../utils';\r\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\r\nimport {Subject} from 'rxjs';\r\n\r\nexport type CuiTooltipDirection =\r\n | 'bottom-left'\r\n | 'bottom-right'\r\n | 'bottom'\r\n | 'left-bottom'\r\n | 'left-top'\r\n | 'left'\r\n | 'right-bottom'\r\n | 'right-top'\r\n | 'right'\r\n | 'top-left'\r\n | 'top-right'\r\n | 'top';\r\n\r\nexport const CUI_TOOLTIP_DIRECTIONS: readonly CuiTooltipDirection[] = [\r\n 'top',\r\n 'top-left',\r\n 'top-right',\r\n 'bottom',\r\n 'bottom-left',\r\n 'bottom-right',\r\n 'left-top',\r\n 'left',\r\n 'left-bottom',\r\n 'right-top',\r\n 'right',\r\n 'right-bottom',\r\n];\r\n\r\nexport interface CuiTooltipOptions {\r\n readonly appearance: string;\r\n readonly direction: CuiTooltipDirection | CuiTooltipDirection[];\r\n readonly hideDelay: number;\r\n readonly icon: string;\r\n readonly showDelay: number;\r\n}\r\n\r\n/** Default values for tooltip options */\r\nexport const CUI_TOOLTIP_DEFAULT_OPTIONS: CuiTooltipOptions = {\r\n direction: 'top',\r\n showDelay: 500,\r\n hideDelay: 200,\r\n appearance: '',\r\n /** TODO @deprecated use {@link CUI_TOOLTIP_OPTIONS} instead **/\r\n icon: '@cui.circle-help',\r\n};\r\n\r\n/**\r\n * Default parameters for tooltip directive\r\n */\r\nexport const CUI_TOOLTIP_OPTIONS = cuiCreateToken(CUI_TOOLTIP_DEFAULT_OPTIONS);\r\n\r\nexport const cuiTooltipOptionsProvider: (\r\n options: Partial<CuiTooltipOptions>,\r\n) => FactoryProvider = (override: Partial<CuiTooltipOptions>) => ({\r\n provide: CUI_TOOLTIP_OPTIONS,\r\n deps: [\r\n [new Optional(), new Self(), CuiTooltipOptionsDirective],\r\n [new Optional(), new SkipSelf(), CUI_TOOLTIP_OPTIONS],\r\n ],\r\n useFactory: cuiOverrideOptions(override, CUI_TOOLTIP_DEFAULT_OPTIONS),\r\n});\r\n\r\n/**\r\n * @deprecated: drop in 5.0\r\n */\r\n@Directive({\r\n standalone: true,\r\n selector: '[cuiTooltipContent]',\r\n providers: [cuiProvide(CUI_TOOLTIP_OPTIONS, CuiTooltipOptionsDirective)],\r\n})\r\nexport class CuiTooltipOptionsDirective implements CuiTooltipOptions, OnChanges {\r\n private readonly options = inject(CUI_TOOLTIP_OPTIONS, {skipSelf: true});\r\n\r\n @Input('cuiTooltipContent')\r\n public content: PolymorpheusContent;\r\n\r\n @Input('cuiTooltipDirection')\r\n public direction = this.options.direction;\r\n\r\n @Input('cuiTooltipAppearance')\r\n public appearance = this.options.appearance;\r\n\r\n @Input('cuiTooltipShowDelay')\r\n public showDelay = this.options.showDelay;\r\n\r\n @Input('cuiTooltipHideDelay')\r\n public hideDelay = this.options.hideDelay;\r\n\r\n public icon = this.options.icon;\r\n\r\n public readonly change$ = new Subject<void>();\r\n\r\n public ngOnChanges(): void {\r\n this.change$.next();\r\n }\r\n}\r\n","import {Directive, inject, Input} from '@angular/core';\r\nimport {CuiHoveredService, CUI_IS_MOBILE, cuiInjectElement} from '@cuby-ui/cdk';\r\nimport {cuiAsDriver, CuiDriver} from '../../classes';\r\nimport {cuiIsObscured} from '../../utils';\r\nimport {\r\n delay,\r\n filter,\r\n map,\r\n merge,\r\n of,\r\n repeat,\r\n Subject,\r\n switchMap,\r\n takeUntil,\r\n tap,\r\n} from 'rxjs';\r\n\r\nimport type {CuiTooltipOptions} from './tooltip-options.directive';\r\nimport {CUI_TOOLTIP_OPTIONS} from './tooltip-options.directive';\r\n\r\n@Directive({\r\n standalone: true,\r\n providers: [cuiAsDriver(CuiTooltipHover), CuiHoveredService],\r\n exportAs: 'cuiTooltipHover',\r\n})\r\nexport class CuiTooltipHover extends CuiDriver {\r\n private readonly isMobile = inject(CUI_IS_MOBILE);\r\n private readonly el = cuiInjectElement();\r\n private readonly hovered$ = inject(CuiHoveredService);\r\n private readonly options = inject(CUI_TOOLTIP_OPTIONS);\r\n private visible = false;\r\n private readonly toggle$ = new Subject<boolean>();\r\n private readonly stream$ = merge(\r\n this.toggle$.pipe(\r\n switchMap((visible) =>\r\n this.isMobile\r\n ? of(visible)\r\n : of(visible).pipe(delay(visible ? 0 : this.cuiTooltipHideDelay)),\r\n ),\r\n takeUntil(this.hovered$),\r\n repeat(),\r\n ),\r\n this.hovered$.pipe(\r\n switchMap((visible) =>\r\n this.isMobile\r\n ? of(visible)\r\n : of(visible).pipe(\r\n delay(visible ? this.cuiTooltipShowDelay : this.cuiTooltipHideDelay),\r\n ),\r\n ),\r\n takeUntil(this.toggle$),\r\n repeat(),\r\n ),\r\n ).pipe(\r\n filter(() => this.enabled),\r\n map(\r\n (value) =>\r\n value &&\r\n (this.el.hasAttribute('cuiTooltipPointer') || !cuiIsObscured(this.el)),\r\n ),\r\n tap((visible) => {\r\n this.visible = visible;\r\n }),\r\n );\r\n\r\n private readonly parent = inject(CuiTooltipHover, {\r\n optional: true,\r\n skipSelf: true,\r\n });\r\n\r\n @Input()\r\n public cuiTooltipShowDelay: CuiTooltipOptions['showDelay'] = this.options.showDelay;\r\n\r\n @Input()\r\n public cuiTooltipHideDelay: CuiTooltipOptions['hideDelay'] = this.options.hideDelay;\r\n\r\n public readonly type = 'hint';\r\n\r\n public enabled = true;\r\n\r\n constructor() {\r\n super((subscriber) => this.stream$.subscribe(subscriber));\r\n }\r\n\r\n public toggle(visible = !this.visible): void {\r\n this.toggle$.next(visible);\r\n this.parent?.toggle(visible);\r\n }\r\n}\r\n","import {Directive, EventEmitter, inject, Input, Output} from '@angular/core';\r\nimport {EMPTY_CLIENT_RECT, CUI_IS_MOBILE, cuiPure } from '@cuby-ui/cdk';\r\nimport {\r\n cuiFallbackAccessor,\r\n CuiPositionAccessor,\r\n CuiRectAccessor,\r\n} from '../../classes';\r\nimport {CUI_VIEWPORT} from '../../tokens';\r\nimport type {CuiPoint} from '../../types';\r\n\r\nimport {CuiTooltipDirective} from './tooltip.directive';\r\nimport type {CuiTooltipDirection, CuiTooltipOptions} from './tooltip-options.directive';\r\nimport {CUI_TOOLTIP_DIRECTIONS, CUI_TOOLTIP_OPTIONS} from './tooltip-options.directive';\r\n\r\nconst GAP = 8;\r\nconst ARROW_OFFSET = 24;\r\nconst TOP = 0;\r\nconst LEFT = 1;\r\n\r\n@Directive({\r\n standalone: true,\r\n})\r\nexport class CuiTooltipPosition extends CuiPositionAccessor {\r\n private readonly offset = inject(CUI_IS_MOBILE) ? 16 : 5;\r\n private readonly viewport = inject(CUI_VIEWPORT);\r\n private readonly accessor = cuiFallbackAccessor<CuiRectAccessor>('hint')(\r\n inject<any>(CuiRectAccessor),\r\n inject(CuiTooltipDirective),\r\n );\r\n\r\n private readonly points: Record<CuiTooltipDirection, [number, number]> =\r\n CUI_TOOLTIP_DIRECTIONS.reduce(\r\n (acc, direction) => ({...acc, [direction]: [0, 0]}),\r\n {} as Record<CuiTooltipDirection, [number, number]>,\r\n );\r\n\r\n @Input('cuiTooltipDirection')\r\n public direction: CuiTooltipOptions['direction'] = inject(CUI_TOOLTIP_OPTIONS).direction;\r\n\r\n @Output('cuiTooltipDirectionChange')\r\n public readonly directionChange = new EventEmitter<CuiTooltipDirection>();\r\n\r\n public readonly type = 'hint';\r\n\r\n @cuiPure\r\n public emitDirection(direction: CuiTooltipDirection): void {\r\n this.directionChange.emit(direction);\r\n }\r\n\r\n public getPosition(rect: DOMRect, el?: HTMLElement): CuiPoint {\r\n const width = el?.clientWidth ?? rect.width;\r\n const height = el?.clientHeight ?? rect.height;\r\n const hostRect = this.accessor.getClientRect() ?? EMPTY_CLIENT_RECT;\r\n const leftCenter = hostRect.left + hostRect.width / 2;\r\n const topCenter = hostRect.top + hostRect.height / 2;\r\n\r\n this.points['top-left'][TOP] = hostRect.top - height - this.offset;\r\n this.points['top-left'][LEFT] = leftCenter - width + ARROW_OFFSET;\r\n this.points.top[TOP] = this.points['top-left'][TOP];\r\n this.points.top[LEFT] = leftCenter - width / 2;\r\n this.points['top-right'][TOP] = this.points['top-left'][TOP];\r\n this.points['top-right'][LEFT] = leftCenter - ARROW_OFFSET;\r\n\r\n this.points['bottom-left'][TOP] = hostRect.bottom + this.offset;\r\n this.points['bottom-left'][LEFT] = this.points['top-left'][LEFT];\r\n this.points.bottom[TOP] = this.points['bottom-left'][TOP];\r\n this.points.bottom[LEFT] = this.points.top[LEFT];\r\n this.points['bottom-right'][TOP] = this.points['bottom-left'][TOP];\r\n this.points['bottom-right'][LEFT] = this.points['top-right'][LEFT];\r\n\r\n this.points['left-top'][TOP] = topCenter - height + ARROW_OFFSET;\r\n this.points['left-top'][LEFT] = hostRect.left - width - this.offset;\r\n this.points.left[TOP] = topCenter - height / 2;\r\n this.points.left[LEFT] = this.points['left-top'][LEFT];\r\n this.points['left-bottom'][TOP] = topCenter - ARROW_OFFSET;\r\n this.points['left-bottom'][LEFT] = this.points['left-top'][LEFT];\r\n\r\n this.points['right-top'][TOP] = this.points['left-top'][TOP];\r\n this.points['right-top'][LEFT] = hostRect.right + this.offset;\r\n this.points.right[TOP] = this.points.left[TOP];\r\n this.points.right[LEFT] = this.points['right-top'][LEFT];\r\n this.points['right-bottom'][TOP] = this.points['left-bottom'][TOP];\r\n this.points['right-bottom'][LEFT] = this.points['right-top'][LEFT];\r\n\r\n const priorityDirections = Array.isArray(this.direction)\r\n ? this.direction\r\n : [this.direction];\r\n const sortedDirections = priorityDirections.concat(CUI_TOOLTIP_DIRECTIONS);\r\n\r\n const direction = sortedDirections.find((direction) =>\r\n this.checkPosition(this.points[direction], width, height),\r\n );\r\n\r\n this.emitDirection(direction || this.fallback);\r\n\r\n return this.points[direction || this.fallback];\r\n }\r\n\r\n private get fallback(): CuiTooltipDirection {\r\n return this.points.top[TOP] >\r\n this.viewport.getClientRect().bottom - this.points.bottom[TOP]\r\n ? 'top'\r\n : 'bottom';\r\n }\r\n\r\n private checkPosition([top, left]: CuiPoint, width: number, height: number): boolean {\r\n const viewport = this.viewport.getClientRect();\r\n\r\n return (\r\n top > GAP &&\r\n left > GAP &&\r\n top + height < viewport.bottom - GAP &&\r\n left + width < viewport.right - GAP\r\n );\r\n }\r\n}\r\n","import type {OnDestroy} from '@angular/core';\r\nimport {Directive, inject, INJECTOR, Input, signal} from '@angular/core';\r\nimport {cuiInjectElement, CuiActiveZone} from '@cuby-ui/cdk';\r\nimport type {CuiRectAccessor, CuiVehicle } from '../../classes';\r\nimport {cuiAsRectAccessor, cuiAsVehicle } from '../../classes';\r\nimport type {CuiPortalItem} from '../../types';\r\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\r\nimport {PolymorpheusComponent} from '@taiga-ui/polymorpheus';\r\n\r\nimport {CUI_TOOLTIP_COMPONENT} from './tooltip.providers';\r\nimport {CuiTooltipService} from './tooltip.service';\r\nimport {CuiTooltipDriver} from './tooltip-driver.directive';\r\nimport {CuiTooltipHover} from './tooltip-hover.directive';\r\nimport {CUI_TOOLTIP_OPTIONS} from './tooltip-options.directive';\r\nimport {CuiTooltipPosition} from './tooltip-position.directive';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[cuiTooltip]:not(ng-container):not(ng-template)',\r\n providers: [\r\n cuiAsRectAccessor(CuiTooltipDirective),\r\n cuiAsVehicle(CuiTooltipDirective),\r\n {\r\n provide: PolymorpheusComponent,\r\n deps: [CUI_TOOLTIP_COMPONENT, INJECTOR],\r\n useClass: PolymorpheusComponent,\r\n },\r\n ],\r\n hostDirectives: [\r\n CuiTooltipDriver,\r\n {\r\n directive: CuiTooltipHover,\r\n inputs: ['cuiTooltipHideDelay', 'cuiTooltipShowDelay'],\r\n },\r\n {\r\n directive: CuiTooltipPosition,\r\n inputs: ['cuiTooltipDirection'],\r\n outputs: ['cuiTooltipDirectionChange'],\r\n },\r\n ],\r\n})\r\nexport class CuiTooltipDirective<C>\r\n implements OnDestroy, CuiPortalItem<C>, CuiRectAccessor, CuiVehicle\r\n{\r\n private readonly service = inject(CuiTooltipService);\r\n\r\n @Input('cuiTooltipContext')\r\n public context?: C;\r\n\r\n @Input('cuiTooltipAppearance')\r\n public appearance = inject(CUI_TOOLTIP_OPTIONS).appearance;\r\n\r\n public content = signal<PolymorpheusContent<C>>(null);\r\n public component = inject(PolymorpheusComponent<unknown>);\r\n public readonly el = cuiInjectElement();\r\n public readonly activeZone? = inject(CuiActiveZone, {optional: true});\r\n public readonly type = 'hint';\r\n\r\n @Input()\r\n public set cuiTooltip(content: PolymorpheusContent<C>) {\r\n this.content.set(content);\r\n\r\n if (!content) {\r\n this.toggle(false);\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.toggle(false);\r\n }\r\n\r\n public getClientRect(): DOMRect {\r\n return this.el.getBoundingClientRect();\r\n }\r\n\r\n public toggle(show: boolean): void {\r\n if (show && this.content()) {\r\n this.service.add(this);\r\n } else {\r\n this.service.remove(this);\r\n }\r\n }\r\n}\r\n","import {Directive} from '@angular/core';\r\nimport {EMPTY_CLIENT_RECT, cuiPointToClientRect} from '@cuby-ui/cdk';\r\nimport type {CuiRectAccessor} from '../../classes';\r\nimport {cuiAsDriver, cuiAsRectAccessor} from '../../classes';\r\n\r\nimport {CuiTooltipHover} from './tooltip-hover.directive';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[cuiTooltip][cuiTooltipPointer]',\r\n providers: [cuiAsRectAccessor(CuiTooltipPointer), cuiAsDriver(CuiTooltipPointer)],\r\n host: {\r\n '(mousemove.silent)': 'onMove($event)',\r\n },\r\n})\r\nexport class CuiTooltipPointer extends CuiTooltipHover implements CuiRectAccessor {\r\n private currentRect = EMPTY_CLIENT_RECT;\r\n\r\n public getClientRect(): DOMRect {\r\n return this.currentRect;\r\n }\r\n\r\n protected onMove({clientX, clientY}: MouseEvent): void {\r\n this.currentRect = cuiPointToClientRect(clientX, clientY);\r\n }\r\n}\r\n","import type {WritableSignal} from '@angular/core';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Directive,\r\n inject,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport type {CuiContext} from '@cuby-ui/cdk';\r\nimport {cuiParentAnimation} from '../../animations';\r\nimport type {CuiPortalItem} from '../../types';\r\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\r\nimport {\r\n injectContext,\r\n PolymorpheusComponent,\r\n PolymorpheusOutlet,\r\n} from '@taiga-ui/polymorpheus';\r\n\r\nimport {CuiTooltipDirective} from './tooltip.directive';\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [PolymorpheusOutlet],\r\n template: '<ng-container *polymorpheusOutlet=\"context.$implicit.content()\" />',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [cuiParentAnimation],\r\n host: {'[@cuiParentAnimation]': ''},\r\n})\r\nexport class CuiTooltipUnstyledComponent {\r\n protected readonly context =\r\n injectContext<\r\n CuiContext<CuiPortalItem & {content: WritableSignal<PolymorpheusContent>}>\r\n >();\r\n}\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: 'ng-template[cuiTooltip]',\r\n})\r\nexport class CuiTooltipUnstyled<C> {\r\n constructor() {\r\n const hint = inject(CuiTooltipDirective<C>);\r\n\r\n hint.component = new PolymorpheusComponent(CuiTooltipUnstyledComponent);\r\n hint.content.set(inject(TemplateRef<C>));\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, forwardRef, inject, signal } from '@angular/core';\r\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\r\nimport {EMPTY_CLIENT_RECT,CuiHoveredService, CuiContext} from '@cuby-ui/cdk';\r\nimport {cuiFadeIn, cuiScaleIn} from '../../animations';\r\nimport {\r\n cuiPositionAccessorFor,\r\n CuiRectAccessor,\r\n cuiRectAccessorFor,\r\n} from '../../classes';\r\nimport {CuiPositionService, CuiVisualViewportService} from '../../services';\r\nimport {CUI_ANIMATIONS_SPEED, CUI_VIEWPORT} from '../../tokens';\r\nimport {cuiIsObscured, cuiToAnimationOptions} from '../../utils';\r\nimport {injectContext, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\r\nimport {map, takeWhile} from 'rxjs';\r\n\r\nimport {CuiTooltipDirective} from './tooltip.directive';\r\nimport {CuiTooltipHover} from './tooltip-hover.directive';\r\nimport {CuiTooltipPointer} from './tooltip-pointer.directive';\r\nimport {CuiTooltipPosition} from './tooltip-position.directive';\r\nimport {CuiTooltipUnstyledComponent} from './tooltip-unstyled.component';\r\nimport { CUI_IS_MOBILE, cuiClamp, cuiInjectElement, cuiPure, cuiPx } from '@cuby-ui/cdk';\r\n\r\nconst GAP = 8;\r\n\r\nexport const CUI_TOOLTIP_PROVIDERS = [\r\n CuiPositionService,\r\n CuiHoveredService,\r\n cuiPositionAccessorFor('hint', CuiTooltipPosition),\r\n cuiRectAccessorFor('hint', forwardRef(() => CuiTooltipDirective)),\r\n];\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'cui-tooltip',\r\n imports: [PolymorpheusOutlet],\r\n template: `\r\n <ng-content />\r\n <span\r\n *polymorpheusOutlet=\"content() as text; context: hint.context\"\r\n [innerHTML]=\"text\"\r\n ></span>\r\n `,\r\n styleUrls: ['./tooltip.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: CUI_TOOLTIP_PROVIDERS,\r\n animations: [cuiFadeIn, cuiScaleIn],\r\n host: {\r\n '[@cuiScaleIn]': 'isMobile ? options : desktop',\r\n '[@cuiFadeIn]': 'options',\r\n '[class._untouchable]': 'pointer',\r\n '[class._mobile]': 'isMobile',\r\n '[attr.data-appearance]': 'appearance',\r\n '[attr.cuiTheme]': 'appearance',\r\n '(document:click)': 'onClick($event.target)',\r\n },\r\n})\r\nexport class CuiTooltipComponent<C = any> {\r\n private readonly el = cuiInjectElement();\r\n private readonly hover = inject(CuiTooltipHover);\r\n private readonly vvs = inject(CuiVisualViewportService);\r\n private readonly viewport = inject(CUI_VIEWPORT);\r\n\r\n protected readonly desktop = {value: '', params: {end: 1, start: 1}};\r\n protected readonly options = cuiToAnimationOptions(\r\n inject(CUI_ANIMATIONS_SPEED),\r\n 'cubic-bezier(0.35, 1.3, 0.25, 1)',\r\n );\r\n\r\n protected readonly pointer = inject(CuiTooltipPointer, {optional: true});\r\n protected readonly accessor = inject(CuiRectAccessor);\r\n protected readonly hint = injectContext<CuiContext<CuiTooltipDirective<C>>>().$implicit;\r\n protected readonly isMobile = inject(CUI_IS_MOBILE);\r\n\r\n protected readonly content =\r\n this.hint.component.component === CuiTooltipUnstyledComponent\r\n ? signal('')\r\n : this.hint.content;\r\n\r\n protected readonly appearance =\r\n this.hint.appearance ||\r\n this.hint.el.closest('[cuiTheme]')?.getAttribute('cuiTheme');\r\n\r\n constructor() {\r\n inject(CuiPositionService)\r\n .pipe(\r\n takeWhile(() => this.hint.el.isConnected),\r\n map((point) => this.vvs.correct(point)),\r\n takeUntilDestroyed(),\r\n )\r\n .subscribe({\r\n next: ([top, left]) => this.update(top, left),\r\n complete: () => this.hover.toggle(false),\r\n });\r\n\r\n inject(CuiHoveredService)\r\n .pipe(takeUntilDestroyed())\r\n .subscribe((hover) => this.hover.toggle(hover));\r\n }\r\n\r\n protected onClick(target: HTMLElement): void {\r\n if (\r\n (!target.closest('cui-hint') && !this.hint.el.contains(target)) ||\r\n cuiIsObscured(this.hint.el)\r\n ) {\r\n this.hover.toggle(false);\r\n }\r\n }\r\n\r\n @cuiPure\r\n private apply(top: string, left: string, beakTop: number, beakLeft: number): void {\r\n this.el.style.top = top;\r\n this.el.style.left = left;\r\n this.el.style.setProperty('--top', `${beakTop}%`);\r\n this.el.style.setProperty('--left', `${beakLeft}%`);\r\n this.el.style.setProperty(\r\n '--rotate',\r\n !beakLeft || Math.ceil(beakLeft) === 100 ? '90deg' : '0deg',\r\n );\r\n }\r\n\r\n private update(top: number, left: number): void {\r\n const {clientHeight, clientWidth} = this.el;\r\n const rect = this.accessor.getClientRect();\r\n const viewport = this.viewport.getClientRect();\r\n\r\n if (rect === EMPTY_CLIENT_RECT || !clientHeight || !clientWidth) {\r\n return;\r\n }\r\n\r\n const safeLeft = cuiClamp(left, GAP, viewport.width - clientWidth - GAP);\r\n const [beakTop, beakLeft] = this.vvs.correct([\r\n rect.top + rect.height / 2 - top,\r\n rect.left + rect.width / 2 - safeLeft,\r\n ]);\r\n\r\n this.apply(\r\n cuiPx(Math.round(top)),\r\n cuiPx(Math.round(safeLeft)),\r\n Math.round((cuiClamp(beakTop, 0, clientHeight) / clientHeight) * 100),\r\n Math.round((cuiClamp(beakLeft, 0, clientWidth) / clientWidth) * 100),\r\n );\r\n }\r\n}\r\n","import {DOCUMENT} from '@angular/common';\r\nimport {Directive, inject, Input, NgZone} from '@angular/core';\r\nimport {\r\n cuiIfMap,\r\n cuiTypedFromEvent,\r\n cuiZonefreeScheduler,\r\n cuiZoneOptimized,\r\n cuiInjectElement,\r\n cuiIsPresent, cuiPure,\r\n cuiIsNativeFocused\r\n} from '@cuby-ui/cdk';\r\nimport {cuiAsDriver, CuiDriver} from '../../classes';\r\nimport {\r\n BehaviorSubject,\r\n debounce,\r\n distinctUntilChanged,\r\n fromEvent,\r\n map,\r\n merge,\r\n of,\r\n skip,\r\n startWith,\r\n switchMap,\r\n timer,\r\n} from 'rxjs';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[cuiTooltipDescribe]',\r\n providers: [cuiAsDriver(CuiTooltipDescribe)],\r\n})\r\nexport class CuiTooltipDescribe extends CuiDriver {\r\n private readonly doc = inject(DOCUMENT);\r\n private readonly el = cuiInjectElement();\r\n private readonly zone = inject(NgZone);\r\n private readonly id$ = new BehaviorSubject('');\r\n private readonly stream$ = this.id$.pipe(\r\n distinctUntilChanged(),\r\n cuiIfMap(() => fromEvent(this.doc, 'keydown', {capture: true}), cuiIsPresent),\r\n switchMap(() =>\r\n this.focused\r\n ? of(false)\r\n : merge(\r\n cuiTypedFromEvent(this.doc, 'keyup'),\r\n cuiTypedFromEvent(this.element, 'blur'),\r\n ).pipe(map(() => this.focused)),\r\n ),\r\n debounce((visible) =>\r\n visible ? timer(1000, cuiZonefreeScheduler(this.zone)) : of(null),\r\n ),\r\n startWith(false),\r\n distinctUntilChanged(),\r\n skip(1),\r\n cuiZoneOptimized(),\r\n );\r\n\r\n public readonly type = 'hint';\r\n\r\n constructor() {\r\n super((subscriber) => this.stream$.subscribe(subscriber));\r\n }\r\n\r\n @Input()\r\n public set cuiTooltipDescribe(id: string | null | undefined) {\r\n this.id$.next(id || '');\r\n }\r\n\r\n @cuiPure\r\n private get element(): HTMLElement {\r\n return this.doc.getElementById(this.id$.value || '') || this.el;\r\n }\r\n\r\n private get focused(): boolean {\r\n return cuiIsNativeFocused(this.element);\r\n }\r\n}\r\n","import {Directive, Input} from '@angular/core';\r\nimport {EMPTY_CLIENT_RECT} from '@cuby-ui/cdk';\r\nimport {cuiAsRectAccessor, CuiRectAccessor} from '../../classes';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[cuiTooltip][cuiTooltipHost]',\r\n providers: [cuiAsRectAccessor(CuiTooltipHost)],\r\n})\r\nexport class CuiTooltipHost extends CuiRectAccessor {\r\n @Input()\r\n public cuiTooltipHost?: HTMLElement;\r\n\r\n public readonly type = 'hint';\r\n\r\n public getClientRect(): DOMRect {\r\n return this.cuiTooltipHost?.getBoundingClientRect() || EMPTY_CLIENT_RECT;\r\n }\r\n}\r\n","import type {OnChanges} from '@angular/core';\r\nimport {Directive, inject, Input} from '@angular/core';\r\nimport {cuiAsDriver, CuiDriver} from '../../classes';\r\nimport {BehaviorSubject} from 'rxjs';\r\n\r\nimport {CuiTooltipHover} from './tooltip-hover.directive';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[cuiTooltip][cuiTooltipManual]',\r\n providers: [cuiAsDriver(CuiTooltipManual)],\r\n})\r\nexport class CuiTooltipManual extends CuiDriver implements OnChanges {\r\n private readonly hover = inject(CuiTooltipHover);\r\n private readonly stream$ = new BehaviorSubject(false);\r\n\r\n @Input()\r\n public cuiTooltipManual = false;\r\n\r\n public readonly type = 'hint';\r\n\r\n constructor() {\r\n super((subscriber) => this.stream$.subscribe(subscriber));\r\n this.hover.enabled = false;\r\n }\r\n\r\n public ngOnChanges(): void {\r\n this.stream$.next(this.cuiTooltipManual);\r\n }\r\n}\r\n","import {Directive, inject} from '@angular/core';\r\n\r\nimport {CuiTooltipDirective} from './tooltip.directive';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[cuiTooltipOverflow]',\r\n hostDirectives: [\r\n {\r\n directive: CuiTooltipDirective,\r\n inputs: ['cuiTooltipAppearance'],\r\n },\r\n ],\r\n host: {\r\n '(mouseenter)': 'onMouseEnter($event.currentTarget)',\r\n },\r\n})\r\nexport class CuiTooltipOverflow {\r\n private readonly hint = inject(CuiTooltipDirective);\r\n\r\n protected onMouseEnter({scrollWidth, clientWidth, textContent}: Element): void {\r\n this.hint.cuiTooltip = scrollWidth > clientWidth ? textContent : '';\r\n }\r\n}\r\n","import {CuiTooltipComponent} from './tooltip.component';\r\nimport {CuiTooltipDirective} from './tooltip.directive';\r\nimport {CuiTooltipDescribe} from './tooltip-describe.directive';\r\nimport {CuiTooltipDriver} from './tooltip-driver.directive';\r\nimport {CuiTooltipHost} from './tooltip-host.directive';\r\nimport {CuiTooltipHover} from './tooltip-hover.directive';\r\nimport {CuiTooltipManual} from './tooltip-manual.directive';\r\nimport {CuiTooltipOptionsDirective} from './tooltip-options.directive';\r\nimport {CuiTooltipOverflow} from './tooltip-overflow.directive';\r\nimport {CuiTooltipPointer} from './tooltip-pointer.directive';\r\nimport {CuiTooltipPosition} from './tooltip-position.directive';\r\nimport {CuiTooltipUnstyled} from './tooltip-unstyled.component';\r\n\r\nexport const CuiTooltip = [\r\n CuiTooltipComponent,\r\n CuiTooltipDirective,\r\n CuiTooltipOptionsDirective,\r\n CuiTooltipUnstyled,\r\n CuiTooltipDriver,\r\n CuiTooltipPosition,\r\n CuiTooltipHover,\r\n CuiTooltipOverflow,\r\n CuiTooltipDescribe,\r\n CuiTooltipHost,\r\n CuiTooltipManual,\r\n CuiTooltipPointer,\r\n] as const;\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { CuiRootComponent } from './root.component';\r\nimport { CuiDialogModule } from '../dialog';\r\nimport { CuiAlertModule } from '../alert';\r\nimport { CuiTooltips } from '../../directives/tooltip';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CuiDialogModule,\r\n CuiAlertModule,\r\n CuiTooltips\r\n ],\r\n declarations: [CuiRootComponent],\r\n exports: [CuiRootComponent]\r\n})\r\nexport class CuiRootModule {\r\n}\r\n","import type { OnInit, AfterViewInit, TemplateRef, OnDestroy } from '@angular/core';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n HostListener,\r\n inject,\r\n Input,\r\n ViewContainerRef,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { CuiDestroyService, CuiClickOutsideDirective, CuiTargetDirective, CUI_WINDOW, cuiGetClosestFocusable } from '@cuby-ui/cdk';\r\nimport { fromEvent, take, takeUntil } from 'rxjs';\r\n\r\nimport type { CuiContextMenuItem } from '../../interfaces';\r\nimport { CUI_ROOT_SELECTOR } from '../root';\r\n\r\n@Component({\r\n selector: 'cui-context-menu[items][target]',\r\n templateUrl: './context-menu.component.html',\r\n styleUrls: ['./context-menu.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [CuiDestroyService],\r\n hostDirectives: [\r\n CuiClickOutsideDirective,\r\n {\r\n directive: CuiTargetDirective,\r\n inputs: ['ccTarget: target']\r\n }\r\n ]\r\n})\r\nexport class CuiContextMenuComponent implements OnInit, AfterViewInit, OnDestroy {\r\n private readonly viewContainerRef = inject(ViewContainerRef);\r\n private readonly document = inject(DOCUMENT);\r\n private readonly documentElement = this.document.documentElement;\r\n private readonly window = inject(CUI_WINDOW);\r\n private readonly destroy$ = inject(CuiDestroyService, { self: true });\r\n private readonly cuiClickOutsideDirective = inject(CuiClickOutsideDirective, { self: true });\r\n private readonly cuiTargetDirective = inject(CuiTargetDirective, { self: true });\r\n\r\n protected readonly EXTRA_OFFSET_LEFT = 0;\r\n protected readonly EXTRA_OFFSET_TOP = 0;\r\n\r\n protected isVisible = false;\r\n protected node?: HTMLDivElement;\r\n\r\n @Input()\r\n public items!: CuiContextMenuItem[];\r\n\r\n @Input()\r\n public target!: HTMLElement;\r\n\r\n @ViewChild('list')\r\n protected readonly list!: TemplateRef<any>;\r\n\r\n @ViewChild('backdrop')\r\n protected readonly backdrop!: TemplateRef<any>;\r\n\r\n public ngOnInit(): void {\r\n this.initClickOutsideSubscription();\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.clearViewContainerRef();\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n this.initTargetElementListener();\r\n }\r\n\r\n protected onSelect(item: CuiContextMenuItem): void {\r\n this.close();\r\n\r\n item.command?.();\r\n }\r\n\r\n @HostListener('window:resize')\r\n protected onClose(): void {\r\n this.close();\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n protected onStopClickPropagation(event: MouseEvent): void {\r\n event.stopPropagation();\r\n }\r\n\r\n protected trackByFn(_: number, item: CuiContextMenuItem): string {\r\n return item.label;\r\n }\r\n\r\n private initClickOutsideSubscription(): void {\r\n this.cuiClickOutsideDirective.cuiClickOutside\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((target) => {\r\n if (this.target.contains(target)) {\r\n return;\r\n }\r\n\r\n this.close();\r\n })\r\n }\r\n\r\n private initTargetElementListener(): void {\r\n this.cuiTargetDirective.clicked\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(this.targetEventListener.bind(this));\r\n }\r\n\r\n private initHidingSubscription(): void {\r\n this.initHidingFromWindowEvent('scroll');\r\n this.initHidingFromWindowEvent('resize');\r\n }\r\n\r\n private initHidingFromWindowEvent(eventName: keyof WindowEventMap): void {\r\n fromEvent(this.window, eventName)\r\n .pipe(take(1))\r\n .subscribe(() => this.close());\r\n }\r\n\r\n private targetEventListener(event: MouseEvent): void {\r\n event.stopPropagation();\r\n // TODO: нужен для перерисовки ngFor\r\n this.document.body.click();\r\n\r\n this.isVisible = !this.isVisible;\r\n\r\n this.clearViewContainerRef();\r\n\r\n if (!this.isVisible) {\r\n return;\r\n }\r\n\r\n this.renderList();\r\n this.changePosition(event.clientX, event.clientY);\r\n this.initHidingSubscription();\r\n };\r\n\r\n private close(): void {\r\n this.isVisible = false;\r\n\r\n this.clearViewContainerRef();\r\n }\r\n\r\n private renderList(): void {\r\n const root = this.document.querySelector(CUI_ROOT_SELECTOR)!;\r\n const backdropViewRef = this.viewContainerRef.createEmbeddedView(this.backdrop);\r\n const listViewRef = this.viewContainerRef.createEmbeddedView(this.list);\r\n\r\n this.node = listViewRef.rootNodes[0];\r\n\r\n root.append(backdropViewRef.rootNodes[0], this.node!);\r\n }\r\n\r\n private changePosition(x: number, y: number): void {\r\n this.node!.style.visibility = 'hidden';\r\n\r\n setTimeout(() => {\r\n const { clientWidth, clientHeight } = this.documentElement;\r\n const width = this.node!.offsetWidth;\r\n const height = this.node!.offsetHeight;\r\n let left = x;\r\n let top = y;\r\n\r\n if (left + width > clientWidth) {\r\n left -= width;\r\n }\r\n\r\n if (top + height > clientHeight) {\r\n top -= height;\r\n }\r\n\r\n left = Math.max(left, this.EXTRA_OFFSET_LEFT);\r\n top = Math.max(top, this.EXTRA_OFFSET_TOP);\r\n\r\n this.node!.style.left = left + 'px';\r\n this.node!.style.top = top + 'px';\r\n this.node!.style.visibility = '';\r\n\r\n cuiGetClosestFocusable({ initial: this.node!, root: this.node! })?.focus();\r\n });\r\n }\r\n\r\n private clearViewContainerRef(): void {\r\n this.viewContainerRef.clear();\r\n }\r\n}\r\n","<ng-template #backdrop>\r\n <div class=\"c-backdrop\"></div>\r\n</ng-template>\r\n\r\n<ng-template #list>\r\n <div class=\"c-container\">\r\n <ul class=\"c-ul\">\r\n <li\r\n *ngFor=\"let item of items; trackBy: trackByFn\"\r\n [style.color]=\"item.color\"\r\n >\r\n <button\r\n type=\"button\"\r\n class=\"c-button\"\r\n (click)=\"onSelect(item)\"\r\n >\r\n <cui-svg\r\n *ngIf=\"item.icon\"\r\n [icon]=\"item.icon\"\r\n [color]=\"item.color\"\r\n ></cui-svg>\r\n <span>{{ item.label }}</span>\r\n </button>\r\n </li>\r\n </ul>\r\n </div>\r\n</ng-template>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { CuiSvgModule } from '../svg';\r\nimport { CuiContextMenuComponent } from './context-menu.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CuiSvgModule\r\n ],\r\n declarations: [CuiContextMenuComponent],\r\n exports: [CuiContextMenuComponent]\r\n})\r\nexport class CuiContextMenuModule {\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport type { OnDestroy, OnInit, TemplateRef } from '@angular/core';\r\nimport { Directive, ElementRef, EventEmitter, HostListener, inject, Input, Output, signal, ViewContainerRef } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { CUI_WINDOW } from '@cuby-ui/cdk';\r\nimport { fromEvent } from 'rxjs';\r\n\r\nimport type { ChangePositionYParams, CuiDropdownOrientation } from './dropdown.interfaces';\r\n\r\n@Directive({\r\n selector: '[cuiDropdown]',\r\n exportAs: 'cuiDropdown',\r\n standalone: true,\r\n})\r\nexport class CuiDropdownDirective implements OnInit, OnDestroy {\r\n private readonly document = inject(DOCUMENT);\r\n private readonly viewContainerRef = inject(ViewContainerRef);\r\n private readonly target = inject(ElementRef).nativeElement;\r\n private readonly window = inject(CUI_WINDOW);\r\n\r\n private readonly SPACE_BETWEEN_TARGET_AND_LIST = 5;\r\n private readonly CONTAINER_SELECTOR = 'cui-dropdowns';\r\n private readonly DROPDOWN_SELECTOR = 'cui-dropdown';\r\n\r\n private container!: Element;\r\n private element!: HTMLElement;\r\n private backdrop!: HTMLDivElement;\r\n\r\n @Input({ required: true, alias: 'cuiDropdown' })\r\n public content!: TemplateRef<unknown>;\r\n\r\n @Input()\r\n public orientation: CuiDropdownOrientation = 'left';\r\n\r\n @Output()\r\n public readonly isOpened = new EventEmitter<boolean>();\r\n\r\n private readonly isOpen = signal(false);\r\n private readonly targetToggleEventListener = (): void => {\r\n if (!this.isOpen()) {\r\n this.open();\r\n\r\n return;\r\n }\r\n\r\n this.close();\r\n };\r\n private elementResizeObserver!: ResizeObserver;\r\n\r\n constructor() {\r\n this.initTargetElementListener();\r\n }\r\n\r\n @HostListener('window:resize')\r\n protected onResize(): void {\r\n this.close();\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n protected onClick(event: MouseEvent): void {\r\n if (!this.isOpen()) {\r\n return;\r\n }\r\n\r\n const target = event.target as HTMLElement;\r\n const elements = this.document.elementsFromPoint(event.clientX, event.clientY);\r\n const doesExist = elements.some((element) => this.element.contains(element));\r\n\r\n if (this.target.contains(target) || this.element.contains(target) || doesExist) {\r\n return;\r\n }\r\n\r\n this.close();\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.initContainer();\r\n this.initDropdown();\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.close();\r\n this.destroyElementResizeObserver();\r\n }\r\n\r\n public open(): void {\r\n this.isOpen.set(true);\r\n this.container.append(this.backdrop, this.element);\r\n this.calculateDropdownPosition();\r\n this.isOpened.emit(true);\r\n }\r\n\r\n public close(): void {\r\n this.isOpen.set(false);\r\n this.element?.remove();\r\n this.backdrop?.remove();\r\n this.isOpened.emit(false);\r\n }\r\n\r\n private initContainer(): void {\r\n const root = this.document.querySelector('cui-dialogs');\r\n const container = this.document.body.querySelector(this.CONTAINER_SELECTOR);\r\n\r\n if (container) {\r\n this.container = container;\r\n\r\n return;\r\n }\r\n\r\n this.container = this.document.createElement(this.CONTAINER_SELECTOR);\r\n\r\n root?.after(this.container);\r\n }\r\n\r\n private initDropdown(): void {\r\n const content = this.viewContainerRef.createEmbeddedView(this.content).rootNodes;\r\n this.element = this.document.createElement(this.DROPDOWN_SELECTOR);\r\n this.backdrop = this.document.createElement('div');\r\n\r\n this.element.style.top = '0';\r\n this.element.style.position = 'absolute';\r\n this.backdrop.style.position = 'fixed';\r\n this.backdrop.style.inset = '0';\r\n this.element.append(...content);\r\n\r\n this.initResizeObserver();\r\n }\r\n\r\n private initTargetElementListener(): void {\r\n fromEvent(this.target, 'click').pipe(takeUntilDestroyed()).subscribe(this.targetToggleEventListener);\r\n }\r\n\r\n private initResizeObserver(): void {\r\n this.elementResizeObserver = new ResizeObserver(() => {\r\n this.changeDropdownYCoordinateIfNeeded();\r\n });\r\n\r\n this.elementResizeObserver.observe(this.element);\r\n }\r\n\r\n private destroyElementResizeObserver(): void {\r\n this.elementResizeObserver.disconnect();\r\n }\r\n\r\n private changeDropdownYCoordinateIfNeeded(): void {\r\n const distanceToBottom =\r\n this.document.documentElement.clientHeight - this.element.getBoundingClientRect().bottom;\r\n\r\n if (distanceToBottom >= 0) {\r\n return;\r\n }\r\n\r\n this.element.style.top = parseFloat(this.element.style.top) + distanceToBottom + 'px';\r\n }\r\n\r\n private calculateDropdownPosition(): void {\r\n this.element.style.visibility = 'hidden';\r\n\r\n setTimeout(() => {\r\n const targetRect = this.target.getBoundingClientRect();\r\n const container = this.findScrollableContainer(this.target);\r\n const containerRect = container.getBoundingClientRect();\r\n const { clientHeight, clientWidth } = this.document.documentElement;\r\n const visibleTop = Math.max(targetRect.top, containerRect.top);\r\n const visibleBottom = Math.min(targetRect.bottom, containerRect.bottom);\r\n const dropdownHeight = this.element.offsetHeight;\r\n\r\n const shouldListOpenAbove = clientHeight - visibleBottom < dropdownHeight;\r\n const shouldListAlignLeft = targetRect.left + dropdownHeight > clientWidth;\r\n const orientation = this.orientation ?? (shouldListAlignLeft ? 'left' : 'right');\r\n\r\n this.changePositionY({ shouldListOpenAbove, visibleTop, visibleBottom, dropdownHeight });\r\n this.changePositionX(orientation, clientWidth, targetRect);\r\n\r\n this.element.style.visibility = 'visible';\r\n });\r\n }\r\n\r\n private changePositionX(orientation: string, clientWidth: number, targetRect: DOMRect): void {\r\n switch (orientation) {\r\n case 'right':\r\n this.element.style.left = 'auto';\r\n this.element.style.right = `${clientWidth - targetRect.right}px`;\r\n break;\r\n\r\n case 'stretch':\r\n this.element.style.left = `${targetRect.left}px`;\r\n this.element.style.right = `${clientWidth - targetRect.right}px`;\r\n break;\r\n\r\n default:\r\n this.element.style.right = 'auto';\r\n this.element.style.left = `${targetRect.left}px`;\r\n }\r\n }\r\n\r\n private changePositionY({\r\n shouldListOpenAbove,\r\n visibleTop,\r\n visibleBottom,\r\n dropdownHeight\r\n }: ChangePositionYParams): void {\r\n const offset = this.SPACE_BETWEEN_TARGET_AND_LIST;\r\n\r\n if (shouldListOpenAbove) {\r\n this.element.style.top = `${this.window.scrollY + visibleTop - dropdownHeight - offset}px`;\r\n\r\n return;\r\n }\r\n\r\n this.element.style.top = `${this.window.scrollY + visibleBottom + offset}px`;\r\n }\r\n\r\n private findScrollableContainer(element: HTMLElement): HTMLElement {\r\n let parent = element.parentElement;\r\n\r\n while (parent) {\r\n const { overflowY } = window.getComputedStyle(parent);\r\n\r\n if (overflowY === 'auto' || overflowY === 'scroll') {\r\n return parent;\r\n }\r\n\r\n parent = parent.parentElement;\r\n }\r\n\r\n return this.document.body;\r\n }\r\n}\r\n","import { NgIf } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { CuiFocusTrapDirective } from '@cuby-ui/cdk';\r\n\r\n@Component({\r\n selector: 'cui-dropdown-wrapper',\r\n standalone: true,\r\n imports: [NgIf],\r\n templateUrl: './dropdown-wrapper.component.html',\r\n styleUrls: ['./dropdown-wrapper.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n hostDirectives: [CuiFocusTrapDirective]\r\n})\r\nexport class CuiDropdownWrapperComponent {\r\n @Input()\r\n public title?: string;\r\n\r\n @Input()\r\n public width?: string;\r\n}\r\n","<div\r\n [style.width]=\"width\"\r\n class=\"dropdown\"\r\n>\r\n <header *ngIf=\"title\" class=\"header\">\r\n <h3 class=\"title\">{{ title }}</h3>\r\n <ng-content select=\"[ccDropdownHeaderContent]\" />\r\n </header>\r\n\r\n <div class=\"scrollable-content\">\r\n <ng-content />\r\n </div>\r\n <footer class=\"footer\">\r\n <ng-content select=\"[ccDropdownFooterContent]\" />\r\n </footer>\r\n</div>\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'cui-form-field',\r\n templateUrl: './form-field.template.html',\r\n styleUrls: ['./form-field.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiFormFieldComponent {\r\n}\r\n","<ng-content select=\"label[cuiLabel]\" />\r\n<ng-content />\r\n<div class=\"c-hint-container\">\r\n <ng-content select=\"cui-hint\" />\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { CuiFormFieldComponent } from './form-field.component';\r\n\r\n@NgModule({\r\n declarations: [CuiFormFieldComponent],\r\n exports: [CuiFormFieldComponent]\r\n})\r\nexport class CuiFormFieldModule {\r\n}\r\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\r\n\r\nimport type { CuiHintType } from '../../types';\r\n\r\n@Component({\r\n selector: 'cui-hint',\r\n templateUrl: './hint.template.html',\r\n styleUrls: ['./hint.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiHintComponent {\r\n @Input()\r\n @HostBinding('attr.data-hint-type')\r\n public hintType: CuiHintType = 'info';\r\n}\r\n","<ng-content></ng-content>\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { CuiHintComponent } from './hint.component';\r\n\r\n@NgModule({\r\n declarations: [CuiHintComponent],\r\n exports: [CuiHintComponent]\r\n})\r\nexport class CuiHintModule {\r\n}\r\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\r\nimport type { CuiIcon } from '@cuby-ui/icons';\r\n\r\n@Component({\r\n selector: 'button[cuiIconButton][icon], a[cuiIconButton][icon]',\r\n templateUrl: './icon-button.template.html',\r\n styleUrls: ['./icon-button.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiIconButtonComponent {\r\n protected readonly ICON_WIDTH = 16;\r\n protected readonly ICON_HEIGHT = 16;\r\n protected readonly ICON_STROKE_WIDTH = 1.5;\r\n\r\n @Input()\r\n public icon!: CuiIcon | string;\r\n\r\n @Input()\r\n public color?: string;\r\n\r\n @Input()\r\n @HostBinding('style.--icon-hover-color')\r\n public hoverColor?: string;\r\n\r\n @HostBinding('class._with-hover-color')\r\n protected get isWithHoverColor(): boolean {\r\n return !!this.hoverColor;\r\n }\r\n}\r\n","<cui-svg\r\n [icon]=\"icon\"\r\n [width]=\"ICON_WIDTH\"\r\n [height]=\"ICON_HEIGHT\"\r\n [color]=\"color\"\r\n [strokeWidth]=\"ICON_STROKE_WIDTH\"\r\n class=\"c-icon\"\r\n></cui-svg>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { CuiIconButtonComponent } from './icon-button.component';\r\nimport { CuiSvgModule } from '../svg';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CuiSvgModule\r\n ],\r\n declarations: [CuiIconButtonComponent],\r\n exports: [CuiIconButtonComponent]\r\n})\r\nexport class CuiIconButtonModule {\r\n}\r\n","import type { CuiIcon } from '@cuby-ui/icons';\r\n\r\nimport type { CuiTextFieldSizeDirective } from './text-field-size.directive';\r\nimport type { CuiTextFieldIdDirective } from './text-field-id.directive';\r\nimport type { CuiTextFieldIconLeftDirective } from './text-field-icon-left.directive';\r\nimport type { CuiTextFieldPlaceholderDirective } from './text-field-placeholder.directive';\r\nimport type { CuiTextFieldIsErrorDirective } from './text-field-is-error.directive';\r\nimport type { CuiSizeMd, CuiSizeSm } from '../../types';\r\n\r\nexport class CuiTextFieldController {\r\n constructor(private readonly iconLeftDirective: CuiTextFieldIconLeftDirective,\r\n private readonly idDirective: CuiTextFieldIdDirective,\r\n private readonly isErrorDirective: CuiTextFieldIsErrorDirective,\r\n private readonly placeholderDirective: CuiTextFieldPlaceholderDirective,\r\n private readonly sizeDirective: CuiTextFieldSizeDirective) {\r\n }\r\n\r\n public get iconLeft(): CuiIcon | string | undefined {\r\n return this.iconLeftDirective.iconLeft;\r\n }\r\n\r\n public get id(): string | undefined {\r\n return this.idDirective.id;\r\n }\r\n\r\n public get isError(): boolean {\r\n return this.isErrorDirective.isError;\r\n }\r\n\r\n public get placeholder(): string | undefined {\r\n return this.placeholderDirective.placeholder;\r\n }\r\n\r\n public get size(): CuiSizeSm | CuiSizeMd {\r\n return this.sizeDirective.size;\r\n }\r\n}\r\n","import { Directive, InjectionToken, Input } from '@angular/core';\r\nimport { cuiProvide } from '@cuby-ui/cdk';\r\nimport type { CuiIcon } from '@cuby-ui/icons';\r\n\r\nexport const CUI_TEXT_FIELD_ICON_LEFT = new InjectionToken<CuiTextFieldIconLeftDirective>('', {\r\n factory: () => new CuiTextFieldIconLeftDirective()\r\n});\r\n\r\n@Directive({\r\n selector: '[cuiTextFieldIconLeft]',\r\n providers: [cuiProvide(CUI_TEXT_FIELD_ICON_LEFT, CuiTextFieldIconLeftDirective)]\r\n})\r\nexport class CuiTextFieldIconLeftDirective {\r\n @Input('cuiTextFieldIconLeft')\r\n public iconLeft?: CuiIcon | string;\r\n}\r\n","import { Directive, InjectionToken, Input } from '@angular/core';\r\nimport { cuiProvide } from '@cuby-ui/cdk';\r\n\r\nexport const CUI_TEXT_FIELD_ID = new InjectionToken<CuiTextFieldIdDirective>('', {\r\n factory: () => new CuiTextFieldIdDirective()\r\n});\r\n\r\n@Directive({\r\n selector: '[cuiTextFieldId]',\r\n providers: [cuiProvide(CUI_TEXT_FIELD_ID, CuiTextFieldIdDirective)]\r\n})\r\nexport class CuiTextFieldIdDirective {\r\n @Input('cuiTextFieldId')\r\n public id?: string;\r\n}\r\n","import { Directive, InjectionToken, Input } from '@angular/core';\r\nimport { cuiProvide } from '@cuby-ui/cdk';\r\n\r\nexport const CUI_TEXT_FIELD_IS_ERROR = new InjectionToken<CuiTextFieldIsErrorDirective>('', {\r\n factory: () => new CuiTextFieldIsErrorDirective()\r\n});\r\n\r\n@Directive({\r\n selector: '[cuiTextFieldIsError]',\r\n providers: [cuiProvide(CUI_TEXT_FIELD_IS_ERROR, CuiTextFieldIsErrorDirective)]\r\n})\r\nexport class CuiTextFieldIsErrorDirective {\r\n @Input('cuiTextFieldIsError')\r\n public isError = false;\r\n}\r\n","import { Directive, InjectionToken, Input } from '@angular/core';\r\nimport { cuiProvide } from '@cuby-ui/cdk';\r\n\r\nexport const CUI_TEXT_FIELD_PLACEHOLDER = new InjectionToken<CuiTextFieldPlaceholderDirective>('', {\r\n factory: () => new CuiTextFieldPlaceholderDirective()\r\n});\r\n\r\n@Directive({\r\n selector: '[cuiTextFieldPlaceholder]',\r\n providers: [cuiProvide(CUI_TEXT_FIELD_PLACEHOLDER, CuiTextFieldPlaceholderDirective)]\r\n})\r\nexport class CuiTextFieldPlaceholderDirective {\r\n @Input('cuiTextFieldPlaceholder')\r\n public placeholder?: string;\r\n}\r\n","import { Directive, InjectionToken, Input } from '@angular/core';\r\nimport { cuiProvide } from '@cuby-ui/cdk';\r\n\r\nimport type { CuiSizeMd, CuiSizeSm } from '../../types';\r\n\r\nexport const CUI_TEXT_FIELD_SIZE = new InjectionToken<CuiTextFieldSizeDirective>('', {\r\n factory: () => new CuiTextFieldSizeDirective()\r\n});\r\n\r\n@Directive({\r\n selector: '[cuiTextFieldSize]',\r\n providers: [cuiProvide(CUI_TEXT_FIELD_SIZE, CuiTextFieldSizeDirective)]\r\n})\r\nexport class CuiTextFieldSizeDirective {\r\n @Input('cuiTextFieldSize')\r\n public size: CuiSizeSm | CuiSizeMd = 'sm';\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { CuiTextFieldIconLeftDirective } from './text-field-icon-left.directive';\r\nimport { CuiTextFieldIdDirective } from './text-field-id.directive';\r\nimport { CuiTextFieldIsErrorDirective } from './text-field-is-error.directive';\r\nimport { CuiTextFieldPlaceholderDirective } from './text-field-placeholder.directive';\r\nimport { CuiTextFieldSizeDirective } from './text-field-size.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n CuiTextFieldIconLeftDirective,\r\n CuiTextFieldIdDirective,\r\n CuiTextFieldPlaceholderDirective,\r\n CuiTextFieldIsErrorDirective,\r\n CuiTextFieldSizeDirective\r\n ],\r\n exports: [\r\n CuiTextFieldIconLeftDirective,\r\n CuiTextFieldIdDirective,\r\n CuiTextFieldPlaceholderDirective,\r\n CuiTextFieldIsErrorDirective,\r\n CuiTextFieldSizeDirective\r\n ]\r\n})\r\nexport class CuiTextFieldControllerModule {\r\n}\r\n","import { InjectionToken, Provider } from '@angular/core';\r\n\r\nimport { CuiTextFieldController } from './text-field.controller';\r\n\r\nimport { CUI_TEXT_FIELD_SIZE } from './text-field-size.directive';\r\nimport type { CuiTextFieldSizeDirective } from './text-field-size.directive';\r\nimport { CUI_TEXT_FIELD_ID } from './text-field-id.directive';\r\nimport type { CuiTextFieldIdDirective } from './text-field-id.directive';\r\nimport { CUI_TEXT_FIELD_IS_ERROR } from './text-field-is-error.directive';\r\nimport type { CuiTextFieldIsErrorDirective } from './text-field-is-error.directive';\r\nimport { CUI_TEXT_FIELD_PLACEHOLDER } from './text-field-placeholder.directive';\r\nimport type { CuiTextFieldPlaceholderDirective } from './text-field-placeholder.directive';\r\nimport { CUI_TEXT_FIELD_ICON_LEFT } from './text-field-icon-left.directive';\r\nimport type { CuiTextFieldIconLeftDirective } from './text-field-icon-left.directive';\r\n\r\nexport const CUI_TEXT_FIELD_CONTROLLER = new InjectionToken<CuiTextFieldController>('');\r\n\r\nexport const CUI_TEXT_FILED_CONTROLLER_PROVIDER: Provider = [\r\n {\r\n provide: CUI_TEXT_FIELD_CONTROLLER,\r\n useFactory: (...controllers: [\r\n CuiTextFieldIconLeftDirective,\r\n CuiTextFieldIdDirective,\r\n CuiTextFieldIsErrorDirective,\r\n CuiTextFieldPlaceholderDirective,\r\n CuiTextFieldSizeDirective\r\n ]) => {\r\n return new CuiTextFieldController(...controllers);\r\n },\r\n deps: [\r\n CUI_TEXT_FIELD_ICON_LEFT,\r\n CUI_TEXT_FIELD_ID,\r\n CUI_TEXT_FIELD_IS_ERROR,\r\n CUI_TEXT_FIELD_PLACEHOLDER,\r\n CUI_TEXT_FIELD_SIZE\r\n ]\r\n }\r\n];\r\n","import type { ElementRef } from '@angular/core';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n HostBinding,\r\n HostListener,\r\n inject,\r\n Input,\r\n ViewChild\r\n} from '@angular/core';\r\nimport type { ControlValueAccessor } from '@angular/forms';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport type { MaskitoOptions } from '@maskito/core';\r\nimport { maskitoNumberOptionsGenerator, maskitoParseNumber } from '@maskito/kit';\r\nimport { CuiNullable, CuiOnChange, CuiOnTouched } from '@cuby-ui/cdk';\r\nimport { cuiProvide } from '@cuby-ui/cdk';\r\nimport type { CuiIcon } from '@cuby-ui/icons';\r\n\r\nimport { CUI_TEXT_FIELD_CONTROLLER, CUI_TEXT_FILED_CONTROLLER_PROVIDER } from '../../directives';\r\nimport { CuiSizeMd, CuiSizeSm } from '../../types';\r\n\r\n@Component({\r\n selector: 'cui-input-number',\r\n templateUrl: './input-number.template.html',\r\n styleUrls: ['./input-number.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n CUI_TEXT_FILED_CONTROLLER_PROVIDER,\r\n cuiProvide(NG_VALUE_ACCESSOR, CuiInputNumberComponent, true)\r\n ]\r\n})\r\nexport class CuiInputNumberComponent implements ControlValueAccessor {\r\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\r\n private readonly cuiTextFieldController = inject(CUI_TEXT_FIELD_CONTROLLER);\r\n\r\n protected maskOptions = this.generateMask();\r\n protected _precision = 0;\r\n protected _min = Number.MIN_SAFE_INTEGER;\r\n protected _max = Number.MAX_SAFE_INTEGER;\r\n protected value!: CuiNullable<string>;\r\n protected onChange!: CuiOnChange<CuiNullable<number>>;\r\n protected onTouched!: CuiOnTouched;\r\n\r\n @Input()\r\n public set precision(value: number) {\r\n this._precision = value;\r\n this.maskOptions = this.generateMask();\r\n }\r\n\r\n @Input()\r\n public set min(value: number) {\r\n this._min = value;\r\n this.maskOptions = this.generateMask();\r\n }\r\n\r\n @Input()\r\n public set max(value: number) {\r\n this._max = value;\r\n this.maskOptions = this.generateMask();\r\n }\r\n\r\n @HostBinding('class._disabled')\r\n protected isDisabled!: boolean;\r\n\r\n @ViewChild('input')\r\n protected input!: ElementRef<HTMLInputElement>;\r\n\r\n protected get id(): string | undefined {\r\n return this.cuiTextFieldController.id;\r\n }\r\n\r\n protected get placeholder(): string | undefined {\r\n return this.cuiTextFieldController.placeholder;\r\n }\r\n\r\n protected get iconLeft(): CuiIcon | string | undefined {\r\n return this.cuiTextFieldController.iconLeft;\r\n }\r\n\r\n @HostBinding('attr.data-size')\r\n protected get size(): CuiSizeSm | CuiSizeMd {\r\n return this.cuiTextFieldController.size;\r\n }\r\n\r\n @HostBinding('class._with-error')\r\n protected get isError(): boolean {\r\n return this.cuiTextFieldController.isError;\r\n }\r\n\r\n public writeValue(value: CuiNullable<number>): void {\r\n this.value = value?.toString();\r\n\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n public registerOnChange(fn: CuiOnChange<CuiNullable<number>>): void {\r\n this.onChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: CuiOnTouched): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n public setDisabledState(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n protected onInput({ target }: Event): void {\r\n this.changeModel((target as HTMLInputElement).value);\r\n }\r\n\r\n @HostListener('click')\r\n protected onFocus(): void {\r\n this.input.nativeElement.focus();\r\n }\r\n\r\n private changeModel(value: string): void {\r\n const parsedValue = maskitoParseNumber(value);\r\n\r\n this.value = value;\r\n\r\n this.onChange(Number.isNaN(parsedValue) ? null : parsedValue);\r\n }\r\n\r\n private generateMask(): MaskitoOptions {\r\n return maskitoNumberOptionsGenerator({\r\n precision: this._precision,\r\n min: this._min,\r\n max: this._max\r\n });\r\n }\r\n}\r\n","<cui-svg\r\n *ngIf=\"iconLeft\"\r\n [icon]=\"iconLeft\"\r\n color=\"var(--cui-base-500)\"\r\n></cui-svg>\r\n<input\r\n #input\r\n [ngModel]=\"value\"\r\n [attr.id]=\"id\"\r\n [attr.placeholder]=\"placeholder\"\r\n type=\"text\"\r\n [maskito]=\"maskOptions\"\r\n [disabled]=\"isDisabled\"\r\n class=\"c-input\"\r\n (input)=\"onInput($event)\"\r\n (focus)=\"onTouched()\"\r\n>\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MaskitoDirective } from '@maskito/angular';\r\n\r\nimport { CuiInputNumberComponent } from './input-number.component';\r\nimport { CuiSvgModule } from '../svg';\r\nimport { CuiTextFieldControllerModule } from '../../directives';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n MaskitoDirective,\r\n CuiSvgModule,\r\n ],\r\n declarations: [CuiInputNumberComponent],\r\n exports: [\r\n CuiInputNumberComponent,\r\n CuiTextFieldControllerModule\r\n ]\r\n})\r\nexport class CuiInputNumberModule {\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n HostBinding,\r\n inject\r\n} from '@angular/core';\r\nimport type { ControlValueAccessor } from '@angular/forms';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport type { CuiInputType, CuiNullable, CuiOnChange, CuiOnTouched } from '@cuby-ui/cdk';\r\nimport { cuiProvide } from '@cuby-ui/cdk';\r\nimport type { CuiIcon } from '@cuby-ui/icons';\r\n\r\nimport { CUI_TEXT_FIELD_CONTROLLER, CUI_TEXT_FILED_CONTROLLER_PROVIDER } from '../../directives';\r\nimport { CuiSizeMd, CuiSizeSm } from '../../types';\r\n\r\n@Component({\r\n selector: 'cui-input-password',\r\n templateUrl: './input-password.template.html',\r\n styleUrls: ['./input-password.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n CUI_TEXT_FILED_CONTROLLER_PROVIDER,\r\n cuiProvide(NG_VALUE_ACCESSOR, CuiInputPasswordComponent, true)\r\n ]\r\n})\r\nexport class CuiInputPasswordComponent implements ControlValueAccessor {\r\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\r\n private readonly cuiTextFieldController = inject(CUI_TEXT_FIELD_CONTROLLER);\r\n\r\n protected isPasswordHidden = true;\r\n protected value!: CuiNullable<string>;\r\n protected onChange!: CuiOnChange<string>;\r\n protected onTouched!: CuiOnTouched;\r\n\r\n @HostBinding('class._disabled')\r\n protected isDisabled!: boolean;\r\n\r\n protected get id(): string | undefined {\r\n return this.cuiTextFieldController.id;\r\n }\r\n\r\n protected get placeholder(): string | undefined {\r\n return this.cuiTextFieldController.placeholder;\r\n }\r\n\r\n protected get iconLeft(): CuiIcon | string | undefined {\r\n return this.cuiTextFieldController.iconLeft;\r\n }\r\n\r\n protected get isToggleButtonShown(): boolean {\r\n return !this.isDisabled;\r\n }\r\n\r\n protected get icon(): CuiIcon {\r\n return this.isPasswordHidden ? 'cuiIconEye' : 'cuiIconEyeOff';\r\n }\r\n\r\n protected get type(): CuiInputType {\r\n return this.isPasswordHidden ? 'password' : 'text';\r\n }\r\n\r\n protected get buttonTitle(): string {\r\n return this.isPasswordHidden ? 'Reveal password' : 'Hide password';\r\n }\r\n\r\n @HostBinding('attr.data-size')\r\n protected get size(): CuiSizeSm | CuiSizeMd {\r\n return this.cuiTextFieldController.size;\r\n }\r\n\r\n @HostBinding('class._with-error')\r\n protected get isError(): boolean {\r\n return this.cuiTextFieldController.isError;\r\n }\r\n\r\n public writeValue(value: CuiNullable<string>): void {\r\n this.value = value;\r\n\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n public registerOnChange(fn: CuiOnChange<string>): void {\r\n this.onChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: CuiOnTouched): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n public setDisabledState(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n\r\n if (this.isDisabled) {\r\n this.isPasswordHidden = true;\r\n }\r\n\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n protected onInput({ target }: Event): void {\r\n const value = (target as HTMLInputElement).value;\r\n\r\n this.value = value;\r\n\r\n this.onChange(value);\r\n }\r\n\r\n protected onTogglePasswordVisibility(): void {\r\n this.isPasswordHidden = !this.isPasswordHidden;\r\n }\r\n}\r\n","<cui-svg\r\n *ngIf=\"iconLeft\"\r\n [icon]=\"iconLeft\"\r\n color=\"var(--cui-base-500)\"\r\n></cui-svg>\r\n<input\r\n [ngModel]=\"value\"\r\n [attr.id]=\"id\"\r\n [attr.placeholder]=\"placeholder\"\r\n [type]=\"type\"\r\n [disabled]=\"isDisabled\"\r\n class=\"c-input\"\r\n (input)=\"onInput($event)\"\r\n (focus)=\"onTouched()\"\r\n>\r\n<button\r\n *ngIf=\"isToggleButtonShown\"\r\n [title]=\"buttonTitle\"\r\n class=\"c-button\"\r\n (click)=\"onTogglePasswordVisibility()\"\r\n>\r\n <cui-svg\r\n [icon]=\"icon\"\r\n [width]=\"16\"\r\n [height]=\"16\"\r\n color=\"var(--cui-base-500)\"\r\n ></cui-svg>\r\n</button>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { CuiInputPasswordComponent } from './input-password.component';\r\nimport { CuiSvgModule } from '../svg';\r\nimport { CuiTextFieldControllerModule } from '../../directives';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n CuiSvgModule\r\n ],\r\n declarations: [CuiInputPasswordComponent],\r\n exports: [\r\n CuiInputPasswordComponent,\r\n CuiTextFieldControllerModule\r\n ]\r\n})\r\nexport class CuiInputPasswordModule {\r\n}\r\n","import type { ElementRef } from '@angular/core';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n HostBinding,\r\n HostListener,\r\n inject,\r\n ViewChild\r\n} from '@angular/core';\r\nimport type { ControlValueAccessor } from '@angular/forms';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport type { CuiOnChange, CuiOnTouched, CuiNullable } from '@cuby-ui/cdk';\r\nimport { cuiProvide } from '@cuby-ui/cdk';\r\nimport type { CuiIcon } from '@cuby-ui/icons';\r\n\r\nimport { CUI_TEXT_FIELD_CONTROLLER, CUI_TEXT_FILED_CONTROLLER_PROVIDER } from '../../directives';\r\nimport { CuiSizeMd, CuiSizeSm } from '../../types';\r\n\r\n@Component({\r\n selector: 'cui-input-text',\r\n templateUrl: './input-text.template.html',\r\n styleUrls: ['./input-text.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n CUI_TEXT_FILED_CONTROLLER_PROVIDER,\r\n cuiProvide(NG_VALUE_ACCESSOR, CuiInputTextComponent, true)\r\n ]\r\n})\r\nexport class CuiInputTextComponent implements ControlValueAccessor {\r\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\r\n private readonly cuiTextFieldController = inject(CUI_TEXT_FIELD_CONTROLLER);\r\n\r\n protected value!: CuiNullable<string>;\r\n protected onChange!: CuiOnChange<string>;\r\n protected onTouched!: CuiOnTouched;\r\n\r\n @HostBinding('class._disabled')\r\n protected isDisabled!: boolean;\r\n\r\n @ViewChild('input')\r\n protected input!: ElementRef<HTMLInputElement>;\r\n\r\n protected get id(): string | undefined {\r\n return this.cuiTextFieldController.id;\r\n }\r\n\r\n protected get placeholder(): string | undefined {\r\n return this.cuiTextFieldController.placeholder;\r\n }\r\n\r\n protected get iconLeft(): CuiIcon | string | undefined {\r\n return this.cuiTextFieldController.iconLeft;\r\n }\r\n\r\n protected get isClearButtonHidden(): boolean {\r\n return !(this.value && !this.isDisabled);\r\n }\r\n\r\n @HostBinding('attr.data-size')\r\n protected get size(): CuiSizeSm | CuiSizeMd {\r\n return this.cuiTextFieldController.size;\r\n }\r\n\r\n @HostBinding('class._with-error')\r\n protected get isError(): boolean {\r\n return this.cuiTextFieldController.isError;\r\n }\r\n\r\n public writeValue(value: CuiNullable<string>): void {\r\n this.value = value;\r\n\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n public registerOnChange(fn: CuiOnChange<string>): void {\r\n this.onChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: CuiOnTouched): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n public setDisabledState(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n protected onInput({ target }: Event): void {\r\n this.changeModel((target as HTMLInputElement).value);\r\n }\r\n\r\n protected onClear(): void {\r\n this.changeModel('');\r\n }\r\n\r\n @HostListener('click')\r\n protected onFocus(): void {\r\n this.input.nativeElement.focus();\r\n }\r\n\r\n private changeModel(value: string): void {\r\n this.value = value;\r\n\r\n this.onChange(value);\r\n }\r\n}\r\n","<cui-svg\r\n *ngIf=\"iconLeft\"\r\n [icon]=\"iconLeft\"\r\n color=\"var(--cui-base-500)\"\r\n></cui-svg>\r\n<input\r\n #input\r\n [ngModel]=\"value\"\r\n [attr.id]=\"id\"\r\n [attr.placeholder]=\"placeholder\"\r\n type=\"text\"\r\n [disabled]=\"isDisabled\"\r\n class=\"c-input\"\r\n (input)=\"onInput($event)\"\r\n (focus)=\"onTouched()\"\r\n>\r\n<button\r\n type=\"button\"\r\n class=\"c-button\"\r\n [class.c-button_hidden]=\"isClearButtonHidden\"\r\n (click)=\"onClear()\"\r\n>\r\n <cui-svg\r\n icon=\"cuiIconClear\"\r\n color=\"var(--cui-base-300)\"\r\n class=\"c-close-icon\"\r\n />\r\n</button>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { CuiInputTextComponent } from './input-text.component';\r\nimport { CuiSvgModule } from '../svg';\r\nimport { CuiTextFieldControllerModule } from '../../directives';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n CuiSvgModule\r\n ],\r\n declarations: [CuiInputTextComponent],\r\n exports: [\r\n CuiInputTextComponent,\r\n CuiTextFieldControllerModule\r\n ]\r\n})\r\nexport class CuiInputModule {\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport type { CuiTimeMode } from '@cuby-ui/cdk';\r\n\r\nexport interface CuiInputTimeOptions {\r\n readonly mode: CuiTimeMode;\r\n}\r\n\r\nexport const CUI_INPUT_TIME_DEFAULT_OPTIONS: CuiInputTimeOptions = {\r\n mode: 'HH:MM'\r\n};\r\n\r\nexport const CUI_INPUT_TIME_OPTIONS = new InjectionToken('', {\r\n factory: () => CUI_INPUT_TIME_DEFAULT_OPTIONS\r\n});","import type { ElementRef } from '@angular/core';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n HostBinding,\r\n HostListener,\r\n inject,\r\n Input,\r\n ViewChild\r\n} from '@angular/core';\r\nimport type { ControlValueAccessor } from '@angular/forms';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport type { MaskitoTimeMode } from '@maskito/kit';\r\nimport { maskitoTimeOptionsGenerator } from '@maskito/kit';\r\nimport type { MaskitoOptions } from '@maskito/core';\r\nimport type { CuiNullable, CuiOnChange, CuiOnTouched } from '@cuby-ui/cdk';\r\nimport { cuiProvide, CuiTime } from '@cuby-ui/cdk';\r\n\r\nimport { CUI_INPUT_TIME_OPTIONS, CuiInputTimeOptions } from './input-time.options';\r\nimport type { CuiSizeMd, CuiSizeSm } from '../../types';\r\nimport { CUI_TEXT_FIELD_CONTROLLER, CUI_TEXT_FILED_CONTROLLER_PROVIDER } from '../../directives';\r\n\r\n@Component({\r\n selector: 'cui-input-time',\r\n templateUrl: './input-time.template.html',\r\n styleUrls: ['./input-time.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n CUI_TEXT_FILED_CONTROLLER_PROVIDER,\r\n cuiProvide(NG_VALUE_ACCESSOR, CuiInputTimeComponent, true)\r\n ]\r\n})\r\nexport class CuiInputTimeComponent implements CuiInputTimeOptions, ControlValueAccessor {\r\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\r\n private readonly cuiTextFieldController = inject(CUI_TEXT_FIELD_CONTROLLER);\r\n private readonly options = inject(CUI_INPUT_TIME_OPTIONS);\r\n\r\n protected _mode = this.options.mode\r\n protected maskOptions = this.generateMask(this._mode);\r\n protected defaultPlaceholder = this._mode.toLowerCase();\r\n protected value!: CuiNullable<CuiTime>;\r\n protected onChange!: CuiOnChange<CuiNullable<CuiTime>>;\r\n protected onTouched!: CuiOnTouched;\r\n\r\n @Input()\r\n public set mode(value: CuiInputTimeOptions['mode']) {\r\n this._mode = value;\r\n this.maskOptions = this.generateMask(value);\r\n this.defaultPlaceholder = value.toLowerCase();\r\n }\r\n\r\n @HostBinding('class._disabled')\r\n protected isDisabled!: boolean;\r\n\r\n @ViewChild('input')\r\n protected input!: ElementRef<HTMLInputElement>;\r\n\r\n protected get id(): string | undefined {\r\n return this.cuiTextFieldController.id;\r\n }\r\n\r\n protected get placeholder(): string | undefined {\r\n return this.cuiTextFieldController.placeholder ?? this.defaultPlaceholder;\r\n }\r\n\r\n public get computedValue(): string {\r\n return this.value ? this.value.toString(this._mode) : '';\r\n }\r\n\r\n @HostBinding('attr.data-size')\r\n protected get size(): CuiSizeSm | CuiSizeMd {\r\n return this.cuiTextFieldController.size;\r\n }\r\n\r\n @HostBinding('class._with-error')\r\n protected get isError(): boolean {\r\n return this.cuiTextFieldController.isError;\r\n }\r\n\r\n public writeValue(value: CuiNullable<CuiTime>): void {\r\n this.value = value;\r\n\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n public registerOnChange(fn: CuiOnChange<CuiNullable<CuiTime>>): void {\r\n this.onChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: CuiOnTouched): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n public setDisabledState(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n protected onInput(event: Event): void {\r\n const value = (event.target as HTMLInputElement).value;\r\n\r\n if (value.length !== this._mode.length) {\r\n this.onChange(null);\r\n\r\n return;\r\n }\r\n\r\n const time = CuiTime.fromString(value);\r\n\r\n this.onChange(time);\r\n }\r\n\r\n @HostListener('click')\r\n protected onFocus(): void {\r\n this.input.nativeElement.focus();\r\n }\r\n\r\n private generateMask(mode: MaskitoTimeMode): MaskitoOptions {\r\n return maskitoTimeOptionsGenerator({ mode });\r\n }\r\n}\r\n","<cui-svg\r\n icon=\"cuiIconClock\"\r\n color=\"var(--cui-base-500)\"\r\n></cui-svg>\r\n<input\r\n #input\r\n [ngModel]=\"computedValue\"\r\n [attr.id]=\"id\"\r\n [attr.placeholder]=\"placeholder\"\r\n type=\"text\"\r\n [maskito]=\"maskOptions\"\r\n [disabled]=\"isDisabled\"\r\n class=\"c-input\"\r\n (input)=\"onInput($event)\"\r\n (focus)=\"onTouched()\"\r\n>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MaskitoDirective } from '@maskito/angular';\r\n\r\nimport { CuiInputTimeComponent } from './input-time.component';\r\nimport { CuiSvgModule } from '../svg';\r\nimport { CuiTextFieldControllerModule } from '../../directives';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n MaskitoDirective,\r\n CuiSvgModule\r\n ],\r\n declarations: [CuiInputTimeComponent],\r\n exports: [\r\n CuiInputTimeComponent,\r\n CuiTextFieldControllerModule\r\n ]\r\n})\r\nexport class CuiInputTimeModule {\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'label[cuiLabel]',\r\n templateUrl: './label.template.html',\r\n styleUrls: ['./label.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiLabelComponent {\r\n @Input()\r\n public isRequired = false;\r\n}\r\n","<span class=\"c-wrapper\">\r\n <ng-content></ng-content>\r\n</span>\r\n<span\r\n *ngIf=\"isRequired\"\r\n class=\"c-star\"\r\n>\r\n *\r\n</span>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { CuiLabelComponent } from './label.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [CuiLabelComponent],\r\n exports: [CuiLabelComponent]\r\n})\r\nexport class CuiLabelModule {\r\n}\r\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\r\n\r\nimport type { CuiShape, CuiSize } from './letter-box.interfaces';\r\n\r\n@Component({\r\n selector: 'cui-letter-box',\r\n standalone: true,\r\n templateUrl: './letter-box.component.html',\r\n styleUrls: ['./letter-box.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiLetterBoxComponent {\r\n protected readonly DEFAULT_BACKGROUND_COLOR = 'var(--cui-magenta-500)';\r\n\r\n @Input({ required: true })\r\n public letter!: string;\r\n\r\n @Input()\r\n public backgroundColor?: string;\r\n\r\n @Input()\r\n public size: CuiSize = 'sm';\r\n\r\n @Input()\r\n public shape: CuiShape = null;\r\n\r\n @HostBinding('style.background-color')\r\n protected get _backgroundColor(): string {\r\n return this.backgroundColor ?? this.DEFAULT_BACKGROUND_COLOR;\r\n }\r\n\r\n @HostBinding('attr.data-size')\r\n protected get _size(): CuiSize {\r\n return this.size;\r\n }\r\n\r\n @HostBinding('attr.data-shape')\r\n protected get _shape(): CuiShape {\r\n return this.shape;\r\n }\r\n}\r\n","{{ letter }}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'input[type=\"radio\"][cuiRadio]',\r\n template: '',\r\n styleUrls: ['./radio.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiRadioComponent {\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { CuiRadioComponent } from './radio.component';\r\n\r\n@NgModule({\r\n declarations: [CuiRadioComponent],\r\n exports: [CuiRadioComponent]\r\n})\r\nexport class CuiRadioModule {\r\n}\r\n","import type { OnDestroy, OnInit, TemplateRef } from '@angular/core';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n inject,\r\n Input,\r\n ElementRef,\r\n ViewChild,\r\n HostBinding,\r\n ViewContainerRef,\r\n HostListener\r\n} from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport type { CuiOnChange, CuiOnTouched, CuiNullable } from '@cuby-ui/cdk';\r\nimport { CuiDestroyService } from '@cuby-ui/cdk';\r\nimport { cuiProvide, CuiClickOutsideDirective } from '@cuby-ui/cdk';\r\nimport { takeUntil } from 'rxjs';\r\n\r\nimport type { CuiOption } from '../../interfaces';\r\nimport type { CuiSizeMd, CuiSizeSm } from '../../types';\r\nimport { CUI_TEXT_FIELD_CONTROLLER, CUI_TEXT_FILED_CONTROLLER_PROVIDER } from '../../directives';\r\nimport { CUI_ROOT_SELECTOR } from '../root';\r\n\r\n@Component({\r\n selector: 'cui-select[options]',\r\n templateUrl: './select.template.html',\r\n styleUrls: ['./select.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n CUI_TEXT_FILED_CONTROLLER_PROVIDER,\r\n cuiProvide(NG_VALUE_ACCESSOR, CuiSelectComponent, true),\r\n CuiDestroyService\r\n ],\r\n hostDirectives: [CuiClickOutsideDirective]\r\n})\r\nexport class CuiSelectComponent implements ControlValueAccessor, OnInit, OnDestroy {\r\n private readonly element = inject(ElementRef).nativeElement;\r\n private readonly document = inject(DOCUMENT);\r\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\r\n private readonly viewContainerRef = inject(ViewContainerRef);\r\n private readonly destroy$ = inject(CuiDestroyService, {self: true});\r\n private readonly cuiTextFieldController = inject(CUI_TEXT_FIELD_CONTROLLER);\r\n private readonly cuiClickOutsideDirective = inject(CuiClickOutsideDirective, {self: true});\r\n\r\n protected readonly SPACE_BETWEEN_BUTTON_AND_OPTIONS = 3;\r\n\r\n protected isOpened = false;\r\n protected isOptionsListAbove = false;\r\n protected value!: CuiNullable<unknown>;\r\n protected onChange!: CuiOnChange<unknown>;\r\n protected onTouched!: CuiOnTouched;\r\n protected isDisabled!: boolean;\r\n protected selectedOption?: CuiOption;\r\n\r\n @Input()\r\n public options!: CuiOption[];\r\n\r\n @Input()\r\n public defaultOptionText?: string;\r\n\r\n @ViewChild('button')\r\n protected readonly button!: ElementRef<HTMLButtonElement>;\r\n\r\n @ViewChild('getOptionsListHeightContainer')\r\n protected readonly getOptionsListHeightContainer!: ElementRef<HTMLUListElement>;\r\n\r\n @ViewChild('backdrop')\r\n protected readonly backdrop!: TemplateRef<unknown>;\r\n\r\n @ViewChild('optionsWrapper')\r\n protected readonly optionsWrapper!: TemplateRef<unknown>;\r\n\r\n @HostBinding('style.--c-gap')\r\n protected gap = `${this.SPACE_BETWEEN_BUTTON_AND_OPTIONS}px`;\r\n\r\n protected get id(): string | undefined {\r\n return this.cuiTextFieldController.id;\r\n }\r\n\r\n protected get size(): CuiSizeSm | CuiSizeMd {\r\n return this.cuiTextFieldController.size;\r\n }\r\n\r\n protected get placeholder(): string | undefined {\r\n return this.cuiTextFieldController.placeholder;\r\n }\r\n\r\n protected get isError(): boolean {\r\n return this.cuiTextFieldController.isError;\r\n }\r\n\r\n protected trackByFn(_: number, item: CuiOption): string {\r\n return item.label;\r\n }\r\n\r\n public writeValue(value: unknown): void {\r\n this.value = value;\r\n // TODO: Непонятно, зачем нужно в construction вторая часть выражения\r\n this.selectedOption = this.options.find(option => option.value === value) ?? value as CuiOption;\r\n\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n public registerOnChange(fn: CuiOnChange<unknown>): void {\r\n this.onChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: CuiOnTouched): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.initClickOutsideSubscription();\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.clearViewContainerRef();\r\n }\r\n\r\n public setDisabledState(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n protected onSelect(event: Event, option: CuiOption): void {\r\n event.stopPropagation();\r\n\r\n if (option.isDisabled) {\r\n return\r\n }\r\n\r\n this.value = option.value;\r\n this.selectedOption = option;\r\n\r\n this.onChange(this.value);\r\n this.onSwitch();\r\n this.onTouched();\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n protected onSwitch(): void {\r\n if (!this.options.length && !this.defaultOptionText) {\r\n return;\r\n }\r\n\r\n if (!this.isOpened) {\r\n this.open();\r\n\r\n return;\r\n }\r\n\r\n this.close();\r\n }\r\n\r\n protected onClose(): void {\r\n this.close();\r\n }\r\n\r\n @HostListener('window:resize')\r\n protected onWindowResize(): void {\r\n this.button.nativeElement.blur();\r\n this.close();\r\n }\r\n\r\n private initClickOutsideSubscription(): void {\r\n this.cuiClickOutsideDirective.cuiClickOutside\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(() => {\r\n if (this.isOpened) {\r\n this.onTouched();\r\n }\r\n\r\n this.close();\r\n });\r\n }\r\n\r\n private open(): void {\r\n this.isOpened = true;\r\n\r\n const rootElement = this.document.querySelector(CUI_ROOT_SELECTOR)!;\r\n const {\r\n top: elementRectTop,\r\n left: elementRectLeft,\r\n bottom: elementRectBottom\r\n } = this.element.getBoundingClientRect();\r\n const distanceToBottom = this.document.documentElement.clientHeight\r\n - (elementRectBottom + this.SPACE_BETWEEN_BUTTON_AND_OPTIONS);\r\n const embeddedViewRef = this.viewContainerRef.createEmbeddedView(this.optionsWrapper);\r\n const node = embeddedViewRef.rootNodes[0];\r\n const nodeStyles = node.style;\r\n\r\n this.isOptionsListAbove = distanceToBottom < this.getOptionsListHeightContainer.nativeElement.offsetHeight;\r\n\r\n embeddedViewRef.detectChanges();\r\n\r\n nodeStyles.width = this.element.offsetWidth + 'px';\r\n nodeStyles.left = window.scrollX + elementRectLeft + 'px';\r\n\r\n if (this.isOptionsListAbove) {\r\n nodeStyles.top = window.scrollY + elementRectTop\r\n - this.getOptionsListHeightContainer.nativeElement.offsetHeight\r\n - this.SPACE_BETWEEN_BUTTON_AND_OPTIONS\r\n + 'px';\r\n } else {\r\n nodeStyles.top = window.scrollY + elementRectBottom + this.SPACE_BETWEEN_BUTTON_AND_OPTIONS + 'px';\r\n }\r\n\r\n rootElement.appendChild(this.viewContainerRef.createEmbeddedView(this.backdrop).rootNodes[0]);\r\n rootElement.appendChild(embeddedViewRef.rootNodes[0]);\r\n }\r\n\r\n private close(): void {\r\n this.isOpened = false;\r\n\r\n this.clearViewContainerRef();\r\n }\r\n\r\n private clearViewContainerRef(): void {\r\n this.viewContainerRef.clear();\r\n }\r\n}\r\n","<button\r\n #button\r\n type=\"button\"\r\n [attr.id]=\"id\"\r\n [attr.data-size]=\"size\"\r\n [disabled]=\"isDisabled\"\r\n class=\"c-button\"\r\n [class.c-button_active]=\"isOpened\"\r\n [class.c-button_with-error]=\"isError\"\r\n (click)=\"onSwitch()\"\r\n>\r\n <ng-container *ngIf=\"selectedOption; else placeholderTemplate\">\r\n {{ selectedOption.label }}\r\n </ng-container>\r\n <ng-template #placeholderTemplate>\r\n <span class=\"c-placeholder\">{{ placeholder }}</span>\r\n </ng-template>\r\n <cui-svg\r\n icon=\"cuiIconChevronDown\"\r\n color=\"var(--cui-base-500)\"\r\n />\r\n</button>\r\n<ng-template #backdrop>\r\n <div class=\"c-backdrop\"></div>\r\n</ng-template>\r\n<ng-template #optionsWrapper>\r\n <div\r\n cuiFocusTrap\r\n class=\"c-options__wrapper\"\r\n [class.c-options__wrapper_top]=\"isOptionsListAbove\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"optionsList\"/>\r\n </div>\r\n</ng-template>\r\n<div\r\n #getOptionsListHeightContainer\r\n class=\"c-get-options-list-height-container\"\r\n>\r\n <ng-container *ngTemplateOutlet=\"optionsList\"/>\r\n</div>\r\n<ng-template #optionsList>\r\n <ul\r\n class=\"c-options\"\r\n [class.c-options_top]=\"isOptionsListAbove\"\r\n >\r\n <ng-container *ngIf=\"options.length; else empty\">\r\n <li *ngFor=\"let option of options; trackBy: trackByFn\">\r\n <button\r\n type=\"button\"\r\n class=\"c-option-button\"\r\n [class.c-option-button_selected]=\"selectedOption === option\"\r\n [disabled]=\"option.isDisabled\"\r\n (click)=\"onSelect($event, option)\"\r\n >\r\n <span>{{ option.label }}</span>\r\n <cui-svg\r\n *ngIf=\"selectedOption === option\"\r\n icon=\"cuiIconCheckSm\"\r\n color=\"var(--cui-info)\"\r\n class=\"c-option-button__icon\"\r\n />\r\n </button>\r\n </li>\r\n </ng-container>\r\n <ng-template #empty>\r\n <li *ngIf=\"defaultOptionText\">\r\n <button\r\n type=\"button\"\r\n class=\"c-option-button\"\r\n (click)=\"onClose()\"\r\n >\r\n {{ defaultOptionText }}\r\n </button>\r\n </li>\r\n </ng-template>\r\n </ul>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { CuiSelectComponent } from './select.component';\r\nimport { CuiSvgModule } from '../svg';\r\nimport { CuiTextFieldControllerModule } from '../../directives';\r\nimport { CuiFocusTrapDirective } from '@cuby-ui/cdk';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CuiSvgModule,\r\n CuiFocusTrapDirective\r\n ],\r\n declarations: [CuiSelectComponent],\r\n exports: [\r\n CuiSelectComponent,\r\n CuiTextFieldControllerModule\r\n ]\r\n})\r\nexport class CuiSelectModule {\r\n}\r\n","import { ChangeDetectionStrategy, Component, ElementRef, HostListener, inject } from '@angular/core';\r\n\r\nexport const CUI_TAB_ACTIVATE = 'cui-tab-activate';\r\n\r\n@Component({\r\n selector: 'button[cuiTab]',\r\n templateUrl: './tab.template.html',\r\n styleUrls: ['./tab.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiTabComponent {\r\n protected readonly element = inject(ElementRef).nativeElement as HTMLButtonElement;\r\n\r\n @HostListener('click')\r\n protected onClick(): void {\r\n this.element.dispatchEvent(new CustomEvent(CUI_TAB_ACTIVATE, { bubbles: true }));\r\n }\r\n}\r\n","<ng-content />\r\n","import type { AfterViewChecked } from '@angular/core';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n inject,\r\n Input,\r\n Output\r\n} from '@angular/core';\r\n\r\nimport { CUI_TAB_ACTIVATE } from './tab';\r\n\r\n@Component({\r\n selector: 'cui-tabs',\r\n templateUrl: './tabs.template.html',\r\n styleUrls: ['./tabs.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiTabsComponent implements AfterViewChecked {\r\n private readonly element = inject(ElementRef).nativeElement as HTMLElement;\r\n\r\n private readonly activeElementClass = '_active';\r\n\r\n protected get tabs(): readonly HTMLElement[] {\r\n return Array.from(this.element.querySelectorAll<HTMLElement>('[cuiTab]'));\r\n }\r\n\r\n public get activeElement(): HTMLElement | null {\r\n return this.tabs[this.activeItemIndex] || null;\r\n }\r\n\r\n public ngAfterViewChecked(): void {\r\n this.changeActiveItem();\r\n }\r\n\r\n @Input()\r\n public activeItemIndex = 0;\r\n\r\n @Output()\r\n public readonly activeItemIndexChange = new EventEmitter<number>();\r\n\r\n @HostListener(CUI_TAB_ACTIVATE, ['$event'])\r\n protected onActivate(event: CustomEvent): void {\r\n event.stopPropagation();\r\n\r\n const index = this.tabs.findIndex((tab) => tab === event.target);\r\n\r\n if (index === this.activeItemIndex) {\r\n return;\r\n }\r\n\r\n this.activeItemIndexChange.emit(index);\r\n this.activeItemIndex = index;\r\n }\r\n\r\n private changeActiveItem(): void {\r\n this.tabs.forEach(nativeElement => {\r\n const active = nativeElement === this.activeElement;\r\n\r\n nativeElement.classList.toggle(this.activeElementClass, active);\r\n });\r\n }\r\n}\r\n","<ng-content select=\"[cuiTab]\" />\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { CuiTabsComponent } from './tabs.component';\r\nimport { CuiTabComponent } from './tab';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [CuiTabsComponent, CuiTabComponent],\r\n exports: [CuiTabsComponent, CuiTabComponent]\r\n})\r\nexport class CuiTabsModule {\r\n}\r\n","import { ChangeDetectionStrategy, Component, HostBinding, inject, Input } from '@angular/core';\r\nimport { CuiAutoResizingDirective } from '@cuby-ui/cdk';\r\n\r\nimport { CUI_TEXT_FIELD_CONTROLLER, CUI_TEXT_FILED_CONTROLLER_PROVIDER } from '../../directives';\r\n\r\n@Component({\r\n selector: 'textarea[cuiTextarea]',\r\n template: '',\r\n styleUrls: ['./textarea.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [CUI_TEXT_FILED_CONTROLLER_PROVIDER],\r\n hostDirectives: [CuiAutoResizingDirective]\r\n})\r\nexport class CuiTextareaComponent {\r\n private readonly cuiTextFieldController = inject(CUI_TEXT_FIELD_CONTROLLER);\r\n\r\n @Input()\r\n @HostBinding('rows')\r\n public rows = 4;\r\n\r\n @Input()\r\n @HostBinding('class._no-borders-and-paddings')\r\n public noBordersAndPaddings = false;\r\n\r\n @HostBinding('class._with-error')\r\n protected get isError(): boolean {\r\n return this.cuiTextFieldController.isError;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { CuiTextareaComponent } from './textarea.component';\r\n\r\n@NgModule({\r\n declarations: [CuiTextareaComponent],\r\n exports: [CuiTextareaComponent]\r\n})\r\nexport class CuiTextareaModule {\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'input[type=\"checkbox\"][cuiToggle]',\r\n template: '',\r\n styleUrls: ['./toggle.style.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiToggleComponent {\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { CuiToggleComponent } from './toggle.component';\r\n\r\n@NgModule({\r\n declarations: [CuiToggleComponent],\r\n exports: [CuiToggleComponent]\r\n})\r\nexport class CuiToggleModule {\r\n}\r\n","import { Injectable, signal } from '@angular/core';\r\n\r\nimport type { CuiDynamicComponent } from './render-dynamic-components.options';\r\n\r\n@Injectable()\r\nexport class CuiRenderDynamicComponentsService {\r\n private readonly dynamicComponentsSignal = signal<CuiDynamicComponent[]>([]);\r\n\r\n public readonly dynamicComponents = this.dynamicComponentsSignal.asReadonly();\r\n\r\n public open(dynamicComponent: CuiDynamicComponent): void {\r\n this.dynamicComponentsSignal.update((prevDynamicComponents) => [...prevDynamicComponents, dynamicComponent]);\r\n }\r\n\r\n public closeLast(): void {\r\n this.dynamicComponentsSignal.update((prevDynamicComponents) => prevDynamicComponents.slice(0, -1));\r\n }\r\n\r\n public closeAllExceptFirst(): void {\r\n this.dynamicComponentsSignal.update((prevDynamicComponents) => {\r\n const firstDynamicComponent = prevDynamicComponents[0];\r\n\r\n return firstDynamicComponent ? [firstDynamicComponent] : [];\r\n });\r\n }\r\n\r\n public closeAll(): void {\r\n this.dynamicComponentsSignal.set([]);\r\n }\r\n}\r\n","import { NgComponentOutlet } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\r\n\r\nimport { CuiRenderDynamicComponentsService } from './render-dynamic-components.service';\r\n\r\n@Component({\r\n selector: 'cui-render-dynamic-components',\r\n imports: [NgComponentOutlet],\r\n standalone: true,\r\n templateUrl: './render-dynamic-components.component.html',\r\n styleUrl: './render-dynamic-components.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuiRenderDynamicComponentsComponent {\r\n private readonly renderDynamicComponentsService = inject(CuiRenderDynamicComponentsService);\r\n\r\n protected readonly dynamicComponents = this.renderDynamicComponentsService.dynamicComponents;\r\n}\r\n","@for (dynamicComponent of dynamicComponents(); let isLast = $last; track $index) {\r\n <div\r\n class=\"container\"\r\n [class.container_hidden]=\"!isLast\"\r\n >\r\n <ng-container *ngComponentOutlet=\"dynamicComponent.component; inputs: dynamicComponent.inputs\" />\r\n </div>\r\n}\r\n","import type { HttpEvent, HttpInterceptorFn } from '@angular/common/http';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport const cuiXNdjsonInterceptor: HttpInterceptorFn = (request, next) => {\r\n if (request.headers.get('Content-Type') !== 'application/x-ndjson') {\r\n return next(request);\r\n }\r\n\r\n return new Observable<HttpEvent<unknown>>((observer) => {\r\n const controller = new AbortController();\r\n const signal = controller.signal;\r\n\r\n (async (): Promise<void> => {\r\n try {\r\n const response = await fetch(request.urlWithParams, {\r\n method: request.method,\r\n headers: request.headers.keys().reduce((headers: Record<string, string>, key) => {\r\n headers[key] = request.headers.get(key)!;\r\n\r\n return headers;\r\n }, {}),\r\n body: request.body ? JSON.stringify(request.body) : null,\r\n signal\r\n });\r\n\r\n if (!response.ok) {\r\n const error = await response.json();\r\n\r\n observer.error(new HttpErrorResponse({ error }));\r\n\r\n return;\r\n }\r\n\r\n const reader = response.body!.getReader();\r\n const decoder = new TextDecoder();\r\n let buffer = '';\r\n\r\n for (;;) {\r\n const { done, value } = await reader.read();\r\n\r\n if (done) {\r\n observer.complete();\r\n\r\n return;\r\n }\r\n\r\n buffer += decoder.decode(value);\r\n const lines = buffer.split('\\n');\r\n buffer = lines.pop() ?? '';\r\n\r\n lines.forEach((line) => observer.next(JSON.parse(line)));\r\n }\r\n } catch (error) {\r\n observer.error(new HttpErrorResponse({ error }));\r\n }\r\n })();\r\n\r\n return () => controller.abort();\r\n });\r\n};\r\n","import type { HttpInterceptorFn } from '@angular/common/http';\r\nimport { inject } from '@angular/core';\r\nimport { catchError, finalize, throwError } from 'rxjs';\r\n\r\nimport { LoaderService } from '../services';\r\n\r\nexport const cuiLoaderInterceptor: HttpInterceptorFn = (request, next) => {\r\n const loaderService = inject(LoaderService);\r\n\r\n if (request.method === 'GET') {\r\n return next(request);\r\n }\r\n\r\n loaderService.setLoading();\r\n\r\n return next(request).pipe(\r\n catchError(throwError),\r\n finalize(loaderService.handleCompletedRequest.bind(loaderService))\r\n );\r\n};\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.CuiSvgComponent","i2.CuiButtonComponent","i2.CuiNotificationComponent","i2","i3.CuiSvgComponent","i4.CuiButtonComponent","i1.CuiDialogsComponent","i2.CuiAlertsComponent","i3.CuiTooltips","i3.CuiButtonComponent","GAP","i1.CuiTooltipDriver","i2.CuiTooltipHover","i3.CuiTooltipPosition","i1.CuiTooltipDirective","i1","i1.CuiSvgComponent","i4.CuiSvgComponent"],"mappings":"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"}