@koobiq/components 17.0.0-rc.1 → 17.0.0-rc.3

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 (85) hide show
  1. package/alert/_alert-theme.scss +58 -19
  2. package/alert/alert.component.d.ts +23 -3
  3. package/alert/alert.component.scss +175 -50
  4. package/core/locales/formatters.d.ts +96 -0
  5. package/core/locales/locale-service.d.ts +96 -0
  6. package/core/pop-up/pop-up-trigger.d.ts +3 -1
  7. package/core/styles/theming/_components-theming.scss +53 -8
  8. package/core/styles/theming/_theming.scss +1 -3
  9. package/core/styles/typography/_typography.scss +35 -2
  10. package/core/utils/data-size/config.d.ts +20 -2
  11. package/core/utils/data-size/data-size.pipe.d.ts +10 -9
  12. package/core/utils/data-size/size.d.ts +3 -4
  13. package/ellipsis-center/ellipsis-center.directive.d.ts +3 -2
  14. package/esm2022/alert/alert.component.mjs +52 -5
  15. package/esm2022/core/animation/select-animations.mjs +4 -4
  16. package/esm2022/core/locales/formatters.mjs +97 -1
  17. package/esm2022/core/pop-up/pop-up-trigger.mjs +18 -11
  18. package/esm2022/core/utils/data-size/config.mjs +5 -17
  19. package/esm2022/core/utils/data-size/data-size.pipe.mjs +36 -22
  20. package/esm2022/core/utils/data-size/size.mjs +10 -14
  21. package/esm2022/core/version.mjs +2 -2
  22. package/esm2022/dropdown/dropdown-animations.mjs +4 -4
  23. package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +7 -5
  24. package/esm2022/file-upload/file-upload.module.mjs +12 -6
  25. package/esm2022/file-upload/multiple-file-upload.component.mjs +85 -22
  26. package/esm2022/file-upload/single-file-upload.component.mjs +92 -21
  27. package/esm2022/form-field/password-toggle.mjs +11 -9
  28. package/esm2022/modal/modal.component.mjs +5 -6
  29. package/esm2022/navbar/navbar-item.component.mjs +9 -9
  30. package/esm2022/select/select-option.directive.mjs +7 -5
  31. package/esm2022/select/select.component.mjs +18 -8
  32. package/esm2022/textarea/textarea.component.mjs +4 -4
  33. package/esm2022/timezone/timezone-option.directive.mjs +7 -5
  34. package/esm2022/title/title.directive.mjs +2 -3
  35. package/esm2022/tooltip/tooltip.component.mjs +26 -12
  36. package/esm2022/tree/padding.directive.mjs +2 -2
  37. package/esm2022/tree-select/tree-select.component.mjs +18 -7
  38. package/fesm2022/koobiq-components-alert.mjs +52 -5
  39. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  40. package/fesm2022/koobiq-components-core.mjs +160 -62
  41. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  42. package/fesm2022/koobiq-components-dropdown.mjs +3 -3
  43. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  44. package/fesm2022/koobiq-components-ellipsis-center.mjs +5 -4
  45. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  46. package/fesm2022/koobiq-components-file-upload.mjs +171 -34
  47. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  48. package/fesm2022/koobiq-components-form-field.mjs +15 -15
  49. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  50. package/fesm2022/koobiq-components-modal.mjs +4 -5
  51. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  52. package/fesm2022/koobiq-components-navbar.mjs +8 -8
  53. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  54. package/fesm2022/koobiq-components-select.mjs +22 -11
  55. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  56. package/fesm2022/koobiq-components-textarea.mjs +3 -3
  57. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  58. package/fesm2022/koobiq-components-timezone.mjs +5 -4
  59. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  60. package/fesm2022/koobiq-components-title.mjs +1 -2
  61. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  62. package/fesm2022/koobiq-components-tooltip.mjs +24 -11
  63. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  64. package/fesm2022/koobiq-components-tree-select.mjs +17 -6
  65. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  66. package/fesm2022/koobiq-components-tree.mjs +1 -1
  67. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  68. package/file-upload/file-upload.module.d.ts +11 -10
  69. package/file-upload/multiple-file-upload.component.d.ts +36 -6
  70. package/file-upload/single-file-upload.component.d.ts +37 -7
  71. package/form-field/password-toggle.d.ts +3 -2
  72. package/navbar/navbar-item.component.d.ts +4 -4
  73. package/package.json +7 -6
  74. package/prebuilt-themes/dark-theme.css +1 -1
  75. package/prebuilt-themes/light-theme.css +1 -1
  76. package/schematics/collection.json +11 -0
  77. package/schematics/ng-add/index.js +70 -0
  78. package/schematics/ng-add/schema.json +15 -0
  79. package/select/select-option.directive.d.ts +3 -2
  80. package/select/select.component.d.ts +2 -0
  81. package/splitter/_splitter-theme.scss +2 -2
  82. package/timezone/timezone-option.directive.d.ts +3 -2
  83. package/title/title.directive.d.ts +0 -1
  84. package/tooltip/tooltip.component.d.ts +12 -8
  85. 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 {\n Directive,\n DoCheck,\n ElementRef,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Self,\n InjectionToken,\n NgZone,\n OnInit,\n EventEmitter,\n Host\n} from '@angular/core';\nimport {\n FormGroupDirective,\n NgControl,\n NgForm\n} from '@angular/forms';\nimport {\n CanUpdateErrorState,\n CanUpdateErrorStateCtor,\n ErrorStateMatcher,\n KBQ_PARENT_ANIMATION_COMPONENT,\n mixinErrorState\n} from '@koobiq/components/core';\nimport { KbqFormFieldControl } from '@koobiq/components/form-field';\nimport { Subscription, Subject } from 'rxjs';\n\n\nexport const KBQ_TEXTAREA_VALUE_ACCESSOR = new InjectionToken<{ value: any }>('KBQ_TEXTAREA_VALUE_ACCESSOR');\n\nlet nextUniqueId = 0;\n\n\n/** @docs-private */\nexport class KbqTextareaBase {\n /**\n * Emits whenever the component state changes and should cause the parent\n * form-field to update. Implemented as part of `KbqFormFieldControl`.\n * @docs-private\n */\n readonly stateChanges = new Subject<void>();\n\n constructor(\n public defaultErrorStateMatcher: ErrorStateMatcher,\n public parentForm: NgForm,\n public parentFormGroup: FormGroupDirective,\n public ngControl: NgControl\n ) {}\n}\n\n/** @docs-private */\nexport const KbqTextareaMixinBase: CanUpdateErrorStateCtor & typeof KbqTextareaBase = mixinErrorState(KbqTextareaBase);\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\n '[attr.id]': 'id',\n '[attr.placeholder]': 'placeholder',\n '[attr.aria-invalid]': 'errorState',\n '[attr.disabled]': 'disabled || null',\n '[attr.required]': 'required',\n\n '(blur)': 'onBlur()',\n '(focus)': 'focusChanged(true)'\n },\n providers: [{ provide: KbqFormFieldControl, useExisting: KbqTextarea }]\n})\nexport class KbqTextarea extends KbqTextareaMixinBase implements KbqFormFieldControl<any>, OnInit, OnChanges,\n OnDestroy, DoCheck, CanUpdateErrorState {\n\n @Input() canGrow: boolean = true;\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 /**\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 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 freeRowsHeight: number = 0;\n private minHeight: number = 0;\n\n constructor(\n protected elementRef: ElementRef,\n @Optional() @Self() ngControl: NgControl,\n @Optional() parentForm: NgForm,\n @Optional() parentFormGroup: FormGroupDirective,\n 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 super(defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl);\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 this.parent?.animationDone\n .subscribe(() => this.ngOnInit());\n\n this.growSubscription = this.stateChanges\n .subscribe(this.grow);\n }\n\n ngOnInit() {\n this.lineHeight = parseInt(getComputedStyle(this.elementRef.nativeElement).lineHeight!, 10);\n\n const paddingTop = parseInt(getComputedStyle(this.elementRef.nativeElement).paddingTop!, 10);\n const paddingBottom = parseInt(getComputedStyle(this.elementRef.nativeElement).paddingBottom!, 10);\n\n // tslint:disable-next-line:no-magic-numbers\n this.minHeight = this.lineHeight * 2 + paddingTop + paddingBottom;\n this.freeRowsHeight = this.lineHeight;\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 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.canGrow) { return; }\n\n this.ngZone.runOutsideAngular(() => {\n const textarea = this.elementRef.nativeElement;\n\n const outerHeight = parseInt(window.getComputedStyle(textarea).height!, 10);\n const diff = outerHeight - textarea.clientHeight;\n\n textarea.style.minHeight = 0; // this line is important to height recalculation\n\n const height = Math.max(this.minHeight, +textarea.scrollHeight + diff + this.freeRowsHeight);\n textarea.style.minHeight = `${height}px`;\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}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { KbqCommonModule } from '@koobiq/components/core';\n\nimport { KbqTextarea } from './textarea.component';\n\n\n@NgModule({\n imports: [CommonModule, A11yModule, KbqCommonModule, FormsModule],\n exports: [KbqTextarea],\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 {\n Directive,\n DoCheck,\n ElementRef,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Self,\n InjectionToken,\n NgZone,\n OnInit,\n EventEmitter,\n Host\n} from '@angular/core';\nimport {\n FormGroupDirective,\n NgControl,\n NgForm\n} from '@angular/forms';\nimport {\n CanUpdateErrorState,\n CanUpdateErrorStateCtor,\n ErrorStateMatcher,\n KBQ_PARENT_ANIMATION_COMPONENT,\n mixinErrorState\n} from '@koobiq/components/core';\nimport { KbqFormFieldControl } from '@koobiq/components/form-field';\nimport { Subscription, Subject } from 'rxjs';\n\n\nexport const KBQ_TEXTAREA_VALUE_ACCESSOR = new InjectionToken<{ value: any }>('KBQ_TEXTAREA_VALUE_ACCESSOR');\n\nlet nextUniqueId = 0;\n\n\n/** @docs-private */\nexport class KbqTextareaBase {\n /**\n * Emits whenever the component state changes and should cause the parent\n * form-field to update. Implemented as part of `KbqFormFieldControl`.\n * @docs-private\n */\n readonly stateChanges = new Subject<void>();\n\n constructor(\n public defaultErrorStateMatcher: ErrorStateMatcher,\n public parentForm: NgForm,\n public parentFormGroup: FormGroupDirective,\n public ngControl: NgControl\n ) {}\n}\n\n/** @docs-private */\nexport const KbqTextareaMixinBase: CanUpdateErrorStateCtor & typeof KbqTextareaBase = mixinErrorState(KbqTextareaBase);\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\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 },\n providers: [{ provide: KbqFormFieldControl, useExisting: KbqTextarea }]\n})\nexport class KbqTextarea extends KbqTextareaMixinBase implements KbqFormFieldControl<any>, OnInit, OnChanges,\n OnDestroy, DoCheck, CanUpdateErrorState {\n\n @Input() canGrow: boolean = true;\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 /**\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 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 freeRowsHeight: number = 0;\n private minHeight: number = 0;\n\n constructor(\n protected elementRef: ElementRef,\n @Optional() @Self() ngControl: NgControl,\n @Optional() parentForm: NgForm,\n @Optional() parentFormGroup: FormGroupDirective,\n 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 super(defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl);\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 this.parent?.animationDone\n .subscribe(() => this.ngOnInit());\n\n this.growSubscription = this.stateChanges\n .subscribe(this.grow);\n }\n\n ngOnInit() {\n this.lineHeight = parseInt(getComputedStyle(this.elementRef.nativeElement).lineHeight!, 10);\n\n const paddingTop = parseInt(getComputedStyle(this.elementRef.nativeElement).paddingTop!, 10);\n const paddingBottom = parseInt(getComputedStyle(this.elementRef.nativeElement).paddingBottom!, 10);\n\n // tslint:disable-next-line:no-magic-numbers\n this.minHeight = this.lineHeight * 2 + paddingTop + paddingBottom;\n this.freeRowsHeight = this.lineHeight;\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 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.canGrow) { return; }\n\n this.ngZone.runOutsideAngular(() => {\n const textarea = this.elementRef.nativeElement;\n\n const outerHeight = parseInt(window.getComputedStyle(textarea).height!, 10);\n const diff = outerHeight - textarea.clientHeight;\n\n textarea.style.minHeight = 0; // this line is important to height recalculation\n\n const height = Math.max(this.minHeight, +textarea.scrollHeight + diff + this.freeRowsHeight);\n textarea.style.minHeight = `${height}px`;\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}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { KbqCommonModule } from '@koobiq/components/core';\n\nimport { KbqTextarea } from './textarea.component';\n\n\n@NgModule({\n imports: [CommonModule, A11yModule, KbqCommonModule, FormsModule],\n exports: [KbqTextarea],\n declarations: [KbqTextarea]\n})\nexport class KbqTextareaModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;MAiCa,2BAA2B,GAAG,IAAI,cAAc,CAAiB,6BAA6B,EAAE;AAE7G,IAAI,YAAY,GAAG,CAAC,CAAC;AAGrB;MACa,eAAe,CAAA;AAQxB,IAAA,WAAA,CACW,wBAA2C,EAC3C,UAAkB,EAClB,eAAmC,EACnC,SAAoB,EAAA;QAHpB,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAAmB;QAC3C,IAAU,CAAA,UAAA,GAAV,UAAU,CAAQ;QAClB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAoB;QACnC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;AAX/B;;;;AAIG;AACM,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAQ,CAAC;KAOxC;AACP,CAAA;AAED;MACa,oBAAoB,GAAqD,eAAe,CAAC,eAAe,EAAE;AAoBjH,MAAO,WAAY,SAAQ,oBAAoB,CAAA;AA0BjD;;;AAGG;AACH,IAAA,IACI,QAAQ,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,IAAI,EAAE;AACpD,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;SAClC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IAED,IAAI,QAAQ,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAE9C,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;SAC5B;KACJ;AAED;;;AAGG;AACH,IAAA,IACI,EAAE,GAAA;QACF,OAAO,IAAI,CAAC,GAAG,CAAC;KACnB;IAED,IAAI,EAAE,CAAC,KAAa,EAAA;QAChB,IAAI,CAAC,GAAG,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC;KAChC;AAQD;;;AAGG;AACH,IAAA,IACI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IAED,IAAI,QAAQ,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACjD;AAED;;;AAGG;AACH,IAAA,IACI,KAAK,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;KACnC;IAED,IAAI,KAAK,CAAC,KAAa,EAAA;AACnB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,KAAK,CAAC;AACjC,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;SAC5B;KACJ;AAeD,IAAA,WAAA,CACc,UAAsB,EACZ,SAAoB,EAC5B,UAAkB,EAClB,eAAmC,EAC/C,wBAA2C,EACc,kBAAuB,EACZ,MAAW,EACvE,MAAc,EAAA;QAEtB,KAAK,CAAC,wBAAwB,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;QAT9D,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAMoC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAK;QACvE,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QAlHjB,IAAO,CAAA,OAAA,GAAY,IAAI,CAAC;AAKjC;;;AAGG;QACH,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;AAEzB;;;AAGG;AACM,QAAA,IAAA,CAAA,YAAY,GAAkB,IAAI,OAAO,EAAQ,CAAC;AAE3D;;;AAGG;QACH,IAAW,CAAA,WAAA,GAAW,UAAU,CAAC;AAwEvB,QAAA,IAAA,CAAA,GAAG,GAAG,CAAA,aAAA,EAAgB,YAAY,EAAE,EAAE,CAAC;QAEzC,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAElB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAKlB,IAAU,CAAA,UAAA,GAAW,CAAC,CAAC;QACvB,IAAc,CAAA,cAAA,GAAW,CAAC,CAAC;QAC3B,IAAS,CAAA,SAAA,GAAW,CAAC,CAAC;;QA6E9B,IAAI,CAAA,IAAA,GAAG,MAAK;AACR,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBAAE,OAAO;aAAE;AAE9B,YAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;AAC/B,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AAE/C,gBAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,MAAO,EAAE,EAAE,CAAC,CAAC;AAC5E,gBAAA,MAAM,IAAI,GAAG,WAAW,GAAG,QAAQ,CAAC,YAAY,CAAC;gBAEjD,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;gBAE7B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC7F,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,CAAG,EAAA,MAAM,IAAI,CAAC;AAC7C,aAAC,CAAC,CAAC;AACP,SAAC,CAAA;;;QA5EG,IAAI,CAAC,aAAa,GAAG,kBAAkB,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AAEzE,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC;;AAGtC,QAAA,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAElB,IAAI,CAAC,MAAM,EAAE,aAAa;aACrB,SAAS,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAEtC,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY;AACpC,aAAA,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC7B;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,UAAW,EAAE,EAAE,CAAC,CAAC;AAE5F,QAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,UAAW,EAAE,EAAE,CAAC,CAAC;AAC7F,QAAA,MAAM,aAAa,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,aAAc,EAAE,EAAE,CAAC,CAAC;;AAGnG,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,aAAa,CAAC;AAClE,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC;AAEtC,QAAA,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;KAC5B;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC5B;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;KACvC;IAED,SAAS,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;;;;YAIhB,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC3B;;;;QAKD,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAChC;IAED,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAEzB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;AACzB,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAEvC,OAAO,CAAC,sBAAsB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YACpD,OAAO,CAAC,aAAsC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SACxE;KACJ;;IAoBD,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KACzC;;AAGD,IAAA,YAAY,CAAC,SAAkB,EAAA;AAC3B,QAAA,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO,EAAE;AAC5B,YAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;AACzB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;SAC5B;KACJ;AAED;;;AAGG;AACH,IAAA,IAAI,KAAK,GAAA;AACL,QAAA,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;KACrE;AAED;;;AAGG;IACH,gBAAgB,GAAA;QACZ,IAAI,CAAC,KAAK,EAAE,CAAC;KAChB;;IAGS,qBAAqB,GAAA;AAC3B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;AAE5B,QAAA,IAAI,IAAI,CAAC,mBAAmB,KAAK,QAAQ,EAAE;AACvC,YAAA,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC;AACpC,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;SAC5B;KACJ;;IAGS,UAAU,GAAA;;QAEhB,MAAM,QAAQ,GAAI,IAAI,CAAC,UAAU,CAAC,aAAqC,CAAC,QAAQ,CAAC;AAEjF,QAAA,OAAO,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC;KACxC;iIArPQ,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAmHY,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAC3B,8BAA8B,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;qHApHrD,WAAW,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,oBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,8BAAA,EAAA,UAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,4BAAA,EAAA,EAAA,SAAA,EAFT,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAE9D,WAAW,EAAA,UAAA,EAAA,CAAA;kBAlBvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE,4BAA4B;AACnC,wBAAA,gCAAgC,EAAE,UAAU;AAE5C,wBAAA,WAAW,EAAE,IAAI;AACjB,wBAAA,oBAAoB,EAAE,aAAa;AACnC,wBAAA,qBAAqB,EAAE,YAAY;AACnC,wBAAA,YAAY,EAAE,UAAU;AACxB,wBAAA,YAAY,EAAE,UAAU;AAExB,wBAAA,QAAQ,EAAE,UAAU;AACpB,wBAAA,SAAS,EAAE,oBAAoB;AAClC,qBAAA;oBACD,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAa,WAAA,EAAE,CAAC;AAC1E,iBAAA,CAAA;;0BAgHQ,QAAQ;;0BAAI,IAAI;;0BAChB,QAAQ;;0BACR,QAAQ;;0BAER,QAAQ;;0BAAI,IAAI;;0BAAI,MAAM;2BAAC,2BAA2B,CAAA;;0BACtD,QAAQ;;0BAAI,IAAI;;0BAAI,MAAM;2BAAC,8BAA8B,CAAA;8DAjHrD,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAGG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAyBF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAuBF,EAAE,EAAA,CAAA;sBADL,KAAK;gBAaG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAOF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAcF,KAAK,EAAA,CAAA;sBADR,KAAK;;;MClJG,iBAAiB,CAAA;iIAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;kIAAjB,iBAAiB,EAAA,YAAA,EAAA,CAFX,WAAW,CAAA,EAAA,OAAA,EAAA,CAFhB,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,CAAA,EAAA,OAAA,EAAA,CACtD,WAAW,CAAA,EAAA,CAAA,CAAA,EAAA;AAGZ,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAJhB,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIvD,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,CAAC;oBACjE,OAAO,EAAE,CAAC,WAAW,CAAC;oBACtB,YAAY,EAAE,CAAC,WAAW,CAAC;AAC9B,iBAAA,CAAA;;;ACbD;;AAEG;;;;"}
@@ -4,6 +4,7 @@ import * as i2 from '@koobiq/components/core';
4
4
  import { KbqOption, PopUpPlacements, KBQ_OPTION_PARENT_COMPONENT, KbqOptionModule, KbqHighlightModule } from '@koobiq/components/core';
5
5
  import * as i1 from '@angular/common';
6
6
  import { CommonModule } from '@angular/common';
7
+ import * as i4 from '@angular/cdk/a11y';
7
8
  import * as i3 from '@angular/cdk/bidi';
8
9
  import * as i2$1 from '@angular/cdk/overlay';
9
10
  import { OverlayModule } from '@angular/cdk/overlay';
@@ -169,8 +170,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
169
170
 
170
171
  const TOOLTIP_VISIBLE_ROWS_COUNT = 3;
171
172
  class KbqTimezoneOptionTooltip extends KbqTooltipTrigger {
172
- constructor(changeDetectorRef, option, overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction) {
173
- super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);
173
+ constructor(changeDetectorRef, option, overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction, focusMonitor) {
174
+ super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction, focusMonitor);
174
175
  this.changeDetectorRef = changeDetectorRef;
175
176
  this.option = option;
176
177
  this.tooltipPlacement = PopUpPlacements.Right;
@@ -198,7 +199,7 @@ class KbqTimezoneOptionTooltip extends KbqTooltipTrigger {
198
199
  this.disabled = count <= TOOLTIP_VISIBLE_ROWS_COUNT;
199
200
  this.changeDetectorRef.detectChanges();
200
201
  }
201
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqTimezoneOptionTooltip, deps: [{ token: i0.ChangeDetectorRef }, { token: KbqTimezoneOption }, { token: i2$1.Overlay }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i2$1.ScrollDispatcher }, { token: i0.ViewContainerRef }, { token: KBQ_TOOLTIP_SCROLL_STRATEGY }, { token: i3.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
202
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqTimezoneOptionTooltip, deps: [{ token: i0.ChangeDetectorRef }, { token: KbqTimezoneOption }, { token: i2$1.Overlay }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i2$1.ScrollDispatcher }, { token: i0.ViewContainerRef }, { token: KBQ_TOOLTIP_SCROLL_STRATEGY }, { token: i3.Directionality, optional: true }, { token: i4.FocusMonitor }], target: i0.ɵɵFactoryTarget.Directive }); }
202
203
  /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.0", type: KbqTimezoneOptionTooltip, selector: "kbq-timezone-option", host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, usesInheritance: true, ngImport: i0 }); }
203
204
  }
204
205
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqTimezoneOptionTooltip, decorators: [{
@@ -215,7 +216,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
215
216
  args: [KBQ_TOOLTIP_SCROLL_STRATEGY]
216
217
  }] }, { type: i3.Directionality, decorators: [{
217
218
  type: Optional
218
- }] }] });
219
+ }] }, { type: i4.FocusMonitor }] });
219
220
 
220
221
  class KbqTimezoneSelectTrigger {
221
222
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqTimezoneSelectTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-timezone.mjs","sources":["../../../packages/components/timezone/timezone.utils.ts","../../../packages/components/timezone/utc-offset.pipe.ts","../../../packages/components/timezone/cities-by-filter.pipe.ts","../../../packages/components/timezone/timezone-option.component.ts","../../../packages/components/timezone/timezone-option.component.html","../../../packages/components/timezone/timezone-option.directive.ts","../../../packages/components/timezone/timezone-select.component.ts","../../../packages/components/timezone/timezone-select.component.html","../../../packages/components/timezone/timezone.models.ts","../../../packages/components/timezone/timezone.module.ts","../../../packages/components/timezone/koobiq-components-timezone.ts"],"sourcesContent":["import { KbqTimezoneZone, KbqTimezonesByCountry, KbqTimezoneGroup } from './timezone.models';\n\n\nconst minusUnicode = 0x2212; // Minus Sign U+2212\n\n/**\n * Convert string timezone offset (formatted offset) to number (minutes)\n */\nexport function parseOffset(offset: string): number {\n const minutesPerHour = 60;\n const [hours, minutes] = offset.split(':')\n .map((part: string) => parseInt(part, 10));\n\n return (hours * minutesPerHour) + (hours >= 0 ? minutes : minutes * -1);\n}\n\n/**\n * Grouping timezones by countries\n */\nexport function getZonesGroupedByCountry(\n data: KbqTimezoneZone[],\n otherCountriesLabel: string = 'Other',\n priorityCountry?: string\n): KbqTimezoneGroup[] {\n const systemTimezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n const countryCode: string | undefined = priorityCountry\n ? priorityCountry\n : data.find((item: KbqTimezoneZone) => item.id === systemTimezone)?.countryCode;\n\n // collect data by countries\n const dataByCountries: KbqTimezonesByCountry = data.reduce<KbqTimezonesByCountry>(\n (result: KbqTimezonesByCountry, zone: KbqTimezoneZone) => {\n const countryName: string = zone.countryCode.toLowerCase() === countryCode?.toLowerCase()\n ? zone.countryName\n : otherCountriesLabel;\n\n if (!Array.isArray(result[countryName])) {\n result[countryName] = [];\n }\n\n result[countryName].push({ ...zone, countryName });\n\n return result;\n },\n {}\n );\n\n // make data groups\n const groups: KbqTimezoneGroup[] = Object.values(dataByCountries)\n .map<KbqTimezoneGroup>((zones: KbqTimezoneZone[]) => ({\n countryCode: zones[0].countryCode,\n countryName: zones[0].countryName,\n zones: zones.sort(timezonesSortComparator)\n }));\n\n // sort by priority country\n const priorityGroupIndex = groups.findIndex(\n (group) => group.countryCode.toLowerCase() === countryCode?.toLowerCase()\n );\n\n if (priorityGroupIndex > -1) {\n const priorityGroup = groups[priorityGroupIndex];\n\n groups.splice(priorityGroupIndex, 1);\n groups.unshift(priorityGroup);\n }\n\n return groups;\n}\n\nexport function offset(value) {\n const [hours, minutes] = value.split(':');\n const isPositiveOffset = /^\\d$/.test(hours.charAt(0));\n const preparedHours: string = !isPositiveOffset\n ? `${String.fromCharCode(minusUnicode)}${hours.substring(1)}`\n : parseInt(hours, 10) > 0 || parseInt(minutes, 10) > 0\n ? `+${hours}`\n : hours;\n\n return [preparedHours, minutes].join(':');\n}\n\nexport function offsetFormatter(value: string): string {\n return `UTC ${offset(value)}`;\n}\n\nexport function offsetFormatterAsObject(value: string): { [UTC: string] : string} {\n return { UTC: offset(value) };\n}\n\n/**\n * Comparator for timezone sorting. Sort by offset and country name\n */\nexport function timezonesSortComparator(first: KbqTimezoneZone, second: KbqTimezoneZone): number {\n return first.offset !== second.offset\n ? parseOffset(first.offset)\n : first.countryName.localeCompare(second.countryName);\n}\n\n/**\n * Filtering timezone cities by search string\n */\nexport function filterCitiesBySearchString(cities: string, searchPattern?: string): string {\n const onlyUTC: boolean = /^\\\\?(-|—|−|\\+)?(\\d{1,2}:?(\\d{1,2})?)?$/.test(searchPattern ?? '');\n\n if (!searchPattern || onlyUTC) {\n return cities;\n }\n\n const regex: RegExp = RegExp(`(${searchPattern})`, 'gi');\n\n return cities\n .split(',')\n .filter((city: string) => regex.test(city))\n .join(',');\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { offsetFormatterAsObject } from './timezone.utils';\n\n\n@Pipe({\n name: 'utcOffset'\n})\nexport class UtcOffsetPipe implements PipeTransform {\n transform(value: string): { [UTC: string] : string} {\n return offsetFormatterAsObject(value);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { filterCitiesBySearchString } from './timezone.utils';\n\n\n@Pipe({\n name: 'citiesByFilter'\n})\nexport class CitiesByFilterPipe implements PipeTransform {\n transform(value: string, searchPattern?: string): string {\n return filterCitiesBySearchString(value, searchPattern);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewChild,\n ElementRef,\n Input,\n ViewEncapsulation,\n forwardRef\n} from '@angular/core';\nimport { KbqOption } from '@koobiq/components/core';\n\nimport { KbqTimezoneZone } from './timezone.models';\nimport { offsetFormatter } from './timezone.utils';\n\n\n@Component({\n selector: 'kbq-timezone-option',\n exportAs: 'kbqTimezoneOption',\n host: {\n class: 'kbq-timezone-option'\n },\n templateUrl: 'timezone-option.component.html',\n styleUrls: ['../core/option/option.scss', 'timezone-option.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{\n provide: KbqOption,\n useExisting: forwardRef(() => KbqTimezoneOption)\n }]\n})\nexport class KbqTimezoneOption extends KbqOption {\n @ViewChild('tooltipContentWrapper', { static: false }) tooltipContentWrapper: ElementRef<HTMLElement>;\n @ViewChild('tooltipContent', { static: false }) tooltipContent: ElementRef<HTMLElement>;\n\n @Input() highlightText: string;\n\n @Input()\n get timezone(): KbqTimezoneZone {\n return this._timezone;\n }\n\n set timezone(zone: KbqTimezoneZone) {\n this._timezone = zone;\n this.value = zone.id;\n }\n\n private _timezone: KbqTimezoneZone;\n\n get viewValue(): string {\n const cities: string = [this.timezone.city, this.timezone.cities]\n .filter(Boolean)\n .join(', ');\n\n return [offsetFormatter(this.timezone.offset), cities]\n .join(' ');\n }\n}\n","<div class=\"kbq-timezone-option__offset-wrapper layout-row layout-align-space-between\"\n *ngFor=\"let utcItem of timezone.offset | utcOffset | keyvalue\">\n <div class=\"kbq-timezone-option__offset\" [innerHTML]=\"utcItem.key | mcHighlight:highlightText\"></div>\n <div class=\"kbq-timezone-option__offset\" [innerHTML]=\"utcItem.value | mcHighlight:highlightText\"></div>\n</div>\n\n<div class=\"kbq-timezone-option__label\">\n <span class=\"kbq-timezone-option__city\" [innerHTML]=\"timezone.city | mcHighlight:highlightText\"></span>\n <div #tooltipContentWrapper class=\"kbq-timezone-option__cities\">\n <span #tooltipContent\n [innerHTML]=\"timezone.cities | citiesByFilter:highlightText | mcHighlight:highlightText\">\n </span>\n </div>\n</div>\n","import { Directionality } from '@angular/cdk/bidi';\nimport { Overlay, ScrollDispatcher } from '@angular/cdk/overlay';\nimport {\n AfterViewInit,\n Directive,\n ElementRef,\n Inject,\n NgZone,\n OnDestroy,\n Optional,\n ViewContainerRef, ChangeDetectorRef\n} from '@angular/core';\nimport { PopUpPlacements } from '@koobiq/components/core';\nimport { KbqTooltipTrigger, KBQ_TOOLTIP_SCROLL_STRATEGY } from '@koobiq/components/tooltip';\n\nimport { KbqTimezoneOption } from './timezone-option.component';\n\n\nexport const TOOLTIP_VISIBLE_ROWS_COUNT = 3;\n\n\n@Directive({\n selector: 'kbq-timezone-option',\n host: {\n '(mouseenter)': 'onMouseEnter()',\n '(mouseleave)': 'onMouseLeave()'\n }\n})\nexport class KbqTimezoneOptionTooltip extends KbqTooltipTrigger implements AfterViewInit, OnDestroy {\n private resizeObserver: ResizeObserver;\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n private option: KbqTimezoneOption,\n overlay: Overlay,\n elementRef: ElementRef,\n ngZone: NgZone,\n scrollDispatcher: ScrollDispatcher,\n hostView: ViewContainerRef,\n @Inject(KBQ_TOOLTIP_SCROLL_STRATEGY) scrollStrategy,\n @Optional() direction: Directionality\n ) {\n super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);\n this.tooltipPlacement = PopUpPlacements.Right;\n }\n\n ngAfterViewInit(): void {\n this.content = this.option.viewValue;\n this.option.tooltipContentWrapper.nativeElement.style.webkitLineClamp = TOOLTIP_VISIBLE_ROWS_COUNT.toString();\n\n this.resizeObserver = new ResizeObserver(() => this.checkTooltipDisabled());\n this.resizeObserver.observe(this.option.tooltipContentWrapper.nativeElement);\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.resizeObserver?.unobserve(this.option.tooltipContentWrapper.nativeElement);\n }\n\n onMouseEnter(): void {\n this.resizeObserver.observe(this.option.tooltipContentWrapper.nativeElement);\n this.checkTooltipDisabled();\n }\n\n onMouseLeave(): void {\n this.resizeObserver.unobserve(this.option.tooltipContentWrapper.nativeElement);\n\n this.disabled = true;\n }\n\n private checkTooltipDisabled(): void {\n const count: number = this.option.tooltipContent.nativeElement.getClientRects().length;\n\n this.disabled = count <= TOOLTIP_VISIBLE_ROWS_COUNT;\n\n this.changeDetectorRef.detectChanges();\n }\n}\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, Directive, ContentChild } from '@angular/core';\nimport { KBQ_OPTION_PARENT_COMPONENT } from '@koobiq/components/core';\nimport { KbqFormFieldControl, KbqCleaner } from '@koobiq/components/form-field';\nimport { KbqSelect, KbqSelectSearch } from '@koobiq/components/select';\n\n\n@Directive({ selector: 'kbq-timezone-select-trigger' })\nexport class KbqTimezoneSelectTrigger {}\n\n@Component({\n selector: 'kbq-timezone-select',\n exportAs: 'kbqTimezoneSelect',\n templateUrl: 'timezone-select.component.html',\n styleUrls: ['../select/select.scss', 'timezone-select.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: KbqFormFieldControl, useExisting: KbqTimezoneSelect },\n { provide: KBQ_OPTION_PARENT_COMPONENT, useExisting: KbqTimezoneSelect }\n ]\n})\nexport class KbqTimezoneSelect extends KbqSelect {\n @ContentChild(KbqTimezoneSelectTrigger, { static: false }) customTrigger: KbqTimezoneSelectTrigger;\n\n @ContentChild('kbqSelectCleaner', { static: true }) cleaner: KbqCleaner;\n\n @ContentChild(KbqSelectSearch, { static: false }) search: KbqSelectSearch;\n}\n","<div cdk-overlay-origin\n class=\"kbq-select__trigger\"\n [class.kbq-select__trigger_multiple]=\"multiple\"\n [class.kbq-select__trigger_single]=\"!multiple\"\n [class.kbq-select__trigger_empty]=\"empty\"\n #origin=\"cdkOverlayOrigin\"\n #trigger>\n\n <div class=\"kbq-select__matcher\" [ngSwitch]=\"empty\">\n <span class=\"kbq-select__placeholder\" *ngSwitchCase=\"true\">{{ placeholder || '\\u00A0' }}</span>\n <span *ngSwitchCase=\"false\" [ngSwitch]=\"!!customTrigger\">\n <div *ngSwitchCase=\"false\" class=\"kbq-select__match-container\">\n <span class=\"kbq-select__matcher-text\">{{ triggerValue }}</span>\n </div>\n <ng-content select=\"kbq-timezone-select-trigger\" *ngSwitchCase=\"true\"></ng-content>\n </span>\n\n <div class=\"kbq-select__cleaner\" *ngIf=\"canShowCleaner\" (click)=\"clearValue($event)\">\n <ng-content select=\"kbq-cleaner\"></ng-content>\n </div>\n\n <div class=\"kbq-select__arrow-wrapper\">\n <i class=\"kbq-select__arrow\" kbq-icon=\"mc-angle-down-S_16\"></i>\n </div>\n </div>\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayBackdropClass]=\"backdropClass\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayMinWidth]=\"triggerRect?.width!\"\n [cdkConnectedOverlayWidth]=\"triggerRect?.width!\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n (backdropClick)=\"close()\"\n (attach)=\"onAttached()\"\n (detach)=\"close()\">\n\n <div #panel\n class=\"kbq-select__panel kbq-timezone-select__panel {{ getPanelTheme() }}\"\n [ngClass]=\"panelClass\"\n [style.transformOrigin]=\"transformOrigin\"\n [style.font-size.px]=\"triggerFontSize\"\n (keydown)=\"handleKeydown($event)\">\n\n <div *ngIf=\"search\" class=\"kbq-select__search-container\">\n <ng-content select=\"[kbqSelectSearch]\"></ng-content>\n </div>\n\n <div #optionsContainer\n class=\"kbq-select__content\"\n [@fadeInContent]=\"'showing'\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\">\n\n <div *ngIf=\"isEmptySearchResult\" class=\"kbq-select__no-options-message\">\n <ng-content select=\"[kbq-select-search-empty-result]\"></ng-content>\n </div>\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n","/* tslint:disable:naming-convention */\n\nexport interface KbqTimezoneZone {\n id: string;\n offset: string;\n city: string;\n countryCode: string;\n countryName: string;\n cities: string;\n}\n\nexport interface KbqTimezoneGroup {\n countryName: string;\n countryCode: string;\n zones: KbqTimezoneZone[];\n}\n\nexport interface KbqTimezonesByCountry {\n [countryName: string]: KbqTimezoneZone[];\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { KbqHighlightModule, KbqOptionModule } from '@koobiq/components/core';\nimport { KbqFormFieldModule } from '@koobiq/components/form-field';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqSelectModule } from '@koobiq/components/select';\nimport { KbqTagsModule } from '@koobiq/components/tags';\nimport { KbqToolTipModule } from '@koobiq/components/tooltip';\n\nimport { CitiesByFilterPipe } from './cities-by-filter.pipe';\nimport { KbqTimezoneOption } from './timezone-option.component';\nimport { KbqTimezoneOptionTooltip } from './timezone-option.directive';\nimport { KbqTimezoneSelect, KbqTimezoneSelectTrigger } from './timezone-select.component';\nimport { UtcOffsetPipe } from './utc-offset.pipe';\n\n\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n KbqFormFieldModule,\n KbqOptionModule,\n KbqSelectModule,\n KbqIconModule,\n KbqTagsModule,\n KbqToolTipModule,\n KbqHighlightModule\n ],\n declarations: [\n UtcOffsetPipe,\n CitiesByFilterPipe,\n KbqTimezoneSelect,\n KbqTimezoneOption,\n KbqTimezoneOptionTooltip,\n KbqTimezoneSelectTrigger\n ],\n exports: [\n KbqTimezoneSelect,\n KbqTimezoneOption,\n KbqTimezoneOptionTooltip,\n KbqTimezoneSelectTrigger\n ]\n})\nexport class KbqTimezoneModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3.UtcOffsetPipe","i4.CitiesByFilterPipe","i2","i3"],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-timezone.mjs","sources":["../../../packages/components/timezone/timezone.utils.ts","../../../packages/components/timezone/utc-offset.pipe.ts","../../../packages/components/timezone/cities-by-filter.pipe.ts","../../../packages/components/timezone/timezone-option.component.ts","../../../packages/components/timezone/timezone-option.component.html","../../../packages/components/timezone/timezone-option.directive.ts","../../../packages/components/timezone/timezone-select.component.ts","../../../packages/components/timezone/timezone-select.component.html","../../../packages/components/timezone/timezone.models.ts","../../../packages/components/timezone/timezone.module.ts","../../../packages/components/timezone/koobiq-components-timezone.ts"],"sourcesContent":["import { KbqTimezoneZone, KbqTimezonesByCountry, KbqTimezoneGroup } from './timezone.models';\n\n\nconst minusUnicode = 0x2212; // Minus Sign U+2212\n\n/**\n * Convert string timezone offset (formatted offset) to number (minutes)\n */\nexport function parseOffset(offset: string): number {\n const minutesPerHour = 60;\n const [hours, minutes] = offset.split(':')\n .map((part: string) => parseInt(part, 10));\n\n return (hours * minutesPerHour) + (hours >= 0 ? minutes : minutes * -1);\n}\n\n/**\n * Grouping timezones by countries\n */\nexport function getZonesGroupedByCountry(\n data: KbqTimezoneZone[],\n otherCountriesLabel: string = 'Other',\n priorityCountry?: string\n): KbqTimezoneGroup[] {\n const systemTimezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n const countryCode: string | undefined = priorityCountry\n ? priorityCountry\n : data.find((item: KbqTimezoneZone) => item.id === systemTimezone)?.countryCode;\n\n // collect data by countries\n const dataByCountries: KbqTimezonesByCountry = data.reduce<KbqTimezonesByCountry>(\n (result: KbqTimezonesByCountry, zone: KbqTimezoneZone) => {\n const countryName: string = zone.countryCode.toLowerCase() === countryCode?.toLowerCase()\n ? zone.countryName\n : otherCountriesLabel;\n\n if (!Array.isArray(result[countryName])) {\n result[countryName] = [];\n }\n\n result[countryName].push({ ...zone, countryName });\n\n return result;\n },\n {}\n );\n\n // make data groups\n const groups: KbqTimezoneGroup[] = Object.values(dataByCountries)\n .map<KbqTimezoneGroup>((zones: KbqTimezoneZone[]) => ({\n countryCode: zones[0].countryCode,\n countryName: zones[0].countryName,\n zones: zones.sort(timezonesSortComparator)\n }));\n\n // sort by priority country\n const priorityGroupIndex = groups.findIndex(\n (group) => group.countryCode.toLowerCase() === countryCode?.toLowerCase()\n );\n\n if (priorityGroupIndex > -1) {\n const priorityGroup = groups[priorityGroupIndex];\n\n groups.splice(priorityGroupIndex, 1);\n groups.unshift(priorityGroup);\n }\n\n return groups;\n}\n\nexport function offset(value) {\n const [hours, minutes] = value.split(':');\n const isPositiveOffset = /^\\d$/.test(hours.charAt(0));\n const preparedHours: string = !isPositiveOffset\n ? `${String.fromCharCode(minusUnicode)}${hours.substring(1)}`\n : parseInt(hours, 10) > 0 || parseInt(minutes, 10) > 0\n ? `+${hours}`\n : hours;\n\n return [preparedHours, minutes].join(':');\n}\n\nexport function offsetFormatter(value: string): string {\n return `UTC ${offset(value)}`;\n}\n\nexport function offsetFormatterAsObject(value: string): { [UTC: string] : string} {\n return { UTC: offset(value) };\n}\n\n/**\n * Comparator for timezone sorting. Sort by offset and country name\n */\nexport function timezonesSortComparator(first: KbqTimezoneZone, second: KbqTimezoneZone): number {\n return first.offset !== second.offset\n ? parseOffset(first.offset)\n : first.countryName.localeCompare(second.countryName);\n}\n\n/**\n * Filtering timezone cities by search string\n */\nexport function filterCitiesBySearchString(cities: string, searchPattern?: string): string {\n const onlyUTC: boolean = /^\\\\?(-|—|−|\\+)?(\\d{1,2}:?(\\d{1,2})?)?$/.test(searchPattern ?? '');\n\n if (!searchPattern || onlyUTC) {\n return cities;\n }\n\n const regex: RegExp = RegExp(`(${searchPattern})`, 'gi');\n\n return cities\n .split(',')\n .filter((city: string) => regex.test(city))\n .join(',');\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { offsetFormatterAsObject } from './timezone.utils';\n\n\n@Pipe({\n name: 'utcOffset'\n})\nexport class UtcOffsetPipe implements PipeTransform {\n transform(value: string): { [UTC: string] : string} {\n return offsetFormatterAsObject(value);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { filterCitiesBySearchString } from './timezone.utils';\n\n\n@Pipe({\n name: 'citiesByFilter'\n})\nexport class CitiesByFilterPipe implements PipeTransform {\n transform(value: string, searchPattern?: string): string {\n return filterCitiesBySearchString(value, searchPattern);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewChild,\n ElementRef,\n Input,\n ViewEncapsulation,\n forwardRef\n} from '@angular/core';\nimport { KbqOption } from '@koobiq/components/core';\n\nimport { KbqTimezoneZone } from './timezone.models';\nimport { offsetFormatter } from './timezone.utils';\n\n\n@Component({\n selector: 'kbq-timezone-option',\n exportAs: 'kbqTimezoneOption',\n host: {\n class: 'kbq-timezone-option'\n },\n templateUrl: 'timezone-option.component.html',\n styleUrls: ['../core/option/option.scss', 'timezone-option.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{\n provide: KbqOption,\n useExisting: forwardRef(() => KbqTimezoneOption)\n }]\n})\nexport class KbqTimezoneOption extends KbqOption {\n @ViewChild('tooltipContentWrapper', { static: false }) tooltipContentWrapper: ElementRef<HTMLElement>;\n @ViewChild('tooltipContent', { static: false }) tooltipContent: ElementRef<HTMLElement>;\n\n @Input() highlightText: string;\n\n @Input()\n get timezone(): KbqTimezoneZone {\n return this._timezone;\n }\n\n set timezone(zone: KbqTimezoneZone) {\n this._timezone = zone;\n this.value = zone.id;\n }\n\n private _timezone: KbqTimezoneZone;\n\n get viewValue(): string {\n const cities: string = [this.timezone.city, this.timezone.cities]\n .filter(Boolean)\n .join(', ');\n\n return [offsetFormatter(this.timezone.offset), cities]\n .join(' ');\n }\n}\n","<div class=\"kbq-timezone-option__offset-wrapper layout-row layout-align-space-between\"\n *ngFor=\"let utcItem of timezone.offset | utcOffset | keyvalue\">\n <div class=\"kbq-timezone-option__offset\" [innerHTML]=\"utcItem.key | mcHighlight:highlightText\"></div>\n <div class=\"kbq-timezone-option__offset\" [innerHTML]=\"utcItem.value | mcHighlight:highlightText\"></div>\n</div>\n\n<div class=\"kbq-timezone-option__label\">\n <span class=\"kbq-timezone-option__city\" [innerHTML]=\"timezone.city | mcHighlight:highlightText\"></span>\n <div #tooltipContentWrapper class=\"kbq-timezone-option__cities\">\n <span #tooltipContent\n [innerHTML]=\"timezone.cities | citiesByFilter:highlightText | mcHighlight:highlightText\">\n </span>\n </div>\n</div>\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { Overlay, ScrollDispatcher } from '@angular/cdk/overlay';\nimport {\n AfterViewInit,\n Directive,\n ElementRef,\n Inject,\n NgZone,\n OnDestroy,\n Optional,\n ViewContainerRef, ChangeDetectorRef\n} from '@angular/core';\nimport { PopUpPlacements } from '@koobiq/components/core';\nimport { KbqTooltipTrigger, KBQ_TOOLTIP_SCROLL_STRATEGY } from '@koobiq/components/tooltip';\n\nimport { KbqTimezoneOption } from './timezone-option.component';\n\n\nexport const TOOLTIP_VISIBLE_ROWS_COUNT = 3;\n\n\n@Directive({\n selector: 'kbq-timezone-option',\n host: {\n '(mouseenter)': 'onMouseEnter()',\n '(mouseleave)': 'onMouseLeave()'\n }\n})\nexport class KbqTimezoneOptionTooltip extends KbqTooltipTrigger implements AfterViewInit, OnDestroy {\n private resizeObserver: ResizeObserver;\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n private option: KbqTimezoneOption,\n overlay: Overlay,\n elementRef: ElementRef,\n ngZone: NgZone,\n scrollDispatcher: ScrollDispatcher,\n hostView: ViewContainerRef,\n @Inject(KBQ_TOOLTIP_SCROLL_STRATEGY) scrollStrategy,\n @Optional() direction: Directionality,\n focusMonitor: FocusMonitor\n ) {\n super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction, focusMonitor);\n this.tooltipPlacement = PopUpPlacements.Right;\n }\n\n ngAfterViewInit(): void {\n this.content = this.option.viewValue;\n this.option.tooltipContentWrapper.nativeElement.style.webkitLineClamp = TOOLTIP_VISIBLE_ROWS_COUNT.toString();\n\n this.resizeObserver = new ResizeObserver(() => this.checkTooltipDisabled());\n this.resizeObserver.observe(this.option.tooltipContentWrapper.nativeElement);\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.resizeObserver?.unobserve(this.option.tooltipContentWrapper.nativeElement);\n }\n\n onMouseEnter(): void {\n this.resizeObserver.observe(this.option.tooltipContentWrapper.nativeElement);\n this.checkTooltipDisabled();\n }\n\n onMouseLeave(): void {\n this.resizeObserver.unobserve(this.option.tooltipContentWrapper.nativeElement);\n\n this.disabled = true;\n }\n\n private checkTooltipDisabled(): void {\n const count: number = this.option.tooltipContent.nativeElement.getClientRects().length;\n\n this.disabled = count <= TOOLTIP_VISIBLE_ROWS_COUNT;\n\n this.changeDetectorRef.detectChanges();\n }\n}\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, Directive, ContentChild } from '@angular/core';\nimport { KBQ_OPTION_PARENT_COMPONENT } from '@koobiq/components/core';\nimport { KbqFormFieldControl, KbqCleaner } from '@koobiq/components/form-field';\nimport { KbqSelect, KbqSelectSearch } from '@koobiq/components/select';\n\n\n@Directive({ selector: 'kbq-timezone-select-trigger' })\nexport class KbqTimezoneSelectTrigger {}\n\n@Component({\n selector: 'kbq-timezone-select',\n exportAs: 'kbqTimezoneSelect',\n templateUrl: 'timezone-select.component.html',\n styleUrls: ['../select/select.scss', 'timezone-select.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: KbqFormFieldControl, useExisting: KbqTimezoneSelect },\n { provide: KBQ_OPTION_PARENT_COMPONENT, useExisting: KbqTimezoneSelect }\n ]\n})\nexport class KbqTimezoneSelect extends KbqSelect {\n @ContentChild(KbqTimezoneSelectTrigger, { static: false }) customTrigger: KbqTimezoneSelectTrigger;\n\n @ContentChild('kbqSelectCleaner', { static: true }) cleaner: KbqCleaner;\n\n @ContentChild(KbqSelectSearch, { static: false }) search: KbqSelectSearch;\n}\n","<div cdk-overlay-origin\n class=\"kbq-select__trigger\"\n [class.kbq-select__trigger_multiple]=\"multiple\"\n [class.kbq-select__trigger_single]=\"!multiple\"\n [class.kbq-select__trigger_empty]=\"empty\"\n #origin=\"cdkOverlayOrigin\"\n #trigger>\n\n <div class=\"kbq-select__matcher\" [ngSwitch]=\"empty\">\n <span class=\"kbq-select__placeholder\" *ngSwitchCase=\"true\">{{ placeholder || '\\u00A0' }}</span>\n <span *ngSwitchCase=\"false\" [ngSwitch]=\"!!customTrigger\">\n <div *ngSwitchCase=\"false\" class=\"kbq-select__match-container\">\n <span class=\"kbq-select__matcher-text\">{{ triggerValue }}</span>\n </div>\n <ng-content select=\"kbq-timezone-select-trigger\" *ngSwitchCase=\"true\"></ng-content>\n </span>\n\n <div class=\"kbq-select__cleaner\" *ngIf=\"canShowCleaner\" (click)=\"clearValue($event)\">\n <ng-content select=\"kbq-cleaner\"></ng-content>\n </div>\n\n <div class=\"kbq-select__arrow-wrapper\">\n <i class=\"kbq-select__arrow\" kbq-icon=\"mc-angle-down-S_16\"></i>\n </div>\n </div>\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayBackdropClass]=\"backdropClass\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayMinWidth]=\"triggerRect?.width!\"\n [cdkConnectedOverlayWidth]=\"triggerRect?.width!\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n (backdropClick)=\"close()\"\n (attach)=\"onAttached()\"\n (detach)=\"close()\">\n\n <div #panel\n class=\"kbq-select__panel kbq-timezone-select__panel {{ getPanelTheme() }}\"\n [ngClass]=\"panelClass\"\n [style.transformOrigin]=\"transformOrigin\"\n [style.font-size.px]=\"triggerFontSize\"\n (keydown)=\"handleKeydown($event)\">\n\n <div *ngIf=\"search\" class=\"kbq-select__search-container\">\n <ng-content select=\"[kbqSelectSearch]\"></ng-content>\n </div>\n\n <div #optionsContainer\n class=\"kbq-select__content\"\n [@fadeInContent]=\"'showing'\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\">\n\n <div *ngIf=\"isEmptySearchResult\" class=\"kbq-select__no-options-message\">\n <ng-content select=\"[kbq-select-search-empty-result]\"></ng-content>\n </div>\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n","/* tslint:disable:naming-convention */\n\nexport interface KbqTimezoneZone {\n id: string;\n offset: string;\n city: string;\n countryCode: string;\n countryName: string;\n cities: string;\n}\n\nexport interface KbqTimezoneGroup {\n countryName: string;\n countryCode: string;\n zones: KbqTimezoneZone[];\n}\n\nexport interface KbqTimezonesByCountry {\n [countryName: string]: KbqTimezoneZone[];\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { KbqHighlightModule, KbqOptionModule } from '@koobiq/components/core';\nimport { KbqFormFieldModule } from '@koobiq/components/form-field';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqSelectModule } from '@koobiq/components/select';\nimport { KbqTagsModule } from '@koobiq/components/tags';\nimport { KbqToolTipModule } from '@koobiq/components/tooltip';\n\nimport { CitiesByFilterPipe } from './cities-by-filter.pipe';\nimport { KbqTimezoneOption } from './timezone-option.component';\nimport { KbqTimezoneOptionTooltip } from './timezone-option.directive';\nimport { KbqTimezoneSelect, KbqTimezoneSelectTrigger } from './timezone-select.component';\nimport { UtcOffsetPipe } from './utc-offset.pipe';\n\n\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n KbqFormFieldModule,\n KbqOptionModule,\n KbqSelectModule,\n KbqIconModule,\n KbqTagsModule,\n KbqToolTipModule,\n KbqHighlightModule\n ],\n declarations: [\n UtcOffsetPipe,\n CitiesByFilterPipe,\n KbqTimezoneSelect,\n KbqTimezoneOption,\n KbqTimezoneOptionTooltip,\n KbqTimezoneSelectTrigger\n ],\n exports: [\n KbqTimezoneSelect,\n KbqTimezoneOption,\n KbqTimezoneOptionTooltip,\n KbqTimezoneSelectTrigger\n ]\n})\nexport class KbqTimezoneModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3.UtcOffsetPipe","i4.CitiesByFilterPipe","i2","i3"],"mappings":"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"}
@@ -22,8 +22,7 @@ class KbqTitleDirective extends KbqTooltipTrigger {
22
22
  return this.childContainer.nativeElement || this.childContainer;
23
23
  }
24
24
  constructor(overlay, elementRef, ngZone, scrollDispatcher, hostView, focusMonitor, scrollStrategy, direction, componentInstance) {
25
- super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);
26
- this.focusMonitor = focusMonitor;
25
+ super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction, focusMonitor);
27
26
  this.componentInstance = componentInstance;
28
27
  this.resizeStream = new Subject();
29
28
  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 { FocusMonitor } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { Overlay, ScrollDispatcher } from '@angular/cdk/overlay';\nimport {\n AfterViewInit,\n ContentChild,\n Directive,\n ElementRef,\n Host,\n Inject,\n NgZone,\n Optional,\n ViewContainerRef\n} from '@angular/core';\nimport { KBQ_TITLE_TEXT_REF, KbqTitleTextRef } from '@koobiq/components/core';\nimport { KBQ_TOOLTIP_SCROLL_STRATEGY, KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { Observable, Subject, Subscription, throttleTime } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\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 {\n get isOverflown(): boolean {\n return this.parent.clientWidth < this.child.scrollWidth || this.parent.clientHeight < 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 mutationSubscription = 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(\n overlay: Overlay,\n elementRef: ElementRef,\n ngZone: NgZone,\n scrollDispatcher: ScrollDispatcher,\n hostView: ViewContainerRef,\n private focusMonitor: FocusMonitor,\n @Inject(KBQ_TOOLTIP_SCROLL_STRATEGY) scrollStrategy,\n @Optional() direction: Directionality,\n @Host() @Optional() @Inject(KBQ_TITLE_TEXT_REF) private componentInstance?: KbqTitleTextRef\n ) {\n super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);\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.mutationSubscription = this.createMutationObserver()\n .pipe(throttleTime(this.debounceInterval))\n .subscribe(() => {\n this.disabled = !this.isOverflown;\n this.content = this.viewValue;\n });\n\n this.focusMonitorSubscription = this.focusMonitor.monitor(this.elementRef).subscribe(\n (origin) => (origin === 'keyboard')\n ? this.handleElementEnter() : this.hideTooltip()\n );\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n\n this.resizeSubscription.unsubscribe();\n this.mutationSubscription.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 private createMutationObserver(): Observable<MutationRecord[]> {\n return new Observable((observer) => {\n const mutationObserver = new MutationObserver(\n (mutations) => observer.next(mutations)\n );\n mutationObserver.observe(this.parent, {\n characterData: true, attributes: false, childList: true, subtree: true\n });\n\n return () => mutationObserver.disconnect();\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqToolTipModule } from '@koobiq/components/tooltip';\n\nimport { KbqTitleDirective } from './title.directive';\n\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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"}
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 { FocusMonitor } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { Overlay, ScrollDispatcher } from '@angular/cdk/overlay';\nimport {\n AfterViewInit,\n ContentChild,\n Directive,\n ElementRef,\n Host,\n Inject,\n NgZone,\n Optional,\n ViewContainerRef\n} from '@angular/core';\nimport { KBQ_TITLE_TEXT_REF, KbqTitleTextRef } from '@koobiq/components/core';\nimport { KBQ_TOOLTIP_SCROLL_STRATEGY, KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { Observable, Subject, Subscription, throttleTime } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\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 {\n get isOverflown(): boolean {\n return this.parent.clientWidth < this.child.scrollWidth || this.parent.clientHeight < 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 mutationSubscription = 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(\n overlay: Overlay,\n elementRef: ElementRef,\n ngZone: NgZone,\n scrollDispatcher: ScrollDispatcher,\n hostView: ViewContainerRef,\n focusMonitor: FocusMonitor,\n @Inject(KBQ_TOOLTIP_SCROLL_STRATEGY) scrollStrategy,\n @Optional() direction: Directionality,\n @Host() @Optional() @Inject(KBQ_TITLE_TEXT_REF) private componentInstance?: KbqTitleTextRef\n ) {\n super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction, focusMonitor);\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.mutationSubscription = this.createMutationObserver()\n .pipe(throttleTime(this.debounceInterval))\n .subscribe(() => {\n this.disabled = !this.isOverflown;\n this.content = this.viewValue;\n });\n\n this.focusMonitorSubscription = this.focusMonitor.monitor(this.elementRef).subscribe(\n (origin) => (origin === 'keyboard')\n ? this.handleElementEnter() : this.hideTooltip()\n );\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n\n this.resizeSubscription.unsubscribe();\n this.mutationSubscription.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 private createMutationObserver(): Observable<MutationRecord[]> {\n return new Observable((observer) => {\n const mutationObserver = new MutationObserver(\n (mutations) => observer.next(mutations)\n );\n mutationObserver.observe(this.parent, {\n characterData: true, attributes: false, childList: true, subtree: true\n });\n\n return () => mutationObserver.disconnect();\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqToolTipModule } from '@koobiq/components/tooltip';\n\nimport { KbqTitleDirective } from './title.directive';\n\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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"}
@@ -4,6 +4,7 @@ import * as i1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import * as i0 from '@angular/core';
6
6
  import { InjectionToken, Component, ViewEncapsulation, ChangeDetectionStrategy, Inject, EventEmitter, Directive, Optional, Input, Output, NgModule } from '@angular/core';
7
+ import * as i4 from '@angular/cdk/a11y';
7
8
  import * as i3 from '@angular/cdk/bidi';
8
9
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
9
10
  import { KbqPopUp, KbqPopUpTrigger, PopUpTriggers, KbqComponentColors, POSITION_TO_CSS_MAP } from '@koobiq/components/core';
@@ -147,8 +148,9 @@ class KbqTooltipTrigger extends KbqPopUpTrigger {
147
148
  get hasClickInTrigger() {
148
149
  return this.trigger.includes(PopUpTriggers.Click);
149
150
  }
150
- constructor(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction) {
151
+ constructor(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction, focusMonitor) {
151
152
  super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);
153
+ this.focusMonitor = focusMonitor;
152
154
  this.enterDelay = 400;
153
155
  this.leaveDelay = 0;
154
156
  // tslint:disable-next-line:naming-convention
@@ -161,6 +163,17 @@ class KbqTooltipTrigger extends KbqPopUpTrigger {
161
163
  panelClass: 'kbq-tooltip-panel'
162
164
  };
163
165
  this.modifier = TooltipModifier.Default;
166
+ this.focusMonitor.monitor(this.elementRef.nativeElement);
167
+ }
168
+ ngOnDestroy() {
169
+ this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);
170
+ super.ngOnDestroy();
171
+ }
172
+ show(delay = this.enterDelay) {
173
+ if (this.triggerName === 'focus' && this.focusMonitor['_lastFocusOrigin'] !== 'keyboard') {
174
+ return;
175
+ }
176
+ super.show(delay);
164
177
  }
165
178
  updateData() {
166
179
  if (!this.instance) {
@@ -182,7 +195,7 @@ class KbqTooltipTrigger extends KbqPopUpTrigger {
182
195
  this.instance.updateClassMap(POSITION_TO_CSS_MAP[newPlacement], `${this.customClass} ${this.color}`, { modifier: this.modifier });
183
196
  this.instance.markForCheck();
184
197
  }
185
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqTooltipTrigger, deps: [{ token: i2.Overlay }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i2.ScrollDispatcher }, { token: i0.ViewContainerRef }, { token: KBQ_TOOLTIP_SCROLL_STRATEGY }, { token: i3.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
198
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqTooltipTrigger, deps: [{ token: i2.Overlay }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i2.ScrollDispatcher }, { token: i0.ViewContainerRef }, { token: KBQ_TOOLTIP_SCROLL_STRATEGY }, { token: i3.Directionality, optional: true }, { token: i4.FocusMonitor }], target: i0.ɵɵFactoryTarget.Directive }); }
186
199
  /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.0", type: KbqTooltipTrigger, selector: "[kbqTooltip]", inputs: { tooltipVisible: ["kbqVisible", "tooltipVisible"], tooltipPlacement: ["kbqPlacement", "tooltipPlacement"], tooltipPlacementPriority: ["kbqPlacementPriority", "tooltipPlacementPriority"], content: ["kbqTooltip", "content"], disabled: ["kbqTooltipDisabled", "disabled"], enterDelay: ["kbqEnterDelay", "enterDelay"], leaveDelay: ["kbqLeaveDelay", "leaveDelay"], trigger: ["kbqTrigger", "trigger"], customClass: ["kbqTooltipClass", "customClass"], color: ["kbqTooltipColor", "color"] }, outputs: { placementChange: "kbqPlacementChange", visibleChange: "kbqVisibleChange" }, host: { listeners: { "keydown": "handleKeydown($event)", "touchend": "handleTouchend()" }, properties: { "class.kbq-tooltip_open": "isOpen" } }, exportAs: ["kbqTooltip"], usesInheritance: true, ngImport: i0 }); }
187
200
  }
188
201
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqTooltipTrigger, decorators: [{
@@ -201,7 +214,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
201
214
  args: [KBQ_TOOLTIP_SCROLL_STRATEGY]
202
215
  }] }, { type: i3.Directionality, decorators: [{
203
216
  type: Optional
204
- }] }], propDecorators: { tooltipVisible: [{
217
+ }] }, { type: i4.FocusMonitor }], propDecorators: { tooltipVisible: [{
205
218
  type: Input,
206
219
  args: ['kbqVisible']
207
220
  }], tooltipPlacement: [{
@@ -246,11 +259,11 @@ class KbqWarningTooltipTrigger extends KbqTooltipTrigger {
246
259
  this._content = content;
247
260
  this.updateData();
248
261
  }
249
- constructor(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction) {
250
- super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);
262
+ constructor(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction, focusMonitor) {
263
+ super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction, focusMonitor);
251
264
  this.modifier = TooltipModifier.Warning;
252
265
  }
253
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqWarningTooltipTrigger, deps: [{ token: i2.Overlay }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i2.ScrollDispatcher }, { token: i0.ViewContainerRef }, { token: KBQ_TOOLTIP_SCROLL_STRATEGY }, { token: i3.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
266
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqWarningTooltipTrigger, deps: [{ token: i2.Overlay }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i2.ScrollDispatcher }, { token: i0.ViewContainerRef }, { token: KBQ_TOOLTIP_SCROLL_STRATEGY }, { token: i3.Directionality, optional: true }, { token: i4.FocusMonitor }], target: i0.ɵɵFactoryTarget.Directive }); }
254
267
  /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.0", type: KbqWarningTooltipTrigger, selector: "[kbqWarningTooltip]", inputs: { content: ["kbqWarningTooltip", "content"] }, host: { listeners: { "keydown": "handleKeydown($event)", "touchend": "handleTouchend()" }, properties: { "class.kbq-tooltip_open": "isOpen" } }, exportAs: ["kbqWarningTooltip"], usesInheritance: true, ngImport: i0 }); }
255
268
  }
256
269
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqWarningTooltipTrigger, decorators: [{
@@ -269,7 +282,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
269
282
  args: [KBQ_TOOLTIP_SCROLL_STRATEGY]
270
283
  }] }, { type: i3.Directionality, decorators: [{
271
284
  type: Optional
272
- }] }], propDecorators: { content: [{
285
+ }] }, { type: i4.FocusMonitor }], propDecorators: { content: [{
273
286
  type: Input,
274
287
  args: ['kbqWarningTooltip']
275
288
  }] } });
