Types globaux

Cette page référence les types globaux d'Orion, ainsi que leur namespace associé.

Namespace global

type Nullable <T> = T | null; 
 
type Undef <T> = T | undefined; 
 
type Nil <T> = T | undefined | null; 
 
type RefDom <T = HTMLElement> = undefined | HTMLElement & T; 
 
type SetupProps <T> = Readonly<import('vue').ExtractPropTypes<T>> 
 
	type AsideAnimationHookType = 
	| 'asideEnterBefore' 
	| 'asideEnterStart' 
	| 'asideEnterEnd' 
	| 'asideLeaveBefore' 
	| 'asideLeaveStart' 
	| 'asideLeaveEnd' 
	; 
 
	type ModalAnimationHookType = 
	| 'modalEnterBefore' 
	| 'modalEnterStart' 
	| 'modalEnterEnd' 
	| 'modalLeaveBefore' 
	| 'modalLeaveStart' 
	| 'modalLeaveEnd' 
	; 
 
	type NotifAnimationHookType = 
	| 'notifEnterBefore' 
	| 'notifEnterStart' 
	| 'notifEnterEnd' 
	| 'notifLeaveBefore' 
	| 'notifLeaveStart' 
	| 'notifLeaveEnd' 
	;

Namespace Orion

type AppServiceConfig = { 
	prefix: string; 
	use: ('components' | 'monkeyPatching')[]; 
	lang: keyof typeof import('../lang')['default']; 
	router: Router; 
	popableAnimationHooks: 
		& Record<AsideAnimationHookType, (instance?: OrionAside) => Promise<void>> 
		& Record<ModalAnimationHookType, (instance?: OrionModal) => Promise<void>> 
		& Record<NotifAnimationHookType, (instance?: OrionNotif) => Promise<void>> 
} 
 
type Config = Partial<AppServiceConfig> 
 
type Icon = typeof coolicons[number]; 
 
type Theme = 'dark' | 'light' | 'auto'; 
 
type Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl'; 
 
type Color = 'brand' | 'default' | 'info' | 'success' | 'warning' | 'danger' | 'inverse' | 'pink'; 
 
type ColorAlt = 'brand-alt' | 'info-alt' | 'success-alt' | 'warning-alt' | 'danger-alt' | 'pink-alt'; 
 
type ColorExtended = Color | ColorAlt; 
 
type ColorExtendedAndGreys = Color | ColorAlt | Grey; 
 
type Grey = 'grey-darker' | 'grey-dark' | 'grey' | 'grey-light' |'grey-lighter'; 
 
type DatepickerType = 'date' | 'range' | 'week' | 'multiple' | 'month'; 
 
type DateTableType = 'date' | 'range' | 'multiple' | 'month'; 
 
type Phone = { 
	phoneNumber?: Nil<string>; 
	phoneCountryCode?: Nil<Orion.Country['code']>; 
} 
 
type DateRange = { 
	start?: Date; 
	end?: Date; 
	weekNumber?: number; 
	year?: number; 
	monthNumber?: number; 
	selecting?: boolean; 
} 
 
type DailyCalendarTask = { 
	id: number; 
	start: Date; 
	end: Date; 
	title: string; 
	color: Orion.Color; 
	column?: number; 
	callback?: (task: DailyCalendarTask) => void; 
} 
 
type DndData = { 
	data: Object & { __uid: number }; 
	from: number; 
	to: Nullable<number>; 
	index: Nullable<number>; 
	canDrop: boolean; 
	fromAsideOrModal: Nullable<Number>; 
} 
 
type DndValidation = { 
	method: (payload?: DndData) => boolean; 
	notif: (payload?: any) => void; 
} 
 
type Period = { 
	isStart: boolean; 
	isEnd: boolean; 
	start: Date; 
	end: Date; 
	label: string; 
	color: Orion.Color; 
	callback?: () => void; 
	specific: { 
		color: Orion.Color 
		date: Date; 
		exclude: boolean; 
	}[]; 
} 
 
type Country = { 
	code: CountryCode; 
	name: string; 
	areaCode: string; 
} 
 
type LayoutConfig = { 
	navMain?: OrionNavMain.Props; 
	navTop?: OrionNavTop.Props; 
	navTabs?: OrionNavTabs.Props; 
} 
 
