Tracking de l'application VApp (IHM du jeu)

This commit is contained in:
2025-05-11 18:04:12 +02:00
commit 89e9db9b62
17763 changed files with 3718499 additions and 0 deletions

View File

@@ -0,0 +1,64 @@
.v-carousel {
overflow: hidden;
position: relative;
width: 100%;
}
.v-carousel__controls {
align-items: center;
bottom: 0;
display: flex;
height: 50px;
justify-content: center;
list-style-type: none;
position: absolute;
width: 100%;
z-index: 1;
background: rgba(var(--v-theme-surface-variant), 0.3);
color: rgb(var(--v-theme-on-surface-variant));
}
.v-carousel__controls > .v-item-group {
flex: 0 1 auto;
}
.v-carousel__controls__item {
margin: 0 8px;
}
.v-carousel__controls__item .v-icon {
opacity: 0.5;
}
.v-carousel__controls__item--active .v-icon {
opacity: 1;
vertical-align: middle;
}
.v-carousel__controls__item:hover {
background: none;
}
.v-carousel__controls__item:hover .v-icon {
opacity: 0.8;
}
.v-carousel__progress {
margin: 0;
position: absolute;
bottom: 0;
left: 0;
right: 0;
}
.v-carousel-item {
display: block;
height: inherit;
text-decoration: none;
}
.v-carousel-item > .v-img {
height: inherit;
}
.v-carousel--hide-delimiter-background .v-carousel__controls {
background: transparent;
}
.v-carousel--vertical-delimiters .v-carousel__controls {
flex-direction: column;
height: 100% !important;
width: 50px;
}

View File