@@ -288,8 +301,8 @@ class KbqExtendedTooltipTrigger extends KbqTooltipTrigger {
288
301
  this._header = header;
289
302
  this.updateData();
290
303
  }
291
- constructor(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction) {
292
- super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);
304
+ constructor(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction, focusMonitor) {
305
+ super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction, focusMonitor);
293
306
  this.modifier = TooltipModifier.Extended;
294
307
  }
295
308
  updateData() {
@@ -299,7 +312,7 @@ class KbqExtendedTooltipTrigger extends KbqTooltipTrigger {
299
312
  super.updateData();
300
313
  this.instance.header = this.header;
301
314
  }
302
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqExtendedTooltipTrigger, deps: [{ token: i2.Overlay }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i2.ScrollDispatcher }, { token: i0.ViewContainerRef }, { token: KBQ_TOOLTIP_SCROLL_STRATEGY }, { token: i3.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
315
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqExtendedTooltipTrigger, deps: [{ token: i2.Overlay }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i2.ScrollDispatcher }, { token: i0.ViewContainerRef }, { token: KBQ_TOOLTIP_SCROLL_STRATEGY }, { token: i3.Directionality, optional: true }, { token: i4.FocusMonitor }], target: i0.ɵɵFactoryTarget.Directive }); }
303
316
  /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.0", type: KbqExtendedTooltipTrigger, selector: "[kbqExtendedTooltip]", inputs: { content: ["kbqExtendedTooltip", "content"], header: ["kbqTooltipHeader", "header"] }, host: { listeners: { "keydown": "handleKeydown($event)", "touchend": "handleTouchend()" }, properties: { "class.kbq-tooltip_open": "isOpen" } }, exportAs: ["kbqExtendedTooltip"], usesInheritance: true, ngImport: i0 }); }
