<zl-dnd>
This webcomponent follows the open-wc recommendation.
Installation
npm i zl-dnd
Usage
<script type="module">
import 'zl-dnd/zl-dnd.js';
</script>
<zl-dnd
ondragstart="dragstartHandle()"
ondragmove="dragmoveHandle()"
ondrop="dropHandle()"
>
<ul id="drop01" class="dnd-droppable">
<li class="dnd-draggable">Aa</li>
<li class="dnd-draggable">Bb</li>
<li class="dnd-draggable">Cc</li>
</ul>
<ul id="drop02" class="dnd-droppable">
<li class="dnd-draggable">Aa</li>
<li class="dnd-draggable">Bb</li>
<li class="dnd-draggable">Cc</li>
</ul>
</zl-dnd>
Demo
<zl-dnd
selector="#ulID"
.selectorElement="${listDom}"
enable
@dragstart
@dragmove
@drop
>
<zl-dnd-sort direction="h|v" enable @move>
<pzl-dnd-sort-shadow></pzl-dnd-sort-shadow>
<pzl-dnd-sort-handle></pzl-dnd-sort-handle>
</zl-dnd-sort>
<zl-dnd-preview enable><zl-dnd-preview>
</zl-dnd>
<div id="list">
<ul id="drop01" class="dnd-droppable">
<li class="dnd-draggable">Aa</li>
<li class="dnd-draggable">Bb</li>
<li class="dnd-draggable">Cc</li>
</ul>
<ul id="drop02" class="dnd-droppable">
<li class="dnd-draggable">Aa</li>
<li class="dnd-draggable">Bb</li>
<li class="dnd-draggable">Cc</li>
</ul>
</div>
PZL-Dnd
<div id="dnd-list">
<pzl-dnd></pzl-dnd>
<ul id="drop01" class="dnd-droppable">
<li class="dnd-draggable">Aa</li>
<li class="dnd-draggable">Bb</li>
<li class="dnd-draggable">Cc</li>
</ul>
<ul id="drop02" class="dnd-droppable">
<li class="dnd-draggable">Aa</li>
<li class="dnd-draggable">Bb</li>
<li class="dnd-draggable">Cc</li>
</ul>
</div>
DragEvent properties
e.dragEl;
e.x;
e.y;
Linting with ESLint, Prettier, and Types
To scan the project for linting errors, run
npm run lint
You can lint with ESLint and Prettier individually as well
npm run lint:eslint
npm run lint:prettier
To automatically fix many linting errors, run
npm run format
You can format using ESLint and Prettier individually as well
npm run format:eslint
npm run format:prettier
Testing with Karma
To run the suite of karma tests, run
npm run test
To run the tests in watch mode (for TDD, for example), run
npm run test:watch
Demoing with Storybook
To run a local instance of Storybook for your component, run
npm run storybook
To build a production version of Storybook, run
npm run storybook:build
Tooling configs
For most of the tools, the configuration is in the package.json
to reduce the amount of files in your project.
If you customize the configuration a lot, you can consider moving them to individual files.
es-dev-server
Local Demo with npm start
To run a local development server that serves the basic demo located in demo/index.html