import { EventEmitter, Injector, OnChanges, SimpleChanges } from '@angular/core'; import { CoreBaseComponent } from '../../controls/common/base.component'; import * as i0 from "@angular/core"; export declare enum Unicode { HorizontalEllipsis = "\u2026" } /** * Describes the clamped event of the ClampDirective */ export interface ClampedEvent { clamped: boolean; } /** * * @smeDoc {@label Clamp @id sme-clamp-directive} * * @overview * @file {@filepath ./examples/clamp-overview.md} * * @example {@label Basic Usage @id basic-usage} * @file {@filename component.html @filepath ./examples/basic-usage.component.html} * @file {@filename component.ts @filepath ./examples/basic-usage.component.ts} * * @example {@label Clamp with auto lines @id auto-lines} * @file {@filename component.html @filepath ./examples/auto-lines-clamp.component.html} * @file {@filename component.ts @filepath ./examples/auto-lines-clamp.component.ts} * */ export declare class ClampDirective extends CoreBaseComponent implements OnChanges { /** * The source name to use for logging */ protected get logSourceName(): string; /** * The content to clamp. */ smeClamp: any; /** * The number of lines to clamp, or auto to clamp whatever will fit in the element */ smeClampLines: number | 'auto'; /** * Event that outputs a value indicating whether the content is clamped or not */ clamped: EventEmitter; /** * The number of lines to clamp to */ private get lineCount(); /** * The height that the clamp should be contained within */ private get clampHeight(); /** * The line height of this element */ private get lineHeight(); /** * Indicates that content overflows the desired height of the clamp */ private get needsClamping(); private get renderedLines(); private get breakWords(); /** * Constructs a new instance of the ClampDirective * @param injector The injector for the sme base component */ constructor(injector: Injector); /** * Host listener for page resize event. */ onResize(): void; /** * Implementation of angular OnChanges interface * On every input change, we recalculate the clamp. */ ngOnChanges(changes: SimpleChanges): void; private setBreakWords; private removeBreakWords; private resetClampContent; /** * Gets the initial host classes to be applied to this element */ protected getInitialHostClasses(): string[]; /** * Clamps the text of a node by doing a last child first process of * eliminating text until the host element fits in the clamp height. * while this method should support HTML content, our input to this directive is a string for now. * @param node The node to clamp * @returns true if the node was successfully clamped */ private clamp; /** * Trims the last word from the string, or returns the original string if there is only one word * @param text the text to trim */ private trimLastWord; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; }