type List <T> = Omit<OrionList.Props, 'list' | 'selected'> & { 
	list: T[]; 
	selected?: T[]; 
} 
 
type ListPage = { 
	size: number; 
	index: number; 
} 
 
type NavItem = Partial<{ 
	always: boolean; 
	backLabel: string; 
	callback: (item: NavItem, ev: MouseEvent | TouchEvent) => any; 
	children: NavItem[]; 
	class: string; 
	expand: boolean; 
	fontIcon: string; 
	icon: Orion.Icon; 
	id: string; 
	if: boolean | (() => boolean); 
	label: string; 
	line: boolean; 
	parent: NavItem; 
	reload: boolean; 
	replace: boolean; 
	root: boolean; 
	sectionTitle: boolean; 
	showCarret: boolean; 
	tag: string; 
	to: RouteLocationRaw; 
	wrapperClass: string; 
	activeWhenExact: boolean; 
}> 
 
type NavSection = { 
	slug: string; 
	items: NavItem[]; 
	if?: boolean | (() => boolean); 
}

Namespace Orion.Aside

type Options = Popable.Options & { 
	events?: Record<string, (aside: OrionAside, params: any) => void>; 
}

Namespace Orion.Modal

type Options = Popable.Options & { 
	title: Nil<string>; 
	message: Nil<string>; 
	events?: Record<string, (modal: OrionModal, params: any) => void>; 
	actions?: Partial<ActionsParams>[]; 
	prompt?: Partial<Prompt>; 
}; 
 
type ActionsParams = OrionButton.Props & { 
	label: string; 
	callback: (modal: OrionModal, prompt?: Prompt) => void; 
} 
 
type PromptType = 'input' | 'textarea' | 'password' | 'select' | 'phone' | 'upload' | 'datepicker'; 
 
type Prompt <T = any> = { 
	type: PromptType; 
	value: Nil<T>; 
	fieldProps: Partial<OrionField.Props> & Record<string, any>; 
	confirm(): void; 
	cancel(): void; 
} 
 
type PromptResolveType <T> = { 
	confirm: boolean; 
	value: Nil<T>; 
	modal: OrionModal; 
}

Namespace Orion.Notif

type Options = Popable.Options & { 
	title: Nil<string>; 
	message: Nil<string>; 
	duration?: Nil<number>; 
	icon?: Orion.Icon; 
	fontIcon?: string; 
	color?: 'info' | 'success' | 'warning' | 'danger' ; 
	events?: Record<string, (notif: OrionNotif, params: any) => void>; 
};

Namespace Orion.Popable

type Name = 'OrionAside' | 'OrionModal' | 'OrionNotif'; 
 
			type PublicIntance = 
				| OrionAsideSetupService['publicInstance'] 
				| OrionModalSetupService['publicInstance'] 
				| OrionNotifSetupService['publicInstance'] 
 
type Options = { 
	uid: number; 
	Nested: Component | null; 
	NestedProps: Record<string, any>; 
	customClass: string; 
	programmatic: boolean; 
	openauto: boolean; 
	size: string; 
	hideClose: boolean; 
	hideOnOverlayClick: boolean; 
	hideOnEsc: boolean; 
	overlay: boolean; 
	zIndex: number; 
	events?: Record<string, (popable: OrionAside | OrionModal | OrionNotif, params: any) => void>; 
}; 
 
type CloseOptions = { 
	keepInQueue?: boolean; 
	handleQueue?: boolean; 
	flush?: boolean; 
};

Namespace Orion.Private

type Number = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9; 
 
type Letter = 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' 
	| 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' 
	| 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z'; 
 
type TsxTabPane = { 
	props: OrionTabPane.Props & { 
		'font-icon': string; 
		'marker-color': string; 
	}; 
	children: { 
		default: Slot; 
		label?: Slot; 
	}; 
} 
 
type TsxTimelinePane = { 
	props: OrionTimelinePane.Props & { 
		'font-icon': string; 
		'marker-color': string; 
		'centered-pill': string; 
	}; 
	children: { 
		default: Slot; 
		after?: Slot; 
		before?: Slot; 
	}; 
} 
 
type TsxTourStep = { 
	props : OrionTourStep.Props 
}

global Orion Orion.Aside Orion.Modal Orion.Notif Orion.Popable Orion.Private