@koobiq/components 18.39.3 → 18.39.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/checkbox/checkbox.scss +5 -5
  2. package/code-block/code-block.d.ts +10 -3
  3. package/code-block/code-block.module.d.ts +1 -1
  4. package/code-block/code-block.scss +1 -0
  5. package/code-block/types.d.ts +9 -0
  6. package/core/pop-up/pop-up-trigger.d.ts +4 -1
  7. package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +2 -2
  8. package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +4 -4
  9. package/esm2022/checkbox/checkbox.mjs +2 -2
  10. package/esm2022/code-block/code-block.mjs +23 -6
  11. package/esm2022/code-block/code-block.module.mjs +8 -5
  12. package/esm2022/code-block/types.mjs +1 -1
  13. package/esm2022/core/locales/en-US.mjs +2 -2
  14. package/esm2022/core/locales/es-LA.mjs +2 -2
  15. package/esm2022/core/locales/pt-BR.mjs +2 -2
  16. package/esm2022/core/locales/ru-RU.mjs +2 -2
  17. package/esm2022/core/locales/tk-TM.mjs +2 -2
  18. package/esm2022/core/pop-up/pop-up-trigger.mjs +11 -3
  19. package/esm2022/core/version.mjs +2 -2
  20. package/esm2022/filter-bar/pipes/pipe-date.mjs +7 -8
  21. package/esm2022/filter-bar/pipes/pipe-datetime.mjs +8 -9
  22. package/esm2022/filter-bar/pipes/pipe-text.mjs +3 -3
  23. package/esm2022/form-field/cleaner.mjs +3 -3
  24. package/esm2022/form-field/fieldset.mjs +2 -2
  25. package/esm2022/form-field/form-field.mjs +2 -2
  26. package/esm2022/form-field/password-toggle.mjs +3 -3
  27. package/esm2022/form-field/stepper.mjs +3 -1
  28. package/esm2022/icon/icon-button.component.mjs +2 -2
  29. package/esm2022/input/input-password.mjs +5 -4
  30. package/esm2022/input/input.mjs +5 -4
  31. package/esm2022/modal/modal-control.service.mjs +7 -1
  32. package/esm2022/navbar/navbar-item.component.mjs +9 -2
  33. package/esm2022/progress-spinner/progress-spinner.component.mjs +4 -3
  34. package/esm2022/search-expandable/search-expandable.mjs +3 -3
  35. package/esm2022/select/select.component.mjs +4 -3
  36. package/esm2022/sidepanel/sidepanel-directives.mjs +3 -3
  37. package/esm2022/tabs/tab-header.component.mjs +2 -2
  38. package/esm2022/tabs/tab-nav-bar.mjs +3 -3
  39. package/esm2022/tags/tag-input.mjs +15 -19
  40. package/esm2022/tags/tag-list.component.mjs +4 -3
  41. package/esm2022/textarea/textarea.component.mjs +4 -3
  42. package/esm2022/title/title.directive.mjs +18 -5
  43. package/esm2022/tooltip/tooltip.component.mjs +2 -2
  44. package/esm2022/top-bar/top-bar.mjs +7 -15
  45. package/esm2022/tree-select/tree-select.component.mjs +4 -3
  46. package/fesm2022/koobiq-components-autocomplete.mjs +3 -3
  47. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  48. package/fesm2022/koobiq-components-checkbox.mjs +2 -2
  49. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  50. package/fesm2022/koobiq-components-code-block.mjs +29 -9
  51. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  52. package/fesm2022/koobiq-components-core.mjs +15 -7
  53. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  54. package/fesm2022/koobiq-components-filter-bar.mjs +22 -22
  55. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  56. package/fesm2022/koobiq-components-form-field.mjs +10 -8
  57. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  58. package/fesm2022/koobiq-components-icon.mjs +2 -2
  59. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  60. package/fesm2022/koobiq-components-input.mjs +6 -4
  61. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  62. package/fesm2022/koobiq-components-modal.mjs +6 -0
  63. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  64. package/fesm2022/koobiq-components-navbar.mjs +8 -1
  65. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  66. package/fesm2022/koobiq-components-progress-spinner.mjs +3 -2
  67. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  68. package/fesm2022/koobiq-components-search-expandable.mjs +2 -2
  69. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  70. package/fesm2022/koobiq-components-select.mjs +3 -2
  71. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  72. package/fesm2022/koobiq-components-sidepanel.mjs +2 -2
  73. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  74. package/fesm2022/koobiq-components-tabs.mjs +4 -4
  75. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  76. package/fesm2022/koobiq-components-tags.mjs +15 -18
  77. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  78. package/fesm2022/koobiq-components-textarea.mjs +3 -2
  79. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  80. package/fesm2022/koobiq-components-title.mjs +17 -4
  81. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  82. package/fesm2022/koobiq-components-tooltip.mjs +1 -1
  83. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  84. package/fesm2022/koobiq-components-top-bar.mjs +6 -14
  85. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  86. package/fesm2022/koobiq-components-tree-select.mjs +3 -2
  87. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  88. package/filter-bar/pipes/pipe-date.scss +3 -15
  89. package/form-field/form-field.scss +2 -1
  90. package/icon/icon-button.scss +4 -0
  91. package/input/input-password.d.ts +1 -0
  92. package/input/input.d.ts +1 -0
  93. package/navbar/navbar-item.component.d.ts +3 -1
  94. package/package.json +4 -4
  95. package/progress-spinner/_progress-spinner-theme.scss +14 -4
  96. package/progress-spinner/progress-spinner-tokens.scss +2 -0
  97. package/progress-spinner/progress-spinner.scss +1 -0
  98. package/schematics/ng-add/index.js +3 -3
  99. package/select/select.component.d.ts +1 -0
  100. package/tabs/_tabs-common.scss +2 -1
  101. package/tags/tag-input.d.ts +4 -3
  102. package/tags/tag-list.component.d.ts +1 -0
  103. package/textarea/textarea.component.d.ts +1 -0
  104. package/title/title.directive.d.ts +3 -0
  105. package/top-bar/top-bar.d.ts +1 -8
  106. package/top-bar/top-bar.scss +2 -8
  107. package/tree-select/tree-select.component.d.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-textarea.mjs","sources":["../../../packages/components/textarea/textarea.component.ts","../../../packages/components/textarea/textarea.module.ts","../../../packages/components/textarea/koobiq-components-textarea.ts"],"sourcesContent":["import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Platform } from '@angular/cdk/platform';\nimport {\n booleanAttribute,\n Directive,\n DoCheck,\n ElementRef,\n EventEmitter,\n Host,\n inject,\n Inject,\n InjectionToken,\n Input,\n NgZone,\n numberAttribute,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Renderer2,\n Self\n} from '@angular/core';\nimport { FormGroupDirective, NgControl, NgForm, UntypedFormControl } from '@angular/forms';\nimport {\n CanUpdateErrorState,\n ErrorStateMatcher,\n KBQ_PARENT_ANIMATION_COMPONENT,\n KBQ_WINDOW\n} from '@koobiq/components/core';\nimport { KbqFormFieldControl } from '@koobiq/components/form-field';\nimport { Subject, Subscription } from 'rxjs';\nimport { delay } from 'rxjs/operators';\n\nexport const KBQ_TEXTAREA_VALUE_ACCESSOR = new InjectionToken<{ value: any }>('KBQ_TEXTAREA_VALUE_ACCESSOR');\n\nlet nextUniqueId = 0;\n\n@Directive({\n selector: 'textarea[kbqTextarea]',\n exportAs: 'kbqTextarea',\n host: {\n class: 'kbq-textarea kbq-scrollbar',\n '[class.kbq-textarea-resizable]': '!canGrow',\n '[class.kbq-textarea_max-row-limit-reached]': 'maxRowLimitReached',\n\n '[attr.id]': 'id',\n '[attr.placeholder]': 'placeholder',\n '[attr.aria-invalid]': 'errorState',\n '[disabled]': 'disabled',\n '[required]': 'required',\n\n '(blur)': 'onBlur()',\n '(focus)': 'focusChanged(true)',\n '(paste)': 'stateChanges.next()'\n },\n providers: [{ provide: KbqFormFieldControl, useExisting: KbqTextarea }]\n})\nexport class KbqTextarea\n implements KbqFormFieldControl<any>, OnInit, OnChanges, OnDestroy, DoCheck, CanUpdateErrorState\n{\n /** Whether the component is in an error state. */\n errorState: boolean = false;\n\n /** Parameter enables or disables the ability to automatically increase the height.\n * If set to false, the textarea becomes vertically resizable. */\n @Input({ transform: booleanAttribute })\n get canGrow(): boolean {\n return !this.maxRowLimitReached && this._canGrow;\n }\n\n set canGrow(value: boolean) {\n this._canGrow = value;\n }\n\n protected readonly isBrowser = inject(Platform).isBrowser;\n protected readonly renderer = inject(Renderer2);\n private readonly window = inject(KBQ_WINDOW);\n\n private _canGrow: boolean = true;\n\n /** Maximum number of lines to which the textarea will grow. Default unlimited */\n @Input() maxRows: number;\n\n /** An object used to control when error messages are shown. */\n @Input() errorStateMatcher: ErrorStateMatcher;\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n focused: boolean = false;\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n controlType: string = 'textarea';\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n @Input()\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next();\n }\n }\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this.uid;\n }\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n @Input() placeholder: string;\n\n /** Distance from the last line to the bottom border */\n @Input({ transform: numberAttribute }) freeRowsHeight: number;\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n }\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n @Input()\n get value(): string {\n return this.valueAccessor.value;\n }\n\n set value(value: string) {\n if (value !== this.value) {\n this.valueAccessor.value = value;\n this.stateChanges.next();\n }\n }\n\n /** Flag that will be set to true when the maximum number of lines is reached.\n * Maximum number of rows can be set using the maxRows input. */\n get maxRowLimitReached(): boolean {\n return this.rowsCount > this.maxRows;\n }\n\n protected uid = `kbq-textarea-${nextUniqueId++}`;\n protected previousNativeValue: any;\n private _disabled = false;\n private _id: string;\n private _required = false;\n\n private valueAccessor: { value: any };\n private growSubscription: Subscription;\n\n private lineHeight: number = 0;\n private minHeight: number = 0;\n private rowsCount: number;\n\n constructor(\n protected elementRef: ElementRef<HTMLTextAreaElement>,\n @Optional() @Self() public ngControl: NgControl,\n @Optional() public parentForm: NgForm,\n @Optional() public parentFormGroup: FormGroupDirective,\n public defaultErrorStateMatcher: ErrorStateMatcher,\n @Optional() @Self() @Inject(KBQ_TEXTAREA_VALUE_ACCESSOR) inputValueAccessor: any,\n @Optional() @Host() @Inject(KBQ_PARENT_ANIMATION_COMPONENT) private parent: any,\n private ngZone: NgZone\n ) {\n // If no input value accessor was explicitly specified, use the element as the textarea value\n // accessor.\n this.valueAccessor = inputValueAccessor || this.elementRef.nativeElement;\n\n this.previousNativeValue = this.value;\n\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n\n // eslint-disable-next-line @angular-eslint/no-lifecycle-call\n this.parent?.animationDone.subscribe(() => this.ngOnInit());\n\n this.growSubscription = this.stateChanges.pipe(delay(0)).subscribe(this.grow);\n }\n\n ngOnInit() {\n if (!this.isBrowser) return;\n\n Promise.resolve().then(() => {\n this.lineHeight = parseInt(this.window.getComputedStyle(this.elementRef.nativeElement).lineHeight!, 10);\n\n const paddingTop = parseInt(this.window.getComputedStyle(this.elementRef.nativeElement).paddingTop!, 10);\n const paddingBottom = parseInt(\n this.window.getComputedStyle(this.elementRef.nativeElement).paddingBottom!,\n 10\n );\n\n this.minHeight = this.lineHeight + paddingTop + paddingBottom;\n this.freeRowsHeight = this.freeRowsHeight ?? this.lineHeight;\n });\n\n setTimeout(this.grow, 0);\n }\n\n ngOnChanges() {\n this.stateChanges.next();\n }\n\n ngOnDestroy() {\n this.stateChanges.complete();\n this.growSubscription.unsubscribe();\n }\n\n ngDoCheck() {\n if (this.ngControl) {\n // We need to re-evaluate this on every change detection cycle, because there are some\n // error triggers that we can't subscribe to (e.g. parent form submissions). This means\n // that whatever logic is in here has to be super lean or we risk destroying the performance.\n this.updateErrorState();\n }\n\n // We need to dirty-check the native element's value, because there are some cases where\n // we won't be notified when it changes (e.g. the consumer isn't using forms or they're\n // updating the value using `emitEvent: false`).\n this.dirtyCheckNativeValue();\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 onBlur(): void {\n this.focusChanged(false);\n\n if (this.ngControl?.control) {\n const control = this.ngControl.control;\n\n control.updateValueAndValidity({ emitEvent: false });\n (control.statusChanges as EventEmitter<string>).emit(control.status);\n }\n }\n\n /** Grow textarea height to avoid vertical scroll */\n grow = () => {\n if (!this.isBrowser || !this._canGrow) return;\n\n this.ngZone.runOutsideAngular(() => {\n const textarea = this.elementRef.nativeElement;\n\n const clone = textarea.cloneNode(false) as HTMLTextAreaElement;\n\n this.renderer.appendChild(this.renderer.parentNode(textarea), clone);\n\n const outerHeight = parseInt(this.window.getComputedStyle(textarea).height!, 10);\n const diff = outerHeight - +textarea.clientHeight;\n\n clone.style.minHeight = '0'; // this line is important to height recalculation\n\n const height = Math.max(this.minHeight, +clone.scrollHeight + diff + this.freeRowsHeight);\n\n clone.remove();\n\n this.rowsCount = Math.floor(height / this.lineHeight);\n\n if (!this.maxRowLimitReached) {\n textarea.style.minHeight = `${height}px`;\n } else if (!textarea.style.minHeight && this.lineHeight) {\n // need for first initialization when value above maxRows\n textarea.style.minHeight = `${this.maxRows * this.lineHeight}px`;\n }\n });\n };\n\n /** Focuses the textarea. */\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n /** Callback for the cases where the focused state of the textarea changes. */\n focusChanged(isFocused: boolean) {\n if (isFocused !== this.focused) {\n this.focused = isFocused;\n this.stateChanges.next();\n }\n }\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n get empty(): boolean {\n return !this.elementRef.nativeElement.value && !this.isBadInput();\n }\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n onContainerClick() {\n this.focus();\n }\n\n /** Does some manual dirty checking on the native textarea `value` property. */\n protected dirtyCheckNativeValue() {\n const newValue = this.value;\n\n if (this.previousNativeValue !== newValue) {\n this.previousNativeValue = newValue;\n this.stateChanges.next();\n }\n }\n\n /** Checks whether the textarea is invalid based on the native validation. */\n protected isBadInput(): boolean {\n // The `validity` property won't be present on platform-server.\n const validity = (this.elementRef.nativeElement as HTMLTextAreaElement).validity;\n\n return validity && validity.badInput;\n }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { KbqFormFieldModule } from '@koobiq/components/form-field';\nimport { KbqTextarea } from './textarea.component';\n\n@NgModule({\n imports: [A11yModule, FormsModule],\n exports: [KbqTextarea, KbqFormFieldModule],\n declarations: [KbqTextarea]\n})\nexport class KbqTextareaModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-textarea.mjs","sources":["../../../packages/components/textarea/textarea.component.ts","../../../packages/components/textarea/textarea.module.ts","../../../packages/components/textarea/koobiq-components-textarea.ts"],"sourcesContent":["import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Platform } from '@angular/cdk/platform';\nimport {\n booleanAttribute,\n Directive,\n DoCheck,\n ElementRef,\n EventEmitter,\n Host,\n inject,\n Inject,\n InjectionToken,\n Input,\n NgZone,\n numberAttribute,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Renderer2,\n Self\n} from '@angular/core';\nimport { FormGroupDirective, NgControl, NgForm, UntypedFormControl } from '@angular/forms';\nimport {\n CanUpdateErrorState,\n ErrorStateMatcher,\n KBQ_PARENT_ANIMATION_COMPONENT,\n KBQ_VALIDATION,\n KBQ_WINDOW\n} from '@koobiq/components/core';\nimport { KbqFormFieldControl } from '@koobiq/components/form-field';\nimport { Subject, Subscription } from 'rxjs';\nimport { delay } from 'rxjs/operators';\n\nexport const KBQ_TEXTAREA_VALUE_ACCESSOR = new InjectionToken<{ value: any }>('KBQ_TEXTAREA_VALUE_ACCESSOR');\n\nlet nextUniqueId = 0;\n\n@Directive({\n selector: 'textarea[kbqTextarea]',\n exportAs: 'kbqTextarea',\n host: {\n class: 'kbq-textarea kbq-scrollbar',\n '[class.kbq-textarea-resizable]': '!canGrow',\n '[class.kbq-textarea_max-row-limit-reached]': 'maxRowLimitReached',\n\n '[attr.id]': 'id',\n '[attr.placeholder]': 'placeholder',\n '[attr.aria-invalid]': 'errorState',\n '[disabled]': 'disabled',\n '[required]': 'required',\n\n '(blur)': 'onBlur()',\n '(focus)': 'focusChanged(true)',\n '(paste)': 'stateChanges.next()'\n },\n providers: [{ provide: KbqFormFieldControl, useExisting: KbqTextarea }]\n})\nexport class KbqTextarea\n implements KbqFormFieldControl<any>, OnInit, OnChanges, OnDestroy, DoCheck, CanUpdateErrorState\n{\n private readonly useLegacyValidation = inject(KBQ_VALIDATION, { optional: true })?.useValidation ?? false;\n\n /** Whether the component is in an error state. */\n errorState: boolean = false;\n\n /** Parameter enables or disables the ability to automatically increase the height.\n * If set to false, the textarea becomes vertically resizable. */\n @Input({ transform: booleanAttribute })\n get canGrow(): boolean {\n return !this.maxRowLimitReached && this._canGrow;\n }\n\n set canGrow(value: boolean) {\n this._canGrow = value;\n }\n\n protected readonly isBrowser = inject(Platform).isBrowser;\n protected readonly renderer = inject(Renderer2);\n private readonly window = inject(KBQ_WINDOW);\n\n private _canGrow: boolean = true;\n\n /** Maximum number of lines to which the textarea will grow. Default unlimited */\n @Input() maxRows: number;\n\n /** An object used to control when error messages are shown. */\n @Input() errorStateMatcher: ErrorStateMatcher;\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n focused: boolean = false;\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n controlType: string = 'textarea';\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n @Input()\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next();\n }\n }\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this.uid;\n }\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n @Input() placeholder: string;\n\n /** Distance from the last line to the bottom border */\n @Input({ transform: numberAttribute }) freeRowsHeight: number;\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n }\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n @Input()\n get value(): string {\n return this.valueAccessor.value;\n }\n\n set value(value: string) {\n if (value !== this.value) {\n this.valueAccessor.value = value;\n this.stateChanges.next();\n }\n }\n\n /** Flag that will be set to true when the maximum number of lines is reached.\n * Maximum number of rows can be set using the maxRows input. */\n get maxRowLimitReached(): boolean {\n return this.rowsCount > this.maxRows;\n }\n\n protected uid = `kbq-textarea-${nextUniqueId++}`;\n protected previousNativeValue: any;\n private _disabled = false;\n private _id: string;\n private _required = false;\n\n private valueAccessor: { value: any };\n private growSubscription: Subscription;\n\n private lineHeight: number = 0;\n private minHeight: number = 0;\n private rowsCount: number;\n\n constructor(\n protected elementRef: ElementRef<HTMLTextAreaElement>,\n @Optional() @Self() public ngControl: NgControl,\n @Optional() public parentForm: NgForm,\n @Optional() public parentFormGroup: FormGroupDirective,\n public defaultErrorStateMatcher: ErrorStateMatcher,\n @Optional() @Self() @Inject(KBQ_TEXTAREA_VALUE_ACCESSOR) inputValueAccessor: any,\n @Optional() @Host() @Inject(KBQ_PARENT_ANIMATION_COMPONENT) private parent: any,\n private ngZone: NgZone\n ) {\n // If no input value accessor was explicitly specified, use the element as the textarea value\n // accessor.\n this.valueAccessor = inputValueAccessor || this.elementRef.nativeElement;\n\n this.previousNativeValue = this.value;\n\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n\n // eslint-disable-next-line @angular-eslint/no-lifecycle-call\n this.parent?.animationDone.subscribe(() => this.ngOnInit());\n\n this.growSubscription = this.stateChanges.pipe(delay(0)).subscribe(this.grow);\n }\n\n ngOnInit() {\n if (!this.isBrowser) return;\n\n Promise.resolve().then(() => {\n this.lineHeight = parseInt(this.window.getComputedStyle(this.elementRef.nativeElement).lineHeight!, 10);\n\n const paddingTop = parseInt(this.window.getComputedStyle(this.elementRef.nativeElement).paddingTop!, 10);\n const paddingBottom = parseInt(\n this.window.getComputedStyle(this.elementRef.nativeElement).paddingBottom!,\n 10\n );\n\n this.minHeight = this.lineHeight + paddingTop + paddingBottom;\n this.freeRowsHeight = this.freeRowsHeight ?? this.lineHeight;\n });\n\n setTimeout(this.grow, 0);\n }\n\n ngOnChanges() {\n this.stateChanges.next();\n }\n\n ngOnDestroy() {\n this.stateChanges.complete();\n this.growSubscription.unsubscribe();\n }\n\n ngDoCheck() {\n if (this.ngControl) {\n // We need to re-evaluate this on every change detection cycle, because there are some\n // error triggers that we can't subscribe to (e.g. parent form submissions). This means\n // that whatever logic is in here has to be super lean or we risk destroying the performance.\n this.updateErrorState();\n }\n\n // We need to dirty-check the native element's value, because there are some cases where\n // we won't be notified when it changes (e.g. the consumer isn't using forms or they're\n // updating the value using `emitEvent: false`).\n this.dirtyCheckNativeValue();\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 onBlur(): void {\n this.focusChanged(false);\n\n if (this.useLegacyValidation && this.ngControl?.control) {\n const control = this.ngControl.control;\n\n control.updateValueAndValidity({ emitEvent: false });\n (control.statusChanges as EventEmitter<string>).emit(control.status);\n }\n }\n\n /** Grow textarea height to avoid vertical scroll */\n grow = () => {\n if (!this.isBrowser || !this._canGrow) return;\n\n this.ngZone.runOutsideAngular(() => {\n const textarea = this.elementRef.nativeElement;\n\n const clone = textarea.cloneNode(false) as HTMLTextAreaElement;\n\n this.renderer.appendChild(this.renderer.parentNode(textarea), clone);\n\n const outerHeight = parseInt(this.window.getComputedStyle(textarea).height!, 10);\n const diff = outerHeight - +textarea.clientHeight;\n\n clone.style.minHeight = '0'; // this line is important to height recalculation\n\n const height = Math.max(this.minHeight, +clone.scrollHeight + diff + this.freeRowsHeight);\n\n clone.remove();\n\n this.rowsCount = Math.floor(height / this.lineHeight);\n\n if (!this.maxRowLimitReached) {\n textarea.style.minHeight = `${height}px`;\n } else if (!textarea.style.minHeight && this.lineHeight) {\n // need for first initialization when value above maxRows\n textarea.style.minHeight = `${this.maxRows * this.lineHeight}px`;\n }\n });\n };\n\n /** Focuses the textarea. */\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n /** Callback for the cases where the focused state of the textarea changes. */\n focusChanged(isFocused: boolean) {\n if (isFocused !== this.focused) {\n this.focused = isFocused;\n this.stateChanges.next();\n }\n }\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n get empty(): boolean {\n return !this.elementRef.nativeElement.value && !this.isBadInput();\n }\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n onContainerClick() {\n this.focus();\n }\n\n /** Does some manual dirty checking on the native textarea `value` property. */\n protected dirtyCheckNativeValue() {\n const newValue = this.value;\n\n if (this.previousNativeValue !== newValue) {\n this.previousNativeValue = newValue;\n this.stateChanges.next();\n }\n }\n\n /** Checks whether the textarea is invalid based on the native validation. */\n protected isBadInput(): boolean {\n // The `validity` property won't be present on platform-server.\n const validity = (this.elementRef.nativeElement as HTMLTextAreaElement).validity;\n\n return validity && validity.badInput;\n }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { KbqFormFieldModule } from '@koobiq/components/form-field';\nimport { KbqTextarea } from './textarea.component';\n\n@NgModule({\n imports: [A11yModule, FormsModule],\n exports: [KbqTextarea, KbqFormFieldModule],\n declarations: [KbqTextarea]\n})\nexport class KbqTextareaModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { ContentObserver } from '@angular/cdk/observers';
2
2
  import * as i0 from '@angular/core';
3
- import { inject, Directive, Host, Optional, Inject, ContentChild, NgModule } from '@angular/core';
4
- import { PopUpTriggers, KBQ_TITLE_TEXT_REF } from '@koobiq/components/core';
3
+ import { inject, Renderer2, Directive, Host, Optional, Inject, ContentChild, NgModule } from '@angular/core';
4
+ import { PopUpTriggers, kbqInjectNativeElement, KBQ_TITLE_TEXT_REF } from '@koobiq/components/core';
5
5
  import { KbqTooltipTrigger, KbqToolTipModule } from '@koobiq/components/tooltip';
6
6
  import { Subject, Subscription, throttleTime } from 'rxjs';
7
7
  import { debounceTime } from 'rxjs/operators';
@@ -17,13 +17,21 @@ class KbqTitleDirective extends KbqTooltipTrigger {
17
17
  get isOverflown() {
18
18
  /** For special cases where the difference is a fraction of a pixel */
19
19
  if (!this.isVerticalOverflown &&
20
- (this.child.scrollWidth === 0 || this.parent.offsetWidth === this.child.scrollWidth)) {
20
+ (this.child.scrollWidth === 0 || this.parent?.offsetWidth === this.child.scrollWidth)) {
21
+ if (this.hasOnlyText) {
22
+ const wrapper = this.renderer.createElement('span');
23
+ wrapper.innerText = this.child.innerText;
24
+ this.parent.appendChild(wrapper);
25
+ const result = this.parent.getBoundingClientRect().width < wrapper.getBoundingClientRect().width;
26
+ wrapper.remove();
27
+ return result;
28
+ }
21
29
  return this.parent.getBoundingClientRect().width < this.child.getBoundingClientRect().width;
22
30
  }
23
31
  return this.isHorizontalOverflown || this.isVerticalOverflown;
24
32
  }
25
33
  get isHorizontalOverflown() {
26
- return this.parent.offsetWidth < this.child.scrollWidth;
34
+ return this.parent?.offsetWidth < this.child.scrollWidth;
27
35
  }
28
36
  get isVerticalOverflown() {
29
37
  return this.parent?.offsetHeight < this.child.scrollHeight;
@@ -37,9 +45,14 @@ class KbqTitleDirective extends KbqTooltipTrigger {
37
45
  get child() {
38
46
  return this.childContainer.nativeElement || this.childContainer;
39
47
  }
48
+ get hasOnlyText() {
49
+ return (this.nativeElement.childNodes.length === 1 && this.nativeElement.childNodes[0].nodeType === Node.TEXT_NODE);
50
+ }
40
51
  constructor(componentInstance) {
41
52
  super();
42
53
  this.componentInstance = componentInstance;
54
+ this.renderer = inject(Renderer2);
55
+ this.nativeElement = kbqInjectNativeElement();
43
56
  this.contentObserver = inject(ContentObserver);
44
57
  this.resizeStream = new Subject();
45
58
  this.debounceInterval = 100;
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-title.mjs","sources":["../../../packages/components/title/title.directive.ts","../../../packages/components/title/title.module.ts","../../../packages/components/title/koobiq-components-title.ts"],"sourcesContent":["import { ContentObserver } from '@angular/cdk/observers';\nimport {\n AfterViewInit,\n ContentChild,\n Directive,\n ElementRef,\n Host,\n inject,\n Inject,\n OnDestroy,\n Optional\n} from '@angular/core';\nimport { KBQ_TITLE_TEXT_REF, KbqTitleTextRef, PopUpTriggers } from '@koobiq/components/core';\nimport { KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { Subject, Subscription, throttleTime } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Directive({\n selector: '[kbq-title]',\n exportAs: 'kbqTitle',\n host: {\n '(mouseenter)': 'handleElementEnter()',\n '(mouseleave)': 'hideTooltip()',\n '(window:resize)': 'resizeStream.next($event)'\n }\n})\nexport class KbqTitleDirective extends KbqTooltipTrigger implements AfterViewInit, OnDestroy {\n private contentObserver = inject(ContentObserver);\n\n // todo need rename kbqTrigger in popover, tooltip and title. Here workaround for kbq-title and popover on one button\n set trigger(value: string) {\n super.trigger = value;\n }\n\n get trigger(): string {\n return PopUpTriggers.Hover;\n }\n\n get isOverflown(): boolean {\n /** For special cases where the difference is a fraction of a pixel */\n if (\n !this.isVerticalOverflown &&\n (this.child.scrollWidth === 0 || this.parent.offsetWidth === this.child.scrollWidth)\n ) {\n return this.parent.getBoundingClientRect().width < this.child.getBoundingClientRect().width;\n }\n\n return this.isHorizontalOverflown || this.isVerticalOverflown;\n }\n\n get isHorizontalOverflown(): boolean {\n return this.parent.offsetWidth < this.child.scrollWidth;\n }\n\n get isVerticalOverflown(): boolean {\n return this.parent?.offsetHeight < this.child.scrollHeight;\n }\n\n get viewValue(): string {\n return (this.parent?.textContent || '').trim();\n }\n\n get parent(): HTMLElement {\n return this.parentContainer?.nativeElement || this.parentContainer;\n }\n\n get child(): HTMLElement {\n return this.childContainer.nativeElement || this.childContainer;\n }\n\n readonly resizeStream = new Subject<Event>();\n\n private readonly debounceInterval: number = 100;\n\n private resizeSubscription = Subscription.EMPTY;\n private contentObserverSubscription = Subscription.EMPTY;\n private focusMonitorSubscription = Subscription.EMPTY;\n\n @ContentChild('kbqTitleText', { descendants: true, static: true })\n private childContainer: ElementRef;\n\n @ContentChild('kbqTitleContainer')\n private parentContainer: ElementRef;\n\n constructor(@Host() @Optional() @Inject(KBQ_TITLE_TEXT_REF) private componentInstance?: KbqTitleTextRef) {\n super();\n }\n\n ngAfterViewInit() {\n this.parentContainer = this.parentContainer || this.componentInstance?.parentTextElement || this.elementRef;\n this.childContainer = this.childContainer || this.componentInstance?.textElement || this.elementRef;\n this.content = this.viewValue;\n\n this.resizeSubscription = this.resizeStream\n .pipe(debounceTime(this.debounceInterval))\n .subscribe(() => (this.disabled = !this.isOverflown));\n\n this.contentObserverSubscription = this.contentObserver\n .observe(this.parent)\n .pipe(throttleTime(this.debounceInterval))\n .subscribe(() => {\n this.disabled = !this.isOverflown;\n this.content = this.viewValue;\n });\n\n this.focusMonitorSubscription = this.focusMonitor\n .monitor(this.elementRef)\n .subscribe((origin) => (origin === 'keyboard' ? this.handleElementEnter() : this.hideTooltip()));\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n\n this.resizeSubscription.unsubscribe();\n this.contentObserverSubscription.unsubscribe();\n this.focusMonitorSubscription.unsubscribe();\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n handleElementEnter() {\n this.disabled = !this.isOverflown;\n }\n\n hideTooltip() {\n this.disabled = true;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqToolTipModule } from '@koobiq/components/tooltip';\nimport { KbqTitleDirective } from './title.directive';\n\n@NgModule({\n imports: [KbqToolTipModule],\n declarations: [KbqTitleDirective],\n exports: [KbqTitleDirective]\n})\nexport class KbqTitleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AA0BM,MAAO,iBAAkB,SAAQ,iBAAiB,CAAA;;IAIpD,IAAI,OAAO,CAAC,KAAa,EAAA;AACrB,QAAA,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;KACzB;AAED,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,aAAa,CAAC,KAAK,CAAC;KAC9B;AAED,IAAA,IAAI,WAAW,GAAA;;QAEX,IACI,CAAC,IAAI,CAAC,mBAAmB;aACxB,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EACtF;AACE,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;SAC/F;AAED,QAAA,OAAO,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,mBAAmB,CAAC;KACjE;AAED,IAAA,IAAI,qBAAqB,GAAA;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;KAC3D;AAED,IAAA,IAAI,mBAAmB,GAAA;QACnB,OAAO,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;KAC9D;AAED,IAAA,IAAI,SAAS,GAAA;AACT,QAAA,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC;KAClD;AAED,IAAA,IAAI,MAAM,GAAA;QACN,OAAO,IAAI,CAAC,eAAe,EAAE,aAAa,IAAI,IAAI,CAAC,eAAe,CAAC;KACtE;AAED,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,cAAc,CAAC,aAAa,IAAI,IAAI,CAAC,cAAc,CAAC;KACnE;AAgBD,IAAA,WAAA,CAAoE,iBAAmC,EAAA;AACnG,QAAA,KAAK,EAAE,CAAC;QADwD,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAkB;AAzD/F,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AA2CzC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAS,CAAC;QAE5B,IAAgB,CAAA,gBAAA,GAAW,GAAG,CAAC;AAExC,QAAA,IAAA,CAAA,kBAAkB,GAAG,YAAY,CAAC,KAAK,CAAC;AACxC,QAAA,IAAA,CAAA,2BAA2B,GAAG,YAAY,CAAC,KAAK,CAAC;AACjD,QAAA,IAAA,CAAA,wBAAwB,GAAG,YAAY,CAAC,KAAK,CAAC;KAUrD;IAED,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,IAAI,IAAI,CAAC,UAAU,CAAC;AAC5G,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,iBAAiB,EAAE,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC;AACpG,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;AAE9B,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY;AACtC,aAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACzC,aAAA,SAAS,CAAC,OAAO,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAE1D,QAAA,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,eAAe;AAClD,aAAA,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AACpB,aAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;aACzC,SAAS,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;AAClC,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;AAClC,SAAC,CAAC,CAAC;AAEP,QAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,YAAY;AAC5C,aAAA,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;aACxB,SAAS,CAAC,CAAC,MAAM,MAAM,MAAM,KAAK,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;KACxG;IAED,WAAW,GAAA;QACP,KAAK,CAAC,WAAW,EAAE,CAAC;AAEpB,QAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;AACtC,QAAA,IAAI,CAAC,2BAA2B,CAAC,WAAW,EAAE,CAAC;AAC/C,QAAA,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,CAAC;QAC5C,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACrD;IAED,kBAAkB,GAAA;AACd,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;KACrC;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;KACxB;AAnGQ,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBA0Dc,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;sHA1DjD,iBAAiB,EAAA,QAAA,EAAA,aAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAT7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,IAAI,EAAE;AACF,wBAAA,cAAc,EAAE,sBAAsB;AACtC,wBAAA,cAAc,EAAE,eAAe;AAC/B,wBAAA,iBAAiB,EAAE,2BAA2B;AACjD,qBAAA;AACJ,iBAAA,CAAA;;0BA2DgB,IAAI;;0BAAI,QAAQ;;0BAAI,MAAM;2BAAC,kBAAkB,CAAA;yCALlD,cAAc,EAAA,CAAA;sBADrB,YAAY;uBAAC,cAAc,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAIzD,eAAe,EAAA,CAAA;sBADtB,YAAY;uBAAC,mBAAmB,CAAA;;;MCxExB,cAAc,CAAA;kIAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAd,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EAHR,YAAA,EAAA,CAAA,iBAAiB,CADtB,EAAA,OAAA,EAAA,CAAA,gBAAgB,aAEhB,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;AAElB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAJb,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIjB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,gBAAgB,CAAC;oBAC3B,YAAY,EAAE,CAAC,iBAAiB,CAAC;oBACjC,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC/B,iBAAA,CAAA;;;ACRD;;AAEG;;;;"}
1
+ {"version":3,"file":"koobiq-components-title.mjs","sources":["../../../packages/components/title/title.directive.ts","../../../packages/components/title/title.module.ts","../../../packages/components/title/koobiq-components-title.ts"],"sourcesContent":["import { ContentObserver } from '@angular/cdk/observers';\nimport {\n AfterViewInit,\n ContentChild,\n Directive,\n ElementRef,\n Host,\n inject,\n Inject,\n OnDestroy,\n Optional,\n Renderer2\n} from '@angular/core';\nimport { KBQ_TITLE_TEXT_REF, kbqInjectNativeElement, KbqTitleTextRef, PopUpTriggers } from '@koobiq/components/core';\nimport { KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { Subject, Subscription, throttleTime } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Directive({\n selector: '[kbq-title]',\n exportAs: 'kbqTitle',\n host: {\n '(mouseenter)': 'handleElementEnter()',\n '(mouseleave)': 'hideTooltip()',\n '(window:resize)': 'resizeStream.next($event)'\n }\n})\nexport class KbqTitleDirective extends KbqTooltipTrigger implements AfterViewInit, OnDestroy {\n private readonly renderer = inject(Renderer2);\n private readonly nativeElement = kbqInjectNativeElement();\n\n private contentObserver = inject(ContentObserver);\n\n // todo need rename kbqTrigger in popover, tooltip and title. Here workaround for kbq-title and popover on one button\n set trigger(value: string) {\n super.trigger = value;\n }\n\n get trigger(): string {\n return PopUpTriggers.Hover;\n }\n\n get isOverflown(): boolean {\n /** For special cases where the difference is a fraction of a pixel */\n if (\n !this.isVerticalOverflown &&\n (this.child.scrollWidth === 0 || this.parent?.offsetWidth === this.child.scrollWidth)\n ) {\n if (this.hasOnlyText) {\n const wrapper = this.renderer.createElement('span');\n\n wrapper.innerText = this.child.innerText;\n this.parent.appendChild(wrapper);\n\n const result = this.parent.getBoundingClientRect().width < wrapper.getBoundingClientRect().width;\n\n wrapper.remove();\n\n return result;\n }\n\n return this.parent.getBoundingClientRect().width < this.child.getBoundingClientRect().width;\n }\n\n return this.isHorizontalOverflown || this.isVerticalOverflown;\n }\n\n get isHorizontalOverflown(): boolean {\n return this.parent?.offsetWidth < this.child.scrollWidth;\n }\n\n get isVerticalOverflown(): boolean {\n return this.parent?.offsetHeight < this.child.scrollHeight;\n }\n\n get viewValue(): string {\n return (this.parent?.textContent || '').trim();\n }\n\n get parent(): HTMLElement {\n return this.parentContainer?.nativeElement || this.parentContainer;\n }\n\n get child(): HTMLElement {\n return this.childContainer.nativeElement || this.childContainer;\n }\n\n get hasOnlyText(): boolean {\n return (\n this.nativeElement.childNodes.length === 1 && this.nativeElement.childNodes[0].nodeType === Node.TEXT_NODE\n );\n }\n\n readonly resizeStream = new Subject<Event>();\n\n private readonly debounceInterval: number = 100;\n\n private resizeSubscription = Subscription.EMPTY;\n private contentObserverSubscription = Subscription.EMPTY;\n private focusMonitorSubscription = Subscription.EMPTY;\n\n @ContentChild('kbqTitleText', { descendants: true, static: true })\n private childContainer: ElementRef;\n\n @ContentChild('kbqTitleContainer')\n private parentContainer: ElementRef;\n\n constructor(@Host() @Optional() @Inject(KBQ_TITLE_TEXT_REF) private componentInstance?: KbqTitleTextRef) {\n super();\n }\n\n ngAfterViewInit() {\n this.parentContainer = this.parentContainer || this.componentInstance?.parentTextElement || this.elementRef;\n this.childContainer = this.childContainer || this.componentInstance?.textElement || this.elementRef;\n this.content = this.viewValue;\n\n this.resizeSubscription = this.resizeStream\n .pipe(debounceTime(this.debounceInterval))\n .subscribe(() => (this.disabled = !this.isOverflown));\n\n this.contentObserverSubscription = this.contentObserver\n .observe(this.parent)\n .pipe(throttleTime(this.debounceInterval))\n .subscribe(() => {\n this.disabled = !this.isOverflown;\n this.content = this.viewValue;\n });\n\n this.focusMonitorSubscription = this.focusMonitor\n .monitor(this.elementRef)\n .subscribe((origin) => (origin === 'keyboard' ? this.handleElementEnter() : this.hideTooltip()));\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n\n this.resizeSubscription.unsubscribe();\n this.contentObserverSubscription.unsubscribe();\n this.focusMonitorSubscription.unsubscribe();\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n handleElementEnter() {\n this.disabled = !this.isOverflown;\n }\n\n hideTooltip() {\n this.disabled = true;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqToolTipModule } from '@koobiq/components/tooltip';\nimport { KbqTitleDirective } from './title.directive';\n\n@NgModule({\n imports: [KbqToolTipModule],\n declarations: [KbqTitleDirective],\n exports: [KbqTitleDirective]\n})\nexport class KbqTitleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -111,7 +111,7 @@ class KbqTooltipTrigger extends KbqPopUpTrigger {
111
111
  this._trigger = `${PopUpTriggers.Hover}, ${PopUpTriggers.Focus}`;
112
112
  this._context = null;
113
113
  this._color = KbqComponentColors.Contrast;
114
- this.arrow = true;
114
+ this.arrow = false;
115
115
  this.offset = null;
116
116
  this.placementChange = new EventEmitter();
117
117
  this.visibleChange = new EventEmitter();
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-tooltip.mjs","sources":["../../../packages/components/tooltip/tooltip.animations.ts","../../../packages/components/tooltip/tooltip.component.ts","../../../packages/components/tooltip/tooltip.component.html","../../../packages/components/tooltip/tooltip.module.ts","../../../packages/components/tooltip/koobiq-components-tooltip.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, keyframes, state, style, transition, trigger } from '@angular/animations';\n\n/**\n * Animations used by KbqTooltip.\n * @docs-private\n */\nexport const kbqTooltipAnimations: {\n readonly tooltipState: AnimationTriggerMetadata;\n} = {\n /** Animation that transitions a tooltip in and out. */\n tooltipState: trigger('state', [\n state('initial, void, hidden', style({ opacity: 0, transform: 'scale(0)' })),\n state('visible', style({ transform: 'scale(0.99)' })),\n transition(\n '* => visible',\n animate(\n '200ms cubic-bezier(0, 0, 0.2, 1)',\n keyframes([\n style({ opacity: 0, transform: 'scale(0)', offset: 0 }),\n style({ opacity: 0.5, transform: 'scale(0.9)', offset: 0.5 }),\n style({ opacity: 1, transform: 'scale(0.99)', offset: 1 })\n ])\n )\n ),\n transition('* => hidden', animate('100ms cubic-bezier(0, 0, 0.2, 1)', style({ opacity: 0 })))\n ])\n};\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Point } from '@angular/cdk/drag-drop';\nimport { Overlay, OverlayConfig, ScrollStrategy } from '@angular/cdk/overlay';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n Directive,\n ElementRef,\n EventEmitter,\n Inject,\n InjectionToken,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n Type,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n numberAttribute\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n KBQ_PARENT_POPUP,\n KbqComponentColors,\n KbqParentPopup,\n KbqPopUp,\n KbqPopUpTrigger,\n POSITION_TO_CSS_MAP,\n PopUpPlacements,\n PopUpTriggers,\n applyPopupMargins\n} from '@koobiq/components/core';\nimport { EMPTY, merge } from 'rxjs';\nimport { kbqTooltipAnimations } from './tooltip.animations';\n\nexport enum TooltipModifier {\n Default = 'default',\n Warning = 'warning',\n Extended = 'extended'\n}\n\nexport const KBQ_TOOLTIP_OPEN_TIME = new InjectionToken<() => ScrollStrategy>('kbq-tooltip-open-time');\n\n/** @docs-private */\nexport const KBQ_TOOLTIP_OPEN_TIME_PROVIDER = {\n provide: KBQ_TOOLTIP_OPEN_TIME,\n useValue: { value: 0 }\n};\n\nexport const MIN_TIME_FOR_DELAY = 2000;\n\n@Component({\n standalone: true,\n imports: [\n NgClass,\n NgTemplateOutlet\n ],\n selector: 'kbq-tooltip-component',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.scss', './tooltip-tokens.scss'],\n animations: [kbqTooltipAnimations.tooltipState],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [KBQ_TOOLTIP_OPEN_TIME_PROVIDER]\n})\nexport class KbqTooltipComponent extends KbqPopUp {\n prefix = 'kbq-tooltip';\n\n @ViewChild('tooltip') elementRef: ElementRef;\n\n constructor(@Inject(KBQ_TOOLTIP_OPEN_TIME) private openTime) {\n super();\n }\n\n show(delay: number) {\n if (!this.content) {\n return;\n }\n\n super.show(Date.now() - this.openTime.value < MIN_TIME_FOR_DELAY ? 0 : delay);\n\n if (this.offset !== null) {\n applyPopupMargins(\n this.renderer,\n this.elementRef.nativeElement,\n this.prefix,\n `${this.offset!.toString()}px`\n );\n }\n\n this.openTime.value = Date.now();\n }\n\n updateClassMap(placement: string, customClass: string, { modifier }) {\n const classMap = {\n [`${this.prefix}_${modifier}`]: true\n };\n\n super.updateClassMap(placement, customClass, classMap);\n }\n}\n\nexport const KBQ_TOOLTIP_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>('kbq-tooltip-scroll-strategy');\n\n/** @docs-private */\nexport function kbqTooltipScrollStrategyFactory(overlay: Overlay): () => ScrollStrategy {\n return () => overlay.scrollStrategies.close();\n}\n\n/** @docs-private */\nexport const KBQ_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n provide: KBQ_TOOLTIP_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: kbqTooltipScrollStrategyFactory\n};\n\n@Directive({\n standalone: true,\n selector: '[kbqTooltip]',\n exportAs: 'kbqTooltip',\n host: {\n '[class.kbq-tooltip_open]': 'isOpen',\n\n '(keydown)': 'keydownHandler($event)',\n '(touchend)': 'touchendHandler()'\n }\n})\nexport class KbqTooltipTrigger extends KbqPopUpTrigger<KbqTooltipComponent> implements AfterViewInit, OnDestroy {\n protected scrollStrategy: () => ScrollStrategy = inject(KBQ_TOOLTIP_SCROLL_STRATEGY);\n protected parentPopup = inject<KbqParentPopup>(KBQ_PARENT_POPUP, { optional: true });\n protected focusMonitor: FocusMonitor = inject(FocusMonitor);\n\n /**\n * Changes hiding behavior. By default, tooltip is hidden on mouseleave from trigger.\n * Setting hideWithTimeout to true will delay tooltip hiding and will not hide when the mouse moves from trigger\n * to tooltip.\n */\n @Input({ transform: booleanAttribute }) hideWithTimeout: boolean = false;\n\n @Input('kbqVisible')\n get tooltipVisible(): boolean {\n return this.visible;\n }\n\n set tooltipVisible(value: boolean) {\n super.updateVisible(value);\n }\n\n @Input('kbqPlacement')\n get tooltipPlacement(): PopUpPlacements {\n return this.placement;\n }\n\n /**\n * Positions the tooltip relative to the mouse cursor. Only available for top and bottom kbqPlacement.\n * Does not work with kbqPlacementPriority.\n */\n @Input({ alias: 'kbqRelativeToPointer', transform: booleanAttribute }) relativeToPointer: boolean = false;\n\n set tooltipPlacement(value: PopUpPlacements) {\n super.updatePlacement(value);\n }\n\n @Input('kbqPlacementPriority')\n get tooltipPlacementPriority() {\n return this.placementPriority;\n }\n\n set tooltipPlacementPriority(value) {\n super.updatePlacementPriority(value);\n }\n\n @Input('kbqTooltip')\n get content(): string | TemplateRef<any> {\n return this._content;\n }\n\n set content(content: string | TemplateRef<any>) {\n this._content = content;\n\n this.updateData();\n }\n\n @Input('kbqTooltipDisabled')\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n\n if (this._disabled) {\n this.hide();\n }\n }\n\n @Input('kbqEnterDelay') enterDelay = 400;\n @Input('kbqLeaveDelay') leaveDelay = 0;\n\n @Input('kbqTrigger')\n get trigger(): string {\n return this._trigger;\n }\n\n set trigger(value: string) {\n if (value) {\n this._trigger = value;\n } else {\n this._trigger = `${PopUpTriggers.Hover}, ${PopUpTriggers.Focus}`;\n }\n\n this.initListeners();\n }\n\n protected _trigger = `${PopUpTriggers.Hover}, ${PopUpTriggers.Focus}`;\n\n @Input('kbqTooltipClass')\n get customClass(): string {\n return this._customClass || '';\n }\n\n set customClass(value: string) {\n if (value) {\n this._customClass = value;\n\n this.updateClassMap();\n } else {\n this._customClass = '';\n }\n }\n\n @Input('kbqTooltipContext')\n get context() {\n return this._context;\n }\n\n set context(ctx) {\n this._context = ctx;\n this.updateData();\n }\n\n private _context: any = null;\n\n @Input('kbqTooltipColor')\n get color(): string {\n return `kbq-${this._color}`;\n }\n\n set color(value: KbqComponentColors | string) {\n this._color = value || KbqComponentColors.Contrast;\n }\n\n private _color: KbqComponentColors | string = KbqComponentColors.Contrast;\n\n @Input({ alias: 'kbqTooltipArrow', transform: booleanAttribute }) arrow: boolean = true;\n @Input({ alias: 'kbqTooltipOffset', transform: numberAttribute }) offset: number | null = null;\n\n @Output('kbqPlacementChange') readonly placementChange = new EventEmitter();\n\n @Output('kbqVisibleChange') readonly visibleChange = new EventEmitter<boolean>();\n\n private get hasClickInTrigger(): boolean {\n return this.trigger.includes(PopUpTriggers.Click);\n }\n\n protected originSelector = '.kbq-tooltip';\n\n protected overlayConfig: OverlayConfig = {\n panelClass: 'kbq-tooltip-panel'\n };\n\n protected modifier: TooltipModifier = TooltipModifier.Default;\n\n ngAfterViewInit(): void {\n this.parentPopup?.closedStream.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this.hide());\n\n this.focusMonitor.monitor(this.elementRef.nativeElement);\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n\n super.ngOnDestroy();\n }\n\n show(delay: number = this.enterDelay) {\n if (this.triggerName === 'focus' && this.focusMonitor['_lastFocusOrigin'] !== 'keyboard') {\n return;\n }\n\n super.show(delay);\n\n if (this.relativeToPointer) {\n this.applyRelativeToPointer();\n }\n }\n\n /**\n * method allows to show the tooltip relative to the element\n * Use this approach when it is not possible to define a trigger in the template.\n *\n * For example:\n * const tooltip = new KbqTooltipTrigger();\n * tooltip.showForElement(element);\n */\n showForElement(element: HTMLElement) {\n this.show();\n this.strategy.setOrigin(element);\n }\n\n updateData() {\n if (!this.instance) {\n return;\n }\n\n this.instance.content = this.content;\n this.instance.context = this.context && { $implicit: this.context };\n this.instance.arrow = this.arrow;\n this.instance.offset = this.offset;\n this.instance.detectChanges();\n this.updatePosition(true);\n }\n\n closingActions() {\n return merge(\n this.hasClickInTrigger ? this.overlayRef!.outsidePointerEvents() : EMPTY,\n this.overlayRef!.detachments()\n );\n }\n\n getOverlayHandleComponentType(): Type<KbqTooltipComponent> {\n return KbqTooltipComponent;\n }\n\n updateClassMap(newPlacement: string = this.placement) {\n if (!this.instance) {\n return;\n }\n\n this.instance.updateClassMap(POSITION_TO_CSS_MAP[newPlacement], `${this.customClass} ${this.color}`, {\n modifier: this.modifier\n });\n this.instance.markForCheck();\n }\n\n protected applyRelativeToPointer() {\n if (\n !this.strategy ||\n ![PopUpPlacements.Top, PopUpPlacements.Bottom].includes(this.placement) ||\n this.triggerName !== 'mouseenter'\n ) {\n this.resetOrigin();\n\n return;\n }\n\n const triggerRects = this.elementRef.nativeElement.getBoundingClientRect();\n const point: Point = { x: 0, y: 0 };\n\n this.placementPriority = null;\n\n if (this.placement === PopUpPlacements.Top) {\n point.x = this.mouseEvent!.x;\n point.y = triggerRects.y;\n } else if (this.placement === PopUpPlacements.Bottom) {\n point.x = this.mouseEvent!.x;\n point.y = triggerRects.y + triggerRects.height;\n }\n\n this.strategy.setOrigin(point);\n }\n}\n\n@Directive({\n standalone: true,\n selector: '[kbqWarningTooltip]',\n exportAs: 'kbqWarningTooltip',\n host: {\n '[class.kbq-tooltip_open]': 'isOpen',\n\n '(keydown)': 'keydownHandler($event)',\n '(touchend)': 'touchendHandler()'\n }\n})\nexport class KbqWarningTooltipTrigger extends KbqTooltipTrigger {\n @Input('kbqWarningTooltip')\n get content(): string | TemplateRef<any> {\n return this._content;\n }\n\n set content(content: string | TemplateRef<any>) {\n this._content = content;\n\n this.updateData();\n }\n\n protected modifier: TooltipModifier = TooltipModifier.Warning;\n}\n\n@Directive({\n standalone: true,\n selector: '[kbqExtendedTooltip]',\n exportAs: 'kbqExtendedTooltip',\n host: {\n '[class.kbq-tooltip_open]': 'isOpen',\n\n '(keydown)': 'keydownHandler($event)',\n '(touchend)': 'touchendHandler()'\n }\n})\nexport class KbqExtendedTooltipTrigger extends KbqTooltipTrigger {\n @Input('kbqExtendedTooltip')\n get content(): string | TemplateRef<any> {\n return this._content;\n }\n\n set content(content: string | TemplateRef<any>) {\n this._content = content;\n\n this.updateData();\n }\n\n @Input('kbqTooltipHeader')\n get header(): string | TemplateRef<any> {\n return this._header;\n }\n\n set header(header: string | TemplateRef<any>) {\n this._header = header;\n\n this.updateData();\n }\n\n private _header: string | TemplateRef<any>;\n\n protected modifier: TooltipModifier = TooltipModifier.Extended;\n\n updateData() {\n if (!this.instance) {\n return;\n }\n\n super.updateData();\n this.instance.header = this.header;\n }\n}\n","<div\n #tooltip\n class=\"kbq-tooltip\"\n [class.kbq-tooltip_arrowless]=\"!arrow\"\n [ngClass]=\"classMap\"\n [@state]=\"visibility\"\n (@state.done)=\"animationDone($event)\"\n (@state.start)=\"animationStart()\"\n>\n <div class=\"kbq-tooltip__inner\">\n @if (arrow) {\n <div class=\"kbq-tooltip__arrow\"></div>\n }\n\n @if (header) {\n <div class=\"kbq-tooltip__header\">\n @if (isTemplateRef(header)) {\n <ng-container [ngTemplateOutlet]=\"$any(header)\" [ngTemplateOutletContext]=\"context\" />\n }\n @if (!isTemplateRef(header)) {\n <div>{{ header }}</div>\n }\n </div>\n }\n <div class=\"kbq-tooltip__content\">\n @if (isTemplateRef(content)) {\n <ng-container [ngTemplateOutlet]=\"$any(content)\" [ngTemplateOutletContext]=\"context\" />\n }\n @if (!isTemplateRef(content)) {\n <div>{{ content }}</div>\n }\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport {\n KBQ_TOOLTIP_OPEN_TIME_PROVIDER,\n KBQ_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER,\n KbqExtendedTooltipTrigger,\n KbqTooltipComponent,\n KbqTooltipTrigger,\n KbqWarningTooltipTrigger\n} from './tooltip.component';\n\nconst COMPONENTS = [\n KbqTooltipComponent,\n KbqTooltipTrigger,\n KbqExtendedTooltipTrigger,\n KbqWarningTooltipTrigger\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n providers: [\n KBQ_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER,\n KBQ_TOOLTIP_OPEN_TIME_PROVIDER\n ]\n})\nexport class KbqToolTipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-tooltip.mjs","sources":["../../../packages/components/tooltip/tooltip.animations.ts","../../../packages/components/tooltip/tooltip.component.ts","../../../packages/components/tooltip/tooltip.component.html","../../../packages/components/tooltip/tooltip.module.ts","../../../packages/components/tooltip/koobiq-components-tooltip.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, keyframes, state, style, transition, trigger } from '@angular/animations';\n\n/**\n * Animations used by KbqTooltip.\n * @docs-private\n */\nexport const kbqTooltipAnimations: {\n readonly tooltipState: AnimationTriggerMetadata;\n} = {\n /** Animation that transitions a tooltip in and out. */\n tooltipState: trigger('state', [\n state('initial, void, hidden', style({ opacity: 0, transform: 'scale(0)' })),\n state('visible', style({ transform: 'scale(0.99)' })),\n transition(\n '* => visible',\n animate(\n '200ms cubic-bezier(0, 0, 0.2, 1)',\n keyframes([\n style({ opacity: 0, transform: 'scale(0)', offset: 0 }),\n style({ opacity: 0.5, transform: 'scale(0.9)', offset: 0.5 }),\n style({ opacity: 1, transform: 'scale(0.99)', offset: 1 })\n ])\n )\n ),\n transition('* => hidden', animate('100ms cubic-bezier(0, 0, 0.2, 1)', style({ opacity: 0 })))\n ])\n};\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Point } from '@angular/cdk/drag-drop';\nimport { Overlay, OverlayConfig, ScrollStrategy } from '@angular/cdk/overlay';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n Directive,\n ElementRef,\n EventEmitter,\n Inject,\n InjectionToken,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n Type,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n numberAttribute\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n KBQ_PARENT_POPUP,\n KbqComponentColors,\n KbqParentPopup,\n KbqPopUp,\n KbqPopUpTrigger,\n POSITION_TO_CSS_MAP,\n PopUpPlacements,\n PopUpTriggers,\n applyPopupMargins\n} from '@koobiq/components/core';\nimport { EMPTY, merge } from 'rxjs';\nimport { kbqTooltipAnimations } from './tooltip.animations';\n\nexport enum TooltipModifier {\n Default = 'default',\n Warning = 'warning',\n Extended = 'extended'\n}\n\nexport const KBQ_TOOLTIP_OPEN_TIME = new InjectionToken<() => ScrollStrategy>('kbq-tooltip-open-time');\n\n/** @docs-private */\nexport const KBQ_TOOLTIP_OPEN_TIME_PROVIDER = {\n provide: KBQ_TOOLTIP_OPEN_TIME,\n useValue: { value: 0 }\n};\n\nexport const MIN_TIME_FOR_DELAY = 2000;\n\n@Component({\n standalone: true,\n imports: [\n NgClass,\n NgTemplateOutlet\n ],\n selector: 'kbq-tooltip-component',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.scss', './tooltip-tokens.scss'],\n animations: [kbqTooltipAnimations.tooltipState],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [KBQ_TOOLTIP_OPEN_TIME_PROVIDER]\n})\nexport class KbqTooltipComponent extends KbqPopUp {\n prefix = 'kbq-tooltip';\n\n @ViewChild('tooltip') elementRef: ElementRef;\n\n constructor(@Inject(KBQ_TOOLTIP_OPEN_TIME) private openTime) {\n super();\n }\n\n show(delay: number) {\n if (!this.content) {\n return;\n }\n\n super.show(Date.now() - this.openTime.value < MIN_TIME_FOR_DELAY ? 0 : delay);\n\n if (this.offset !== null) {\n applyPopupMargins(\n this.renderer,\n this.elementRef.nativeElement,\n this.prefix,\n `${this.offset!.toString()}px`\n );\n }\n\n this.openTime.value = Date.now();\n }\n\n updateClassMap(placement: string, customClass: string, { modifier }) {\n const classMap = {\n [`${this.prefix}_${modifier}`]: true\n };\n\n super.updateClassMap(placement, customClass, classMap);\n }\n}\n\nexport const KBQ_TOOLTIP_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>('kbq-tooltip-scroll-strategy');\n\n/** @docs-private */\nexport function kbqTooltipScrollStrategyFactory(overlay: Overlay): () => ScrollStrategy {\n return () => overlay.scrollStrategies.close();\n}\n\n/** @docs-private */\nexport const KBQ_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n provide: KBQ_TOOLTIP_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: kbqTooltipScrollStrategyFactory\n};\n\n@Directive({\n standalone: true,\n selector: '[kbqTooltip]',\n exportAs: 'kbqTooltip',\n host: {\n '[class.kbq-tooltip_open]': 'isOpen',\n\n '(keydown)': 'keydownHandler($event)',\n '(touchend)': 'touchendHandler()'\n }\n})\nexport class KbqTooltipTrigger extends KbqPopUpTrigger<KbqTooltipComponent> implements AfterViewInit, OnDestroy {\n protected scrollStrategy: () => ScrollStrategy = inject(KBQ_TOOLTIP_SCROLL_STRATEGY);\n protected parentPopup = inject<KbqParentPopup>(KBQ_PARENT_POPUP, { optional: true });\n protected focusMonitor: FocusMonitor = inject(FocusMonitor);\n\n /**\n * Changes hiding behavior. By default, tooltip is hidden on mouseleave from trigger.\n * Setting hideWithTimeout to true will delay tooltip hiding and will not hide when the mouse moves from trigger\n * to tooltip.\n */\n @Input({ transform: booleanAttribute }) hideWithTimeout: boolean = false;\n\n @Input('kbqVisible')\n get tooltipVisible(): boolean {\n return this.visible;\n }\n\n set tooltipVisible(value: boolean) {\n super.updateVisible(value);\n }\n\n @Input('kbqPlacement')\n get tooltipPlacement(): PopUpPlacements {\n return this.placement;\n }\n\n /**\n * Positions the tooltip relative to the mouse cursor. Only available for top and bottom kbqPlacement.\n * Does not work with kbqPlacementPriority.\n */\n @Input({ alias: 'kbqRelativeToPointer', transform: booleanAttribute }) relativeToPointer: boolean = false;\n\n set tooltipPlacement(value: PopUpPlacements) {\n super.updatePlacement(value);\n }\n\n @Input('kbqPlacementPriority')\n get tooltipPlacementPriority() {\n return this.placementPriority;\n }\n\n set tooltipPlacementPriority(value) {\n super.updatePlacementPriority(value);\n }\n\n @Input('kbqTooltip')\n get content(): string | TemplateRef<any> {\n return this._content;\n }\n\n set content(content: string | TemplateRef<any>) {\n this._content = content;\n\n this.updateData();\n }\n\n @Input('kbqTooltipDisabled')\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n\n if (this._disabled) {\n this.hide();\n }\n }\n\n @Input('kbqEnterDelay') enterDelay = 400;\n @Input('kbqLeaveDelay') leaveDelay = 0;\n\n @Input('kbqTrigger')\n get trigger(): string {\n return this._trigger;\n }\n\n set trigger(value: string) {\n if (value) {\n this._trigger = value;\n } else {\n this._trigger = `${PopUpTriggers.Hover}, ${PopUpTriggers.Focus}`;\n }\n\n this.initListeners();\n }\n\n protected _trigger = `${PopUpTriggers.Hover}, ${PopUpTriggers.Focus}`;\n\n @Input('kbqTooltipClass')\n get customClass(): string {\n return this._customClass || '';\n }\n\n set customClass(value: string) {\n if (value) {\n this._customClass = value;\n\n this.updateClassMap();\n } else {\n this._customClass = '';\n }\n }\n\n @Input('kbqTooltipContext')\n get context() {\n return this._context;\n }\n\n set context(ctx) {\n this._context = ctx;\n this.updateData();\n }\n\n private _context: any = null;\n\n @Input('kbqTooltipColor')\n get color(): string {\n return `kbq-${this._color}`;\n }\n\n set color(value: KbqComponentColors | string) {\n this._color = value || KbqComponentColors.Contrast;\n }\n\n private _color: KbqComponentColors | string = KbqComponentColors.Contrast;\n\n @Input({ alias: 'kbqTooltipArrow', transform: booleanAttribute }) arrow: boolean = false;\n @Input({ alias: 'kbqTooltipOffset', transform: numberAttribute }) offset: number | null = null;\n\n @Output('kbqPlacementChange') readonly placementChange = new EventEmitter();\n\n @Output('kbqVisibleChange') readonly visibleChange = new EventEmitter<boolean>();\n\n private get hasClickInTrigger(): boolean {\n return this.trigger.includes(PopUpTriggers.Click);\n }\n\n protected originSelector = '.kbq-tooltip';\n\n protected overlayConfig: OverlayConfig = {\n panelClass: 'kbq-tooltip-panel'\n };\n\n protected modifier: TooltipModifier = TooltipModifier.Default;\n\n ngAfterViewInit(): void {\n this.parentPopup?.closedStream.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this.hide());\n\n this.focusMonitor.monitor(this.elementRef.nativeElement);\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n\n super.ngOnDestroy();\n }\n\n show(delay: number = this.enterDelay) {\n if (this.triggerName === 'focus' && this.focusMonitor['_lastFocusOrigin'] !== 'keyboard') {\n return;\n }\n\n super.show(delay);\n\n if (this.relativeToPointer) {\n this.applyRelativeToPointer();\n }\n }\n\n /**\n * method allows to show the tooltip relative to the element\n * Use this approach when it is not possible to define a trigger in the template.\n *\n * For example:\n * const tooltip = new KbqTooltipTrigger();\n * tooltip.showForElement(element);\n */\n showForElement(element: HTMLElement) {\n this.show();\n this.strategy.setOrigin(element);\n }\n\n updateData() {\n if (!this.instance) {\n return;\n }\n\n this.instance.content = this.content;\n this.instance.context = this.context && { $implicit: this.context };\n this.instance.arrow = this.arrow;\n this.instance.offset = this.offset;\n this.instance.detectChanges();\n this.updatePosition(true);\n }\n\n closingActions() {\n return merge(\n this.hasClickInTrigger ? this.overlayRef!.outsidePointerEvents() : EMPTY,\n this.overlayRef!.detachments()\n );\n }\n\n getOverlayHandleComponentType(): Type<KbqTooltipComponent> {\n return KbqTooltipComponent;\n }\n\n updateClassMap(newPlacement: string = this.placement) {\n if (!this.instance) {\n return;\n }\n\n this.instance.updateClassMap(POSITION_TO_CSS_MAP[newPlacement], `${this.customClass} ${this.color}`, {\n modifier: this.modifier\n });\n this.instance.markForCheck();\n }\n\n protected applyRelativeToPointer() {\n if (\n !this.strategy ||\n ![PopUpPlacements.Top, PopUpPlacements.Bottom].includes(this.placement) ||\n this.triggerName !== 'mouseenter'\n ) {\n this.resetOrigin();\n\n return;\n }\n\n const triggerRects = this.elementRef.nativeElement.getBoundingClientRect();\n const point: Point = { x: 0, y: 0 };\n\n this.placementPriority = null;\n\n if (this.placement === PopUpPlacements.Top) {\n point.x = this.mouseEvent!.x;\n point.y = triggerRects.y;\n } else if (this.placement === PopUpPlacements.Bottom) {\n point.x = this.mouseEvent!.x;\n point.y = triggerRects.y + triggerRects.height;\n }\n\n this.strategy.setOrigin(point);\n }\n}\n\n@Directive({\n standalone: true,\n selector: '[kbqWarningTooltip]',\n exportAs: 'kbqWarningTooltip',\n host: {\n '[class.kbq-tooltip_open]': 'isOpen',\n\n '(keydown)': 'keydownHandler($event)',\n '(touchend)': 'touchendHandler()'\n }\n})\nexport class KbqWarningTooltipTrigger extends KbqTooltipTrigger {\n @Input('kbqWarningTooltip')\n get content(): string | TemplateRef<any> {\n return this._content;\n }\n\n set content(content: string | TemplateRef<any>) {\n this._content = content;\n\n this.updateData();\n }\n\n protected modifier: TooltipModifier = TooltipModifier.Warning;\n}\n\n@Directive({\n standalone: true,\n selector: '[kbqExtendedTooltip]',\n exportAs: 'kbqExtendedTooltip',\n host: {\n '[class.kbq-tooltip_open]': 'isOpen',\n\n '(keydown)': 'keydownHandler($event)',\n '(touchend)': 'touchendHandler()'\n }\n})\nexport class KbqExtendedTooltipTrigger extends KbqTooltipTrigger {\n @Input('kbqExtendedTooltip')\n get content(): string | TemplateRef<any> {\n return this._content;\n }\n\n set content(content: string | TemplateRef<any>) {\n this._content = content;\n\n this.updateData();\n }\n\n @Input('kbqTooltipHeader')\n get header(): string | TemplateRef<any> {\n return this._header;\n }\n\n set header(header: string | TemplateRef<any>) {\n this._header = header;\n\n this.updateData();\n }\n\n private _header: string | TemplateRef<any>;\n\n protected modifier: TooltipModifier = TooltipModifier.Extended;\n\n updateData() {\n if (!this.instance) {\n return;\n }\n\n super.updateData();\n this.instance.header = this.header;\n }\n}\n","<div\n #tooltip\n class=\"kbq-tooltip\"\n [class.kbq-tooltip_arrowless]=\"!arrow\"\n [ngClass]=\"classMap\"\n [@state]=\"visibility\"\n (@state.done)=\"animationDone($event)\"\n (@state.start)=\"animationStart()\"\n>\n <div class=\"kbq-tooltip__inner\">\n @if (arrow) {\n <div class=\"kbq-tooltip__arrow\"></div>\n }\n\n @if (header) {\n <div class=\"kbq-tooltip__header\">\n @if (isTemplateRef(header)) {\n <ng-container [ngTemplateOutlet]=\"$any(header)\" [ngTemplateOutletContext]=\"context\" />\n }\n @if (!isTemplateRef(header)) {\n <div>{{ header }}</div>\n }\n </div>\n }\n <div class=\"kbq-tooltip__content\">\n @if (isTemplateRef(content)) {\n <ng-container [ngTemplateOutlet]=\"$any(content)\" [ngTemplateOutletContext]=\"context\" />\n }\n @if (!isTemplateRef(content)) {\n <div>{{ content }}</div>\n }\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport {\n KBQ_TOOLTIP_OPEN_TIME_PROVIDER,\n KBQ_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER,\n KbqExtendedTooltipTrigger,\n KbqTooltipComponent,\n KbqTooltipTrigger,\n KbqWarningTooltipTrigger\n} from './tooltip.component';\n\nconst COMPONENTS = [\n KbqTooltipComponent,\n KbqTooltipTrigger,\n KbqExtendedTooltipTrigger,\n KbqWarningTooltipTrigger\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n providers: [\n KBQ_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER,\n KBQ_TOOLTIP_OPEN_TIME_PROVIDER\n ]\n})\nexport class KbqToolTipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, input, inject, booleanAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, NgModule } from '@angular/core';
3
- import { KbqOverflowItems } from '@koobiq/components/overflow-items';
2
+ import { Directive, input, booleanAttribute, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, NgModule } from '@angular/core';
4
3
 
5
4
  class KbqTopBarSpacer {
6
5
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqTopBarSpacer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
@@ -25,15 +24,9 @@ class KbqTopBarContainer {
25
24
  * Conditionally applies a CSS class based on the value
26
25
  */
27
26
  this.placement = input.required();
28
- /**
29
- * Track if container has `KbqOverflowItems` directive assigned.
30
- * Used to replace `gap` with `margin` so `KbqOverflowItems` will calculate correct width on resize.
31
- * @docs-private
32
- */
33
- this.overflowItems = inject(KbqOverflowItems, { optional: true, self: true });
34
27
  }
35
28
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqTopBarContainer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
36
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.14", type: KbqTopBarContainer, isStandalone: true, selector: "[kbqTopBarContainer]", inputs: { placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class.kbq-top-bar-container__start": "placement() === \"start\"", "class.kbq-top-bar-container__end": "placement() === \"end\"", "class.kbq-top-bar-container__with-overflow-items": "overflowItems" }, classAttribute: "kbq-top-bar-container" }, ngImport: i0 }); }
29
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.14", type: KbqTopBarContainer, isStandalone: true, selector: "[kbqTopBarContainer]", inputs: { placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class.kbq-top-bar-container__start": "placement() === \"start\"", "class.kbq-top-bar-container__end": "placement() === \"end\"" }, classAttribute: "kbq-top-bar-container" }, ngImport: i0 }); }
37
30
  }
