UNPKG

@taiga-ui/layout

Version:

A package with Taiga UI layout components

97 lines 15.4 kB
import { ChangeDetectionStrategy, Component, inject, TemplateRef, ViewChild, } from '@angular/core'; import { TuiActiveZone } from '@taiga-ui/cdk/directives/active-zone'; import { TuiAnimated } from '@taiga-ui/cdk/directives/animated'; import { tuiIsHTMLElement } from '@taiga-ui/cdk/utils/dom'; import { tuiButtonOptionsProvider } from '@taiga-ui/core/components/button'; import { TuiScrollbar } from '@taiga-ui/core/components/scrollbar'; import { TUI_DROPDOWN_COMPONENT, tuiDropdown, TuiDropdownDirective, TuiDropdownOpen, TuiWithDropdownOpen, } from '@taiga-ui/core/directives/dropdown'; import { TuiIcons } from '@taiga-ui/core/directives/icons'; import { TUI_ANIMATIONS_SPEED, TUI_COMMON_ICONS, TUI_ICON_END, } from '@taiga-ui/core/tokens'; import { tuiToAnimationOptions } from '@taiga-ui/core/utils/miscellaneous'; import { TUI_LAYOUT_ICONS } from '@taiga-ui/layout/tokens'; import { PolymorpheusOutlet } from '@taiga-ui/polymorpheus'; import * as i0 from "@angular/core"; import * as i1 from "@taiga-ui/cdk/directives/active-zone"; import * as i2 from "@taiga-ui/cdk/directives/animated"; import * as i3 from "@taiga-ui/core/directives/dropdown"; class TuiDrawerComponent { constructor() { this.directive = inject(TuiDropdownDirective); this.animation = tuiToAnimationOptions(inject(TUI_ANIMATIONS_SPEED)); this.top = tuiIsHTMLElement(this.directive.el.offsetParent) && tuiIsHTMLElement(this.directive.el.offsetParent.offsetParent) ? this.directive.el.offsetParent.getBoundingClientRect().bottom - Math.max(this.directive.el.offsetParent.offsetParent.getBoundingClientRect().top, 0) : 0; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiDrawerComponent, isStandalone: true, selector: "ng-component", host: { attributes: { "tuiTheme": "dark" }, properties: { "style.top.px": "top" } }, hostDirectives: [{ directive: i1.TuiActiveZone }, { directive: i2.TuiAnimated }], ngImport: i0, template: ` <tui-scrollbar [style.height.%]="100"> <ng-container *polymorpheusOutlet="directive.content" /> </tui-scrollbar> `, isInline: true, styles: [":host{position:fixed;left:0;right:0;bottom:0;background:var(--tui-theme-color, #000);inline-size:14.375rem;color:var(--tui-text-primary);pointer-events:auto;--tui-from: translateX(-100%)}:host.tui-enter,:host.tui-leave{animation-name:tuiSlide}:host ::ng-deep tui-data-list [tuiOption]{justify-content:flex-start;gap:.75rem;margin:0;font:var(--tui-font-text-ui-s);font-weight:700}:host ::ng-deep tui-data-list tui-opt-group:before{font:var(--tui-font-text-xs);text-transform:uppercase;color:var(--tui-text-tertiary)}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "component", type: TuiScrollbar, selector: "tui-scrollbar", inputs: ["hidden"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDrawerComponent, decorators: [{ type: Component, args: [{ standalone: true, imports: [PolymorpheusOutlet, TuiScrollbar], template: ` <tui-scrollbar [style.height.%]="100"> <ng-container *polymorpheusOutlet="directive.content" /> </tui-scrollbar> `, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [TuiActiveZone, TuiAnimated], host: { tuiTheme: 'dark', '[style.top.px]': 'top', }, styles: [":host{position:fixed;left:0;right:0;bottom:0;background:var(--tui-theme-color, #000);inline-size:14.375rem;color:var(--tui-text-primary);pointer-events:auto;--tui-from: translateX(-100%)}:host.tui-enter,:host.tui-leave{animation-name:tuiSlide}:host ::ng-deep tui-data-list [tuiOption]{justify-content:flex-start;gap:.75rem;margin:0;font:var(--tui-font-text-ui-s);font-weight:700}:host ::ng-deep tui-data-list tui-opt-group:before{font:var(--tui-font-text-xs);text-transform:uppercase;color:var(--tui-text-tertiary)}\n"] }] }] }); class TuiDrawerDirective { constructor() { this.x = inject(TUI_COMMON_ICONS).close; this.icons = inject(TuiIcons); this.dropdown = tuiDropdown(null); this.open = inject(TuiDropdownOpen); } ngDoCheck() { this.icons.iconStart.set(this.open.tuiDropdownOpen ? this.x : ''); } set template(template) { this.dropdown.set(template); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDrawerDirective, deps: [], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiDrawerDirective, isStandalone: true, selector: "[tuiIconButton][tuiNavigationDrawer]", providers: [ tuiButtonOptionsProvider({ appearance: 'secondary-grayscale' }), { provide: TUI_ICON_END, useFactory: () => inject(TUI_LAYOUT_ICONS).grid, }, { provide: TUI_DROPDOWN_COMPONENT, useValue: TuiDrawerComponent, }, ], viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], hostDirectives: [{ directive: i3.TuiDropdownDirective }, { directive: i3.TuiWithDropdownOpen }], ngImport: i0, template: '<ng-template><ng-content /></ng-template>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); } } export { TuiDrawerDirective }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDrawerDirective, decorators: [{ type: Component, args: [{ standalone: true, // TODO: move to host directives selector: '[tuiIconButton][tuiNavigationDrawer]', template: '<ng-template><ng-content /></ng-template>', changeDetection: ChangeDetectionStrategy.OnPush, providers: [ tuiButtonOptionsProvider({ appearance: 'secondary-grayscale' }), { provide: TUI_ICON_END, useFactory: () => inject(TUI_LAYOUT_ICONS).grid, }, { provide: TUI_DROPDOWN_COMPONENT, useValue: TuiDrawerComponent, }, ], hostDirectives: [TuiDropdownDirective, TuiWithDropdownOpen], }] }], propDecorators: { template: [{ type: ViewChild, args: [TemplateRef] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xheW91dC9jb21wb25lbnRzL25hdmlnYXRpb24vZHJhd2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzlELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRSxPQUFPLEVBQ0gsc0JBQXNCLEVBQ3RCLFdBQVcsRUFDWCxvQkFBb0IsRUFDcEIsZUFBZSxFQUNmLG1CQUFtQixHQUN0QixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6RCxPQUFPLEVBQ0gsb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQixZQUFZLEdBQ2YsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUV6RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFFMUQsTUFnQk0sa0JBQWtCO0lBaEJ4QjtRQWlCdUIsY0FBUyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3pDLGNBQVMsR0FBRyxx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QyxvQkFBb0IsRUFBRSxtQkFBbUIsQ0FBQztpQkFDOUQ7OEJBWWlCLFFBQVE7c0JBRHJCLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtEb0NoZWNrfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGluamVjdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUdWlBY3RpdmVab25lfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvYWN0aXZlLXpvbmUnO1xuaW1wb3J0IHtUdWlBbmltYXRlZH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL2FuaW1hdGVkJztcbmltcG9ydCB7dHVpSXNIVE1MRWxlbWVudH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9kb20nO1xuaW1wb3J0IHt0dWlCdXR0b25PcHRpb25zUHJvdmlkZXJ9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7VHVpU2Nyb2xsYmFyfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3Njcm9sbGJhcic7XG5pbXBvcnQge1xuICAgIFRVSV9EUk9QRE9XTl9DT01QT05FTlQsXG4gICAgdHVpRHJvcGRvd24sXG4gICAgVHVpRHJvcGRvd25EaXJlY3RpdmUsXG4gICAgVHVpRHJvcGRvd25PcGVuLFxuICAgIFR1aVdpdGhEcm9wZG93bk9wZW4sXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvZHJvcGRvd24nO1xuaW1wb3J0IHtUdWlJY29uc30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9pY29ucyc7XG5pbXBvcnQge1xuICAgIFRVSV9BTklNQVRJT05TX1NQRUVELFxuICAgIFRVSV9DT01NT05fSUNPTlMsXG4gICAgVFVJX0lDT05fRU5ELFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHt0dWlUb0FuaW1hdGlvbk9wdGlvbnN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHtUVUlfTEFZT1VUX0lDT05TfSBmcm9tICdAdGFpZ2EtdWkvbGF5b3V0L3Rva2Vucyc7XG5pbXBvcnQgdHlwZSB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c091dGxldH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1BvbHltb3JwaGV1c091dGxldCwgVHVpU2Nyb2xsYmFyXSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8dHVpLXNjcm9sbGJhciBbc3R5bGUuaGVpZ2h0LiVdPVwiMTAwXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJkaXJlY3RpdmUuY29udGVudFwiIC8+XG4gICAgICAgIDwvdHVpLXNjcm9sbGJhcj5cbiAgICBgLFxuICAgIHN0eWxlVXJsczogWycuL2RyYXdlci5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtUdWlBY3RpdmVab25lLCBUdWlBbmltYXRlZF0sXG4gICAgaG9zdDoge1xuICAgICAgICB0dWlUaGVtZTogJ2RhcmsnLFxuICAgICAgICAnW3N0eWxlLnRvcC5weF0nOiAndG9wJyxcbiAgICB9LFxufSlcbmNsYXNzIFR1aURyYXdlckNvbXBvbmVudCB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRpcmVjdGl2ZSA9IGluamVjdChUdWlEcm9wZG93bkRpcmVjdGl2ZSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGFuaW1hdGlvbiA9IHR1aVRvQW5pbWF0aW9uT3B0aW9ucyhpbmplY3QoVFVJX0FOSU1BVElPTlNfU1BFRUQpKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG9wID1cbiAgICAgICAgdHVpSXNIVE1MRWxlbWVudCh0aGlzLmRpcmVjdGl2ZS5lbC5vZmZzZXRQYXJlbnQpICYmXG4gICAgICAgIHR1aUlzSFRNTEVsZW1lbnQodGhpcy5kaXJlY3RpdmUuZWwub2Zmc2V0UGFyZW50Lm9mZnNldFBhcmVudClcbiAgICAgICAgICAgID8gdGhpcy5kaXJlY3RpdmUuZWwub2Zmc2V0UGFyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSAtXG4gICAgICAgICAgICAgIE1hdGgubWF4KFxuICAgICAgICAgICAgICAgICAgdGhpcy5kaXJlY3RpdmUuZWwub2Zmc2V0UGFyZW50Lm9mZnNldFBhcmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AsXG4gICAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IDA7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgLy8gVE9ETzogbW92ZSB0byBob3N0IGRpcmVjdGl2ZXNcbiAgICBzZWxlY3RvcjogJ1t0dWlJY29uQnV0dG9uXVt0dWlOYXZpZ2F0aW9uRHJhd2VyXScsXG4gICAgdGVtcGxhdGU6ICc8bmctdGVtcGxhdGU+PG5nLWNvbnRlbnQgLz48L25nLXRlbXBsYXRlPicsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUJ1dHRvbk9wdGlvbnNQcm92aWRlcih7YXBwZWFyYW5jZTogJ3NlY29uZGFyeS1ncmF5c2NhbGUnfSksXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9JQ09OX0VORCxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IGluamVjdChUVUlfTEFZT1VUX0lDT05TKS5ncmlkLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfRFJPUERPV05fQ09NUE9ORU5ULFxuICAgICAgICAgICAgdXNlVmFsdWU6IFR1aURyYXdlckNvbXBvbmVudCxcbiAgICAgICAgfSxcbiAgICBdLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbVHVpRHJvcGRvd25EaXJlY3RpdmUsIFR1aVdpdGhEcm9wZG93bk9wZW5dLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlEcmF3ZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBEb0NoZWNrIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHggPSBpbmplY3QoVFVJX0NPTU1PTl9JQ09OUykuY2xvc2U7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpY29ucyA9IGluamVjdChUdWlJY29ucyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkcm9wZG93biA9IHR1aURyb3Bkb3duKG51bGwpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb3BlbiA9IGluamVjdChUdWlEcm9wZG93bk9wZW4pO1xuXG4gICAgcHVibGljIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pY29ucy5pY29uU3RhcnQuc2V0KHRoaXMub3Blbi50dWlEcm9wZG93bk9wZW4gPyB0aGlzLnggOiAnJyk7XG4gICAgfVxuXG4gICAgQFZpZXdDaGlsZChUZW1wbGF0ZVJlZilcbiAgICBwcm90ZWN0ZWQgc2V0IHRlbXBsYXRlKHRlbXBsYXRlOiBQb2x5bW9ycGhldXNDb250ZW50KSB7XG4gICAgICAgIHRoaXMuZHJvcGRvd24uc2V0KHRlbXBsYXRlKTtcbiAgICB9XG59XG4iXX0=