x-sortable
Sortable Web Component
npm i x-sortable
|
pnpm add x-sortable
|
yarn add x-sortable
|
Examples
# web
# view source
example/web.ts
import { SortableElement } from 'x-sortable'
const style = document.createElement('style')
document.head.appendChild(style)
style.textContent = /*css*/ `
x-sortable {
display: flex;
flex-flow: column nowrap;
}
button {
padding: 10px;
background: #444;
color: #aaa;
border: 2px solid #988;
}
`
customElements.define('x-sortable', SortableElement)
const sortable = new SortableElement()
sortable.vertical = true
// sortable.selector = 'button'
const items: any = []
for (let i = 0; i < 10; i++) {
const btn = document.createElement('button')
btn.textContent = '' + i
items.push(btn)
sortable.appendChild(btn)
}
document.body.appendChild(sortable)
sortable.onsortend = ({ detail: { oldIndex, newIndex } }) => {
const item = items.splice(oldIndex, 1)[0]
items.splice(newIndex, 0, item)
for (const item of items)
sortable.appendChild(item)
}
API
# SortableElement
src/x-sortable.ts#L16
# $
src/work/stagas/sigl/dist/types/sigl.d.ts#L25 Context<SortableElement & JsxContext<SortableElement> & Omit<{
<T>(ctor) =>
-
CleanClass<T>
<T>(ctx) =>
-
Wrapper<T>
},
"transition"
>> # context
src/work/stagas/sigl/dist/types/sigl.d.ts#L26 ContextClass<SortableElement & JsxContext<SortableElement> & Omit<{
<T>(ctor) =>
-
CleanClass<T>
<T>(ctx) =>
-
Wrapper<T>
},
"transition"
>> # onmounted
EventHandler<SortableElement, CustomEvent<any>>
# onsortend
EventHandler<SortableElement, CustomEvent<{
}>>
# onsortstart
EventHandler<SortableElement, CustomEvent<{
}>>
# onunmounted
EventHandler<SortableElement, CustomEvent<any>>
# state
= ...
src/x-sortable.ts#L19 State<SortableElement, {
# Idle
= 'idle'
"idle"
# Sort
= 'sort'
"sort"
"idle"
| "sort"
> & EventMethods<SortableElement, {
# idlecancel
CustomEvent<any>
# idleend
CustomEvent<any>
# idlepause
CustomEvent<any>
# idleresume
CustomEvent<any>
# idlestart
CustomEvent<any>
# sortcancel
CustomEvent<any>
# sortend
CustomEvent<any>
# sortpause
CustomEvent<any>
# sortresume
CustomEvent<any>
# sortstart
CustomEvent<any>
# idlecancel
CustomEvent<any>
# idleend
CustomEvent<any>
# idlepause
CustomEvent<any>
# idleresume
CustomEvent<any>
# idlestart
CustomEvent<any>
# sortcancel
CustomEvent<any>
# sortend
CustomEvent<any>
# sortpause
CustomEvent<any>
# sortresume
CustomEvent<any>
# sortstart
CustomEvent<any>
# created
(ctx)
# ctx
Context<SortableElement & JsxContext<SortableElement> & Omit<{
<T>(ctor) =>
-
CleanClass<T>
<T>(ctx) =>
-
Wrapper<T>
},
"transition"
>> created(ctx) =>
- void
# mounted
($)
src/x-sortable.ts#L36
# $
Context<SortableElement & JsxContext<SortableElement> & Omit<{
<T>(ctor) =>
-
CleanClass<T>
<T>(ctx) =>
-
Wrapper<T>
},
"transition"
>> mounted($) =>
- void
# on
(name)
on<K>(name) =>
-
On<Fn<[ EventHandler<SortableElement, LifecycleEvents & SortableEvents [K]> ], Off>>
# toJSON
()
toJSON() =>
-
Pick<SortableElement, keyof SortableElement>
Credits
Contributing
All contributions are welcome!