118 lines
4.8 KiB
TypeScript
118 lines
4.8 KiB
TypeScript
import { C as ContentEntity, M as MentionEntity, T as TagEntity, L as LinkEntity } from '../types-BRt4hd7A.cjs';
|
|
|
|
interface AngularTextToken {
|
|
kind: "text";
|
|
text: string;
|
|
start: number;
|
|
end: number;
|
|
}
|
|
interface AngularMentionToken {
|
|
kind: "mention";
|
|
entity: MentionEntity;
|
|
}
|
|
interface AngularTagToken {
|
|
kind: "tag";
|
|
entity: TagEntity;
|
|
}
|
|
interface AngularLinkToken {
|
|
kind: "link";
|
|
entity: LinkEntity;
|
|
}
|
|
type AngularContentToken = AngularTextToken | AngularMentionToken | AngularTagToken | AngularLinkToken;
|
|
interface AngularContentSnapshot {
|
|
text: string;
|
|
entities: ContentEntity[];
|
|
tokens: AngularContentToken[];
|
|
}
|
|
type AngularEllipsisSymbol = string | ((expanded: boolean) => string);
|
|
type AngularCountEllipsisConfig = {
|
|
count: number;
|
|
rows?: never;
|
|
expandable?: boolean;
|
|
expanded?: boolean;
|
|
symbol?: AngularEllipsisSymbol;
|
|
onExpand?: (expanded: boolean) => void;
|
|
};
|
|
type AngularRowsEllipsisConfig = {
|
|
rows: number;
|
|
count?: never;
|
|
expandable?: boolean;
|
|
expanded?: boolean;
|
|
symbol?: AngularEllipsisSymbol;
|
|
onExpand?: (expanded: boolean) => void;
|
|
};
|
|
type AngularContentEllipsisConfig = AngularCountEllipsisConfig | AngularRowsEllipsisConfig | false;
|
|
type AngularRenderResult = Node | string | number | null | undefined;
|
|
type AngularMentionRenderer = (entity: MentionEntity, index: number) => AngularRenderResult;
|
|
type AngularTagRenderer = (entity: TagEntity, index: number) => AngularRenderResult;
|
|
type AngularLinkRenderer = (entity: LinkEntity, index: number) => AngularRenderResult;
|
|
interface AngularContentTextProps {
|
|
className?: string;
|
|
weight?: "normal" | "bold";
|
|
text?: string | null;
|
|
ellipsis?: AngularContentEllipsisConfig;
|
|
blur?: boolean;
|
|
style?: Record<string, string | number> | null;
|
|
onView?: () => void;
|
|
renderMention?: AngularMentionRenderer;
|
|
renderTag?: AngularTagRenderer;
|
|
renderLink?: AngularLinkRenderer;
|
|
}
|
|
type AngularContentTextWithSuggestionsProps = Omit<AngularContentTextProps, "renderMention" | "renderTag"> & {
|
|
renderMention?: AngularMentionRenderer;
|
|
renderTag?: AngularTagRenderer;
|
|
};
|
|
type AngularContentTitleWithSuggestionsProps = Omit<AngularContentTextWithSuggestionsProps, "weight">;
|
|
interface AngularContentTextRendererState {
|
|
props: AngularContentTextProps;
|
|
snapshot: AngularContentSnapshot;
|
|
expanded: boolean;
|
|
}
|
|
declare const toKebabCase: (value: string) => string;
|
|
declare const buildAngularTagHref: (entity: TagEntity) => string;
|
|
|
|
declare const createAngularContentTokens: (inputText: string | null | undefined) => AngularContentToken[];
|
|
declare class AngularContentSuggestionsAdapter {
|
|
snapshot(inputText: string | null | undefined): AngularContentSnapshot;
|
|
}
|
|
declare class AngularContentTextRenderer {
|
|
private host;
|
|
private props;
|
|
private expanded;
|
|
private viewed;
|
|
private hostInsideView;
|
|
private observer;
|
|
attach(host: HTMLElement, props?: AngularContentTextProps): AngularContentTextRendererState;
|
|
update(nextProps: AngularContentTextProps): AngularContentTextRendererState;
|
|
destroy(): void;
|
|
getState(): AngularContentTextRendererState;
|
|
private getText;
|
|
private createSnapshot;
|
|
private resolveEllipsisConfig;
|
|
private getMergedExpanded;
|
|
private createDefaultMentionNode;
|
|
private createDefaultTagNode;
|
|
private createDefaultLinkNode;
|
|
private renderEntity;
|
|
private buildTextNodes;
|
|
private applyBaseParagraphStyle;
|
|
private buildReadMoreButton;
|
|
private handleExpand;
|
|
private computeEntitySafeCutoff;
|
|
private render;
|
|
private initObserver;
|
|
private emitOnViewIfNeeded;
|
|
}
|
|
declare class AngularContentTextWithSuggestionsRenderer extends AngularContentTextRenderer {
|
|
}
|
|
declare class AngularContentTitleWithSuggestionsRenderer {
|
|
private readonly renderer;
|
|
attach(host: HTMLElement, props?: AngularContentTitleWithSuggestionsProps): AngularContentTextRendererState;
|
|
update(props: AngularContentTitleWithSuggestionsProps): AngularContentTextRendererState;
|
|
destroy(): void;
|
|
getState(): AngularContentTextRendererState;
|
|
private normalizeProps;
|
|
}
|
|
|
|
export { type AngularContentEllipsisConfig, type AngularContentSnapshot, AngularContentSuggestionsAdapter, type AngularContentTextProps, AngularContentTextRenderer, type AngularContentTextRendererState, type AngularContentTextWithSuggestionsProps, AngularContentTextWithSuggestionsRenderer, type AngularContentTitleWithSuggestionsProps, AngularContentTitleWithSuggestionsRenderer, type AngularContentToken, type AngularCountEllipsisConfig, type AngularEllipsisSymbol, type AngularLinkRenderer, type AngularLinkToken, type AngularMentionRenderer, type AngularMentionToken, type AngularRenderResult, type AngularRowsEllipsisConfig, type AngularTagRenderer, type AngularTagToken, type AngularTextToken, buildAngularTagHref, createAngularContentTokens, toKebabCase };
|