@khatastroffik/react-text-renderer-components
Version:
a zero-dependencies component library providing (pure) text rendering for common and custom data/field types.
77 lines (75 loc) • 3.26 kB
TypeScript
import React from "react";
export type ModifyValueType<T, R> = Omit<T, keyof R> & R;
export interface IAbstractRendererProps {
value: unknown;
pure?: boolean;
}
export interface IDateValue {
value: Date;
}
export interface ITextValue {
value: string;
}
export abstract class AbstractRenderer<IRendererValueType = string, IRendererProps extends IAbstractRendererProps = IAbstractRendererProps> extends React.Component<IRendererProps> {
value: IRendererValueType;
pure: boolean;
constructor(props: IRendererProps);
protected abstract getFormatedText(): string;
render(): React.JSX.Element;
}
export const defaultDateRendererFormatOptions: Intl.DateTimeFormatOptions;
export interface IDateRendererProps extends ModifyValueType<IAbstractRendererProps, IDateValue> {
locale?: Intl.LocalesArgument;
timeZone?: string;
}
export class DateRenderer extends AbstractRenderer<Date, IDateRendererProps> {
protected getFormatedText(): string;
}
export const defaultTimeRendererFormatOptions: Intl.DateTimeFormatOptions;
export interface ITimeRendererProps extends ModifyValueType<IAbstractRendererProps, IDateValue> {
locale?: Intl.LocalesArgument;
timeZone?: string;
}
export class TimeRenderer extends AbstractRenderer<Date, ITimeRendererProps> {
protected getFormatedText(): string;
}
export const defaultDateTimeRendererFormatOptions: Intl.DateTimeFormatOptions;
export interface IDateTimeRendererProps extends ModifyValueType<IAbstractRendererProps, IDateValue> {
locale?: Intl.LocalesArgument;
formatOptions?: Intl.DateTimeFormatOptions;
}
export class DateTimeRenderer extends AbstractRenderer<Date, IDateTimeRendererProps> {
protected getFormatedText(): string;
}
export const defaultWeekRendererFormatOptions: Intl.NumberFormatOptions;
type ISOWeek = {
week: number;
year: number;
};
export interface IWeekRendererProps extends ModifyValueType<IAbstractRendererProps, IDateValue> {
minimumIntegerDigits?: 1 | 2;
displayYear?: boolean;
numberingSystem?: string;
}
export class WeekRenderer extends AbstractRenderer<Date, IWeekRendererProps> {
protected getFormatedText(): string;
}
export function calcISOWeek(inputDate: Date): ISOWeek;
export const defaultQuarterFormatOptions: Intl.NumberFormatOptions;
export const defaultYearFormatOptions: Intl.DateTimeFormatOptions;
export interface IQuarterRendererProps extends ModifyValueType<IAbstractRendererProps, IDateValue> {
displayYear?: boolean;
}
export class QuarterRenderer extends AbstractRenderer<Date, IQuarterRendererProps> {
protected getFormatedText(): string;
}
export function calcQuarter(inputDate: Date): number;
export const TextTransformations: readonly ["no-op", "lower-case", "upper-case", "snake-case", "pascal-case", "camel-case", "kebab-case", "to-base64", "from-base64", "camel-to-kebab", "pascal-to-kebab"];
export type TextRendererTransformation = (typeof TextTransformations)[number];
export interface ITextRendererProps extends ModifyValueType<IAbstractRendererProps, ITextValue> {
transform: TextRendererTransformation;
}
export class TextRenderer extends AbstractRenderer<string, ITextRendererProps> {
protected getFormatedText(): string;
}
//# sourceMappingURL=types.d.ts.map