@koobiq/components 18.13.0 → 18.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/accordion/accordion.component.d.ts +5 -5
- package/button/button.component.d.ts +3 -2
- package/button-toggle/_button-toggle-theme.scss +0 -4
- package/button-toggle/button-toggle-tokens.scss +1 -4
- package/button-toggle/button-toggle.component.d.ts +3 -2
- package/button-toggle/button-toggle.scss +11 -0
- package/core/locales/formatters.d.ts +36 -0
- package/core/locales/index.d.ts +1 -0
- package/core/locales/locale-service.d.ts +79 -0
- package/core/locales/tk-TM.d.ts +45 -0
- package/core/pop-up/constants.d.ts +6 -0
- package/core/pop-up/pop-up-trigger.d.ts +6 -0
- package/core/select/common.d.ts +17 -0
- package/core/select/constants.d.ts +0 -18
- package/esm2022/accordion/accordion.component.mjs +11 -10
- package/esm2022/button/button.component.mjs +3 -1
- package/esm2022/button-toggle/button-toggle.component.mjs +6 -4
- package/esm2022/core/locales/formatters.mjs +37 -1
- package/esm2022/core/locales/index.mjs +2 -1
- package/esm2022/core/locales/locale-service.mjs +7 -4
- package/esm2022/core/locales/tk-TM.mjs +44 -0
- package/esm2022/core/option/action.mjs +3 -4
- package/esm2022/core/pop-up/constants.mjs +8 -1
- package/esm2022/core/pop-up/pop-up-trigger.mjs +50 -3
- package/esm2022/core/select/common.mjs +63 -1
- package/esm2022/core/select/constants.mjs +1 -19
- package/esm2022/core/version.mjs +2 -2
- package/esm2022/form-field/form-field.mjs +5 -5
- package/esm2022/icon/icon-button.component.mjs +3 -1
- package/esm2022/link/link.component.mjs +4 -2
- package/esm2022/navbar/navbar-item.component.mjs +4 -2
- package/esm2022/navbar/navbar.component.mjs +6 -4
- package/esm2022/overflow-items/index.mjs +3 -0
- package/esm2022/overflow-items/koobiq-components-overflow-items.mjs +5 -0
- package/esm2022/overflow-items/module.mjs +25 -0
- package/esm2022/overflow-items/overflow-items.mjs +269 -0
- package/esm2022/popover/popover.component.mjs +4 -2
- package/esm2022/select/select-option.directive.mjs +17 -19
- package/esm2022/select/select.component.mjs +4 -78
- package/esm2022/tabs/tab-header.component.mjs +2 -2
- package/esm2022/tabs/tab-nav-bar.mjs +18 -18
- package/esm2022/timezone/timezone-option.directive.mjs +15 -12
- package/esm2022/title/title.directive.mjs +9 -18
- package/esm2022/toggle/toggle.component.mjs +12 -10
- package/esm2022/tooltip/tooltip.component.mjs +30 -27
- package/esm2022/tree-select/tree-select.component.mjs +21 -56
- package/fesm2022/koobiq-components-accordion.mjs +9 -7
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +5 -3
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-button.mjs +2 -0
- package/fesm2022/koobiq-components-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +219 -41
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +4 -4
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +2 -0
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-link.mjs +3 -1
- package/fesm2022/koobiq-components-link.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +8 -4
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +298 -0
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -0
- package/fesm2022/koobiq-components-popover.mjs +3 -1
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +19 -95
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +19 -19
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +14 -11
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-title.mjs +8 -17
- package/fesm2022/koobiq-components-title.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +11 -9
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs +30 -27
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +19 -54
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/form-field/_form-field-theme.scss +2 -2
- package/icon/icon-button.component.d.ts +3 -2
- package/link/_link-theme.scss +6 -4
- package/link/link.component.d.ts +3 -2
- package/navbar/navbar-item.component.d.ts +2 -1
- package/navbar/navbar.component.d.ts +2 -1
- package/overflow-items/index.d.ts +2 -0
- package/overflow-items/module.d.ts +7 -0
- package/overflow-items/overflow-items.d.ts +132 -0
- package/overflow-items/overflow-items.scss +20 -0
- package/package.json +10 -4
- package/popover/popover.component.d.ts +1 -0
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/light-theme.css +1 -1
- package/prebuilt-themes/theme.css +1 -1
- package/schematics/ng-add/index.js +4 -4
- package/select/select-option.directive.d.ts +3 -1
- package/select/select.component.d.ts +2 -15
- package/tabs/_tabs-common.scss +14 -0
- package/tabs/tab-header.scss +0 -14
- package/tabs/tab-nav-bar.d.ts +0 -1
- package/timezone/timezone-option.directive.d.ts +1 -0
- package/title/title.directive.d.ts +2 -2
- package/toggle/toggle.component.d.ts +6 -5
- package/tooltip/tooltip.component.d.ts +3 -3
- package/tree-select/tree-select.component.d.ts +5 -16
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Pipe, forwardRef, Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, Input, Directive, ContentChild, NgModule } from '@angular/core';
|
|
2
|
+
import { Pipe, forwardRef, Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, Input, inject, Directive, ContentChild, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from '@koobiq/components/core';
|
|
4
4
|
import { KbqOption, PopUpPlacements, ruRULocaleData, KBQ_OPTION_PARENT_COMPONENT, KbqOptionModule, KbqHighlightModule } from '@koobiq/components/core';
|
|
5
5
|
import * as i2 from '@angular/common';
|
|
6
6
|
import { NgClass, KeyValuePipe } from '@angular/common';
|
|
7
|
+
import { SharedResizeObserver } from '@angular/cdk/observers/private';
|
|
7
8
|
import { KbqTooltipTrigger, KbqToolTipModule } from '@koobiq/components/tooltip';
|
|
8
9
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
9
10
|
import { KbqFormFieldControl, KbqFormFieldModule } from '@koobiq/components/form-field';
|
|
@@ -170,31 +171,33 @@ class KbqTimezoneOptionTooltip extends KbqTooltipTrigger {
|
|
|
170
171
|
super();
|
|
171
172
|
this.changeDetectorRef = changeDetectorRef;
|
|
172
173
|
this.option = option;
|
|
174
|
+
this.resizeObserver = inject(SharedResizeObserver);
|
|
175
|
+
this.resizeObserverSubscription = null;
|
|
176
|
+
this.checkTooltipDisabled = () => {
|
|
177
|
+
const count = this.option.tooltipContent.nativeElement.getClientRects().length;
|
|
178
|
+
this.disabled = count <= TOOLTIP_VISIBLE_ROWS_COUNT;
|
|
179
|
+
this.changeDetectorRef.detectChanges();
|
|
180
|
+
};
|
|
173
181
|
this.tooltipPlacement = PopUpPlacements.Right;
|
|
174
182
|
}
|
|
175
183
|
ngAfterViewInit() {
|
|
176
184
|
this.content = this.option.viewValue;
|
|
177
185
|
this.option.tooltipContentWrapper.nativeElement.style.webkitLineClamp = TOOLTIP_VISIBLE_ROWS_COUNT.toString();
|
|
178
|
-
this.resizeObserver = new ResizeObserver(() => this.checkTooltipDisabled());
|
|
179
|
-
this.resizeObserver.observe(this.option.tooltipContentWrapper.nativeElement);
|
|
180
186
|
}
|
|
181
187
|
ngOnDestroy() {
|
|
182
188
|
super.ngOnDestroy();
|
|
183
|
-
this.
|
|
189
|
+
this.resizeObserverSubscription?.unsubscribe();
|
|
184
190
|
}
|
|
185
191
|
onMouseEnter() {
|
|
186
|
-
this.resizeObserver
|
|
192
|
+
this.resizeObserver
|
|
193
|
+
.observe(this.option.tooltipContentWrapper.nativeElement)
|
|
194
|
+
.subscribe(this.checkTooltipDisabled);
|
|
187
195
|
this.checkTooltipDisabled();
|
|
188
196
|
}
|
|
189
197
|
onMouseLeave() {
|
|
190
|
-
this.
|
|
198
|
+
this.resizeObserverSubscription?.unsubscribe();
|
|
191
199
|
this.disabled = true;
|
|
192
200
|
}
|
|
193
|
-
checkTooltipDisabled() {
|
|
194
|
-
const count = this.option.tooltipContent.nativeElement.getClientRects().length;
|
|
195
|
-
this.disabled = count <= TOOLTIP_VISIBLE_ROWS_COUNT;
|
|
196
|
-
this.changeDetectorRef.detectChanges();
|
|
197
|
-
}
|
|
198
201
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqTimezoneOptionTooltip, deps: [{ token: i0.ChangeDetectorRef }, { token: KbqTimezoneOption }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
199
202
|
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: KbqTimezoneOptionTooltip, selector: "kbq-timezone-option", host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, usesInheritance: true, ngImport: i0 }); }
|
|
200
203
|
}
|
|
@@ -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.module.ts","../../../packages/components/timezone/koobiq-components-timezone.ts"],"sourcesContent":["import { KbqTimezoneGroup, KbqTimezonesByCountry, KbqTimezoneZone } from './timezone.models';\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(':').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 =\n zone.countryCode.toLowerCase() === countryCode?.toLowerCase() ? zone.countryName : 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).map<KbqTimezoneGroup>(\n (zones: KbqTimezoneZone[]) => ({\n countryCode: zones[0].countryCode,\n countryName: zones[0].countryName,\n zones: zones.sort(timezonesSortComparator)\n })\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';\nimport { offsetFormatterAsObject } from './timezone.utils';\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';\nimport { filterCitiesBySearchString } from './timezone.utils';\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 ElementRef,\n forwardRef,\n Input,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { KbqOption } from '@koobiq/components/core';\nimport { KbqTimezoneZone } from './timezone.models';\nimport { offsetFormatter } from './timezone.utils';\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', 'timezone-option-tokens.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: KbqOption,\n useExisting: forwardRef(() => KbqTimezoneOption)\n }\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].filter(Boolean).join(', ');\n\n return [offsetFormatter(this.timezone.offset), cities].join(' ');\n }\n}\n","@for (utcItem of timezone.offset | utcOffset | keyvalue; track utcItem) {\n <div class=\"kbq-timezone-option__offset-wrapper layout-row layout-align-space-between\">\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\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\n #tooltipContent\n [innerHTML]=\"timezone.cities | citiesByFilter: highlightText | mcHighlight: highlightText\"\n ></span>\n </div>\n</div>\n","import { AfterViewInit, ChangeDetectorRef, Directive, OnDestroy } from '@angular/core';\nimport { PopUpPlacements } from '@koobiq/components/core';\nimport { KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { KbqTimezoneOption } from './timezone-option.component';\n\nexport const TOOLTIP_VISIBLE_ROWS_COUNT = 3;\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 ) {\n super();\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 {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Directive,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KBQ_OPTION_PARENT_COMPONENT, ruRULocaleData } from '@koobiq/components/core';\nimport { KbqFormFieldControl } from '@koobiq/components/form-field';\nimport { KbqSelect, KbqSelectPanelWidth } from '@koobiq/components/select';\n\n@Directive({ selector: 'kbq-timezone-select-trigger' })\nexport class KbqTimezoneSelectTrigger {}\n\nconst defaultSearchPlaceholder = ruRULocaleData.timezone.searchPlaceholder;\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', 'timezone-option-tokens.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 implements AfterContentInit {\n @ContentChild(KbqTimezoneSelectTrigger, { static: false }) customTrigger: KbqTimezoneSelectTrigger;\n\n override panelWidth: KbqSelectPanelWidth = this.defaultOptions?.panelWidth || 'auto';\n override panelMinWidth: number = 640;\n\n ngAfterContentInit() {\n super.ngAfterContentInit();\n\n this.localeService?.changes.pipe(takeUntilDestroyed()).subscribe(this.updateLocaleParamsForSearch);\n\n this.updateLocaleParamsForSearch();\n }\n\n private updateLocaleParamsForSearch = () => {\n const placeholder = this.localeService?.getParams('timezone').searchPlaceholder || defaultSearchPlaceholder;\n\n if (this.search && !this.search.hasPlaceholder()) {\n this.search.setPlaceholder(placeholder);\n }\n };\n}\n","<div\n #fallbackOverlayOrigin=\"cdkOverlayOrigin\"\n #trigger\n cdkOverlayOrigin\n class=\"kbq-select__trigger\"\n [class.kbq-select__trigger_empty]=\"empty\"\n [class.kbq-select__trigger_multiple]=\"multiple\"\n [class.kbq-select__trigger_single]=\"!multiple\"\n>\n <div class=\"kbq-select__matcher\">\n @if (empty) {\n <span class=\"kbq-select__placeholder\">\n {{ placeholder || '\\u00A0' }}\n </span>\n } @else {\n <span>\n @if (!!customTrigger) {\n <ng-content select=\"kbq-timezone-select-trigger\" />\n } @else {\n <div class=\"kbq-select__match-container\">\n <span class=\"kbq-select__matcher-text\">{{ triggerValue }}</span>\n </div>\n }\n </span>\n }\n\n @if (canShowCleaner) {\n <div class=\"kbq-select__cleaner\" (click)=\"clearValue($event)\">\n <ng-content select=\"kbq-cleaner\" />\n </div>\n }\n\n <div class=\"kbq-select__arrow-wrapper\">\n <i color=\"contrast-fade\" kbq-icon=\"kbq-chevron-down-s_16\" class=\"kbq-select__arrow\"></i>\n </div>\n </div>\n</div>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayBackdropClass]=\"backdropClass\"\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayMinWidth]=\"overlayMinWidth\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin || fallbackOverlayOrigin\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayWidth]=\"overlayWidth\"\n (attach)=\"onAttached()\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div\n #panel\n class=\"kbq-select__panel kbq-timezone-select__panel {{ getPanelTheme() }}\"\n [ngClass]=\"panelClass\"\n [style.font-size.px]=\"triggerFontSize\"\n [style.transformOrigin]=\"transformOrigin\"\n (keydown)=\"handleKeydown($event)\"\n >\n @if (search) {\n <div class=\"kbq-select__search-container\">\n <ng-content select=\"[kbqSelectSearch]\" />\n </div>\n }\n\n <div\n #optionsContainer\n class=\"kbq-select__content\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\"\n [@fadeInContent]=\"'showing'\"\n >\n @if (isEmptySearchResult) {\n <div class=\"kbq-select__no-options-message\">\n <ng-content select=\"[kbq-select-search-empty-result]\" />\n </div>\n }\n <ng-content />\n </div>\n </div>\n</ng-template>\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { KeyValuePipe, NgClass } 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';\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@NgModule({\n imports: [\n OverlayModule,\n KbqFormFieldModule,\n KbqOptionModule,\n KbqSelectModule,\n KbqIconModule,\n KbqTagsModule,\n KbqToolTipModule,\n KbqHighlightModule,\n NgClass,\n KeyValuePipe\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","i1.KbqTimezoneOption","i1","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.module.ts","../../../packages/components/timezone/koobiq-components-timezone.ts"],"sourcesContent":["import { KbqTimezoneGroup, KbqTimezonesByCountry, KbqTimezoneZone } from './timezone.models';\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(':').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 =\n zone.countryCode.toLowerCase() === countryCode?.toLowerCase() ? zone.countryName : 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).map<KbqTimezoneGroup>(\n (zones: KbqTimezoneZone[]) => ({\n countryCode: zones[0].countryCode,\n countryName: zones[0].countryName,\n zones: zones.sort(timezonesSortComparator)\n })\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';\nimport { offsetFormatterAsObject } from './timezone.utils';\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';\nimport { filterCitiesBySearchString } from './timezone.utils';\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 ElementRef,\n forwardRef,\n Input,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { KbqOption } from '@koobiq/components/core';\nimport { KbqTimezoneZone } from './timezone.models';\nimport { offsetFormatter } from './timezone.utils';\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', 'timezone-option-tokens.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: KbqOption,\n useExisting: forwardRef(() => KbqTimezoneOption)\n }\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].filter(Boolean).join(', ');\n\n return [offsetFormatter(this.timezone.offset), cities].join(' ');\n }\n}\n","@for (utcItem of timezone.offset | utcOffset | keyvalue; track utcItem) {\n <div class=\"kbq-timezone-option__offset-wrapper layout-row layout-align-space-between\">\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\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\n #tooltipContent\n [innerHTML]=\"timezone.cities | citiesByFilter: highlightText | mcHighlight: highlightText\"\n ></span>\n </div>\n</div>\n","import { SharedResizeObserver } from '@angular/cdk/observers/private';\nimport { AfterViewInit, ChangeDetectorRef, Directive, inject, OnDestroy } from '@angular/core';\nimport { PopUpPlacements } from '@koobiq/components/core';\nimport { KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { Subscription } from 'rxjs';\nimport { KbqTimezoneOption } from './timezone-option.component';\n\nexport const TOOLTIP_VISIBLE_ROWS_COUNT = 3;\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 = inject(SharedResizeObserver);\n private resizeObserverSubscription: Subscription | null = null;\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n private option: KbqTimezoneOption\n ) {\n super();\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\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.resizeObserverSubscription?.unsubscribe();\n }\n\n onMouseEnter(): void {\n this.resizeObserver\n .observe(this.option.tooltipContentWrapper.nativeElement)\n .subscribe(this.checkTooltipDisabled);\n\n this.checkTooltipDisabled();\n }\n\n onMouseLeave(): void {\n this.resizeObserverSubscription?.unsubscribe();\n\n this.disabled = true;\n }\n\n private checkTooltipDisabled = () => {\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 {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Directive,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KBQ_OPTION_PARENT_COMPONENT, ruRULocaleData } from '@koobiq/components/core';\nimport { KbqFormFieldControl } from '@koobiq/components/form-field';\nimport { KbqSelect, KbqSelectPanelWidth } from '@koobiq/components/select';\n\n@Directive({ selector: 'kbq-timezone-select-trigger' })\nexport class KbqTimezoneSelectTrigger {}\n\nconst defaultSearchPlaceholder = ruRULocaleData.timezone.searchPlaceholder;\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', 'timezone-option-tokens.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 implements AfterContentInit {\n @ContentChild(KbqTimezoneSelectTrigger, { static: false }) customTrigger: KbqTimezoneSelectTrigger;\n\n override panelWidth: KbqSelectPanelWidth = this.defaultOptions?.panelWidth || 'auto';\n override panelMinWidth: number = 640;\n\n ngAfterContentInit() {\n super.ngAfterContentInit();\n\n this.localeService?.changes.pipe(takeUntilDestroyed()).subscribe(this.updateLocaleParamsForSearch);\n\n this.updateLocaleParamsForSearch();\n }\n\n private updateLocaleParamsForSearch = () => {\n const placeholder = this.localeService?.getParams('timezone').searchPlaceholder || defaultSearchPlaceholder;\n\n if (this.search && !this.search.hasPlaceholder()) {\n this.search.setPlaceholder(placeholder);\n }\n };\n}\n","<div\n #fallbackOverlayOrigin=\"cdkOverlayOrigin\"\n #trigger\n cdkOverlayOrigin\n class=\"kbq-select__trigger\"\n [class.kbq-select__trigger_empty]=\"empty\"\n [class.kbq-select__trigger_multiple]=\"multiple\"\n [class.kbq-select__trigger_single]=\"!multiple\"\n>\n <div class=\"kbq-select__matcher\">\n @if (empty) {\n <span class=\"kbq-select__placeholder\">\n {{ placeholder || '\\u00A0' }}\n </span>\n } @else {\n <span>\n @if (!!customTrigger) {\n <ng-content select=\"kbq-timezone-select-trigger\" />\n } @else {\n <div class=\"kbq-select__match-container\">\n <span class=\"kbq-select__matcher-text\">{{ triggerValue }}</span>\n </div>\n }\n </span>\n }\n\n @if (canShowCleaner) {\n <div class=\"kbq-select__cleaner\" (click)=\"clearValue($event)\">\n <ng-content select=\"kbq-cleaner\" />\n </div>\n }\n\n <div class=\"kbq-select__arrow-wrapper\">\n <i color=\"contrast-fade\" kbq-icon=\"kbq-chevron-down-s_16\" class=\"kbq-select__arrow\"></i>\n </div>\n </div>\n</div>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayBackdropClass]=\"backdropClass\"\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayMinWidth]=\"overlayMinWidth\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin || fallbackOverlayOrigin\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayWidth]=\"overlayWidth\"\n (attach)=\"onAttached()\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div\n #panel\n class=\"kbq-select__panel kbq-timezone-select__panel {{ getPanelTheme() }}\"\n [ngClass]=\"panelClass\"\n [style.font-size.px]=\"triggerFontSize\"\n [style.transformOrigin]=\"transformOrigin\"\n (keydown)=\"handleKeydown($event)\"\n >\n @if (search) {\n <div class=\"kbq-select__search-container\">\n <ng-content select=\"[kbqSelectSearch]\" />\n </div>\n }\n\n <div\n #optionsContainer\n class=\"kbq-select__content\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\"\n [@fadeInContent]=\"'showing'\"\n >\n @if (isEmptySearchResult) {\n <div class=\"kbq-select__no-options-message\">\n <ng-content select=\"[kbq-select-search-empty-result]\" />\n </div>\n }\n <ng-content />\n </div>\n </div>\n</ng-template>\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { KeyValuePipe, NgClass } 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';\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@NgModule({\n imports: [\n OverlayModule,\n KbqFormFieldModule,\n KbqOptionModule,\n KbqSelectModule,\n KbqIconModule,\n KbqTagsModule,\n KbqToolTipModule,\n KbqHighlightModule,\n NgClass,\n KeyValuePipe\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","i1.KbqTimezoneOption","i1","i2","i3"],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { ContentObserver } from '@angular/cdk/observers';
|
|
1
2
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Directive, Host, Optional, Inject, ContentChild, NgModule } from '@angular/core';
|
|
3
|
+
import { inject, Directive, Host, Optional, Inject, ContentChild, NgModule } from '@angular/core';
|
|
3
4
|
import { KBQ_TITLE_TEXT_REF } from '@koobiq/components/core';
|
|
4
5
|
import { KbqTooltipTrigger, KbqToolTipModule } from '@koobiq/components/tooltip';
|
|
5
|
-
import { Subject, Subscription, throttleTime
|
|
6
|
+
import { Subject, Subscription, throttleTime } from 'rxjs';
|
|
6
7
|
import { debounceTime } from 'rxjs/operators';
|
|
7
8
|
|
|
8
9
|
class KbqTitleDirective extends KbqTooltipTrigger {
|
|
@@ -21,10 +22,11 @@ class KbqTitleDirective extends KbqTooltipTrigger {
|
|
|
21
22
|
constructor(componentInstance) {
|
|
22
23
|
super();
|
|
23
24
|
this.componentInstance = componentInstance;
|
|
25
|
+
this.contentObserver = inject(ContentObserver);
|
|
24
26
|
this.resizeStream = new Subject();
|
|
25
27
|
this.debounceInterval = 100;
|
|
26
28
|
this.resizeSubscription = Subscription.EMPTY;
|
|
27
|
-
this.
|
|
29
|
+
this.contentObserverSubscription = Subscription.EMPTY;
|
|
28
30
|
this.focusMonitorSubscription = Subscription.EMPTY;
|
|
29
31
|
}
|
|
30
32
|
ngAfterViewInit() {
|
|
@@ -34,7 +36,8 @@ class KbqTitleDirective extends KbqTooltipTrigger {
|
|
|
34
36
|
this.resizeSubscription = this.resizeStream
|
|
35
37
|
.pipe(debounceTime(this.debounceInterval))
|
|
36
38
|
.subscribe(() => (this.disabled = !this.isOverflown));
|
|
37
|
-
this.
|
|
39
|
+
this.contentObserverSubscription = this.contentObserver
|
|
40
|
+
.observe(this.parent)
|
|
38
41
|
.pipe(throttleTime(this.debounceInterval))
|
|
39
42
|
.subscribe(() => {
|
|
40
43
|
this.disabled = !this.isOverflown;
|
|
@@ -47,7 +50,7 @@ class KbqTitleDirective extends KbqTooltipTrigger {
|
|
|
47
50
|
ngOnDestroy() {
|
|
48
51
|
super.ngOnDestroy();
|
|
49
52
|
this.resizeSubscription.unsubscribe();
|
|
50
|
-
this.
|
|
53
|
+
this.contentObserverSubscription.unsubscribe();
|
|
51
54
|
this.focusMonitorSubscription.unsubscribe();
|
|
52
55
|
this.focusMonitor.stopMonitoring(this.elementRef);
|
|
53
56
|
}
|
|
@@ -57,18 +60,6 @@ class KbqTitleDirective extends KbqTooltipTrigger {
|
|
|
57
60
|
hideTooltip() {
|
|
58
61
|
this.disabled = true;
|
|
59
62
|
}
|
|
60
|
-
createMutationObserver() {
|
|
61
|
-
return new Observable((observer) => {
|
|
62
|
-
const mutationObserver = new MutationObserver((mutations) => observer.next(mutations));
|
|
63
|
-
mutationObserver.observe(this.parent, {
|
|
64
|
-
characterData: true,
|
|
65
|
-
attributes: false,
|
|
66
|
-
childList: true,
|
|
67
|
-
subtree: true
|
|
68
|
-
});
|
|
69
|
-
return () => mutationObserver.disconnect();
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
63
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqTitleDirective, deps: [{ token: KBQ_TITLE_TEXT_REF, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
73
64
|
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: KbqTitleDirective, selector: "[kbq-title]", host: { listeners: { "mouseenter": "handleElementEnter()", "mouseleave": "hideTooltip()", "window:resize": "resizeStream.next($event)" } }, queries: [{ propertyName: "childContainer", first: true, predicate: ["kbqTitleText"], descendants: true, static: true }, { propertyName: "parentContainer", first: true, predicate: ["kbqTitleContainer"], descendants: true }], exportAs: ["kbqTitle"], usesInheritance: true, ngImport: i0 }); }
|
|
74
65
|
}
|
|
@@ -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 { AfterViewInit
|
|
1
|
+
{"version":3,"file":"koobiq-components-title.mjs","sources":["../../../packages/components/title/title.directive.ts","../../../packages/components/title/title.module.ts","../../../packages/components/title/koobiq-components-title.ts"],"sourcesContent":["import { ContentObserver } from '@angular/cdk/observers';\nimport {\n AfterViewInit,\n ContentChild,\n Directive,\n ElementRef,\n Host,\n inject,\n Inject,\n OnDestroy,\n Optional\n} from '@angular/core';\nimport { KBQ_TITLE_TEXT_REF, KbqTitleTextRef } from '@koobiq/components/core';\nimport { KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { Subject, Subscription, throttleTime } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Directive({\n selector: '[kbq-title]',\n exportAs: 'kbqTitle',\n host: {\n '(mouseenter)': 'handleElementEnter()',\n '(mouseleave)': 'hideTooltip()',\n '(window:resize)': 'resizeStream.next($event)'\n }\n})\nexport class KbqTitleDirective extends KbqTooltipTrigger implements AfterViewInit, OnDestroy {\n private contentObserver = inject(ContentObserver);\n\n get isOverflown(): boolean {\n return this.parent.offsetWidth < this.child.scrollWidth || this.parent.offsetHeight < this.child.scrollHeight;\n }\n\n get viewValue(): string {\n return (this.parent.textContent || '').trim();\n }\n\n get parent(): HTMLElement {\n return this.parentContainer.nativeElement || this.parentContainer;\n }\n\n get child(): HTMLElement {\n return this.childContainer.nativeElement || this.childContainer;\n }\n\n readonly resizeStream = new Subject<Event>();\n\n private readonly debounceInterval: number = 100;\n\n private resizeSubscription = Subscription.EMPTY;\n private contentObserverSubscription = Subscription.EMPTY;\n private focusMonitorSubscription = Subscription.EMPTY;\n\n @ContentChild('kbqTitleText', { descendants: true, static: true })\n private childContainer: ElementRef;\n\n @ContentChild('kbqTitleContainer')\n private parentContainer: ElementRef;\n\n constructor(@Host() @Optional() @Inject(KBQ_TITLE_TEXT_REF) private componentInstance?: KbqTitleTextRef) {\n super();\n }\n\n ngAfterViewInit() {\n this.parentContainer = this.parentContainer || this.componentInstance?.parentTextElement || this.elementRef;\n this.childContainer = this.childContainer || this.componentInstance?.textElement || this.elementRef;\n this.content = this.viewValue;\n\n this.resizeSubscription = this.resizeStream\n .pipe(debounceTime(this.debounceInterval))\n .subscribe(() => (this.disabled = !this.isOverflown));\n\n this.contentObserverSubscription = this.contentObserver\n .observe(this.parent)\n .pipe(throttleTime(this.debounceInterval))\n .subscribe(() => {\n this.disabled = !this.isOverflown;\n this.content = this.viewValue;\n });\n\n this.focusMonitorSubscription = this.focusMonitor\n .monitor(this.elementRef)\n .subscribe((origin) => (origin === 'keyboard' ? this.handleElementEnter() : this.hideTooltip()));\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n\n this.resizeSubscription.unsubscribe();\n this.contentObserverSubscription.unsubscribe();\n this.focusMonitorSubscription.unsubscribe();\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n handleElementEnter() {\n this.disabled = !this.isOverflown;\n }\n\n hideTooltip() {\n this.disabled = true;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqToolTipModule } from '@koobiq/components/tooltip';\nimport { KbqTitleDirective } from './title.directive';\n\n@NgModule({\n imports: [KbqToolTipModule],\n declarations: [KbqTitleDirective],\n exports: [KbqTitleDirective]\n})\nexport class KbqTitleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -27,7 +27,7 @@ class KbqToggleComponent extends KbqToggleMixinBase {
|
|
|
27
27
|
set disabled(value) {
|
|
28
28
|
if (value !== this._disabled) {
|
|
29
29
|
this._disabled = value;
|
|
30
|
-
this.
|
|
30
|
+
this.changeDetectorRef.markForCheck();
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
get checked() {
|
|
@@ -36,14 +36,14 @@ class KbqToggleComponent extends KbqToggleMixinBase {
|
|
|
36
36
|
set checked(value) {
|
|
37
37
|
if (value !== this._checked) {
|
|
38
38
|
this._checked = value;
|
|
39
|
-
this.
|
|
39
|
+
this.changeDetectorRef.markForCheck();
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
-
constructor(elementRef,
|
|
42
|
+
constructor(elementRef, focusMonitor, changeDetectorRef) {
|
|
43
43
|
super(elementRef);
|
|
44
44
|
this.elementRef = elementRef;
|
|
45
|
-
this.
|
|
46
|
-
this.
|
|
45
|
+
this.focusMonitor = focusMonitor;
|
|
46
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
47
47
|
this.big = false;
|
|
48
48
|
this.labelPosition = 'right';
|
|
49
49
|
this.ariaLabel = '';
|
|
@@ -56,13 +56,15 @@ class KbqToggleComponent extends KbqToggleMixinBase {
|
|
|
56
56
|
this.onTouchedCallback = () => { };
|
|
57
57
|
this.onChangeCallback = (_) => { };
|
|
58
58
|
this.id = this.uniqueId;
|
|
59
|
-
|
|
59
|
+
}
|
|
60
|
+
ngAfterViewInit() {
|
|
61
|
+
this.focusMonitor.monitor(this.elementRef.nativeElement, true);
|
|
60
62
|
}
|
|
61
63
|
ngOnDestroy() {
|
|
62
|
-
this.
|
|
64
|
+
this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);
|
|
63
65
|
}
|
|
64
66
|
focus() {
|
|
65
|
-
this.
|
|
67
|
+
this.focusMonitor.focusVia(this.inputElement.nativeElement, 'keyboard');
|
|
66
68
|
}
|
|
67
69
|
getAriaChecked() {
|
|
68
70
|
return this.checked;
|
|
@@ -73,7 +75,7 @@ class KbqToggleComponent extends KbqToggleMixinBase {
|
|
|
73
75
|
this.emitChangeEvent();
|
|
74
76
|
}
|
|
75
77
|
onLabelTextChange() {
|
|
76
|
-
this.
|
|
78
|
+
this.changeDetectorRef.markForCheck();
|
|
77
79
|
}
|
|
78
80
|
onInputClick(event) {
|
|
79
81
|
event.stopPropagation();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"koobiq-components-toggle.mjs","sources":["../../../packages/components/toggle/toggle.component.ts","../../../packages/components/toggle/toggle.component.html","../../../packages/components/toggle/toggle.module.ts","../../../packages/components/toggle/koobiq-components-toggle.ts"],"sourcesContent":["import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n ViewEncapsulation,\n forwardRef\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n CanColor,\n CanColorCtor,\n CanDisable,\n CanDisableCtor,\n HasTabIndex,\n HasTabIndexCtor,\n KbqComponentColors,\n mixinColor,\n mixinDisabled,\n mixinTabIndex\n} from '@koobiq/components/core';\n\nlet nextUniqueId = 0;\n\ntype ToggleLabelPositionType = 'left' | 'right';\n\n/** @docs-private */\nexport class KbqToggleBase {\n constructor(public elementRef: ElementRef) {}\n}\n\n/** @docs-private */\nexport const KbqToggleMixinBase: HasTabIndexCtor & CanDisableCtor & CanColorCtor & typeof KbqToggleBase = mixinTabIndex(\n mixinColor(mixinDisabled(KbqToggleBase), KbqComponentColors.Theme)\n);\n\nexport class KbqToggleChange {\n source: KbqToggleComponent;\n checked: boolean;\n}\n\n@Component({\n selector: 'kbq-toggle',\n exportAs: 'kbqToggle',\n templateUrl: './toggle.component.html',\n styleUrls: ['./toggle.scss', './toggle-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: ['color', 'tabIndex'],\n host: {\n class: 'kbq-toggle',\n '[class.kbq-toggle_big]': 'big',\n '[id]': 'id',\n '[attr.id]': 'id',\n '[class.kbq-disabled]': 'disabled',\n '[class.kbq-active]': 'checked'\n },\n animations: [\n trigger('switch', [\n state('true', style({ left: 'calc(100% - 11px)' })),\n state('false', style({ left: '3px' })),\n transition('true <=> false', animate('150ms'))])\n\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KbqToggleComponent),\n multi: true\n }\n ]\n})\nexport class KbqToggleComponent\n extends KbqToggleMixinBase\n implements ControlValueAccessor, CanColor, CanDisable, HasTabIndex, OnDestroy\n{\n @Input() big: boolean = false;\n\n @ViewChild('input', { static: false }) inputElement: ElementRef;\n\n @Input() labelPosition: ToggleLabelPositionType = 'right';\n\n @Input('aria-label') ariaLabel: string = '';\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\n\n @Input() id: string;\n\n get inputId(): string {\n return `${this.id || this.uniqueId}-input`;\n }\n\n @Input() name: string | null = null;\n\n @Input() value: string;\n\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(value: any) {\n if (value !== this._disabled) {\n this._disabled = value;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _disabled: boolean = false;\n\n get checked() {\n return this._checked;\n }\n\n @Input()\n set checked(value: boolean) {\n if (value !== this._checked) {\n this._checked = value;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _checked: boolean = false;\n\n @Output() readonly change: EventEmitter<KbqToggleChange> = new EventEmitter<KbqToggleChange>();\n\n private uniqueId: string = `kbq-toggle-${++nextUniqueId}`;\n\n constructor(\n public elementRef: ElementRef,\n private _focusMonitor: FocusMonitor,\n private _changeDetectorRef: ChangeDetectorRef\n ) {\n super(elementRef);\n\n this.id = this.uniqueId;\n\n this._focusMonitor.monitor(this.elementRef.nativeElement, true);\n }\n\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n\n focus(): void {\n this._focusMonitor.focusVia(this.inputElement.nativeElement, 'keyboard');\n }\n\n getAriaChecked(): boolean {\n return this.checked;\n }\n\n onChangeEvent(event: Event) {\n event.stopPropagation();\n\n this.updateModelValue();\n this.emitChangeEvent();\n }\n\n onLabelTextChange() {\n this._changeDetectorRef.markForCheck();\n }\n\n onInputClick(event: MouseEvent) {\n event.stopPropagation();\n }\n\n writeValue(value: any) {\n this.checked = !!value;\n }\n\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n private onTouchedCallback = () => {};\n\n private onChangeCallback = (_: any) => {};\n\n private updateModelValue() {\n this._checked = !this.checked;\n this.onTouchedCallback();\n }\n\n private emitChangeEvent() {\n const event = new KbqToggleChange();\n event.source = this;\n event.checked = this.checked;\n\n this.onChangeCallback(this.checked);\n this.change.emit(event);\n }\n}\n","<label class=\"kbq-toggle-layout\" [attr.for]=\"inputId\" [class.left]=\"labelPosition === 'left'\">\n <input\n #input\n role=\"switch\"\n type=\"checkbox\"\n class=\"kbq-toggle-input cdk-visually-hidden\"\n [attr.aria-checked]=\"getAriaChecked()\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [id]=\"inputId\"\n [tabIndex]=\"tabIndex\"\n (change)=\"onChangeEvent($event)\"\n (click)=\"onInputClick($event)\"\n />\n <div class=\"kbq-toggle-bar-container\">\n <div class=\"kbq-toggle-bar\">\n <div class=\"kbq-toggle__circle\" [@switch]=\"checked\"></div>\n </div>\n </div>\n\n <div class=\"kbq-toggle__content\" [class.left]=\"labelPosition === 'left'\" [class.right]=\"labelPosition === 'right'\">\n <span class=\"kbq-toggle-label\" (cdkObserveContent)=\"onLabelTextChange()\">\n <ng-content />\n </span>\n\n <ng-content select=\"kbq-hint\" />\n </div>\n</label>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { NgModule } from '@angular/core';\nimport { KbqCommonModule } from '@koobiq/components/core';\nimport { KbqToggleComponent } from './toggle.component';\n\n@NgModule({\n imports: [A11yModule, KbqCommonModule],\n exports: [KbqToggleComponent],\n declarations: [KbqToggleComponent]\n})\nexport class KbqToggleModule {}\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-toggle.mjs","sources":["../../../packages/components/toggle/toggle.component.ts","../../../packages/components/toggle/toggle.component.html","../../../packages/components/toggle/toggle.module.ts","../../../packages/components/toggle/koobiq-components-toggle.ts"],"sourcesContent":["import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n ViewEncapsulation,\n forwardRef\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n CanColor,\n CanColorCtor,\n CanDisable,\n CanDisableCtor,\n HasTabIndex,\n HasTabIndexCtor,\n KbqComponentColors,\n mixinColor,\n mixinDisabled,\n mixinTabIndex\n} from '@koobiq/components/core';\n\nlet nextUniqueId = 0;\n\ntype ToggleLabelPositionType = 'left' | 'right';\n\n/** @docs-private */\nexport class KbqToggleBase {\n constructor(public elementRef: ElementRef) {}\n}\n\n/** @docs-private */\nexport const KbqToggleMixinBase: HasTabIndexCtor & CanDisableCtor & CanColorCtor & typeof KbqToggleBase = mixinTabIndex(\n mixinColor(mixinDisabled(KbqToggleBase), KbqComponentColors.Theme)\n);\n\nexport class KbqToggleChange {\n source: KbqToggleComponent;\n checked: boolean;\n}\n\n@Component({\n selector: 'kbq-toggle',\n exportAs: 'kbqToggle',\n templateUrl: './toggle.component.html',\n styleUrls: ['./toggle.scss', './toggle-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: ['color', 'tabIndex'],\n host: {\n class: 'kbq-toggle',\n '[class.kbq-toggle_big]': 'big',\n '[id]': 'id',\n '[attr.id]': 'id',\n '[class.kbq-disabled]': 'disabled',\n '[class.kbq-active]': 'checked'\n },\n animations: [\n trigger('switch', [\n state('true', style({ left: 'calc(100% - 11px)' })),\n state('false', style({ left: '3px' })),\n transition('true <=> false', animate('150ms'))])\n\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KbqToggleComponent),\n multi: true\n }\n ]\n})\nexport class KbqToggleComponent\n extends KbqToggleMixinBase\n implements AfterViewInit, ControlValueAccessor, CanColor, CanDisable, HasTabIndex, OnDestroy\n{\n @Input() big: boolean = false;\n\n @ViewChild('input', { static: false }) inputElement: ElementRef;\n\n @Input() labelPosition: ToggleLabelPositionType = 'right';\n\n @Input('aria-label') ariaLabel: string = '';\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\n\n @Input() id: string;\n\n get inputId(): string {\n return `${this.id || this.uniqueId}-input`;\n }\n\n @Input() name: string | null = null;\n\n @Input() value: string;\n\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(value: any) {\n if (value !== this._disabled) {\n this._disabled = value;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n private _disabled: boolean = false;\n\n get checked() {\n return this._checked;\n }\n\n @Input()\n set checked(value: boolean) {\n if (value !== this._checked) {\n this._checked = value;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n private _checked: boolean = false;\n\n @Output() readonly change: EventEmitter<KbqToggleChange> = new EventEmitter<KbqToggleChange>();\n\n private uniqueId: string = `kbq-toggle-${++nextUniqueId}`;\n\n constructor(\n public elementRef: ElementRef,\n private focusMonitor: FocusMonitor,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n super(elementRef);\n\n this.id = this.uniqueId;\n }\n\n ngAfterViewInit(): void {\n this.focusMonitor.monitor(this.elementRef.nativeElement, true);\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n\n focus(): void {\n this.focusMonitor.focusVia(this.inputElement.nativeElement, 'keyboard');\n }\n\n getAriaChecked(): boolean {\n return this.checked;\n }\n\n onChangeEvent(event: Event) {\n event.stopPropagation();\n\n this.updateModelValue();\n this.emitChangeEvent();\n }\n\n onLabelTextChange() {\n this.changeDetectorRef.markForCheck();\n }\n\n onInputClick(event: MouseEvent) {\n event.stopPropagation();\n }\n\n writeValue(value: any) {\n this.checked = !!value;\n }\n\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n private onTouchedCallback = () => {};\n\n private onChangeCallback = (_: any) => {};\n\n private updateModelValue() {\n this._checked = !this.checked;\n this.onTouchedCallback();\n }\n\n private emitChangeEvent() {\n const event = new KbqToggleChange();\n event.source = this;\n event.checked = this.checked;\n\n this.onChangeCallback(this.checked);\n this.change.emit(event);\n }\n}\n","<label class=\"kbq-toggle-layout\" [attr.for]=\"inputId\" [class.left]=\"labelPosition === 'left'\">\n <input\n #input\n role=\"switch\"\n type=\"checkbox\"\n class=\"kbq-toggle-input cdk-visually-hidden\"\n [attr.aria-checked]=\"getAriaChecked()\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [id]=\"inputId\"\n [tabIndex]=\"tabIndex\"\n (change)=\"onChangeEvent($event)\"\n (click)=\"onInputClick($event)\"\n />\n <div class=\"kbq-toggle-bar-container\">\n <div class=\"kbq-toggle-bar\">\n <div class=\"kbq-toggle__circle\" [@switch]=\"checked\"></div>\n </div>\n </div>\n\n <div class=\"kbq-toggle__content\" [class.left]=\"labelPosition === 'left'\" [class.right]=\"labelPosition === 'right'\">\n <span class=\"kbq-toggle-label\" (cdkObserveContent)=\"onLabelTextChange()\">\n <ng-content />\n </span>\n\n <ng-content select=\"kbq-hint\" />\n </div>\n</label>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { NgModule } from '@angular/core';\nimport { KbqCommonModule } from '@koobiq/components/core';\nimport { KbqToggleComponent } from './toggle.component';\n\n@NgModule({\n imports: [A11yModule, KbqCommonModule],\n exports: [KbqToggleComponent],\n declarations: [KbqToggleComponent]\n})\nexport class KbqToggleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { NgClass, NgTemplateOutlet } from '@angular/common';
|
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
6
|
import { InjectionToken, Component, ViewEncapsulation, ChangeDetectionStrategy, Inject, ViewChild, inject, EventEmitter, booleanAttribute, numberAttribute, Directive, Input, Output, NgModule } from '@angular/core';
|
|
7
7
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
8
|
-
import { KbqPopUp, applyPopupMargins, KbqPopUpTrigger, PopUpTriggers, KbqComponentColors,
|
|
8
|
+
import { KbqPopUp, applyPopupMargins, KbqPopUpTrigger, KBQ_PARENT_POPUP, PopUpTriggers, KbqComponentColors, POSITION_TO_CSS_MAP, PopUpPlacements } from '@koobiq/components/core';
|
|
9
9
|
import { merge, EMPTY } from 'rxjs';
|
|
10
10
|
import { trigger, state, style, transition, animate, keyframes } from '@angular/animations';
|
|
11
11
|
|
|
@@ -90,6 +90,31 @@ const KBQ_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER = {
|
|
|
90
90
|
useFactory: kbqTooltipScrollStrategyFactory
|
|
91
91
|
};
|
|
92
92
|
class KbqTooltipTrigger extends KbqPopUpTrigger {
|
|
93
|
+
constructor() {
|
|
94
|
+
super(...arguments);
|
|
95
|
+
this.scrollStrategy = inject(KBQ_TOOLTIP_SCROLL_STRATEGY);
|
|
96
|
+
this.parentPopup = inject(KBQ_PARENT_POPUP, { optional: true });
|
|
97
|
+
this.focusMonitor = inject(FocusMonitor);
|
|
98
|
+
/**
|
|
99
|
+
* Positions the tooltip relative to the mouse cursor. Only available for top and bottom kbqPlacement.
|
|
100
|
+
* Does not work with kbqPlacementPriority.
|
|
101
|
+
*/
|
|
102
|
+
this.relativeToPointer = false;
|
|
103
|
+
this.enterDelay = 400;
|
|
104
|
+
this.leaveDelay = 0;
|
|
105
|
+
this._trigger = `${PopUpTriggers.Hover}, ${PopUpTriggers.Focus}`;
|
|
106
|
+
this._context = null;
|
|
107
|
+
this._color = KbqComponentColors.Contrast;
|
|
108
|
+
this.arrow = true;
|
|
109
|
+
this.offset = null;
|
|
110
|
+
this.placementChange = new EventEmitter();
|
|
111
|
+
this.visibleChange = new EventEmitter();
|
|
112
|
+
this.originSelector = '.kbq-tooltip';
|
|
113
|
+
this.overlayConfig = {
|
|
114
|
+
panelClass: 'kbq-tooltip-panel'
|
|
115
|
+
};
|
|
116
|
+
this.modifier = TooltipModifier.Default;
|
|
117
|
+
}
|
|
93
118
|
get tooltipVisible() {
|
|
94
119
|
return this.visible;
|
|
95
120
|
}
|
|
@@ -164,30 +189,7 @@ class KbqTooltipTrigger extends KbqPopUpTrigger {
|
|
|
164
189
|
get hasClickInTrigger() {
|
|
165
190
|
return this.trigger.includes(PopUpTriggers.Click);
|
|
166
191
|
}
|
|
167
|
-
|
|
168
|
-
super();
|
|
169
|
-
this.scrollStrategy = inject(KBQ_TOOLTIP_SCROLL_STRATEGY);
|
|
170
|
-
this.parentPopup = inject(KBQ_PARENT_POPUP, { optional: true });
|
|
171
|
-
this.focusMonitor = inject(FocusMonitor);
|
|
172
|
-
/**
|
|
173
|
-
* Positions the tooltip relative to the mouse cursor. Only available for top and bottom kbqPlacement.
|
|
174
|
-
* Does not work with kbqPlacementPriority.
|
|
175
|
-
*/
|
|
176
|
-
this.relativeToPointer = false;
|
|
177
|
-
this.enterDelay = 400;
|
|
178
|
-
this.leaveDelay = 0;
|
|
179
|
-
this._trigger = `${PopUpTriggers.Hover}, ${PopUpTriggers.Focus}`;
|
|
180
|
-
this._context = null;
|
|
181
|
-
this._color = KbqComponentColors.Contrast;
|
|
182
|
-
this.arrow = true;
|
|
183
|
-
this.offset = null;
|
|
184
|
-
this.placementChange = new EventEmitter();
|
|
185
|
-
this.visibleChange = new EventEmitter();
|
|
186
|
-
this.originSelector = '.kbq-tooltip';
|
|
187
|
-
this.overlayConfig = {
|
|
188
|
-
panelClass: 'kbq-tooltip-panel'
|
|
189
|
-
};
|
|
190
|
-
this.modifier = TooltipModifier.Default;
|
|
192
|
+
ngAfterViewInit() {
|
|
191
193
|
this.parentPopup?.closedStream.pipe(takeUntilDestroyed()).subscribe(() => this.hide());
|
|
192
194
|
this.focusMonitor.monitor(this.elementRef.nativeElement);
|
|
193
195
|
}
|
|
@@ -225,6 +227,7 @@ class KbqTooltipTrigger extends KbqPopUpTrigger {
|
|
|
225
227
|
this.instance.arrow = this.arrow;
|
|
226
228
|
this.instance.offset = this.offset;
|
|
227
229
|
this.instance.detectChanges();
|
|
230
|
+
this.updatePosition(true);
|
|
228
231
|
}
|
|
229
232
|
closingActions() {
|
|
230
233
|
return merge(this.hasClickInTrigger ? this.overlayRef.outsidePointerEvents() : EMPTY, this.overlayRef.detachments());
|
|
@@ -261,7 +264,7 @@ class KbqTooltipTrigger extends KbqPopUpTrigger {
|
|
|
261
264
|
}
|
|
262
265
|
this.strategy.setOrigin(point);
|
|
263
266
|
}
|
|
264
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqTooltipTrigger, deps:
|
|
267
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqTooltipTrigger, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
265
268
|
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.6", type: KbqTooltipTrigger, isStandalone: true, selector: "[kbqTooltip]", inputs: { tooltipVisible: ["kbqVisible", "tooltipVisible"], tooltipPlacement: ["kbqPlacement", "tooltipPlacement"], relativeToPointer: ["kbqRelativeToPointer", "relativeToPointer", booleanAttribute], tooltipPlacementPriority: ["kbqPlacementPriority", "tooltipPlacementPriority"], content: ["kbqTooltip", "content"], disabled: ["kbqTooltipDisabled", "disabled"], enterDelay: ["kbqEnterDelay", "enterDelay"], leaveDelay: ["kbqLeaveDelay", "leaveDelay"], trigger: ["kbqTrigger", "trigger"], customClass: ["kbqTooltipClass", "customClass"], context: ["kbqTooltipContext", "context"], color: ["kbqTooltipColor", "color"], arrow: ["kbqTooltipArrow", "arrow", booleanAttribute], offset: ["kbqTooltipOffset", "offset", numberAttribute] }, outputs: { placementChange: "kbqPlacementChange", visibleChange: "kbqVisibleChange" }, host: { listeners: { "keydown": "handleKeydown($event)", "touchend": "handleTouchend()" }, properties: { "class.kbq-tooltip_open": "isOpen" } }, exportAs: ["kbqTooltip"], usesInheritance: true, ngImport: i0 }); }
|
|
266
269
|
}
|
|
267
270
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqTooltipTrigger, decorators: [{
|
|
@@ -276,7 +279,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
276
279
|
'(touchend)': 'handleTouchend()'
|
|
277
280
|
}
|
|
278
281
|
}]
|
|
279
|
-
}],
|
|
282
|
+
}], propDecorators: { tooltipVisible: [{
|
|
280
283
|
type: Input,
|
|
281
284
|
args: ['kbqVisible']
|
|
282
285
|
}], tooltipPlacement: [{
|