init component
This commit is contained in:
1
node_modules/buetify/lib/composables/toggle/index.d.ts
generated
vendored
Executable file
1
node_modules/buetify/lib/composables/toggle/index.d.ts
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
export * from './useToggle';
|
||||
2
node_modules/buetify/lib/composables/toggle/index.js
generated
vendored
Executable file
2
node_modules/buetify/lib/composables/toggle/index.js
generated
vendored
Executable 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
1
node_modules/buetify/lib/composables/toggle/index.js.map
generated
vendored
Executable 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
76
node_modules/buetify/lib/composables/toggle/useToggle.d.ts
generated
vendored
Executable 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
121
node_modules/buetify/lib/composables/toggle/useToggle.js
generated
vendored
Executable 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
|
||||
1
node_modules/buetify/lib/composables/toggle/useToggle.js.map
generated
vendored
Executable file
1
node_modules/buetify/lib/composables/toggle/useToggle.js.map
generated
vendored
Executable file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user