38
31
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqTopBarContainer, decorators: [{
39
32
  type: Directive,
@@ -43,8 +36,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
43
36
  host: {
44
37
  class: 'kbq-top-bar-container',
45
38
  '[class.kbq-top-bar-container__start]': 'placement() === "start"',
46
- '[class.kbq-top-bar-container__end]': 'placement() === "end"',
47
- '[class.kbq-top-bar-container__with-overflow-items]': 'overflowItems'
39
+ '[class.kbq-top-bar-container__end]': 'placement() === "end"'
48
40
  }
49
41
  }]
50
42
  }] });
@@ -58,16 +50,16 @@ class KbqTopBar {
58
50
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqTopBar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
59
51
  /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.14", type: KbqTopBar, isStandalone: true, selector: "kbq-top-bar", inputs: { withShadow: ["withShadow", "withShadow", booleanAttribute] }, host: { properties: { "class.kbq-top-bar_with-shadow": "withShadow" }, classAttribute: "kbq-top-bar" }, ngImport: i0, template: `
60
52
  <ng-content />
61
- `, isInline: true, styles: [".kbq-top-bar{display:flex;align-items:center;justify-content:space-between;flex-direction:row;box-sizing:border-box;position:var(--kbq-top-bar-position);background-color:var(--kbq-top-bar-background);padding:var(--kbq-top-bar-padding-vertical) var(--kbq-top-bar-padding-horizontal);border-radius:var(--kbq-top-bar-border-radius);font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-top-bar.kbq-top-bar_with-shadow{box-shadow:var(--kbq-top-bar-shadow-bottom);transition:box-shadow var(--kbq-top-bar-shadow-transition)}.kbq-top-bar .kbq-top-bar-spacer{height:100%;flex:0 0 var(--kbq-top-bar-spacer-min-width)}.kbq-top-bar .kbq-top-bar-container:has(>.kbq-overflow-items){gap:unset;overflow:hidden;margin-top:calc(-1 * var(--kbq-size-border-width));margin-bottom:calc(-1 * var(--kbq-size-border-width))}.kbq-top-bar .kbq-top-bar-container .kbq-overflow-items{padding:var(--kbq-size-border-width)}.kbq-top-bar .kbq-top-bar-container .kbq-overflow-items>.kbq-overflow-item:not(:last-of-type){margin-right:var(--kbq-top-bar-container-end-gap)}.kbq-top-bar .kbq-top-bar-container .kbq-overflow-items>.kbq-overflow-item:last-of-type:is(.kbq-overflow-item_always-visible)+.kbq-overflow-items-result{margin-left:var(--kbq-top-bar-container-end-gap)}.kbq-top-bar .kbq-top-bar-container .kbq-overflow-items .kbq-overflow-items-result:first-child{margin-right:var(--kbq-top-bar-container-end-gap)}.kbq-top-bar .kbq-top-bar-container.kbq-top-bar-container__start{display:flex;gap:var(--kbq-top-bar-container-start-gap);flex:1 0 var(--kbq-top-bar-container-start-basis);justify-content:flex-start;min-width:0}.kbq-top-bar .kbq-top-bar-container.kbq-top-bar-container__end{display:flex;gap:var(--kbq-top-bar-container-end-gap);justify-content:end}.kbq-top-bar .kbq-top-bar-container.kbq-top-bar-container__with-overflow-items{gap:unset;justify-content:unset;padding:var(--kbq-size-border-width)}.kbq-top-bar .kbq-top-bar-container.kbq-top-bar-container__with-overflow-items>.kbq-overflow-item:not(:last-of-type){margin-right:var(--kbq-top-bar-container-end-gap)}.kbq-top-bar .kbq-top-bar-container.kbq-top-bar-container__with-overflow-items>.kbq-overflow-item:last-of-type:is(.kbq-overflow-item_always-visible)+.kbq-overflow-items-result{margin-left:var(--kbq-top-bar-container-end-gap)}.kbq-top-bar .kbq-top-bar-container.kbq-top-bar-container__with-overflow-items .kbq-overflow-items-result:first-child{margin-right:var(--kbq-top-bar-container-end-gap)}\n", ":where(.kbq-top-bar){--kbq-top-bar-position: sticky;--kbq-top-bar-background: var(--kbq-background-bg);--kbq-top-bar-spacer-min-width: 80px;--kbq-top-bar-padding-vertical: var(--kbq-size-m);--kbq-top-bar-padding-horizontal: var(--kbq-size-xxl);--kbq-top-bar-border-radius: 0;--kbq-top-bar-container-start-gap: 0;--kbq-top-bar-container-start-basis: 0;--kbq-top-bar-container-end-gap: var(--kbq-size-s);--kbq-top-bar-shadow-bottom: var(--kbq-shadow-overflow-normal-bottom);--kbq-top-bar-shadow-transition: ease-out .3s}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
53
+ `, isInline: true, styles: [".kbq-top-bar{display:flex;align-items:center;justify-content:space-between;flex-direction:row;box-sizing:border-box;position:var(--kbq-top-bar-position);background-color:var(--kbq-top-bar-background);padding:var(--kbq-top-bar-padding-vertical) var(--kbq-top-bar-padding-horizontal);border-radius:var(--kbq-top-bar-border-radius);font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-top-bar.kbq-top-bar_with-shadow{box-shadow:var(--kbq-top-bar-shadow-bottom);transition:box-shadow var(--kbq-top-bar-shadow-transition)}.kbq-top-bar .kbq-top-bar-spacer{height:100%;flex:0 0 var(--kbq-top-bar-spacer-min-width)}.kbq-top-bar .kbq-top-bar-container:has(>.kbq-overflow-items){gap:unset;overflow:hidden;margin-top:calc(-1 * var(--kbq-size-border-width));margin-bottom:calc(-1 * var(--kbq-size-border-width))}.kbq-top-bar .kbq-top-bar-container.kbq-top-bar-container__start{display:flex;gap:var(--kbq-top-bar-container-start-gap);flex:1 0 var(--kbq-top-bar-container-start-basis);justify-content:flex-start;min-width:0}.kbq-top-bar .kbq-top-bar-container.kbq-top-bar-container__end{display:flex;gap:var(--kbq-top-bar-container-end-gap);justify-content:end}.kbq-top-bar .kbq-top-bar-container.kbq-overflow-items,.kbq-top-bar .kbq-top-bar-container>.kbq-overflow-items{padding:var(--kbq-size-border-width)}.kbq-top-bar .kbq-top-bar-container.kbq-overflow-items>.kbq-overflow-item:not(:last-of-type),.kbq-top-bar .kbq-top-bar-container>.kbq-overflow-items>.kbq-overflow-item:not(:last-of-type){margin-right:var(--kbq-top-bar-container-end-gap)}.kbq-top-bar .kbq-top-bar-container.kbq-overflow-items>.kbq-overflow-item:last-of-type:is(.kbq-overflow-item_always-visible)+.kbq-overflow-items-result,.kbq-top-bar .kbq-top-bar-container>.kbq-overflow-items>.kbq-overflow-item:last-of-type:is(.kbq-overflow-item_always-visible)+.kbq-overflow-items-result{margin-left:var(--kbq-top-bar-container-end-gap)}.kbq-top-bar .kbq-top-bar-container.kbq-overflow-items .kbq-overflow-items-result:first-child,.kbq-top-bar .kbq-top-bar-container>.kbq-overflow-items .kbq-overflow-items-result:first-child{margin-right:var(--kbq-top-bar-container-end-gap)}\n", ":where(.kbq-top-bar){--kbq-top-bar-position: sticky;--kbq-top-bar-background: var(--kbq-background-bg);--kbq-top-bar-spacer-min-width: 80px;--kbq-top-bar-padding-vertical: var(--kbq-size-m);--kbq-top-bar-padding-horizontal: var(--kbq-size-xxl);--kbq-top-bar-border-radius: 0;--kbq-top-bar-container-start-gap: 0;--kbq-top-bar-container-start-basis: 0;--kbq-top-bar-container-end-gap: var(--kbq-size-s);--kbq-top-bar-shadow-bottom: var(--kbq-shadow-overflow-normal-bottom);--kbq-top-bar-shadow-transition: ease-out .3s}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
62
54
  }
63
55
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqTopBar, decorators: [{
64
56
  type: Component,
65
57
  args: [{ standalone: true, selector: 'kbq-top-bar', template: `
66
58
  <ng-content />
67
- `, host: {
59
+ `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
68
60
  class: 'kbq-top-bar',
69
61
  '[class.kbq-top-bar_with-shadow]': 'withShadow'
70
- }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".kbq-top-bar{display:flex;align-items:center;justify-content:space-between;flex-direction:row;box-sizing:border-box;position:var(--kbq-top-bar-position);background-color:var(--kbq-top-bar-background);padding:var(--kbq-top-bar-padding-vertical) var(--kbq-top-bar-padding-horizontal);border-radius:var(--kbq-top-bar-border-radius);font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-top-bar.kbq-top-bar_with-shadow{box-shadow:var(--kbq-top-bar-shadow-bottom);transition:box-shadow var(--kbq-top-bar-shadow-transition)}.kbq-top-bar .kbq-top-bar-spacer{height:100%;flex:0 0 var(--kbq-top-bar-spacer-min-width)}.kbq-top-bar .kbq-top-bar-container:has(>.kbq-overflow-items){gap:unset;overflow:hidden;margin-top:calc(-1 * var(--kbq-size-border-width));margin-bottom:calc(-1 * var(--kbq-size-border-width))}.kbq-top-bar .kbq-top-bar-container .kbq-overflow-items{padding:var(--kbq-size-border-width)}.kbq-top-bar .kbq-top-bar-container .kbq-overflow-items>.kbq-overflow-item:not(:last-of-type){margin-right:var(--kbq-top-bar-container-end-gap)}.kbq-top-bar .kbq-top-bar-container .kbq-overflow-items>.kbq-overflow-item:last-of-type:is(.kbq-overflow-item_always-visible)+.kbq-overflow-items-result{margin-left:var(--kbq-top-bar-container-end-gap)}.kbq-top-bar .kbq-top-bar-container .kbq-overflow-items .kbq-overflow-items-result:first-child{margin-right:var(--kbq-top-bar-container-end-gap)}.kbq-top-bar .kbq-top-bar-container.kbq-top-bar-container__start{display:flex;gap:var(--kbq-top-bar-container-start-gap);flex:1 0 var(--kbq-top-bar-container-start-basis);justify-content:flex-start;min-width:0}.kbq-top-bar .kbq-top-bar-container.kbq-top-bar-container__end{display:flex;gap:var(--kbq-top-bar-container-end-gap);justify-content:end}.kbq-top-bar .kbq-top-bar-container.kbq-top-bar-container__with-overflow-items{gap:unset;justify-content:unset;padding:var(--kbq-size-border-width)}.kbq-top-bar .kbq-top-bar-container.kbq-top-bar-container__with-overflow-items>.kbq-overflow-item:not(:last-of-type){margin-right:var(--kbq-top-bar-container-end-gap)}.kbq-top-bar .kbq-top-bar-container.kbq-top-bar-container__with-overflow-items>.kbq-overflow-item:last-of-type:is(.kbq-overflow-item_always-visible)+.kbq-overflow-items-result{margin-left:var(--kbq-top-bar-container-end-gap)}.kbq-top-bar .kbq-top-bar-container.kbq-top-bar-container__with-overflow-items .kbq-overflow-items-result:first-child{margin-right:var(--kbq-top-bar-container-end-gap)}\n", ":where(.kbq-top-bar){--kbq-top-bar-position: sticky;--kbq-top-bar-background: var(--kbq-background-bg);--kbq-top-bar-spacer-min-width: 80px;--kbq-top-bar-padding-vertical: var(--kbq-size-m);--kbq-top-bar-padding-horizontal: var(--kbq-size-xxl);--kbq-top-bar-border-radius: 0;--kbq-top-bar-container-start-gap: 0;--kbq-top-bar-container-start-basis: 0;--kbq-top-bar-container-end-gap: var(--kbq-size-s);--kbq-top-bar-shadow-bottom: var(--kbq-shadow-overflow-normal-bottom);--kbq-top-bar-shadow-transition: ease-out .3s}\n"] }]
62
+ }, styles: [".kbq-top-bar{display:flex;align-items:center;justify-content:space-between;flex-direction:row;box-sizing:border-box;position:var(--kbq-top-bar-position);background-color:var(--kbq-top-bar-background);padding:var(--kbq-top-bar-padding-vertical) var(--kbq-top-bar-padding-horizontal);border-radius:var(--kbq-top-bar-border-radius);font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-top-bar.kbq-top-bar_with-shadow{box-shadow:var(--kbq-top-bar-shadow-bottom);transition:box-shadow var(--kbq-top-bar-shadow-transition)}.kbq-top-bar .kbq-top-bar-spacer{height:100%;flex:0 0 var(--kbq-top-bar-spacer-min-width)}.kbq-top-bar .kbq-top-bar-container:has(>.kbq-overflow-items){gap:unset;overflow:hidden;margin-top:calc(-1 * var(--kbq-size-border-width));margin-bottom:calc(-1 * var(--kbq-size-border-width))}.kbq-top-bar .kbq-top-bar-container.kbq-top-bar-container__start{display:flex;gap:var(--kbq-top-bar-container-start-gap);flex:1 0 var(--kbq-top-bar-container-start-basis);justify-content:flex-start;min-width:0}.kbq-top-bar .kbq-top-bar-container.kbq-top-bar-container__end{display:flex;gap:var(--kbq-top-bar-container-end-gap);justify-content:end}.kbq-top-bar .kbq-top-bar-container.kbq-overflow-items,.kbq-top-bar .kbq-top-bar-container>.kbq-overflow-items{padding:var(--kbq-size-border-width)}.kbq-top-bar .kbq-top-bar-container.kbq-overflow-items>.kbq-overflow-item:not(:last-of-type),.kbq-top-bar .kbq-top-bar-container>.kbq-overflow-items>.kbq-overflow-item:not(:last-of-type){margin-right:var(--kbq-top-bar-container-end-gap)}.kbq-top-bar .kbq-top-bar-container.kbq-overflow-items>.kbq-overflow-item:last-of-type:is(.kbq-overflow-item_always-visible)+.kbq-overflow-items-result,.kbq-top-bar .kbq-top-bar-container>.kbq-overflow-items>.kbq-overflow-item:last-of-type:is(.kbq-overflow-item_always-visible)+.kbq-overflow-items-result{margin-left:var(--kbq-top-bar-container-end-gap)}.kbq-top-bar .kbq-top-bar-container.kbq-overflow-items .kbq-overflow-items-result:first-child,.kbq-top-bar .kbq-top-bar-container>.kbq-overflow-items .kbq-overflow-items-result:first-child{margin-right:var(--kbq-top-bar-container-end-gap)}\n", ":where(.kbq-top-bar){--kbq-top-bar-position: sticky;--kbq-top-bar-background: var(--kbq-background-bg);--kbq-top-bar-spacer-min-width: 80px;--kbq-top-bar-padding-vertical: var(--kbq-size-m);--kbq-top-bar-padding-horizontal: var(--kbq-size-xxl);--kbq-top-bar-border-radius: 0;--kbq-top-bar-container-start-gap: 0;--kbq-top-bar-container-start-basis: 0;--kbq-top-bar-container-end-gap: var(--kbq-size-s);--kbq-top-bar-shadow-bottom: var(--kbq-shadow-overflow-normal-bottom);--kbq-top-bar-shadow-transition: ease-out .3s}\n"] }]
71
63
  }], propDecorators: { withShadow: [{
72
64
  type: Input,
73
65
  args: [{ transform: booleanAttribute }]
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-top-bar.mjs","sources":["../../../packages/components/top-bar/top-bar.ts","../../../packages/components/top-bar/module.ts","../../../packages/components/top-bar/koobiq-components-top-bar.ts"],"sourcesContent":["import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n Directive,\n inject,\n input,\n Input,\n ViewEncapsulation\n} from '@angular/core';\nimport { KbqOverflowItems } from '@koobiq/components/overflow-items';\n\n@Directive({\n standalone: true,\n selector: '[kbqTopBarSpacer]',\n host: {\n class: 'kbq-top-bar-spacer'\n }\n})\nexport class KbqTopBarSpacer {}\n\n/**\n * Directive that dynamically applying CSS classes based on a placement value (left or right).\n */\n@Directive({\n standalone: true,\n selector: '[kbqTopBarContainer]',\n host: {\n class: 'kbq-top-bar-container',\n '[class.kbq-top-bar-container__start]': 'placement() === \"start\"',\n '[class.kbq-top-bar-container__end]': 'placement() === \"end\"',\n '[class.kbq-top-bar-container__with-overflow-items]': 'overflowItems'\n }\n})\nexport class KbqTopBarContainer {\n /**\n * Conditionally applies a CSS class based on the value\n */\n placement = input.required<'start' | 'end'>();\n /**\n * Track if container has `KbqOverflowItems` directive assigned.\n * Used to replace `gap` with `margin` so `KbqOverflowItems` will calculate correct width on resize.\n * @docs-private\n */\n protected readonly overflowItems = inject(KbqOverflowItems, { optional: true, self: true });\n}\n\n@Component({\n standalone: true,\n selector: 'kbq-top-bar',\n template: `\n <ng-content />\n `,\n styleUrls: [\n './top-bar.scss',\n './top-bar-tokens.scss'\n ],\n host: {\n class: 'kbq-top-bar',\n '[class.kbq-top-bar_with-shadow]': 'withShadow'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class KbqTopBar {\n /**\n * Enables overflow behavior, applying `kbq-top-bar-overflow` to show a bottom shadow.\n */\n @Input({ transform: booleanAttribute }) withShadow: boolean = false;\n}\n","import { NgModule } from '@angular/core';\nimport { KbqTopBar, KbqTopBarContainer, KbqTopBarSpacer } from './top-bar';\n\nconst COMPONENTS = [\n KbqTopBar,\n KbqTopBarContainer,\n KbqTopBarSpacer\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqTopBarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-top-bar.mjs","sources":["../../../packages/components/top-bar/top-bar.ts","../../../packages/components/top-bar/module.ts","../../../packages/components/top-bar/koobiq-components-top-bar.ts"],"sourcesContent":["import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n Directive,\n input,\n Input,\n ViewEncapsulation\n} from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: '[kbqTopBarSpacer]',\n host: {\n class: 'kbq-top-bar-spacer'\n }\n})\nexport class KbqTopBarSpacer {}\n\n/**\n * Directive that dynamically applying CSS classes based on a placement value (left or right).\n */\n@Directive({\n standalone: true,\n selector: '[kbqTopBarContainer]',\n host: {\n class: 'kbq-top-bar-container',\n '[class.kbq-top-bar-container__start]': 'placement() === \"start\"',\n '[class.kbq-top-bar-container__end]': 'placement() === \"end\"'\n }\n})\nexport class KbqTopBarContainer {\n /**\n * Conditionally applies a CSS class based on the value\n */\n readonly placement = input.required<'start' | 'end'>();\n}\n\n@Component({\n standalone: true,\n selector: 'kbq-top-bar',\n template: `\n <ng-content />\n `,\n styleUrls: [\n './top-bar.scss',\n './top-bar-tokens.scss'\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'kbq-top-bar',\n '[class.kbq-top-bar_with-shadow]': 'withShadow'\n }\n})\nexport class KbqTopBar {\n /**\n * Enables overflow behavior, applying `kbq-top-bar-overflow` to show a bottom shadow.\n */\n @Input({ transform: booleanAttribute }) withShadow: boolean = false;\n}\n","import { NgModule } from '@angular/core';\nimport { KbqTopBar, KbqTopBarContainer, KbqTopBarSpacer } from './top-bar';\n\nconst COMPONENTS = [\n KbqTopBar,\n KbqTopBarContainer,\n KbqTopBarSpacer\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqTopBarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
10
10
  import * as i3 from '@angular/forms';
11
11
  import { DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW, ENTER, SPACE, ESCAPE, TAB, HOME, END, PAGE_UP, PAGE_DOWN, isSelectAll, hasModifierKey } from '@koobiq/cdk/keycodes';
12
12
  import * as i1 from '@koobiq/components/core';
13
- import { KbqAbstractSelect, getKbqSelectDynamicMultipleError, KbqComponentColors, defaultOffsetY, KBQ_WINDOW, MultipleMode, isUndefined, getKbqSelectNonArrayValueError, KBQ_SELECT_SCROLL_STRATEGY, KBQ_LOCALE_SERVICE, KBQ_PARENT_POPUP, KbqSelectTrigger, KbqSelectMatcher, KbqSelectSearch, kbqSelectAnimations, KbqPseudoCheckboxModule, KbqSelectFooter, KbqSelectSearchEmptyResult, KBQ_SELECT_SCROLL_STRATEGY_PROVIDER } from '@koobiq/components/core';
13
+ import { KbqAbstractSelect, getKbqSelectDynamicMultipleError, KbqComponentColors, KBQ_VALIDATION, defaultOffsetY, KBQ_WINDOW, MultipleMode, isUndefined, getKbqSelectNonArrayValueError, KBQ_SELECT_SCROLL_STRATEGY, KBQ_LOCALE_SERVICE, KBQ_PARENT_POPUP, KbqSelectTrigger, KbqSelectMatcher, KbqSelectSearch, kbqSelectAnimations, KbqPseudoCheckboxModule, KbqSelectFooter, KbqSelectSearchEmptyResult, KBQ_SELECT_SCROLL_STRATEGY_PROVIDER } from '@koobiq/components/core';
14
14
  import * as i4 from '@koobiq/components/form-field';
15
15
  import { KbqFormFieldControl, KbqFormFieldModule } from '@koobiq/components/form-field';
16
16
  import * as i7 from '@koobiq/components/tags';
@@ -201,6 +201,7 @@ class KbqTreeSelect extends KbqAbstractSelect {
201
201
  this.ngControl = ngControl;
202
202
  this.localeService = localeService;
203
203
  this.isBrowser = inject(Platform).isBrowser;
204
+ this.useLegacyValidation = inject(KBQ_VALIDATION, { optional: true })?.useValidation ?? false;
204
205
  this.defaultOptions = inject(KBQ_TREE_SELECT_OPTIONS, { optional: true });
205
206
  /** Whether the component is in an error state. */
206
207
  this.errorState = false;
@@ -606,7 +607,7 @@ class KbqTreeSelect extends KbqAbstractSelect {
606
607
  this.onTouched();
607
608
  this.changeDetectorRef.markForCheck();
608
609
  this.stateChanges.next();
609
- if (this.ngControl?.control) {
610
+ if (this.useLegacyValidation && this.ngControl?.control) {
610
611
  const control = this.ngControl.control;
611
612
  control.updateValueAndValidity({ emitEvent: false });
612
613
  control.statusChanges.emit(control.status);