@koobiq/components 18.20.0 → 18.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/breadcrumbs/breadcrumbs-tokens.scss +1 -0
- package/breadcrumbs/breadcrumbs.d.ts +13 -2
- package/breadcrumbs/breadcrumbs.scss +72 -18
- package/button/button-tokens.scss +1 -1
- package/button/button.scss +2 -15
- package/checkbox/checkbox-tokens.scss +2 -0
- package/checkbox/checkbox.scss +4 -4
- package/core/formatters/date/formatter.d.ts +3 -2
- package/core/locales/locale-service.d.ts +5 -1
- package/core/styles/theming/scrollbar-tokens.scss +10 -4
- package/dropdown/dropdown.scss +20 -5
- package/esm2022/breadcrumbs/breadcrumbs.mjs +18 -7
- package/esm2022/button/button.component.mjs +2 -2
- package/esm2022/checkbox/checkbox.mjs +2 -2
- package/esm2022/core/formatters/date/formatter.mjs +13 -4
- package/esm2022/core/locales/en-US.mjs +29 -29
- package/esm2022/core/locales/es-LA.mjs +29 -29
- package/esm2022/core/locales/fa-IR.mjs +29 -29
- package/esm2022/core/locales/locale-service.mjs +38 -3
- package/esm2022/core/locales/pt-BR.mjs +29 -29
- package/esm2022/core/locales/tk-TM.mjs +29 -29
- package/esm2022/core/locales/zh-CN.mjs +29 -29
- package/esm2022/core/pop-up/pop-up-trigger.mjs +2 -2
- package/esm2022/core/version.mjs +2 -2
- package/esm2022/dropdown/dropdown.component.mjs +3 -3
- package/esm2022/filter-bar/filter-bar.mjs +3 -3
- package/esm2022/filter-bar/pipes/pipe-date.mjs +37 -22
- package/esm2022/filter-bar/pipes/pipe-datetime.mjs +38 -23
- package/esm2022/filter-bar/pipes/pipe-text.mjs +4 -4
- package/esm2022/form-field/form-field.mjs +2 -2
- package/esm2022/form-field/validate.directive.mjs +19 -9
- package/esm2022/input/input-number.mjs +2 -2
- package/esm2022/navbar/navbar-item.component.mjs +6 -9
- package/esm2022/overflow-items/overflow-items.mjs +24 -3
- package/esm2022/progress-spinner/progress-spinner.component.mjs +2 -2
- package/esm2022/scrollbar/scrollbar.component.mjs +3 -3
- package/esm2022/select/select.component.mjs +3 -3
- package/esm2022/sidepanel/sidepanel-container.component.mjs +3 -3
- package/esm2022/sidepanel/sidepanel-directives.mjs +16 -5
- package/esm2022/textarea/textarea.component.mjs +35 -9
- package/esm2022/timezone/timezone-select.component.mjs +2 -2
- package/esm2022/top-bar/top-bar.mjs +2 -2
- package/esm2022/tree-select/tree-select.component.mjs +3 -3
- package/fesm2022/koobiq-components-breadcrumbs.mjs +18 -7
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button.mjs +2 -2
- package/fesm2022/koobiq-components-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-checkbox.mjs +2 -2
- package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +1012 -970
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +2 -2
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +78 -48
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +17 -8
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-input.mjs +1 -1
- package/fesm2022/koobiq-components-input.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +5 -8
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +24 -3
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-spinner.mjs +2 -2
- package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
- package/fesm2022/koobiq-components-scrollbar.mjs +2 -2
- package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +2 -2
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +17 -6
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +34 -8
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +2 -2
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-top-bar.mjs +2 -2
- package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +2 -2
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/filter-bar/filter-bar.scss +1 -0
- package/filter-bar/pipes/pipe-date.d.ts +3 -1
- package/filter-bar/pipes/pipe-date.scss +7 -0
- package/filter-bar/pipes/pipe-datetime.d.ts +3 -1
- package/form-field/_form-field-theme.scss +7 -3
- package/form-field/validate.directive.d.ts +4 -2
- package/link/_link-theme.scss +6 -16
- package/navbar/navbar-item.component.d.ts +1 -2
- package/overflow-items/overflow-items.d.ts +17 -1
- package/package.json +5 -5
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/light-theme.css +1 -1
- package/prebuilt-themes/theme.css +1 -1
- package/progress-spinner/progress-spinner.scss +10 -4
- package/schematics/ng-add/index.js +3 -3
- package/scrollbar/scrollbar-tokens.scss +10 -4
- package/select/_select-theme.scss +4 -1
- package/sidepanel/sidepanel-directives.d.ts +6 -1
- package/sidepanel/sidepanel.scss +9 -3
- package/textarea/textarea.component.d.ts +16 -3
- package/textarea/textarea.scss +4 -0
- package/top-bar/top-bar-tokens.scss +2 -2
- package/top-bar/top-bar.scss +1 -1
- package/tree-select/_tree-select-theme.scss +4 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"koobiq-components-core.mjs","sources":["../../../packages/components/core/animation/animation.ts","../../../packages/components/core/animation/fade-animations.ts","../../../packages/components/core/animation/select-animations.ts","../../../packages/components/core/common-behaviors/color.ts","../../../packages/components/core/common-behaviors/common-module.ts","../../../packages/components/core/common-behaviors/disabled.ts","../../../packages/components/core/common-behaviors/error-state.ts","../../../packages/components/core/common-behaviors/tabindex.ts","../../../packages/components/core/common-behaviors/index.ts","../../../packages/components/core/datetime/date-adapter.ts","../../../packages/components/core/datetime/date-formats.ts","../../../packages/components/core/error/error-state-matcher.ts","../../../packages/components/core/form-field/form-field-ref.ts","../../../packages/components/core/formatters/date/formatter.ts","../../../packages/components/core/formatters/date/formatter.pipe.ts","../../../packages/components/core/locales/en-US.ts","../../../packages/components/core/locales/es-LA.ts","../../../packages/components/core/locales/fa-IR.ts","../../../packages/components/core/locales/pt-BR.ts","../../../packages/components/core/locales/ru-RU.ts","../../../packages/components/core/locales/tk-TM.ts","../../../packages/components/core/locales/zh-CN.ts","../../../packages/components/core/locales/formatters.ts","../../../packages/components/core/locales/locale-service.ts","../../../packages/components/core/locales/locale-service.module.ts","../../../packages/components/core/formatters/number/formatter.ts","../../../packages/components/core/formatters/index.ts","../../../packages/components/core/forms/forms.directive.ts","../../../packages/components/core/forms/forms-module.ts","../../../packages/components/core/forms/validators.ts","../../../packages/components/core/highlight/highlight.pipe.ts","../../../packages/components/core/highlight/index.ts","../../../packages/components/core/line/line.ts","../../../packages/components/core/option/action.ts","../../../packages/components/core/option/optgroup.ts","../../../packages/components/core/option/optgroup.html","../../../packages/components/core/title/title-text-ref.ts","../../../packages/components/core/selection/pseudo-checkbox/pseudo-checkbox.ts","../../../packages/components/core/selection/pseudo-checkbox/pseudo-checkbox.partial.html","../../../packages/components/core/option/option.ts","../../../packages/components/core/option/option.html","../../../packages/components/core/selection/constants.ts","../../../packages/components/core/selection/pseudo-checkbox/pseudo-checkbox.module.ts","../../../packages/components/core/option/option-module.ts","../../../packages/components/core/overlay/overlay-position-map.ts","../../../packages/components/core/pop-up/constants.ts","../../../packages/components/core/pop-up/focus-trap-strategy.ts","../../../packages/components/core/pop-up/pop-up.ts","../../../packages/components/core/pop-up/pop-up-styles.ts","../../../packages/components/core/pop-up/pop-up-trigger.ts","../../../packages/components/core/select/constants.ts","../../../packages/components/core/select/common.ts","../../../packages/components/core/select/errors.ts","../../../packages/components/core/select/events.ts","../../../packages/components/core/services/measure-scrollbar.service.ts","../../../packages/components/core/services/theme.service.ts","../../../packages/components/core/utils/data-size/config.ts","../../../packages/components/core/utils/data-size/size.ts","../../../packages/components/core/utils/data-size/data-size.pipe.ts","../../../packages/components/core/utils/utils.ts","../../../packages/components/core/validation/validation.ts","../../../packages/components/core/version.ts","../../../packages/components/core/koobiq-components-core.ts"],"sourcesContent":["/**\n * @deprecated Will be removed in next major release. Use `KbqAnimationCurves` instead.\n *\n * @docs-private\n */\nexport enum AnimationCurves {\n StandardCurve = 'cubic-bezier(0.4,0.0,0.2,1)',\n DecelerationCurve = 'cubic-bezier(0.0,0.0,0.2,1)',\n AccelerationCurve = 'cubic-bezier(0.4,0.0,1,1)',\n SharpCurve = 'cubic-bezier(0.4,0.0,0.6,1)'\n}\n\n/**\n * Koobiq components animation curves\n *\n * @docs-private\n */\nexport enum KbqAnimationCurves {\n StandardCurve = 'cubic-bezier(0.4,0.0,0.2,1)',\n DecelerationCurve = 'cubic-bezier(0.0,0.0,0.2,1)',\n AccelerationCurve = 'cubic-bezier(0.4,0.0,1,1)',\n SharpCurve = 'cubic-bezier(0.4,0.0,0.6,1)'\n}\n\n/**\n * Koobiq components animation durations\n *\n * @docs-private\n */\nexport enum KbqAnimationDurations {\n Complex = '250ms',\n Entering = '150ms',\n Exiting = '125ms'\n}\n","import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\n\nexport const fadeAnimation: AnimationTriggerMetadata = trigger('fadeAnimation', [\n state('void', style({ opacity: 0 })),\n state('true', style({ opacity: 1 })),\n state('false', style({ opacity: 0 })),\n transition('* => true', animate('150ms cubic-bezier(0.0, 0.0, 0.2, 1)')),\n transition('* => void', animate('150ms cubic-bezier(0.4, 0.0, 1, 1)'))]);\n","import { animate, AnimationTriggerMetadata, group, state, style, transition, trigger } from '@angular/animations';\n\n/**\n * The following are all the animations for the kbq-select component, with each\n * const containing the metadata for one animation.\n *\n */\nexport const kbqSelectAnimations: {\n readonly transformPanel: AnimationTriggerMetadata;\n readonly fadeInContent: AnimationTriggerMetadata;\n} = {\n /**\n * This animation transforms the select's overlay panel on and off the page.\n *\n * When the panel is attached to the DOM, it expands its width by the amount of padding, scales it\n * up to 100% on the Y axis, fades in its border, and translates slightly up and to the\n * side to ensure the option text correctly overlaps the trigger text.\n *\n * When the panel is removed from the DOM, it simply fades out linearly.\n */\n transformPanel: trigger('transformPanel', [\n state(\n 'void',\n style({\n transform: 'scaleY(0)',\n minWidth: '100%',\n opacity: 0\n })\n ),\n transition(\n 'void => *',\n group([\n animate('0ms cubic-bezier(0.25, 0.8, 0.25, 1)')])\n ),\n transition('* => void', [\n animate('0ms 0ms linear', style({ opacity: 0 }))])\n\n ]),\n\n /**\n * This animation fades in the background color and text content of the\n * select's options. It is time delayed to occur 100ms after the overlay\n * panel has transformed in.\n */\n fadeInContent: trigger('fadeInContent', [\n state('showing', style({ opacity: 1 })),\n transition('void => showing', [\n style({ opacity: 0 }),\n animate('0ms 0ms cubic-bezier(0.55, 0, 0.55, 0.2)')])\n\n ])\n};\n\nexport const transformPanel = kbqSelectAnimations.transformPanel;\n\nexport const fadeInContent = kbqSelectAnimations.fadeInContent;\n","import { ElementRef } from '@angular/core';\nimport { AbstractConstructor, Constructor } from './constructor';\n\nexport interface CanColor {\n color: KbqComponentColors | ThemePalette | string;\n}\n\n/** @docs-private */\nexport type CanColorCtor = Constructor<CanColor> & AbstractConstructor<CanColor>;\n\nexport interface HasElementRef {\n elementRef: ElementRef;\n}\n\nexport enum ThemePalette {\n Primary = 'primary',\n Secondary = 'secondary',\n Error = 'error',\n Info = 'info',\n Warning = 'warning',\n Success = 'success',\n\n Default = 'secondary',\n Empty = ''\n}\n\nexport enum KbqComponentColors {\n Theme = 'theme',\n ThemeFade = 'theme-fade',\n Contrast = 'contrast',\n ContrastFade = 'contrast-fade',\n\n Error = 'error',\n Warning = 'warning',\n Success = 'success',\n\n Default = 'contrast',\n Empty = 'empty'\n}\n\n/** Mixin to augment a directive with a `color` property. */\nexport function mixinColor<T extends AbstractConstructor<HasElementRef>>(\n base: T,\n defaultColor?: KbqComponentColors | ThemePalette\n): CanColorCtor & T;\n\nexport function mixinColor<T extends Constructor<HasElementRef>>(\n base: T,\n defaultColor: KbqComponentColors | ThemePalette = KbqComponentColors.Empty\n): CanColorCtor & T {\n return class extends base {\n get color(): KbqComponentColors | ThemePalette {\n return this._color;\n }\n set color(value: KbqComponentColors | ThemePalette) {\n const colorPalette = value || defaultColor;\n\n if (colorPalette !== this._color) {\n if (this._color) {\n this.elementRef.nativeElement.classList.remove(`kbq-${this._color}`);\n }\n if (colorPalette) {\n this.elementRef.nativeElement.classList.add(`kbq-${colorPalette}`);\n }\n\n this._color = colorPalette;\n }\n }\n\n private _color: KbqComponentColors | ThemePalette;\n\n constructor(...args: any[]) {\n super(...args);\n\n this.color = defaultColor;\n }\n };\n}\n","import { BidiModule } from '@angular/cdk/bidi';\nimport { DOCUMENT } from '@angular/common';\nimport { inject, Inject, InjectionToken, isDevMode, NgModule, Optional } from '@angular/core';\n\n// Injection token that configures whether the koobiq sanity checks are enabled.\nexport const KBQ_SANITY_CHECKS = new InjectionToken<boolean>('kbq-sanity-checks', {\n providedIn: 'root',\n factory: mcSanityChecksFactory\n});\n\nexport function mcSanityChecksFactory(): boolean {\n return true;\n}\n\n/**\n * Module that captures anything that should be loaded and/or run for *all* Koobiq\n * components. This includes Bidi, etc.\n *\n * This module should be imported to each top-level component module (e.g., KbqTabsModule).\n */\n@NgModule({\n imports: [BidiModule],\n exports: [BidiModule]\n})\nexport class KbqCommonModule {\n protected readonly document = inject<Document>(DOCUMENT);\n\n // Whether we've done the global sanity checks (e.g. a theme is loaded, there is a doctype).\n private hasDoneGlobalChecks = false;\n\n constructor(@Optional() @Inject(KBQ_SANITY_CHECKS) private _sanityChecksEnabled: boolean) {\n if (this.areChecksEnabled() && !this.hasDoneGlobalChecks) {\n this.checkDoctypeIsDefined();\n this.checkThemeIsPresent();\n this.hasDoneGlobalChecks = true;\n }\n }\n\n // Whether any sanity checks are enabled\n private areChecksEnabled(): boolean {\n return this._sanityChecksEnabled && isDevMode() && !this.isTestEnv();\n }\n\n // Whether the code is running in tests.\n private isTestEnv(): boolean {\n const window = this.getWindow();\n\n return !!(window && (window['__karma__'] || window['jasmine'] || window['__jest__']));\n }\n\n private checkDoctypeIsDefined(): void {\n if (this.document && !this.document.doctype) {\n console.warn(\n 'Current document does not have a doctype. This may cause ' +\n 'some koobiq components not to behave as expected.'\n );\n }\n }\n\n private checkThemeIsPresent(): void {\n if (this.document && typeof getComputedStyle === 'function') {\n const testElement = this.document.createElement('div');\n\n testElement.classList.add('kbq-theme-loaded-marker');\n this.document.body.appendChild(testElement);\n\n const computedStyle = getComputedStyle(testElement);\n\n // In some situations, the computed style of the test element can be null. For example in\n // Firefox, the computed style is null if an application is running inside of a hidden iframe.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n if (computedStyle && computedStyle.display !== 'none') {\n console.warn(\n 'Could not find koobiq core theme. Most koobiq ' +\n 'components may not work as expected. For more info refer ' +\n 'to the theming guide: https://koobiq.io/en/main/theming/overview'\n );\n }\n\n this.document.body.removeChild(testElement);\n }\n }\n\n private getWindow(): Window | null {\n return this.document?.defaultView || window;\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { AbstractConstructor, Constructor } from './constructor';\n\nexport interface CanDisable {\n disabled: boolean;\n}\n\n/** @docs-private */\nexport type CanDisableCtor = Constructor<CanDisable> & AbstractConstructor<CanDisable>;\n\n/** Mixin to augment a directive with a `disabled` property. */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function mixinDisabled<T extends AbstractConstructor<{}>>(base: T): CanDisableCtor & T;\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function mixinDisabled<T extends Constructor<{}>>(base: T): CanDisableCtor & T {\n return class extends base {\n get disabled() {\n return this._disabled;\n }\n\n set disabled(value: any) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n private _disabled: boolean = false;\n\n constructor(...args: any[]) {\n super(...args);\n }\n };\n}\n","import { FormGroupDirective, NgControl, NgForm, UntypedFormControl } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { ErrorStateMatcher } from '../error/error-state-matcher';\nimport { AbstractConstructor, Constructor } from './constructor';\n\n/** @docs-private */\nexport interface CanUpdateErrorState {\n /** Whether the component is in an error state. */\n errorState: boolean;\n /** An object used to control the error state of the component. */\n errorStateMatcher: ErrorStateMatcher;\n /** Updates the error state based on the provided error state matcher. */\n updateErrorState(): void;\n}\n\n/** @docs-private */\nexport type CanUpdateErrorStateCtor = Constructor<CanUpdateErrorState>;\n\n/** @docs-private */\nexport interface HasErrorState {\n parentFormGroup: FormGroupDirective | null;\n parentForm: NgForm | null;\n defaultErrorStateMatcher: ErrorStateMatcher;\n\n ngControl: NgControl | null;\n stateChanges: Subject<void>;\n}\n\n/**\n * Mixin to augment a directive with updateErrorState method.\n * For component with `errorState` and need to update `errorState`.\n */\nexport function mixinErrorState<T extends AbstractConstructor<HasErrorState>>(base: T): CanUpdateErrorStateCtor & T;\nexport function mixinErrorState<T extends Constructor<HasErrorState>>(base: T): CanUpdateErrorStateCtor & T {\n return class extends base {\n /** Whether the component is in an error state. */\n errorState: boolean = false;\n\n errorStateMatcher: ErrorStateMatcher;\n\n constructor(...args: any[]) {\n super(...args);\n }\n\n updateErrorState() {\n const oldState = this.errorState;\n const parent = this.parentFormGroup || this.parentForm;\n const matcher = this.errorStateMatcher || this.defaultErrorStateMatcher;\n const control = this.ngControl ? (this.ngControl.control as UntypedFormControl) : null;\n const newState = matcher.isErrorState(control, parent);\n\n if (newState !== oldState) {\n this.errorState = newState;\n this.stateChanges.next();\n }\n }\n };\n}\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { AbstractConstructor, Constructor } from './constructor';\nimport { CanDisable } from './disabled';\n\nexport interface HasTabIndex {\n tabIndex: number;\n}\n\nexport type HasTabIndexCtor = Constructor<HasTabIndex> & AbstractConstructor<HasTabIndex>;\n\n/** Mixin to augment a directive with a `tabIndex` property. */\nexport function mixinTabIndex<T extends AbstractConstructor<CanDisable>>(\n base: T,\n defaultTabIndex?: number\n): HasTabIndexCtor & T;\n\nexport function mixinTabIndex<T extends Constructor<CanDisable>>(base: T, defaultTabIndex = 0): HasTabIndexCtor & T {\n return class extends base implements HasTabIndex {\n defaultTabIndex = defaultTabIndex;\n\n get tabIndex(): number {\n return this.disabled ? -1 : this._tabIndex;\n }\n\n set tabIndex(value: number) {\n // If the specified tabIndex value is null or undefined, fall back to the default value.\n\n this._tabIndex = value != null ? coerceNumberProperty(value) : this.defaultTabIndex;\n }\n\n private _tabIndex: number = defaultTabIndex;\n\n constructor(...args: any[]) {\n super(...args);\n }\n };\n}\n","import { InjectionToken } from '@angular/core';\n\nexport { CanColor, CanColorCtor, KbqComponentColors, mixinColor, ThemePalette } from './color';\nexport { KBQ_SANITY_CHECKS, KbqCommonModule } from './common-module';\nexport { CanDisable, CanDisableCtor, mixinDisabled } from './disabled';\nexport { CanUpdateErrorState, CanUpdateErrorStateCtor, mixinErrorState } from './error-state';\nexport { KbqDefaultSizes } from './size';\nexport { HasTabIndex, HasTabIndexCtor, mixinTabIndex } from './tabindex';\n\nexport const KBQ_PARENT_ANIMATION_COMPONENT = new InjectionToken<any>('kbq-parent-animation-component');\n","import { inject, InjectionToken, LOCALE_ID } from '@angular/core';\nimport { DateAdapter as BaseDateAdapter } from '@koobiq/date-adapter';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n/** InjectionToken for datepicker that can be used to override default locale code. */\nexport const KBQ_DATE_LOCALE = new InjectionToken<string>('KBQ_DATE_LOCALE', {\n providedIn: 'root',\n factory: KBQ_DATE_LOCALE_FACTORY\n});\n\n/** @docs-private */\nexport function KBQ_DATE_LOCALE_FACTORY(): string {\n return inject(LOCALE_ID);\n}\n\nexport abstract class DateAdapter<D> extends BaseDateAdapter<D> {\n /** A stream that emits when the locale changes. */\n abstract get localeChanges(): Observable<any>;\n\n protected abstract _localeChanges: BehaviorSubject<string>;\n}\n","import { InjectionToken } from '@angular/core';\nimport { DateFormats } from '@koobiq/date-adapter';\n\nexport const KBQ_DATE_FORMATS = new InjectionToken<DateFormats>('kbq-date-formats');\nexport type KbqDateFormats = DateFormats;\n","import { Injectable, Provider, Type } from '@angular/core';\nimport { AbstractControl, FormGroupDirective, NgForm } from '@angular/forms';\n\n/** Utility provider for `ErrorStateMatcher`. */\nexport const kbqErrorStateMatcherProvider = (\n errorStateMatcher: Type<ErrorStateMatcher> | ErrorStateMatcher\n): Provider => {\n if (errorStateMatcher instanceof Type) {\n return {\n provide: ErrorStateMatcher,\n useClass: errorStateMatcher\n };\n }\n\n return {\n provide: ErrorStateMatcher,\n useValue: errorStateMatcher\n };\n};\n\n/**\n * Error state matcher that matches when a control is invalid and form is submitted.\n * Requires use FormGroupDirective or NgForm.\n */\n@Injectable()\nexport class ShowOnFormSubmitErrorStateMatcher implements ErrorStateMatcher {\n isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control?.invalid && form?.submitted);\n }\n}\n\n/** Error state matcher that matches when a control is invalid and dirty or form is submitted. */\n@Injectable()\nexport class ShowOnControlDirtyErrorStateMatcher implements ErrorStateMatcher {\n isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control?.invalid && (control.dirty || form?.submitted));\n }\n}\n\n/**\n * Provider that defines how form controls behave with regards to displaying error messages.\n * Error state matcher that matches when a control is invalid and touched or form is submitted.\n */\n@Injectable({ providedIn: 'root' })\nexport class ErrorStateMatcher {\n isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control?.invalid && (control.touched || form?.submitted));\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface KbqFormFieldRef {\n control: any;\n canCleanerClearByEsc: boolean;\n /**\n * @TODO should be removed, is private method (#DS-2915)\n * @deprecated use `formField.control?.errorState` instead\n */\n shouldForward(str: string): boolean;\n focus(): void;\n /**\n * @deprecated Use `focus` instead.\n */\n focusViaKeyboard(): void;\n}\n\n/**\n * @TODO move into form-field.ts, add correct type for `InjectionToken<KbqFormField>` (#DS-2915)\n */\n\n/**\n * Injection token that can be used to inject an instances of `KbqFormField`. It serves\n * as alternative token to the actual `KbqFormField` class which would cause unnecessary\n * retention of the `KbqFormField` class and its component metadata.\n */\nexport const KBQ_FORM_FIELD_REF = new InjectionToken<KbqFormFieldRef>('KbqFormFieldRef');\n","import { Inject, Injectable } from '@angular/core';\nimport { DateAdapter } from '@koobiq/date-adapter';\nimport { DateFormatter as BaseDateFormatter } from '@koobiq/date-formatter';\nimport { KBQ_DATE_LOCALE } from '../../datetime';\n\n@Injectable()\nexport class DateFormatter<D> extends BaseDateFormatter<D> {\n constructor(\n override readonly adapter: DateAdapter<D>,\n @Inject(KBQ_DATE_LOCALE) locale: string\n ) {\n super(adapter, locale);\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { DateTimeOptions } from '@koobiq/date-formatter';\nimport { DateAdapter } from '../../datetime';\nimport { DateFormatter } from './formatter';\n\nexport class BaseFormatterPipe<D> {\n protected readonly adapter: DateAdapter<D> = inject(DateAdapter<D>);\n protected readonly formatter: DateFormatter<D> = inject(DateFormatter<D>);\n}\n\n@Pipe({\n standalone: true,\n name: 'absoluteLongDate'\n})\nexport class AbsoluteDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string, currYear?: boolean): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.absoluteLongDate(date, currYear) : '';\n }\n}\n\n@Pipe({\n standalone: true,\n name: 'absoluteLongDateImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class AbsoluteDateFormatterImpurePipe<D> extends AbsoluteDateFormatterPipe<D> {}\n\n@Pipe({\n standalone: true,\n name: 'absoluteLongDateTime'\n})\nexport class AbsoluteDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string, options?: DateTimeOptions): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.absoluteLongDateTime(date, options) : '';\n }\n}\n\n@Pipe({\n standalone: true,\n name: 'absoluteLongDateTimeImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class AbsoluteDateTimeFormatterImpurePipe<D> extends AbsoluteDateTimeFormatterPipe<D> {}\n\n@Pipe({\n standalone: true,\n name: 'absoluteShortDate'\n})\nexport class AbsoluteDateShortFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string, currYear?: boolean): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.absoluteShortDate(date, currYear) : '';\n }\n}\n\n@Pipe({\n standalone: true,\n name: 'absoluteShortDateImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class AbsoluteDateShortFormatterImpurePipe<D> extends AbsoluteDateShortFormatterPipe<D> {}\n\n@Pipe({\n standalone: true,\n name: 'absoluteShortDateTime'\n})\nexport class AbsoluteShortDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string, options?: DateTimeOptions): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.absoluteShortDateTime(date, options) : '';\n }\n}\n\n@Pipe({\n standalone: true,\n name: 'absoluteShortDateTimeImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class AbsoluteShortDateTimeFormatterImpurePipe<D> extends AbsoluteShortDateTimeFormatterPipe<D> {}\n\n@Pipe({\n standalone: true,\n name: 'relativeLongDate'\n})\nexport class RelativeDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.relativeLongDate(date) : '';\n }\n}\n\n@Pipe({\n standalone: true,\n name: 'relativeLongDateImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RelativeDateFormatterImpurePipe<D> extends RelativeDateFormatterPipe<D> {}\n\n@Pipe({\n standalone: true,\n name: 'relativeLongDateTime'\n})\nexport class RelativeDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string, options?: DateTimeOptions): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.relativeLongDateTime(date, options) : '';\n }\n}\n\n@Pipe({\n standalone: true,\n name: 'relativeLongDateTimeImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RelativeDateTimeFormatterImpurePipe<D> extends RelativeDateTimeFormatterPipe<D> {}\n\n@Pipe({\n standalone: true,\n name: 'relativeShortDate'\n})\nexport class RelativeShortDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.relativeShortDate(date) : '';\n }\n}\n\n@Pipe({\n standalone: true,\n name: 'relativeShortDateImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RelativeShortDateFormatterImpurePipe<D> extends RelativeShortDateFormatterPipe<D> {}\n\n@Pipe({\n standalone: true,\n name: 'relativeShortDateTime'\n})\nexport class RelativeShortDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string, options?: DateTimeOptions): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.relativeShortDateTime(date, options) : '';\n }\n}\n\n@Pipe({\n standalone: true,\n name: 'relativeShortDateTimeImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RelativeShortDateTimeFormatterImpurePipe<D> extends RelativeShortDateTimeFormatterPipe<D> {}\n\n@Pipe({\n standalone: true,\n name: 'rangeLongDate'\n})\nexport class RangeDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform([value1, value2]: D[] | string[]): string {\n const date1 = this.adapter.deserialize(value1);\n const date2 = this.adapter.deserialize(value2);\n\n return this.formatter.rangeLongDate(date1 as D, date2 as D);\n }\n}\n\n@Pipe({\n standalone: true,\n name: 'rangeLongDateImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RangeDateFormatterImpurePipe<D> extends RangeDateFormatterPipe<D> {}\n\n@Pipe({\n standalone: true,\n name: 'rangeShortDate'\n})\nexport class RangeShortDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform([value1, value2]: D[] | string[]): string {\n const date1 = this.adapter.deserialize(value1);\n const date2 = this.adapter.deserialize(value2);\n\n return this.formatter.rangeShortDate(date1 as D, date2 as D);\n }\n}\n\n@Pipe({\n standalone: true,\n name: 'rangeShortDateImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RangeShortDateFormatterImpurePipe<D> extends RangeShortDateFormatterPipe<D> {}\n\n@Pipe({\n standalone: true,\n name: 'rangeLongDateTime'\n})\nexport class RangeDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string {\n const date1 = this.adapter.deserialize(value1);\n const date2 = this.adapter.deserialize(value2);\n\n return this.formatter.rangeLongDateTime(date1 as D, date2 as D, options);\n }\n}\n\n@Pipe({\n standalone: true,\n name: 'rangeLongDateTimeImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RangeDateTimeFormatterImpurePipe<D> extends RangeDateTimeFormatterPipe<D> {}\n\n@Pipe({\n standalone: true,\n name: 'rangeMiddleDateTime'\n})\nexport class RangeMiddleDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string {\n const date1 = this.adapter.deserialize(value1);\n const date2 = this.adapter.deserialize(value2);\n\n return this.formatter.rangeMiddleDateTime(date1 as D, date2 as D, options);\n }\n}\n\n@Pipe({\n standalone: true,\n name: 'rangeMiddleDateTimeImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RangeMiddleDateTimeFormatterImpurePipe<D> extends RangeMiddleDateTimeFormatterPipe<D> {}\n\n@Pipe({\n standalone: true,\n name: 'rangeShortDateTime'\n})\nexport class RangeShortDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string {\n const date1 = this.adapter.deserialize(value1);\n const date2 = this.adapter.deserialize(value2);\n\n return this.formatter.rangeShortDateTime(date1 as D, date2 as D, options);\n }\n}\n\n@Pipe({\n standalone: true,\n name: 'rangeShortDateTimeImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RangeShortDateTimeFormatterImpurePipe<D> extends RangeShortDateTimeFormatterPipe<D> {}\n","import { KbqActionsPanelLocaleConfiguration, KbqCodeBlockLocaleConfiguration } from './types';\n\nexport const enUSLocaleData = {\n select: { hiddenItemsText: '{{ number }} more' },\n datepicker: {\n placeholder: 'yyyy-mm-dd',\n dateInput: 'yyyy-MM-dd'\n },\n timepicker: {\n placeholder: {\n full: 'hh:mm:ss',\n short: 'hh:mm'\n }\n },\n fileUpload: {\n single: {\n captionText: 'Drag file here or {{ browseLink }}',\n browseLink: 'choose'\n },\n multiple: {\n captionText: 'Drag here or {{ browseLink }}',\n captionTextWhenSelected: 'Drag more files or {{ browseLink }}',\n captionTextForCompactSize: 'Drag files or {{ browseLink }}',\n browseLink: 'choose',\n title: 'Upload files',\n gridHeaders: {\n file: 'File',\n size: 'Size'\n }\n }\n },\n codeBlock: {\n softWrapOnTooltip: 'Enable word wrap',\n softWrapOffTooltip: 'Disable word wrap',\n downloadTooltip: 'Download',\n copiedTooltip: '✓ Copied',\n copyTooltip: 'Copy',\n viewAllText: 'Show all',\n viewLessText: 'Show less',\n openExternalSystemTooltip: 'Open in the external system'\n } satisfies KbqCodeBlockLocaleConfiguration,\n timezone: {\n searchPlaceholder: 'City or time zone'\n },\n actionsPanel: {\n closeTooltip: 'Deselect'\n } satisfies KbqActionsPanelLocaleConfiguration,\n filterBar: {\n reset: {\n buttonName: 'Сбросить'\n },\n search: {\n tooltip: 'Поиск',\n placeholder: 'Поиск'\n },\n filters: {\n defaultName: 'Фильтры',\n saveNewFilterTooltip: 'Сохранить новый фильтр',\n searchPlaceholder: 'Поиск',\n searchEmptyResult: 'Ничего не найдено',\n saveAsNewFilter: 'Сохранить как новый фильтр',\n saveChanges: 'Сохранить изменения',\n saveAsNew: 'Сохранить как новый',\n change: 'Изменить',\n resetChanges: 'Сбросить изменения',\n remove: 'Удалить',\n name: 'Название',\n error: 'Поиск с таким названием уже существует',\n errorHint: 'Не удалось сохранить фильтр. Попробуйте снова или сообщите администратору.',\n saveButton: 'Сохранить',\n cancelButton: 'Отмена'\n },\n add: {\n tooltip: 'Добавить фильтр'\n },\n pipe: {\n clearButtonTooltip: 'Очистить',\n removeButtonTooltip: 'Удалить',\n applyButton: 'Применить',\n emptySearchResult: 'Ничего не найдено'\n },\n datePipe: {\n customPeriod: 'Произвольный период',\n customPeriodFrom: 'с',\n customPeriodTo: 'по',\n customPeriodErrorHint: 'Начало периода не может быть позже окончания',\n backToPeriodSelection: 'Назад к выбору периода'\n }\n }\n};\n","import { KbqActionsPanelLocaleConfiguration, KbqCodeBlockLocaleConfiguration } from './types';\n\nexport const esLALocaleData = {\n select: { hiddenItemsText: '{{ number }} más' },\n datepicker: {\n placeholder: 'dd/mm/aaaa'\n },\n timepicker: {\n placeholder: {\n full: 'hh:mm:ss',\n short: 'hh:mm'\n }\n },\n fileUpload: {\n single: {\n captionText: 'Arrastre el archivo aquí o {{ browseLink }}',\n browseLink: 'elija'\n },\n multiple: {\n captionText: 'Arrastre aquí o {{ browseLink }}',\n captionTextWhenSelected: 'Arrastre más archivos aquí o {{ browseLink }}',\n captionTextForCompactSize: 'Arrastre archivos o {{ browseLink }}',\n browseLink: 'elija',\n title: 'Cargue los archivos',\n gridHeaders: {\n file: 'Archivo',\n size: 'Tamaño'\n }\n }\n },\n codeBlock: {\n softWrapOnTooltip: 'Activar el ajuste de texto',\n softWrapOffTooltip: 'Desactivar el ajuste de texto',\n downloadTooltip: 'Descargar',\n copiedTooltip: '✓ Copiado',\n copyTooltip: 'Copiar',\n viewAllText: 'Mostrar todo',\n viewLessText: 'Mostrar menos',\n openExternalSystemTooltip: 'Abrir en el sistema externo'\n } satisfies KbqCodeBlockLocaleConfiguration,\n timezone: {\n searchPlaceholder: 'Ciudad o zona horaria'\n },\n actionsPanel: {\n closeTooltip: 'Desmarque'\n } satisfies KbqActionsPanelLocaleConfiguration,\n filterBar: {\n reset: {\n buttonName: 'Сбросить'\n },\n search: {\n tooltip: 'Поиск',\n placeholder: 'Поиск'\n },\n filters: {\n defaultName: 'Фильтры',\n saveNewFilterTooltip: 'Сохранить новый фильтр',\n searchPlaceholder: 'Поиск',\n searchEmptyResult: 'Ничего не найдено',\n saveAsNewFilter: 'Сохранить как новый фильтр',\n saveChanges: 'Сохранить изменения',\n saveAsNew: 'Сохранить как новый',\n change: 'Изменить',\n resetChanges: 'Сбросить изменения',\n remove: 'Удалить',\n name: 'Название',\n error: 'Поиск с таким названием уже существует',\n errorHint: 'Не удалось сохранить фильтр. Попробуйте снова или сообщите администратору.',\n saveButton: 'Сохранить',\n cancelButton: 'Отмена'\n },\n add: {\n tooltip: 'Добавить фильтр'\n },\n pipe: {\n clearButtonTooltip: 'Очистить',\n removeButtonTooltip: 'Удалить',\n applyButton: 'Применить',\n emptySearchResult: 'Ничего не найдено'\n },\n datePipe: {\n customPeriod: 'Произвольный период',\n customPeriodFrom: 'с',\n customPeriodTo: 'по',\n customPeriodErrorHint: 'Начало периода не может быть позже окончания',\n backToPeriodSelection: 'Назад к выбору периода'\n }\n }\n};\n","import { KbqActionsPanelLocaleConfiguration, KbqCodeBlockLocaleConfiguration } from './types';\n\nexport const faIRLocaleData = {\n select: { hiddenItemsText: '{{ number }} بیشتر' },\n datepicker: {\n placeholder: 'روز/ ماه/سال'\n },\n timepicker: {\n placeholder: {\n full: 'ثانیه:دقیقه:ساعت',\n short: 'دقیقه:ساعت'\n }\n },\n fileUpload: {\n single: {\n captionText: 'فایل را به اینجا بکشید یا {{ browseLink }}',\n browseLink: 'انتخاب کنید'\n },\n multiple: {\n captionText: 'به اینجا بکشید یا {{ browseLink }}',\n captionTextWhenSelected: 'فایل های بیشتری را بکشید یا {{ browseLink }}',\n captionTextForCompactSize: 'فایل ها را بکشید یا {{ browseLink }}',\n browseLink: 'انتخاب کنید',\n title: 'فایل ها را آپلود کنید',\n gridHeaders: {\n file: 'فایل',\n size: 'اندازه'\n }\n }\n },\n codeBlock: {\n softWrapOnTooltip: 'فعالسازی سطربندی',\n softWrapOffTooltip: 'غیرفعالسازی سطربندی',\n downloadTooltip: 'دانلود',\n copiedTooltip: '✓ کپی شد',\n copyTooltip: 'کپی',\n viewAllText: 'نمایش همه',\n viewLessText: 'نمایش کمتر',\n openExternalSystemTooltip: 'باز کردن در سیستم خارجی'\n } satisfies KbqCodeBlockLocaleConfiguration,\n timezone: {\n searchPlaceholder: ' شهر یا منطقه زمانی '\n },\n actionsPanel: {\n closeTooltip: 'إلغاء التحديد'\n } satisfies KbqActionsPanelLocaleConfiguration,\n filterBar: {\n reset: {\n buttonName: 'Сбросить'\n },\n search: {\n tooltip: 'Поиск',\n placeholder: 'Поиск'\n },\n filters: {\n defaultName: 'Фильтры',\n saveNewFilterTooltip: 'Сохранить новый фильтр',\n searchPlaceholder: 'Поиск',\n searchEmptyResult: 'Ничего не найдено',\n saveAsNewFilter: 'Сохранить как новый фильтр',\n saveChanges: 'Сохранить изменения',\n saveAsNew: 'Сохранить как новый',\n change: 'Изменить',\n resetChanges: 'Сбросить изменения',\n remove: 'Удалить',\n name: 'Название',\n error: 'Поиск с таким названием уже существует',\n errorHint: 'Не удалось сохранить фильтр. Попробуйте снова или сообщите администратору.',\n saveButton: 'Сохранить',\n cancelButton: 'Отмена'\n },\n add: {\n tooltip: 'Добавить фильтр'\n },\n pipe: {\n clearButtonTooltip: 'Очистить',\n removeButtonTooltip: 'Удалить',\n applyButton: 'Применить',\n emptySearchResult: 'Ничего не найдено'\n },\n datePipe: {\n customPeriod: 'Произвольный период',\n customPeriodFrom: 'с',\n customPeriodTo: 'по',\n customPeriodErrorHint: 'Начало периода не может быть позже окончания',\n backToPeriodSelection: 'Назад к выбору периода'\n }\n }\n};\n","import { KbqActionsPanelLocaleConfiguration, KbqCodeBlockLocaleConfiguration } from './types';\n\nexport const ptBRLocaleData = {\n select: { hiddenItemsText: '{{ number }} mais' },\n datepicker: {\n placeholder: 'dd/mm/yyyy'\n },\n timepicker: {\n placeholder: {\n full: 'hh:mm:ss',\n short: 'hh:mm'\n }\n },\n fileUpload: {\n single: {\n captionText: 'Arrastar o arquivo aqui ou {{ browseLink }}',\n browseLink: 'escolher'\n },\n multiple: {\n captionText: 'Arrastar aqui ou {{ browseLink }}',\n captionTextWhenSelected: 'Arrastar mais arquivos aqui ou {{ browseLink }}',\n captionTextForCompactSize: 'Arrastar arquivos ou {{ browseLink }}',\n browseLink: 'escolher',\n title: 'Carregar arquivos',\n gridHeaders: {\n file: 'Arquivo',\n size: 'Tamanho'\n }\n }\n },\n codeBlock: {\n softWrapOnTooltip: 'Ativar quebra de linha',\n softWrapOffTooltip: 'Desativar quebra de linha',\n downloadTooltip: 'Baixar',\n copiedTooltip: '✓ Copiado',\n copyTooltip: 'Copiar',\n viewAllText: 'Mostrar todos',\n viewLessText: 'Mostrar menos',\n openExternalSystemTooltip: 'Abrir em sistema externo'\n } satisfies KbqCodeBlockLocaleConfiguration,\n timezone: {\n searchPlaceholder: 'Cidade ou fuso horário'\n },\n actionsPanel: {\n closeTooltip: 'Desmarcar'\n } satisfies KbqActionsPanelLocaleConfiguration,\n filterBar: {\n reset: {\n buttonName: 'Сбросить'\n },\n search: {\n tooltip: 'Поиск',\n placeholder: 'Поиск'\n },\n filters: {\n defaultName: 'Фильтры',\n saveNewFilterTooltip: 'Сохранить новый фильтр',\n searchPlaceholder: 'Поиск',\n searchEmptyResult: 'Ничего не найдено',\n saveAsNewFilter: 'Сохранить как новый фильтр',\n saveChanges: 'Сохранить изменения',\n saveAsNew: 'Сохранить как новый',\n change: 'Изменить',\n resetChanges: 'Сбросить изменения',\n remove: 'Удалить',\n name: 'Название',\n error: 'Поиск с таким названием уже существует',\n errorHint: 'Не удалось сохранить фильтр. Попробуйте снова или сообщите администратору.',\n saveButton: 'Сохранить',\n cancelButton: 'Отмена'\n },\n add: {\n tooltip: 'Добавить фильтр'\n },\n pipe: {\n clearButtonTooltip: 'Очистить',\n removeButtonTooltip: 'Удалить',\n applyButton: 'Применить',\n emptySearchResult: 'Ничего не найдено'\n },\n datePipe: {\n customPeriod: 'Произвольный период',\n customPeriodFrom: 'с',\n customPeriodTo: 'по',\n customPeriodErrorHint: 'Начало периода не может быть позже окончания',\n backToPeriodSelection: 'Назад к выбору периода'\n }\n }\n};\n","import { KbqActionsPanelLocaleConfiguration, KbqCodeBlockLocaleConfiguration } from './types';\n\nexport const ruRULocaleData = {\n select: { hiddenItemsText: 'еще {{ number }}' },\n datepicker: {\n placeholder: 'дд.мм.гггг',\n dateInput: 'dd.MM.yyyy'\n },\n timepicker: {\n placeholder: {\n full: 'чч:мм:сс',\n short: 'чч:мм'\n }\n },\n fileUpload: {\n single: {\n captionText: 'Перетащите файл или {{ browseLink }}',\n browseLink: 'выберите'\n },\n multiple: {\n captionText: 'Перетащите сюда или {{ browseLink }}',\n captionTextWhenSelected: 'Перетащите еще или {{ browseLink }}',\n captionTextForCompactSize: 'Перетащите файлы или {{ browseLink }}',\n browseLink: 'выберите',\n title: 'Загрузите файлы',\n gridHeaders: {\n file: 'Файл',\n size: 'Размер'\n }\n }\n },\n codeBlock: {\n softWrapOnTooltip: 'Включить перенос по словам',\n softWrapOffTooltip: 'Выключить перенос по словам',\n downloadTooltip: 'Скачать',\n copiedTooltip: '✓ Скопировано',\n copyTooltip: 'Скопировать',\n viewAllText: 'Показать все',\n viewLessText: 'Свернуть',\n openExternalSystemTooltip: 'Открыть во внешней системе'\n } satisfies KbqCodeBlockLocaleConfiguration,\n timezone: {\n searchPlaceholder: 'Город или часовой пояс'\n },\n actionsPanel: {\n closeTooltip: 'Отменить выбор'\n } satisfies KbqActionsPanelLocaleConfiguration,\n filterBar: {\n reset: {\n buttonName: 'Сбросить'\n },\n search: {\n tooltip: 'Поиск',\n placeholder: 'Поиск'\n },\n filters: {\n defaultName: 'Фильтры',\n saveNewFilterTooltip: 'Сохранить новый фильтр',\n searchPlaceholder: 'Поиск',\n searchEmptyResult: 'Ничего не найдено',\n saveAsNewFilter: 'Сохранить как новый фильтр',\n saveChanges: 'Сохранить изменения',\n saveAsNew: 'Сохранить как новый',\n change: 'Изменить',\n resetChanges: 'Сбросить изменения',\n remove: 'Удалить',\n name: 'Название',\n error: 'Поиск с таким названием уже существует',\n errorHint: 'Не удалось сохранить фильтр. Попробуйте снова или сообщите администратору.',\n saveButton: 'Сохранить',\n cancelButton: 'Отмена'\n },\n add: {\n tooltip: 'Добавить фильтр'\n },\n pipe: {\n clearButtonTooltip: 'Очистить',\n removeButtonTooltip: 'Удалить',\n applyButton: 'Применить',\n emptySearchResult: 'Ничего не найдено'\n },\n datePipe: {\n customPeriod: 'Произвольный период',\n customPeriodFrom: 'с',\n customPeriodTo: 'по',\n customPeriodErrorHint: 'Начало периода не может быть позже окончания',\n backToPeriodSelection: 'Назад к выбору периода'\n }\n }\n};\n","import { KbqActionsPanelLocaleConfiguration, KbqCodeBlockLocaleConfiguration } from './types';\n\nexport const tkTMLocaleData = {\n select: { hiddenItemsText: 'ýene {{ number }}' },\n datepicker: {\n placeholder: 'gg.aa.ýý.',\n dateInput: 'gg.aa.ýý.'\n },\n timepicker: {\n placeholder: {\n full: 'ss:mm:seksek',\n short: 'ss:mm'\n }\n },\n fileUpload: {\n single: {\n captionText: 'Faýly geçiriň ýa-da {{ browseLink }} ',\n browseLink: 'saýlaň'\n },\n multiple: {\n captionText: 'Şu ýere geçiriň ýa-da {{ browseLink }}',\n captionTextWhenSelected: 'Ýene geçiriň ýa-da {{ browseLink }}',\n captionTextForCompactSize: 'Faýllary geçiriň ýa-da {{ browseLink }}',\n browseLink: 'saýlaň',\n title: 'Faýl ýükläň',\n gridHeaders: {\n file: 'Faýl',\n size: 'Ölçegi'\n }\n }\n },\n codeBlock: {\n softWrapOnTooltip: 'Sözler boýunça geçirmäni işjeňleşdirmek',\n softWrapOffTooltip: 'Sözler boýunça geçirmäni öçürmek',\n downloadTooltip: 'Ýüklemek',\n copiedTooltip: '✓ Göçürildi',\n copyTooltip: 'Göçürmek',\n viewAllText: 'Hemmesini görkezmek',\n viewLessText: 'Ýygyrmak',\n openExternalSystemTooltip: 'Daşarky ulgamda açmak'\n } satisfies KbqCodeBlockLocaleConfiguration,\n timezone: {\n searchPlaceholder: 'Şäher ýa-da sagat guşagy'\n },\n actionsPanel: {\n closeTooltip: 'Saýlawy ýatyr'\n } satisfies KbqActionsPanelLocaleConfiguration,\n filterBar: {\n reset: {\n buttonName: 'Сбросить'\n },\n search: {\n tooltip: 'Поиск',\n placeholder: 'Поиск'\n },\n filters: {\n defaultName: 'Фильтры',\n saveNewFilterTooltip: 'Сохранить новый фильтр',\n searchPlaceholder: 'Поиск',\n searchEmptyResult: 'Ничего не найдено',\n saveAsNewFilter: 'Сохранить как новый фильтр',\n saveChanges: 'Сохранить изменения',\n saveAsNew: 'Сохранить как новый',\n change: 'Изменить',\n resetChanges: 'Сбросить изменения',\n remove: 'Удалить',\n name: 'Название',\n error: 'Поиск с таким названием уже существует',\n errorHint: 'Не удалось сохранить фильтр. Попробуйте снова или сообщите администратору.',\n saveButton: 'Сохранить',\n cancelButton: 'Отмена'\n },\n add: {\n tooltip: 'Добавить фильтр'\n },\n pipe: {\n clearButtonTooltip: 'Очистить',\n removeButtonTooltip: 'Удалить',\n applyButton: 'Применить',\n emptySearchResult: 'Ничего не найдено'\n },\n datePipe: {\n customPeriod: 'Произвольный период',\n customPeriodFrom: 'с',\n customPeriodTo: 'по',\n customPeriodErrorHint: 'Начало периода не может быть позже окончания',\n backToPeriodSelection: 'Назад к выбору периода'\n }\n }\n};\n","import { KbqActionsPanelLocaleConfiguration, KbqCodeBlockLocaleConfiguration } from './types';\n\nexport const zhCNLocaleData = {\n select: { hiddenItemsText: '另外 {{ number }} 个' },\n datepicker: {\n placeholder: '年/月/日'\n },\n timepicker: {\n placeholder: {\n full: '时:分:秒',\n short: '时:分'\n }\n },\n fileUpload: {\n single: {\n captionText: '将文件拖到此处或{{ browseLink }}',\n browseLink: '选择'\n },\n multiple: {\n captionText: '拖到此处或{{ browseLink }}',\n captionTextWhenSelected: '拖动更多文件或{{ browseLink }}',\n captionTextForCompactSize: '拖动文件或{{ browseLink }}',\n browseLink: '选择',\n title: '上传文件',\n gridHeaders: {\n file: '文件',\n size: '大小'\n }\n }\n },\n codeBlock: {\n softWrapOnTooltip: '启用文本换行',\n softWrapOffTooltip: '禁用文本换行',\n downloadTooltip: '下载',\n copiedTooltip: '✓已复制',\n copyTooltip: '复制',\n viewAllText: '显示全部',\n viewLessText: '显示部分',\n openExternalSystemTooltip: '在外部系统中打开'\n } satisfies KbqCodeBlockLocaleConfiguration,\n timezone: {\n searchPlaceholder: '城市或时区'\n },\n actionsPanel: {\n closeTooltip: '取消选择'\n } satisfies KbqActionsPanelLocaleConfiguration,\n filterBar: {\n reset: {\n buttonName: 'Сбросить'\n },\n search: {\n tooltip: 'Поиск',\n placeholder: 'Поиск'\n },\n filters: {\n defaultName: 'Фильтры',\n saveNewFilterTooltip: 'Сохранить новый фильтр',\n searchPlaceholder: 'Поиск',\n searchEmptyResult: 'Ничего не найдено',\n saveAsNewFilter: 'Сохранить как новый фильтр',\n saveChanges: 'Сохранить изменения',\n saveAsNew: 'Сохранить как новый',\n change: 'Изменить',\n resetChanges: 'Сбросить изменения',\n remove: 'Удалить',\n name: 'Название',\n error: 'Поиск с таким названием уже существует',\n errorHint: 'Не удалось сохранить фильтр. Попробуйте снова или сообщите администратору.',\n saveButton: 'Сохранить',\n cancelButton: 'Отмена'\n },\n add: {\n tooltip: 'Добавить фильтр'\n },\n pipe: {\n clearButtonTooltip: 'Очистить',\n removeButtonTooltip: 'Удалить',\n applyButton: 'Применить',\n emptySearchResult: 'Ничего не найдено'\n },\n datePipe: {\n customPeriod: 'Произвольный период',\n customPeriodFrom: 'с',\n customPeriodTo: 'по',\n customPeriodErrorHint: 'Начало периода не может быть позже окончания',\n backToPeriodSelection: 'Назад к выбору периода'\n }\n }\n};\n","export const enUSFormattersData = {\n formatters: {\n number: {\n rounding: {\n separator: '',\n groupSeparator: '.',\n thousand: 'K',\n million: 'M',\n billion: 'B',\n trillion: 'T'\n }\n }\n },\n input: {\n number: {\n groupSeparator: [','],\n fractionSeparator: '.'\n }\n },\n sizeUnits: {\n defaultUnitSystem: 'SI',\n defaultPrecision: 2,\n unitSystems: {\n SI: {\n abbreviations: ['B', 'KB', 'MB', 'GB', 'TB'],\n base: 10,\n power: 3\n },\n IEC: {\n abbreviations: ['B', 'KiB', 'MiB', 'GiB', 'TiB'],\n base: 2,\n power: 10\n }\n }\n }\n};\n\nexport const esLAFormattersData = {\n formatters: {\n number: {\n rounding: {\n separator: '',\n groupSeparator: ',',\n thousand: 'K',\n million: 'M',\n billion: 'MRD',\n trillion: 'B'\n }\n }\n },\n input: {\n number: {\n // nbsp is generated automatically and used by default in spec\n groupSeparator: [' ', ' '],\n fractionSeparator: ','\n }\n },\n sizeUnits: {\n defaultUnitSystem: 'SI',\n defaultPrecision: 2,\n unitSystems: {\n SI: {\n abbreviations: ['Б', 'КБ', 'МБ', 'ГБ', 'ТБ'],\n base: 10,\n power: 3\n },\n IEC: {\n abbreviations: ['Б', 'КиБ', 'МиБ', 'ГиБ', 'ТиБ'],\n base: 2,\n power: 10\n }\n }\n }\n};\n\nexport const faIRFormattersData = {\n formatters: {\n number: {\n rounding: {\n separator: ' ',\n groupSeparator: '٫',\n thousand: 'هزار',\n million: 'میلیون',\n billion: 'م',\n trillion: 'تریلیون',\n rtl: true\n }\n }\n },\n input: {\n number: {\n groupSeparator: ['\\u066C'],\n fractionSeparator: '\\u066B'\n }\n },\n sizeUnits: {\n defaultUnitSystem: 'SI',\n defaultPrecision: 2,\n unitSystems: {\n SI: {\n abbreviations: ['Б', 'КБ', 'МБ', 'ГБ', 'ТБ'],\n base: 10,\n power: 3\n },\n IEC: {\n abbreviations: ['Б', 'КиБ', 'МиБ', 'ГиБ', 'ТиБ'],\n base: 2,\n power: 10\n }\n }\n }\n};\n\nexport const ptBRFormattersData = {\n formatters: {\n number: {\n rounding: {\n separator: ' ',\n groupSeparator: ',',\n thousand: 'mil',\n million: 'mi',\n billion: 'bi',\n trillion: 'tri'\n }\n }\n },\n input: {\n number: {\n groupSeparator: ['.'],\n fractionSeparator: ','\n }\n },\n sizeUnits: {\n defaultUnitSystem: 'SI',\n defaultPrecision: 2,\n unitSystems: {\n SI: {\n abbreviations: ['Б', 'КБ', 'МБ', 'ГБ', 'ТБ'],\n base: 10,\n power: 3\n },\n IEC: {\n abbreviations: ['Б', 'КиБ', 'МиБ', 'ГиБ', 'ТиБ'],\n base: 2,\n power: 10\n }\n }\n }\n};\n\nexport const ruRUFormattersData = {\n formatters: {\n number: {\n rounding: {\n separator: ' ',\n groupSeparator: ',',\n thousand: 'К',\n million: 'М',\n billion: 'М',\n trillion: 'Т'\n }\n }\n },\n input: {\n number: {\n // nbsp is generated automatically and used by default in spec\n groupSeparator: [' ', ' '],\n fractionSeparator: ',',\n startFormattingFrom: 4\n }\n },\n sizeUnits: {\n defaultUnitSystem: 'SI',\n defaultPrecision: 2,\n unitSystems: {\n SI: {\n abbreviations: ['Б', 'КБ', 'МБ', 'ГБ', 'ТБ'],\n base: 10,\n power: 3\n },\n IEC: {\n abbreviations: ['Б', 'КиБ', 'МиБ', 'ГиБ', 'ТиБ'],\n base: 2,\n power: 10\n }\n }\n }\n};\n\nexport const zhCNFormattersData = {\n formatters: {\n number: {\n rounding: {\n separator: ' ',\n groupSeparator: '.',\n tenThousand: '万',\n oneHundredMillions: '亿',\n trillion: '兆'\n }\n }\n },\n input: {\n number: {\n groupSeparator: [','],\n fractionSeparator: '.'\n }\n },\n sizeUnits: {\n defaultUnitSystem: 'SI',\n defaultPrecision: 2,\n unitSystems: {\n SI: {\n abbreviations: ['Б', 'КБ', 'МБ', 'ГБ', 'ТБ'],\n base: 10,\n power: 3\n },\n IEC: {\n abbreviations: ['Б', 'КиБ', 'МиБ', 'ГиБ', 'ТиБ'],\n base: 2,\n power: 10\n }\n }\n }\n};\n\nexport const tkTMFormattersData = {\n formatters: {\n number: {\n rounding: {\n separator: ' ',\n groupSeparator: '',\n thousand: 'M',\n million: 'Mn',\n billion: 'Mr',\n trillion: 'Tn'\n }\n }\n },\n input: {\n number: {\n groupSeparator: [' '],\n fractionSeparator: ','\n }\n },\n sizeUnits: {\n defaultUnitSystem: 'SI',\n defaultPrecision: 2,\n unitSystems: {\n SI: {\n abbreviations: ['B', 'KB', 'MB', 'GB', 'TB'],\n base: 10,\n power: 3\n },\n IEC: {\n abbreviations: ['B', 'KiB', 'MiB', 'GiB', 'TiB'],\n base: 2,\n power: 10\n }\n }\n }\n};\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, inject, Injectable, InjectionToken, Optional, Provider } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { enUSLocaleData } from './en-US';\nimport { esLALocaleData } from './es-LA';\nimport { faIRLocaleData } from './fa-IR';\nimport {\n enUSFormattersData,\n esLAFormattersData,\n faIRFormattersData,\n ptBRFormattersData,\n ruRUFormattersData,\n tkTMFormattersData,\n zhCNFormattersData\n} from './formatters';\nimport { ptBRLocaleData } from './pt-BR';\nimport { ruRULocaleData } from './ru-RU';\nimport { tkTMLocaleData } from './tk-TM';\nimport { zhCNLocaleData } from './zh-CN';\n\nexport const KBQ_LOCALE_ID = new InjectionToken<string>('KbqLocaleId');\n\nexport const KBQ_DEFAULT_LOCALE_ID = 'ru-RU';\n\nexport function KBQ_DEFAULT_LOCALE_DATA_FACTORY() {\n return {\n items: [\n { id: 'en-US', name: 'English' },\n { id: 'zh-CN', name: '简体中文' },\n { id: 'es-LA', name: 'Español' },\n { id: 'pt-BR', name: 'Português' },\n { id: 'ru-RU', name: 'Русский' },\n { id: 'fa-IR', name: 'فارسی' },\n { id: 'tk-TM', name: 'Türkmen' }\n ],\n 'en-US': { ...enUSLocaleData, ...enUSFormattersData },\n 'zh-CN': { ...zhCNLocaleData, ...zhCNFormattersData },\n 'es-LA': { ...esLALocaleData, ...esLAFormattersData },\n 'pt-BR': { ...ptBRLocaleData, ...ptBRFormattersData },\n 'ru-RU': { ...ruRULocaleData, ...ruRUFormattersData },\n 'fa-IR': { ...faIRLocaleData, ...faIRFormattersData },\n 'tk-TM': { ...tkTMLocaleData, ...tkTMFormattersData }\n };\n}\nexport const KBQ_LOCALE_DATA = new InjectionToken<any>('KBQ_LOCALE_DATA', {\n providedIn: 'root',\n factory: KBQ_DEFAULT_LOCALE_DATA_FACTORY\n});\n\nexport const KBQ_LOCALE_SERVICE = new InjectionToken<KbqLocaleService>('KBQ_LOCALE_SERVICE');\n\n/**\n * Attribute name to be used to set the locale in the html element.\n *\n * @default 'lang'\n *\n * @docs-private\n */\nexport const KBQ_LOCALE_SERVICE_LANG_ATTR_NAME = new InjectionToken<string>('KBQ_LOCALE_SERVICE_LANG_ATTR_NAME', {\n factory: () => 'lang'\n});\n\n/**\n * Utility provider to configure the attribute name to be used to set the locale in the html element.\n *\n * @see KBQ_LOCALE_SERVICE_LANG_ATTR_NAME\n *\n * @docs-private\n */\nexport const kbqLocaleServiceLangAttrNameProvider = (attrName: string): Provider => ({\n provide: KBQ_LOCALE_SERVICE_LANG_ATTR_NAME,\n useValue: attrName\n});\n\n@Injectable({ providedIn: 'root' })\nexport class KbqLocaleService {\n readonly changes: BehaviorSubject<string>;\n readonly locales: any = {};\n\n private readonly document = inject(DOCUMENT);\n\n id: string;\n current;\n\n private readonly langAttrName = inject(KBQ_LOCALE_SERVICE_LANG_ATTR_NAME);\n\n constructor(@Optional() @Inject(KBQ_LOCALE_ID) id: string, @Optional() @Inject(KBQ_LOCALE_DATA) localeData) {\n this.locales = localeData;\n\n this.id = id || KBQ_DEFAULT_LOCALE_ID;\n this.current = this.locales[this.id];\n\n this.changes = new BehaviorSubject(this.id);\n }\n\n setLocale(id: string) {\n this.id = id;\n this.current = this.locales[this.id];\n\n this.document.documentElement.setAttribute(this.langAttrName, this.id);\n\n this.changes.next(this.id);\n }\n\n addLocale(id: string, localeData) {\n this.id = id;\n this.changes.next(this.id);\n\n this.locales[this.id] = localeData;\n }\n\n getParams(componentName: string) {\n return this.current[componentName];\n }\n}\n\n/**\n * Function that returns a string representation of a number without localized separators\n */\nexport function normalizeNumber(\n value: string | null | undefined,\n customConfig: { groupSeparator: string[]; fractionSeparator: string }\n): string {\n if (value === null || value === undefined) return '';\n\n const { groupSeparator, fractionSeparator } = customConfig;\n const groupSeparatorRegexp = new RegExp(`[${groupSeparator.join('')}]`, 'g');\n const fractionSeparatorRegexp = new RegExp(`\\\\${fractionSeparator}`, 'g');\n\n return value.toString().replace(groupSeparatorRegexp, '').replace(fractionSeparatorRegexp, '.');\n}\n\n/**\n * Function that parse string and return a number. The string can be in any locale.\n */\nexport function checkAndNormalizeLocalizedNumber(num: string | null | undefined): number | null {\n if (num === null || num === undefined) return null;\n\n /* if some locale input config satisfies pasted number, try to normalise with selected locale config */\n let numberOutput: number | null = null;\n\n const locales = KBQ_DEFAULT_LOCALE_DATA_FACTORY();\n\n for (const config of locales.items.map(({ id }) => locales[id].input.number)) {\n const normalized = +normalizeNumber(num, config);\n\n if (!Number.isNaN(normalized)) {\n numberOutput = normalized;\n break;\n }\n }\n\n return numberOutput;\n}\n","import { NgModule } from '@angular/core';\nimport { KBQ_LOCALE_SERVICE, KbqLocaleService } from './locale-service';\n\n@NgModule({\n providers: [\n { provide: KBQ_LOCALE_SERVICE, useClass: KbqLocaleService }]\n})\nexport class KbqLocaleServiceModule {}\n","import { Inject, Injectable, InjectionToken, Optional, Pipe, PipeTransform } from '@angular/core';\nimport { KBQ_DEFAULT_LOCALE_ID, KBQ_LOCALE_ID, KBQ_LOCALE_SERVICE, KbqLocaleService } from '../../locales';\n\nexport const KBQ_NUMBER_FORMATTER_OPTIONS = new InjectionToken<string>('KbqNumberFormatterOptions');\n\nexport const KBQ_NUMBER_FORMATTER_DEFAULT_OPTIONS: ParsedDigitsInfo = {\n useGrouping: true,\n minimumIntegerDigits: 1,\n minimumFractionDigits: 0,\n maximumFractionDigits: 3\n};\n\nfunction isEmpty(value: any): boolean {\n return value == null || value === '' || value !== value;\n}\n\nfunction strToNumber(value: number | string): number {\n if (typeof value === 'string' && !isNaN(Number(value) - parseFloat(value))) {\n return Number(value);\n }\n\n if (typeof value !== 'number') {\n throw new Error(`${value} is not a number`);\n }\n\n return value;\n}\n\nexport const NUMBER_FORMAT_REGEXP = /^(\\d+)?\\.((\\d+)(-(\\d+))?(-(true|false))?)?$/;\n\nconst minIntGroupPosition = 1;\nconst minFractionGroupPosition = 3;\nconst maxFractionGroupPosition = 5;\nconst useGroupingPosition = 7;\n\ninterface NumberFormatOptions {\n useGrouping: boolean;\n\n minimumIntegerDigits: number;\n minimumFractionDigits: number;\n maximumFractionDigits: number;\n minimumSignificantDigits: number;\n maximumSignificantDigits: number;\n\n localeMatcher?: string;\n style?: string;\n\n currency?: string;\n currencyDisplay?: string;\n}\n\ninterface RoundDecimalOptions {\n separator: string;\n groupSeparator: string;\n thousands?: string;\n tenThousand?: string;\n million?: string;\n oneHundredMillions?: string;\n billion?: string;\n trillion: string;\n rtl?: boolean;\n}\n\nconst ROUNDING_UNITS = {\n thousand: 1e3,\n tenThousand: 10 * 1e3,\n million: 1e6,\n oneHundredMillions: 100 * 1e6,\n billion: 1e9,\n trillion: 1e12\n};\n\nconst intervalsConfig = {\n supportedLanguages: ['ru-RU', 'en-US', 'es-LA', 'pt-BR', 'fa-IR'],\n intervals: [\n { startRange: 1, endRange: ROUNDING_UNITS.thousand },\n { startRange: ROUNDING_UNITS.thousand, endRange: ROUNDING_UNITS.tenThousand, precision: 1 },\n { startRange: ROUNDING_UNITS.tenThousand, endRange: ROUNDING_UNITS.million },\n { startRange: ROUNDING_UNITS.million, endRange: ROUNDING_UNITS.million * 10, precision: 1 },\n { startRange: ROUNDING_UNITS.million * 10, endRange: ROUNDING_UNITS.billion }\n ]\n};\n\nclass ParsedDigitsInfo {\n useGrouping: boolean;\n minimumIntegerDigits: number;\n minimumFractionDigits: number;\n maximumFractionDigits: number;\n}\n\nconst defaultValueForGroupingInRULocale: number = 10000;\n\nfunction parseDigitsInfo(digitsInfo: string): ParsedDigitsInfo {\n const parts = digitsInfo.match(NUMBER_FORMAT_REGEXP);\n\n if (parts === null) {\n throw new Error(`${digitsInfo} is not a valid digit info`);\n }\n\n const minIntPart = parts[minIntGroupPosition];\n const minFractionPart = parts[minFractionGroupPosition];\n const maxFractionPart = parts[maxFractionGroupPosition];\n const useGroupingPart = parts[useGroupingPosition];\n\n const result = new ParsedDigitsInfo();\n\n if (minIntPart != null) {\n result.minimumIntegerDigits = parseInt(minIntPart);\n }\n\n if (minFractionPart != null) {\n result.minimumFractionDigits = parseInt(minFractionPart);\n }\n\n if (maxFractionPart != null) {\n result.maximumFractionDigits = parseInt(maxFractionPart);\n } else if (minFractionPart != null && result.minimumFractionDigits > result.maximumFractionDigits) {\n result.maximumFractionDigits = result.minimumFractionDigits;\n }\n\n if (useGroupingPart != null) {\n result.useGrouping = useGroupingPart === 'true';\n }\n\n return result;\n}\n\n@Injectable({ providedIn: 'root' })\n@Pipe({ name: 'kbqNumber', pure: false })\nexport class KbqDecimalPipe implements PipeTransform {\n constructor(\n @Optional() @Inject(KBQ_LOCALE_ID) private id: string,\n @Optional() @Inject(KBQ_LOCALE_SERVICE) private localeService: KbqLocaleService,\n @Optional() @Inject(KBQ_NUMBER_FORMATTER_OPTIONS) private readonly options: ParsedDigitsInfo\n ) {\n this.options = this.options || KBQ_NUMBER_FORMATTER_DEFAULT_OPTIONS;\n\n this.localeService?.changes.subscribe((newId: string) => (this.id = newId));\n }\n\n /**\n * @param value The number to be formatted.\n * @param digitsInfo Decimal representation options, specified by a string\n * in the following format:<br>\n * <code>{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}</code>.\n * - `minIntegerDigits`: The minimum number of integer digits before the decimal point.\n * Default is `1`.\n * - `minFractionDigits`: The minimum number of digits after the decimal point.\n * Default is `0`.\n * - `maxFractionDigits`: The maximum number of digits after the decimal point.\n * Default is `3`.\n * @param locale A locale code for the locale format rules to use.\n * When not supplied, uses the value of `KBQ_LOCALE_ID`, which is `ru` by default.\n */\n transform(value: any, digitsInfo?: string, locale?: string): string | null {\n if (isEmpty(value)) {\n return null;\n }\n\n const currentLocale = locale || this.id || KBQ_DEFAULT_LOCALE_ID;\n\n let parsedDigitsInfo;\n\n if (digitsInfo) {\n parsedDigitsInfo = parseDigitsInfo(digitsInfo);\n }\n\n const options: NumberFormatOptions = {\n ...this.options,\n ...parsedDigitsInfo\n };\n\n if (this.isSpecialFormatForRULocale(currentLocale, value, parsedDigitsInfo?.useGrouping)) {\n options.useGrouping = false;\n }\n\n try {\n const num = strToNumber(value);\n\n /* Guideline requires for group separator to be `space`, as in 'ru-RU' locale.\n * But by default in es-LA locale is used `comma`.\n * To reduce data manipulation, 'ru-RU' locale is used. */\n if (currentLocale === 'es-LA') {\n return Intl.NumberFormat.call(this, 'ru-RU', options).format(num);\n }\n\n return Intl.NumberFormat.call(this, currentLocale, options).format(num);\n } catch (error: any) {\n throw Error(`InvalidPipeArgument: KbqDecimalPipe for pipe '${JSON.stringify(error.message)}'`);\n }\n }\n\n isSpecialFormatForRULocale(locale: string, value: number, grouping?: boolean): boolean {\n return ['ru', 'ru-RU'].includes(locale) && grouping === undefined && value < defaultValueForGroupingInRULocale;\n }\n}\n\n@Injectable({ providedIn: 'root' })\n@Pipe({ name: 'kbqTableNumber', pure: false })\nexport class KbqTableNumberPipe implements PipeTransform {\n constructor(\n @Optional() @Inject(KBQ_LOCALE_ID) private id: string,\n @Optional() @Inject(KBQ_LOCALE_SERVICE) private localeService: KbqLocaleService,\n @Optional() @Inject(KBQ_NUMBER_FORMATTER_OPTIONS) private readonly options: ParsedDigitsInfo\n ) {\n this.options = this.options || KBQ_NUMBER_FORMATTER_DEFAULT_OPTIONS;\n\n this.localeService?.changes.subscribe((newId: string) => (this.id = newId));\n }\n\n /**\n * @param value The number to be formatted.\n * @param digitsInfo Decimal representation options, specified by a string\n * in the following format:<br>\n * <code>{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}</code>.\n * - `minIntegerDigits`: The minimum number of integer digits before the decimal point.\n * Default is `1`.\n * - `minFractionDigits`: The minimum number of digits after the decimal point.\n * Default is `0`.\n * - `maxFractionDigits`: The maximum number of digits after the decimal point.\n * Default is `3`.\n * @param locale A locale code for the locale format rules to use.\n * When not supplied, uses the value of `KBQ_LOCALE_ID`, which is `ru` by default.\n */\n transform(value: any, digitsInfo?: string, locale?: string): string | null {\n if (isEmpty(value)) {\n return null;\n }\n\n const currentLocale = locale || this.id || KBQ_DEFAULT_LOCALE_ID;\n\n let parsedDigitsInfo;\n\n if (digitsInfo) {\n parsedDigitsInfo = parseDigitsInfo(digitsInfo);\n }\n\n const options: NumberFormatOptions = {\n ...this.options,\n ...parsedDigitsInfo\n };\n\n try {\n const num = strToNumber(value);\n\n /* Guideline requires for group separator to be `space`, as in 'ru-RU' locale.\n * But by default in es-LA locale is used `comma`.\n * To reduce data manipulation, 'ru-RU' locale is used. */\n if (currentLocale === 'es-LA') {\n return Intl.NumberFormat.call(this, 'ru-RU', options).format(num);\n }\n\n return Intl.NumberFormat.call(this, currentLocale, options).format(num);\n } catch (error: any) {\n throw Error(`InvalidPipeArgument: KbqTableNumberPipe for pipe '${JSON.stringify(error.message)}'`);\n }\n }\n}\n\nexport function isWithin(startRange: number, endRange: number, valueToCheck: number): boolean {\n return startRange <= valueToCheck && valueToCheck < endRange;\n}\n\n@Injectable({ providedIn: 'root' })\n@Pipe({ name: 'kbqRoundNumber', pure: false })\nexport class KbqRoundDecimalPipe implements PipeTransform {\n roundingOptions: RoundDecimalOptions;\n\n constructor(\n @Optional() @Inject(KBQ_LOCALE_ID) private id: string,\n @Optional() @Inject(KBQ_LOCALE_SERVICE) private localeService: KbqLocaleService\n ) {\n this.localeService?.changes.subscribe((newId: string) => (this.id = newId));\n }\n\n transform(value: any, locale?: string): any {\n if (isEmpty(value)) {\n return null;\n }\n\n const currentLocale: string = locale || this.id || KBQ_DEFAULT_LOCALE_ID;\n this.roundingOptions = this.localeService.locales[currentLocale].formatters.number.rounding;\n\n try {\n const num = strToNumber(value);\n const unit = this.calculateUnit(num);\n if (!unit) {\n return Intl.NumberFormat.call(this, currentLocale, { useGrouping: false }).format(num);\n }\n\n let parts: { num?: number; fraction?: number } = {};\n\n if (intervalsConfig.supportedLanguages.includes(currentLocale)) {\n intervalsConfig.intervals.find(({ startRange, endRange, precision }) => {\n const within = isWithin(startRange, endRange, num);\n if (within) {\n if (precision) {\n parts =\n unit === 'thousand'\n ? this.calculatePartsForThousands(num)\n : {\n num: Math.trunc(num / ROUNDING_UNITS[unit]),\n fraction: this.calculateDecimal(num, ROUNDING_UNITS[unit])\n };\n } else {\n parts = { num: Math.round(num / ROUNDING_UNITS[unit]) };\n }\n }\n\n return within;\n });\n }\n\n parts = parts.num\n ? parts\n : {\n num: Math.trunc(num / ROUNDING_UNITS[unit]),\n fraction: this.calculateDecimal(num, ROUNDING_UNITS[unit])\n };\n Object.keys(parts).forEach((key) => {\n parts[key] = Intl.NumberFormat.call(this, currentLocale, { useGrouping: false }).format(parts[key]);\n });\n\n const calculatedValue = parts.fraction\n ? `${parts.num}${this.roundingOptions.groupSeparator}${parts.fraction}`\n : `${parts.num}`;\n\n return `${calculatedValue}${this.roundingOptions.separator}${this.roundingOptions[unit]}`;\n } catch (error: any) {\n throw Error(`InvalidPipeArgument: KbqRoundDecimalPipe for pipe '${JSON.stringify(error.message)}'`);\n }\n }\n\n private calculateDecimal(num: number, divider: number) {\n return Math.round(((num / divider) % 1) * 10);\n }\n\n /**\n * 2 * 1000 is a number in the interval of [1500...2500)\n *\n * 2,0 * 1000 is a number in the interval of [1950...2050)\n */\n private calculatePartsForThousands(num: number) {\n const dividedValue = num / ROUNDING_UNITS.thousand;\n const div = Math.round(dividedValue) * ROUNDING_UNITS.thousand;\n const fifty = 50;\n\n return isWithin(div - fifty, div + fifty, num)\n ? { num: Math.round(dividedValue), fraction: 0 }\n : { num: Math.round(dividedValue) };\n }\n\n private calculateUnit(num: number): string | undefined {\n let currentUnit: string | undefined;\n const localizedOptions = Object.keys(this.roundingOptions);\n\n Object.keys(ROUNDING_UNITS).every((key) => {\n if (!localizedOptions.includes(key)) {\n return true;\n }\n if (num / ROUNDING_UNITS[key] >= 1) {\n currentUnit = key;\n\n return true;\n }\n\n return false;\n });\n\n return currentUnit;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DateAdapter, KBQ_DATE_LOCALE } from '../datetime';\nimport { DateFormatter } from './date/formatter';\nimport {\n AbsoluteDateFormatterImpurePipe,\n AbsoluteDateFormatterPipe,\n AbsoluteDateShortFormatterImpurePipe,\n AbsoluteDateShortFormatterPipe,\n AbsoluteDateTimeFormatterImpurePipe,\n AbsoluteDateTimeFormatterPipe,\n AbsoluteShortDateTimeFormatterImpurePipe,\n AbsoluteShortDateTimeFormatterPipe,\n RangeDateFormatterImpurePipe,\n RangeDateFormatterPipe,\n RangeDateTimeFormatterImpurePipe,\n RangeDateTimeFormatterPipe,\n RangeMiddleDateTimeFormatterImpurePipe,\n RangeMiddleDateTimeFormatterPipe,\n RangeShortDateFormatterImpurePipe,\n RangeShortDateFormatterPipe,\n RangeShortDateTimeFormatterImpurePipe,\n RangeShortDateTimeFormatterPipe,\n RelativeDateFormatterImpurePipe,\n RelativeDateFormatterPipe,\n RelativeDateTimeFormatterImpurePipe,\n RelativeDateTimeFormatterPipe,\n RelativeShortDateFormatterImpurePipe,\n RelativeShortDateFormatterPipe,\n RelativeShortDateTimeFormatterImpurePipe,\n RelativeShortDateTimeFormatterPipe\n} from './date/formatter.pipe';\nimport { KbqDecimalPipe, KbqRoundDecimalPipe, KbqTableNumberPipe } from './number/formatter';\n\n@NgModule({\n imports: [\n AbsoluteDateFormatterPipe,\n AbsoluteDateTimeFormatterPipe,\n AbsoluteDateShortFormatterPipe,\n AbsoluteShortDateTimeFormatterPipe,\n RelativeDateFormatterPipe,\n RelativeDateTimeFormatterPipe,\n RelativeShortDateFormatterPipe,\n RelativeShortDateTimeFormatterPipe,\n RangeDateFormatterPipe,\n RangeShortDateFormatterPipe,\n RangeDateTimeFormatterPipe,\n RangeShortDateTimeFormatterPipe,\n RangeMiddleDateTimeFormatterPipe,\n AbsoluteDateFormatterImpurePipe,\n AbsoluteDateTimeFormatterImpurePipe,\n AbsoluteDateShortFormatterImpurePipe,\n AbsoluteShortDateTimeFormatterImpurePipe,\n RelativeDateFormatterImpurePipe,\n RelativeDateTimeFormatterImpurePipe,\n RelativeShortDateFormatterImpurePipe,\n RelativeShortDateTimeFormatterImpurePipe,\n RangeDateFormatterImpurePipe,\n RangeShortDateFormatterImpurePipe,\n RangeDateTimeFormatterImpurePipe,\n RangeShortDateTimeFormatterImpurePipe,\n RangeMiddleDateTimeFormatterImpurePipe\n ],\n declarations: [\n KbqDecimalPipe,\n KbqRoundDecimalPipe,\n KbqTableNumberPipe\n ],\n exports: [\n KbqDecimalPipe,\n KbqRoundDecimalPipe,\n KbqTableNumberPipe,\n AbsoluteDateFormatterPipe,\n AbsoluteDateTimeFormatterPipe,\n AbsoluteDateShortFormatterPipe,\n AbsoluteShortDateTimeFormatterPipe,\n RelativeDateFormatterPipe,\n RelativeDateTimeFormatterPipe,\n RelativeShortDateFormatterPipe,\n RelativeShortDateTimeFormatterPipe,\n RangeDateFormatterPipe,\n RangeShortDateFormatterPipe,\n RangeDateTimeFormatterPipe,\n RangeShortDateTimeFormatterPipe,\n RangeMiddleDateTimeFormatterPipe,\n AbsoluteDateFormatterImpurePipe,\n AbsoluteDateTimeFormatterImpurePipe,\n AbsoluteDateShortFormatterImpurePipe,\n AbsoluteShortDateTimeFormatterImpurePipe,\n RelativeDateFormatterImpurePipe,\n RelativeDateTimeFormatterImpurePipe,\n RelativeShortDateFormatterImpurePipe,\n RelativeShortDateTimeFormatterImpurePipe,\n RangeDateFormatterImpurePipe,\n RangeShortDateFormatterImpurePipe,\n RangeDateTimeFormatterImpurePipe,\n RangeShortDateTimeFormatterImpurePipe,\n RangeMiddleDateTimeFormatterImpurePipe\n ],\n providers: [{ provide: DateFormatter, deps: [DateAdapter, KBQ_DATE_LOCALE] }]\n})\nexport class KbqFormattersModule {}\n\nexport * from './date/formatter';\nexport * from './date/formatter.pipe';\nexport * from './number/formatter';\n","import { AfterContentInit, ContentChildren, Directive, ElementRef, QueryList } from '@angular/core';\n\n@Directive({\n selector: '.kbq-form__row, .kbq-form__fieldset, .kbq-form__legend',\n exportAs: 'kbqFormElement',\n host: {\n '[class.kbq-form-row_margin]': 'margin'\n }\n})\nexport class KbqFormElement implements AfterContentInit {\n margin = false;\n\n isRow = false;\n isFieldSet = false;\n hasLegend = false;\n isHorizontal = false;\n\n @ContentChildren(KbqFormElement) elements: QueryList<KbqFormElement>;\n\n constructor(private readonly element: ElementRef<HTMLElement>) {}\n\n ngAfterContentInit(): void {\n const classList = this.element.nativeElement.classList;\n\n this.isRow = classList.contains('kbq-form__row');\n this.isHorizontal = classList.contains('kbq-horizontal');\n\n this.isFieldSet = classList.contains('kbq-form__fieldset');\n\n if (this.isFieldSet && this.element.nativeElement.firstElementChild) {\n this.hasLegend = this.element.nativeElement.firstElementChild.classList.contains('kbq-form__legend');\n }\n }\n}\n\n@Directive({\n selector: '.kbq-form-vertical, .kbq-form-horizontal',\n exportAs: 'kbqForm',\n host: {\n class: 'kbq-form'\n }\n})\nexport class KbqForm implements AfterContentInit {\n @ContentChildren(KbqFormElement) elements: QueryList<KbqFormElement>;\n\n ngAfterContentInit(): void {\n this.handleElements(this.elements);\n }\n\n handleElements(elements: QueryList<KbqFormElement>): void {\n elements.forEach((element, index) => {\n const nextElement: KbqFormElement | undefined = elements.get(index + 1);\n\n if (element.isFieldSet && !element.isHorizontal) {\n this.handleElements(element.elements);\n }\n\n element.margin = !!(nextElement && !nextElement.hasLegend);\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqForm, KbqFormElement } from './forms.directive';\n\n@NgModule({\n exports: [\n KbqForm,\n KbqFormElement\n ],\n declarations: [\n KbqForm,\n KbqFormElement\n ]\n})\nexport class KbqFormsModule {}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\n/** Provides a set of validators for password form controls. */\nexport class PasswordValidators {\n /**\n * Validator that requires the control's value length to be at least `min` characters.\n *\n * `min` - number of characters.\n *\n * ## Usage:\n *\n * ```typescript\n * const control = new FormControl('password', PasswordValidators.minLength(10));\n * console.log(control.errors); // {minLength: {min: 10, actual: 8}}\n * ```\n */\n static minLength(min: number): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n if (typeof value !== 'string') {\n return null;\n }\n return value.length >= min ? null : { minLength: { min, actual: value.length } };\n };\n }\n\n /**\n * Validator that requires the control's value length to be at most `max` characters.\n *\n * `max` - number of characters.\n *\n * ## Usage:\n * ```typescript\n * const control = new FormControl('password', PasswordValidators.maxLength(6));\n * console.log(control.errors); // {maxLength: {max: 6, actual: 8}}\n * ```\n */\n static maxLength(max: number): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n if (typeof value !== 'string') {\n return null;\n }\n return value.length <= max ? null : { maxLength: { max, actual: value.length } };\n };\n }\n\n /**\n * Validator that requires the control's value to be at least `min` uppercase characters.\n *\n * `min` - number of uppercase characters.\n *\n * ### Usage:\n *\n * ```typescript\n * const control = new FormControl('Password', PasswordValidators.minUppercase(2));\n * console.log(control.errors); // {minUppercase: {min: 2, actual: 1}}\n * ```\n */\n static minUppercase(min: number): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const matches = (value.match(/[A-Z]/g) || []).length;\n return matches >= min ? null : { minUppercase: { min, actual: matches } };\n };\n }\n\n /**\n * Validator that requires the control's value to be at least `min` lowercase characters.\n *\n * `min` - number of lowercase characters.\n *\n * ### Usage:\n *\n * ```typescript\n * const control = new FormControl('PASSWORD', PasswordValidators.minLowercase());\n * console.log(control.errors); // {minLowercase: {min: 1, actual: 0}}\n * ```\n */\n static minLowercase(min: number): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const matches = (value.match(/[a-z]/g) || []).length;\n return matches >= min ? null : { minLowercase: { min, actual: matches } };\n };\n }\n\n /**\n * Validator that requires the control's value to be at least `min` number characters.\n *\n * `min` - number of number characters.\n *\n * ### Usage:\n *\n * ```typescript\n * const control = new FormControl('passw0rd', PasswordValidators.minNumber(2));\n * console.log(control.errors); // {minNumber: {min: 2, actual: 1}}\n * ```\n */\n static minNumber(min: number): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const matches = (value.match(/[\\d]/g) || []).length;\n return matches >= min ? null : { minNumber: { min, actual: matches } };\n };\n }\n\n /**\n * Validator that requires the control's value to be at least `min` special characters.\n *\n * `min` - number of special characters.\n *\n * ### Special characters:\n * ```js\n * ['!','@','#','$','%','^','&','*']\n * ```\n *\n * ### Usage:\n *\n * ```typescript\n * const control = new FormControl('pa$sword', PasswordValidators.minSpecial(2));\n * console.log(control.errors); // {minSpecial: {min: 2, actual: 1}}\n * ```\n */\n static minSpecial(min: number): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const matches = (value.match(/[!@#$%^&*]/g) || []).length;\n return matches >= min ? null : { minSpecial: { min, actual: matches } };\n };\n }\n}\n\n/** Provides a set of validators for file-related form controls. */\nexport class FileValidators {\n /**\n * Validator that checks if the file size is less than or equal to the provided `maxSize`.\n *\n * @param maxSize - The maximum allowed file size in bytes.\n *\n * @returns A ValidatorFn function that checks the file size.\n *\n * ## Usage:\n *\n * ```typescript\n * const control = new FormControl(null, [FileValidators.maxFileSize(1024 * 1024)]); // 1MB\n * control.setValue(FILE_LESS_OR_EQUAL_THAN_1MB);\n * console.log(control.errors); // null\n * control.setValue(FILE_MORE_THAN_1MB);\n * console.log(control.errors); // {maxFileSize: { max: 1048576, actual: FILE_MORE_THAN_1MB.size }}\n * ```\n */\n static maxFileSize(maxSize: number): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n if (!value) return null;\n\n const size = value instanceof File ? value.size : value.file.size;\n\n if (size > maxSize) {\n return { maxFileSize: { max: maxSize, actual: size } };\n }\n\n return null;\n };\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nexport function escapeRegExp(value: string) {\n if (value) {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n }\n\n return value;\n}\n\n@Pipe({ name: 'mcHighlight' })\nexport class KbqHighlightPipe implements PipeTransform {\n transform(value: any, args: any): any {\n if (!args || typeof args !== 'string') {\n return value;\n }\n\n return value.replace(new RegExp(`(${escapeRegExp(args)})`, 'gi'), '<mark class=\"kbq-highlight\">$1</mark>');\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { KbqHighlightPipe } from './highlight.pipe';\n\n@NgModule({\n imports: [CommonModule],\n exports: [KbqHighlightPipe],\n declarations: [KbqHighlightPipe]\n})\nexport class KbqHighlightModule {}\n\nexport * from './highlight.pipe';\n","import { Directive, ElementRef, NgModule, QueryList } from '@angular/core';\n\n/**\n * Shared directive to count lines inside a text area, such as a list item.\n * Line elements can be extracted with a @ContentChildren(KbqLine) query, then\n * counted by checking the query list's length.\n */\n@Directive({\n selector: '[kbq-line], [mcLine]',\n host: { class: 'kbq-line' }\n})\nexport class KbqLine {}\n\n/**\n * Helper that takes a query list of lines and sets the correct class on the host.\n * @docs-private\n */\nexport class KbqLineSetter {\n constructor(\n private _lines: QueryList<KbqLine>,\n private _element: ElementRef\n ) {\n this.setLineClass(this._lines.length);\n\n this._lines.changes.subscribe(() => {\n this.setLineClass(this._lines.length);\n });\n }\n\n private setLineClass(count: number): void {\n const minLineClassNumber = 2;\n const maxLineClassNumber = 3;\n this.resetClasses();\n if (count === minLineClassNumber || count === maxLineClassNumber) {\n this.setClass(`kbq-${count}-line`, true);\n } else if (count > maxLineClassNumber) {\n this.setClass(`kbq-multi-line`, true);\n }\n }\n\n private resetClasses(): void {\n this.setClass('kbq-2-line', false);\n this.setClass('kbq-3-line', false);\n this.setClass('kbq-multi-line', false);\n }\n\n private setClass(className: string, isAdd: boolean): void {\n if (isAdd) {\n this._element.nativeElement.classList.add(className);\n } else {\n this._element.nativeElement.classList.remove(className);\n }\n }\n}\n\n@NgModule({\n imports: [],\n exports: [KbqLine],\n declarations: [KbqLine]\n})\nexport class KbqLineModule {}\n","import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n DestroyRef,\n ElementRef,\n EventEmitter,\n inject,\n Inject,\n InjectionToken,\n OnDestroy,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ENTER, SPACE, TAB } from '@koobiq/cdk/keycodes';\nimport { CanDisableCtor, HasTabIndexCtor, mixinDisabled, mixinTabIndex } from '../common-behaviors';\n\nexport interface KbqOptionActionParent {\n dropdownTrigger: {\n opened: boolean;\n restoreFocus: boolean;\n dropdownClosed: EventEmitter<void>;\n lastDestroyReason: void | 'click' | 'keydown' | 'tab';\n openedBy: Exclude<FocusOrigin, 'program' | null> | undefined;\n toggle(): void;\n };\n tooltipTrigger: {\n disabled: boolean;\n };\n focus(): void;\n}\n\nexport const KBQ_OPTION_ACTION_PARENT = new InjectionToken<KbqOptionActionParent>('KBQ_OPTION_ACTION_PARENT');\n\n/** @docs-private */\nexport class KbqOptionActionBase {}\n\n/** @docs-private */\nexport const KbqOptionActionMixinBase: HasTabIndexCtor & CanDisableCtor & typeof KbqOptionActionBase = mixinTabIndex(\n mixinDisabled(KbqOptionActionBase)\n);\n\n@Component({\n selector: 'kbq-option-action',\n exportAs: 'kbqOptionAction',\n template: `\n @if (!!customIcon) {\n <ng-content select=\"[kbq-icon]\" />\n } @else {\n <i class=\"kbq kbq-icon kbq-ellipsis-vertical_16\"></i>\n }\n `,\n styleUrls: ['./action.scss'],\n host: {\n class: 'kbq-option-action',\n '[class.kbq-expanded]': 'false',\n '[class.kbq-disabled]': 'disabled',\n\n '[attr.disabled]': 'disabled || null',\n '[attr.tabIndex]': '-1',\n\n '(focus)': 'onFocus($event)',\n '(blur)': 'onBlur()',\n '(click)': 'onClick($event)',\n '(keydown)': 'onKeyDown($event)'\n },\n inputs: ['disabled'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqOptionActionComponent extends KbqOptionActionMixinBase implements AfterViewInit, OnDestroy {\n @ContentChild('customIcon') customIcon: ElementRef;\n\n hasFocus: boolean = false;\n\n get active(): boolean {\n return this.hasFocus || !!this.option.dropdownTrigger?.opened;\n }\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private elementRef: ElementRef,\n private focusMonitor: FocusMonitor,\n @Inject(KBQ_OPTION_ACTION_PARENT) private option: KbqOptionActionParent\n ) {\n super();\n }\n\n ngAfterViewInit(): void {\n this.focusMonitor.monitor(this.elementRef.nativeElement);\n\n if (!this.option.dropdownTrigger) return;\n\n this.option.dropdownTrigger.restoreFocus = false;\n\n this.option.dropdownTrigger.dropdownClosed.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.preventShowingTooltip();\n\n const destroyReason: FocusOrigin =\n this.option.dropdownTrigger.lastDestroyReason === 'keydown' ? 'keyboard' : 'program';\n\n this.focus(destroyReason);\n });\n }\n\n ngOnDestroy(): void {\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n\n focus(origin?: FocusOrigin, options?: FocusOptions) {\n if (this.focusMonitor && origin) {\n this.focusMonitor.focusVia(this.elementRef.nativeElement, origin, options);\n } else {\n this.elementRef.nativeElement.focus();\n }\n\n this.hasFocus = true;\n }\n\n onFocus($event) {\n $event.stopPropagation();\n\n this.hasFocus = true;\n }\n\n onBlur() {\n this.hasFocus = false;\n }\n\n onClick($event) {\n $event.stopPropagation();\n }\n\n onKeyDown($event) {\n if ([SPACE, ENTER].includes($event.keyCode) && this.option.dropdownTrigger) {\n this.option.dropdownTrigger.openedBy = 'keyboard';\n this.option.dropdownTrigger.toggle();\n } else if ($event.shiftKey && $event.keyCode === TAB) {\n this.hasFocus = false;\n\n this.option.focus();\n } else if ($event.keyCode === TAB) {\n return;\n }\n\n $event.preventDefault();\n $event.stopPropagation();\n }\n\n private preventShowingTooltip() {\n if (!this.option.tooltipTrigger) {\n return;\n }\n\n this.option.tooltipTrigger.disabled = true;\n\n setTimeout(() => (this.option.tooltipTrigger.disabled = false));\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { CanDisable, CanDisableCtor, mixinDisabled } from '../common-behaviors';\n\n/** @docs-private */\nexport class KbqOptgroupBase {}\n\nexport const KbqOptgroupMixinBase: CanDisableCtor & typeof KbqOptgroupBase = mixinDisabled(KbqOptgroupBase);\n\nlet uniqueOptgroupIdCounter = 0;\n\n/**\n * Component that is used to group instances of `kbq-option`.\n * When options aren't provided as `ng-content`, used as a Group Header with styling.\n */\n@Component({\n selector: 'kbq-optgroup',\n exportAs: 'kbqOptgroup',\n templateUrl: 'optgroup.html',\n styleUrls: ['./optgroup.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['disabled'],\n host: {\n class: 'kbq-optgroup',\n '[class.kbq-disabled]': 'disabled'\n }\n})\nexport class KbqOptgroup extends KbqOptgroupMixinBase implements CanDisable {\n @Input() label: string;\n\n /** Unique id for the underlying label. */\n labelId: string = `kbq-optgroup-label-${uniqueOptgroupIdCounter++}`;\n}\n","<label class=\"kbq-optgroup-label\" [id]=\"labelId\">\n {{ label }}\n</label>\n<ng-content select=\"kbq-option, kbq-list-option, kbq-timezone-option, ng-container\" />\n","import { ElementRef, InjectionToken } from '@angular/core';\n\nexport interface KbqTitleTextRef {\n textElement?: ElementRef;\n parentTextElement?: ElementRef;\n}\n\nexport const KBQ_TITLE_TEXT_REF = new InjectionToken<KbqTitleTextRef>('KbqTitleTextRef');\n","import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewEncapsulation } from '@angular/core';\nimport {\n CanColor,\n CanColorCtor,\n CanDisable,\n CanDisableCtor,\n KbqComponentColors,\n mixinColor,\n mixinDisabled\n} from '../../common-behaviors';\n\nexport type KbqPseudoCheckboxState = 'unchecked' | 'checked' | 'indeterminate';\n\n// Boilerplate for applying mixins to KbqPseudoCheckbox.\n/** @docs-private */\nexport class KbqPseudoCheckboxBase {\n constructor(public elementRef: ElementRef) {}\n}\n\n/** @docs-private */\nexport const KbqPseudoCheckboxMixinBase: CanColorCtor & CanDisableCtor & typeof KbqPseudoCheckboxBase = mixinColor(\n mixinDisabled(KbqPseudoCheckboxBase),\n KbqComponentColors.Theme\n);\n\n/**\n * Component that shows a simplified checkbox without including any kind of \"real\" checkbox.\n * Meant to be used when the checkbox is purely decorative and a large number of them will be\n * included, such as for the options in a multi-select. Uses no SVGs or complex animations.\n * Note that theming is meant to be handled by the parent element, e.g.\n * `kbq-primary .kbq-pseudo-checkbox`.\n *\n * Note that this component will be completely invisible to screen-reader users. This is *not*\n * interchangeable with `<kbq-checkbox>` and should *not* be used if the user would directly\n * interact with the checkbox. The pseudo-checkbox should only be used as an implementation detail\n * of more complex components that appropriately handle selected / checked state.\n * @docs-private\n */\n@Component({\n selector: 'kbq-pseudo-checkbox',\n templateUrl: 'pseudo-checkbox.partial.html',\n styleUrls: ['pseudo-checkbox.scss', 'pseudo-checkbox-tokens.scss'],\n host: {\n class: 'kbq-pseudo-checkbox',\n '[class.kbq-checkbox_big]': 'big',\n '[class.kbq-indeterminate]': 'state === \"indeterminate\"',\n '[class.kbq-checked]': 'state === \"checked\"',\n '[class.kbq-disabled]': 'disabled'\n },\n preserveWhitespaces: false,\n inputs: ['color'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class KbqPseudoCheckbox extends KbqPseudoCheckboxMixinBase implements CanColor, CanDisable {\n @Input() big: boolean = false;\n\n @Input() state: KbqPseudoCheckboxState = 'unchecked';\n\n @Input() disabled: boolean = false;\n\n constructor(elementRef: ElementRef) {\n super(elementRef);\n }\n}\n","<i class=\"kbq-checkbox-checkmark kbq kbq-check-s_16\"></i>\n<i class=\"kbq-checkbox-mixedmark kbq kbq-minus-s_16\"></i>\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterViewChecked,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n InjectionToken,\n Input,\n OnDestroy,\n Optional,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ENTER, SPACE } from '@koobiq/cdk/keycodes';\nimport { Subject } from 'rxjs';\nimport { KBQ_TITLE_TEXT_REF, KbqTitleTextRef } from '../title';\nimport { KbqOptgroup } from './optgroup';\n\n/**\n * Option IDs need to be unique across components, so this counter exists outside of\n * the component definition.\n */\nlet uniqueIdCounter = 0;\n\n/** Event object emitted by KbqOption when selected or deselected. */\nexport class KbqOptionSelectionChange<T = KbqOption> {\n constructor(\n public source: T,\n public isUserInput = false\n ) {}\n}\n\n/**\n * Describes a parent component that manages a list of options.\n * Contains properties that the options can inherit.\n * @docs-private\n */\nexport interface KbqOptionParentComponent {\n multiple?: boolean;\n}\n\n/**\n * Handler that will update scroll position of elements inside overlay\n */\nexport interface KeyboardNavigationHandler {\n /** Scrolls the active option into view. */\n scrollActiveOptionIntoView(): void;\n}\n\n/**\n * Injection token used to provide the parent component to options.\n */\nexport const KBQ_OPTION_PARENT_COMPONENT = new InjectionToken<KbqOptionParentComponent>('KBQ_OPTION_PARENT_COMPONENT');\n\nexport abstract class KbqOptionBase {\n value: any;\n abstract get viewValue(): string;\n abstract get disabled(): boolean;\n abstract set disabled(value: any);\n\n abstract readonly onSelectionChange: EventEmitter<KbqOptionSelectionChange<any>>;\n\n abstract select(): void;\n\n abstract deselect(): void;\n\n /** Emits the selection change event. */\n protected emitSelectionChangeEvent(isUserInput = false): void {\n this.onSelectionChange.emit(new KbqOptionSelectionChange(this, isUserInput));\n }\n}\n\nexport class KbqVirtualOption extends KbqOptionBase {\n get disabled() {\n return this._disabled;\n }\n set disabled(value: any) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n get selected(): boolean {\n return this._selected;\n }\n\n private _selected = false;\n\n get viewValue(): string {\n return this.value;\n }\n\n readonly onSelectionChange = new EventEmitter<KbqOptionSelectionChange<KbqVirtualOption>>();\n\n constructor(\n public value: any,\n private _disabled: boolean = false\n ) {\n super();\n }\n\n select(): void {\n if (!this._selected) {\n this._selected = true;\n\n this.emitSelectionChangeEvent();\n }\n }\n\n deselect(): void {\n if (this._selected) {\n this._selected = false;\n\n this.emitSelectionChangeEvent();\n }\n }\n}\n\n/**\n * Single option inside of a `<kbq-select>` element.\n */\n@Component({\n selector: 'kbq-option',\n exportAs: 'kbqOption',\n host: {\n '[attr.tabindex]': 'getTabIndex()',\n class: 'kbq-option',\n '[class.kbq-selected]': 'selected',\n '[class.kbq-option-multiple]': 'multiple',\n '[class.kbq-active]': 'active',\n '[class.kbq-disabled]': 'disabled',\n '[id]': 'id',\n\n '(click)': 'selectViaInteraction()',\n '(keydown)': 'handleKeydown($event)'\n },\n /* Component inherits styles from `list`, so `list` variables are imported as the single source of truth. */\n styleUrls: ['option.scss', 'option-tokens.scss'],\n templateUrl: 'option.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: KBQ_TITLE_TEXT_REF,\n useExisting: KbqOption\n }\n ]\n})\nexport class KbqOption extends KbqOptionBase implements AfterViewChecked, OnDestroy, KbqTitleTextRef {\n @ViewChild('kbqTitleText', { static: false }) textElement: ElementRef;\n\n /** The form value of the option. */\n @Input() value: any;\n\n // todo this flag will need to be rethought in the future (added for filter panel)\n @Input({ transform: booleanAttribute }) userSelect: boolean = false;\n\n @Input()\n get showCheckbox() {\n return this._showCheckbox === undefined ? this.multiple : this._showCheckbox;\n }\n\n set showCheckbox(value) {\n this._showCheckbox = coerceBooleanProperty(value);\n }\n\n private _showCheckbox: boolean;\n\n /** Event emitted when the option is selected or deselected. */\n @Output() readonly onSelectionChange = new EventEmitter<KbqOptionSelectionChange>();\n\n /** Emits when the state of the option changes and any parents have to be notified. */\n readonly stateChanges = new Subject<void>();\n\n /**\n * The displayed value of the option. It is necessary to show the selected option in the\n * select's trigger.\n */\n get viewValue(): string {\n // TODO: Add input property alternative for node envs.\n return (this.getHostElement().textContent || '').trim();\n }\n\n /** Whether the wrapping component is in multiple selection mode. */\n get multiple() {\n return this.parent && this.parent.multiple;\n }\n\n get id(): string {\n return this._id;\n }\n\n private _id = `kbq-option-${uniqueIdCounter++}`;\n\n get selected(): boolean {\n return this._selected;\n }\n\n private _selected = false;\n\n @Input()\n get disabled() {\n return (this.group && this.group.disabled) || this._disabled;\n }\n\n set disabled(value: any) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n private _disabled = false;\n\n /**\n * Whether or not the option is currently active and ready to be selected.\n * An active option displays styles as if it is focused, but the\n * focus is actually retained somewhere else. This comes in handy\n * for components like autocomplete where focus must remain on the input.\n */\n get active(): boolean {\n return this._active;\n }\n\n private _active = false;\n\n private mostRecentViewValue = '';\n\n constructor(\n private readonly element: ElementRef,\n private readonly changeDetectorRef: ChangeDetectorRef,\n @Optional() @Inject(KBQ_OPTION_PARENT_COMPONENT) private readonly parent: KbqOptionParentComponent,\n @Optional() readonly group: KbqOptgroup\n ) {\n super();\n }\n\n ngAfterViewChecked() {\n // Since parent components could be using the option's label to display the selected values\n // (e.g. `kbq-select`) and they don't have a way of knowing if the option's label has changed\n // we have to check for changes in the DOM ourselves and dispatch an event. These checks are\n // relatively cheap, however we still limit them only to selected options in order to avoid\n // hitting the DOM too often.\n if (this._selected) {\n const viewValue = this.viewValue;\n\n if (viewValue !== this.mostRecentViewValue) {\n this.mostRecentViewValue = viewValue;\n this.stateChanges.next();\n }\n }\n }\n\n ngOnDestroy() {\n this.stateChanges.complete();\n }\n\n getHeight(): number {\n const DOMRect: DOMRect = this.element.nativeElement.getClientRects()[0];\n\n return DOMRect ? DOMRect.height : 0;\n }\n\n select(): void {\n if (!this._selected) {\n this._selected = true;\n\n this.changeDetectorRef.markForCheck();\n this.emitSelectionChangeEvent();\n }\n }\n\n deselect(): void {\n if (this._selected) {\n this._selected = false;\n\n this.changeDetectorRef.markForCheck();\n this.emitSelectionChangeEvent();\n }\n }\n\n focus(): void {\n const element = this.getHostElement();\n\n if (typeof element.focus === 'function') {\n element.focus();\n }\n }\n\n /**\n * This method sets display styles on the option to make it appear\n * active. This is used by the ActiveDescendantKeyManager so key\n * events will display the proper options as active on arrow key events.\n */\n setActiveStyles(): void {\n if (!this._active) {\n this._active = true;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * This method removes display styles on the option that made it appear\n * active. This is used by the ActiveDescendantKeyManager so key\n * events will display the proper options as active on arrow key events.\n */\n setInactiveStyles(): void {\n if (this._active) {\n this._active = false;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n /** Gets the label to be used when determining whether the option should be focused. */\n getLabel(): string {\n return this.viewValue;\n }\n\n /** Ensures the option is selected when activated from the keyboard. */\n handleKeydown(event: KeyboardEvent): void {\n if (event.keyCode === ENTER || event.keyCode === SPACE) {\n this.selectViaInteraction();\n\n // Prevent the page from scrolling down and form submits.\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n /**\n * `Selects the option while indicating the selection came from the user. Used to\n * determine if the select's view -> model callback should be invoked.`\n */\n selectViaInteraction(): void {\n if (this.userSelect) return;\n\n if (!this.disabled) {\n this._selected = this.multiple ? !this._selected : true;\n\n this.changeDetectorRef.markForCheck();\n this.emitSelectionChangeEvent(true);\n }\n }\n\n getTabIndex(): string {\n return this.disabled ? '-1' : '0';\n }\n\n getHostElement(): HTMLElement {\n return this.element.nativeElement;\n }\n}\n\n/**\n * Counts the amount of option group labels that precede the specified option.\n * @param optionIndex Index of the option at which to start counting.\n * @param options Flat list of all of the options.\n * @param optionGroups Flat list of all of the option groups.\n * @docs-private\n */\nexport function countGroupLabelsBeforeOption(\n optionIndex: number,\n options: QueryList<KbqOption>,\n optionGroups: QueryList<KbqOptgroup>\n): number {\n if (optionGroups.length) {\n const optionsArray = options.toArray();\n const groups = optionGroups.toArray();\n\n let groupCounter = 0;\n\n for (let i = 0; i < optionIndex + 1; i++) {\n if (optionsArray[i].group && optionsArray[i].group === groups[groupCounter]) {\n groupCounter++;\n }\n }\n\n return groupCounter;\n }\n\n return 0;\n}\n\n/**\n * Determines the position to which to scroll a panel in order for an option to be into view.\n * @param optionIndex Index of the option to be scrolled into the view.\n * @param optionHeight Height of the options.\n * @param currentScrollPosition Current scroll position of the panel.\n * @param panelHeight Height of the panel.\n * @docs-private\n */\nexport function getOptionScrollPosition(\n optionIndex: number,\n optionHeight: number,\n currentScrollPosition: number,\n panelHeight: number\n): number {\n const optionOffset = optionIndex * optionHeight;\n\n if (optionOffset < currentScrollPosition) {\n return optionOffset;\n }\n\n if (optionOffset + optionHeight > currentScrollPosition + panelHeight) {\n return Math.max(0, optionOffset - panelHeight + optionHeight);\n }\n\n return currentScrollPosition;\n}\n","@if (showCheckbox) {\n <kbq-pseudo-checkbox [disabled]=\"disabled\" [state]=\"selected ? 'checked' : 'unchecked'\" />\n}\n\n<span #kbqTitleText class=\"kbq-option-text\">\n <ng-content />\n</span>\n","export enum MultipleMode {\n CHECKBOX = 'checkbox',\n KEYBOARD = 'keyboard'\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { KbqPseudoCheckbox } from './pseudo-checkbox';\n\n@NgModule({\n imports: [CommonModule],\n exports: [KbqPseudoCheckbox],\n declarations: [KbqPseudoCheckbox]\n})\nexport class KbqPseudoCheckboxModule {}\n","import { NgModule } from '@angular/core';\nimport { KbqPseudoCheckboxModule } from '../selection';\nimport { KbqOptionActionComponent } from './action';\nimport { KbqOptgroup } from './optgroup';\nimport { KbqOption } from './option';\n\n@NgModule({\n imports: [KbqPseudoCheckboxModule],\n declarations: [KbqOption, KbqOptgroup, KbqOptionActionComponent],\n exports: [KbqOption, KbqOptgroup, KbqOptionActionComponent]\n})\nexport class KbqOptionModule {}\n","import { ConnectionPositionPair, Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { InjectionToken } from '@angular/core';\n\nexport const POSITION_MAP: { [key: string]: ConnectionPositionPair } = {\n top: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom'\n },\n topCenter: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom'\n },\n topLeft: {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom'\n },\n topRight: {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom'\n },\n right: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center'\n },\n rightTop: {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top'\n },\n rightBottom: {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom'\n },\n bottom: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top'\n },\n bottomCenter: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top'\n },\n bottomLeft: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n },\n bottomRight: {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top'\n },\n left: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center'\n },\n leftTop: {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top'\n },\n leftBottom: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom'\n }\n};\n\nexport const EXTENDED_OVERLAY_POSITIONS = objectValues([\n POSITION_MAP.top,\n POSITION_MAP.topLeft,\n POSITION_MAP.topRight,\n POSITION_MAP.right,\n POSITION_MAP.rightTop,\n POSITION_MAP.rightBottom,\n POSITION_MAP.bottom,\n POSITION_MAP.bottomLeft,\n POSITION_MAP.bottomRight,\n POSITION_MAP.left,\n POSITION_MAP.leftTop,\n POSITION_MAP.leftBottom\n]);\n\nexport const TOP_POSITION_PRIORITY = objectValues([\n POSITION_MAP.top,\n POSITION_MAP.bottom,\n POSITION_MAP.right,\n POSITION_MAP.rightBottom,\n POSITION_MAP.leftBottom,\n POSITION_MAP.bottomLeft,\n POSITION_MAP.bottomRight\n]);\n\nexport const BOTTOM_POSITION_PRIORITY = objectValues([\n POSITION_MAP.bottom,\n POSITION_MAP.top,\n POSITION_MAP.topLeft,\n POSITION_MAP.topRight,\n POSITION_MAP.rightBottom,\n POSITION_MAP.leftBottom\n]);\n\nexport const RIGHT_POSITION_PRIORITY = objectValues([\n POSITION_MAP.right,\n POSITION_MAP.left,\n POSITION_MAP.leftTop,\n POSITION_MAP.leftBottom,\n POSITION_MAP.top,\n POSITION_MAP.bottom\n]);\n\nexport const LEFT_POSITION_PRIORITY = objectValues([\n POSITION_MAP.left,\n POSITION_MAP.right,\n POSITION_MAP.rightTop,\n POSITION_MAP.rightBottom,\n POSITION_MAP.top,\n POSITION_MAP.bottom\n]);\n\nexport const RIGHT_TOP_POSITION_PRIORITY = objectValues([\n POSITION_MAP.rightTop,\n POSITION_MAP.leftTop,\n POSITION_MAP.left,\n POSITION_MAP.leftBottom,\n POSITION_MAP.topLeft,\n POSITION_MAP.bottomLeft\n]);\n\nexport const RIGHT_BOTTOM_POSITION_PRIORITY = objectValues([\n POSITION_MAP.rightBottom,\n POSITION_MAP.leftBottom,\n POSITION_MAP.left,\n POSITION_MAP.leftTop,\n POSITION_MAP.topLeft,\n POSITION_MAP.bottomLeft\n]);\n\nexport const LEFT_TOP_POSITION_PRIORITY = objectValues([\n POSITION_MAP.leftTop,\n POSITION_MAP.rightTop,\n POSITION_MAP.right,\n POSITION_MAP.rightBottom,\n POSITION_MAP.topRight,\n POSITION_MAP.bottomRight\n]);\n\nexport const LEFT_BOTTOM_POSITION_PRIORITY = objectValues([\n POSITION_MAP.leftBottom,\n POSITION_MAP.rightBottom,\n POSITION_MAP.right,\n POSITION_MAP.rightTop,\n POSITION_MAP.topRight,\n POSITION_MAP.bottomRight\n]);\n\nexport const TOP_LEFT_POSITION_PRIORITY = objectValues([\n POSITION_MAP.topLeft,\n POSITION_MAP.topRight,\n POSITION_MAP.bottomLeft,\n POSITION_MAP.bottom,\n POSITION_MAP.bottomRight,\n POSITION_MAP.leftBottom,\n POSITION_MAP.rightBottom\n]);\n\nexport const TOP_RIGHT_POSITION_PRIORITY = objectValues([\n POSITION_MAP.topRight,\n POSITION_MAP.topLeft,\n POSITION_MAP.bottomRight,\n POSITION_MAP.bottom,\n POSITION_MAP.bottomLeft,\n POSITION_MAP.leftBottom,\n POSITION_MAP.rightBottom\n]);\n\nexport const BOTTOM_RIGHT_POSITION_PRIORITY = objectValues([\n POSITION_MAP.bottomRight,\n POSITION_MAP.bottomLeft,\n POSITION_MAP.topRight,\n POSITION_MAP.top,\n POSITION_MAP.topLeft,\n POSITION_MAP.leftTop,\n POSITION_MAP.rightTop\n]);\n\nexport const BOTTOM_LEFT_POSITION_PRIORITY = objectValues([\n POSITION_MAP.bottomLeft,\n POSITION_MAP.bottomRight,\n POSITION_MAP.topLeft,\n POSITION_MAP.top,\n POSITION_MAP.topRight,\n POSITION_MAP.rightTop,\n POSITION_MAP.leftTop\n]);\n\nexport const POSITION_PRIORITY_STRATEGY = {\n top: TOP_POSITION_PRIORITY,\n topLeft: TOP_LEFT_POSITION_PRIORITY,\n topRight: TOP_RIGHT_POSITION_PRIORITY,\n bottom: BOTTOM_POSITION_PRIORITY,\n bottomLeft: BOTTOM_LEFT_POSITION_PRIORITY,\n bottomRight: BOTTOM_RIGHT_POSITION_PRIORITY,\n left: LEFT_POSITION_PRIORITY,\n leftTop: LEFT_TOP_POSITION_PRIORITY,\n leftBottom: LEFT_BOTTOM_POSITION_PRIORITY,\n right: RIGHT_POSITION_PRIORITY,\n rightTop: RIGHT_TOP_POSITION_PRIORITY,\n rightBottom: RIGHT_BOTTOM_POSITION_PRIORITY\n};\n\nexport const POSITION_TO_CSS_MAP: { [key: string]: string } = {\n top: 'top',\n topLeft: 'top-left',\n topRight: 'top-right',\n right: 'right',\n rightTop: 'right-top',\n rightBottom: 'right-bottom',\n left: 'left',\n leftTop: 'left-top',\n leftBottom: 'left-bottom',\n bottom: 'bottom',\n bottomLeft: 'bottom-left',\n bottomRight: 'bottom-right'\n};\n\nexport const KBQ_CUSTOM_SCROLL_STRATEGY_PROVIDER = <T>(\n token: InjectionToken<T>,\n factory: (overlay: Overlay) => () => ScrollStrategy\n) => ({\n provide: token,\n deps: [Overlay],\n useFactory: factory\n});\n\nfunction arrayMap<T, S>(array: T[], iteratee: (item: T, index: number, arr: T[]) => S): S[] {\n let index = -1;\n const length = array === null ? 0 : array.length;\n const result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n\n return result;\n}\nfunction baseValues<T>(object: T[], props: string[]): T[] {\n return arrayMap(props, (key) => object[key]);\n}\nfunction objectValues<T>(object: T[]): T[] {\n return object === null ? [] : baseValues(object, Object.keys(object));\n}\n","import { InjectionToken } from '@angular/core';\nimport { TooltipSizeArrowSize } from '@koobiq/design-tokens';\nimport { Observable } from 'rxjs';\n\nexport interface KbqParentPopup {\n closedStream: Observable<boolean>;\n}\n\n/**\n * InjectionToken for providing component with popup. Used in select and tree-select for tooltip.\n */\nexport const KBQ_PARENT_POPUP = new InjectionToken<KbqParentPopup>('kbq-parent-popup');\n\nexport enum PopUpPlacements {\n Top = 'top',\n TopLeft = 'topLeft',\n TopRight = 'topRight',\n Right = 'right',\n RightTop = 'rightTop',\n RightBottom = 'rightBottom',\n Left = 'left',\n LeftTop = 'leftTop',\n LeftBottom = 'leftBottom',\n Bottom = 'bottom',\n BottomLeft = 'bottomLeft',\n BottomRight = 'bottomRight'\n}\n\nexport enum PopUpVisibility {\n Initial = 'initial',\n Visible = 'visible',\n Hidden = 'hidden'\n}\n\nexport enum PopUpTriggers {\n Click = 'click',\n Focus = 'focus',\n Hover = 'hover',\n Keydown = 'keydown'\n}\n\nexport enum PopUpSizes {\n Small = 'small',\n Medium = 'medium',\n // Normal is deprecated and will be deleted in 16.x\n Normal = 'medium',\n Large = 'large'\n}\n\n/**\n * Default value when configuring overlay in popups (Autocomplete, Datepicker, Dropdown, Select, Tags Autocomplete,\n * Tags Input, Timezone, TreeSelect).\n */\nexport const defaultOffsetY: number = 4;\n\n/**\n * Variable used for offsetY(X) calculations when applying Angular Overlay\n *\n * @docs-private\n */\nexport const ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT = Math.round(parseInt(TooltipSizeArrowSize) * Math.sqrt(2));\n","import { FocusTrapInertStrategy } from '@angular/cdk/a11y';\n\n// Need replace EventListenerFocusTrapInertStrategy to EmptyFocusTrapStrategy for focus work correctly with open popover\nexport class EmptyFocusTrapStrategy implements FocusTrapInertStrategy {\n preventFocus(): void {}\n allowFocus(): void {}\n}\n","import { AnimationEvent } from '@angular/animations';\nimport { ChangeDetectorRef, Directive, EventEmitter, inject, OnDestroy, Renderer2, TemplateRef } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { PopUpVisibility } from './constants';\n\n@Directive()\nexport abstract class KbqPopUp implements OnDestroy {\n protected readonly renderer: Renderer2 = inject(Renderer2);\n protected readonly changeDetectorRef: ChangeDetectorRef = inject(ChangeDetectorRef);\n\n header: string | TemplateRef<any>;\n content: string | TemplateRef<any>;\n context: { $implicit: any } | null;\n\n classMap = {};\n\n warning: boolean;\n arrow: boolean;\n\n offset: number | null;\n\n visibility = PopUpVisibility.Initial;\n visibleChange = new EventEmitter<boolean>();\n\n protected prefix: string;\n\n /** Subject for notifying that the tooltip has been hidden from the view */\n protected readonly onHideSubject = new Subject<void>();\n\n protected closeOnInteraction: boolean = false;\n\n private showTimeoutId: any;\n private hideTimeoutId: any;\n\n ngOnDestroy() {\n clearTimeout(this.showTimeoutId);\n clearTimeout(this.hideTimeoutId);\n\n this.onHideSubject.complete();\n }\n\n isTemplateRef(value: any): boolean {\n return value instanceof TemplateRef;\n }\n\n show(delay: number): void {\n if (this.hideTimeoutId) {\n clearTimeout(this.hideTimeoutId);\n }\n\n this.closeOnInteraction = true;\n\n this.showTimeoutId = setTimeout(() => {\n this.showTimeoutId = undefined;\n\n this.visibility = PopUpVisibility.Visible;\n this.visibleChange.emit(true);\n // Mark for check so if any parent component has set the\n // ChangeDetectionStrategy to OnPush it will be checked anyways\n this.markForCheck();\n }, delay);\n }\n\n /**\n * Hides the popup after a specified delay.\n *\n * The hide timeout triggers the hiding of the popup by updating visibility and emitting relevant events.\n * Also, it marks for check to ensure proper change detection, especially for parent components with OnPush strategy.\n * @param delay - The delay in milliseconds before hiding the popup.\n */\n hide(delay: number): void {\n if (this.showTimeoutId) {\n clearTimeout(this.showTimeoutId);\n }\n\n this.hideTimeoutId = setTimeout(() => {\n this.hideTimeoutId = undefined;\n this.visibility = PopUpVisibility.Hidden;\n\n this.visibleChange.emit(false);\n this.onHideSubject.next();\n\n // Mark for check so if any parent component has set the\n // ChangeDetectionStrategy to OnPush it will be checked anyways\n this.markForCheck();\n }, delay);\n }\n\n isVisible(): boolean {\n return this.visibility === PopUpVisibility.Visible;\n }\n\n updateClassMap(placement: string, customClass: string, classMap?): void {\n this.classMap = {\n [`${this.prefix}_placement-${placement}`]: true,\n [customClass]: !!customClass,\n ...classMap\n };\n }\n\n /** Returns an observable that notifies when the tooltip has been hidden from view. */\n afterHidden(): Observable<void> {\n return this.onHideSubject.asObservable();\n }\n\n markForCheck(): void {\n this.changeDetectorRef.markForCheck();\n }\n\n detectChanges(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n animationStart() {\n this.closeOnInteraction = false;\n }\n\n animationDone({ toState }: AnimationEvent): void {\n if (toState === PopUpVisibility.Hidden && !this.isVisible()) {\n this.onHideSubject.next();\n }\n\n if (toState === PopUpVisibility.Visible || toState === PopUpVisibility.Hidden) {\n this.closeOnInteraction = true;\n }\n }\n\n handleBodyInteraction(): void {\n if (this.closeOnInteraction) {\n this.hide(0);\n }\n }\n}\n","import { Renderer2 } from '@angular/core';\n\nexport const applyPopupMargins = (renderer: Renderer2, element: HTMLElement, name: string, value: string) => {\n const classList = element.classList;\n\n if (\n classList.contains(`${name}_placement-top`) ||\n classList.contains(`${name}_placement-top-left`) ||\n classList.contains(`${name}_placement-top-right`)\n ) {\n renderer.setStyle(element, 'margin-bottom', value);\n }\n\n if (\n classList.contains(`${name}_placement-right`) ||\n classList.contains(`${name}_placement-right-top`) ||\n classList.contains(`${name}_placement-right-bottom`)\n ) {\n renderer.setStyle(element, 'margin-left', value);\n }\n\n if (\n classList.contains(`${name}_placement-bottom`) ||\n classList.contains(`${name}_placement-bottom-left`) ||\n classList.contains(`${name}_placement-bottom-right`)\n ) {\n renderer.setStyle(element, 'margin-top', value);\n }\n\n if (\n classList.contains(`${name}_placement-left`) ||\n classList.contains(`${name}_placement-left-top`) ||\n classList.contains(`${name}_placement-left-bottom`)\n ) {\n renderer.setStyle(element, 'margin-right', value);\n }\n};\n","import { Directionality } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n ConnectedOverlayPositionChange,\n ConnectionPositionPair,\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayConfig,\n OverlayRef,\n ScrollDispatcher,\n ScrollStrategy\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n EventEmitter,\n NgZone,\n OnDestroy,\n OnInit,\n TemplateRef,\n Type,\n ViewContainerRef,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ENTER, ESCAPE, SPACE } from '@koobiq/cdk/keycodes';\nimport { Observable, Subscription } from 'rxjs';\nimport { distinctUntilChanged, delay as rxDelay } from 'rxjs/operators';\nimport {\n EXTENDED_OVERLAY_POSITIONS,\n POSITION_MAP,\n POSITION_PRIORITY_STRATEGY,\n POSITION_TO_CSS_MAP\n} from '../overlay/overlay-position-map';\nimport { ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT, PopUpPlacements, PopUpTriggers } from './constants';\n\ntype KbqPopupTriggerOffset = Pick<ConnectionPositionPair, 'offsetX' | 'offsetY'>;\n\nconst getOffset = (\n { originX, overlayX, originY, overlayY }: ConnectionPositionPair,\n { width, height }: DOMRect\n): KbqPopupTriggerOffset => {\n const offset: KbqPopupTriggerOffset = {};\n const elementWidthHalf = width / 2;\n const elementHeightHalf = height / 2;\n\n // alignment should be applied only if the element is small\n if (ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT > elementWidthHalf) {\n const PADDING = ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT - elementWidthHalf;\n\n if (originX === overlayX) {\n if (originX === 'start') {\n offset.offsetX = -PADDING;\n }\n if (originX === 'end') {\n offset.offsetX = PADDING;\n }\n }\n }\n\n // alignment should be applied only if the element is small\n if (ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT > elementHeightHalf) {\n const PADDING = ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT - elementHeightHalf;\n if (originY === overlayY) {\n if (originY === 'top') {\n offset.offsetY = -PADDING;\n }\n if (originY === 'bottom') {\n offset.offsetY = PADDING;\n }\n }\n }\n\n return offset;\n};\n\n@Directive()\nexport abstract class KbqPopUpTrigger<T> implements OnInit, OnDestroy {\n protected readonly overlay: Overlay = inject(Overlay);\n protected readonly elementRef: ElementRef = inject(ElementRef);\n protected readonly ngZone: NgZone = inject(NgZone);\n protected readonly scrollDispatcher: ScrollDispatcher = inject(ScrollDispatcher);\n protected readonly hostView: ViewContainerRef = inject(ViewContainerRef);\n protected readonly direction = inject(Directionality, { optional: true });\n protected readonly destroyRef = inject(DestroyRef);\n\n protected abstract scrollStrategy: () => ScrollStrategy;\n\n isOpen: boolean = false;\n\n enterDelay: number = 0;\n leaveDelay: number = 0;\n\n abstract disabled: boolean;\n abstract arrow: boolean;\n abstract trigger: string;\n abstract customClass: string;\n abstract content: string | TemplateRef<any>;\n\n abstract placementChange: EventEmitter<string>;\n abstract visibleChange: EventEmitter<boolean>;\n\n protected abstract originSelector: string;\n protected abstract overlayConfig: OverlayConfig;\n\n protected placement = PopUpPlacements.Top;\n protected placementPriority: string | string[] | null = null;\n\n protected visible = false;\n\n protected _content: string | TemplateRef<any>;\n protected _disabled: boolean;\n protected _customClass: string;\n\n protected overlayRef: OverlayRef | null;\n protected portal: ComponentPortal<T>;\n protected instance: any | null;\n\n protected listeners = new Map<string, EventListener>();\n protected closingActionsSubscription: Subscription;\n\n protected readonly availablePositions: { [key: string]: ConnectionPositionPair } = POSITION_MAP;\n\n protected triggerName: string;\n protected mouseEvent?: MouseEvent;\n protected strategy: FlexibleConnectedPositionStrategy;\n\n abstract updateClassMap(newPlacement?: string): void;\n\n abstract updateData(): void;\n\n abstract closingActions(): Observable<any>;\n\n abstract getOverlayHandleComponentType(): Type<T>;\n\n ngOnInit(): void {\n this.initListeners();\n }\n\n ngOnDestroy(): void {\n this.overlayRef?.dispose();\n\n this.listeners.forEach(this.removeEventListener);\n\n this.listeners.clear();\n }\n\n updatePlacement(value: PopUpPlacements) {\n if (POSITION_TO_CSS_MAP[value]) {\n this.placement = value;\n\n this.updateClassMap();\n } else {\n this.placement = PopUpPlacements.Top;\n\n console.warn(`Unknown position: ${value}. Will used default position: ${this.placement}`);\n }\n\n if (this.visible) {\n this.updatePosition();\n }\n }\n\n updatePlacementPriority(value) {\n if (value && value.length > 0) {\n this.placementPriority = value;\n } else {\n this.placementPriority = null;\n }\n }\n\n updateVisible(externalValue: boolean) {\n const value = coerceBooleanProperty(externalValue);\n\n if (this.visible !== value) {\n this.visible = value;\n\n if (value) {\n this.show();\n } else {\n this.hide();\n }\n }\n }\n\n handleKeydown(event: KeyboardEvent) {\n if (this.isOpen && event.keyCode === ESCAPE) {\n this.hide();\n }\n }\n\n handleTouchend() {\n this.hide();\n }\n\n show(delay: number = this.enterDelay): void {\n if (this.disabled || this.instance) {\n return;\n }\n\n this.overlayRef = this.createOverlay();\n this.subscribeOnClosingActions();\n this.detach();\n\n this.portal = this.portal || new ComponentPortal(this.getOverlayHandleComponentType(), this.hostView);\n\n this.instance = this.overlayRef.attach(this.portal).instance;\n\n this.instance.trigger = this;\n\n this.instance.afterHidden().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(this.detach);\n\n this.updateClassMap();\n\n this.updateData();\n\n this.instance.visibleChange\n .pipe(distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n this.visible = value;\n this.visibleChange.emit(value);\n this.isOpen = value;\n });\n\n this.updatePosition();\n\n this.instance.show(delay);\n }\n\n hide(delay: number = this.leaveDelay): void {\n if (this.instance) {\n this.ngZone.run(() => this.instance.hide(delay));\n }\n }\n\n detach = (): void => {\n if (this.overlayRef?.hasAttached()) {\n this.overlayRef.detach();\n }\n\n this.instance = null;\n };\n\n /** Create the overlay config and position strategy */\n createOverlay(): OverlayRef {\n if (this.overlayRef) {\n return this.overlayRef;\n }\n\n // Create connected position strategy that listens for scroll events to reposition.\n this.strategy = this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef)\n .withTransformOriginOn(this.originSelector)\n .withFlexibleDimensions(false)\n .withPositions([...EXTENDED_OVERLAY_POSITIONS])\n .withLockedPosition()\n .withScrollableContainers(this.scrollDispatcher.getAncestorScrollContainers(this.elementRef));\n\n this.strategy.positionChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(this.onPositionChange);\n\n this.overlayRef = this.overlay.create({\n ...this.overlayConfig,\n direction: this.direction || undefined,\n positionStrategy: this.strategy,\n scrollStrategy: this.scrollStrategy()\n });\n\n this.subscribeOnClosingActions();\n\n this.overlayRef.detachments().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(this.detach);\n\n return this.overlayRef;\n }\n\n resetOrigin() {\n this.strategy.setOrigin(this.elementRef);\n }\n\n onPositionChange = ($event: ConnectedOverlayPositionChange): void => {\n if (!this.instance) {\n return;\n }\n\n let newPlacement = this.placement;\n\n const { originX, originY, overlayX, overlayY } = $event.connectionPair;\n\n Object.keys(this.availablePositions).some((key) => {\n if (\n originX === this.availablePositions[key].originX &&\n originY === this.availablePositions[key].originY &&\n overlayX === this.availablePositions[key].overlayX &&\n overlayY === this.availablePositions[key].overlayY\n ) {\n newPlacement = key as PopUpPlacements;\n\n return true;\n }\n\n return false;\n });\n\n this.placementChange.emit(newPlacement);\n\n this.updateClassMap(newPlacement);\n\n this.instance.detectChanges();\n };\n\n initListeners() {\n this.clearListeners();\n\n if (this.trigger.includes(PopUpTriggers.Click)) {\n this.listeners.set(...this.createListener('click', this.show));\n }\n\n if (this.trigger.includes(PopUpTriggers.Hover)) {\n this.listeners\n .set(...this.createListener('mouseenter', this.show))\n .set(...this.createListener('mouseleave', this.hide));\n }\n\n if (this.trigger.includes(PopUpTriggers.Focus)) {\n this.listeners\n .set(...this.createListener('focus', this.show))\n .set(...this.createListener('blur', this.hide));\n }\n\n if (this.trigger.includes(PopUpTriggers.Keydown)) {\n this.listeners.set('keydown', (event) => {\n if (event instanceof KeyboardEvent && [ENTER, SPACE].includes(event.keyCode)) {\n this.show();\n }\n });\n }\n\n this.listeners.forEach(this.addEventListener);\n }\n\n /** Updates the position of the current popover. */\n updatePosition(reapplyPosition: boolean = false) {\n this.overlayRef = this.createOverlay();\n\n this.subscribeOnClosingActions();\n\n const position = (this.overlayRef.getConfig().positionStrategy as FlexibleConnectedPositionStrategy)\n .withPositions(this.getAdjustedPositions())\n .withPush(true);\n\n if (reapplyPosition) {\n setTimeout(() => position.reapplyLastPosition());\n }\n }\n\n focus() {\n this.elementRef.nativeElement.focus();\n }\n\n /**\n * Returns a list of positions that are aligned with the element's dimensions and offsets.\n * @protected\n */\n protected getAdjustedPositions(): ConnectionPositionPair[] {\n const res: ConnectionPositionPair[] = [];\n for (const pos of this.getPrioritizedPositions()) {\n const offset: KbqPopupTriggerOffset = this.arrow\n ? getOffset(pos, this.elementRef.nativeElement.getBoundingClientRect())\n : {};\n\n res.push({\n ...pos,\n ...offset\n });\n }\n return res;\n }\n\n protected getPriorityPlacementStrategy(value: string | string[]): ConnectionPositionPair[] {\n const result: ConnectionPositionPair[] = [];\n const possiblePositions = Object.keys(this.availablePositions);\n\n if (Array.isArray(value)) {\n value.forEach((position: string) => {\n if (possiblePositions.includes(position)) {\n result.push(this.availablePositions[position]);\n }\n });\n } else if (possiblePositions.includes(value)) {\n result.push(this.availablePositions[value]);\n }\n\n return result;\n }\n\n protected getPrioritizedPositions() {\n if (this.placementPriority) {\n return this.getPriorityPlacementStrategy(this.placementPriority);\n }\n\n return POSITION_PRIORITY_STRATEGY[this.placement];\n }\n\n protected clearListeners() {\n this.listeners.forEach(this.removeEventListener);\n\n this.listeners.clear();\n }\n\n private createListener(name: string, listener: () => void): [string, (event: unknown) => void] {\n return [\n name,\n (event: unknown) => {\n this.triggerName = name;\n this.saveMouseEvent(event as MouseEvent);\n\n return listener.call(this);\n }\n\n ];\n }\n\n private saveMouseEvent(event: MouseEvent) {\n if (this.triggerName === 'mouseenter') {\n this.mouseEvent = event;\n }\n }\n\n private addEventListener = (listener: EventListener, event: string) => {\n this.elementRef.nativeElement.addEventListener(event, listener);\n };\n\n private removeEventListener = (listener: EventListener, event: string) => {\n this.elementRef.nativeElement.removeEventListener(event, listener);\n };\n\n private subscribeOnClosingActions() {\n this.closingActionsSubscription?.unsubscribe();\n\n this.closingActionsSubscription = this.closingActions()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .pipe(rxDelay(0))\n .subscribe((event) => {\n if (event?.type === 'click' && event.kbqPopoverPreventHide) {\n return;\n }\n\n this.hide();\n });\n }\n}\n","import { Overlay, RepositionScrollStrategy, ScrollStrategy } from '@angular/cdk/overlay';\nimport { InjectionToken } from '@angular/core';\n\n/**\n * The select panel will only \"fit\" inside the viewport if it is positioned at\n * this value or more away from the viewport boundary.\n */\nexport const SELECT_PANEL_VIEWPORT_PADDING = 8;\n\n/** Injection token that determines the scroll handling while a select is open. */\nexport const KBQ_SELECT_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>('kbq-select-scroll-strategy');\n\n/** @docs-private */\nexport function kbqSelectScrollStrategyProviderFactory(overlay: Overlay): () => RepositionScrollStrategy {\n return () => overlay.scrollStrategies.reposition();\n}\n\n/** @docs-private */\nexport const KBQ_SELECT_SCROLL_STRATEGY_PROVIDER = {\n provide: KBQ_SELECT_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: kbqSelectScrollStrategyProviderFactory\n};\n","import { CdkConnectedOverlay } from '@angular/cdk/overlay';\nimport { AfterContentInit, Directive, Inject, OnDestroy, Optional } from '@angular/core';\nimport { END, ESCAPE, HOME, SPACE } from '@koobiq/cdk/keycodes';\nimport { Subscription } from 'rxjs';\nimport { KBQ_FORM_FIELD_REF, KbqFormFieldRef } from '../form-field';\nimport { SELECT_PANEL_VIEWPORT_PADDING } from './constants';\n\n@Directive({\n selector: 'kbq-select-trigger, [kbq-select-trigger]',\n standalone: true\n})\nexport class KbqSelectTrigger {}\n\n@Directive({\n selector: 'kbq-select-matcher, [kbq-select-matcher]',\n standalone: true\n})\nexport class KbqSelectMatcher {}\n\n@Directive({\n selector: 'kbq-select-footer, [kbq-select-footer]',\n host: { class: 'kbq-select__footer' },\n standalone: true\n})\nexport class KbqSelectFooter {}\n\n@Directive({\n selector: '[kbqSelectSearch]',\n exportAs: 'kbqSelectSearch',\n standalone: true,\n host: {\n '(keydown)': 'handleKeydown($event)'\n }\n})\nexport class KbqSelectSearch implements AfterContentInit, OnDestroy {\n searchChangesSubscription: Subscription = new Subscription();\n\n isSearchChanged: boolean = false;\n\n get ngControl() {\n return this.formField.control.ngControl;\n }\n\n constructor(@Optional() @Inject(KBQ_FORM_FIELD_REF) protected formField: KbqFormFieldRef) {\n formField.canCleanerClearByEsc = false;\n }\n\n setPlaceholder(value: string): void {\n this.formField.control.placeholder = value;\n }\n\n hasPlaceholder(): boolean {\n return !!this.formField?.control.placeholder;\n }\n\n focus(): void {\n this.formField.focusViaKeyboard();\n }\n\n reset(): void {\n this.ngControl.reset();\n }\n\n value() {\n return this.formField.control.value;\n }\n\n ngAfterContentInit(): void {\n if (this.formField.control.controlType !== 'input') {\n throw Error('KbqSelectSearch does not work without kbqInput');\n }\n\n if (!this.ngControl) {\n throw Error('KbqSelectSearch does not work without ngControl');\n }\n\n Promise.resolve().then(() => {\n this.searchChangesSubscription = this.ngControl.valueChanges!.subscribe(() => {\n this.isSearchChanged = true;\n });\n });\n }\n\n ngOnDestroy(): void {\n this.searchChangesSubscription.unsubscribe();\n }\n\n handleKeydown(event: KeyboardEvent) {\n if (event.keyCode === ESCAPE) {\n if (this.value()) {\n this.reset();\n event.stopPropagation();\n }\n }\n\n if ([SPACE, HOME, END].includes(event.keyCode)) {\n event.stopPropagation();\n }\n }\n}\n\n@Directive({\n selector: '[kbq-select-search-empty-result]',\n exportAs: 'kbqSelectSearchEmptyResult',\n standalone: true\n})\nexport class KbqSelectSearchEmptyResult {}\n\n/**\n * Abstract class representing a customizable select component with an overlay.\n *\n * This class provides base functionality for handling the overlay positioning.\n * @docs-private\n */\nexport abstract class KbqAbstractSelect {\n protected overlayDir: CdkConnectedOverlay;\n protected triggerRect: DOMRect;\n\n /** Overlay panel class. */\n protected readonly overlayPanelClass = 'kbq-select-overlay';\n\n protected setOverlayPosition() {\n this.resetOverlay();\n\n const overlayRect = this.getOverlayRect();\n // Window width without scrollbar\n const windowWidth = this.overlayDir.overlayRef?.hostElement.clientWidth;\n let offsetX: number = 0;\n let overlayMaxWidth: number;\n\n // Determine if select overflows on either side.\n const leftOverflow = -overlayRect.left;\n const rightOverflow = overlayRect.right - windowWidth;\n\n // If the element overflows on either side, reduce the offset to allow it to fit.\n if (leftOverflow > 0 || rightOverflow > 0) {\n [offsetX, overlayMaxWidth] = this.calculateOverlayOffsetX(offsetX);\n this.overlayDir.overlayRef.overlayElement.style.maxWidth = `${overlayMaxWidth}px`;\n // reset the minWidth property\n this.overlayDir.overlayRef.overlayElement.style.minWidth = '';\n }\n\n // Set the offset directly in order to avoid having to go through change detection and\n // potentially triggering \"changed after it was checked\" errors. Round the value to avoid\n // blurry content in some browsers.\n this.overlayDir.offsetX = Math.round(offsetX);\n this.overlayDir.overlayRef.updatePosition();\n }\n\n protected calculateOverlayOffsetX(baseOffsetX: number): number[] {\n let offsetX = baseOffsetX;\n const windowWidth = this.overlayDir.overlayRef?.hostElement.clientWidth;\n const { left: leftIndent, right: triggerRight, width: triggerWidth } = this.triggerRect;\n const { width: overlayRectWidth } = this.getOverlayRect();\n const rightIndent = windowWidth - triggerRight;\n // Setting direction of dropdown expansion\n const isRightDirection = leftIndent <= rightIndent;\n\n const indent = isRightDirection ? rightIndent : leftIndent;\n const maxDropdownWidth = indent + triggerWidth - SELECT_PANEL_VIEWPORT_PADDING;\n const overlayMaxWidth = overlayRectWidth < maxDropdownWidth ? overlayRectWidth : maxDropdownWidth;\n\n if (!isRightDirection) {\n const leftOffset = triggerRight - overlayMaxWidth;\n offsetX -= leftIndent - leftOffset;\n }\n\n return [offsetX, overlayMaxWidth];\n }\n\n protected getOverlayRect(): DOMRect {\n return this.overlayDir.overlayRef.overlayElement.getBoundingClientRect();\n }\n\n protected resetOverlay(): void {\n this.overlayDir.overlayRef.hostElement.classList.add(this.overlayPanelClass);\n this.overlayDir.offsetX = 0;\n this.overlayDir.overlayRef.overlayElement.style.maxWidth = 'unset';\n this.overlayDir.overlayRef.updatePosition();\n }\n}\n","/**\n * Returns an exception to be thrown when attempting to change a select's `multiple` option\n * after initialization.\n * @docs-private\n */\nexport function getKbqSelectDynamicMultipleError(): Error {\n return Error('Cannot change `multiple` mode of select after initialization.');\n}\n\n/**\n * Returns an exception to be thrown when attempting to assign a non-array value to a select\n * in `multiple` mode. Note that `undefined` and `null` are still valid values to allow for\n * resetting the value.\n * @docs-private\n */\nexport function getKbqSelectNonArrayValueError(): Error {\n return Error('Value must be an array in multiple-selection mode.');\n}\n\n/**\n * Returns an exception to be thrown when assigning a non-function value to the comparator\n * used to determine if a value corresponds to an option. Note that whether the function\n * actually takes two values and returns a boolean is not checked.\n */\nexport function getKbqSelectNonFunctionValueError(): Error {\n return Error('`compareWith` must be a function.');\n}\n","export const selectEvents = 'selectEvents';\n","import { DOCUMENT } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class KbqMeasureScrollbarService {\n protected readonly document = inject<Document>(DOCUMENT);\n\n get scrollBarWidth(): number {\n if (this._scrollBarWidth) {\n return this._scrollBarWidth;\n }\n this.initScrollBarWidth();\n\n return this._scrollBarWidth;\n }\n\n private _scrollBarWidth: number;\n private scrollbarMeasure = {\n position: 'absolute',\n top: '-9999px',\n width: '50px',\n height: '50px',\n overflow: 'scroll'\n };\n\n constructor() {\n this.initScrollBarWidth();\n }\n\n initScrollBarWidth() {\n const scrollDiv = this.document.createElement('div');\n\n for (const scrollProp in this.scrollbarMeasure) {\n if (this.scrollbarMeasure.hasOwnProperty(scrollProp)) {\n scrollDiv.style[scrollProp] = this.scrollbarMeasure[scrollProp];\n }\n }\n\n this.document.body.appendChild(scrollDiv);\n\n const width = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n\n this.document.body.removeChild(scrollDiv);\n this._scrollBarWidth = width;\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { inject, Injectable, OnDestroy, Renderer2, RendererFactory2 } from '@angular/core';\nimport { BehaviorSubject, pairwise, Subscription } from 'rxjs';\n\nexport interface KbqTheme {\n name: string;\n className: string;\n selected: boolean;\n}\n\n/**\n * Enum representing the available themes for the Koobiq design system.\n * This enum is used to manage and switch between different visual themes.\n */\nexport enum KbqThemeSelector {\n /**\n * Represents the default light theme.\n * This is the standard theme that is applied\n * when the application is first loaded if nothing else provided\n */\n Default = 'kbq-light',\n /**\n * This theme is used to provide a darker visual experience, often preferred in low-light environments.\n */\n Dark = 'kbq-dark'\n}\n\nexport const KbqDefaultThemes: KbqTheme[] = [\n {\n name: 'light',\n className: KbqThemeSelector.Default,\n selected: true\n },\n {\n name: 'dark',\n className: KbqThemeSelector.Dark,\n selected: false\n }\n];\n\n@Injectable({ providedIn: 'root' })\nexport class ThemeService<T extends KbqTheme | null = KbqTheme> implements OnDestroy {\n protected readonly document = inject<Document>(DOCUMENT);\n protected readonly rendererFactory = inject(RendererFactory2);\n protected renderer: Renderer2;\n\n current: BehaviorSubject<T> = new BehaviorSubject(null as T);\n\n themes: T[] = KbqDefaultThemes as T[];\n\n protected subscription: Subscription;\n\n constructor() {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n\n this.subscription = this.current.pipe(pairwise()).subscribe(this.update);\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n\n setThemes(items: T[]) {\n this.themes = items;\n }\n\n setTheme(value: T | number) {\n if (typeof value === 'number') {\n this.current.next(this.themes[value]);\n } else if (typeof value === 'object' && this.themes.includes(value)) {\n this.current.next(value);\n } else {\n throw Error(`value has unsupported type: ${typeof value}`);\n }\n }\n\n getTheme(): T {\n return this.current.value;\n }\n\n protected update = ([prev, current]: T[]) => {\n if (prev) {\n prev.selected = false;\n this.renderer.removeClass(this.document.body, prev.className);\n }\n\n if (current) {\n this.renderer.addClass(this.document.body, current.className);\n current.selected = true;\n }\n };\n}\n","import { InjectionToken } from '@angular/core';\nimport { enUSFormattersData } from '../../locales';\n\nexport enum MeasurementSystem {\n SI = 'SI',\n IEC = 'IEC'\n}\n\nexport interface SizeUnitsConfig {\n defaultUnitSystem: string;\n defaultPrecision: number;\n unitSystems: {\n [MeasurementSystem.SI]: {\n abbreviations: string[];\n base: number;\n power: number;\n };\n [MeasurementSystem.IEC]: {\n abbreviations: string[];\n base: number;\n power: number;\n };\n };\n}\n\nexport const KBQ_SIZE_UNITS_DEFAULT_CONFIG = enUSFormattersData.sizeUnits;\n\nexport const KBQ_SIZE_UNITS_CONFIG = new InjectionToken<SizeUnitsConfig>('KbqSizeUnitsConfig');\n","export const formatDataSize = (value: number, precision: number, system): { value: string; unit: string } => {\n const { result, unit } = getHumanizedBytes(value, system);\n let volume: string;\n\n if (system.abbreviations[0] === unit) {\n volume = result.toString();\n } else {\n volume = result.toFixed(precision).replace(/\\./g, ',');\n }\n\n return {\n value: volume,\n unit\n };\n};\n\n/**\n * Переводит байты в Кб, Мб, Гб\n *\n * @param value количество байт\n * @param system система измерения\n * @param threshold нижний порог подсчета\n */\nexport const getHumanizedBytes = (value: number, system, threshold?: number): { result: number; unit: string } => {\n if (!Number.isFinite(value)) {\n throw new Error('Argument \"value\" must be number!');\n }\n\n const calculatedThreshold = Number.isFinite(threshold) ? threshold : Math.pow(system.base, system.power);\n const orderOfMagnitude: number = Math.pow(system.base, system.power);\n\n let result: number = value;\n let step = 0;\n const len: number = system.abbreviations.length - 1;\n\n while (step < len) {\n if (calculatedThreshold !== undefined && result < calculatedThreshold) {\n break;\n }\n\n step++;\n result = value / Math.pow(orderOfMagnitude, step);\n }\n\n return {\n result,\n unit: system.abbreviations[step]\n };\n};\n","import { Inject, Optional, Pipe, PipeTransform } from '@angular/core';\nimport { KBQ_LOCALE_SERVICE, KbqLocaleService } from '../../locales';\nimport { KBQ_SIZE_UNITS_CONFIG, KBQ_SIZE_UNITS_DEFAULT_CONFIG, SizeUnitsConfig } from './config';\nimport { formatDataSize } from './size';\n\n@Pipe({\n name: 'kbqDataSize',\n standalone: true,\n pure: false\n})\nexport class KbqDataSizePipe implements PipeTransform {\n private config: SizeUnitsConfig;\n\n constructor(\n @Optional() @Inject(KBQ_SIZE_UNITS_CONFIG) public readonly externalConfig: SizeUnitsConfig,\n @Optional() @Inject(KBQ_LOCALE_SERVICE) private localeService?: KbqLocaleService\n ) {\n this.localeService?.changes.subscribe(this.updateLocaleParams);\n\n if (!localeService) {\n this.config = KBQ_SIZE_UNITS_DEFAULT_CONFIG;\n }\n }\n\n transform(source: number, precision?: number, unitSystemName?: string): string {\n const unitSystem = this.config.unitSystems[unitSystemName || this.config.defaultUnitSystem];\n\n const { value, unit } = formatDataSize(source, precision || this.config.defaultPrecision, unitSystem);\n\n return `${value} ${unit}`;\n }\n\n private updateLocaleParams = () => {\n this.config = this.externalConfig || this.localeService?.getParams('sizeUnits');\n };\n}\n","export function isBoolean(value: unknown): value is boolean {\n return typeof value === 'boolean';\n}\n\n/**\n * Will be removed in the next major release\n *\n * @deprecated Use `booleanAttribute` instead\n */\nexport function toBoolean(value: unknown): boolean {\n return value != null && `${value}` !== 'false';\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const validationTooltipShowDelay = 10;\nexport const validationTooltipHideDelay = 3000;\n\nexport interface KbqValidationOptions {\n useValidation: boolean;\n}\n\n/** @deprecated Will be removed in next major release (#DS-2838) */\nexport const KBQ_VALIDATION = new InjectionToken<KbqValidationOptions>('KbqUseValidation', {\n factory: () => ({ useValidation: true })\n});\n","import { Version } from '@angular/core';\n\nexport const VERSION = new Version('18.20.0+sha-92a8fc2');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["BaseDateAdapter","BaseDateFormatter","i1.KbqOptgroup","i2.KbqPseudoCheckbox","rxDelay"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"koobiq-components-core.mjs","sources":["../../../packages/components/core/animation/animation.ts","../../../packages/components/core/animation/fade-animations.ts","../../../packages/components/core/animation/select-animations.ts","../../../packages/components/core/common-behaviors/color.ts","../../../packages/components/core/common-behaviors/common-module.ts","../../../packages/components/core/common-behaviors/disabled.ts","../../../packages/components/core/common-behaviors/error-state.ts","../../../packages/components/core/common-behaviors/tabindex.ts","../../../packages/components/core/common-behaviors/index.ts","../../../packages/components/core/datetime/date-adapter.ts","../../../packages/components/core/datetime/date-formats.ts","../../../packages/components/core/error/error-state-matcher.ts","../../../packages/components/core/form-field/form-field-ref.ts","../../../packages/components/core/locales/en-US.ts","../../../packages/components/core/locales/es-LA.ts","../../../packages/components/core/locales/fa-IR.ts","../../../packages/components/core/locales/pt-BR.ts","../../../packages/components/core/locales/ru-RU.ts","../../../packages/components/core/locales/tk-TM.ts","../../../packages/components/core/locales/zh-CN.ts","../../../packages/components/core/locales/formatters.ts","../../../packages/components/core/locales/locale-service.ts","../../../packages/components/core/locales/locale-service.module.ts","../../../packages/components/core/formatters/date/formatter.ts","../../../packages/components/core/formatters/date/formatter.pipe.ts","../../../packages/components/core/formatters/number/formatter.ts","../../../packages/components/core/formatters/index.ts","../../../packages/components/core/forms/forms.directive.ts","../../../packages/components/core/forms/forms-module.ts","../../../packages/components/core/forms/validators.ts","../../../packages/components/core/highlight/highlight.pipe.ts","../../../packages/components/core/highlight/index.ts","../../../packages/components/core/line/line.ts","../../../packages/components/core/option/action.ts","../../../packages/components/core/option/optgroup.ts","../../../packages/components/core/option/optgroup.html","../../../packages/components/core/title/title-text-ref.ts","../../../packages/components/core/selection/pseudo-checkbox/pseudo-checkbox.ts","../../../packages/components/core/selection/pseudo-checkbox/pseudo-checkbox.partial.html","../../../packages/components/core/option/option.ts","../../../packages/components/core/option/option.html","../../../packages/components/core/selection/constants.ts","../../../packages/components/core/selection/pseudo-checkbox/pseudo-checkbox.module.ts","../../../packages/components/core/option/option-module.ts","../../../packages/components/core/overlay/overlay-position-map.ts","../../../packages/components/core/pop-up/constants.ts","../../../packages/components/core/pop-up/focus-trap-strategy.ts","../../../packages/components/core/pop-up/pop-up.ts","../../../packages/components/core/pop-up/pop-up-styles.ts","../../../packages/components/core/pop-up/pop-up-trigger.ts","../../../packages/components/core/select/constants.ts","../../../packages/components/core/select/common.ts","../../../packages/components/core/select/errors.ts","../../../packages/components/core/select/events.ts","../../../packages/components/core/services/measure-scrollbar.service.ts","../../../packages/components/core/services/theme.service.ts","../../../packages/components/core/utils/data-size/config.ts","../../../packages/components/core/utils/data-size/size.ts","../../../packages/components/core/utils/data-size/data-size.pipe.ts","../../../packages/components/core/utils/utils.ts","../../../packages/components/core/validation/validation.ts","../../../packages/components/core/version.ts","../../../packages/components/core/koobiq-components-core.ts"],"sourcesContent":["/**\n * @deprecated Will be removed in next major release. Use `KbqAnimationCurves` instead.\n *\n * @docs-private\n */\nexport enum AnimationCurves {\n StandardCurve = 'cubic-bezier(0.4,0.0,0.2,1)',\n DecelerationCurve = 'cubic-bezier(0.0,0.0,0.2,1)',\n AccelerationCurve = 'cubic-bezier(0.4,0.0,1,1)',\n SharpCurve = 'cubic-bezier(0.4,0.0,0.6,1)'\n}\n\n/**\n * Koobiq components animation curves\n *\n * @docs-private\n */\nexport enum KbqAnimationCurves {\n StandardCurve = 'cubic-bezier(0.4,0.0,0.2,1)',\n DecelerationCurve = 'cubic-bezier(0.0,0.0,0.2,1)',\n AccelerationCurve = 'cubic-bezier(0.4,0.0,1,1)',\n SharpCurve = 'cubic-bezier(0.4,0.0,0.6,1)'\n}\n\n/**\n * Koobiq components animation durations\n *\n * @docs-private\n */\nexport enum KbqAnimationDurations {\n Complex = '250ms',\n Entering = '150ms',\n Exiting = '125ms'\n}\n","import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\n\nexport const fadeAnimation: AnimationTriggerMetadata = trigger('fadeAnimation', [\n state('void', style({ opacity: 0 })),\n state('true', style({ opacity: 1 })),\n state('false', style({ opacity: 0 })),\n transition('* => true', animate('150ms cubic-bezier(0.0, 0.0, 0.2, 1)')),\n transition('* => void', animate('150ms cubic-bezier(0.4, 0.0, 1, 1)'))]);\n","import { animate, AnimationTriggerMetadata, group, state, style, transition, trigger } from '@angular/animations';\n\n/**\n * The following are all the animations for the kbq-select component, with each\n * const containing the metadata for one animation.\n *\n */\nexport const kbqSelectAnimations: {\n readonly transformPanel: AnimationTriggerMetadata;\n readonly fadeInContent: AnimationTriggerMetadata;\n} = {\n /**\n * This animation transforms the select's overlay panel on and off the page.\n *\n * When the panel is attached to the DOM, it expands its width by the amount of padding, scales it\n * up to 100% on the Y axis, fades in its border, and translates slightly up and to the\n * side to ensure the option text correctly overlaps the trigger text.\n *\n * When the panel is removed from the DOM, it simply fades out linearly.\n */\n transformPanel: trigger('transformPanel', [\n state(\n 'void',\n style({\n transform: 'scaleY(0)',\n minWidth: '100%',\n opacity: 0\n })\n ),\n transition(\n 'void => *',\n group([\n animate('0ms cubic-bezier(0.25, 0.8, 0.25, 1)')])\n ),\n transition('* => void', [\n animate('0ms 0ms linear', style({ opacity: 0 }))])\n\n ]),\n\n /**\n * This animation fades in the background color and text content of the\n * select's options. It is time delayed to occur 100ms after the overlay\n * panel has transformed in.\n */\n fadeInContent: trigger('fadeInContent', [\n state('showing', style({ opacity: 1 })),\n transition('void => showing', [\n style({ opacity: 0 }),\n animate('0ms 0ms cubic-bezier(0.55, 0, 0.55, 0.2)')])\n\n ])\n};\n\nexport const transformPanel = kbqSelectAnimations.transformPanel;\n\nexport const fadeInContent = kbqSelectAnimations.fadeInContent;\n","import { ElementRef } from '@angular/core';\nimport { AbstractConstructor, Constructor } from './constructor';\n\nexport interface CanColor {\n color: KbqComponentColors | ThemePalette | string;\n}\n\n/** @docs-private */\nexport type CanColorCtor = Constructor<CanColor> & AbstractConstructor<CanColor>;\n\nexport interface HasElementRef {\n elementRef: ElementRef;\n}\n\nexport enum ThemePalette {\n Primary = 'primary',\n Secondary = 'secondary',\n Error = 'error',\n Info = 'info',\n Warning = 'warning',\n Success = 'success',\n\n Default = 'secondary',\n Empty = ''\n}\n\nexport enum KbqComponentColors {\n Theme = 'theme',\n ThemeFade = 'theme-fade',\n Contrast = 'contrast',\n ContrastFade = 'contrast-fade',\n\n Error = 'error',\n Warning = 'warning',\n Success = 'success',\n\n Default = 'contrast',\n Empty = 'empty'\n}\n\n/** Mixin to augment a directive with a `color` property. */\nexport function mixinColor<T extends AbstractConstructor<HasElementRef>>(\n base: T,\n defaultColor?: KbqComponentColors | ThemePalette\n): CanColorCtor & T;\n\nexport function mixinColor<T extends Constructor<HasElementRef>>(\n base: T,\n defaultColor: KbqComponentColors | ThemePalette = KbqComponentColors.Empty\n): CanColorCtor & T {\n return class extends base {\n get color(): KbqComponentColors | ThemePalette {\n return this._color;\n }\n set color(value: KbqComponentColors | ThemePalette) {\n const colorPalette = value || defaultColor;\n\n if (colorPalette !== this._color) {\n if (this._color) {\n this.elementRef.nativeElement.classList.remove(`kbq-${this._color}`);\n }\n if (colorPalette) {\n this.elementRef.nativeElement.classList.add(`kbq-${colorPalette}`);\n }\n\n this._color = colorPalette;\n }\n }\n\n private _color: KbqComponentColors | ThemePalette;\n\n constructor(...args: any[]) {\n super(...args);\n\n this.color = defaultColor;\n }\n };\n}\n","import { BidiModule } from '@angular/cdk/bidi';\nimport { DOCUMENT } from '@angular/common';\nimport { inject, Inject, InjectionToken, isDevMode, NgModule, Optional } from '@angular/core';\n\n// Injection token that configures whether the koobiq sanity checks are enabled.\nexport const KBQ_SANITY_CHECKS = new InjectionToken<boolean>('kbq-sanity-checks', {\n providedIn: 'root',\n factory: mcSanityChecksFactory\n});\n\nexport function mcSanityChecksFactory(): boolean {\n return true;\n}\n\n/**\n * Module that captures anything that should be loaded and/or run for *all* Koobiq\n * components. This includes Bidi, etc.\n *\n * This module should be imported to each top-level component module (e.g., KbqTabsModule).\n */\n@NgModule({\n imports: [BidiModule],\n exports: [BidiModule]\n})\nexport class KbqCommonModule {\n protected readonly document = inject<Document>(DOCUMENT);\n\n // Whether we've done the global sanity checks (e.g. a theme is loaded, there is a doctype).\n private hasDoneGlobalChecks = false;\n\n constructor(@Optional() @Inject(KBQ_SANITY_CHECKS) private _sanityChecksEnabled: boolean) {\n if (this.areChecksEnabled() && !this.hasDoneGlobalChecks) {\n this.checkDoctypeIsDefined();\n this.checkThemeIsPresent();\n this.hasDoneGlobalChecks = true;\n }\n }\n\n // Whether any sanity checks are enabled\n private areChecksEnabled(): boolean {\n return this._sanityChecksEnabled && isDevMode() && !this.isTestEnv();\n }\n\n // Whether the code is running in tests.\n private isTestEnv(): boolean {\n const window = this.getWindow();\n\n return !!(window && (window['__karma__'] || window['jasmine'] || window['__jest__']));\n }\n\n private checkDoctypeIsDefined(): void {\n if (this.document && !this.document.doctype) {\n console.warn(\n 'Current document does not have a doctype. This may cause ' +\n 'some koobiq components not to behave as expected.'\n );\n }\n }\n\n private checkThemeIsPresent(): void {\n if (this.document && typeof getComputedStyle === 'function') {\n const testElement = this.document.createElement('div');\n\n testElement.classList.add('kbq-theme-loaded-marker');\n this.document.body.appendChild(testElement);\n\n const computedStyle = getComputedStyle(testElement);\n\n // In some situations, the computed style of the test element can be null. For example in\n // Firefox, the computed style is null if an application is running inside of a hidden iframe.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n if (computedStyle && computedStyle.display !== 'none') {\n console.warn(\n 'Could not find koobiq core theme. Most koobiq ' +\n 'components may not work as expected. For more info refer ' +\n 'to the theming guide: https://koobiq.io/en/main/theming/overview'\n );\n }\n\n this.document.body.removeChild(testElement);\n }\n }\n\n private getWindow(): Window | null {\n return this.document?.defaultView || window;\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { AbstractConstructor, Constructor } from './constructor';\n\nexport interface CanDisable {\n disabled: boolean;\n}\n\n/** @docs-private */\nexport type CanDisableCtor = Constructor<CanDisable> & AbstractConstructor<CanDisable>;\n\n/** Mixin to augment a directive with a `disabled` property. */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function mixinDisabled<T extends AbstractConstructor<{}>>(base: T): CanDisableCtor & T;\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function mixinDisabled<T extends Constructor<{}>>(base: T): CanDisableCtor & T {\n return class extends base {\n get disabled() {\n return this._disabled;\n }\n\n set disabled(value: any) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n private _disabled: boolean = false;\n\n constructor(...args: any[]) {\n super(...args);\n }\n };\n}\n","import { FormGroupDirective, NgControl, NgForm, UntypedFormControl } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { ErrorStateMatcher } from '../error/error-state-matcher';\nimport { AbstractConstructor, Constructor } from './constructor';\n\n/** @docs-private */\nexport interface CanUpdateErrorState {\n /** Whether the component is in an error state. */\n errorState: boolean;\n /** An object used to control the error state of the component. */\n errorStateMatcher: ErrorStateMatcher;\n /** Updates the error state based on the provided error state matcher. */\n updateErrorState(): void;\n}\n\n/** @docs-private */\nexport type CanUpdateErrorStateCtor = Constructor<CanUpdateErrorState>;\n\n/** @docs-private */\nexport interface HasErrorState {\n parentFormGroup: FormGroupDirective | null;\n parentForm: NgForm | null;\n defaultErrorStateMatcher: ErrorStateMatcher;\n\n ngControl: NgControl | null;\n stateChanges: Subject<void>;\n}\n\n/**\n * Mixin to augment a directive with updateErrorState method.\n * For component with `errorState` and need to update `errorState`.\n */\nexport function mixinErrorState<T extends AbstractConstructor<HasErrorState>>(base: T): CanUpdateErrorStateCtor & T;\nexport function mixinErrorState<T extends Constructor<HasErrorState>>(base: T): CanUpdateErrorStateCtor & T {\n return class extends base {\n /** Whether the component is in an error state. */\n errorState: boolean = false;\n\n errorStateMatcher: ErrorStateMatcher;\n\n constructor(...args: any[]) {\n super(...args);\n }\n\n updateErrorState() {\n const oldState = this.errorState;\n const parent = this.parentFormGroup || this.parentForm;\n const matcher = this.errorStateMatcher || this.defaultErrorStateMatcher;\n const control = this.ngControl ? (this.ngControl.control as UntypedFormControl) : null;\n const newState = matcher.isErrorState(control, parent);\n\n if (newState !== oldState) {\n this.errorState = newState;\n this.stateChanges.next();\n }\n }\n };\n}\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { AbstractConstructor, Constructor } from './constructor';\nimport { CanDisable } from './disabled';\n\nexport interface HasTabIndex {\n tabIndex: number;\n}\n\nexport type HasTabIndexCtor = Constructor<HasTabIndex> & AbstractConstructor<HasTabIndex>;\n\n/** Mixin to augment a directive with a `tabIndex` property. */\nexport function mixinTabIndex<T extends AbstractConstructor<CanDisable>>(\n base: T,\n defaultTabIndex?: number\n): HasTabIndexCtor & T;\n\nexport function mixinTabIndex<T extends Constructor<CanDisable>>(base: T, defaultTabIndex = 0): HasTabIndexCtor & T {\n return class extends base implements HasTabIndex {\n defaultTabIndex = defaultTabIndex;\n\n get tabIndex(): number {\n return this.disabled ? -1 : this._tabIndex;\n }\n\n set tabIndex(value: number) {\n // If the specified tabIndex value is null or undefined, fall back to the default value.\n\n this._tabIndex = value != null ? coerceNumberProperty(value) : this.defaultTabIndex;\n }\n\n private _tabIndex: number = defaultTabIndex;\n\n constructor(...args: any[]) {\n super(...args);\n }\n };\n}\n","import { InjectionToken } from '@angular/core';\n\nexport { CanColor, CanColorCtor, KbqComponentColors, mixinColor, ThemePalette } from './color';\nexport { KBQ_SANITY_CHECKS, KbqCommonModule } from './common-module';\nexport { CanDisable, CanDisableCtor, mixinDisabled } from './disabled';\nexport { CanUpdateErrorState, CanUpdateErrorStateCtor, mixinErrorState } from './error-state';\nexport { KbqDefaultSizes } from './size';\nexport { HasTabIndex, HasTabIndexCtor, mixinTabIndex } from './tabindex';\n\nexport const KBQ_PARENT_ANIMATION_COMPONENT = new InjectionToken<any>('kbq-parent-animation-component');\n","import { inject, InjectionToken, LOCALE_ID } from '@angular/core';\nimport { DateAdapter as BaseDateAdapter } from '@koobiq/date-adapter';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n/** InjectionToken for datepicker that can be used to override default locale code. */\nexport const KBQ_DATE_LOCALE = new InjectionToken<string>('KBQ_DATE_LOCALE', {\n providedIn: 'root',\n factory: KBQ_DATE_LOCALE_FACTORY\n});\n\n/** @docs-private */\nexport function KBQ_DATE_LOCALE_FACTORY(): string {\n return inject(LOCALE_ID);\n}\n\nexport abstract class DateAdapter<D> extends BaseDateAdapter<D> {\n /** A stream that emits when the locale changes. */\n abstract get localeChanges(): Observable<any>;\n\n protected abstract _localeChanges: BehaviorSubject<string>;\n}\n","import { InjectionToken } from '@angular/core';\nimport { DateFormats } from '@koobiq/date-adapter';\n\nexport const KBQ_DATE_FORMATS = new InjectionToken<DateFormats>('kbq-date-formats');\nexport type KbqDateFormats = DateFormats;\n","import { Injectable, Provider, Type } from '@angular/core';\nimport { AbstractControl, FormGroupDirective, NgForm } from '@angular/forms';\n\n/** Utility provider for `ErrorStateMatcher`. */\nexport const kbqErrorStateMatcherProvider = (\n errorStateMatcher: Type<ErrorStateMatcher> | ErrorStateMatcher\n): Provider => {\n if (errorStateMatcher instanceof Type) {\n return {\n provide: ErrorStateMatcher,\n useClass: errorStateMatcher\n };\n }\n\n return {\n provide: ErrorStateMatcher,\n useValue: errorStateMatcher\n };\n};\n\n/**\n * Error state matcher that matches when a control is invalid and form is submitted.\n * Requires use FormGroupDirective or NgForm.\n */\n@Injectable()\nexport class ShowOnFormSubmitErrorStateMatcher implements ErrorStateMatcher {\n isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control?.invalid && form?.submitted);\n }\n}\n\n/** Error state matcher that matches when a control is invalid and dirty or form is submitted. */\n@Injectable()\nexport class ShowOnControlDirtyErrorStateMatcher implements ErrorStateMatcher {\n isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control?.invalid && (control.dirty || form?.submitted));\n }\n}\n\n/**\n * Provider that defines how form controls behave with regards to displaying error messages.\n * Error state matcher that matches when a control is invalid and touched or form is submitted.\n */\n@Injectable({ providedIn: 'root' })\nexport class ErrorStateMatcher {\n isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control?.invalid && (control.touched || form?.submitted));\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface KbqFormFieldRef {\n control: any;\n canCleanerClearByEsc: boolean;\n /**\n * @TODO should be removed, is private method (#DS-2915)\n * @deprecated use `formField.control?.errorState` instead\n */\n shouldForward(str: string): boolean;\n focus(): void;\n /**\n * @deprecated Use `focus` instead.\n */\n focusViaKeyboard(): void;\n}\n\n/**\n * @TODO move into form-field.ts, add correct type for `InjectionToken<KbqFormField>` (#DS-2915)\n */\n\n/**\n * Injection token that can be used to inject an instances of `KbqFormField`. It serves\n * as alternative token to the actual `KbqFormField` class which would cause unnecessary\n * retention of the `KbqFormField` class and its component metadata.\n */\nexport const KBQ_FORM_FIELD_REF = new InjectionToken<KbqFormFieldRef>('KbqFormFieldRef');\n","import { KbqActionsPanelLocaleConfiguration, KbqCodeBlockLocaleConfiguration } from './types';\n\nexport const enUSLocaleData = {\n select: { hiddenItemsText: '{{ number }} more' },\n datepicker: {\n placeholder: 'yyyy-mm-dd',\n dateInput: 'yyyy-MM-dd'\n },\n timepicker: {\n placeholder: {\n full: 'hh:mm:ss',\n short: 'hh:mm'\n }\n },\n fileUpload: {\n single: {\n captionText: 'Drag file here or {{ browseLink }}',\n browseLink: 'choose'\n },\n multiple: {\n captionText: 'Drag here or {{ browseLink }}',\n captionTextWhenSelected: 'Drag more files or {{ browseLink }}',\n captionTextForCompactSize: 'Drag files or {{ browseLink }}',\n browseLink: 'choose',\n title: 'Upload files',\n gridHeaders: {\n file: 'File',\n size: 'Size'\n }\n }\n },\n codeBlock: {\n softWrapOnTooltip: 'Enable word wrap',\n softWrapOffTooltip: 'Disable word wrap',\n downloadTooltip: 'Download',\n copiedTooltip: '✓ Copied',\n copyTooltip: 'Copy',\n viewAllText: 'Show all',\n viewLessText: 'Show less',\n openExternalSystemTooltip: 'Open in the external system'\n } satisfies KbqCodeBlockLocaleConfiguration,\n timezone: {\n searchPlaceholder: 'City or time zone'\n },\n actionsPanel: {\n closeTooltip: 'Deselect'\n } satisfies KbqActionsPanelLocaleConfiguration,\n filterBar: {\n reset: {\n buttonName: 'Reset'\n },\n search: {\n tooltip: 'Search',\n placeholder: 'Search'\n },\n filters: {\n defaultName: 'Filters',\n saveNewFilterTooltip: 'Save the new filter',\n searchPlaceholder: 'Search',\n searchEmptyResult: 'Nothing found',\n saveAsNewFilter: 'Save as new filter',\n saveChanges: 'Save changes',\n saveAsNew: 'Save as new',\n change: 'Edit',\n resetChanges: 'Reset',\n remove: 'Delete',\n name: 'Name',\n error: 'The search with such name already exists',\n errorHint: 'Could not save the filter. Try again or contact the administrator.',\n saveButton: 'Save',\n cancelButton: 'Cancel'\n },\n add: {\n tooltip: 'Add filter'\n },\n pipe: {\n clearButtonTooltip: 'Clear',\n removeButtonTooltip: 'Delete',\n applyButton: 'Apply',\n emptySearchResult: 'Nothing found'\n },\n datePipe: {\n customPeriod: 'Custom period',\n customPeriodFrom: 'from',\n customPeriodTo: 'to',\n customPeriodErrorHint: 'The period cannot start later than it ends',\n backToPeriodSelection: 'Back to selecting the period'\n }\n }\n};\n","import { KbqActionsPanelLocaleConfiguration, KbqCodeBlockLocaleConfiguration } from './types';\n\nexport const esLALocaleData = {\n select: { hiddenItemsText: '{{ number }} más' },\n datepicker: {\n placeholder: 'dd/mm/aaaa'\n },\n timepicker: {\n placeholder: {\n full: 'hh:mm:ss',\n short: 'hh:mm'\n }\n },\n fileUpload: {\n single: {\n captionText: 'Arrastre el archivo aquí o {{ browseLink }}',\n browseLink: 'elija'\n },\n multiple: {\n captionText: 'Arrastre aquí o {{ browseLink }}',\n captionTextWhenSelected: 'Arrastre más archivos aquí o {{ browseLink }}',\n captionTextForCompactSize: 'Arrastre archivos o {{ browseLink }}',\n browseLink: 'elija',\n title: 'Cargue los archivos',\n gridHeaders: {\n file: 'Archivo',\n size: 'Tamaño'\n }\n }\n },\n codeBlock: {\n softWrapOnTooltip: 'Activar el ajuste de texto',\n softWrapOffTooltip: 'Desactivar el ajuste de texto',\n downloadTooltip: 'Descargar',\n copiedTooltip: '✓ Copiado',\n copyTooltip: 'Copiar',\n viewAllText: 'Mostrar todo',\n viewLessText: 'Mostrar menos',\n openExternalSystemTooltip: 'Abrir en el sistema externo'\n } satisfies KbqCodeBlockLocaleConfiguration,\n timezone: {\n searchPlaceholder: 'Ciudad o zona horaria'\n },\n actionsPanel: {\n closeTooltip: 'Desmarque'\n } satisfies KbqActionsPanelLocaleConfiguration,\n filterBar: {\n reset: {\n buttonName: 'Reiniciar'\n },\n search: {\n tooltip: 'Búsqueda',\n placeholder: 'Búsqueda'\n },\n filters: {\n defaultName: 'Filtros',\n saveNewFilterTooltip: 'Guardar el nuevo filtro',\n searchPlaceholder: 'Búsqueda',\n searchEmptyResult: 'No se encontró nada',\n saveAsNewFilter: 'Guardar como nuevo filtro',\n saveChanges: 'Guardar los cambios',\n saveAsNew: 'Guardar como nuevo',\n change: 'Editar',\n resetChanges: 'Reiniciar',\n remove: 'Eliminar',\n name: 'Nombre',\n error: 'La búsqueda con ese nombre ya existe',\n errorHint: 'No se pudo guardar el filtro. Intente de nuevo o póngase en contacto con el administrador.',\n saveButton: 'Guardar',\n cancelButton: 'Cancelar'\n },\n add: {\n tooltip: 'Agregar filtro'\n },\n pipe: {\n clearButtonTooltip: 'Borrar',\n removeButtonTooltip: 'Eliminar',\n applyButton: 'Aplicar',\n emptySearchResult: 'No se encontró nada'\n },\n datePipe: {\n customPeriod: 'Período personalizado',\n customPeriodFrom: 'desde',\n customPeriodTo: 'hasta',\n customPeriodErrorHint: 'El período no puede empezar más tarde de lo que termina',\n backToPeriodSelection: 'Volver a la selección del período'\n }\n }\n};\n","import { KbqActionsPanelLocaleConfiguration, KbqCodeBlockLocaleConfiguration } from './types';\n\nexport const faIRLocaleData = {\n select: { hiddenItemsText: '{{ number }} بیشتر' },\n datepicker: {\n placeholder: 'روز/ ماه/سال'\n },\n timepicker: {\n placeholder: {\n full: 'ثانیه:دقیقه:ساعت',\n short: 'دقیقه:ساعت'\n }\n },\n fileUpload: {\n single: {\n captionText: 'فایل را به اینجا بکشید یا {{ browseLink }}',\n browseLink: 'انتخاب کنید'\n },\n multiple: {\n captionText: 'به اینجا بکشید یا {{ browseLink }}',\n captionTextWhenSelected: 'فایل های بیشتری را بکشید یا {{ browseLink }}',\n captionTextForCompactSize: 'فایل ها را بکشید یا {{ browseLink }}',\n browseLink: 'انتخاب کنید',\n title: 'فایل ها را آپلود کنید',\n gridHeaders: {\n file: 'فایل',\n size: 'اندازه'\n }\n }\n },\n codeBlock: {\n softWrapOnTooltip: 'فعالسازی سطربندی',\n softWrapOffTooltip: 'غیرفعالسازی سطربندی',\n downloadTooltip: 'دانلود',\n copiedTooltip: '✓ کپی شد',\n copyTooltip: 'کپی',\n viewAllText: 'نمایش همه',\n viewLessText: 'نمایش کمتر',\n openExternalSystemTooltip: 'باز کردن در سیستم خارجی'\n } satisfies KbqCodeBlockLocaleConfiguration,\n timezone: {\n searchPlaceholder: ' شهر یا منطقه زمانی '\n },\n actionsPanel: {\n closeTooltip: 'إلغاء التحديد'\n } satisfies KbqActionsPanelLocaleConfiguration,\n filterBar: {\n reset: {\n buttonName: 'بازنشانی'\n },\n search: {\n tooltip: 'جستجو',\n placeholder: 'جستجو'\n },\n filters: {\n defaultName: 'فیلترها',\n saveNewFilterTooltip: 'ذخیره فیلتر جدید',\n searchPlaceholder: 'جستجو',\n searchEmptyResult: 'چیزی پیدا نشد',\n saveAsNewFilter: 'ذخیره بهعنوان فیلتر جدید',\n saveChanges: 'ذخیره تغییرات',\n saveAsNew: 'ذخیره بهعنوان مورد جدید',\n change: 'ویرایش',\n resetChanges: 'بازنشانی',\n remove: 'حذف',\n name: 'نام',\n error: 'جستجویی با این نام از قبل وجود دارد',\n errorHint: 'فیلتر ذخیره نشد. دوباره امتحان کنید یا با سرپرست تماس بگیرید.',\n saveButton: 'ذخیره',\n cancelButton: 'لغو'\n },\n add: {\n tooltip: 'افزودن فیلتر'\n },\n pipe: {\n clearButtonTooltip: 'پاک کردن',\n removeButtonTooltip: 'حذف',\n applyButton: 'اعمال',\n emptySearchResult: 'چیزی پیدا نشد'\n },\n datePipe: {\n customPeriod: 'دوره سفارشی',\n customPeriodFrom: 'از',\n customPeriodTo: 'تا',\n customPeriodErrorHint: 'دوره نمیتواند بعد از پایان آن شروع شود',\n backToPeriodSelection: 'بازگشت به انتخاب دوره'\n }\n }\n};\n","import { KbqActionsPanelLocaleConfiguration, KbqCodeBlockLocaleConfiguration } from './types';\n\nexport const ptBRLocaleData = {\n select: { hiddenItemsText: '{{ number }} mais' },\n datepicker: {\n placeholder: 'dd/mm/yyyy'\n },\n timepicker: {\n placeholder: {\n full: 'hh:mm:ss',\n short: 'hh:mm'\n }\n },\n fileUpload: {\n single: {\n captionText: 'Arrastar o arquivo aqui ou {{ browseLink }}',\n browseLink: 'escolher'\n },\n multiple: {\n captionText: 'Arrastar aqui ou {{ browseLink }}',\n captionTextWhenSelected: 'Arrastar mais arquivos aqui ou {{ browseLink }}',\n captionTextForCompactSize: 'Arrastar arquivos ou {{ browseLink }}',\n browseLink: 'escolher',\n title: 'Carregar arquivos',\n gridHeaders: {\n file: 'Arquivo',\n size: 'Tamanho'\n }\n }\n },\n codeBlock: {\n softWrapOnTooltip: 'Ativar quebra de linha',\n softWrapOffTooltip: 'Desativar quebra de linha',\n downloadTooltip: 'Baixar',\n copiedTooltip: '✓ Copiado',\n copyTooltip: 'Copiar',\n viewAllText: 'Mostrar todos',\n viewLessText: 'Mostrar menos',\n openExternalSystemTooltip: 'Abrir em sistema externo'\n } satisfies KbqCodeBlockLocaleConfiguration,\n timezone: {\n searchPlaceholder: 'Cidade ou fuso horário'\n },\n actionsPanel: {\n closeTooltip: 'Desmarcar'\n } satisfies KbqActionsPanelLocaleConfiguration,\n filterBar: {\n reset: {\n buttonName: 'Redefinir'\n },\n search: {\n tooltip: 'Pesquisar',\n placeholder: 'Pesquisar'\n },\n filters: {\n defaultName: 'Filtros',\n saveNewFilterTooltip: 'Salvar o novo filtro',\n searchPlaceholder: 'Pesquisar',\n searchEmptyResult: 'Nada encontrado',\n saveAsNewFilter: 'Salvar como novo filtro',\n saveChanges: 'Salvar alterações',\n saveAsNew: 'Salvar como novo',\n change: 'Editar',\n resetChanges: 'Redefinir',\n remove: 'Excluir',\n name: 'Nome',\n error: 'Já existe uma pesquisa com este nome',\n errorHint: 'Não foi possível salvar o filtro. Tente novamente ou entre em contato com o administrador.',\n saveButton: 'Salvar',\n cancelButton: 'Cancelar'\n },\n add: {\n tooltip: 'Adicionar filtro'\n },\n pipe: {\n clearButtonTooltip: 'Apagar',\n removeButtonTooltip: 'Excluir',\n applyButton: 'Aplicar',\n emptySearchResult: 'Nada encontrado'\n },\n datePipe: {\n customPeriod: 'Período personalizado',\n customPeriodFrom: 'de',\n customPeriodTo: 'até',\n customPeriodErrorHint: 'O início do período não pode ser posterior ao término do período',\n backToPeriodSelection: 'Retornar à seleção do período'\n }\n }\n};\n","import { KbqActionsPanelLocaleConfiguration, KbqCodeBlockLocaleConfiguration } from './types';\n\nexport const ruRULocaleData = {\n select: { hiddenItemsText: 'еще {{ number }}' },\n datepicker: {\n placeholder: 'дд.мм.гггг',\n dateInput: 'dd.MM.yyyy'\n },\n timepicker: {\n placeholder: {\n full: 'чч:мм:сс',\n short: 'чч:мм'\n }\n },\n fileUpload: {\n single: {\n captionText: 'Перетащите файл или {{ browseLink }}',\n browseLink: 'выберите'\n },\n multiple: {\n captionText: 'Перетащите сюда или {{ browseLink }}',\n captionTextWhenSelected: 'Перетащите еще или {{ browseLink }}',\n captionTextForCompactSize: 'Перетащите файлы или {{ browseLink }}',\n browseLink: 'выберите',\n title: 'Загрузите файлы',\n gridHeaders: {\n file: 'Файл',\n size: 'Размер'\n }\n }\n },\n codeBlock: {\n softWrapOnTooltip: 'Включить перенос по словам',\n softWrapOffTooltip: 'Выключить перенос по словам',\n downloadTooltip: 'Скачать',\n copiedTooltip: '✓ Скопировано',\n copyTooltip: 'Скопировать',\n viewAllText: 'Показать все',\n viewLessText: 'Свернуть',\n openExternalSystemTooltip: 'Открыть во внешней системе'\n } satisfies KbqCodeBlockLocaleConfiguration,\n timezone: {\n searchPlaceholder: 'Город или часовой пояс'\n },\n actionsPanel: {\n closeTooltip: 'Отменить выбор'\n } satisfies KbqActionsPanelLocaleConfiguration,\n filterBar: {\n reset: {\n buttonName: 'Сбросить'\n },\n search: {\n tooltip: 'Поиск',\n placeholder: 'Поиск'\n },\n filters: {\n defaultName: 'Фильтры',\n saveNewFilterTooltip: 'Сохранить новый фильтр',\n searchPlaceholder: 'Поиск',\n searchEmptyResult: 'Ничего не найдено',\n saveAsNewFilter: 'Сохранить как новый фильтр',\n saveChanges: 'Сохранить изменения',\n saveAsNew: 'Сохранить как новый',\n change: 'Изменить',\n resetChanges: 'Сбросить изменения',\n remove: 'Удалить',\n name: 'Название',\n error: 'Поиск с таким названием уже существует',\n errorHint: 'Не удалось сохранить фильтр. Попробуйте снова или сообщите администратору.',\n saveButton: 'Сохранить',\n cancelButton: 'Отмена'\n },\n add: {\n tooltip: 'Добавить фильтр'\n },\n pipe: {\n clearButtonTooltip: 'Очистить',\n removeButtonTooltip: 'Удалить',\n applyButton: 'Применить',\n emptySearchResult: 'Ничего не найдено'\n },\n datePipe: {\n customPeriod: 'Произвольный период',\n customPeriodFrom: 'с',\n customPeriodTo: 'по',\n customPeriodErrorHint: 'Начало периода не может быть позже окончания',\n backToPeriodSelection: 'Назад к выбору периода'\n }\n }\n};\n","import { KbqActionsPanelLocaleConfiguration, KbqCodeBlockLocaleConfiguration } from './types';\n\nexport const tkTMLocaleData = {\n select: { hiddenItemsText: 'ýene {{ number }}' },\n datepicker: {\n placeholder: 'gg.aa.ýý.',\n dateInput: 'gg.aa.ýý.'\n },\n timepicker: {\n placeholder: {\n full: 'ss:mm:seksek',\n short: 'ss:mm'\n }\n },\n fileUpload: {\n single: {\n captionText: 'Faýly geçiriň ýa-da {{ browseLink }} ',\n browseLink: 'saýlaň'\n },\n multiple: {\n captionText: 'Şu ýere geçiriň ýa-da {{ browseLink }}',\n captionTextWhenSelected: 'Ýene geçiriň ýa-da {{ browseLink }}',\n captionTextForCompactSize: 'Faýllary geçiriň ýa-da {{ browseLink }}',\n browseLink: 'saýlaň',\n title: 'Faýl ýükläň',\n gridHeaders: {\n file: 'Faýl',\n size: 'Ölçegi'\n }\n }\n },\n codeBlock: {\n softWrapOnTooltip: 'Sözler boýunça geçirmäni işjeňleşdirmek',\n softWrapOffTooltip: 'Sözler boýunça geçirmäni öçürmek',\n downloadTooltip: 'Ýüklemek',\n copiedTooltip: '✓ Göçürildi',\n copyTooltip: 'Göçürmek',\n viewAllText: 'Hemmesini görkezmek',\n viewLessText: 'Ýygyrmak',\n openExternalSystemTooltip: 'Daşarky ulgamda açmak'\n } satisfies KbqCodeBlockLocaleConfiguration,\n timezone: {\n searchPlaceholder: 'Şäher ýa-da sagat guşagy'\n },\n actionsPanel: {\n closeTooltip: 'Saýlawy ýatyr'\n } satisfies KbqActionsPanelLocaleConfiguration,\n filterBar: {\n reset: {\n buttonName: 'Täzeden sazlamak'\n },\n search: {\n tooltip: 'Gözleg',\n placeholder: 'Gözleg'\n },\n filters: {\n defaultName: 'Filtrler',\n saveNewFilterTooltip: 'Täze filtri ýatda saklamak',\n searchPlaceholder: 'Gözleg',\n searchEmptyResult: 'Hiç zat tapylmady',\n saveAsNewFilter: 'Täze filtr hökmünde ýatda saklamak',\n saveChanges: 'Üýtgetmeleri ýatda saklamak',\n saveAsNew: 'Täze hökmünde ýatda saklamak',\n change: 'Üýtgetmek',\n resetChanges: 'Üýtgetmeleri täzeden sazlamak',\n remove: 'Pozmak',\n name: 'Ady',\n error: 'Beýle atly gözleg eýýäm bar',\n errorHint: 'Filtri ýatda sakladyp bolmady. Täzeden synanyşyň ýa-da administratora habar beriň.',\n saveButton: 'Ýatda saklamak',\n cancelButton: 'Ýatyrmak'\n },\n add: {\n tooltip: 'Filtr goşmak'\n },\n pipe: {\n clearButtonTooltip: 'Arassalamak',\n removeButtonTooltip: 'Pozmak',\n applyButton: 'Ulanmak',\n emptySearchResult: 'Hiç zat tapylmady'\n },\n datePipe: {\n customPeriod: 'Erkin döwür',\n customPeriodFrom: 'şundan',\n customPeriodTo: 'şuňa',\n customPeriodErrorHint: 'Döwrüň başlangyjy gutarýan wagtyndan soň bolup bilmeýär',\n backToPeriodSelection: 'Döwür saýlamaga dolanmak'\n }\n }\n};\n","import { KbqActionsPanelLocaleConfiguration, KbqCodeBlockLocaleConfiguration } from './types';\n\nexport const zhCNLocaleData = {\n select: { hiddenItemsText: '另外 {{ number }} 个' },\n datepicker: {\n placeholder: '年/月/日'\n },\n timepicker: {\n placeholder: {\n full: '时:分:秒',\n short: '时:分'\n }\n },\n fileUpload: {\n single: {\n captionText: '将文件拖到此处或{{ browseLink }}',\n browseLink: '选择'\n },\n multiple: {\n captionText: '拖到此处或{{ browseLink }}',\n captionTextWhenSelected: '拖动更多文件或{{ browseLink }}',\n captionTextForCompactSize: '拖动文件或{{ browseLink }}',\n browseLink: '选择',\n title: '上传文件',\n gridHeaders: {\n file: '文件',\n size: '大小'\n }\n }\n },\n codeBlock: {\n softWrapOnTooltip: '启用文本换行',\n softWrapOffTooltip: '禁用文本换行',\n downloadTooltip: '下载',\n copiedTooltip: '✓已复制',\n copyTooltip: '复制',\n viewAllText: '显示全部',\n viewLessText: '显示部分',\n openExternalSystemTooltip: '在外部系统中打开'\n } satisfies KbqCodeBlockLocaleConfiguration,\n timezone: {\n searchPlaceholder: '城市或时区'\n },\n actionsPanel: {\n closeTooltip: '取消选择'\n } satisfies KbqActionsPanelLocaleConfiguration,\n filterBar: {\n reset: {\n buttonName: '重置'\n },\n search: {\n tooltip: '搜索',\n placeholder: '搜索'\n },\n filters: {\n defaultName: '筛选器',\n saveNewFilterTooltip: '保存新筛选器',\n searchPlaceholder: '搜索',\n searchEmptyResult: '未找到任何内容',\n saveAsNewFilter: '另存为新筛选器',\n saveChanges: '保存更改',\n saveAsNew: '另存为新的',\n change: '编辑',\n resetChanges: '重置',\n remove: '删除',\n name: '名称',\n error: '已经使用此名称进行过搜索',\n errorHint: '无法保存筛选器。请重试或联系管理员。',\n saveButton: '保存',\n cancelButton: '取消'\n },\n add: {\n tooltip: '添加筛选器'\n },\n pipe: {\n clearButtonTooltip: '清除',\n removeButtonTooltip: '删除',\n applyButton: '应用',\n emptySearchResult: '未找到任何内容'\n },\n datePipe: {\n customPeriod: '自定义时段',\n customPeriodFrom: '从',\n customPeriodTo: '到',\n customPeriodErrorHint: '时段开始时间不能晚于结束时间',\n backToPeriodSelection: '返回以选择一个时段'\n }\n }\n};\n","export const enUSFormattersData = {\n formatters: {\n number: {\n rounding: {\n separator: '',\n groupSeparator: '.',\n thousand: 'K',\n million: 'M',\n billion: 'B',\n trillion: 'T'\n }\n }\n },\n input: {\n number: {\n groupSeparator: [','],\n fractionSeparator: '.'\n }\n },\n sizeUnits: {\n defaultUnitSystem: 'SI',\n defaultPrecision: 2,\n unitSystems: {\n SI: {\n abbreviations: ['B', 'KB', 'MB', 'GB', 'TB'],\n base: 10,\n power: 3\n },\n IEC: {\n abbreviations: ['B', 'KiB', 'MiB', 'GiB', 'TiB'],\n base: 2,\n power: 10\n }\n }\n }\n};\n\nexport const esLAFormattersData = {\n formatters: {\n number: {\n rounding: {\n separator: '',\n groupSeparator: ',',\n thousand: 'K',\n million: 'M',\n billion: 'MRD',\n trillion: 'B'\n }\n }\n },\n input: {\n number: {\n // nbsp is generated automatically and used by default in spec\n groupSeparator: [' ', ' '],\n fractionSeparator: ','\n }\n },\n sizeUnits: {\n defaultUnitSystem: 'SI',\n defaultPrecision: 2,\n unitSystems: {\n SI: {\n abbreviations: ['Б', 'КБ', 'МБ', 'ГБ', 'ТБ'],\n base: 10,\n power: 3\n },\n IEC: {\n abbreviations: ['Б', 'КиБ', 'МиБ', 'ГиБ', 'ТиБ'],\n base: 2,\n power: 10\n }\n }\n }\n};\n\nexport const faIRFormattersData = {\n formatters: {\n number: {\n rounding: {\n separator: ' ',\n groupSeparator: '٫',\n thousand: 'هزار',\n million: 'میلیون',\n billion: 'م',\n trillion: 'تریلیون',\n rtl: true\n }\n }\n },\n input: {\n number: {\n groupSeparator: ['\\u066C'],\n fractionSeparator: '\\u066B'\n }\n },\n sizeUnits: {\n defaultUnitSystem: 'SI',\n defaultPrecision: 2,\n unitSystems: {\n SI: {\n abbreviations: ['Б', 'КБ', 'МБ', 'ГБ', 'ТБ'],\n base: 10,\n power: 3\n },\n IEC: {\n abbreviations: ['Б', 'КиБ', 'МиБ', 'ГиБ', 'ТиБ'],\n base: 2,\n power: 10\n }\n }\n }\n};\n\nexport const ptBRFormattersData = {\n formatters: {\n number: {\n rounding: {\n separator: ' ',\n groupSeparator: ',',\n thousand: 'mil',\n million: 'mi',\n billion: 'bi',\n trillion: 'tri'\n }\n }\n },\n input: {\n number: {\n groupSeparator: ['.'],\n fractionSeparator: ','\n }\n },\n sizeUnits: {\n defaultUnitSystem: 'SI',\n defaultPrecision: 2,\n unitSystems: {\n SI: {\n abbreviations: ['Б', 'КБ', 'МБ', 'ГБ', 'ТБ'],\n base: 10,\n power: 3\n },\n IEC: {\n abbreviations: ['Б', 'КиБ', 'МиБ', 'ГиБ', 'ТиБ'],\n base: 2,\n power: 10\n }\n }\n }\n};\n\nexport const ruRUFormattersData = {\n formatters: {\n number: {\n rounding: {\n separator: ' ',\n groupSeparator: ',',\n thousand: 'К',\n million: 'М',\n billion: 'М',\n trillion: 'Т'\n }\n }\n },\n input: {\n number: {\n // nbsp is generated automatically and used by default in spec\n groupSeparator: [' ', ' '],\n fractionSeparator: ',',\n startFormattingFrom: 4\n }\n },\n sizeUnits: {\n defaultUnitSystem: 'SI',\n defaultPrecision: 2,\n unitSystems: {\n SI: {\n abbreviations: ['Б', 'КБ', 'МБ', 'ГБ', 'ТБ'],\n base: 10,\n power: 3\n },\n IEC: {\n abbreviations: ['Б', 'КиБ', 'МиБ', 'ГиБ', 'ТиБ'],\n base: 2,\n power: 10\n }\n }\n }\n};\n\nexport const zhCNFormattersData = {\n formatters: {\n number: {\n rounding: {\n separator: ' ',\n groupSeparator: '.',\n tenThousand: '万',\n oneHundredMillions: '亿',\n trillion: '兆'\n }\n }\n },\n input: {\n number: {\n groupSeparator: [','],\n fractionSeparator: '.'\n }\n },\n sizeUnits: {\n defaultUnitSystem: 'SI',\n defaultPrecision: 2,\n unitSystems: {\n SI: {\n abbreviations: ['Б', 'КБ', 'МБ', 'ГБ', 'ТБ'],\n base: 10,\n power: 3\n },\n IEC: {\n abbreviations: ['Б', 'КиБ', 'МиБ', 'ГиБ', 'ТиБ'],\n base: 2,\n power: 10\n }\n }\n }\n};\n\nexport const tkTMFormattersData = {\n formatters: {\n number: {\n rounding: {\n separator: ' ',\n groupSeparator: '',\n thousand: 'M',\n million: 'Mn',\n billion: 'Mr',\n trillion: 'Tn'\n }\n }\n },\n input: {\n number: {\n groupSeparator: [' '],\n fractionSeparator: ','\n }\n },\n sizeUnits: {\n defaultUnitSystem: 'SI',\n defaultPrecision: 2,\n unitSystems: {\n SI: {\n abbreviations: ['B', 'KB', 'MB', 'GB', 'TB'],\n base: 10,\n power: 3\n },\n IEC: {\n abbreviations: ['B', 'KiB', 'MiB', 'GiB', 'TiB'],\n base: 2,\n power: 10\n }\n }\n }\n};\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, inject, Injectable, InjectionToken, Optional, Provider } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { enUSLocaleData } from './en-US';\nimport { esLALocaleData } from './es-LA';\nimport { faIRLocaleData } from './fa-IR';\nimport {\n enUSFormattersData,\n esLAFormattersData,\n faIRFormattersData,\n ptBRFormattersData,\n ruRUFormattersData,\n tkTMFormattersData,\n zhCNFormattersData\n} from './formatters';\nimport { ptBRLocaleData } from './pt-BR';\nimport { ruRULocaleData } from './ru-RU';\nimport { tkTMLocaleData } from './tk-TM';\nimport { zhCNLocaleData } from './zh-CN';\n\nexport const KBQ_LOCALE_ID = new InjectionToken<string>('KbqLocaleId');\n\nexport const KBQ_DEFAULT_LOCALE_ID = 'ru-RU';\n\nexport function KBQ_DEFAULT_LOCALE_DATA_FACTORY() {\n return {\n items: [\n { id: 'en-US', name: 'English' },\n { id: 'zh-CN', name: '简体中文' },\n { id: 'es-LA', name: 'Español' },\n { id: 'pt-BR', name: 'Português' },\n { id: 'ru-RU', name: 'Русский' },\n { id: 'fa-IR', name: 'فارسی' },\n { id: 'tk-TM', name: 'Türkmen' }\n ],\n 'en-US': { ...enUSLocaleData, ...enUSFormattersData },\n 'zh-CN': { ...zhCNLocaleData, ...zhCNFormattersData },\n 'es-LA': { ...esLALocaleData, ...esLAFormattersData },\n 'pt-BR': { ...ptBRLocaleData, ...ptBRFormattersData },\n 'ru-RU': { ...ruRULocaleData, ...ruRUFormattersData },\n 'fa-IR': { ...faIRLocaleData, ...faIRFormattersData },\n 'tk-TM': { ...tkTMLocaleData, ...tkTMFormattersData }\n };\n}\nexport const KBQ_LOCALE_DATA = new InjectionToken<any>('KBQ_LOCALE_DATA', {\n providedIn: 'root',\n factory: KBQ_DEFAULT_LOCALE_DATA_FACTORY\n});\n\nexport const KBQ_LOCALE_SERVICE = new InjectionToken<KbqLocaleService>('KBQ_LOCALE_SERVICE');\n\n/**\n * Attribute name to be used to set the locale in the html element.\n *\n * @default 'lang'\n *\n * @docs-private\n */\nexport const KBQ_LOCALE_SERVICE_LANG_ATTR_NAME = new InjectionToken<string>('KBQ_LOCALE_SERVICE_LANG_ATTR_NAME', {\n factory: () => 'lang'\n});\n\n/**\n * Utility provider to configure the attribute name to be used to set the locale in the html element.\n *\n * @see KBQ_LOCALE_SERVICE_LANG_ATTR_NAME\n *\n * @docs-private\n */\nexport const kbqLocaleServiceLangAttrNameProvider = (attrName: string): Provider => ({\n provide: KBQ_LOCALE_SERVICE_LANG_ATTR_NAME,\n useValue: attrName\n});\n\n@Injectable({ providedIn: 'root' })\nexport class KbqLocaleService {\n readonly changes: BehaviorSubject<string>;\n readonly locales: any = {};\n\n private readonly document = inject(DOCUMENT);\n\n id: string;\n current;\n\n private readonly langAttrName = inject(KBQ_LOCALE_SERVICE_LANG_ATTR_NAME);\n\n constructor(@Optional() @Inject(KBQ_LOCALE_ID) id: string, @Optional() @Inject(KBQ_LOCALE_DATA) localeData) {\n this.locales = localeData;\n\n this.id = id || KBQ_DEFAULT_LOCALE_ID;\n this.current = this.locales[this.id];\n\n this.changes = new BehaviorSubject(this.id);\n }\n\n setLocale(id: string) {\n this.id = id;\n this.current = this.locales[this.id];\n\n this.document.documentElement.setAttribute(this.langAttrName, this.id);\n\n this.changes.next(this.id);\n }\n\n addLocale(id: string, localeData) {\n this.id = id;\n this.changes.next(this.id);\n\n this.locales[this.id] = localeData;\n }\n\n getParams(componentName: string) {\n return this.current[componentName];\n }\n}\n\n// todo code below need refactor or delete in DS-3603\nexport function numberByParts(\n value: string,\n fractionSeparator: string,\n groupSeparator: string\n): { integer: string; fraction: string } {\n const result = { integer: '', fraction: '' };\n\n const numberByParts = value.split(fractionSeparator);\n\n if (numberByParts.length > 1) {\n result.fraction = numberByParts.pop() || '';\n result.integer = numberByParts\n .join()\n .replace(groupSeparator, '')\n .replace(fractionSeparator, '')\n .replace(/\\D/g, '');\n } else {\n result.integer = numberByParts.join().replace(groupSeparator[0], '').replace(/\\D/g, '');\n }\n\n return result;\n}\n\n/**\n * Function that returns a string representation of a number without localized separators\n */\nexport function normalizeNumber(\n value: string | null | undefined,\n customConfig: { groupSeparator: string[]; fractionSeparator: string }\n): string {\n if (value === null || value === undefined) return '';\n\n const { groupSeparator, fractionSeparator } = customConfig;\n const groupSeparatorRegexp = new RegExp(`[${groupSeparator.join('')}]`, 'g');\n const fractionSeparatorRegexp = new RegExp(`\\\\${fractionSeparator}`, 'g');\n\n return value.toString().replace(groupSeparatorRegexp, '').replace(fractionSeparatorRegexp, '.');\n}\n\n/**\n * Function that parse string and return a number. The string can be in any locale.\n */\nexport function checkAndNormalizeLocalizedNumber(num: string | null | undefined, locale?: string): number | null {\n if (num === null || num === undefined) return null;\n\n const locales = KBQ_DEFAULT_LOCALE_DATA_FACTORY();\n\n if (locale && locales[locale]) {\n const config = locales[locale].input.number;\n let normalized: number;\n\n if (!/\\d/g.test(num)) return +num;\n\n const { groupSeparator, fractionSeparator } = config;\n const { integer, fraction } = numberByParts(num, fractionSeparator, groupSeparator.join(''));\n\n const fractionSeparatorRegexp = new RegExp(`\\\\${fractionSeparator}`, 'g');\n\n if (fraction) {\n normalized = +[integer, fraction].join('.');\n } else {\n normalized = +integer.replace(fractionSeparatorRegexp, '.');\n }\n\n if (!Number.isNaN(normalized)) {\n return normalized;\n }\n }\n\n /* if some locale input config satisfies pasted number, try to normalise with selected locale config */\n let numberOutput: number | null = null;\n\n for (const config of locales.items.map(({ id }) => locales[id].input.number)) {\n const normalized = +normalizeNumber(num, config);\n\n if (!Number.isNaN(normalized)) {\n numberOutput = normalized;\n break;\n }\n }\n\n return numberOutput;\n}\n\n// todo code above need refactor or delete in DS-3603\n","import { NgModule } from '@angular/core';\nimport { KBQ_LOCALE_SERVICE, KbqLocaleService } from './locale-service';\n\n@NgModule({\n providers: [\n { provide: KBQ_LOCALE_SERVICE, useClass: KbqLocaleService }]\n})\nexport class KbqLocaleServiceModule {}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DateAdapter } from '@koobiq/date-adapter';\nimport { DateFormatter as BaseDateFormatter } from '@koobiq/date-formatter';\nimport { KBQ_DATE_LOCALE } from '../../datetime';\nimport { KBQ_LOCALE_SERVICE } from '../../locales';\n\n@Injectable()\nexport class DateFormatter<D> extends BaseDateFormatter<D> {\n constructor(\n override readonly adapter: DateAdapter<D>,\n @Inject(KBQ_DATE_LOCALE) locale: string,\n @Optional() @Inject(KBQ_LOCALE_SERVICE) protected localeService?\n ) {\n super(adapter, locale);\n\n this.localeService?.changes.pipe(takeUntilDestroyed()).subscribe((locale) => this.setLocale(locale));\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { DateTimeOptions } from '@koobiq/date-formatter';\nimport { DateAdapter } from '../../datetime';\nimport { DateFormatter } from './formatter';\n\nexport class BaseFormatterPipe<D> {\n protected readonly adapter: DateAdapter<D> = inject(DateAdapter<D>);\n protected readonly formatter: DateFormatter<D> = inject(DateFormatter<D>);\n}\n\n@Pipe({\n standalone: true,\n name: 'absoluteLongDate'\n})\nexport class AbsoluteDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string, currYear?: boolean): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.absoluteLongDate(date, currYear) : '';\n }\n}\n\n@Pipe({\n standalone: true,\n name: 'absoluteLongDateImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class AbsoluteDateFormatterImpurePipe<D> extends AbsoluteDateFormatterPipe<D> {}\n\n@Pipe({\n standalone: true,\n name: 'absoluteLongDateTime'\n})\nexport class AbsoluteDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string, options?: DateTimeOptions): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.absoluteLongDateTime(date, options) : '';\n }\n}\n\n@Pipe({\n standalone: true,\n name: 'absoluteLongDateTimeImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class AbsoluteDateTimeFormatterImpurePipe<D> extends AbsoluteDateTimeFormatterPipe<D> {}\n\n@Pipe({\n standalone: true,\n name: 'absoluteShortDate'\n})\nexport class AbsoluteDateShortFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string, currYear?: boolean): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.absoluteShortDate(date, currYear) : '';\n }\n}\n\n@Pipe({\n standalone: true,\n name: 'absoluteShortDateImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class AbsoluteDateShortFormatterImpurePipe<D> extends AbsoluteDateShortFormatterPipe<D> {}\n\n@Pipe({\n standalone: true,\n name: 'absoluteShortDateTime'\n})\nexport class AbsoluteShortDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string, options?: DateTimeOptions): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.absoluteShortDateTime(date, options) : '';\n }\n}\n\n@Pipe({\n standalone: true,\n name: 'absoluteShortDateTimeImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class AbsoluteShortDateTimeFormatterImpurePipe<D> extends AbsoluteShortDateTimeFormatterPipe<D> {}\n\n@Pipe({\n standalone: true,\n name: 'relativeLongDate'\n})\nexport class RelativeDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.relativeLongDate(date) : '';\n }\n}\n\n@Pipe({\n standalone: true,\n name: 'relativeLongDateImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RelativeDateFormatterImpurePipe<D> extends RelativeDateFormatterPipe<D> {}\n\n@Pipe({\n standalone: true,\n name: 'relativeLongDateTime'\n})\nexport class RelativeDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string, options?: DateTimeOptions): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.relativeLongDateTime(date, options) : '';\n }\n}\n\n@Pipe({\n standalone: true,\n name: 'relativeLongDateTimeImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RelativeDateTimeFormatterImpurePipe<D> extends RelativeDateTimeFormatterPipe<D> {}\n\n@Pipe({\n standalone: true,\n name: 'relativeShortDate'\n})\nexport class RelativeShortDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.relativeShortDate(date) : '';\n }\n}\n\n@Pipe({\n standalone: true,\n name: 'relativeShortDateImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RelativeShortDateFormatterImpurePipe<D> extends RelativeShortDateFormatterPipe<D> {}\n\n@Pipe({\n standalone: true,\n name: 'relativeShortDateTime'\n})\nexport class RelativeShortDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string, options?: DateTimeOptions): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.relativeShortDateTime(date, options) : '';\n }\n}\n\n@Pipe({\n standalone: true,\n name: 'relativeShortDateTimeImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RelativeShortDateTimeFormatterImpurePipe<D> extends RelativeShortDateTimeFormatterPipe<D> {}\n\n@Pipe({\n standalone: true,\n name: 'rangeLongDate'\n})\nexport class RangeDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform([value1, value2]: D[] | string[]): string {\n const date1 = this.adapter.deserialize(value1);\n const date2 = this.adapter.deserialize(value2);\n\n return this.formatter.rangeLongDate(date1 as D, date2 as D);\n }\n}\n\n@Pipe({\n standalone: true,\n name: 'rangeLongDateImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RangeDateFormatterImpurePipe<D> extends RangeDateFormatterPipe<D> {}\n\n@Pipe({\n standalone: true,\n name: 'rangeShortDate'\n})\nexport class RangeShortDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform([value1, value2]: D[] | string[]): string {\n const date1 = this.adapter.deserialize(value1);\n const date2 = this.adapter.deserialize(value2);\n\n return this.formatter.rangeShortDate(date1 as D, date2 as D);\n }\n}\n\n@Pipe({\n standalone: true,\n name: 'rangeShortDateImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RangeShortDateFormatterImpurePipe<D> extends RangeShortDateFormatterPipe<D> {}\n\n@Pipe({\n standalone: true,\n name: 'rangeLongDateTime'\n})\nexport class RangeDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string {\n const date1 = this.adapter.deserialize(value1);\n const date2 = this.adapter.deserialize(value2);\n\n return this.formatter.rangeLongDateTime(date1 as D, date2 as D, options);\n }\n}\n\n@Pipe({\n standalone: true,\n name: 'rangeLongDateTimeImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RangeDateTimeFormatterImpurePipe<D> extends RangeDateTimeFormatterPipe<D> {}\n\n@Pipe({\n standalone: true,\n name: 'rangeMiddleDateTime'\n})\nexport class RangeMiddleDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string {\n const date1 = this.adapter.deserialize(value1);\n const date2 = this.adapter.deserialize(value2);\n\n return this.formatter.rangeMiddleDateTime(date1 as D, date2 as D, options);\n }\n}\n\n@Pipe({\n standalone: true,\n name: 'rangeMiddleDateTimeImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RangeMiddleDateTimeFormatterImpurePipe<D> extends RangeMiddleDateTimeFormatterPipe<D> {}\n\n@Pipe({\n standalone: true,\n name: 'rangeShortDateTime'\n})\nexport class RangeShortDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string {\n const date1 = this.adapter.deserialize(value1);\n const date2 = this.adapter.deserialize(value2);\n\n return this.formatter.rangeShortDateTime(date1 as D, date2 as D, options);\n }\n}\n\n@Pipe({\n standalone: true,\n name: 'rangeShortDateTimeImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RangeShortDateTimeFormatterImpurePipe<D> extends RangeShortDateTimeFormatterPipe<D> {}\n","import { Inject, Injectable, InjectionToken, Optional, Pipe, PipeTransform } from '@angular/core';\nimport { KBQ_DEFAULT_LOCALE_ID, KBQ_LOCALE_ID, KBQ_LOCALE_SERVICE, KbqLocaleService } from '../../locales';\n\nexport const KBQ_NUMBER_FORMATTER_OPTIONS = new InjectionToken<string>('KbqNumberFormatterOptions');\n\nexport const KBQ_NUMBER_FORMATTER_DEFAULT_OPTIONS: ParsedDigitsInfo = {\n useGrouping: true,\n minimumIntegerDigits: 1,\n minimumFractionDigits: 0,\n maximumFractionDigits: 3\n};\n\nfunction isEmpty(value: any): boolean {\n return value == null || value === '' || value !== value;\n}\n\nfunction strToNumber(value: number | string): number {\n if (typeof value === 'string' && !isNaN(Number(value) - parseFloat(value))) {\n return Number(value);\n }\n\n if (typeof value !== 'number') {\n throw new Error(`${value} is not a number`);\n }\n\n return value;\n}\n\nexport const NUMBER_FORMAT_REGEXP = /^(\\d+)?\\.((\\d+)(-(\\d+))?(-(true|false))?)?$/;\n\nconst minIntGroupPosition = 1;\nconst minFractionGroupPosition = 3;\nconst maxFractionGroupPosition = 5;\nconst useGroupingPosition = 7;\n\ninterface NumberFormatOptions {\n useGrouping: boolean;\n\n minimumIntegerDigits: number;\n minimumFractionDigits: number;\n maximumFractionDigits: number;\n minimumSignificantDigits: number;\n maximumSignificantDigits: number;\n\n localeMatcher?: string;\n style?: string;\n\n currency?: string;\n currencyDisplay?: string;\n}\n\ninterface RoundDecimalOptions {\n separator: string;\n groupSeparator: string;\n thousands?: string;\n tenThousand?: string;\n million?: string;\n oneHundredMillions?: string;\n billion?: string;\n trillion: string;\n rtl?: boolean;\n}\n\nconst ROUNDING_UNITS = {\n thousand: 1e3,\n tenThousand: 10 * 1e3,\n million: 1e6,\n oneHundredMillions: 100 * 1e6,\n billion: 1e9,\n trillion: 1e12\n};\n\nconst intervalsConfig = {\n supportedLanguages: ['ru-RU', 'en-US', 'es-LA', 'pt-BR', 'fa-IR'],\n intervals: [\n { startRange: 1, endRange: ROUNDING_UNITS.thousand },\n { startRange: ROUNDING_UNITS.thousand, endRange: ROUNDING_UNITS.tenThousand, precision: 1 },\n { startRange: ROUNDING_UNITS.tenThousand, endRange: ROUNDING_UNITS.million },\n { startRange: ROUNDING_UNITS.million, endRange: ROUNDING_UNITS.million * 10, precision: 1 },\n { startRange: ROUNDING_UNITS.million * 10, endRange: ROUNDING_UNITS.billion }\n ]\n};\n\nclass ParsedDigitsInfo {\n useGrouping: boolean;\n minimumIntegerDigits: number;\n minimumFractionDigits: number;\n maximumFractionDigits: number;\n}\n\nconst defaultValueForGroupingInRULocale: number = 10000;\n\nfunction parseDigitsInfo(digitsInfo: string): ParsedDigitsInfo {\n const parts = digitsInfo.match(NUMBER_FORMAT_REGEXP);\n\n if (parts === null) {\n throw new Error(`${digitsInfo} is not a valid digit info`);\n }\n\n const minIntPart = parts[minIntGroupPosition];\n const minFractionPart = parts[minFractionGroupPosition];\n const maxFractionPart = parts[maxFractionGroupPosition];\n const useGroupingPart = parts[useGroupingPosition];\n\n const result = new ParsedDigitsInfo();\n\n if (minIntPart != null) {\n result.minimumIntegerDigits = parseInt(minIntPart);\n }\n\n if (minFractionPart != null) {\n result.minimumFractionDigits = parseInt(minFractionPart);\n }\n\n if (maxFractionPart != null) {\n result.maximumFractionDigits = parseInt(maxFractionPart);\n } else if (minFractionPart != null && result.minimumFractionDigits > result.maximumFractionDigits) {\n result.maximumFractionDigits = result.minimumFractionDigits;\n }\n\n if (useGroupingPart != null) {\n result.useGrouping = useGroupingPart === 'true';\n }\n\n return result;\n}\n\n@Injectable({ providedIn: 'root' })\n@Pipe({ name: 'kbqNumber', pure: false })\nexport class KbqDecimalPipe implements PipeTransform {\n constructor(\n @Optional() @Inject(KBQ_LOCALE_ID) private id: string,\n @Optional() @Inject(KBQ_LOCALE_SERVICE) private localeService: KbqLocaleService,\n @Optional() @Inject(KBQ_NUMBER_FORMATTER_OPTIONS) private readonly options: ParsedDigitsInfo\n ) {\n this.options = this.options || KBQ_NUMBER_FORMATTER_DEFAULT_OPTIONS;\n\n this.localeService?.changes.subscribe((newId: string) => (this.id = newId));\n }\n\n /**\n * @param value The number to be formatted.\n * @param digitsInfo Decimal representation options, specified by a string\n * in the following format:<br>\n * <code>{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}</code>.\n * - `minIntegerDigits`: The minimum number of integer digits before the decimal point.\n * Default is `1`.\n * - `minFractionDigits`: The minimum number of digits after the decimal point.\n * Default is `0`.\n * - `maxFractionDigits`: The maximum number of digits after the decimal point.\n * Default is `3`.\n * @param locale A locale code for the locale format rules to use.\n * When not supplied, uses the value of `KBQ_LOCALE_ID`, which is `ru` by default.\n */\n transform(value: any, digitsInfo?: string, locale?: string): string | null {\n if (isEmpty(value)) {\n return null;\n }\n\n const currentLocale = locale || this.id || KBQ_DEFAULT_LOCALE_ID;\n\n let parsedDigitsInfo;\n\n if (digitsInfo) {\n parsedDigitsInfo = parseDigitsInfo(digitsInfo);\n }\n\n const options: NumberFormatOptions = {\n ...this.options,\n ...parsedDigitsInfo\n };\n\n if (this.isSpecialFormatForRULocale(currentLocale, value, parsedDigitsInfo?.useGrouping)) {\n options.useGrouping = false;\n }\n\n try {\n const num = strToNumber(value);\n\n /* Guideline requires for group separator to be `space`, as in 'ru-RU' locale.\n * But by default in es-LA locale is used `comma`.\n * To reduce data manipulation, 'ru-RU' locale is used. */\n if (currentLocale === 'es-LA') {\n return Intl.NumberFormat.call(this, 'ru-RU', options).format(num);\n }\n\n return Intl.NumberFormat.call(this, currentLocale, options).format(num);\n } catch (error: any) {\n throw Error(`InvalidPipeArgument: KbqDecimalPipe for pipe '${JSON.stringify(error.message)}'`);\n }\n }\n\n isSpecialFormatForRULocale(locale: string, value: number, grouping?: boolean): boolean {\n return ['ru', 'ru-RU'].includes(locale) && grouping === undefined && value < defaultValueForGroupingInRULocale;\n }\n}\n\n@Injectable({ providedIn: 'root' })\n@Pipe({ name: 'kbqTableNumber', pure: false })\nexport class KbqTableNumberPipe implements PipeTransform {\n constructor(\n @Optional() @Inject(KBQ_LOCALE_ID) private id: string,\n @Optional() @Inject(KBQ_LOCALE_SERVICE) private localeService: KbqLocaleService,\n @Optional() @Inject(KBQ_NUMBER_FORMATTER_OPTIONS) private readonly options: ParsedDigitsInfo\n ) {\n this.options = this.options || KBQ_NUMBER_FORMATTER_DEFAULT_OPTIONS;\n\n this.localeService?.changes.subscribe((newId: string) => (this.id = newId));\n }\n\n /**\n * @param value The number to be formatted.\n * @param digitsInfo Decimal representation options, specified by a string\n * in the following format:<br>\n * <code>{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}</code>.\n * - `minIntegerDigits`: The minimum number of integer digits before the decimal point.\n * Default is `1`.\n * - `minFractionDigits`: The minimum number of digits after the decimal point.\n * Default is `0`.\n * - `maxFractionDigits`: The maximum number of digits after the decimal point.\n * Default is `3`.\n * @param locale A locale code for the locale format rules to use.\n * When not supplied, uses the value of `KBQ_LOCALE_ID`, which is `ru` by default.\n */\n transform(value: any, digitsInfo?: string, locale?: string): string | null {\n if (isEmpty(value)) {\n return null;\n }\n\n const currentLocale = locale || this.id || KBQ_DEFAULT_LOCALE_ID;\n\n let parsedDigitsInfo;\n\n if (digitsInfo) {\n parsedDigitsInfo = parseDigitsInfo(digitsInfo);\n }\n\n const options: NumberFormatOptions = {\n ...this.options,\n ...parsedDigitsInfo\n };\n\n try {\n const num = strToNumber(value);\n\n /* Guideline requires for group separator to be `space`, as in 'ru-RU' locale.\n * But by default in es-LA locale is used `comma`.\n * To reduce data manipulation, 'ru-RU' locale is used. */\n if (currentLocale === 'es-LA') {\n return Intl.NumberFormat.call(this, 'ru-RU', options).format(num);\n }\n\n return Intl.NumberFormat.call(this, currentLocale, options).format(num);\n } catch (error: any) {\n throw Error(`InvalidPipeArgument: KbqTableNumberPipe for pipe '${JSON.stringify(error.message)}'`);\n }\n }\n}\n\nexport function isWithin(startRange: number, endRange: number, valueToCheck: number): boolean {\n return startRange <= valueToCheck && valueToCheck < endRange;\n}\n\n@Injectable({ providedIn: 'root' })\n@Pipe({ name: 'kbqRoundNumber', pure: false })\nexport class KbqRoundDecimalPipe implements PipeTransform {\n roundingOptions: RoundDecimalOptions;\n\n constructor(\n @Optional() @Inject(KBQ_LOCALE_ID) private id: string,\n @Optional() @Inject(KBQ_LOCALE_SERVICE) private localeService: KbqLocaleService\n ) {\n this.localeService?.changes.subscribe((newId: string) => (this.id = newId));\n }\n\n transform(value: any, locale?: string): any {\n if (isEmpty(value)) {\n return null;\n }\n\n const currentLocale: string = locale || this.id || KBQ_DEFAULT_LOCALE_ID;\n this.roundingOptions = this.localeService.locales[currentLocale].formatters.number.rounding;\n\n try {\n const num = strToNumber(value);\n const unit = this.calculateUnit(num);\n if (!unit) {\n return Intl.NumberFormat.call(this, currentLocale, { useGrouping: false }).format(num);\n }\n\n let parts: { num?: number; fraction?: number } = {};\n\n if (intervalsConfig.supportedLanguages.includes(currentLocale)) {\n intervalsConfig.intervals.find(({ startRange, endRange, precision }) => {\n const within = isWithin(startRange, endRange, num);\n if (within) {\n if (precision) {\n parts =\n unit === 'thousand'\n ? this.calculatePartsForThousands(num)\n : {\n num: Math.trunc(num / ROUNDING_UNITS[unit]),\n fraction: this.calculateDecimal(num, ROUNDING_UNITS[unit])\n };\n } else {\n parts = { num: Math.round(num / ROUNDING_UNITS[unit]) };\n }\n }\n\n return within;\n });\n }\n\n parts = parts.num\n ? parts\n : {\n num: Math.trunc(num / ROUNDING_UNITS[unit]),\n fraction: this.calculateDecimal(num, ROUNDING_UNITS[unit])\n };\n Object.keys(parts).forEach((key) => {\n parts[key] = Intl.NumberFormat.call(this, currentLocale, { useGrouping: false }).format(parts[key]);\n });\n\n const calculatedValue = parts.fraction\n ? `${parts.num}${this.roundingOptions.groupSeparator}${parts.fraction}`\n : `${parts.num}`;\n\n return `${calculatedValue}${this.roundingOptions.separator}${this.roundingOptions[unit]}`;\n } catch (error: any) {\n throw Error(`InvalidPipeArgument: KbqRoundDecimalPipe for pipe '${JSON.stringify(error.message)}'`);\n }\n }\n\n private calculateDecimal(num: number, divider: number) {\n return Math.round(((num / divider) % 1) * 10);\n }\n\n /**\n * 2 * 1000 is a number in the interval of [1500...2500)\n *\n * 2,0 * 1000 is a number in the interval of [1950...2050)\n */\n private calculatePartsForThousands(num: number) {\n const dividedValue = num / ROUNDING_UNITS.thousand;\n const div = Math.round(dividedValue) * ROUNDING_UNITS.thousand;\n const fifty = 50;\n\n return isWithin(div - fifty, div + fifty, num)\n ? { num: Math.round(dividedValue), fraction: 0 }\n : { num: Math.round(dividedValue) };\n }\n\n private calculateUnit(num: number): string | undefined {\n let currentUnit: string | undefined;\n const localizedOptions = Object.keys(this.roundingOptions);\n\n Object.keys(ROUNDING_UNITS).every((key) => {\n if (!localizedOptions.includes(key)) {\n return true;\n }\n if (num / ROUNDING_UNITS[key] >= 1) {\n currentUnit = key;\n\n return true;\n }\n\n return false;\n });\n\n return currentUnit;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DateAdapter, KBQ_DATE_LOCALE } from '../datetime';\nimport { DateFormatter } from './date/formatter';\nimport {\n AbsoluteDateFormatterImpurePipe,\n AbsoluteDateFormatterPipe,\n AbsoluteDateShortFormatterImpurePipe,\n AbsoluteDateShortFormatterPipe,\n AbsoluteDateTimeFormatterImpurePipe,\n AbsoluteDateTimeFormatterPipe,\n AbsoluteShortDateTimeFormatterImpurePipe,\n AbsoluteShortDateTimeFormatterPipe,\n RangeDateFormatterImpurePipe,\n RangeDateFormatterPipe,\n RangeDateTimeFormatterImpurePipe,\n RangeDateTimeFormatterPipe,\n RangeMiddleDateTimeFormatterImpurePipe,\n RangeMiddleDateTimeFormatterPipe,\n RangeShortDateFormatterImpurePipe,\n RangeShortDateFormatterPipe,\n RangeShortDateTimeFormatterImpurePipe,\n RangeShortDateTimeFormatterPipe,\n RelativeDateFormatterImpurePipe,\n RelativeDateFormatterPipe,\n RelativeDateTimeFormatterImpurePipe,\n RelativeDateTimeFormatterPipe,\n RelativeShortDateFormatterImpurePipe,\n RelativeShortDateFormatterPipe,\n RelativeShortDateTimeFormatterImpurePipe,\n RelativeShortDateTimeFormatterPipe\n} from './date/formatter.pipe';\nimport { KbqDecimalPipe, KbqRoundDecimalPipe, KbqTableNumberPipe } from './number/formatter';\n\n@NgModule({\n imports: [\n AbsoluteDateFormatterPipe,\n AbsoluteDateTimeFormatterPipe,\n AbsoluteDateShortFormatterPipe,\n AbsoluteShortDateTimeFormatterPipe,\n RelativeDateFormatterPipe,\n RelativeDateTimeFormatterPipe,\n RelativeShortDateFormatterPipe,\n RelativeShortDateTimeFormatterPipe,\n RangeDateFormatterPipe,\n RangeShortDateFormatterPipe,\n RangeDateTimeFormatterPipe,\n RangeShortDateTimeFormatterPipe,\n RangeMiddleDateTimeFormatterPipe,\n AbsoluteDateFormatterImpurePipe,\n AbsoluteDateTimeFormatterImpurePipe,\n AbsoluteDateShortFormatterImpurePipe,\n AbsoluteShortDateTimeFormatterImpurePipe,\n RelativeDateFormatterImpurePipe,\n RelativeDateTimeFormatterImpurePipe,\n RelativeShortDateFormatterImpurePipe,\n RelativeShortDateTimeFormatterImpurePipe,\n RangeDateFormatterImpurePipe,\n RangeShortDateFormatterImpurePipe,\n RangeDateTimeFormatterImpurePipe,\n RangeShortDateTimeFormatterImpurePipe,\n RangeMiddleDateTimeFormatterImpurePipe\n ],\n declarations: [\n KbqDecimalPipe,\n KbqRoundDecimalPipe,\n KbqTableNumberPipe\n ],\n exports: [\n KbqDecimalPipe,\n KbqRoundDecimalPipe,\n KbqTableNumberPipe,\n AbsoluteDateFormatterPipe,\n AbsoluteDateTimeFormatterPipe,\n AbsoluteDateShortFormatterPipe,\n AbsoluteShortDateTimeFormatterPipe,\n RelativeDateFormatterPipe,\n RelativeDateTimeFormatterPipe,\n RelativeShortDateFormatterPipe,\n RelativeShortDateTimeFormatterPipe,\n RangeDateFormatterPipe,\n RangeShortDateFormatterPipe,\n RangeDateTimeFormatterPipe,\n RangeShortDateTimeFormatterPipe,\n RangeMiddleDateTimeFormatterPipe,\n AbsoluteDateFormatterImpurePipe,\n AbsoluteDateTimeFormatterImpurePipe,\n AbsoluteDateShortFormatterImpurePipe,\n AbsoluteShortDateTimeFormatterImpurePipe,\n RelativeDateFormatterImpurePipe,\n RelativeDateTimeFormatterImpurePipe,\n RelativeShortDateFormatterImpurePipe,\n RelativeShortDateTimeFormatterImpurePipe,\n RangeDateFormatterImpurePipe,\n RangeShortDateFormatterImpurePipe,\n RangeDateTimeFormatterImpurePipe,\n RangeShortDateTimeFormatterImpurePipe,\n RangeMiddleDateTimeFormatterImpurePipe\n ],\n providers: [{ provide: DateFormatter, deps: [DateAdapter, KBQ_DATE_LOCALE] }]\n})\nexport class KbqFormattersModule {}\n\nexport * from './date/formatter';\nexport * from './date/formatter.pipe';\nexport * from './number/formatter';\n","import { AfterContentInit, ContentChildren, Directive, ElementRef, QueryList } from '@angular/core';\n\n@Directive({\n selector: '.kbq-form__row, .kbq-form__fieldset, .kbq-form__legend',\n exportAs: 'kbqFormElement',\n host: {\n '[class.kbq-form-row_margin]': 'margin'\n }\n})\nexport class KbqFormElement implements AfterContentInit {\n margin = false;\n\n isRow = false;\n isFieldSet = false;\n hasLegend = false;\n isHorizontal = false;\n\n @ContentChildren(KbqFormElement) elements: QueryList<KbqFormElement>;\n\n constructor(private readonly element: ElementRef<HTMLElement>) {}\n\n ngAfterContentInit(): void {\n const classList = this.element.nativeElement.classList;\n\n this.isRow = classList.contains('kbq-form__row');\n this.isHorizontal = classList.contains('kbq-horizontal');\n\n this.isFieldSet = classList.contains('kbq-form__fieldset');\n\n if (this.isFieldSet && this.element.nativeElement.firstElementChild) {\n this.hasLegend = this.element.nativeElement.firstElementChild.classList.contains('kbq-form__legend');\n }\n }\n}\n\n@Directive({\n selector: '.kbq-form-vertical, .kbq-form-horizontal',\n exportAs: 'kbqForm',\n host: {\n class: 'kbq-form'\n }\n})\nexport class KbqForm implements AfterContentInit {\n @ContentChildren(KbqFormElement) elements: QueryList<KbqFormElement>;\n\n ngAfterContentInit(): void {\n this.handleElements(this.elements);\n }\n\n handleElements(elements: QueryList<KbqFormElement>): void {\n elements.forEach((element, index) => {\n const nextElement: KbqFormElement | undefined = elements.get(index + 1);\n\n if (element.isFieldSet && !element.isHorizontal) {\n this.handleElements(element.elements);\n }\n\n element.margin = !!(nextElement && !nextElement.hasLegend);\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqForm, KbqFormElement } from './forms.directive';\n\n@NgModule({\n exports: [\n KbqForm,\n KbqFormElement\n ],\n declarations: [\n KbqForm,\n KbqFormElement\n ]\n})\nexport class KbqFormsModule {}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\n/** Provides a set of validators for password form controls. */\nexport class PasswordValidators {\n /**\n * Validator that requires the control's value length to be at least `min` characters.\n *\n * `min` - number of characters.\n *\n * ## Usage:\n *\n * ```typescript\n * const control = new FormControl('password', PasswordValidators.minLength(10));\n * console.log(control.errors); // {minLength: {min: 10, actual: 8}}\n * ```\n */\n static minLength(min: number): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n if (typeof value !== 'string') {\n return null;\n }\n return value.length >= min ? null : { minLength: { min, actual: value.length } };\n };\n }\n\n /**\n * Validator that requires the control's value length to be at most `max` characters.\n *\n * `max` - number of characters.\n *\n * ## Usage:\n * ```typescript\n * const control = new FormControl('password', PasswordValidators.maxLength(6));\n * console.log(control.errors); // {maxLength: {max: 6, actual: 8}}\n * ```\n */\n static maxLength(max: number): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n if (typeof value !== 'string') {\n return null;\n }\n return value.length <= max ? null : { maxLength: { max, actual: value.length } };\n };\n }\n\n /**\n * Validator that requires the control's value to be at least `min` uppercase characters.\n *\n * `min` - number of uppercase characters.\n *\n * ### Usage:\n *\n * ```typescript\n * const control = new FormControl('Password', PasswordValidators.minUppercase(2));\n * console.log(control.errors); // {minUppercase: {min: 2, actual: 1}}\n * ```\n */\n static minUppercase(min: number): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const matches = (value.match(/[A-Z]/g) || []).length;\n return matches >= min ? null : { minUppercase: { min, actual: matches } };\n };\n }\n\n /**\n * Validator that requires the control's value to be at least `min` lowercase characters.\n *\n * `min` - number of lowercase characters.\n *\n * ### Usage:\n *\n * ```typescript\n * const control = new FormControl('PASSWORD', PasswordValidators.minLowercase());\n * console.log(control.errors); // {minLowercase: {min: 1, actual: 0}}\n * ```\n */\n static minLowercase(min: number): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const matches = (value.match(/[a-z]/g) || []).length;\n return matches >= min ? null : { minLowercase: { min, actual: matches } };\n };\n }\n\n /**\n * Validator that requires the control's value to be at least `min` number characters.\n *\n * `min` - number of number characters.\n *\n * ### Usage:\n *\n * ```typescript\n * const control = new FormControl('passw0rd', PasswordValidators.minNumber(2));\n * console.log(control.errors); // {minNumber: {min: 2, actual: 1}}\n * ```\n */\n static minNumber(min: number): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const matches = (value.match(/[\\d]/g) || []).length;\n return matches >= min ? null : { minNumber: { min, actual: matches } };\n };\n }\n\n /**\n * Validator that requires the control's value to be at least `min` special characters.\n *\n * `min` - number of special characters.\n *\n * ### Special characters:\n * ```js\n * ['!','@','#','$','%','^','&','*']\n * ```\n *\n * ### Usage:\n *\n * ```typescript\n * const control = new FormControl('pa$sword', PasswordValidators.minSpecial(2));\n * console.log(control.errors); // {minSpecial: {min: 2, actual: 1}}\n * ```\n */\n static minSpecial(min: number): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const matches = (value.match(/[!@#$%^&*]/g) || []).length;\n return matches >= min ? null : { minSpecial: { min, actual: matches } };\n };\n }\n}\n\n/** Provides a set of validators for file-related form controls. */\nexport class FileValidators {\n /**\n * Validator that checks if the file size is less than or equal to the provided `maxSize`.\n *\n * @param maxSize - The maximum allowed file size in bytes.\n *\n * @returns A ValidatorFn function that checks the file size.\n *\n * ## Usage:\n *\n * ```typescript\n * const control = new FormControl(null, [FileValidators.maxFileSize(1024 * 1024)]); // 1MB\n * control.setValue(FILE_LESS_OR_EQUAL_THAN_1MB);\n * console.log(control.errors); // null\n * control.setValue(FILE_MORE_THAN_1MB);\n * console.log(control.errors); // {maxFileSize: { max: 1048576, actual: FILE_MORE_THAN_1MB.size }}\n * ```\n */\n static maxFileSize(maxSize: number): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n if (!value) return null;\n\n const size = value instanceof File ? value.size : value.file.size;\n\n if (size > maxSize) {\n return { maxFileSize: { max: maxSize, actual: size } };\n }\n\n return null;\n };\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nexport function escapeRegExp(value: string) {\n if (value) {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n }\n\n return value;\n}\n\n@Pipe({ name: 'mcHighlight' })\nexport class KbqHighlightPipe implements PipeTransform {\n transform(value: any, args: any): any {\n if (!args || typeof args !== 'string') {\n return value;\n }\n\n return value.replace(new RegExp(`(${escapeRegExp(args)})`, 'gi'), '<mark class=\"kbq-highlight\">$1</mark>');\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { KbqHighlightPipe } from './highlight.pipe';\n\n@NgModule({\n imports: [CommonModule],\n exports: [KbqHighlightPipe],\n declarations: [KbqHighlightPipe]\n})\nexport class KbqHighlightModule {}\n\nexport * from './highlight.pipe';\n","import { Directive, ElementRef, NgModule, QueryList } from '@angular/core';\n\n/**\n * Shared directive to count lines inside a text area, such as a list item.\n * Line elements can be extracted with a @ContentChildren(KbqLine) query, then\n * counted by checking the query list's length.\n */\n@Directive({\n selector: '[kbq-line], [mcLine]',\n host: { class: 'kbq-line' }\n})\nexport class KbqLine {}\n\n/**\n * Helper that takes a query list of lines and sets the correct class on the host.\n * @docs-private\n */\nexport class KbqLineSetter {\n constructor(\n private _lines: QueryList<KbqLine>,\n private _element: ElementRef\n ) {\n this.setLineClass(this._lines.length);\n\n this._lines.changes.subscribe(() => {\n this.setLineClass(this._lines.length);\n });\n }\n\n private setLineClass(count: number): void {\n const minLineClassNumber = 2;\n const maxLineClassNumber = 3;\n this.resetClasses();\n if (count === minLineClassNumber || count === maxLineClassNumber) {\n this.setClass(`kbq-${count}-line`, true);\n } else if (count > maxLineClassNumber) {\n this.setClass(`kbq-multi-line`, true);\n }\n }\n\n private resetClasses(): void {\n this.setClass('kbq-2-line', false);\n this.setClass('kbq-3-line', false);\n this.setClass('kbq-multi-line', false);\n }\n\n private setClass(className: string, isAdd: boolean): void {\n if (isAdd) {\n this._element.nativeElement.classList.add(className);\n } else {\n this._element.nativeElement.classList.remove(className);\n }\n }\n}\n\n@NgModule({\n imports: [],\n exports: [KbqLine],\n declarations: [KbqLine]\n})\nexport class KbqLineModule {}\n","import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n DestroyRef,\n ElementRef,\n EventEmitter,\n inject,\n Inject,\n InjectionToken,\n OnDestroy,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ENTER, SPACE, TAB } from '@koobiq/cdk/keycodes';\nimport { CanDisableCtor, HasTabIndexCtor, mixinDisabled, mixinTabIndex } from '../common-behaviors';\n\nexport interface KbqOptionActionParent {\n dropdownTrigger: {\n opened: boolean;\n restoreFocus: boolean;\n dropdownClosed: EventEmitter<void>;\n lastDestroyReason: void | 'click' | 'keydown' | 'tab';\n openedBy: Exclude<FocusOrigin, 'program' | null> | undefined;\n toggle(): void;\n };\n tooltipTrigger: {\n disabled: boolean;\n };\n focus(): void;\n}\n\nexport const KBQ_OPTION_ACTION_PARENT = new InjectionToken<KbqOptionActionParent>('KBQ_OPTION_ACTION_PARENT');\n\n/** @docs-private */\nexport class KbqOptionActionBase {}\n\n/** @docs-private */\nexport const KbqOptionActionMixinBase: HasTabIndexCtor & CanDisableCtor & typeof KbqOptionActionBase = mixinTabIndex(\n mixinDisabled(KbqOptionActionBase)\n);\n\n@Component({\n selector: 'kbq-option-action',\n exportAs: 'kbqOptionAction',\n template: `\n @if (!!customIcon) {\n <ng-content select=\"[kbq-icon]\" />\n } @else {\n <i class=\"kbq kbq-icon kbq-ellipsis-vertical_16\"></i>\n }\n `,\n styleUrls: ['./action.scss'],\n host: {\n class: 'kbq-option-action',\n '[class.kbq-expanded]': 'false',\n '[class.kbq-disabled]': 'disabled',\n\n '[attr.disabled]': 'disabled || null',\n '[attr.tabIndex]': '-1',\n\n '(focus)': 'onFocus($event)',\n '(blur)': 'onBlur()',\n '(click)': 'onClick($event)',\n '(keydown)': 'onKeyDown($event)'\n },\n inputs: ['disabled'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqOptionActionComponent extends KbqOptionActionMixinBase implements AfterViewInit, OnDestroy {\n @ContentChild('customIcon') customIcon: ElementRef;\n\n hasFocus: boolean = false;\n\n get active(): boolean {\n return this.hasFocus || !!this.option.dropdownTrigger?.opened;\n }\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private elementRef: ElementRef,\n private focusMonitor: FocusMonitor,\n @Inject(KBQ_OPTION_ACTION_PARENT) private option: KbqOptionActionParent\n ) {\n super();\n }\n\n ngAfterViewInit(): void {\n this.focusMonitor.monitor(this.elementRef.nativeElement);\n\n if (!this.option.dropdownTrigger) return;\n\n this.option.dropdownTrigger.restoreFocus = false;\n\n this.option.dropdownTrigger.dropdownClosed.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.preventShowingTooltip();\n\n const destroyReason: FocusOrigin =\n this.option.dropdownTrigger.lastDestroyReason === 'keydown' ? 'keyboard' : 'program';\n\n this.focus(destroyReason);\n });\n }\n\n ngOnDestroy(): void {\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n\n focus(origin?: FocusOrigin, options?: FocusOptions) {\n if (this.focusMonitor && origin) {\n this.focusMonitor.focusVia(this.elementRef.nativeElement, origin, options);\n } else {\n this.elementRef.nativeElement.focus();\n }\n\n this.hasFocus = true;\n }\n\n onFocus($event) {\n $event.stopPropagation();\n\n this.hasFocus = true;\n }\n\n onBlur() {\n this.hasFocus = false;\n }\n\n onClick($event) {\n $event.stopPropagation();\n }\n\n onKeyDown($event) {\n if ([SPACE, ENTER].includes($event.keyCode) && this.option.dropdownTrigger) {\n this.option.dropdownTrigger.openedBy = 'keyboard';\n this.option.dropdownTrigger.toggle();\n } else if ($event.shiftKey && $event.keyCode === TAB) {\n this.hasFocus = false;\n\n this.option.focus();\n } else if ($event.keyCode === TAB) {\n return;\n }\n\n $event.preventDefault();\n $event.stopPropagation();\n }\n\n private preventShowingTooltip() {\n if (!this.option.tooltipTrigger) {\n return;\n }\n\n this.option.tooltipTrigger.disabled = true;\n\n setTimeout(() => (this.option.tooltipTrigger.disabled = false));\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { CanDisable, CanDisableCtor, mixinDisabled } from '../common-behaviors';\n\n/** @docs-private */\nexport class KbqOptgroupBase {}\n\nexport const KbqOptgroupMixinBase: CanDisableCtor & typeof KbqOptgroupBase = mixinDisabled(KbqOptgroupBase);\n\nlet uniqueOptgroupIdCounter = 0;\n\n/**\n * Component that is used to group instances of `kbq-option`.\n * When options aren't provided as `ng-content`, used as a Group Header with styling.\n */\n@Component({\n selector: 'kbq-optgroup',\n exportAs: 'kbqOptgroup',\n templateUrl: 'optgroup.html',\n styleUrls: ['./optgroup.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['disabled'],\n host: {\n class: 'kbq-optgroup',\n '[class.kbq-disabled]': 'disabled'\n }\n})\nexport class KbqOptgroup extends KbqOptgroupMixinBase implements CanDisable {\n @Input() label: string;\n\n /** Unique id for the underlying label. */\n labelId: string = `kbq-optgroup-label-${uniqueOptgroupIdCounter++}`;\n}\n","<label class=\"kbq-optgroup-label\" [id]=\"labelId\">\n {{ label }}\n</label>\n<ng-content select=\"kbq-option, kbq-list-option, kbq-timezone-option, ng-container\" />\n","import { ElementRef, InjectionToken } from '@angular/core';\n\nexport interface KbqTitleTextRef {\n textElement?: ElementRef;\n parentTextElement?: ElementRef;\n}\n\nexport const KBQ_TITLE_TEXT_REF = new InjectionToken<KbqTitleTextRef>('KbqTitleTextRef');\n","import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewEncapsulation } from '@angular/core';\nimport {\n CanColor,\n CanColorCtor,\n CanDisable,\n CanDisableCtor,\n KbqComponentColors,\n mixinColor,\n mixinDisabled\n} from '../../common-behaviors';\n\nexport type KbqPseudoCheckboxState = 'unchecked' | 'checked' | 'indeterminate';\n\n// Boilerplate for applying mixins to KbqPseudoCheckbox.\n/** @docs-private */\nexport class KbqPseudoCheckboxBase {\n constructor(public elementRef: ElementRef) {}\n}\n\n/** @docs-private */\nexport const KbqPseudoCheckboxMixinBase: CanColorCtor & CanDisableCtor & typeof KbqPseudoCheckboxBase = mixinColor(\n mixinDisabled(KbqPseudoCheckboxBase),\n KbqComponentColors.Theme\n);\n\n/**\n * Component that shows a simplified checkbox without including any kind of \"real\" checkbox.\n * Meant to be used when the checkbox is purely decorative and a large number of them will be\n * included, such as for the options in a multi-select. Uses no SVGs or complex animations.\n * Note that theming is meant to be handled by the parent element, e.g.\n * `kbq-primary .kbq-pseudo-checkbox`.\n *\n * Note that this component will be completely invisible to screen-reader users. This is *not*\n * interchangeable with `<kbq-checkbox>` and should *not* be used if the user would directly\n * interact with the checkbox. The pseudo-checkbox should only be used as an implementation detail\n * of more complex components that appropriately handle selected / checked state.\n * @docs-private\n */\n@Component({\n selector: 'kbq-pseudo-checkbox',\n templateUrl: 'pseudo-checkbox.partial.html',\n styleUrls: ['pseudo-checkbox.scss', 'pseudo-checkbox-tokens.scss'],\n host: {\n class: 'kbq-pseudo-checkbox',\n '[class.kbq-checkbox_big]': 'big',\n '[class.kbq-indeterminate]': 'state === \"indeterminate\"',\n '[class.kbq-checked]': 'state === \"checked\"',\n '[class.kbq-disabled]': 'disabled'\n },\n preserveWhitespaces: false,\n inputs: ['color'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class KbqPseudoCheckbox extends KbqPseudoCheckboxMixinBase implements CanColor, CanDisable {\n @Input() big: boolean = false;\n\n @Input() state: KbqPseudoCheckboxState = 'unchecked';\n\n @Input() disabled: boolean = false;\n\n constructor(elementRef: ElementRef) {\n super(elementRef);\n }\n}\n","<i class=\"kbq-checkbox-checkmark kbq kbq-check-s_16\"></i>\n<i class=\"kbq-checkbox-mixedmark kbq kbq-minus-s_16\"></i>\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterViewChecked,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n InjectionToken,\n Input,\n OnDestroy,\n Optional,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ENTER, SPACE } from '@koobiq/cdk/keycodes';\nimport { Subject } from 'rxjs';\nimport { KBQ_TITLE_TEXT_REF, KbqTitleTextRef } from '../title';\nimport { KbqOptgroup } from './optgroup';\n\n/**\n * Option IDs need to be unique across components, so this counter exists outside of\n * the component definition.\n */\nlet uniqueIdCounter = 0;\n\n/** Event object emitted by KbqOption when selected or deselected. */\nexport class KbqOptionSelectionChange<T = KbqOption> {\n constructor(\n public source: T,\n public isUserInput = false\n ) {}\n}\n\n/**\n * Describes a parent component that manages a list of options.\n * Contains properties that the options can inherit.\n * @docs-private\n */\nexport interface KbqOptionParentComponent {\n multiple?: boolean;\n}\n\n/**\n * Handler that will update scroll position of elements inside overlay\n */\nexport interface KeyboardNavigationHandler {\n /** Scrolls the active option into view. */\n scrollActiveOptionIntoView(): void;\n}\n\n/**\n * Injection token used to provide the parent component to options.\n */\nexport const KBQ_OPTION_PARENT_COMPONENT = new InjectionToken<KbqOptionParentComponent>('KBQ_OPTION_PARENT_COMPONENT');\n\nexport abstract class KbqOptionBase {\n value: any;\n abstract get viewValue(): string;\n abstract get disabled(): boolean;\n abstract set disabled(value: any);\n\n abstract readonly onSelectionChange: EventEmitter<KbqOptionSelectionChange<any>>;\n\n abstract select(): void;\n\n abstract deselect(): void;\n\n /** Emits the selection change event. */\n protected emitSelectionChangeEvent(isUserInput = false): void {\n this.onSelectionChange.emit(new KbqOptionSelectionChange(this, isUserInput));\n }\n}\n\nexport class KbqVirtualOption extends KbqOptionBase {\n get disabled() {\n return this._disabled;\n }\n set disabled(value: any) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n get selected(): boolean {\n return this._selected;\n }\n\n private _selected = false;\n\n get viewValue(): string {\n return this.value;\n }\n\n readonly onSelectionChange = new EventEmitter<KbqOptionSelectionChange<KbqVirtualOption>>();\n\n constructor(\n public value: any,\n private _disabled: boolean = false\n ) {\n super();\n }\n\n select(): void {\n if (!this._selected) {\n this._selected = true;\n\n this.emitSelectionChangeEvent();\n }\n }\n\n deselect(): void {\n if (this._selected) {\n this._selected = false;\n\n this.emitSelectionChangeEvent();\n }\n }\n}\n\n/**\n * Single option inside of a `<kbq-select>` element.\n */\n@Component({\n selector: 'kbq-option',\n exportAs: 'kbqOption',\n host: {\n '[attr.tabindex]': 'getTabIndex()',\n class: 'kbq-option',\n '[class.kbq-selected]': 'selected',\n '[class.kbq-option-multiple]': 'multiple',\n '[class.kbq-active]': 'active',\n '[class.kbq-disabled]': 'disabled',\n '[id]': 'id',\n\n '(click)': 'selectViaInteraction()',\n '(keydown)': 'handleKeydown($event)'\n },\n /* Component inherits styles from `list`, so `list` variables are imported as the single source of truth. */\n styleUrls: ['option.scss', 'option-tokens.scss'],\n templateUrl: 'option.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: KBQ_TITLE_TEXT_REF,\n useExisting: KbqOption\n }\n ]\n})\nexport class KbqOption extends KbqOptionBase implements AfterViewChecked, OnDestroy, KbqTitleTextRef {\n @ViewChild('kbqTitleText', { static: false }) textElement: ElementRef;\n\n /** The form value of the option. */\n @Input() value: any;\n\n // todo this flag will need to be rethought in the future (added for filter panel)\n @Input({ transform: booleanAttribute }) userSelect: boolean = false;\n\n @Input()\n get showCheckbox() {\n return this._showCheckbox === undefined ? this.multiple : this._showCheckbox;\n }\n\n set showCheckbox(value) {\n this._showCheckbox = coerceBooleanProperty(value);\n }\n\n private _showCheckbox: boolean;\n\n /** Event emitted when the option is selected or deselected. */\n @Output() readonly onSelectionChange = new EventEmitter<KbqOptionSelectionChange>();\n\n /** Emits when the state of the option changes and any parents have to be notified. */\n readonly stateChanges = new Subject<void>();\n\n /**\n * The displayed value of the option. It is necessary to show the selected option in the\n * select's trigger.\n */\n get viewValue(): string {\n // TODO: Add input property alternative for node envs.\n return (this.getHostElement().textContent || '').trim();\n }\n\n /** Whether the wrapping component is in multiple selection mode. */\n get multiple() {\n return this.parent && this.parent.multiple;\n }\n\n get id(): string {\n return this._id;\n }\n\n private _id = `kbq-option-${uniqueIdCounter++}`;\n\n get selected(): boolean {\n return this._selected;\n }\n\n private _selected = false;\n\n @Input()\n get disabled() {\n return (this.group && this.group.disabled) || this._disabled;\n }\n\n set disabled(value: any) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n private _disabled = false;\n\n /**\n * Whether or not the option is currently active and ready to be selected.\n * An active option displays styles as if it is focused, but the\n * focus is actually retained somewhere else. This comes in handy\n * for components like autocomplete where focus must remain on the input.\n */\n get active(): boolean {\n return this._active;\n }\n\n private _active = false;\n\n private mostRecentViewValue = '';\n\n constructor(\n private readonly element: ElementRef,\n private readonly changeDetectorRef: ChangeDetectorRef,\n @Optional() @Inject(KBQ_OPTION_PARENT_COMPONENT) private readonly parent: KbqOptionParentComponent,\n @Optional() readonly group: KbqOptgroup\n ) {\n super();\n }\n\n ngAfterViewChecked() {\n // Since parent components could be using the option's label to display the selected values\n // (e.g. `kbq-select`) and they don't have a way of knowing if the option's label has changed\n // we have to check for changes in the DOM ourselves and dispatch an event. These checks are\n // relatively cheap, however we still limit them only to selected options in order to avoid\n // hitting the DOM too often.\n if (this._selected) {\n const viewValue = this.viewValue;\n\n if (viewValue !== this.mostRecentViewValue) {\n this.mostRecentViewValue = viewValue;\n this.stateChanges.next();\n }\n }\n }\n\n ngOnDestroy() {\n this.stateChanges.complete();\n }\n\n getHeight(): number {\n const DOMRect: DOMRect = this.element.nativeElement.getClientRects()[0];\n\n return DOMRect ? DOMRect.height : 0;\n }\n\n select(): void {\n if (!this._selected) {\n this._selected = true;\n\n this.changeDetectorRef.markForCheck();\n this.emitSelectionChangeEvent();\n }\n }\n\n deselect(): void {\n if (this._selected) {\n this._selected = false;\n\n this.changeDetectorRef.markForCheck();\n this.emitSelectionChangeEvent();\n }\n }\n\n focus(): void {\n const element = this.getHostElement();\n\n if (typeof element.focus === 'function') {\n element.focus();\n }\n }\n\n /**\n * This method sets display styles on the option to make it appear\n * active. This is used by the ActiveDescendantKeyManager so key\n * events will display the proper options as active on arrow key events.\n */\n setActiveStyles(): void {\n if (!this._active) {\n this._active = true;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * This method removes display styles on the option that made it appear\n * active. This is used by the ActiveDescendantKeyManager so key\n * events will display the proper options as active on arrow key events.\n */\n setInactiveStyles(): void {\n if (this._active) {\n this._active = false;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n /** Gets the label to be used when determining whether the option should be focused. */\n getLabel(): string {\n return this.viewValue;\n }\n\n /** Ensures the option is selected when activated from the keyboard. */\n handleKeydown(event: KeyboardEvent): void {\n if (event.keyCode === ENTER || event.keyCode === SPACE) {\n this.selectViaInteraction();\n\n // Prevent the page from scrolling down and form submits.\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n /**\n * `Selects the option while indicating the selection came from the user. Used to\n * determine if the select's view -> model callback should be invoked.`\n */\n selectViaInteraction(): void {\n if (this.userSelect) return;\n\n if (!this.disabled) {\n this._selected = this.multiple ? !this._selected : true;\n\n this.changeDetectorRef.markForCheck();\n this.emitSelectionChangeEvent(true);\n }\n }\n\n getTabIndex(): string {\n return this.disabled ? '-1' : '0';\n }\n\n getHostElement(): HTMLElement {\n return this.element.nativeElement;\n }\n}\n\n/**\n * Counts the amount of option group labels that precede the specified option.\n * @param optionIndex Index of the option at which to start counting.\n * @param options Flat list of all of the options.\n * @param optionGroups Flat list of all of the option groups.\n * @docs-private\n */\nexport function countGroupLabelsBeforeOption(\n optionIndex: number,\n options: QueryList<KbqOption>,\n optionGroups: QueryList<KbqOptgroup>\n): number {\n if (optionGroups.length) {\n const optionsArray = options.toArray();\n const groups = optionGroups.toArray();\n\n let groupCounter = 0;\n\n for (let i = 0; i < optionIndex + 1; i++) {\n if (optionsArray[i].group && optionsArray[i].group === groups[groupCounter]) {\n groupCounter++;\n }\n }\n\n return groupCounter;\n }\n\n return 0;\n}\n\n/**\n * Determines the position to which to scroll a panel in order for an option to be into view.\n * @param optionIndex Index of the option to be scrolled into the view.\n * @param optionHeight Height of the options.\n * @param currentScrollPosition Current scroll position of the panel.\n * @param panelHeight Height of the panel.\n * @docs-private\n */\nexport function getOptionScrollPosition(\n optionIndex: number,\n optionHeight: number,\n currentScrollPosition: number,\n panelHeight: number\n): number {\n const optionOffset = optionIndex * optionHeight;\n\n if (optionOffset < currentScrollPosition) {\n return optionOffset;\n }\n\n if (optionOffset + optionHeight > currentScrollPosition + panelHeight) {\n return Math.max(0, optionOffset - panelHeight + optionHeight);\n }\n\n return currentScrollPosition;\n}\n","@if (showCheckbox) {\n <kbq-pseudo-checkbox [disabled]=\"disabled\" [state]=\"selected ? 'checked' : 'unchecked'\" />\n}\n\n<span #kbqTitleText class=\"kbq-option-text\">\n <ng-content />\n</span>\n","export enum MultipleMode {\n CHECKBOX = 'checkbox',\n KEYBOARD = 'keyboard'\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { KbqPseudoCheckbox } from './pseudo-checkbox';\n\n@NgModule({\n imports: [CommonModule],\n exports: [KbqPseudoCheckbox],\n declarations: [KbqPseudoCheckbox]\n})\nexport class KbqPseudoCheckboxModule {}\n","import { NgModule } from '@angular/core';\nimport { KbqPseudoCheckboxModule } from '../selection';\nimport { KbqOptionActionComponent } from './action';\nimport { KbqOptgroup } from './optgroup';\nimport { KbqOption } from './option';\n\n@NgModule({\n imports: [KbqPseudoCheckboxModule],\n declarations: [KbqOption, KbqOptgroup, KbqOptionActionComponent],\n exports: [KbqOption, KbqOptgroup, KbqOptionActionComponent]\n})\nexport class KbqOptionModule {}\n","import { ConnectionPositionPair, Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { InjectionToken } from '@angular/core';\n\nexport const POSITION_MAP: { [key: string]: ConnectionPositionPair } = {\n top: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom'\n },\n topCenter: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom'\n },\n topLeft: {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom'\n },\n topRight: {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom'\n },\n right: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center'\n },\n rightTop: {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top'\n },\n rightBottom: {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom'\n },\n bottom: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top'\n },\n bottomCenter: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top'\n },\n bottomLeft: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n },\n bottomRight: {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top'\n },\n left: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center'\n },\n leftTop: {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top'\n },\n leftBottom: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom'\n }\n};\n\nexport const EXTENDED_OVERLAY_POSITIONS = objectValues([\n POSITION_MAP.top,\n POSITION_MAP.topLeft,\n POSITION_MAP.topRight,\n POSITION_MAP.right,\n POSITION_MAP.rightTop,\n POSITION_MAP.rightBottom,\n POSITION_MAP.bottom,\n POSITION_MAP.bottomLeft,\n POSITION_MAP.bottomRight,\n POSITION_MAP.left,\n POSITION_MAP.leftTop,\n POSITION_MAP.leftBottom\n]);\n\nexport const TOP_POSITION_PRIORITY = objectValues([\n POSITION_MAP.top,\n POSITION_MAP.bottom,\n POSITION_MAP.right,\n POSITION_MAP.rightBottom,\n POSITION_MAP.leftBottom,\n POSITION_MAP.bottomLeft,\n POSITION_MAP.bottomRight\n]);\n\nexport const BOTTOM_POSITION_PRIORITY = objectValues([\n POSITION_MAP.bottom,\n POSITION_MAP.top,\n POSITION_MAP.topLeft,\n POSITION_MAP.topRight,\n POSITION_MAP.rightBottom,\n POSITION_MAP.leftBottom\n]);\n\nexport const RIGHT_POSITION_PRIORITY = objectValues([\n POSITION_MAP.right,\n POSITION_MAP.left,\n POSITION_MAP.leftTop,\n POSITION_MAP.leftBottom,\n POSITION_MAP.top,\n POSITION_MAP.bottom\n]);\n\nexport const LEFT_POSITION_PRIORITY = objectValues([\n POSITION_MAP.left,\n POSITION_MAP.right,\n POSITION_MAP.rightTop,\n POSITION_MAP.rightBottom,\n POSITION_MAP.top,\n POSITION_MAP.bottom\n]);\n\nexport const RIGHT_TOP_POSITION_PRIORITY = objectValues([\n POSITION_MAP.rightTop,\n POSITION_MAP.leftTop,\n POSITION_MAP.left,\n POSITION_MAP.leftBottom,\n POSITION_MAP.topLeft,\n POSITION_MAP.bottomLeft\n]);\n\nexport const RIGHT_BOTTOM_POSITION_PRIORITY = objectValues([\n POSITION_MAP.rightBottom,\n POSITION_MAP.leftBottom,\n POSITION_MAP.left,\n POSITION_MAP.leftTop,\n POSITION_MAP.topLeft,\n POSITION_MAP.bottomLeft\n]);\n\nexport const LEFT_TOP_POSITION_PRIORITY = objectValues([\n POSITION_MAP.leftTop,\n POSITION_MAP.rightTop,\n POSITION_MAP.right,\n POSITION_MAP.rightBottom,\n POSITION_MAP.topRight,\n POSITION_MAP.bottomRight\n]);\n\nexport const LEFT_BOTTOM_POSITION_PRIORITY = objectValues([\n POSITION_MAP.leftBottom,\n POSITION_MAP.rightBottom,\n POSITION_MAP.right,\n POSITION_MAP.rightTop,\n POSITION_MAP.topRight,\n POSITION_MAP.bottomRight\n]);\n\nexport const TOP_LEFT_POSITION_PRIORITY = objectValues([\n POSITION_MAP.topLeft,\n POSITION_MAP.topRight,\n POSITION_MAP.bottomLeft,\n POSITION_MAP.bottom,\n POSITION_MAP.bottomRight,\n POSITION_MAP.leftBottom,\n POSITION_MAP.rightBottom\n]);\n\nexport const TOP_RIGHT_POSITION_PRIORITY = objectValues([\n POSITION_MAP.topRight,\n POSITION_MAP.topLeft,\n POSITION_MAP.bottomRight,\n POSITION_MAP.bottom,\n POSITION_MAP.bottomLeft,\n POSITION_MAP.leftBottom,\n POSITION_MAP.rightBottom\n]);\n\nexport const BOTTOM_RIGHT_POSITION_PRIORITY = objectValues([\n POSITION_MAP.bottomRight,\n POSITION_MAP.bottomLeft,\n POSITION_MAP.topRight,\n POSITION_MAP.top,\n POSITION_MAP.topLeft,\n POSITION_MAP.leftTop,\n POSITION_MAP.rightTop\n]);\n\nexport const BOTTOM_LEFT_POSITION_PRIORITY = objectValues([\n POSITION_MAP.bottomLeft,\n POSITION_MAP.bottomRight,\n POSITION_MAP.topLeft,\n POSITION_MAP.top,\n POSITION_MAP.topRight,\n POSITION_MAP.rightTop,\n POSITION_MAP.leftTop\n]);\n\nexport const POSITION_PRIORITY_STRATEGY = {\n top: TOP_POSITION_PRIORITY,\n topLeft: TOP_LEFT_POSITION_PRIORITY,\n topRight: TOP_RIGHT_POSITION_PRIORITY,\n bottom: BOTTOM_POSITION_PRIORITY,\n bottomLeft: BOTTOM_LEFT_POSITION_PRIORITY,\n bottomRight: BOTTOM_RIGHT_POSITION_PRIORITY,\n left: LEFT_POSITION_PRIORITY,\n leftTop: LEFT_TOP_POSITION_PRIORITY,\n leftBottom: LEFT_BOTTOM_POSITION_PRIORITY,\n right: RIGHT_POSITION_PRIORITY,\n rightTop: RIGHT_TOP_POSITION_PRIORITY,\n rightBottom: RIGHT_BOTTOM_POSITION_PRIORITY\n};\n\nexport const POSITION_TO_CSS_MAP: { [key: string]: string } = {\n top: 'top',\n topLeft: 'top-left',\n topRight: 'top-right',\n right: 'right',\n rightTop: 'right-top',\n rightBottom: 'right-bottom',\n left: 'left',\n leftTop: 'left-top',\n leftBottom: 'left-bottom',\n bottom: 'bottom',\n bottomLeft: 'bottom-left',\n bottomRight: 'bottom-right'\n};\n\nexport const KBQ_CUSTOM_SCROLL_STRATEGY_PROVIDER = <T>(\n token: InjectionToken<T>,\n factory: (overlay: Overlay) => () => ScrollStrategy\n) => ({\n provide: token,\n deps: [Overlay],\n useFactory: factory\n});\n\nfunction arrayMap<T, S>(array: T[], iteratee: (item: T, index: number, arr: T[]) => S): S[] {\n let index = -1;\n const length = array === null ? 0 : array.length;\n const result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n\n return result;\n}\nfunction baseValues<T>(object: T[], props: string[]): T[] {\n return arrayMap(props, (key) => object[key]);\n}\nfunction objectValues<T>(object: T[]): T[] {\n return object === null ? [] : baseValues(object, Object.keys(object));\n}\n","import { InjectionToken } from '@angular/core';\nimport { TooltipSizeArrowSize } from '@koobiq/design-tokens';\nimport { Observable } from 'rxjs';\n\nexport interface KbqParentPopup {\n closedStream: Observable<boolean>;\n}\n\n/**\n * InjectionToken for providing component with popup. Used in select and tree-select for tooltip.\n */\nexport const KBQ_PARENT_POPUP = new InjectionToken<KbqParentPopup>('kbq-parent-popup');\n\nexport enum PopUpPlacements {\n Top = 'top',\n TopLeft = 'topLeft',\n TopRight = 'topRight',\n Right = 'right',\n RightTop = 'rightTop',\n RightBottom = 'rightBottom',\n Left = 'left',\n LeftTop = 'leftTop',\n LeftBottom = 'leftBottom',\n Bottom = 'bottom',\n BottomLeft = 'bottomLeft',\n BottomRight = 'bottomRight'\n}\n\nexport enum PopUpVisibility {\n Initial = 'initial',\n Visible = 'visible',\n Hidden = 'hidden'\n}\n\nexport enum PopUpTriggers {\n Click = 'click',\n Focus = 'focus',\n Hover = 'hover',\n Keydown = 'keydown'\n}\n\nexport enum PopUpSizes {\n Small = 'small',\n Medium = 'medium',\n // Normal is deprecated and will be deleted in 16.x\n Normal = 'medium',\n Large = 'large'\n}\n\n/**\n * Default value when configuring overlay in popups (Autocomplete, Datepicker, Dropdown, Select, Tags Autocomplete,\n * Tags Input, Timezone, TreeSelect).\n */\nexport const defaultOffsetY: number = 4;\n\n/**\n * Variable used for offsetY(X) calculations when applying Angular Overlay\n *\n * @docs-private\n */\nexport const ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT = Math.round(parseInt(TooltipSizeArrowSize) * Math.sqrt(2));\n","import { FocusTrapInertStrategy } from '@angular/cdk/a11y';\n\n// Need replace EventListenerFocusTrapInertStrategy to EmptyFocusTrapStrategy for focus work correctly with open popover\nexport class EmptyFocusTrapStrategy implements FocusTrapInertStrategy {\n preventFocus(): void {}\n allowFocus(): void {}\n}\n","import { AnimationEvent } from '@angular/animations';\nimport { ChangeDetectorRef, Directive, EventEmitter, inject, OnDestroy, Renderer2, TemplateRef } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { PopUpVisibility } from './constants';\n\n@Directive()\nexport abstract class KbqPopUp implements OnDestroy {\n protected readonly renderer: Renderer2 = inject(Renderer2);\n protected readonly changeDetectorRef: ChangeDetectorRef = inject(ChangeDetectorRef);\n\n header: string | TemplateRef<any>;\n content: string | TemplateRef<any>;\n context: { $implicit: any } | null;\n\n classMap = {};\n\n warning: boolean;\n arrow: boolean;\n\n offset: number | null;\n\n visibility = PopUpVisibility.Initial;\n visibleChange = new EventEmitter<boolean>();\n\n protected prefix: string;\n\n /** Subject for notifying that the tooltip has been hidden from the view */\n protected readonly onHideSubject = new Subject<void>();\n\n protected closeOnInteraction: boolean = false;\n\n private showTimeoutId: any;\n private hideTimeoutId: any;\n\n ngOnDestroy() {\n clearTimeout(this.showTimeoutId);\n clearTimeout(this.hideTimeoutId);\n\n this.onHideSubject.complete();\n }\n\n isTemplateRef(value: any): boolean {\n return value instanceof TemplateRef;\n }\n\n show(delay: number): void {\n if (this.hideTimeoutId) {\n clearTimeout(this.hideTimeoutId);\n }\n\n this.closeOnInteraction = true;\n\n this.showTimeoutId = setTimeout(() => {\n this.showTimeoutId = undefined;\n\n this.visibility = PopUpVisibility.Visible;\n this.visibleChange.emit(true);\n // Mark for check so if any parent component has set the\n // ChangeDetectionStrategy to OnPush it will be checked anyways\n this.markForCheck();\n }, delay);\n }\n\n /**\n * Hides the popup after a specified delay.\n *\n * The hide timeout triggers the hiding of the popup by updating visibility and emitting relevant events.\n * Also, it marks for check to ensure proper change detection, especially for parent components with OnPush strategy.\n * @param delay - The delay in milliseconds before hiding the popup.\n */\n hide(delay: number): void {\n if (this.showTimeoutId) {\n clearTimeout(this.showTimeoutId);\n }\n\n this.hideTimeoutId = setTimeout(() => {\n this.hideTimeoutId = undefined;\n this.visibility = PopUpVisibility.Hidden;\n\n this.visibleChange.emit(false);\n this.onHideSubject.next();\n\n // Mark for check so if any parent component has set the\n // ChangeDetectionStrategy to OnPush it will be checked anyways\n this.markForCheck();\n }, delay);\n }\n\n isVisible(): boolean {\n return this.visibility === PopUpVisibility.Visible;\n }\n\n updateClassMap(placement: string, customClass: string, classMap?): void {\n this.classMap = {\n [`${this.prefix}_placement-${placement}`]: true,\n [customClass]: !!customClass,\n ...classMap\n };\n }\n\n /** Returns an observable that notifies when the tooltip has been hidden from view. */\n afterHidden(): Observable<void> {\n return this.onHideSubject.asObservable();\n }\n\n markForCheck(): void {\n this.changeDetectorRef.markForCheck();\n }\n\n detectChanges(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n animationStart() {\n this.closeOnInteraction = false;\n }\n\n animationDone({ toState }: AnimationEvent): void {\n if (toState === PopUpVisibility.Hidden && !this.isVisible()) {\n this.onHideSubject.next();\n }\n\n if (toState === PopUpVisibility.Visible || toState === PopUpVisibility.Hidden) {\n this.closeOnInteraction = true;\n }\n }\n\n handleBodyInteraction(): void {\n if (this.closeOnInteraction) {\n this.hide(0);\n }\n }\n}\n","import { Renderer2 } from '@angular/core';\n\nexport const applyPopupMargins = (renderer: Renderer2, element: HTMLElement, name: string, value: string) => {\n const classList = element.classList;\n\n if (\n classList.contains(`${name}_placement-top`) ||\n classList.contains(`${name}_placement-top-left`) ||\n classList.contains(`${name}_placement-top-right`)\n ) {\n renderer.setStyle(element, 'margin-bottom', value);\n }\n\n if (\n classList.contains(`${name}_placement-right`) ||\n classList.contains(`${name}_placement-right-top`) ||\n classList.contains(`${name}_placement-right-bottom`)\n ) {\n renderer.setStyle(element, 'margin-left', value);\n }\n\n if (\n classList.contains(`${name}_placement-bottom`) ||\n classList.contains(`${name}_placement-bottom-left`) ||\n classList.contains(`${name}_placement-bottom-right`)\n ) {\n renderer.setStyle(element, 'margin-top', value);\n }\n\n if (\n classList.contains(`${name}_placement-left`) ||\n classList.contains(`${name}_placement-left-top`) ||\n classList.contains(`${name}_placement-left-bottom`)\n ) {\n renderer.setStyle(element, 'margin-right', value);\n }\n};\n","import { Directionality } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n ConnectedOverlayPositionChange,\n ConnectionPositionPair,\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayConfig,\n OverlayRef,\n ScrollDispatcher,\n ScrollStrategy\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n EventEmitter,\n NgZone,\n OnDestroy,\n OnInit,\n TemplateRef,\n Type,\n ViewContainerRef,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ENTER, ESCAPE, SPACE } from '@koobiq/cdk/keycodes';\nimport { Observable, Subscription } from 'rxjs';\nimport { distinctUntilChanged, delay as rxDelay } from 'rxjs/operators';\nimport {\n EXTENDED_OVERLAY_POSITIONS,\n POSITION_MAP,\n POSITION_PRIORITY_STRATEGY,\n POSITION_TO_CSS_MAP\n} from '../overlay/overlay-position-map';\nimport { ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT, PopUpPlacements, PopUpTriggers } from './constants';\n\ntype KbqPopupTriggerOffset = Pick<ConnectionPositionPair, 'offsetX' | 'offsetY'>;\n\nconst getOffset = (\n { originX, overlayX, originY, overlayY }: ConnectionPositionPair,\n { width, height }: DOMRect\n): KbqPopupTriggerOffset => {\n const offset: KbqPopupTriggerOffset = {};\n const elementWidthHalf = width / 2;\n const elementHeightHalf = height / 2;\n\n // alignment should be applied only if the element is small\n if (ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT > elementWidthHalf) {\n const PADDING = ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT - elementWidthHalf;\n\n if (originX === overlayX) {\n if (originX === 'start') {\n offset.offsetX = -PADDING;\n }\n if (originX === 'end') {\n offset.offsetX = PADDING;\n }\n }\n }\n\n // alignment should be applied only if the element is small\n if (ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT > elementHeightHalf) {\n const PADDING = ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT - elementHeightHalf;\n if (originY === overlayY) {\n if (originY === 'top') {\n offset.offsetY = -PADDING;\n }\n if (originY === 'bottom') {\n offset.offsetY = PADDING;\n }\n }\n }\n\n return offset;\n};\n\n@Directive()\nexport abstract class KbqPopUpTrigger<T> implements OnInit, OnDestroy {\n protected readonly overlay: Overlay = inject(Overlay);\n protected readonly elementRef: ElementRef = inject(ElementRef);\n protected readonly ngZone: NgZone = inject(NgZone);\n protected readonly scrollDispatcher: ScrollDispatcher = inject(ScrollDispatcher);\n protected readonly hostView: ViewContainerRef = inject(ViewContainerRef);\n protected readonly direction = inject(Directionality, { optional: true });\n protected readonly destroyRef = inject(DestroyRef);\n\n protected abstract scrollStrategy: () => ScrollStrategy;\n\n isOpen: boolean = false;\n\n enterDelay: number = 0;\n leaveDelay: number = 0;\n\n abstract disabled: boolean;\n abstract arrow: boolean;\n abstract trigger: string;\n abstract customClass: string;\n abstract content: string | TemplateRef<any>;\n\n abstract placementChange: EventEmitter<string>;\n abstract visibleChange: EventEmitter<boolean>;\n\n protected abstract originSelector: string;\n protected abstract overlayConfig: OverlayConfig;\n\n protected placement = PopUpPlacements.Top;\n protected placementPriority: string | string[] | null = null;\n\n protected visible = false;\n\n protected _content: string | TemplateRef<any>;\n protected _disabled: boolean;\n protected _customClass: string;\n\n protected overlayRef: OverlayRef | null;\n protected portal: ComponentPortal<T>;\n protected instance: any | null;\n\n protected listeners = new Map<string, EventListener>();\n protected closingActionsSubscription: Subscription;\n\n protected readonly availablePositions: { [key: string]: ConnectionPositionPair } = POSITION_MAP;\n\n protected triggerName: string;\n protected mouseEvent?: MouseEvent;\n protected strategy: FlexibleConnectedPositionStrategy;\n\n abstract updateClassMap(newPlacement?: string): void;\n\n abstract updateData(): void;\n\n abstract closingActions(): Observable<any>;\n\n abstract getOverlayHandleComponentType(): Type<T>;\n\n ngOnInit(): void {\n this.initListeners();\n }\n\n ngOnDestroy(): void {\n this.overlayRef?.dispose();\n\n this.listeners.forEach(this.removeEventListener);\n\n this.listeners.clear();\n }\n\n updatePlacement(value: PopUpPlacements) {\n if (POSITION_TO_CSS_MAP[value]) {\n this.placement = value;\n\n this.updateClassMap();\n } else {\n this.placement = PopUpPlacements.Top;\n\n console.warn(`Unknown position: ${value}. Will used default position: ${this.placement}`);\n }\n\n if (this.visible) {\n this.updatePosition();\n }\n }\n\n updatePlacementPriority(value) {\n if (value && value.length > 0) {\n this.placementPriority = value;\n } else {\n this.placementPriority = null;\n }\n }\n\n updateVisible(externalValue: boolean) {\n const value = coerceBooleanProperty(externalValue);\n\n if (this.visible !== value) {\n this.visible = value;\n\n if (value) {\n this.show();\n } else {\n this.hide();\n }\n }\n }\n\n handleKeydown(event: KeyboardEvent) {\n if (this.isOpen && event.keyCode === ESCAPE) {\n this.hide();\n }\n }\n\n handleTouchend() {\n this.hide();\n }\n\n show(delay: number = this.enterDelay): void {\n if (this.disabled || this.instance) {\n return;\n }\n\n this.overlayRef = this.createOverlay();\n this.subscribeOnClosingActions();\n this.detach();\n\n this.portal = this.portal || new ComponentPortal(this.getOverlayHandleComponentType(), this.hostView);\n\n this.instance = this.overlayRef.attach(this.portal).instance;\n\n this.instance.trigger = this;\n\n this.instance.afterHidden().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(this.detach);\n\n this.updateClassMap();\n\n this.updateData();\n\n this.instance.visibleChange\n .pipe(distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n this.visible = value;\n this.visibleChange.emit(value);\n this.isOpen = value;\n });\n\n this.updatePosition();\n\n this.instance.show(delay);\n }\n\n hide(delay: number = this.leaveDelay): void {\n if (this.instance) {\n this.ngZone.run(() => this.instance.hide(delay));\n }\n }\n\n detach = (): void => {\n if (this.overlayRef?.hasAttached()) {\n this.overlayRef.detach();\n }\n\n this.instance = null;\n };\n\n /** Create the overlay config and position strategy */\n createOverlay(): OverlayRef {\n if (this.overlayRef) {\n return this.overlayRef;\n }\n\n // Create connected position strategy that listens for scroll events to reposition.\n this.strategy = this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef)\n .withTransformOriginOn(this.originSelector)\n .withFlexibleDimensions(false)\n .withPositions([...EXTENDED_OVERLAY_POSITIONS])\n .withLockedPosition()\n .withScrollableContainers(this.scrollDispatcher.getAncestorScrollContainers(this.elementRef));\n\n this.strategy.positionChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(this.onPositionChange);\n\n this.overlayRef = this.overlay.create({\n ...this.overlayConfig,\n direction: this.direction || undefined,\n positionStrategy: this.strategy,\n scrollStrategy: this.scrollStrategy()\n });\n\n this.subscribeOnClosingActions();\n\n this.overlayRef.detachments().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(this.detach);\n\n return this.overlayRef;\n }\n\n resetOrigin() {\n this.strategy.setOrigin(this.elementRef);\n }\n\n onPositionChange = ($event: ConnectedOverlayPositionChange): void => {\n if (!this.instance) {\n return;\n }\n\n let newPlacement = this.placement;\n\n const { originX, originY, overlayX, overlayY } = $event.connectionPair;\n\n Object.keys(this.availablePositions).some((key) => {\n if (\n originX === this.availablePositions[key].originX &&\n originY === this.availablePositions[key].originY &&\n overlayX === this.availablePositions[key].overlayX &&\n overlayY === this.availablePositions[key].overlayY\n ) {\n newPlacement = key as PopUpPlacements;\n\n return true;\n }\n\n return false;\n });\n\n this.placementChange.emit(newPlacement);\n\n this.updateClassMap(newPlacement);\n\n this.instance.detectChanges();\n };\n\n initListeners() {\n this.clearListeners();\n\n if (this.trigger.includes(PopUpTriggers.Click)) {\n this.listeners.set(...this.createListener('click', this.show));\n }\n\n if (this.trigger.includes(PopUpTriggers.Hover)) {\n this.listeners\n .set(...this.createListener('mouseenter', this.show))\n .set(...this.createListener('mouseleave', this.hide));\n }\n\n if (this.trigger.includes(PopUpTriggers.Focus)) {\n this.listeners\n .set(...this.createListener('focus', this.show))\n .set(...this.createListener('blur', this.hide));\n }\n\n if (this.trigger.includes(PopUpTriggers.Keydown)) {\n this.listeners.set('keydown', (event) => {\n if (event instanceof KeyboardEvent && [ENTER, SPACE].includes(event.keyCode)) {\n setTimeout(() => this.show());\n }\n });\n }\n\n this.listeners.forEach(this.addEventListener);\n }\n\n /** Updates the position of the current popover. */\n updatePosition(reapplyPosition: boolean = false) {\n this.overlayRef = this.createOverlay();\n\n this.subscribeOnClosingActions();\n\n const position = (this.overlayRef.getConfig().positionStrategy as FlexibleConnectedPositionStrategy)\n .withPositions(this.getAdjustedPositions())\n .withPush(true);\n\n if (reapplyPosition) {\n setTimeout(() => position.reapplyLastPosition());\n }\n }\n\n focus() {\n this.elementRef.nativeElement.focus();\n }\n\n /**\n * Returns a list of positions that are aligned with the element's dimensions and offsets.\n * @protected\n */\n protected getAdjustedPositions(): ConnectionPositionPair[] {\n const res: ConnectionPositionPair[] = [];\n for (const pos of this.getPrioritizedPositions()) {\n const offset: KbqPopupTriggerOffset = this.arrow\n ? getOffset(pos, this.elementRef.nativeElement.getBoundingClientRect())\n : {};\n\n res.push({\n ...pos,\n ...offset\n });\n }\n return res;\n }\n\n protected getPriorityPlacementStrategy(value: string | string[]): ConnectionPositionPair[] {\n const result: ConnectionPositionPair[] = [];\n const possiblePositions = Object.keys(this.availablePositions);\n\n if (Array.isArray(value)) {\n value.forEach((position: string) => {\n if (possiblePositions.includes(position)) {\n result.push(this.availablePositions[position]);\n }\n });\n } else if (possiblePositions.includes(value)) {\n result.push(this.availablePositions[value]);\n }\n\n return result;\n }\n\n protected getPrioritizedPositions() {\n if (this.placementPriority) {\n return this.getPriorityPlacementStrategy(this.placementPriority);\n }\n\n return POSITION_PRIORITY_STRATEGY[this.placement];\n }\n\n protected clearListeners() {\n this.listeners.forEach(this.removeEventListener);\n\n this.listeners.clear();\n }\n\n private createListener(name: string, listener: () => void): [string, (event: unknown) => void] {\n return [\n name,\n (event: unknown) => {\n this.triggerName = name;\n this.saveMouseEvent(event as MouseEvent);\n\n return listener.call(this);\n }\n\n ];\n }\n\n private saveMouseEvent(event: MouseEvent) {\n if (this.triggerName === 'mouseenter') {\n this.mouseEvent = event;\n }\n }\n\n private addEventListener = (listener: EventListener, event: string) => {\n this.elementRef.nativeElement.addEventListener(event, listener);\n };\n\n private removeEventListener = (listener: EventListener, event: string) => {\n this.elementRef.nativeElement.removeEventListener(event, listener);\n };\n\n private subscribeOnClosingActions() {\n this.closingActionsSubscription?.unsubscribe();\n\n this.closingActionsSubscription = this.closingActions()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .pipe(rxDelay(0))\n .subscribe((event) => {\n if (event?.type === 'click' && event.kbqPopoverPreventHide) {\n return;\n }\n\n this.hide();\n });\n }\n}\n","import { Overlay, RepositionScrollStrategy, ScrollStrategy } from '@angular/cdk/overlay';\nimport { InjectionToken } from '@angular/core';\n\n/**\n * The select panel will only \"fit\" inside the viewport if it is positioned at\n * this value or more away from the viewport boundary.\n */\nexport const SELECT_PANEL_VIEWPORT_PADDING = 8;\n\n/** Injection token that determines the scroll handling while a select is open. */\nexport const KBQ_SELECT_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>('kbq-select-scroll-strategy');\n\n/** @docs-private */\nexport function kbqSelectScrollStrategyProviderFactory(overlay: Overlay): () => RepositionScrollStrategy {\n return () => overlay.scrollStrategies.reposition();\n}\n\n/** @docs-private */\nexport const KBQ_SELECT_SCROLL_STRATEGY_PROVIDER = {\n provide: KBQ_SELECT_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: kbqSelectScrollStrategyProviderFactory\n};\n","import { CdkConnectedOverlay } from '@angular/cdk/overlay';\nimport { AfterContentInit, Directive, Inject, OnDestroy, Optional } from '@angular/core';\nimport { END, ESCAPE, HOME, SPACE } from '@koobiq/cdk/keycodes';\nimport { Subscription } from 'rxjs';\nimport { KBQ_FORM_FIELD_REF, KbqFormFieldRef } from '../form-field';\nimport { SELECT_PANEL_VIEWPORT_PADDING } from './constants';\n\n@Directive({\n selector: 'kbq-select-trigger, [kbq-select-trigger]',\n standalone: true\n})\nexport class KbqSelectTrigger {}\n\n@Directive({\n selector: 'kbq-select-matcher, [kbq-select-matcher]',\n standalone: true\n})\nexport class KbqSelectMatcher {}\n\n@Directive({\n selector: 'kbq-select-footer, [kbq-select-footer]',\n host: { class: 'kbq-select__footer' },\n standalone: true\n})\nexport class KbqSelectFooter {}\n\n@Directive({\n selector: '[kbqSelectSearch]',\n exportAs: 'kbqSelectSearch',\n standalone: true,\n host: {\n '(keydown)': 'handleKeydown($event)'\n }\n})\nexport class KbqSelectSearch implements AfterContentInit, OnDestroy {\n searchChangesSubscription: Subscription = new Subscription();\n\n isSearchChanged: boolean = false;\n\n get ngControl() {\n return this.formField.control.ngControl;\n }\n\n constructor(@Optional() @Inject(KBQ_FORM_FIELD_REF) protected formField: KbqFormFieldRef) {\n formField.canCleanerClearByEsc = false;\n }\n\n setPlaceholder(value: string): void {\n this.formField.control.placeholder = value;\n }\n\n hasPlaceholder(): boolean {\n return !!this.formField?.control.placeholder;\n }\n\n focus(): void {\n this.formField.focusViaKeyboard();\n }\n\n reset(): void {\n this.ngControl.reset();\n }\n\n value() {\n return this.formField.control.value;\n }\n\n ngAfterContentInit(): void {\n if (this.formField.control.controlType !== 'input') {\n throw Error('KbqSelectSearch does not work without kbqInput');\n }\n\n if (!this.ngControl) {\n throw Error('KbqSelectSearch does not work without ngControl');\n }\n\n Promise.resolve().then(() => {\n this.searchChangesSubscription = this.ngControl.valueChanges!.subscribe(() => {\n this.isSearchChanged = true;\n });\n });\n }\n\n ngOnDestroy(): void {\n this.searchChangesSubscription.unsubscribe();\n }\n\n handleKeydown(event: KeyboardEvent) {\n if (event.keyCode === ESCAPE) {\n if (this.value()) {\n this.reset();\n event.stopPropagation();\n }\n }\n\n if ([SPACE, HOME, END].includes(event.keyCode)) {\n event.stopPropagation();\n }\n }\n}\n\n@Directive({\n selector: '[kbq-select-search-empty-result]',\n exportAs: 'kbqSelectSearchEmptyResult',\n standalone: true\n})\nexport class KbqSelectSearchEmptyResult {}\n\n/**\n * Abstract class representing a customizable select component with an overlay.\n *\n * This class provides base functionality for handling the overlay positioning.\n * @docs-private\n */\nexport abstract class KbqAbstractSelect {\n protected overlayDir: CdkConnectedOverlay;\n protected triggerRect: DOMRect;\n\n /** Overlay panel class. */\n protected readonly overlayPanelClass = 'kbq-select-overlay';\n\n protected setOverlayPosition() {\n this.resetOverlay();\n\n const overlayRect = this.getOverlayRect();\n // Window width without scrollbar\n const windowWidth = this.overlayDir.overlayRef?.hostElement.clientWidth;\n let offsetX: number = 0;\n let overlayMaxWidth: number;\n\n // Determine if select overflows on either side.\n const leftOverflow = -overlayRect.left;\n const rightOverflow = overlayRect.right - windowWidth;\n\n // If the element overflows on either side, reduce the offset to allow it to fit.\n if (leftOverflow > 0 || rightOverflow > 0) {\n [offsetX, overlayMaxWidth] = this.calculateOverlayOffsetX(offsetX);\n this.overlayDir.overlayRef.overlayElement.style.maxWidth = `${overlayMaxWidth}px`;\n // reset the minWidth property\n this.overlayDir.overlayRef.overlayElement.style.minWidth = '';\n }\n\n // Set the offset directly in order to avoid having to go through change detection and\n // potentially triggering \"changed after it was checked\" errors. Round the value to avoid\n // blurry content in some browsers.\n this.overlayDir.offsetX = Math.round(offsetX);\n this.overlayDir.overlayRef.updatePosition();\n }\n\n protected calculateOverlayOffsetX(baseOffsetX: number): number[] {\n let offsetX = baseOffsetX;\n const windowWidth = this.overlayDir.overlayRef?.hostElement.clientWidth;\n const { left: leftIndent, right: triggerRight, width: triggerWidth } = this.triggerRect;\n const { width: overlayRectWidth } = this.getOverlayRect();\n const rightIndent = windowWidth - triggerRight;\n // Setting direction of dropdown expansion\n const isRightDirection = leftIndent <= rightIndent;\n\n const indent = isRightDirection ? rightIndent : leftIndent;\n const maxDropdownWidth = indent + triggerWidth - SELECT_PANEL_VIEWPORT_PADDING;\n const overlayMaxWidth = overlayRectWidth < maxDropdownWidth ? overlayRectWidth : maxDropdownWidth;\n\n if (!isRightDirection) {\n const leftOffset = triggerRight - overlayMaxWidth;\n offsetX -= leftIndent - leftOffset;\n }\n\n return [offsetX, overlayMaxWidth];\n }\n\n protected getOverlayRect(): DOMRect {\n return this.overlayDir.overlayRef.overlayElement.getBoundingClientRect();\n }\n\n protected resetOverlay(): void {\n this.overlayDir.overlayRef.hostElement.classList.add(this.overlayPanelClass);\n this.overlayDir.offsetX = 0;\n this.overlayDir.overlayRef.overlayElement.style.maxWidth = 'unset';\n this.overlayDir.overlayRef.updatePosition();\n }\n}\n","/**\n * Returns an exception to be thrown when attempting to change a select's `multiple` option\n * after initialization.\n * @docs-private\n */\nexport function getKbqSelectDynamicMultipleError(): Error {\n return Error('Cannot change `multiple` mode of select after initialization.');\n}\n\n/**\n * Returns an exception to be thrown when attempting to assign a non-array value to a select\n * in `multiple` mode. Note that `undefined` and `null` are still valid values to allow for\n * resetting the value.\n * @docs-private\n */\nexport function getKbqSelectNonArrayValueError(): Error {\n return Error('Value must be an array in multiple-selection mode.');\n}\n\n/**\n * Returns an exception to be thrown when assigning a non-function value to the comparator\n * used to determine if a value corresponds to an option. Note that whether the function\n * actually takes two values and returns a boolean is not checked.\n */\nexport function getKbqSelectNonFunctionValueError(): Error {\n return Error('`compareWith` must be a function.');\n}\n","export const selectEvents = 'selectEvents';\n","import { DOCUMENT } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class KbqMeasureScrollbarService {\n protected readonly document = inject<Document>(DOCUMENT);\n\n get scrollBarWidth(): number {\n if (this._scrollBarWidth) {\n return this._scrollBarWidth;\n }\n this.initScrollBarWidth();\n\n return this._scrollBarWidth;\n }\n\n private _scrollBarWidth: number;\n private scrollbarMeasure = {\n position: 'absolute',\n top: '-9999px',\n width: '50px',\n height: '50px',\n overflow: 'scroll'\n };\n\n constructor() {\n this.initScrollBarWidth();\n }\n\n initScrollBarWidth() {\n const scrollDiv = this.document.createElement('div');\n\n for (const scrollProp in this.scrollbarMeasure) {\n if (this.scrollbarMeasure.hasOwnProperty(scrollProp)) {\n scrollDiv.style[scrollProp] = this.scrollbarMeasure[scrollProp];\n }\n }\n\n this.document.body.appendChild(scrollDiv);\n\n const width = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n\n this.document.body.removeChild(scrollDiv);\n this._scrollBarWidth = width;\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { inject, Injectable, OnDestroy, Renderer2, RendererFactory2 } from '@angular/core';\nimport { BehaviorSubject, pairwise, Subscription } from 'rxjs';\n\nexport interface KbqTheme {\n name: string;\n className: string;\n selected: boolean;\n}\n\n/**\n * Enum representing the available themes for the Koobiq design system.\n * This enum is used to manage and switch between different visual themes.\n */\nexport enum KbqThemeSelector {\n /**\n * Represents the default light theme.\n * This is the standard theme that is applied\n * when the application is first loaded if nothing else provided\n */\n Default = 'kbq-light',\n /**\n * This theme is used to provide a darker visual experience, often preferred in low-light environments.\n */\n Dark = 'kbq-dark'\n}\n\nexport const KbqDefaultThemes: KbqTheme[] = [\n {\n name: 'light',\n className: KbqThemeSelector.Default,\n selected: true\n },\n {\n name: 'dark',\n className: KbqThemeSelector.Dark,\n selected: false\n }\n];\n\n@Injectable({ providedIn: 'root' })\nexport class ThemeService<T extends KbqTheme | null = KbqTheme> implements OnDestroy {\n protected readonly document = inject<Document>(DOCUMENT);\n protected readonly rendererFactory = inject(RendererFactory2);\n protected renderer: Renderer2;\n\n current: BehaviorSubject<T> = new BehaviorSubject(null as T);\n\n themes: T[] = KbqDefaultThemes as T[];\n\n protected subscription: Subscription;\n\n constructor() {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n\n this.subscription = this.current.pipe(pairwise()).subscribe(this.update);\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n\n setThemes(items: T[]) {\n this.themes = items;\n }\n\n setTheme(value: T | number) {\n if (typeof value === 'number') {\n this.current.next(this.themes[value]);\n } else if (typeof value === 'object' && this.themes.includes(value)) {\n this.current.next(value);\n } else {\n throw Error(`value has unsupported type: ${typeof value}`);\n }\n }\n\n getTheme(): T {\n return this.current.value;\n }\n\n protected update = ([prev, current]: T[]) => {\n if (prev) {\n prev.selected = false;\n this.renderer.removeClass(this.document.body, prev.className);\n }\n\n if (current) {\n this.renderer.addClass(this.document.body, current.className);\n current.selected = true;\n }\n };\n}\n","import { InjectionToken } from '@angular/core';\nimport { enUSFormattersData } from '../../locales';\n\nexport enum MeasurementSystem {\n SI = 'SI',\n IEC = 'IEC'\n}\n\nexport interface SizeUnitsConfig {\n defaultUnitSystem: string;\n defaultPrecision: number;\n unitSystems: {\n [MeasurementSystem.SI]: {\n abbreviations: string[];\n base: number;\n power: number;\n };\n [MeasurementSystem.IEC]: {\n abbreviations: string[];\n base: number;\n power: number;\n };\n };\n}\n\nexport const KBQ_SIZE_UNITS_DEFAULT_CONFIG = enUSFormattersData.sizeUnits;\n\nexport const KBQ_SIZE_UNITS_CONFIG = new InjectionToken<SizeUnitsConfig>('KbqSizeUnitsConfig');\n","export const formatDataSize = (value: number, precision: number, system): { value: string; unit: string } => {\n const { result, unit } = getHumanizedBytes(value, system);\n let volume: string;\n\n if (system.abbreviations[0] === unit) {\n volume = result.toString();\n } else {\n volume = result.toFixed(precision).replace(/\\./g, ',');\n }\n\n return {\n value: volume,\n unit\n };\n};\n\n/**\n * Переводит байты в Кб, Мб, Гб\n *\n * @param value количество байт\n * @param system система измерения\n * @param threshold нижний порог подсчета\n */\nexport const getHumanizedBytes = (value: number, system, threshold?: number): { result: number; unit: string } => {\n if (!Number.isFinite(value)) {\n throw new Error('Argument \"value\" must be number!');\n }\n\n const calculatedThreshold = Number.isFinite(threshold) ? threshold : Math.pow(system.base, system.power);\n const orderOfMagnitude: number = Math.pow(system.base, system.power);\n\n let result: number = value;\n let step = 0;\n const len: number = system.abbreviations.length - 1;\n\n while (step < len) {\n if (calculatedThreshold !== undefined && result < calculatedThreshold) {\n break;\n }\n\n step++;\n result = value / Math.pow(orderOfMagnitude, step);\n }\n\n return {\n result,\n unit: system.abbreviations[step]\n };\n};\n","import { Inject, Optional, Pipe, PipeTransform } from '@angular/core';\nimport { KBQ_LOCALE_SERVICE, KbqLocaleService } from '../../locales';\nimport { KBQ_SIZE_UNITS_CONFIG, KBQ_SIZE_UNITS_DEFAULT_CONFIG, SizeUnitsConfig } from './config';\nimport { formatDataSize } from './size';\n\n@Pipe({\n name: 'kbqDataSize',\n standalone: true,\n pure: false\n})\nexport class KbqDataSizePipe implements PipeTransform {\n private config: SizeUnitsConfig;\n\n constructor(\n @Optional() @Inject(KBQ_SIZE_UNITS_CONFIG) public readonly externalConfig: SizeUnitsConfig,\n @Optional() @Inject(KBQ_LOCALE_SERVICE) private localeService?: KbqLocaleService\n ) {\n this.localeService?.changes.subscribe(this.updateLocaleParams);\n\n if (!localeService) {\n this.config = KBQ_SIZE_UNITS_DEFAULT_CONFIG;\n }\n }\n\n transform(source: number, precision?: number, unitSystemName?: string): string {\n const unitSystem = this.config.unitSystems[unitSystemName || this.config.defaultUnitSystem];\n\n const { value, unit } = formatDataSize(source, precision || this.config.defaultPrecision, unitSystem);\n\n return `${value} ${unit}`;\n }\n\n private updateLocaleParams = () => {\n this.config = this.externalConfig || this.localeService?.getParams('sizeUnits');\n };\n}\n","export function isBoolean(value: unknown): value is boolean {\n return typeof value === 'boolean';\n}\n\n/**\n * Will be removed in the next major release\n *\n * @deprecated Use `booleanAttribute` instead\n */\nexport function toBoolean(value: unknown): boolean {\n return value != null && `${value}` !== 'false';\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const validationTooltipShowDelay = 10;\nexport const validationTooltipHideDelay = 3000;\n\nexport interface KbqValidationOptions {\n useValidation: boolean;\n}\n\n/** @deprecated Will be removed in next major release (#DS-2838) */\nexport const KBQ_VALIDATION = new InjectionToken<KbqValidationOptions>('KbqUseValidation', {\n factory: () => ({ useValidation: true })\n});\n","import { Version } from '@angular/core';\n\nexport const VERSION = new Version('18.21.0+sha-90403de');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["BaseDateAdapter","BaseDateFormatter","i1.KbqOptgroup","i2.KbqPseudoCheckbox","rxDelay"],"mappings":"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"}
|