@cran/lib.vue.ref
Version:
Vue Reactivity Extensions
33 lines (30 loc) • 955 B
text/typescript
import { computed } from "vue";
import { type EagerComputed, type MaybeWrapped, unwrap } from "../utility";
/**
* @since 0.0.1
* @category Array
* @inheritdoc Array#toSpliced
*/
export function useSpliced<T> (
values: MaybeWrapped<Array<MaybeWrapped<T>>>,
start: MaybeWrapped<number>,
deleteCount?: MaybeWrapped<number | undefined>
): EagerComputed<Array<T>>;
export function useSpliced<T> (
values: MaybeWrapped<Array<MaybeWrapped<T>>>,
start: MaybeWrapped<number>,
deleteCount: MaybeWrapped<number>,
...items: Array<MaybeWrapped<T>>
): EagerComputed<Array<T>>;
export function useSpliced<T> (
values: MaybeWrapped<Array<MaybeWrapped<T>>>,
start: MaybeWrapped<number>,
deleteCount?: MaybeWrapped<number | undefined>,
...items: Array<MaybeWrapped<T>>
) {
return computed(function compute ( ) {
return unwrap(values).map<T>(unwrap).splice(
unwrap(start), unwrap(deleteCount)!, ...items.map<T>(unwrap)
);
});
}