@@ -0,0 +1,133 @@
import { createVNode as _createVNode, mergeProps as _mergeProps, Fragment as _Fragment } from "vue";
// Styles
import "./VCarousel.css";
// Components
import { VBtn } from "../VBtn/index.mjs";
import { VDefaultsProvider } from "../VDefaultsProvider/index.mjs";
import { VProgressLinear } from "../VProgressLinear/index.mjs";
import { makeVWindowProps, VWindow } from "../VWindow/VWindow.mjs"; // Composables
import { IconValue } from "../../composables/icons.mjs";
import { useLocale } from "../../composables/locale.mjs";
import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
import { onMounted, ref, watch } from 'vue';
import { convertToUnit, genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
export const makeVCarouselProps = propsFactory({
color: String,
cycle: Boolean,
delimiterIcon: {
type: IconValue,
default: '$delimiter'
},
height: {
type: [Number, String],
default: 500
},
hideDelimiters: Boolean,
hideDelimiterBackground: Boolean,
interval: {
type: [Number, String],
default: 6000,
validator: value => Number(value) > 0
},
progress: [Boolean, String],
verticalDelimiters: [Boolean, String],
...makeVWindowProps({
continuous: true,
mandatory: 'force',
showArrows: true
})
}, 'VCarousel');
export const VCarousel = genericComponent()({
name: 'VCarousel',
props: makeVCarouselProps(),
emits: {
'update:modelValue': value => true
},
setup(props, _ref) {
let {
slots
} = _ref;
const model = useProxiedModel(props, 'modelValue');
const {
t
} = useLocale();
const windowRef = ref();
let slideTimeout = -1;
watch(model, restartTimeout);
watch(() => props.interval, restartTimeout);
watch(() => props.cycle, val => {
if (val) restartTimeout();else window.clearTimeout(slideTimeout);
});
onMounted(startTimeout);
function startTimeout() {
if (!props.cycle || !windowRef.value) return;
slideTimeout = window.setTimeout(windowRef.value.group.next, +props.interval > 0 ? +props.interval : 6000);
}
function restartTimeout() {
window.clearTimeout(slideTimeout);
window.requestAnimationFrame(startTimeout);
}
useRender(() => {
const windowProps = VWindow.filterProps(props);
return _createVNode(VWindow, _mergeProps({
"ref": windowRef
}, windowProps, {
"modelValue": model.value,
"onUpdate:modelValue": $event => model.value = $event,
"class": ['v-carousel', {
'v-carousel--hide-delimiter-background': props.hideDelimiterBackground,
'v-carousel--vertical-delimiters': props.verticalDelimiters
}, props.class],
"style": [{
height: convertToUnit(props.height)
}, props.style]
}), {
default: slots.default,
additional: _ref2 => {
let {
group
} = _ref2;
return _createVNode(_Fragment, null, [!props.hideDelimiters && _createVNode("div", {
"class": "v-carousel__controls",
"style": {
left: props.verticalDelimiters === 'left' && props.verticalDelimiters ? 0 : 'auto',
right: props.verticalDelimiters === 'right' ? 0 : 'auto'
}
}, [group.items.value.length > 0 && _createVNode(VDefaultsProvider, {
"defaults": {
VBtn: {
color: props.color,
icon: props.delimiterIcon,
size: 'x-small',
variant: 'text'
}
},
"scoped": true
}, {
default: () => [group.items.value.map((item, index) => {
const props = {
id: `carousel-item-${item.id}`,
'aria-label': t('$vuetify.carousel.ariaLabel.delimiter', index + 1, group.items.value.length),
class: ['v-carousel__controls__item', group.isSelected(item.id) && 'v-btn--active'],
onClick: () => group.select(item.id, true)
};
return slots.item ? slots.item({
props,
item
}) : _createVNode(VBtn, _mergeProps(item, props), null);
})]
})]), props.progress && _createVNode(VProgressLinear, {
"class": "v-carousel__progress",
"color": typeof props.progress === 'string' ? props.progress : undefined,
"modelValue": (group.getItemIndex(model.value) + 1) / group.items.value.length * 100
}, null)]);
},
prev: slots.prev,
next: slots.next
});
});
return {};
}
});
//# sourceMappingURL=VCarousel.mjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,67 @@
@use '../../styles/tools'
@use './variables' as *
.v-carousel
overflow: hidden
position: relative
width: 100%
&__controls
align-items: center
bottom: 0
display: flex
height: $carousel-controls-size
justify-content: center
list-style-type: none
position: absolute
width: 100%
z-index: 1
@include tools.theme($carousel-controls-theme...)
> .v-item-group
flex: 0 1 auto
&__item
margin: $carousel-dot-margin
.v-icon
opacity: $carousel-dot-inactive-opacity
&--active
.v-icon
opacity: $carousel-dot-active-opacity
vertical-align: middle
&:hover
background: none
.v-icon
opacity: $carousel-dot-hover-opacity
// Element
.v-carousel__progress
margin: 0
position: absolute
bottom: 0
left: 0
right: 0
.v-carousel-item
display: block
height: inherit
text-decoration: none
& > .v-img
height: inherit
// Modifier
.v-carousel--hide-delimiter-background
.v-carousel__controls
background: transparent
.v-carousel--vertical-delimiters
.v-carousel__controls
flex-direction: column
height: 100% !important
width: $carousel-controls-size

View File

@@ -0,0 +1,30 @@
import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from "vue";
// Components
import { makeVImgProps, VImg } from "../VImg/VImg.mjs";
import { makeVWindowItemProps, VWindowItem } from "../VWindow/VWindowItem.mjs"; // Utilities
import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
export const makeVCarouselItemProps = propsFactory({
...makeVImgProps(),
...makeVWindowItemProps()
}, 'VCarouselItem');
export const VCarouselItem = genericComponent()({
name: 'VCarouselItem',
inheritAttrs: false,
props: makeVCarouselItemProps(),
setup(props, _ref) {
let {
slots,
attrs
} = _ref;
useRender(() => {
const imgProps = VImg.filterProps(props);
const windowItemProps = VWindowItem.filterProps(props);
return _createVNode(VWindowItem, _mergeProps({
"class": "v-carousel-item"
}, windowItemProps), {
default: () => [_createVNode(VImg, _mergeProps(attrs, imgProps), slots)]
});
});
}
});
//# sourceMappingURL=VCarouselItem.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"VCarouselItem.mjs","names":["makeVImgProps","VImg","makeVWindowItemProps","VWindowItem","genericComponent","propsFactory","useRender","makeVCarouselItemProps","VCarouselItem","name","inheritAttrs","props","setup","_ref","slots","attrs","imgProps","filterProps","windowItemProps","_createVNode","_mergeProps","default"],"sources":["../../../src/components/VCarousel/VCarouselItem.tsx"],"sourcesContent":["// Components\nimport { makeVImgProps, VImg } from '@/components/VImg/VImg'\nimport { makeVWindowItemProps, VWindowItem } from '@/components/VWindow/VWindowItem'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VImgSlots } from '@/components/VImg/VImg'\n\nexport const makeVCarouselItemProps = propsFactory({\n ...makeVImgProps(),\n ...makeVWindowItemProps(),\n}, 'VCarouselItem')\n\nexport const VCarouselItem = genericComponent<VImgSlots>()({\n name: 'VCarouselItem',\n\n inheritAttrs: false,\n\n props: makeVCarouselItemProps(),\n\n setup (props, { slots, attrs }) {\n useRender(() => {\n const imgProps = VImg.filterProps(props)\n const windowItemProps = VWindowItem.filterProps(props)\n\n return (\n <VWindowItem\n class=\"v-carousel-item\"\n { ...windowItemProps }\n >\n <VImg\n { ...attrs }\n { ...imgProps }\n v-slots={ slots }\n />\n </VWindowItem>\n )\n })\n },\n})\n\nexport type VCarouselItem = InstanceType<typeof VCarouselItem>\n"],"mappings":";AAAA;AAAA,SACSA,aAAa,EAAEC,IAAI;AAAA,SACnBC,oBAAoB,EAAEC,WAAW,sCAE1C;AAAA,SACSC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAElD;AAGA,OAAO,MAAMC,sBAAsB,GAAGF,YAAY,CAAC;EACjD,GAAGL,aAAa,CAAC,CAAC;EAClB,GAAGE,oBAAoB,CAAC;AAC1B,CAAC,EAAE,eAAe,CAAC;AAEnB,OAAO,MAAMM,aAAa,GAAGJ,gBAAgB,CAAY,CAAC,CAAC;EACzDK,IAAI,EAAE,eAAe;EAErBC,YAAY,EAAE,KAAK;EAEnBC,KAAK,EAAEJ,sBAAsB,CAAC,CAAC;EAE/BK,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAoB;IAAA,IAAlB;MAAEC,KAAK;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC5BP,SAAS,CAAC,MAAM;MACd,MAAMU,QAAQ,GAAGf,IAAI,CAACgB,WAAW,CAACN,KAAK,CAAC;MACxC,MAAMO,eAAe,GAAGf,WAAW,CAACc,WAAW,CAACN,KAAK,CAAC;MAEtD,OAAAQ,YAAA,CAAAhB,WAAA,EAAAiB,WAAA;QAAA;MAAA,GAGSF,eAAe;QAAAG,OAAA,EAAAA,CAAA,MAAAF,YAAA,CAAAlB,IAAA,EAAAmB,WAAA,CAGbL,KAAK,EACLC,QAAQ,GACHF,KAAK;MAAA;IAIvB,CAAC,CAAC;EACJ;AACF,CAAC,CAAC"}

View File

@@ -0,0 +1,13 @@
// VCarousel
$carousel-controls-bg: rgba(var(--v-theme-surface-variant), .3) !default;
$carousel-controls-color: rgb(var(--v-theme-on-surface-variant)) !default;
$carousel-controls-size: 50px !default;
$carousel-dot-margin: 0 8px !default;
$carousel-dot-inactive-opacity: .5 !default;
$carousel-dot-active-opacity: 1 !default;
$carousel-dot-hover-opacity: .8 !default;
$carousel-controls-theme: (
$carousel-controls-bg,
$carousel-controls-color
) !default;

View File

@@ -0,0 +1,924 @@
import * as vue from 'vue';
import { ComponentPropsOptions, ExtractPropTypes, VNodeChild, VNode, JSXComponent, PropType, ComponentInternalInstance, Ref, ComputedRef } from 'vue';
type SlotsToProps<U extends RawSlots, T = MakeInternalSlots<U>> = {
$children?: (VNodeChild | (T extends {
default: infer V;
} ? V : {}) | {
[K in keyof T]?: T[K];
});
'v-slots'?: {
[K in keyof T]?: T[K] | false;
};
} & {
[K in keyof T as `v-slot:${K & string}`]?: T[K] | false;
};
type RawSlots = Record<string, unknown>;
type Slot<T> = [T] extends [never] ? () => VNodeChild : (arg: T) => VNodeChild;
type VueSlot<T> = [T] extends [never] ? () => VNode[] : (arg: T) => VNode[];
type MakeInternalSlots<T extends RawSlots> = {
[K in keyof T]: Slot<T[K]>;
};
type MakeSlots<T extends RawSlots> = {
[K in keyof T]: VueSlot<T[K]>;
};
type GenericProps<Props, Slots extends Record<string, unknown>> = {
$props: Props & SlotsToProps<Slots>;
$slots: MakeSlots<Slots>;
};
interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
}
interface TouchHandlers {
start?: (wrapperEvent: {
originalEvent: TouchEvent;
} & TouchData) => void;
end?: (wrapperEvent: {
originalEvent: TouchEvent;
} & TouchData) => void;
move?: (wrapperEvent: {
originalEvent: TouchEvent;
} & TouchData) => void;
left?: (wrapper: TouchData) => void;
right?: (wrapper: TouchData) => void;
up?: (wrapper: TouchData) => void;
down?: (wrapper: TouchData) => void;
}
interface TouchData {
touchstartX: number;
touchstartY: number;
touchmoveX: number;
touchmoveY: number;
touchendX: number;
touchendY: number;
offsetX: number;
offsetY: number;
}
type IconValue = string | (string | [path: string, opacity: number])[] | JSXComponent;
declare const IconValue: PropType<IconValue>;
interface GroupItem {
id: number;
value: Ref<unknown>;
disabled: Ref<boolean | undefined>;
}
interface GroupProvide {
register: (item: GroupItem, cmp: ComponentInternalInstance) => void;
unregister: (id: number) => void;
select: (id: number, value: boolean) => void;
selected: Ref<Readonly<number[]>>;
isSelected: (id: number) => boolean;
prev: () => void;
next: () => void;
selectedClass: Ref<string | undefined>;
items: ComputedRef<{
id: number;
value: unknown;
disabled: boolean | undefined;
}[]>;
disabled: Ref<boolean | undefined>;
getItemIndex: (value: unknown) => number;
}
type VWindowSlots = {
default: {
group: GroupProvide;
};
additional: {
group: GroupProvide;
};
prev: {
props: ControlProps;
};
next: {
props: ControlProps;
};
};
type ControlProps = {
icon: IconValue;
class: string;
onClick: () => void;
'aria-label': string;
};
type VCarouselSlots = VWindowSlots & {
item: {
props: Record<string, any>;
item: {
id: number;
value: unknown;
disabled: boolean | undefined;
};
};
};
declare const VCarousel: {
new (...args: any[]): vue.CreateComponentPublicInstance<{
reverse: boolean;
interval: string | number;
height: string | number;
direction: "horizontal" | "vertical";
style: vue.StyleValue;
disabled: boolean;
tag: string;
mandatory: NonNullable<boolean | "force">;
selectedClass: string;
nextIcon: IconValue;
prevIcon: IconValue;
showArrows: NonNullable<string | boolean>;
continuous: boolean;
cycle: boolean;
delimiterIcon: IconValue;
hideDelimiters: boolean;
hideDelimiterBackground: boolean;
} & {
progress?: string | boolean | undefined;
color?: string | undefined;
class?: any;
touch?: boolean | TouchHandlers | undefined;
theme?: string | undefined;
verticalDelimiters?: boolean | "left" | "right" | undefined;
} & {}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
'update:modelValue': (value: any) => boolean;
}, "$children" | "v-slot:default" | "v-slots" | "v-slot:additional" | "modelValue" | "update:modelValue" | "v-slot:next" | "v-slot:prev" | "v-slot:item">, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
reverse: boolean;
interval: string | number;
height: string | number;
direction: "horizontal" | "vertical";
style: vue.StyleValue;
disabled: boolean;
tag: string;
mandatory: NonNullable<boolean | "force">;
selectedClass: string;
nextIcon: IconValue;
prevIcon: IconValue;
showArrows: NonNullable<string | boolean>;
continuous: boolean;
cycle: boolean;
delimiterIcon: IconValue;
hideDelimiters: boolean;
hideDelimiterBackground: boolean;
} & {
progress?: string | boolean | undefined;
color?: string | undefined;
class?: any;
touch?: boolean | TouchHandlers | undefined;
theme?: string | undefined;
verticalDelimiters?: boolean | "left" | "right" | undefined;
} & {}, {
reverse: boolean;
interval: string | number;
height: string | number;
direction: "horizontal" | "vertical";
style: vue.StyleValue;
disabled: boolean;
tag: string;
mandatory: NonNullable<boolean | "force">;
touch: boolean | TouchHandlers;
selectedClass: string;
nextIcon: IconValue;
prevIcon: IconValue;
showArrows: NonNullable<string | boolean>;
continuous: boolean;
cycle: boolean;
delimiterIcon: IconValue;
hideDelimiters: boolean;
hideDelimiterBackground: boolean;
}, true, {}, vue.SlotsType<Partial<{
default: (arg: {
group: GroupProvide;
}) => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
additional: (arg: {
group: GroupProvide;
}) => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
prev: (arg: {
props: {
icon: IconValue;
class: string;
onClick: () => void;
'aria-label': string;
};
}) => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
next: (arg: {
props: {
icon: IconValue;
class: string;
onClick: () => void;
'aria-label': string;
};
}) => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
item: (arg: {
props: Record<string, any>;
item: {
id: number;
value: unknown;
disabled: boolean | undefined;
};
}) => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
}>>, {
P: {};
B: {};
D: {};
C: {};
M: {};
Defaults: {};
}, {
reverse: boolean;
interval: string | number;
height: string | number;
direction: "horizontal" | "vertical";
style: vue.StyleValue;
disabled: boolean;
tag: string;
mandatory: NonNullable<boolean | "force">;
selectedClass: string;
nextIcon: IconValue;
prevIcon: IconValue;
showArrows: NonNullable<string | boolean>;
continuous: boolean;
cycle: boolean;
delimiterIcon: IconValue;
hideDelimiters: boolean;
hideDelimiterBackground: boolean;
} & {
progress?: string | boolean | undefined;
color?: string | undefined;
class?: any;
touch?: boolean | TouchHandlers | undefined;
theme?: string | undefined;
verticalDelimiters?: boolean | "left" | "right" | undefined;
} & {}, {}, {}, {}, {}, {
reverse: boolean;
interval: string | number;
height: string | number;
direction: "horizontal" | "vertical";
style: vue.StyleValue;
disabled: boolean;
tag: string;
mandatory: NonNullable<boolean | "force">;
touch: boolean | TouchHandlers;
selectedClass: string;
nextIcon: IconValue;
prevIcon: IconValue;
showArrows: NonNullable<string | boolean>;
continuous: boolean;
cycle: boolean;
delimiterIcon: IconValue;
hideDelimiters: boolean;
hideDelimiterBackground: boolean;
}>;
__isFragment?: undefined;
__isTeleport?: undefined;
__isSuspense?: undefined;
} & vue.ComponentOptionsBase<{
reverse: boolean;
interval: string | number;
height: string | number;
direction: "horizontal" | "vertical";
style: vue.StyleValue;
disabled: boolean;
tag: string;
mandatory: NonNullable<boolean | "force">;
selectedClass: string;
nextIcon: IconValue;
prevIcon: IconValue;
showArrows: NonNullable<string | boolean>;
continuous: boolean;
cycle: boolean;
delimiterIcon: IconValue;
hideDelimiters: boolean;
hideDelimiterBackground: boolean;
} & {
progress?: string | boolean | undefined;
color?: string | undefined;
class?: any;
touch?: boolean | TouchHandlers | undefined;
theme?: string | undefined;
verticalDelimiters?: boolean | "left" | "right" | undefined;
} & {}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
'update:modelValue': (value: any) => boolean;
}, "$children" | "v-slot:default" | "v-slots" | "v-slot:additional" | "modelValue" | "update:modelValue" | "v-slot:next" | "v-slot:prev" | "v-slot:item">, string, {
reverse: boolean;
interval: string | number;
height: string | number;
direction: "horizontal" | "vertical";
style: vue.StyleValue;
disabled: boolean;
tag: string;
mandatory: NonNullable<boolean | "force">;
touch: boolean | TouchHandlers;
selectedClass: string;
nextIcon: IconValue;
prevIcon: IconValue;
showArrows: NonNullable<string | boolean>;
continuous: boolean;
cycle: boolean;
delimiterIcon: IconValue;
hideDelimiters: boolean;
hideDelimiterBackground: boolean;
}, {}, string, vue.SlotsType<Partial<{
default: (arg: {
group: GroupProvide;
}) => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
additional: (arg: {
group: GroupProvide;
}) => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
prev: (arg: {
props: {
icon: IconValue;
class: string;
onClick: () => void;
'aria-label': string;
};
}) => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
next: (arg: {
props: {
icon: IconValue;
class: string;
onClick: () => void;
'aria-label': string;
};
}) => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
item: (arg: {
props: Record<string, any>;
item: {
id: number;
value: unknown;
disabled: boolean | undefined;
};
}) => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
}>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new <T>(props: {
modelValue?: T | undefined;
'onUpdate:modelValue'?: ((value: T) => void) | undefined;
}, slots: VCarouselSlots) => GenericProps<{
modelValue?: T | undefined;
'onUpdate:modelValue'?: ((value: T) => void) | undefined;
}, VCarouselSlots>) & FilterPropsOptions<{
theme: StringConstructor;
tag: {
type: StringConstructor;
default: string;
};
class: PropType<any>;
style: {
type: PropType<vue.StyleValue>;
default: null;
};
continuous: {
type: PropType<boolean>;
default: boolean;
};
nextIcon: {
type: PropType<IconValue>;
default: string;
};
prevIcon: {
type: PropType<IconValue>;
default: string;
};
reverse: BooleanConstructor;
showArrows: Omit<{
type: (StringConstructor | BooleanConstructor)[];
validator: (v: any) => boolean;
}, "type" | "default"> & {
type: PropType<NonNullable<string | boolean>>;
default: NonNullable<string | boolean>;
};
touch: {
type: PropType<boolean | TouchHandlers>;
default: undefined;
};
direction: {
type: PropType<"horizontal" | "vertical">;
default: string;
};
modelValue: null;
disabled: BooleanConstructor;
selectedClass: {
type: StringConstructor;
default: string;
};
mandatory: Omit<{
type: PropType<boolean | "force">;
default: "force";
}, "type" | "default"> & {
type: PropType<NonNullable<boolean | "force">>;
default: NonNullable<boolean | "force">;
};
color: StringConstructor;
cycle: BooleanConstructor;
delimiterIcon: {
type: PropType<IconValue>;
default: string;
};
height: {
type: (StringConstructor | NumberConstructor)[];
default: number;
};
hideDelimiters: BooleanConstructor;
hideDelimiterBackground: BooleanConstructor;
interval: {
type: (StringConstructor | NumberConstructor)[];
default: number;
validator: (value: string | number) => boolean;
};
progress: (StringConstructor | BooleanConstructor)[];
verticalDelimiters: PropType<boolean | "left" | "right">;
}, vue.ExtractPropTypes<{
theme: StringConstructor;
tag: {
type: StringConstructor;
default: string;
};
class: PropType<any>;
style: {
type: PropType<vue.StyleValue>;
default: null;
};
continuous: {
type: PropType<boolean>;
default: boolean;
};
nextIcon: {
type: PropType<IconValue>;
default: string;
};
prevIcon: {
type: PropType<IconValue>;
default: string;
};
reverse: BooleanConstructor;
showArrows: Omit<{
type: (StringConstructor | BooleanConstructor)[];
validator: (v: any) => boolean;
}, "type" | "default"> & {
type: PropType<NonNullable<string | boolean>>;
default: NonNullable<string | boolean>;
};
touch: {
type: PropType<boolean | TouchHandlers>;
default: undefined;
};
direction: {
type: PropType<"horizontal" | "vertical">;
default: string;
};
modelValue: null;
disabled: BooleanConstructor;
selectedClass: {
type: StringConstructor;
default: string;
};
mandatory: Omit<{
type: PropType<boolean | "force">;
default: "force";
}, "type" | "default"> & {
type: PropType<NonNullable<boolean | "force">>;
default: NonNullable<boolean | "force">;
};
color: StringConstructor;
cycle: BooleanConstructor;
delimiterIcon: {
type: PropType<IconValue>;
default: string;
};
height: {
type: (StringConstructor | NumberConstructor)[];
default: number;
};
hideDelimiters: BooleanConstructor;
hideDelimiterBackground: BooleanConstructor;
interval: {
type: (StringConstructor | NumberConstructor)[];
default: number;
validator: (value: string | number) => boolean;
};
progress: (StringConstructor | BooleanConstructor)[];
verticalDelimiters: PropType<boolean | "left" | "right">;
}>>;
type VCarousel = InstanceType<typeof VCarousel>;
interface srcObject {
src?: string;
srcset?: string;
lazySrc?: string;
aspect: number;
}
declare const VCarouselItem: {
new (...args: any[]): vue.CreateComponentPublicInstance<{
inline: boolean;
style: vue.StyleValue;
eager: boolean;
disabled: boolean;
options: IntersectionObserverInit;
cover: boolean;
src: string | srcObject;
} & {
height?: string | number | undefined;
width?: string | number | undefined;
aspectRatio?: string | number | undefined;
color?: string | undefined;
maxHeight?: string | number | undefined;
maxWidth?: string | number | undefined;
minHeight?: string | number | undefined;
minWidth?: string | number | undefined;
position?: string | undefined;
transition?: string | boolean | undefined;
value?: any;
draggable?: boolean | "false" | "true" | undefined;
class?: any;
referrerpolicy?: "origin" | "same-origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url" | undefined;
alt?: string | undefined;
crossorigin?: "" | "anonymous" | "use-credentials" | undefined;
sizes?: string | undefined;
srcset?: string | undefined;
contentClass?: string | undefined;
rounded?: string | number | boolean | undefined;
gradient?: string | undefined;
lazySrc?: string | undefined;
selectedClass?: string | undefined;
reverseTransition?: string | boolean | undefined;
} & {
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
default?: (() => vue.VNodeChild) | undefined;
placeholder?: (() => vue.VNodeChild) | undefined;
error?: (() => vue.VNodeChild) | undefined;
sources?: (() => vue.VNodeChild) | undefined;
};
'v-slots'?: {
default?: false | (() => vue.VNodeChild) | undefined;
placeholder?: false | (() => vue.VNodeChild) | undefined;
error?: false | (() => vue.VNodeChild) | undefined;
sources?: false | (() => vue.VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
"v-slot:placeholder"?: false | (() => vue.VNodeChild) | undefined;
"v-slot:error"?: false | (() => vue.VNodeChild) | undefined;
"v-slot:sources"?: false | (() => vue.VNodeChild) | undefined;
}, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
inline: boolean;
style: vue.StyleValue;
eager: boolean;
disabled: boolean;
options: IntersectionObserverInit;
cover: boolean;
src: string | srcObject;
} & {
height?: string | number | undefined;
width?: string | number | undefined;
aspectRatio?: string | number | undefined;
color?: string | undefined;
maxHeight?: string | number | undefined;
maxWidth?: string | number | undefined;
minHeight?: string | number | undefined;
minWidth?: string | number | undefined;
position?: string | undefined;
transition?: string | boolean | undefined;
value?: any;
draggable?: boolean | "false" | "true" | undefined;
class?: any;
referrerpolicy?: "origin" | "same-origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url" | undefined;
alt?: string | undefined;
crossorigin?: "" | "anonymous" | "use-credentials" | undefined;
sizes?: string | undefined;
srcset?: string | undefined;
contentClass?: string | undefined;
rounded?: string | number | boolean | undefined;
gradient?: string | undefined;
lazySrc?: string | undefined;
selectedClass?: string | undefined;
reverseTransition?: string | boolean | undefined;
} & {
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
default?: (() => vue.VNodeChild) | undefined;
placeholder?: (() => vue.VNodeChild) | undefined;
error?: (() => vue.VNodeChild) | undefined;
sources?: (() => vue.VNodeChild) | undefined;
};
'v-slots'?: {
default?: false | (() => vue.VNodeChild) | undefined;
placeholder?: false | (() => vue.VNodeChild) | undefined;
error?: false | (() => vue.VNodeChild) | undefined;
sources?: false | (() => vue.VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
"v-slot:placeholder"?: false | (() => vue.VNodeChild) | undefined;
"v-slot:error"?: false | (() => vue.VNodeChild) | undefined;
"v-slot:sources"?: false | (() => vue.VNodeChild) | undefined;
}, {
inline: boolean;
transition: string | boolean;
style: vue.StyleValue;
draggable: boolean | "false" | "true";
eager: boolean;
disabled: boolean;
options: IntersectionObserverInit;
cover: boolean;
src: string | srcObject;
rounded: string | number | boolean;
reverseTransition: string | boolean;
}, true, {}, vue.SlotsType<Partial<{
default: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
placeholder: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
error: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
sources: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
}>>, {
P: {};
B: {};
D: {};
C: {};
M: {};
Defaults: {};
}, {
inline: boolean;
style: vue.StyleValue;
eager: boolean;
disabled: boolean;
options: IntersectionObserverInit;
cover: boolean;
src: string | srcObject;
} & {
height?: string | number | undefined;
width?: string | number | undefined;
aspectRatio?: string | number | undefined;
color?: string | undefined;
maxHeight?: string | number | undefined;
maxWidth?: string | number | undefined;
minHeight?: string | number | undefined;
minWidth?: string | number | undefined;
position?: string | undefined;
transition?: string | boolean | undefined;
value?: any;
draggable?: boolean | "false" | "true" | undefined;
class?: any;
referrerpolicy?: "origin" | "same-origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url" | undefined;
alt?: string | undefined;
crossorigin?: "" | "anonymous" | "use-credentials" | undefined;
sizes?: string | undefined;
srcset?: string | undefined;
contentClass?: string | undefined;
rounded?: string | number | boolean | undefined;
gradient?: string | undefined;
lazySrc?: string | undefined;
selectedClass?: string | undefined;
reverseTransition?: string | boolean | undefined;
} & {
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
default?: (() => vue.VNodeChild) | undefined;
placeholder?: (() => vue.VNodeChild) | undefined;
error?: (() => vue.VNodeChild) | undefined;
sources?: (() => vue.VNodeChild) | undefined;
};
'v-slots'?: {
default?: false | (() => vue.VNodeChild) | undefined;
placeholder?: false | (() => vue.VNodeChild) | undefined;
error?: false | (() => vue.VNodeChild) | undefined;
sources?: false | (() => vue.VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
"v-slot:placeholder"?: false | (() => vue.VNodeChild) | undefined;
"v-slot:error"?: false | (() => vue.VNodeChild) | undefined;
"v-slot:sources"?: false | (() => vue.VNodeChild) | undefined;
}, {}, {}, {}, {}, {
inline: boolean;
transition: string | boolean;
style: vue.StyleValue;
draggable: boolean | "false" | "true";
eager: boolean;
disabled: boolean;
options: IntersectionObserverInit;
cover: boolean;
src: string | srcObject;
rounded: string | number | boolean;
reverseTransition: string | boolean;
}>;
__isFragment?: undefined;
__isTeleport?: undefined;
__isSuspense?: undefined;
} & vue.ComponentOptionsBase<{
inline: boolean;
style: vue.StyleValue;
eager: boolean;
disabled: boolean;
options: IntersectionObserverInit;
cover: boolean;
src: string | srcObject;
} & {
height?: string | number | undefined;
width?: string | number | undefined;
aspectRatio?: string | number | undefined;
color?: string | undefined;
maxHeight?: string | number | undefined;
maxWidth?: string | number | undefined;
minHeight?: string | number | undefined;
minWidth?: string | number | undefined;
position?: string | undefined;
transition?: string | boolean | undefined;
value?: any;
draggable?: boolean | "false" | "true" | undefined;
class?: any;
referrerpolicy?: "origin" | "same-origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url" | undefined;
alt?: string | undefined;
crossorigin?: "" | "anonymous" | "use-credentials" | undefined;
sizes?: string | undefined;
srcset?: string | undefined;
contentClass?: string | undefined;
rounded?: string | number | boolean | undefined;
gradient?: string | undefined;
lazySrc?: string | undefined;
selectedClass?: string | undefined;
reverseTransition?: string | boolean | undefined;
} & {
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
default?: (() => vue.VNodeChild) | undefined;
placeholder?: (() => vue.VNodeChild) | undefined;
error?: (() => vue.VNodeChild) | undefined;
sources?: (() => vue.VNodeChild) | undefined;
};
'v-slots'?: {
default?: false | (() => vue.VNodeChild) | undefined;
placeholder?: false | (() => vue.VNodeChild) | undefined;
error?: false | (() => vue.VNodeChild) | undefined;
sources?: false | (() => vue.VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
"v-slot:placeholder"?: false | (() => vue.VNodeChild) | undefined;
"v-slot:error"?: false | (() => vue.VNodeChild) | undefined;
"v-slot:sources"?: false | (() => vue.VNodeChild) | undefined;
}, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
inline: boolean;
transition: string | boolean;
style: vue.StyleValue;
draggable: boolean | "false" | "true";
eager: boolean;
disabled: boolean;
options: IntersectionObserverInit;
cover: boolean;
src: string | srcObject;
rounded: string | number | boolean;
reverseTransition: string | boolean;
}, {}, string, vue.SlotsType<Partial<{
default: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
placeholder: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
error: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
sources: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
}>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
eager: BooleanConstructor;
value: null;
disabled: BooleanConstructor;
selectedClass: StringConstructor;
class: vue.PropType<any>;
style: {
type: vue.PropType<vue.StyleValue>;
default: null;
};
reverseTransition: {
type: (StringConstructor | BooleanConstructor)[];
default: undefined;
};
transition: {
type: (StringConstructor | BooleanConstructor)[];
default: undefined;
};
rounded: {
type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
default: undefined;
};
height: (StringConstructor | NumberConstructor)[];
maxHeight: (StringConstructor | NumberConstructor)[];
maxWidth: (StringConstructor | NumberConstructor)[];
minHeight: (StringConstructor | NumberConstructor)[];
minWidth: (StringConstructor | NumberConstructor)[];
width: (StringConstructor | NumberConstructor)[];
aspectRatio: (StringConstructor | NumberConstructor)[];
contentClass: StringConstructor;
inline: BooleanConstructor;
alt: StringConstructor;
cover: BooleanConstructor;
color: StringConstructor;
draggable: {
type: vue.PropType<boolean | "false" | "true">;
default: undefined;
};
gradient: StringConstructor;
lazySrc: StringConstructor;
options: {
type: vue.PropType<IntersectionObserverInit>;
default: () => {
root: undefined;
rootMargin: undefined;
threshold: undefined;
};
};
sizes: StringConstructor;
src: {
type: vue.PropType<string | srcObject>;
default: string;
};
crossorigin: vue.PropType<"" | "anonymous" | "use-credentials">;
referrerpolicy: vue.PropType<"origin" | "same-origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url">;
srcset: StringConstructor;
position: StringConstructor;
}, vue.ExtractPropTypes<{
eager: BooleanConstructor;
value: null;
disabled: BooleanConstructor;
selectedClass: StringConstructor;
class: vue.PropType<any>;
style: {
type: vue.PropType<vue.StyleValue>;
default: null;
};
reverseTransition: {
type: (StringConstructor | BooleanConstructor)[];
default: undefined;
};
transition: {
type: (StringConstructor | BooleanConstructor)[];
default: undefined;
};
rounded: {
type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
default: undefined;
};
height: (StringConstructor | NumberConstructor)[];
maxHeight: (StringConstructor | NumberConstructor)[];
maxWidth: (StringConstructor | NumberConstructor)[];
minHeight: (StringConstructor | NumberConstructor)[];
minWidth: (StringConstructor | NumberConstructor)[];
width: (StringConstructor | NumberConstructor)[];
aspectRatio: (StringConstructor | NumberConstructor)[];
contentClass: StringConstructor;
inline: BooleanConstructor;
alt: StringConstructor;
cover: BooleanConstructor;
color: StringConstructor;
draggable: {
type: vue.PropType<boolean | "false" | "true">;
default: undefined;
};
gradient: StringConstructor;
lazySrc: StringConstructor;
options: {
type: vue.PropType<IntersectionObserverInit>;
default: () => {
root: undefined;
rootMargin: undefined;
threshold: undefined;
};
};
sizes: StringConstructor;
src: {
type: vue.PropType<string | srcObject>;
default: string;
};
crossorigin: vue.PropType<"" | "anonymous" | "use-credentials">;
referrerpolicy: vue.PropType<"origin" | "same-origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url">;
srcset: StringConstructor;
position: StringConstructor;
}>>;
type VCarouselItem = InstanceType<typeof VCarouselItem>;
export { VCarousel, VCarouselItem };

View File

@@ -0,0 +1,3 @@
export { VCarousel } from "./VCarousel.mjs";
export { VCarouselItem } from "./VCarouselItem.mjs";
//# sourceMappingURL=index.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.mjs","names":["VCarousel","VCarouselItem"],"sources":["../../../src/components/VCarousel/index.ts"],"sourcesContent":["export { VCarousel } from './VCarousel'\nexport { VCarouselItem } from './VCarouselItem'\n"],"mappings":"SAASA,SAAS;AAAA,SACTC,aAAa"}