304
317
  }
305
318
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqExtendedTooltipTrigger, decorators: [{
@@ -318,7 +331,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
318
331
  args: [KBQ_TOOLTIP_SCROLL_STRATEGY]
319
332
  }] }, { type: i3.Directionality, decorators: [{
320
333
  type: Optional
321
- }] }], propDecorators: { content: [{
334
+ }] }, { type: i4.FocusMonitor }], propDecorators: { content: [{
322
335
  type: Input,
323
336
  args: ['kbqExtendedTooltip']
324
337
  }], header: [{
@@ -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 {\n animate,\n AnimationTriggerMetadata,\n keyframes,\n state,\n style,\n transition,\n trigger\n} from '@angular/animations';\n\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('* => visible', animate('200ms cubic-bezier(0, 0, 0.2, 1)', 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 transition('* => hidden', animate('100ms cubic-bezier(0, 0, 0.2, 1)', style({ opacity: 0 })))\n ])\n};\n","import { Directionality } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n Overlay,\n ScrollDispatcher,\n ScrollStrategy,\n OverlayConfig\n} from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n EventEmitter,\n Inject,\n InjectionToken,\n Input,\n NgZone,\n Optional,\n Output,\n TemplateRef,\n Type,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n KbqPopUp,\n KbqPopUpTrigger,\n PopUpPlacements,\n PopUpTriggers,\n POSITION_TO_CSS_MAP,\n KbqComponentColors\n} from '@koobiq/components/core';\nimport { EMPTY, merge } from 'rxjs';\n\nimport { kbqTooltipAnimations } from './tooltip.animations';\n\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\n@Component({\n selector: 'kbq-tooltip-component',\n animations: [kbqTooltipAnimations.tooltipState],\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.scss'],\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 constructor(\n changeDetectorRef: ChangeDetectorRef,\n @Inject(KBQ_TOOLTIP_OPEN_TIME) private openTime\n ) {\n super(changeDetectorRef);\n }\n\n show(delay: number) {\n if (!this.content) {\n return;\n }\n\n // tslint:disable-next-line:no-magic-numbers\n super.show(Date.now() - this.openTime.value < MIN_TIME_FOR_DELAY ? 0 : delay);\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 =\n 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 selector: '[kbqTooltip]',\n exportAs: 'kbqTooltip',\n host: {\n '[class.kbq-tooltip_open]': 'isOpen',\n\n '(keydown)': 'handleKeydown($event)',\n '(touchend)': 'handleTouchend()'\n }\n})\nexport class KbqTooltipTrigger extends KbqPopUpTrigger<KbqTooltipComponent> {\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 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\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 // tslint:disable-next-line:naming-convention\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('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 @Output('kbqPlacementChange') placementChange = new EventEmitter();\n\n @Output('kbqVisibleChange') 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 constructor(\n overlay: Overlay,\n elementRef: ElementRef,\n ngZone: NgZone,\n scrollDispatcher: ScrollDispatcher,\n hostView: ViewContainerRef,\n @Inject(KBQ_TOOLTIP_SCROLL_STRATEGY) scrollStrategy,\n @Optional() direction: Directionality\n ) {\n super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);\n }\n\n updateData() {\n if (!this.instance) { return; }\n\n this.instance.content = this.content;\n this.instance.detectChanges();\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) { return; }\n\n this.instance.updateClassMap(\n POSITION_TO_CSS_MAP[newPlacement],\n `${this.customClass} ${this.color}`,\n { modifier: this.modifier }\n );\n this.instance.markForCheck();\n }\n}\n\n\n@Directive({\n selector: '[kbqWarningTooltip]',\n exportAs: 'kbqWarningTooltip',\n host: {\n '[class.kbq-tooltip_open]': 'isOpen',\n\n '(keydown)': 'handleKeydown($event)',\n '(touchend)': 'handleTouchend()'\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 constructor(\n overlay: Overlay,\n elementRef: ElementRef,\n ngZone: NgZone,\n scrollDispatcher: ScrollDispatcher,\n hostView: ViewContainerRef,\n @Inject(KBQ_TOOLTIP_SCROLL_STRATEGY) scrollStrategy,\n @Optional() direction: Directionality\n ) {\n super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);\n }\n}\n\n@Directive({\n selector: '[kbqExtendedTooltip]',\n exportAs: 'kbqExtendedTooltip',\n host: {\n '[class.kbq-tooltip_open]': 'isOpen',\n\n '(keydown)': 'handleKeydown($event)',\n '(touchend)': 'handleTouchend()'\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 constructor(\n overlay: Overlay,\n elementRef: ElementRef,\n ngZone: NgZone,\n scrollDispatcher: ScrollDispatcher,\n hostView: ViewContainerRef,\n @Inject(KBQ_TOOLTIP_SCROLL_STRATEGY) scrollStrategy,\n @Optional() direction: Directionality\n ) {\n super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);\n }\n\n updateData() {\n if (!this.instance) { return; }\n\n super.updateData();\n this.instance.header = this.header;\n }\n}\n","<div class=\"kbq-tooltip\"\n [ngClass]=\"classMap\"\n [@state]=\"visibility\"\n (@state.start)=\"animationStart()\"\n (@state.done)=\"animationDone($event)\">\n\n <div class=\"kbq-tooltip__inner\">\n <div class=\"kbq-tooltip__arrow\"></div>\n\n <div class=\"kbq-tooltip__header\" *ngIf=\"header\">\n <ng-container *ngIf=\"isTemplateRef(header)\" [ngTemplateOutlet]=\"$any(header)\"></ng-container>\n <ng-container *ngIf=\"!isTemplateRef(header)\">\n <div>{{ header }}</div>\n </ng-container>\n </div>\n <div class=\"kbq-tooltip__content\">\n <ng-container *ngIf=\"isTemplateRef(content)\" [ngTemplateOutlet]=\"$any(content)\"></ng-container>\n <ng-container *ngIf=\"!isTemplateRef(content)\">\n <div>{{ content }}</div>\n </ng-container>\n </div>\n </div>\n</div>\n","import { OverlayModule } from '@angular/cdk/overlay';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport {\r\n KbqTooltipComponent,\r\n KbqTooltipTrigger,\r\n KbqExtendedTooltipTrigger,\r\n KbqWarningTooltipTrigger,\r\n KBQ_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER,\r\n KBQ_TOOLTIP_OPEN_TIME_PROVIDER\r\n} from './tooltip.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n KbqTooltipComponent,\r\n KbqTooltipTrigger,\r\n KbqExtendedTooltipTrigger,\r\n KbqWarningTooltipTrigger\r\n ],\r\n exports: [\r\n KbqTooltipComponent,\r\n KbqTooltipTrigger,\r\n KbqExtendedTooltipTrigger,\r\n KbqWarningTooltipTrigger\r\n ],\r\n imports: [CommonModule, OverlayModule],\r\n providers: [\r\n KBQ_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER,\r\n KBQ_TOOLTIP_OPEN_TIME_PROVIDER\r\n ]\r\n})\r\nexport class KbqToolTipModule {}\r\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 {\n animate,\n AnimationTriggerMetadata,\n keyframes,\n state,\n style,\n transition,\n trigger\n} from '@angular/animations';\n\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('* => visible', animate('200ms cubic-bezier(0, 0, 0.2, 1)', 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 transition('* => hidden', animate('100ms cubic-bezier(0, 0, 0.2, 1)', style({ opacity: 0 })))\n ])\n};\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n Overlay,\n ScrollDispatcher,\n ScrollStrategy,\n OverlayConfig\n} from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n EventEmitter,\n Inject,\n InjectionToken,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n Output,\n TemplateRef,\n Type,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n KbqPopUp,\n KbqPopUpTrigger,\n PopUpPlacements,\n PopUpTriggers,\n POSITION_TO_CSS_MAP,\n KbqComponentColors\n} from '@koobiq/components/core';\nimport { EMPTY, merge } from 'rxjs';\n\nimport { kbqTooltipAnimations } from './tooltip.animations';\n\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\n@Component({\n selector: 'kbq-tooltip-component',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.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 constructor(\n changeDetectorRef: ChangeDetectorRef,\n @Inject(KBQ_TOOLTIP_OPEN_TIME) private openTime\n ) {\n super(changeDetectorRef);\n }\n\n show(delay: number) {\n if (!this.content) {\n return;\n }\n\n // tslint:disable-next-line:no-magic-numbers\n super.show(Date.now() - this.openTime.value < MIN_TIME_FOR_DELAY ? 0 : delay);\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 =\n 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 selector: '[kbqTooltip]',\n exportAs: 'kbqTooltip',\n host: {\n '[class.kbq-tooltip_open]': 'isOpen',\n\n '(keydown)': 'handleKeydown($event)',\n '(touchend)': 'handleTouchend()'\n }\n})\nexport class KbqTooltipTrigger extends KbqPopUpTrigger<KbqTooltipComponent> implements OnDestroy {\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 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\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 // tslint:disable-next-line:naming-convention\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('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 @Output('kbqPlacementChange') placementChange = new EventEmitter();\n\n @Output('kbqVisibleChange') 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 constructor(\n overlay: Overlay,\n elementRef: ElementRef,\n ngZone: NgZone,\n scrollDispatcher: ScrollDispatcher,\n hostView: ViewContainerRef,\n @Inject(KBQ_TOOLTIP_SCROLL_STRATEGY) scrollStrategy,\n @Optional() direction: Directionality,\n protected focusMonitor: FocusMonitor\n ) {\n super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);\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') { return; }\n\n super.show(delay);\n }\n\n updateData() {\n if (!this.instance) { return; }\n\n this.instance.content = this.content;\n this.instance.detectChanges();\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) { return; }\n\n this.instance.updateClassMap(\n POSITION_TO_CSS_MAP[newPlacement],\n `${this.customClass} ${this.color}`,\n { modifier: this.modifier }\n );\n this.instance.markForCheck();\n }\n}\n\n\n@Directive({\n selector: '[kbqWarningTooltip]',\n exportAs: 'kbqWarningTooltip',\n host: {\n '[class.kbq-tooltip_open]': 'isOpen',\n\n '(keydown)': 'handleKeydown($event)',\n '(touchend)': 'handleTouchend()'\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 constructor(\n overlay: Overlay,\n elementRef: ElementRef,\n ngZone: NgZone,\n scrollDispatcher: ScrollDispatcher,\n hostView: ViewContainerRef,\n @Inject(KBQ_TOOLTIP_SCROLL_STRATEGY) scrollStrategy,\n @Optional() direction: Directionality,\n focusMonitor: FocusMonitor\n ) {\n super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction, focusMonitor);\n }\n}\n\n@Directive({\n selector: '[kbqExtendedTooltip]',\n exportAs: 'kbqExtendedTooltip',\n host: {\n '[class.kbq-tooltip_open]': 'isOpen',\n\n '(keydown)': 'handleKeydown($event)',\n '(touchend)': 'handleTouchend()'\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 constructor(\n overlay: Overlay,\n elementRef: ElementRef,\n ngZone: NgZone,\n scrollDispatcher: ScrollDispatcher,\n hostView: ViewContainerRef,\n @Inject(KBQ_TOOLTIP_SCROLL_STRATEGY) scrollStrategy,\n @Optional() direction: Directionality,\n focusMonitor: FocusMonitor,\n ) {\n super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction, focusMonitor);\n }\n\n updateData() {\n if (!this.instance) { return; }\n\n super.updateData();\n this.instance.header = this.header;\n }\n}\n","<div class=\"kbq-tooltip\"\n [ngClass]=\"classMap\"\n [@state]=\"visibility\"\n (@state.start)=\"animationStart()\"\n (@state.done)=\"animationDone($event)\">\n\n <div class=\"kbq-tooltip__inner\">\n <div class=\"kbq-tooltip__arrow\"></div>\n\n <div class=\"kbq-tooltip__header\" *ngIf=\"header\">\n <ng-container *ngIf=\"isTemplateRef(header)\" [ngTemplateOutlet]=\"$any(header)\"></ng-container>\n <ng-container *ngIf=\"!isTemplateRef(header)\">\n <div>{{ header }}</div>\n </ng-container>\n </div>\n <div class=\"kbq-tooltip__content\">\n <ng-container *ngIf=\"isTemplateRef(content)\" [ngTemplateOutlet]=\"$any(content)\"></ng-container>\n <ng-container *ngIf=\"!isTemplateRef(content)\">\n <div>{{ content }}</div>\n </ng-container>\n </div>\n </div>\n</div>\n","import { OverlayModule } from '@angular/cdk/overlay';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport {\r\n KbqTooltipComponent,\r\n KbqTooltipTrigger,\r\n KbqExtendedTooltipTrigger,\r\n KbqWarningTooltipTrigger,\r\n KBQ_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER,\r\n KBQ_TOOLTIP_OPEN_TIME_PROVIDER\r\n} from './tooltip.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n KbqTooltipComponent,\r\n KbqTooltipTrigger,\r\n KbqExtendedTooltipTrigger,\r\n KbqWarningTooltipTrigger\r\n ],\r\n exports: [\r\n KbqTooltipComponent,\r\n KbqTooltipTrigger,\r\n KbqExtendedTooltipTrigger,\r\n KbqWarningTooltipTrigger\r\n ],\r\n imports: [CommonModule, OverlayModule],\r\n providers: [\r\n KBQ_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER,\r\n KBQ_TOOLTIP_OPEN_TIME_PROVIDER\r\n ]\r\n})\r\nexport class KbqToolTipModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}