UNPKG

@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
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