UNPKG

@omnia/fx

Version:

Provide Omnia Fx typings and tooling for clientside Omnia development.

103 lines (102 loc) 4.79 kB
import Vue, { VNodeData, VNodeChildren, VNode, PropType } from "vue"; import * as tsx from "vue-tsx-support"; import type { IComponentValidationEnabled, IValidator } from "./validation/IComponentValidationEnabled"; import { ConfirmDialogResponse, ConfirmDialogOptions } from "./confirmdialog/IVueConfirmDialog"; import { ITheming } from "./theming"; import * as models from "../models"; import { RecordPropsDefinition } from "vue/types/options"; import { PropsForOutside, RequiredPropNames, _TsxComponentV3 } from "vue-tsx-support"; import { CompositionComponentOptions } from "vue-tsx-support/lib/vca"; type VuetifyThemeItem = string | number | { base: string | number; lighten5: string | number; lighten4: string | number; lighten3: string | number; lighten2: string | number; lighten1: string | number; darken1: string | number; darken2: string | number; darken3: string | number; darken4: string | number; }; interface VuetifyTheme { [name: string]: VuetifyThemeItem; primary: VuetifyThemeItem; accent: VuetifyThemeItem; secondary: VuetifyThemeItem; info: VuetifyThemeItem; warning: VuetifyThemeItem; error: VuetifyThemeItem; success: VuetifyThemeItem; } type InheritanceTheme = { id: string; }; export interface VSlot { [name: string]: (ref?: any) => Array<JSX.Element>; } export interface IVueComponentBase<Props = VueComponentBaseProps, EventsWithOn = VueComponentBaseEvents, ScopedSlotArgs = {}> extends tsx.Component<Props, EventsWithOn, ScopedSlotArgs> { theming: ITheming; breakpoint: models.Breakpoint; theme: VuetifyTheme; $confirm: { open: (options?: ConfirmDialogOptions) => Promise<ConfirmDialogResponse>; }; createElementByManifestId(componentManifestId: models.GuidValue, elementName?: string, data?: VNodeData, children?: VNodeChildren, onComponentCreated?: (instance: any) => void): VNode; } export interface VueComponentBaseProps { themeTargetId?: string | models.GuidValue; themeDefinitionId?: string | models.GuidValue; themeDefinition?: object; onComponentCreated?: (instance: any) => void; color?: string; useValidator?: IValidator; key?: string; } export interface VueComponentBaseEvents { } export declare function defineProps<T>(props: RecordPropsDefinition<T>): RecordPropsDefinition<T>; export declare function definePropFunctionType<T>(): PropType<T>; export declare function definePropObjectType<T>(): PropType<T>; export declare class VueComponentBase<Props = VueComponentBaseProps, EventsWithOn = VueComponentBaseEvents, ScopedSlotArgs = {}> extends tsx.Component<Props, EventsWithOn, ScopedSlotArgs> implements IVueComponentBase<Props, EventsWithOn, ScopedSlotArgs>, IComponentValidationEnabled { inheritanceTheme?: InheritanceTheme; themeTargetId?: string; themeDefinitionId?: string; themeDefinition?: models.ThemeDefinition; onComponentCreated?: (instance: any) => void; useValidator: IValidator; private omniaCurrentTheming; private validations; constructor(); get theming(): ITheming; get breakpoint(): models.Breakpoint; get theme(): VuetifyTheme; $confirm: { open: (options?: ConfirmDialogOptions) => Promise<ConfirmDialogResponse>; }; resetInheritanceTheming(): void; setThemeDefinition(themingDefinition: models.ThemeDefinition): void; mounted(): void; transformVSlot(slot: VSlot): { scopedSlots: any; }; getValidationField(childs: Vue[]): void; addValidation(validation: any): void; clearValidation(): void; validate(): boolean; /** * Create Vnode from manifets id. * @param elementName that use to fallback in the case old data migration have not valid componentManifestId */ createElementByManifestId(componentManifestId: models.GuidValue, elementName?: string, data?: VNodeData, children?: VNodeChildren, onComponentCreated?: (instance: any) => void): VNode; getElementNameByManifestId(manifestId: models.GuidValue): string; } export declare function getVuetifyAppClasses(): string; export interface VueComponentConnectProps { content: () => JSX.Element; } export declare function defineVueComponent<Props, PropsDef extends RecordPropsDefinition<Props> = RecordPropsDefinition<Props>, PrefixedEvents = any, ScopedSlots = any, On = any, RequiredProps extends keyof Props = RequiredPropNames<PropsDef> & keyof Props>(options: CompositionComponentOptions<Props, PropsDef, PrefixedEvents, ScopedSlots, On>): _TsxComponentV3<Vue, {}, PropsForOutside<Props, RequiredProps>, PrefixedEvents, On, ScopedSlots>; export declare const VueComponentConnect: tsx._TsxComponentV3<Vue, {}, tsx.PropsForOutside<{ content: () => JSX.Element; }, "content">, any, any, any>; export {};