init component

This commit is contained in:
Robin COuret
2026-02-16 17:28:37 +01:00
parent 460c7a25e0
commit e0e50af706
4557 changed files with 666911 additions and 8 deletions

1
node_modules/buetify/lib/composables/toggle/index.d.ts generated vendored Executable file
View File

@@ -0,0 +1 @@
export * from './useToggle';

2
node_modules/buetify/lib/composables/toggle/index.js generated vendored Executable file
View File

@@ -0,0 +1,2 @@
export * from './useToggle';
//# sourceMappingURL=index.js.map

1
node_modules/buetify/lib/composables/toggle/index.js.map generated vendored Executable file
View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../src/composables/toggle/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAd","sourcesContent":["export * from './useToggle';\n"],"sourceRoot":"","file":"index.js"}

76
node_modules/buetify/lib/composables/toggle/useToggle.d.ts generated vendored Executable file
View File

@@ -0,0 +1,76 @@
import { FunctionN } from 'fp-ts/lib/function';
import { IO } from 'fp-ts/lib/IO';
import { Ref, PropType } from 'vue';
export declare function getUseTogglePropsDefinition<K extends string>(statusName: K, defaultStatus?: boolean): UseTogglePropsDefinition<K>;
export declare type UseTogglePropsDefinition<K extends string> = {
onToggle: {
type: PropType<FunctionN<[boolean], void>>;
required: false;
};
onSetOn: {
type: PropType<IO<void>>;
required: false;
};
onSetOff: {
type: PropType<IO<void>>;
required: false;
};
} & Record<K, {
type: PropType<boolean>;
default: boolean;
}> & Record<'hasPopup', {
type: PropType<boolean>;
default: boolean;
}>;
export declare type UseToggleProps<K extends string> = Record<K, boolean> & Record<'hasPopup', boolean>;
export declare function getToggleAttrs(status: Ref<boolean>, hasPopup: Ref<boolean>): import("vue").ComputedRef<{
'aria-haspopup'?: boolean;
tabindex: number;
role: string;
type: string;
'aria-pressed': boolean;
'aria-expanded': boolean;
}>;
export declare type ToggleAttrs = ReturnType<typeof getToggleAttrs> extends Ref<infer A> ? A : never;
declare function getListeners(toggle: IO<void>): {
onClick: IO<void>;
onKeydown: (e: KeyboardEvent) => void;
};
export declare type ToggleListeners = ReturnType<typeof getListeners>;
export declare function useToggle<K extends string>(props: {
onToggle?: FunctionN<[boolean], void>;
onSetOn?: IO<void>;
onSetOff?: IO<void>;
} & Record<K, boolean> & {
hasPopup: boolean;
}, statusName: K): {
isOn: import("vue").WritableComputedRef<boolean>;
isOff: import("vue").ComputedRef<boolean>;
attrs: import("vue").ComputedRef<{
'aria-haspopup'?: boolean;
tabindex: number;
role: string;
type: string;
'aria-pressed': boolean;
'aria-expanded': boolean;
}>;
listeners: {
onClick: IO<void>;
onKeydown: (e: KeyboardEvent) => void;
};
props: import("vue").ComputedRef<{
onClick: IO<void>;
onKeydown: (e: KeyboardEvent) => void;
'aria-haspopup'?: boolean;
tabindex: number;
role: string;
type: string;
'aria-pressed': boolean;
'aria-expanded': boolean;
}>;
setOn: (e?: Event | undefined) => void;
setOff: (e?: Event | undefined) => void;
toggle: (e?: Event | undefined) => void;
};
export declare type Toggle = ReturnType<typeof useToggle>;
export {};

121
node_modules/buetify/lib/composables/toggle/useToggle.js generated vendored Executable file
View File

@@ -0,0 +1,121 @@
import { watch, computed, shallowRef, toRef } from 'vue';
import { isEnterEvent } from '../../utils/eventHelpers';
export function getUseTogglePropsDefinition(statusName, defaultStatus = false) {
return {
[statusName]: {
type: Boolean,
default: defaultStatus
},
[`onUpdate:${statusName}`]: {
type: Function,
required: false
},
hasPopup: {
type: Boolean,
default: false
},
onToggle: {
type: Function,
required: false
},
onSetOn: {
type: Function,
required: false
},
onSetOff: {
type: Function,
required: false
}
};
}
export function getToggleAttrs(status, hasPopup) {
return computed(() => ({
tabindex: 0,
role: 'button',
type: 'button',
'aria-pressed': status.value,
'aria-expanded': status.value,
...(hasPopup.value ? {
'aria-haspopup': true
} : {})
}));
}
function getListeners(toggle) {
return {
onClick: toggle,
onKeydown: e => {
if (isEnterEvent(e)) {
e.preventDefault();
toggle();
}
}
};
}
export function useToggle(props, statusName) {
const internalStatus = shallowRef(props[statusName]);
const value = computed({
get() {
return internalStatus.value;
},
set(val) {
const cValue = internalStatus.value;
if (cValue !== val && props.onToggle) {
props.onToggle(val);
}
if (val && props.onSetOn) {
props.onSetOn();
}
if (!val && props.onSetOff) {
props.onSetOff();
}
internalStatus.value = val;
const updateModel = props[`onUpdate:${statusName}`]; //eslint-disable-line
if (updateModel) {
updateModel(val);
}
}
});
watch(() => props[statusName], status => {
internalStatus.value = status;
});
function setOn(e) {
e && e?.stopPropagation();
value.value = true;
}
function setOff(e) {
e && e?.stopPropagation();
value.value = false;
}
function toggle(e) {
e && e?.stopPropagation();
value.value = !value.value;
}
const attrs = getToggleAttrs(value, toRef(props, 'hasPopup'));
const listeners = getListeners(toggle);
return {
isOn: value,
isOff: computed(() => internalStatus.value === false),
attrs,
listeners,
props: computed(() => ({ ...attrs.value,
...listeners
})),
setOn,
setOff,
toggle
};
}
//# sourceMappingURL=useToggle.js.map

File diff suppressed because one or more lines are too long