UNPKG

@taiga-ui/kit

Version:

Taiga UI Angular main components kit

108 lines 14.1 kB
import { __decorate } from "tslib"; import { ContentChildren, Directive, forwardRef, inject, Input, } from '@angular/core'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { WaMutationObserverService, WA_MUTATION_OBSERVER_INIT, } from '@ng-web-apis/mutation-observer'; import { EMPTY_QUERY } from '@taiga-ui/cdk/constants'; import { tuiZonefree } from '@taiga-ui/cdk/observables'; import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom'; import { tuiPure, tuiPx } from '@taiga-ui/cdk/utils/miscellaneous'; import { TuiTab } from './tab.directive'; import { TuiTabsDirective } from './tabs.directive'; import { TUI_TABS_OPTIONS } from './tabs.options'; import * as i0 from "@angular/core"; import * as i1 from "./tabs.directive"; class TuiTabsHorizontal { constructor() { this.el = tuiInjectElement(); this.options = inject(TUI_TABS_OPTIONS); this.tabs = inject(TuiTabsDirective); this.children = EMPTY_QUERY; this.sub = inject(WaMutationObserverService, { self: true }) .pipe(tuiZonefree(), takeUntilDestroyed()) .subscribe(() => this.refresh()); this.underline = this.options.underline; } ngAfterViewChecked() { this.scrollTo(this.tabs.activeItemIndex); this.refresh(); } onKeyDownArrow(current, step) { this.tabs.moveFocus(current, step); } refresh() { const { activeElement } = this.tabs; if (activeElement && !activeElement.isConnected) { return; } const { offsetLeft = 0, offsetWidth = 0 } = activeElement || {}; this.el.style.setProperty('--t-left', tuiPx(offsetLeft)); this.el.style.setProperty('--t-width', tuiPx(offsetWidth)); } scrollTo(index) { const element = this.tabs.tabs[index]; if (!element) { return; } const { offsetLeft, offsetWidth } = element; if (offsetLeft < this.el.scrollLeft) { this.el.scrollLeft = offsetLeft; } if (offsetLeft + offsetWidth > this.el.scrollLeft + this.el.offsetWidth) { this.el.scrollLeft = offsetLeft + offsetWidth - this.el.offsetWidth; } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiTabsHorizontal, deps: [], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiTabsHorizontal, isStandalone: true, selector: "tui-tabs:not([vertical]), nav[tuiTabs]:not([vertical])", inputs: { underline: "underline" }, host: { listeners: { "animationend": "refresh()", "keydown.arrowRight.prevent": "onKeyDownArrow($event.target, 1)", "keydown.arrowLeft.prevent": "onKeyDownArrow($event.target, -1)" }, properties: { "class._underline": "underline", "style.--t-color": "underline === true ? 'var(--tui-background-accent-1)' : underline" } }, providers: [ WaMutationObserverService, { provide: WA_MUTATION_OBSERVER_INIT, useValue: { childList: true, characterData: true, subtree: true, }, }, ], queries: [{ propertyName: "children", predicate: i0.forwardRef(function () { return TuiTab; }) }], hostDirectives: [{ directive: i1.TuiTabsDirective, inputs: ["activeItemIndex", "activeItemIndex", "size", "size"], outputs: ["activeItemIndexChange", "activeItemIndexChange"] }], ngImport: i0 }); } } __decorate([ tuiPure ], TuiTabsHorizontal.prototype, "scrollTo", null); export { TuiTabsHorizontal }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiTabsHorizontal, decorators: [{ type: Directive, args: [{ standalone: true, selector: 'tui-tabs:not([vertical]), nav[tuiTabs]:not([vertical])', providers: [ WaMutationObserverService, { provide: WA_MUTATION_OBSERVER_INIT, useValue: { childList: true, characterData: true, subtree: true, }, }, ], hostDirectives: [ { directive: TuiTabsDirective, inputs: ['activeItemIndex', 'size'], outputs: ['activeItemIndexChange'], }, ], host: { '[class._underline]': 'underline', '[style.--t-color]': "underline === true ? 'var(--tui-background-accent-1)' : underline", '(animationend)': 'refresh()', '(keydown.arrowRight.prevent)': 'onKeyDownArrow($event.target, 1)', '(keydown.arrowLeft.prevent)': 'onKeyDownArrow($event.target, -1)', }, }] }], propDecorators: { children: [{ type: ContentChildren, args: [forwardRef(() => TuiTab)] }], underline: [{ type: Input }], scrollTo: [] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy1ob3Jpem9udGFsLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL3RhYnMvdGFicy1ob3Jpem9udGFsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVILGVBQWUsRUFDZixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEdBRVIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUNILHlCQUF5QixFQUN6Qix5QkFBeUIsR0FDNUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFFakUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7QUFFaEQsTUE4QmEsaUJBQWlCO0lBOUI5QjtRQStCcUIsT0FBRSxHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ25DLFNBQUksR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUc5QixhQUFRLEdBQXVCLFdBQVcsQ0FBQztRQUUzQyxRQUFHLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixFQUFFLEVBQUMsSUFB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RSxNQUFNLENBQUM7NEJBQ25DLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixDQUFDO3lCQUNyQztxQkFDSjtvQkFDRCxJQUFJLEVBQUU7d0JBQ0Ysb0JBQW9CLEVBQUUsV0FBVzt3QkFDakMsbUJBQW1CLEVBQ2YsbUVBQW1FO3dCQUN2RSxnQkFBZ0IsRUFBRSxXQUFXO3dCQUM3Qiw4QkFBOEIsRUFBRSxrQ0FBa0M7d0JBQ2xFLDZCQUE2QixFQUFFLG1DQUFtQztxQkFDckU7aUJBQ0o7OEJBT3NCLFFBQVE7c0JBRDFCLGVBQWU7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQztnQkFRbEMsU0FBUztzQkFEZixLQUFLO2dCQTBCRSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICB0eXBlIEFmdGVyVmlld0NoZWNrZWQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERpcmVjdGl2ZSxcbiAgICBmb3J3YXJkUmVmLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICB0eXBlIFF1ZXJ5TGlzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtcbiAgICBXYU11dGF0aW9uT2JzZXJ2ZXJTZXJ2aWNlLFxuICAgIFdBX01VVEFUSU9OX09CU0VSVkVSX0lOSVQsXG59IGZyb20gJ0BuZy13ZWItYXBpcy9tdXRhdGlvbi1vYnNlcnZlcic7XG5pbXBvcnQge0VNUFRZX1FVRVJZfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5pbXBvcnQge3R1aVpvbmVmcmVlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL29ic2VydmFibGVzJztcbmltcG9ydCB7dHVpSW5qZWN0RWxlbWVudH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9kb20nO1xuaW1wb3J0IHt0dWlQdXJlLCB0dWlQeH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcblxuaW1wb3J0IHtUdWlUYWJ9IGZyb20gJy4vdGFiLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1R1aVRhYnNEaXJlY3RpdmV9IGZyb20gJy4vdGFicy5kaXJlY3RpdmUnO1xuaW1wb3J0IHtUVUlfVEFCU19PUFRJT05TfSBmcm9tICcuL3RhYnMub3B0aW9ucyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICd0dWktdGFiczpub3QoW3ZlcnRpY2FsXSksIG5hdlt0dWlUYWJzXTpub3QoW3ZlcnRpY2FsXSknLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBXYU11dGF0aW9uT2JzZXJ2ZXJTZXJ2aWNlLFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBXQV9NVVRBVElPTl9PQlNFUlZFUl9JTklULFxuICAgICAgICAgICAgdXNlVmFsdWU6IHtcbiAgICAgICAgICAgICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICAgICAgICAgICAgY2hhcmFjdGVyRGF0YTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICBdLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGRpcmVjdGl2ZTogVHVpVGFic0RpcmVjdGl2ZSxcbiAgICAgICAgICAgIGlucHV0czogWydhY3RpdmVJdGVtSW5kZXgnLCAnc2l6ZSddLFxuICAgICAgICAgICAgb3V0cHV0czogWydhY3RpdmVJdGVtSW5kZXhDaGFuZ2UnXSxcbiAgICAgICAgfSxcbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5fdW5kZXJsaW5lXSc6ICd1bmRlcmxpbmUnLFxuICAgICAgICAnW3N0eWxlLi0tdC1jb2xvcl0nOlxuICAgICAgICAgICAgXCJ1bmRlcmxpbmUgPT09IHRydWUgPyAndmFyKC0tdHVpLWJhY2tncm91bmQtYWNjZW50LTEpJyA6IHVuZGVybGluZVwiLFxuICAgICAgICAnKGFuaW1hdGlvbmVuZCknOiAncmVmcmVzaCgpJyxcbiAgICAgICAgJyhrZXlkb3duLmFycm93UmlnaHQucHJldmVudCknOiAnb25LZXlEb3duQXJyb3coJGV2ZW50LnRhcmdldCwgMSknLFxuICAgICAgICAnKGtleWRvd24uYXJyb3dMZWZ0LnByZXZlbnQpJzogJ29uS2V5RG93bkFycm93KCRldmVudC50YXJnZXQsIC0xKScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpVGFic0hvcml6b250YWwgaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsID0gdHVpSW5qZWN0RWxlbWVudCgpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9ucyA9IGluamVjdChUVUlfVEFCU19PUFRJT05TKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRhYnMgPSBpbmplY3QoVHVpVGFic0RpcmVjdGl2ZSk7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gVHVpVGFiKSlcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2hpbGRyZW46IFF1ZXJ5TGlzdDx1bmtub3duPiA9IEVNUFRZX1FVRVJZO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN1YiA9IGluamVjdChXYU11dGF0aW9uT2JzZXJ2ZXJTZXJ2aWNlLCB7c2VsZjogdHJ1ZX0pXG4gICAgICAgIC5waXBlKHR1aVpvbmVmcmVlKCksIHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVmcmVzaCgpKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHVuZGVybGluZSA9IHRoaXMub3B0aW9ucy51bmRlcmxpbmU7XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNjcm9sbFRvKHRoaXMudGFicy5hY3RpdmVJdGVtSW5kZXgpO1xuICAgICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25LZXlEb3duQXJyb3coY3VycmVudDogSFRNTEVsZW1lbnQsIHN0ZXA6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnRhYnMubW92ZUZvY3VzKGN1cnJlbnQsIHN0ZXApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZWZyZXNoKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB7YWN0aXZlRWxlbWVudH0gPSB0aGlzLnRhYnM7XG5cbiAgICAgICAgaWYgKGFjdGl2ZUVsZW1lbnQgJiYgIWFjdGl2ZUVsZW1lbnQuaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHtvZmZzZXRMZWZ0ID0gMCwgb2Zmc2V0V2lkdGggPSAwfSA9IGFjdGl2ZUVsZW1lbnQgfHwge307XG5cbiAgICAgICAgdGhpcy5lbC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS10LWxlZnQnLCB0dWlQeChvZmZzZXRMZWZ0KSk7XG4gICAgICAgIHRoaXMuZWwuc3R5bGUuc2V0UHJvcGVydHkoJy0tdC13aWR0aCcsIHR1aVB4KG9mZnNldFdpZHRoKSk7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIHNjcm9sbFRvKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMudGFicy50YWJzW2luZGV4XTtcblxuICAgICAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHtvZmZzZXRMZWZ0LCBvZmZzZXRXaWR0aH0gPSBlbGVtZW50O1xuXG4gICAgICAgIGlmIChvZmZzZXRMZWZ0IDwgdGhpcy5lbC5zY3JvbGxMZWZ0KSB7XG4gICAgICAgICAgICB0aGlzLmVsLnNjcm9sbExlZnQgPSBvZmZzZXRMZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9mZnNldExlZnQgKyBvZmZzZXRXaWR0aCA+IHRoaXMuZWwuc2Nyb2xsTGVmdCArIHRoaXMuZWwub2Zmc2V0V2lkdGgpIHtcbiAgICAgICAgICAgIHRoaXMuZWwuc2Nyb2xsTGVmdCA9IG9mZnNldExlZnQgKyBvZmZzZXRXaWR0aCAtIHRoaXMuZWwub2Zmc2V0V2lkdGg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=