@taiga-ui/kit
Version:
Taiga UI Angular main components kit
34 lines • 6.54 kB
JavaScript
import { isPlatformBrowser } from '@angular/common';
import { ChangeDetectionStrategy, Component, inject, Input, PLATFORM_ID, } from '@angular/core';
import { TuiAnimated } from '@taiga-ui/cdk/directives/animated';
import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
import { tuiAsRectAccessor, TuiRectAccessor } from '@taiga-ui/core/classes';
import * as i0 from "@angular/core";
import * as i1 from "@taiga-ui/cdk/directives/animated";
class TuiPulse extends TuiRectAccessor {
constructor() {
super(...arguments);
this.isBrowser = isPlatformBrowser(inject(PLATFORM_ID));
this.el = tuiInjectElement();
this.playing = true;
this.type = 'hint';
}
getClientRect() {
const rect = this.el.getBoundingClientRect();
return this.isBrowser
? new DOMRect(rect.x - 4, rect.y - 4, rect.width + 8, rect.height + 8)
: rect;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiPulse, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiPulse, isStandalone: true, selector: "tui-pulse", inputs: { playing: "playing" }, host: { properties: { "class._playing": "playing" } }, providers: [tuiAsRectAccessor(TuiPulse)], usesInheritance: true, hostDirectives: [{ directive: i1.TuiAnimated }], ngImport: i0, template: '', isInline: true, styles: ["@keyframes tuiPulse{to{opacity:0;transform:scale(2.5)}}:host{position:relative;color:var(--tui-background-accent-1)}:host.tui-enter,:host.tui-leave{animation-name:tuiScale}:host:before,:host:after{transition-property:box-shadow;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;content:\"\";position:absolute;inline-size:.5rem;block-size:.5rem;border-radius:100%;margin:-.25rem;background:currentColor}:host:before{opacity:1;transform:scale(0)}:host._playing:before{animation:tuiPulse 1s 1s ease-in-out infinite}:host._playing:after{box-shadow:0 0 .5rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
export { TuiPulse };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiPulse, decorators: [{
type: Component,
args: [{ standalone: true, selector: 'tui-pulse', template: '', changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiAsRectAccessor(TuiPulse)], hostDirectives: [TuiAnimated], host: {
'[class._playing]': 'playing',
}, styles: ["@keyframes tuiPulse{to{opacity:0;transform:scale(2.5)}}:host{position:relative;color:var(--tui-background-accent-1)}:host.tui-enter,:host.tui-leave{animation-name:tuiScale}:host:before,:host:after{transition-property:box-shadow;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;content:\"\";position:absolute;inline-size:.5rem;block-size:.5rem;border-radius:100%;margin:-.25rem;background:currentColor}:host:before{opacity:1;transform:scale(0)}:host._playing:before{animation:tuiPulse 1s 1s ease-in-out infinite}:host._playing:after{box-shadow:0 0 .5rem}\n"] }]
}], propDecorators: { playing: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVsc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvcHVsc2UvcHVsc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsV0FBVyxHQUNkLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7OztBQUUxRSxNQVlhLFFBQVMsU0FBUSxlQUFlO0lBWjdDOztRQWFxQixjQUFTLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDbkQsT0FBRSxHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFHbEMsWUFBTyxHQUFHLElBQUksQ0FBQztRQUVOLFNBQUksR0FBRyxNQUFNLENBQUM7S0FTakM7SUFQVSxhQUFhO1FBQ2hCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUU3QyxPQUFPLElBQUksQ0FBQyxTQUFTO1lBQ2pCLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUN0RSxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2YsQ0FBQzsrR0FmUSxRQUFRO21HQUFSLFFBQVEsK0lBTk4sQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxrR0FIOUIsRUFBRTs7U0FTSCxRQUFROzRGQUFSLFFBQVE7a0JBWnBCLFNBQVM7aUNBQ00sSUFBSSxZQUNOLFdBQVcsWUFDWCxFQUFFLG1CQUVLLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxpQkFBaUIsVUFBVSxDQUFDLGtCQUN4QixDQUFDLFdBQVcsQ0FBQyxRQUN2Qjt3QkFDRixrQkFBa0IsRUFBRSxTQUFTO3FCQUNoQzs4QkFPTSxPQUFPO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2lzUGxhdGZvcm1Ccm93c2VyfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIFBMQVRGT1JNX0lELFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHVpQW5pbWF0ZWR9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9hbmltYXRlZCc7XG5pbXBvcnQge3R1aUluamVjdEVsZW1lbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tJztcbmltcG9ydCB7dHVpQXNSZWN0QWNjZXNzb3IsIFR1aVJlY3RBY2Nlc3Nvcn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY2xhc3Nlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICd0dWktcHVsc2UnLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wdWxzZS5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbdHVpQXNSZWN0QWNjZXNzb3IoVHVpUHVsc2UpXSxcbiAgICBob3N0RGlyZWN0aXZlczogW1R1aUFuaW1hdGVkXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MuX3BsYXlpbmddJzogJ3BsYXlpbmcnLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVB1bHNlIGV4dGVuZHMgVHVpUmVjdEFjY2Vzc29yIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlzQnJvd3NlciA9IGlzUGxhdGZvcm1Ccm93c2VyKGluamVjdChQTEFURk9STV9JRCkpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWwgPSB0dWlJbmplY3RFbGVtZW50KCk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwbGF5aW5nID0gdHJ1ZTtcblxuICAgIHB1YmxpYyByZWFkb25seSB0eXBlID0gJ2hpbnQnO1xuXG4gICAgcHVibGljIGdldENsaWVudFJlY3QoKTogRE9NUmVjdCB7XG4gICAgICAgIGNvbnN0IHJlY3QgPSB0aGlzLmVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmlzQnJvd3NlclxuICAgICAgICAgICAgPyBuZXcgRE9NUmVjdChyZWN0LnggLSA0LCByZWN0LnkgLSA0LCByZWN0LndpZHRoICsgOCwgcmVjdC5oZWlnaHQgKyA4KVxuICAgICAgICAgICAgOiByZWN0O1xuICAgIH1cbn1cbiJdfQ==