CINXE.COM

Git

<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <link rel="stylesheet" href="https://static-production.npmjs.com/styles.3c3ef91f073352bb91e7.css" /> <title data-react-helmet="true">sortablejs - npm</title> <meta data-react-helmet="true" http-equiv="cleartype" content="on"/><meta data-react-helmet="true" name="apple-mobile-web-app-capable" content="yes"/><meta data-react-helmet="true" name="mobile-web-app-capable" content="yes"/><meta data-react-helmet="true" name="viewport" content="width=device-width,minimum-scale=1.0,initial-scale=1,user-scalable=yes"/><meta data-react-helmet="true" property="og:image" content="https://static-production.npmjs.com/338e4905a2684ca96e08c7780fc68412.png"/><meta data-react-helmet="true" name="msapplication-TileColor" content="#cb3837"/><meta data-react-helmet="true" name="msapplication-TileImage" content="https://static-production.npmjs.com/7a7ffabbd910fc60161bc04f2cee4160.png"/><meta data-react-helmet="true" name="msapplication-config" content="https://static-production.npmjs.com/668aac888e52ae13cac9cfd71fabd31f.xml"/><meta data-react-helmet="true" name="theme-color" content="#cb3837"/><meta data-react-helmet="true" name="description" content="JavaScript library for reorderable drag-and-drop lists on modern browsers and touch devices. No jQuery required. Supports Meteor, AngularJS, React, Polymer, Vue, Knockout and any CSS library, e.g. Bootstrap.. Latest version: 1.15.6, last published: 3 months ago. Start using sortablejs in your project by running `npm i sortablejs`. There are 3011 other projects in the npm registry using sortablejs."/><meta data-react-helmet="true" property="og:description" content="JavaScript library for reorderable drag-and-drop lists on modern browsers and touch devices. No jQuery required. Supports Meteor, AngularJS, React, Polymer, Vue, Knockout and any CSS library, e.g. Bootstrap.. Latest version: 1.15.6, last published: 3 months ago. Start using sortablejs in your project by running `npm i sortablejs`. There are 3011 other projects in the npm registry using sortablejs."/><meta data-react-helmet="true" property="og:title" content="sortablejs"/><meta data-react-helmet="true" property="og:url" content="https://www.npmjs.com/package/sortablejs"/><meta data-react-helmet="true" property="og:site_name" content="npm"/><meta data-react-helmet="true" name="keywords" content="sortable,reorder,drag,meteor,angular,ng-sortable,react,vue,mixin"/><meta data-react-helmet="true" name="twitter:card" content="summary"/><meta data-react-helmet="true" name="twitter:url" content="https://www.npmjs.com/package/sortablejs"/><meta data-react-helmet="true" name="twitter:title" content="npm: sortablejs"/><meta data-react-helmet="true" name="twitter:description" content="JavaScript library for reorderable drag-and-drop lists on modern browsers and touch devices. No jQuery required. Supports Meteor, AngularJS, React, Polymer, Vue, Knockout and any CSS library, e.g. Bootstrap.. Latest version: 1.15.6, last published: 3 months ago. Start using sortablejs in your project by running `npm i sortablejs`. There are 3011 other projects in the npm registry using sortablejs."/> <link data-react-helmet="true" href="https://static-production.npmjs.com/osd.xml" rel="search" title="npm package search" type="application/opensearchdescription+xml"/><link data-react-helmet="true" rel="apple-touch-icon" sizes="120x120" href="https://static-production.npmjs.com/58a19602036db1daee0d7863c94673a4.png"/><link data-react-helmet="true" rel="apple-touch-icon" sizes="144x144" href="https://static-production.npmjs.com/7a7ffabbd910fc60161bc04f2cee4160.png"/><link data-react-helmet="true" rel="apple-touch-icon" sizes="152x152" href="https://static-production.npmjs.com/34110fd7686e2c90a487ca98e7336e99.png"/><link data-react-helmet="true" rel="apple-touch-icon" sizes="180x180" href="https://static-production.npmjs.com/3dc95981de4241b35cd55fe126ab6b2c.png"/><link data-react-helmet="true" rel="icon" type="image/png" href="https://static-production.npmjs.com/b0f1a8318363185cc2ea6a40ac23eeb2.png" sizes="32x32"/><link data-react-helmet="true" rel="icon" type="image/png" href="https://static-production.npmjs.com/1996fcfdf7ca81ea795f67f093d7f449.png" sizes="230x230"/><link data-react-helmet="true" rel="icon" type="image/png" href="https://static-production.npmjs.com/f1786e9b7cba9753ca7b9c40e8b98f67.png" sizes="96x96"/><link data-react-helmet="true" rel="icon" type="image/png" href="https://static-production.npmjs.com/5f6e93af5bf0f5dcdd1eecdac99f51ee.png" sizes="192x192"/><link data-react-helmet="true" rel="icon" type="image/png" href="https://static-production.npmjs.com/c426a1116301d1fd178c51522484127a.png" sizes="228x228"/><link data-react-helmet="true" rel="icon" type="image/png" href="https://static-production.npmjs.com/da3ab40fb0861d15c83854c29f5f2962.png" sizes="16x16"/> </head> <body> <div id="app"><div class="_452c3ec4 d68c66a8"><div class="cf325dbd list ma0 pa0 tr z-999"><div class="c746cc21 list ma0 pa0 tr z-999"></div></div><div class="flex flex-column vh-100"><header class="_755f5b0f bg-white z-2 bb b--black-20"><div></div><div class="e7070742 pv3-ns ph1-ns bg-white"><div id="header" class="bbefbfcc">skip to:<a aria-label="skip to content" class="d6d0dbcf" href="#main">content</a><a aria-label="skip to package search" class="d6d0dbcf" href="#search">package search</a><a aria-label="skip to sign in" class="d6d0dbcf" href="#signin">sign in</a></div><div class="ef7c6e62 center mw9 border-box ph4-ns ph3 flex items-center"><span class="_0edb515f pr3 dn dib-ns link lh-title dim b--white-30">❤</span><nav class="_4a5f2a79 db w-100 w-auto-ns truncate" aria-label="Product Navigation"><ul id="main-menu" class="list pl0" role="menu" aria-label="Nav Menu"><li role="none" class="dib"><a href="/products/pro" role="menuitem" class="c6c55db4 no-underline f6-ns f7 fw5 dim pr2 pl2" id="nav-pro-link">Pro</a></li><li role="none"><a href="/products/teams" role="menuitem" class="c6c55db4 no-underline f6-ns f7 fw5 dim pr2 pl2" id="nav-teams-link">Teams</a></li><li role="none" class="dib"><a href="/products" role="menuitem" class="c6c55db4 no-underline f6-ns f7 fw5 dim pr2 pl2" id="nav-pricing-link">Pricing</a></li><li role="none" class="dib"><a href="https://docs.npmjs.com" role="menuitem" class="c6c55db4 no-underline f6-ns f7 fw5 dim pr2 pl2" id="nav-docs-link">Documentation</a></li></ul></nav></div></div><div class="_4ea0e50d bt b--black-10"><div class="c5b9953b center mw9 flex flex-wrap ph4-ns border-box"><span class="_657f443d">npm</span><div class="af43375d mt3 db mr4-ns pb3 pb0-ns flex-auto 2-ns ph3 ph0-ns"><a href="/" aria-label="Npm"><svg viewBox="0 0 780 250" aria-hidden="true"><path fill="#231F20" d="M240,250h100v-50h100V0H240V250z M340,50h50v100h-50V50z M480,0v200h100V50h50v150h50V50h50v150h50V0H480z M0,200h100V50h50v150h50V0H0V200z" stroke-width="5" stroke="#f7f7f7"></path></svg></a></div><div id="search" class="_581ebd89 relative flex-auto w-100 w-50-ns pv2-ns order-1-ns order-2"><form id="search" method="GET" action="/search" class="_13c93d41 relative flex bg-transparent ph3 ph2 pv2 ph0-ns pv0-ns bt b--black-10 bn-ns"><div class="e82b10fd relative dde91b96"><div class="_2f299eeb nowrap flex"><span class="_705cdf4f db fl pl3 pr1"><svg width="15px" height="15px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" aria-hidden="true"><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g stroke="#777777" stroke-width="1.3"><g><path d="M13.4044,7.0274 C13.4044,10.5494 10.5494,13.4044 7.0274,13.4044 C3.5054,13.4044 0.6504,10.5494 0.6504,7.0274 C0.6504,3.5054 3.5054,0.6504 7.0274,0.6504 C10.5494,0.6504 13.4044,3.5054 13.4044,7.0274 Z"></path><path d="M11.4913,11.4913 L17.8683,17.8683"></path></g></g></g></svg></span><input type="search" role="combobox" name="q" hotkeys="[object Object]" placeholder="Search packages" aria-label="Search packages" aria-controls="typeahead-list-355179" aria-expanded="false" aria-activedescendant="" inputref="[object Object]" autoComplete="off" class="_390acbc5 f5 fw3 black relative" value="" element="input"/></div><div aria-live="polite" aria-atomic="true" class="_6f20b8d1"></div></div><button type="submit" class="_0da775bb bn pv2 ph4 f6 white pointer bn pv2 ph4 f6 white pointer" aria-label="Search">Search</button><input type="hidden" name="csrftoken" value="L8IBYyW9FBSF73JpQ0AAzdk7oRI0FOHnQ4Xj7rizbvS"/></form></div><div class="_6f31c82b ml3 mt2 mt0-ns pv2-ns flex-auto tr nowrap relative pointer fw6 order-1 order-2-ns"><div class="_1066d9e7 flex items-center self-center pl3"><a href="/signup" id="signup" class="_9752c8b3 pa2 lh-copy br2 f6 no-underline fw5 black dim ph3 mr3">Sign Up</a><a href="/login" id="signin" class="_352269a0 pa1 lh-copy br2 f6 no-underline fw5 black dim">Sign In</a></div></div></div></div></header><main id="main"> <div class="_36ae70e9 flex flex-row flex-wrap pb5 ph3-l mw-100 mt4-ns mt1 center-ns mh1" id="top"><div class="w-100 ph0-l ph3 ph4-m"><h2 class="cd6ce1fd flex flex-row justify-start items-center w-100 fw6 mt3 black dib ma0 tracked-tight no-underline hover-black f3-ns"><span class="_50685029 truncate">sortablejs</span><div data-nosnippet="true"><a href="/package/@types/sortablejs" class="flex"><img src="https://static-production.npmjs.com/6d9930e83bbb43bba93e22eda2871b55.svg" height="20px" title="This package has TypeScript declarations provided by @types/sortablejs" alt="DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/sortablejs package" class="aa30d277 pl3"/></a></div></h2><span class="_76473bea f6 dib ph0 pv2 mb2-ns black-80 nowrap f5 fw4 lh-copy">1.15.6<!-- --> • </span><span class="_813b53b2 _76473bea f6 dib ph0 pv2 mb2-ns black-80 nowrap f5 fw4 lh-copy">Public</span><span class="_76473bea f6 dib ph0 pv2 mb2-ns black-80 nowrap f5 fw4 lh-copy"> • Published <time dateTime="2024-11-28T18:21:49.918Z" title="11/28/2024, 6:21:49 PM">3 months ago</time></span></div><ul class="cfb2a888 flex flex-column flex-row-l w-100 ma0 pa0 mr2 mr0-l list" role="tablist" aria-owns="package-tab-readme package-tab-code package-tab-dependencies package-tab-dependents package-tab-versions"><li class="_8055e658 f5 fw5 tc pointer d9f99065 ac5f7ef8 f4 fw6 black-50" role="presentation"><a class="_38ce9a85 link db ph4 fw6" href="?activeTab=readme" aria-selected="true" role="tab" aria-controls="tabpanel-readme" id="package-tab-readme" tabindex="0"><span><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="file-alt" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z"></path></svg> Readme</span></a></li><li class="_8055e658 f5 fw5 tc pointer _7aa1ee94" role="presentation"><a class="_38ce9a85 link db ph4 fw6" href="?activeTab=code" aria-selected="false" role="tab" aria-controls="tabpanel-explore" id="package-tab-code" tabindex="-1"><span><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="file-archive" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zM128.4 336c-17.9 0-32.4 12.1-32.4 27 0 15 14.6 27 32.5 27s32.4-12.1 32.4-27-14.6-27-32.5-27zM224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6z"></path></svg>Code <span class="a17280e0"><span class="Label-sc-6dyj7v-0 kghsgn _22665c13">Beta</span></span></span></a></li><li class="_8055e658 f5 fw5 tc pointer c1f85151" role="presentation"><a class="_38ce9a85 link db ph4 fw6" href="?activeTab=dependencies" aria-selected="false" role="tab" aria-controls="tabpanel-dependencies" id="package-tab-dependencies" tabindex="-1"><span><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="cube" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z"></path></svg>0 Dependencies</span></a></li><li class="_8055e658 f5 fw5 tc pointer _7cec0316" role="presentation"><a class="_38ce9a85 link db ph4 fw6" href="?activeTab=dependents" aria-selected="false" role="tab" aria-controls="tabpanel-dependents" id="package-tab-dependents" tabindex="-1"><span><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="cubes" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z"></path></svg>3,011 Dependents</span></a></li><li class="_8055e658 f5 fw5 tc pointer b4fcfd19" role="presentation"><a class="_38ce9a85 link db ph4 fw6" href="?activeTab=versions" aria-selected="false" role="tab" aria-controls="tabpanel-versions" id="package-tab-versions" tabindex="-1"><span><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="tags" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z"></path></svg>45 Versions</span></a></li></ul><div class="_6620a4fd mw8-l mw-100 w-100 w-two-thirds-l ph3-m pt2 pl0-ns pl2"><span><section class="e22ba268 ph2 ph0-ns ml0-ns mr3-ns black-80" id="tabpanel-readme" aria-labelledby="package-tab-readme" role="tabpanel" data-attribute=""><div class=""><article><div id="readme" class="_704c034e _6d9832ac pr4-ns pl0-ns ph1-m pr3-m pr2"><div class="markdown-heading"><h1 class="heading-element">Sortable   <a href="https://opencollective.com/Sortable" rel="nofollow"><img src="https://camo.githubusercontent.com/efcb4699a921495de0aea87aea6e4162c58175df2057384c90457c6ccbb304c6/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f536f727461626c652f616c6c2f62616467652e7376673f6c6162656c3d66696e616e6369616c2b636f6e7472696275746f7273" alt="Financial Contributors on Open Collective" data-canonical-src="https://opencollective.com/Sortable/all/badge.svg?label=financial+contributors" style="max-width: 100%;"></a> <a href="https://circleci.com/gh/SortableJS/Sortable" rel="nofollow"><img src="https://camo.githubusercontent.com/895676a9a26cc7d8c868ed073b3837895aa274e330c9f62b9c8271f1c2a64d1f/68747470733a2f2f636972636c6563692e636f6d2f67682f536f727461626c654a532f536f727461626c652e7376673f7374796c653d737667" alt="CircleCI" data-canonical-src="https://circleci.com/gh/SortableJS/Sortable.svg?style=svg" style="max-width: 100%;"></a> <a href="https://deepscan.io/dashboard#view=project&amp;tid=3901&amp;pid=5666&amp;bid=43977" rel="nofollow"><img src="https://camo.githubusercontent.com/8a154c0d81d20c7b42b5d5040eae85f467f4b38d9993b308ee95ce8883b17adc/68747470733a2f2f646565707363616e2e696f2f6170692f7465616d732f333930312f70726f6a656374732f353636362f6272616e636865732f34333937372f62616467652f67726164652e737667" alt="DeepScan grade" data-canonical-src="https://deepscan.io/api/teams/3901/projects/5666/branches/43977/badge/grade.svg" style="max-width: 100%;"></a> <a href="https://www.jsdelivr.com/package/npm/sortablejs" rel="nofollow"><img src="https://camo.githubusercontent.com/633c05524faad22085146779209029126c0c7af9989c9cdf1da3319355964ae5/68747470733a2f2f646174612e6a7364656c6976722e636f6d2f76312f7061636b6167652f6e706d2f736f727461626c656a732f6261646765" alt="" data-canonical-src="https://data.jsdelivr.com/v1/package/npm/sortablejs/badge" style="max-width: 100%;"></a> <a href="https://www.npmjs.com/package/sortablejs" rel="nofollow"><img src="https://camo.githubusercontent.com/d1835d24b8d62a62f120d486755fe7eb057a3c38e0771d977dd8ec7583aef667/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f736f727461626c656a732e737667" alt="npm" data-canonical-src="https://img.shields.io/npm/v/sortablejs.svg" style="max-width: 100%;"></a> </h1><a id="user-content-sortable------" class="anchor" aria-label="Permalink: Sortable   " href="#sortable------"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Sortable is a JavaScript library for reorderable drag-and-drop lists.</p> <p>Demo: <a href="http://sortablejs.github.io/Sortable/" rel="nofollow">http://sortablejs.github.io/Sortable/</a></p> <p><a href="https://saucelabs.com/" rel="nofollow"><img width="250px" src="https://raw.githubusercontent.com/SortableJS/Sortable/HEAD/st/saucelabs.svg?sanitize=true" style="max-width: 100%;"></a></p> <div class="markdown-heading"><h2 class="heading-element">Features</h2><a id="user-content-features" class="anchor" aria-label="Permalink: Features" href="#features"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <ul> <li>Supports touch devices and <a href="http://caniuse.com/#search=drag" rel="nofollow">modern</a> browsers (including IE9)</li> <li>Can drag from one list to another or within the same list</li> <li>CSS animation when moving items</li> <li>Supports drag handles <em>and selectable text</em> (better than voidberg's html5sortable)</li> <li>Smart auto-scrolling</li> <li>Advanced swap detection</li> <li>Smooth animations</li> <li> <a href="https://github.com/SortableJS/Sortable/tree/master/plugins/MultiDrag">Multi-drag</a> support</li> <li>Support for CSS transforms</li> <li>Built using native HTML5 drag and drop API</li> <li>Supports <ul> <li><a href="https://github.com/SortableJS/meteor-sortablejs">Meteor</a></li> <li>Angular <ul> <li><a href="https://github.com/SortableJS/angular-sortablejs">2.0+</a></li> <li><a href="https://github.com/SortableJS/angular-legacy-sortablejs">1.*</a></li> </ul> </li> <li>React <ul> <li><a href="https://github.com/SortableJS/react-sortablejs">ES2015+</a></li> <li><a href="https://github.com/SortableJS/react-mixin-sortablejs">Mixin</a></li> </ul> </li> <li><a href="https://github.com/SortableJS/knockout-sortablejs">Knockout</a></li> <li><a href="https://github.com/SortableJS/polymer-sortablejs">Polymer</a></li> <li><a href="https://github.com/SortableJS/Vue.Draggable">Vue</a></li> <li><a href="https://github.com/SortableJS/ember-sortablejs">Ember</a></li> </ul> </li> <li>Supports any CSS library, e.g. <a href="#bs">Bootstrap</a> </li> <li>Simple API</li> <li>Support for <a href="#plugins">plugins</a> </li> <li><a href="#cdn">CDN</a></li> <li>No jQuery required (but there is <a href="https://github.com/SortableJS/jquery-sortablejs">support</a>)</li> <li>Typescript definitions at <code>@types/sortablejs</code> </li> </ul> <br> <div class="markdown-heading"><h3 class="heading-element">Articles</h3><a id="user-content-articles" class="anchor" aria-label="Permalink: Articles" href="#articles"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <ul> <li> <a href="https://github.com/SortableJS/Sortable/wiki/Dragging-Multiple-Items-in-Sortable">Dragging Multiple Items in Sortable</a> (April 26, 2019)</li> <li> <a href="https://github.com/SortableJS/Sortable/wiki/Swap-Thresholds-and-Direction">Swap Thresholds and Direction</a> (December 2, 2018)</li> <li> <a href="https://github.com/SortableJS/Sortable/wiki/Sortable-v1.0-%E2%80%94-New-capabilities/">Sortable v1.0 — New capabilities</a> (December 22, 2014)</li> <li> <a href="https://github.com/SortableJS/Sortable/wiki/Sorting-with-the-help-of-HTML5-Drag'n'Drop-API/">Sorting with the help of HTML5 Drag'n'Drop API</a> (December 23, 2013)</li> </ul> <br> <div class="markdown-heading"><h3 class="heading-element">Getting Started</h3><a id="user-content-getting-started" class="anchor" aria-label="Permalink: Getting Started" href="#getting-started"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Install with NPM:</p> <div class="highlight highlight-source-shell"><pre>npm install sortablejs --save</pre></div> <p>Install with Bower:</p> <div class="highlight highlight-source-shell"><pre>bower install --save sortablejs</pre></div> <p>Import into your project:</p> <div class="highlight highlight-source-js"><pre><span class="pl-c">// Default SortableJS</span> <span class="pl-k">import</span> <span class="pl-v">Sortable</span> <span class="pl-k">from</span> <span class="pl-s">'sortablejs'</span><span class="pl-kos">;</span> <span class="pl-c">// Core SortableJS (without default plugins)</span> <span class="pl-k">import</span> <span class="pl-v">Sortable</span> <span class="pl-k">from</span> <span class="pl-s">'sortablejs/modular/sortable.core.esm.js'</span><span class="pl-kos">;</span> <span class="pl-c">// Complete SortableJS (with all plugins)</span> <span class="pl-k">import</span> <span class="pl-v">Sortable</span> <span class="pl-k">from</span> <span class="pl-s">'sortablejs/modular/sortable.complete.esm.js'</span><span class="pl-kos">;</span></pre></div> <p>Cherrypick plugins:</p> <div class="highlight highlight-source-js"><pre><span class="pl-c">// Cherrypick extra plugins</span> <span class="pl-k">import</span> <span class="pl-v">Sortable</span><span class="pl-kos">,</span> <span class="pl-kos">{</span> <span class="pl-v">MultiDrag</span><span class="pl-kos">,</span> <span class="pl-v">Swap</span> <span class="pl-kos">}</span> <span class="pl-k">from</span> <span class="pl-s">'sortablejs'</span><span class="pl-kos">;</span> <span class="pl-v">Sortable</span><span class="pl-kos">.</span><span class="pl-en">mount</span><span class="pl-kos">(</span><span class="pl-k">new</span> <span class="pl-v">MultiDrag</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">,</span> <span class="pl-k">new</span> <span class="pl-v">Swap</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-c">// Cherrypick default plugins</span> <span class="pl-k">import</span> <span class="pl-v">Sortable</span><span class="pl-kos">,</span> <span class="pl-kos">{</span> <span class="pl-v">AutoScroll</span> <span class="pl-kos">}</span> <span class="pl-k">from</span> <span class="pl-s">'sortablejs/modular/sortable.core.esm.js'</span><span class="pl-kos">;</span> <span class="pl-v">Sortable</span><span class="pl-kos">.</span><span class="pl-en">mount</span><span class="pl-kos">(</span><span class="pl-k">new</span> <span class="pl-v">AutoScroll</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div> <hr> <div class="markdown-heading"><h3 class="heading-element">Usage</h3><a id="user-content-usage" class="anchor" aria-label="Permalink: Usage" href="#usage"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <div class="highlight highlight-text-html-basic"><pre><span class="pl-kos">&lt;</span><span class="pl-ent">ul</span> <span class="pl-c1">id</span>="<span class="pl-s">items</span>"<span class="pl-kos">&gt;</span> <span class="pl-kos">&lt;</span><span class="pl-ent">li</span><span class="pl-kos">&gt;</span>item 1<span class="pl-kos">&lt;/</span><span class="pl-ent">li</span><span class="pl-kos">&gt;</span> <span class="pl-kos">&lt;</span><span class="pl-ent">li</span><span class="pl-kos">&gt;</span>item 2<span class="pl-kos">&lt;/</span><span class="pl-ent">li</span><span class="pl-kos">&gt;</span> <span class="pl-kos">&lt;</span><span class="pl-ent">li</span><span class="pl-kos">&gt;</span>item 3<span class="pl-kos">&lt;/</span><span class="pl-ent">li</span><span class="pl-kos">&gt;</span> <span class="pl-kos">&lt;/</span><span class="pl-ent">ul</span><span class="pl-kos">&gt;</span></pre></div> <div class="highlight highlight-source-js"><pre><span class="pl-k">var</span> <span class="pl-s1">el</span> <span class="pl-c1">=</span> <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">getElementById</span><span class="pl-kos">(</span><span class="pl-s">'items'</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-k">var</span> <span class="pl-s1">sortable</span> <span class="pl-c1">=</span> <span class="pl-v">Sortable</span><span class="pl-kos">.</span><span class="pl-en">create</span><span class="pl-kos">(</span><span class="pl-s1">el</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div> <p>You can use any element for the list and its elements, not just <code>ul</code>/<code>li</code>. Here is an <a href="https://jsbin.com/visimub/edit?html,js,output" rel="nofollow">example with <code>div</code>s</a>.</p> <hr> <div class="markdown-heading"><h3 class="heading-element">Options</h3><a id="user-content-options" class="anchor" aria-label="Permalink: Options" href="#options"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <div class="highlight highlight-source-js"><pre><span class="pl-k">var</span> <span class="pl-s1">sortable</span> <span class="pl-c1">=</span> <span class="pl-k">new</span> <span class="pl-v">Sortable</span><span class="pl-kos">(</span><span class="pl-s1">el</span><span class="pl-kos">,</span> <span class="pl-kos">{</span> <span class="pl-c1">group</span>: <span class="pl-s">"name"</span><span class="pl-kos">,</span> <span class="pl-c">// or { name: "...", pull: [true, false, 'clone', array], put: [true, false, array] }</span> <span class="pl-c1">sort</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span> <span class="pl-c">// sorting inside list</span> <span class="pl-c1">delay</span>: <span class="pl-c1">0</span><span class="pl-kos">,</span> <span class="pl-c">// time in milliseconds to define when the sorting should start</span> <span class="pl-c1">delayOnTouchOnly</span>: <span class="pl-c1">false</span><span class="pl-kos">,</span> <span class="pl-c">// only delay if user is using touch</span> <span class="pl-c1">touchStartThreshold</span>: <span class="pl-c1">0</span><span class="pl-kos">,</span> <span class="pl-c">// px, how many pixels the point should move before cancelling a delayed drag event</span> <span class="pl-c1">disabled</span>: <span class="pl-c1">false</span><span class="pl-kos">,</span> <span class="pl-c">// Disables the sortable if set to true.</span> <span class="pl-c1">store</span>: <span class="pl-c1">null</span><span class="pl-kos">,</span> <span class="pl-c">// @see Store</span> <span class="pl-c1">animation</span>: <span class="pl-c1">150</span><span class="pl-kos">,</span> <span class="pl-c">// ms, animation speed moving items when sorting, `0` — without animation</span> <span class="pl-c1">easing</span>: <span class="pl-s">"cubic-bezier(1, 0, 0, 1)"</span><span class="pl-kos">,</span> <span class="pl-c">// Easing for animation. Defaults to null. See https://easings.net/ for examples.</span> <span class="pl-c1">handle</span>: <span class="pl-s">".my-handle"</span><span class="pl-kos">,</span> <span class="pl-c">// Drag handle selector within list items</span> <span class="pl-c1">filter</span>: <span class="pl-s">".ignore-elements"</span><span class="pl-kos">,</span> <span class="pl-c">// Selectors that do not lead to dragging (String or Function)</span> <span class="pl-c1">preventOnFilter</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span> <span class="pl-c">// Call `event.preventDefault()` when triggered `filter`</span> <span class="pl-c1">draggable</span>: <span class="pl-s">".item"</span><span class="pl-kos">,</span> <span class="pl-c">// Specifies which items inside the element should be draggable</span> <span class="pl-c1">dataIdAttr</span>: <span class="pl-s">'data-id'</span><span class="pl-kos">,</span> <span class="pl-c">// HTML attribute that is used by the `toArray()` method</span> <span class="pl-c1">ghostClass</span>: <span class="pl-s">"sortable-ghost"</span><span class="pl-kos">,</span> <span class="pl-c">// Class name for the drop placeholder</span> <span class="pl-c1">chosenClass</span>: <span class="pl-s">"sortable-chosen"</span><span class="pl-kos">,</span> <span class="pl-c">// Class name for the chosen item</span> <span class="pl-c1">dragClass</span>: <span class="pl-s">"sortable-drag"</span><span class="pl-kos">,</span> <span class="pl-c">// Class name for the dragging item</span> <span class="pl-c1">swapThreshold</span>: <span class="pl-c1">1</span><span class="pl-kos">,</span> <span class="pl-c">// Threshold of the swap zone</span> <span class="pl-c1">invertSwap</span>: <span class="pl-c1">false</span><span class="pl-kos">,</span> <span class="pl-c">// Will always use inverted swap zone if set to true</span> <span class="pl-c1">invertedSwapThreshold</span>: <span class="pl-c1">1</span><span class="pl-kos">,</span> <span class="pl-c">// Threshold of the inverted swap zone (will be set to swapThreshold value by default)</span> <span class="pl-c1">direction</span>: <span class="pl-s">'horizontal'</span><span class="pl-kos">,</span> <span class="pl-c">// Direction of Sortable (will be detected automatically if not given)</span> <span class="pl-c1">forceFallback</span>: <span class="pl-c1">false</span><span class="pl-kos">,</span> <span class="pl-c">// ignore the HTML5 DnD behaviour and force the fallback to kick in</span> <span class="pl-c1">fallbackClass</span>: <span class="pl-s">"sortable-fallback"</span><span class="pl-kos">,</span> <span class="pl-c">// Class name for the cloned DOM Element when using forceFallback</span> <span class="pl-c1">fallbackOnBody</span>: <span class="pl-c1">false</span><span class="pl-kos">,</span> <span class="pl-c">// Appends the cloned DOM Element into the Document's Body</span> <span class="pl-c1">fallbackTolerance</span>: <span class="pl-c1">0</span><span class="pl-kos">,</span> <span class="pl-c">// Specify in pixels how far the mouse should move before it's considered as a drag.</span> <span class="pl-c1">dragoverBubble</span>: <span class="pl-c1">false</span><span class="pl-kos">,</span> <span class="pl-c1">removeCloneOnHide</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span> <span class="pl-c">// Remove the clone element when it is not showing, rather than just hiding it</span> <span class="pl-c1">emptyInsertThreshold</span>: <span class="pl-c1">5</span><span class="pl-kos">,</span> <span class="pl-c">// px, distance mouse must be from empty sortable to insert drag element into it</span> <span class="pl-en">setData</span>: <span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-c">/** DataTransfer */</span><span class="pl-s1">dataTransfer</span><span class="pl-kos">,</span> <span class="pl-c">/** HTMLElement*/</span><span class="pl-s1">dragEl</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-s1">dataTransfer</span><span class="pl-kos">.</span><span class="pl-en">setData</span><span class="pl-kos">(</span><span class="pl-s">'Text'</span><span class="pl-kos">,</span> <span class="pl-s1">dragEl</span><span class="pl-kos">.</span><span class="pl-c1">textContent</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-c">// `dataTransfer` object of HTML5 DragEvent</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-c">// Element is chosen</span> <span class="pl-en">onChoose</span>: <span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-c">/**Event*/</span><span class="pl-s1">evt</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-s1">evt</span><span class="pl-kos">.</span><span class="pl-c1">oldIndex</span><span class="pl-kos">;</span> <span class="pl-c">// element index within parent</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-c">// Element is unchosen</span> <span class="pl-en">onUnchoose</span>: <span class="pl-k">function</span><span class="pl-kos">(</span><span class="pl-c">/**Event*/</span><span class="pl-s1">evt</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-c">// same properties as onEnd</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-c">// Element dragging started</span> <span class="pl-en">onStart</span>: <span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-c">/**Event*/</span><span class="pl-s1">evt</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-s1">evt</span><span class="pl-kos">.</span><span class="pl-c1">oldIndex</span><span class="pl-kos">;</span> <span class="pl-c">// element index within parent</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-c">// Element dragging ended</span> <span class="pl-en">onEnd</span>: <span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-c">/**Event*/</span><span class="pl-s1">evt</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-k">var</span> <span class="pl-s1">itemEl</span> <span class="pl-c1">=</span> <span class="pl-s1">evt</span><span class="pl-kos">.</span><span class="pl-c1">item</span><span class="pl-kos">;</span> <span class="pl-c">// dragged HTMLElement</span> <span class="pl-s1">evt</span><span class="pl-kos">.</span><span class="pl-c1">to</span><span class="pl-kos">;</span> <span class="pl-c">// target list</span> <span class="pl-s1">evt</span><span class="pl-kos">.</span><span class="pl-c1">from</span><span class="pl-kos">;</span> <span class="pl-c">// previous list</span> <span class="pl-s1">evt</span><span class="pl-kos">.</span><span class="pl-c1">oldIndex</span><span class="pl-kos">;</span> <span class="pl-c">// element's old index within old parent</span> <span class="pl-s1">evt</span><span class="pl-kos">.</span><span class="pl-c1">newIndex</span><span class="pl-kos">;</span> <span class="pl-c">// element's new index within new parent</span> <span class="pl-s1">evt</span><span class="pl-kos">.</span><span class="pl-c1">oldDraggableIndex</span><span class="pl-kos">;</span> <span class="pl-c">// element's old index within old parent, only counting draggable elements</span> <span class="pl-s1">evt</span><span class="pl-kos">.</span><span class="pl-c1">newDraggableIndex</span><span class="pl-kos">;</span> <span class="pl-c">// element's new index within new parent, only counting draggable elements</span> <span class="pl-s1">evt</span><span class="pl-kos">.</span><span class="pl-c1">clone</span> <span class="pl-c">// the clone element</span> <span class="pl-s1">evt</span><span class="pl-kos">.</span><span class="pl-c1">pullMode</span><span class="pl-kos">;</span> <span class="pl-c">// when item is in another sortable: `"clone"` if cloning, `true` if moving</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-c">// Element is dropped into the list from another list</span> <span class="pl-en">onAdd</span>: <span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-c">/**Event*/</span><span class="pl-s1">evt</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-c">// same properties as onEnd</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-c">// Changed sorting within list</span> <span class="pl-en">onUpdate</span>: <span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-c">/**Event*/</span><span class="pl-s1">evt</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-c">// same properties as onEnd</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-c">// Called by any change to the list (add / update / remove)</span> <span class="pl-en">onSort</span>: <span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-c">/**Event*/</span><span class="pl-s1">evt</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-c">// same properties as onEnd</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-c">// Element is removed from the list into another list</span> <span class="pl-en">onRemove</span>: <span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-c">/**Event*/</span><span class="pl-s1">evt</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-c">// same properties as onEnd</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-c">// Attempt to drag a filtered element</span> <span class="pl-en">onFilter</span>: <span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-c">/**Event*/</span><span class="pl-s1">evt</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-k">var</span> <span class="pl-s1">itemEl</span> <span class="pl-c1">=</span> <span class="pl-s1">evt</span><span class="pl-kos">.</span><span class="pl-c1">item</span><span class="pl-kos">;</span> <span class="pl-c">// HTMLElement receiving the `mousedown|tapstart` event.</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-c">// Event when you move an item in the list or between lists</span> <span class="pl-en">onMove</span>: <span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-c">/**Event*/</span><span class="pl-s1">evt</span><span class="pl-kos">,</span> <span class="pl-c">/**Event*/</span><span class="pl-s1">originalEvent</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-c">// Example: https://jsbin.com/nawahef/edit?js,output</span> <span class="pl-s1">evt</span><span class="pl-kos">.</span><span class="pl-c1">dragged</span><span class="pl-kos">;</span> <span class="pl-c">// dragged HTMLElement</span> <span class="pl-s1">evt</span><span class="pl-kos">.</span><span class="pl-c1">draggedRect</span><span class="pl-kos">;</span> <span class="pl-c">// DOMRect {left, top, right, bottom}</span> <span class="pl-s1">evt</span><span class="pl-kos">.</span><span class="pl-c1">related</span><span class="pl-kos">;</span> <span class="pl-c">// HTMLElement on which have guided</span> <span class="pl-s1">evt</span><span class="pl-kos">.</span><span class="pl-c1">relatedRect</span><span class="pl-kos">;</span> <span class="pl-c">// DOMRect</span> <span class="pl-s1">evt</span><span class="pl-kos">.</span><span class="pl-c1">willInsertAfter</span><span class="pl-kos">;</span> <span class="pl-c">// Boolean that is true if Sortable will insert drag element after target by default</span> <span class="pl-s1">originalEvent</span><span class="pl-kos">.</span><span class="pl-c1">clientY</span><span class="pl-kos">;</span> <span class="pl-c">// mouse position</span> <span class="pl-c">// return false; — for cancel</span> <span class="pl-c">// return -1; — insert before target</span> <span class="pl-c">// return 1; — insert after target</span> <span class="pl-c">// return true; — keep default insertion point based on the direction</span> <span class="pl-c">// return void; — keep default insertion point based on the direction</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-c">// Called when creating a clone of element</span> <span class="pl-en">onClone</span>: <span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-c">/**Event*/</span><span class="pl-s1">evt</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-k">var</span> <span class="pl-s1">origEl</span> <span class="pl-c1">=</span> <span class="pl-s1">evt</span><span class="pl-kos">.</span><span class="pl-c1">item</span><span class="pl-kos">;</span> <span class="pl-k">var</span> <span class="pl-s1">cloneEl</span> <span class="pl-c1">=</span> <span class="pl-s1">evt</span><span class="pl-kos">.</span><span class="pl-c1">clone</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-c">// Called when dragging element changes position</span> <span class="pl-en">onChange</span>: <span class="pl-k">function</span><span class="pl-kos">(</span><span class="pl-c">/**Event*/</span><span class="pl-s1">evt</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-s1">evt</span><span class="pl-kos">.</span><span class="pl-c1">newIndex</span> <span class="pl-c">// most likely why this event is used is to get the dragging element's current index</span> <span class="pl-c">// same properties as onEnd</span> <span class="pl-kos">}</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div> <hr> <div class="markdown-heading"><h4 class="heading-element"> <code>group</code> option</h4><a id="user-content-group-option" class="anchor" aria-label="Permalink: group option" href="#group-option"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>To drag elements from one list into another, both lists must have the same <code>group</code> value. You can also define whether lists can give away, give and keep a copy (<code>clone</code>), and receive elements.</p> <ul> <li>name: <code>String</code> — group name</li> <li>pull: <code>true|false|["foo", "bar"]|'clone'|function</code> — ability to move from the list. <code>clone</code> — copy the item, rather than move. Or an array of group names which the elements may be put in. Defaults to <code>true</code>.</li> <li>put: <code>true|false|["baz", "qux"]|function</code> — whether elements can be added from other lists, or an array of group names from which elements can be added.</li> <li>revertClone: <code>boolean</code> — revert cloned element to initial position after moving to a another list.</li> </ul> <p>Demo:</p> <ul> <li><a href="https://jsbin.com/hijetos/edit?js,output" rel="nofollow">https://jsbin.com/hijetos/edit?js,output</a></li> <li> <a href="https://jsbin.com/nacoyah/edit?js,output" rel="nofollow">https://jsbin.com/nacoyah/edit?js,output</a> — use of complex logic in the <code>pull</code> and<code> put</code> </li> <li> <a href="https://jsbin.com/bifuyab/edit?js,output" rel="nofollow">https://jsbin.com/bifuyab/edit?js,output</a> — use <code>revertClone: true</code> </li> </ul> <hr> <div class="markdown-heading"><h4 class="heading-element"> <code>sort</code> option</h4><a id="user-content-sort-option" class="anchor" aria-label="Permalink: sort option" href="#sort-option"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Allow sorting inside list.</p> <p>Demo: <a href="https://jsbin.com/jayedig/edit?js,output" rel="nofollow">https://jsbin.com/jayedig/edit?js,output</a></p> <hr> <div class="markdown-heading"><h4 class="heading-element"> <code>delay</code> option</h4><a id="user-content-delay-option" class="anchor" aria-label="Permalink: delay option" href="#delay-option"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Time in milliseconds to define when the sorting should start. Unfortunately, due to browser restrictions, delaying is not possible on IE or Edge with native drag &amp; drop.</p> <p>Demo: <a href="https://jsbin.com/zosiwah/edit?js,output" rel="nofollow">https://jsbin.com/zosiwah/edit?js,output</a></p> <hr> <div class="markdown-heading"><h4 class="heading-element"> <code>delayOnTouchOnly</code> option</h4><a id="user-content-delayontouchonly-option" class="anchor" aria-label="Permalink: delayOnTouchOnly option" href="#delayontouchonly-option"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Whether or not the delay should be applied only if the user is using touch (eg. on a mobile device). No delay will be applied in any other case. Defaults to <code>false</code>.</p> <hr> <div class="markdown-heading"><h4 class="heading-element"> <code>swapThreshold</code> option</h4><a id="user-content-swapthreshold-option" class="anchor" aria-label="Permalink: swapThreshold option" href="#swapthreshold-option"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Percentage of the target that the swap zone will take up, as a float between <code>0</code> and <code>1</code>.</p> <p><a href="https://github.com/SortableJS/Sortable/wiki/Swap-Thresholds-and-Direction#swap-threshold">Read more</a></p> <p>Demo: <a href="http://sortablejs.github.io/Sortable#thresholds" rel="nofollow">http://sortablejs.github.io/Sortable#thresholds</a></p> <hr> <div class="markdown-heading"><h4 class="heading-element"> <code>invertSwap</code> option</h4><a id="user-content-invertswap-option" class="anchor" aria-label="Permalink: invertSwap option" href="#invertswap-option"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Set to <code>true</code> to set the swap zone to the sides of the target, for the effect of sorting "in between" items.</p> <p><a href="https://github.com/SortableJS/Sortable/wiki/Swap-Thresholds-and-Direction#forcing-inverted-swap-zone">Read more</a></p> <p>Demo: <a href="http://sortablejs.github.io/Sortable#thresholds" rel="nofollow">http://sortablejs.github.io/Sortable#thresholds</a></p> <hr> <div class="markdown-heading"><h4 class="heading-element"> <code>invertedSwapThreshold</code> option</h4><a id="user-content-invertedswapthreshold-option" class="anchor" aria-label="Permalink: invertedSwapThreshold option" href="#invertedswapthreshold-option"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Percentage of the target that the inverted swap zone will take up, as a float between <code>0</code> and <code>1</code>. If not given, will default to <code>swapThreshold</code>.</p> <p><a href="https://github.com/SortableJS/Sortable/wiki/Swap-Thresholds-and-Direction#dealing-with-swap-glitching">Read more</a></p> <hr> <div class="markdown-heading"><h4 class="heading-element"> <code>direction</code> option</h4><a id="user-content-direction-option" class="anchor" aria-label="Permalink: direction option" href="#direction-option"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Direction that the Sortable should sort in. Can be set to <code>'vertical'</code>, <code>'horizontal'</code>, or a function, which will be called whenever a target is dragged over. Must return <code>'vertical'</code> or <code>'horizontal'</code>.</p> <p><a href="https://github.com/SortableJS/Sortable/wiki/Swap-Thresholds-and-Direction#direction">Read more</a></p> <p>Example of direction detection for vertical list that includes full column and half column elements:</p> <div class="highlight highlight-source-js"><pre><span class="pl-v">Sortable</span><span class="pl-kos">.</span><span class="pl-en">create</span><span class="pl-kos">(</span><span class="pl-s1">el</span><span class="pl-kos">,</span> <span class="pl-kos">{</span> <span class="pl-en">direction</span>: <span class="pl-k">function</span><span class="pl-kos">(</span><span class="pl-s1">evt</span><span class="pl-kos">,</span> <span class="pl-s1">target</span><span class="pl-kos">,</span> <span class="pl-s1">dragEl</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">target</span> <span class="pl-c1">!==</span> <span class="pl-c1">null</span> <span class="pl-c1">&amp;&amp;</span> <span class="pl-s1">target</span><span class="pl-kos">.</span><span class="pl-c1">className</span><span class="pl-kos">.</span><span class="pl-en">includes</span><span class="pl-kos">(</span><span class="pl-s">'half-column'</span><span class="pl-kos">)</span> <span class="pl-c1">&amp;&amp;</span> <span class="pl-s1">dragEl</span><span class="pl-kos">.</span><span class="pl-c1">className</span><span class="pl-kos">.</span><span class="pl-en">includes</span><span class="pl-kos">(</span><span class="pl-s">'half-column'</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-k">return</span> <span class="pl-s">'horizontal'</span><span class="pl-kos">;</span> <span class="pl-kos">}</span> <span class="pl-k">return</span> <span class="pl-s">'vertical'</span><span class="pl-kos">;</span> <span class="pl-kos">}</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div> <hr> <div class="markdown-heading"><h4 class="heading-element"> <code>touchStartThreshold</code> option</h4><a id="user-content-touchstartthreshold-option" class="anchor" aria-label="Permalink: touchStartThreshold option" href="#touchstartthreshold-option"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>This option is similar to <code>fallbackTolerance</code> option.</p> <p>When the <code>delay</code> option is set, some phones with very sensitive touch displays like the Samsung Galaxy S8 will fire unwanted touchmove events even when your finger is not moving, resulting in the sort not triggering.</p> <p>This option sets the minimum pointer movement that must occur before the delayed sorting is cancelled.</p> <p>Values between 3 to 5 are good.</p> <hr> <div class="markdown-heading"><h4 class="heading-element"> <code>disabled</code> options</h4><a id="user-content-disabled-options" class="anchor" aria-label="Permalink: disabled options" href="#disabled-options"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Disables the sortable if set to <code>true</code>.</p> <p>Demo: <a href="https://jsbin.com/sewokud/edit?js,output" rel="nofollow">https://jsbin.com/sewokud/edit?js,output</a></p> <div class="highlight highlight-source-js"><pre><span class="pl-k">var</span> <span class="pl-s1">sortable</span> <span class="pl-c1">=</span> <span class="pl-v">Sortable</span><span class="pl-kos">.</span><span class="pl-en">create</span><span class="pl-kos">(</span><span class="pl-s1">list</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">getElementById</span><span class="pl-kos">(</span><span class="pl-s">"switcher"</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">onclick</span> <span class="pl-c1">=</span> <span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-k">var</span> <span class="pl-s1">state</span> <span class="pl-c1">=</span> <span class="pl-s1">sortable</span><span class="pl-kos">.</span><span class="pl-en">option</span><span class="pl-kos">(</span><span class="pl-s">"disabled"</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-c">// get</span> <span class="pl-s1">sortable</span><span class="pl-kos">.</span><span class="pl-en">option</span><span class="pl-kos">(</span><span class="pl-s">"disabled"</span><span class="pl-kos">,</span> <span class="pl-c1">!</span><span class="pl-s1">state</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-c">// set</span> <span class="pl-kos">}</span><span class="pl-kos">;</span></pre></div> <hr> <div class="markdown-heading"><h4 class="heading-element"> <code>handle</code> option</h4><a id="user-content-handle-option" class="anchor" aria-label="Permalink: handle option" href="#handle-option"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>To make list items draggable, Sortable disables text selection by the user. That's not always desirable. To allow text selection, define a drag handler, which is an area of every list element that allows it to be dragged around.</p> <p>Demo: <a href="https://jsbin.com/numakuh/edit?html,js,output" rel="nofollow">https://jsbin.com/numakuh/edit?html,js,output</a></p> <div class="highlight highlight-source-js"><pre><span class="pl-v">Sortable</span><span class="pl-kos">.</span><span class="pl-en">create</span><span class="pl-kos">(</span><span class="pl-s1">el</span><span class="pl-kos">,</span> <span class="pl-kos">{</span> <span class="pl-c1">handle</span>: <span class="pl-s">".my-handle"</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div> <div class="highlight highlight-text-html-basic"><pre><span class="pl-kos">&lt;</span><span class="pl-ent">ul</span><span class="pl-kos">&gt;</span> <span class="pl-kos">&lt;</span><span class="pl-ent">li</span><span class="pl-kos">&gt;</span><span class="pl-kos">&lt;</span><span class="pl-ent">span</span> <span class="pl-c1">class</span>="<span class="pl-s">my-handle</span>"<span class="pl-kos">&gt;</span>::<span class="pl-kos">&lt;/</span><span class="pl-ent">span</span><span class="pl-kos">&gt;</span> list item text one <span class="pl-kos">&lt;</span><span class="pl-ent">li</span><span class="pl-kos">&gt;</span><span class="pl-kos">&lt;</span><span class="pl-ent">span</span> <span class="pl-c1">class</span>="<span class="pl-s">my-handle</span>"<span class="pl-kos">&gt;</span>::<span class="pl-kos">&lt;/</span><span class="pl-ent">span</span><span class="pl-kos">&gt;</span> list item text two <span class="pl-kos">&lt;/</span><span class="pl-ent">ul</span><span class="pl-kos">&gt;</span></pre></div> <div class="highlight highlight-source-css"><pre>.<span class="pl-c1">my-handle</span> { <span class="pl-c1">cursor</span><span class="pl-kos">:</span> move; <span class="pl-c1">cursor</span><span class="pl-kos">:</span> -webkit-grabbing; }</pre></div> <hr> <div class="markdown-heading"><h4 class="heading-element"> <code>filter</code> option</h4><a id="user-content-filter-option" class="anchor" aria-label="Permalink: filter option" href="#filter-option"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <div class="highlight highlight-source-js"><pre><span class="pl-v">Sortable</span><span class="pl-kos">.</span><span class="pl-en">create</span><span class="pl-kos">(</span><span class="pl-s1">list</span><span class="pl-kos">,</span> <span class="pl-kos">{</span> <span class="pl-c1">filter</span>: <span class="pl-s">".js-remove, .js-edit"</span><span class="pl-kos">,</span> <span class="pl-en">onFilter</span>: <span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-s1">evt</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-k">var</span> <span class="pl-s1">item</span> <span class="pl-c1">=</span> <span class="pl-s1">evt</span><span class="pl-kos">.</span><span class="pl-c1">item</span><span class="pl-kos">,</span> <span class="pl-s1">ctrl</span> <span class="pl-c1">=</span> <span class="pl-s1">evt</span><span class="pl-kos">.</span><span class="pl-c1">target</span><span class="pl-kos">;</span> <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-v">Sortable</span><span class="pl-kos">.</span><span class="pl-c1">utils</span><span class="pl-kos">.</span><span class="pl-en">is</span><span class="pl-kos">(</span><span class="pl-s1">ctrl</span><span class="pl-kos">,</span> <span class="pl-s">".js-remove"</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-c">// Click on remove button</span> <span class="pl-s1">item</span><span class="pl-kos">.</span><span class="pl-c1">parentNode</span><span class="pl-kos">.</span><span class="pl-en">removeChild</span><span class="pl-kos">(</span><span class="pl-s1">item</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-c">// remove sortable item</span> <span class="pl-kos">}</span> <span class="pl-k">else</span> <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-v">Sortable</span><span class="pl-kos">.</span><span class="pl-c1">utils</span><span class="pl-kos">.</span><span class="pl-en">is</span><span class="pl-kos">(</span><span class="pl-s1">ctrl</span><span class="pl-kos">,</span> <span class="pl-s">".js-edit"</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-c">// Click on edit link</span> <span class="pl-c">// ...</span> <span class="pl-kos">}</span> <span class="pl-kos">}</span> <span class="pl-kos">}</span><span class="pl-kos">)</span></pre></div> <hr> <div class="markdown-heading"><h4 class="heading-element"> <code>ghostClass</code> option</h4><a id="user-content-ghostclass-option" class="anchor" aria-label="Permalink: ghostClass option" href="#ghostclass-option"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Class name for the drop placeholder (default <code>sortable-ghost</code>).</p> <p>Demo: <a href="https://jsbin.com/henuyiw/edit?css,js,output" rel="nofollow">https://jsbin.com/henuyiw/edit?css,js,output</a></p> <div class="highlight highlight-source-css"><pre>.<span class="pl-c1">ghost</span> { <span class="pl-c1">opacity</span><span class="pl-kos">:</span> <span class="pl-c1">0.4</span>; }</pre></div> <div class="highlight highlight-source-js"><pre><span class="pl-v">Sortable</span><span class="pl-kos">.</span><span class="pl-en">create</span><span class="pl-kos">(</span><span class="pl-s1">list</span><span class="pl-kos">,</span> <span class="pl-kos">{</span> <span class="pl-c1">ghostClass</span>: <span class="pl-s">"ghost"</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div> <hr> <div class="markdown-heading"><h4 class="heading-element"> <code>chosenClass</code> option</h4><a id="user-content-chosenclass-option" class="anchor" aria-label="Permalink: chosenClass option" href="#chosenclass-option"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Class name for the chosen item (default <code>sortable-chosen</code>).</p> <p>Demo: <a href="https://jsbin.com/hoqufox/edit?css,js,output" rel="nofollow">https://jsbin.com/hoqufox/edit?css,js,output</a></p> <div class="highlight highlight-source-css"><pre>.<span class="pl-c1">chosen</span> { <span class="pl-c1">color</span><span class="pl-kos">:</span> <span class="pl-pds"><span class="pl-kos">#</span>fff</span>; <span class="pl-c1">background-color</span><span class="pl-kos">:</span> <span class="pl-pds"><span class="pl-kos">#</span>c00</span>; }</pre></div> <div class="highlight highlight-source-js"><pre><span class="pl-v">Sortable</span><span class="pl-kos">.</span><span class="pl-en">create</span><span class="pl-kos">(</span><span class="pl-s1">list</span><span class="pl-kos">,</span> <span class="pl-kos">{</span> <span class="pl-c1">delay</span>: <span class="pl-c1">500</span><span class="pl-kos">,</span> <span class="pl-c1">chosenClass</span>: <span class="pl-s">"chosen"</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div> <hr> <div class="markdown-heading"><h4 class="heading-element"> <code>forceFallback</code> option</h4><a id="user-content-forcefallback-option" class="anchor" aria-label="Permalink: forceFallback option" href="#forcefallback-option"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>If set to <code>true</code>, the Fallback for non HTML5 Browser will be used, even if we are using an HTML5 Browser. This gives us the possibility to test the behaviour for older Browsers even in newer Browser, or make the Drag 'n Drop feel more consistent between Desktop , Mobile and old Browsers.</p> <p>On top of that, the Fallback always generates a copy of that DOM Element and appends the class <code>fallbackClass</code> defined in the options. This behaviour controls the look of this 'dragged' Element.</p> <p>Demo: <a href="https://jsbin.com/sibiput/edit?html,css,js,output" rel="nofollow">https://jsbin.com/sibiput/edit?html,css,js,output</a></p> <hr> <div class="markdown-heading"><h4 class="heading-element"> <code>fallbackTolerance</code> option</h4><a id="user-content-fallbacktolerance-option" class="anchor" aria-label="Permalink: fallbackTolerance option" href="#fallbacktolerance-option"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Emulates the native drag threshold. Specify in pixels how far the mouse should move before it's considered as a drag. Useful if the items are also clickable like in a list of links.</p> <p>When the user clicks inside a sortable element, it's not uncommon for your hand to move a little between the time you press and the time you release. Dragging only starts if you move the pointer past a certain tolerance, so that you don't accidentally start dragging every time you click.</p> <p>3 to 5 are probably good values.</p> <hr> <div class="markdown-heading"><h4 class="heading-element"> <code>dragoverBubble</code> option</h4><a id="user-content-dragoverbubble-option" class="anchor" aria-label="Permalink: dragoverBubble option" href="#dragoverbubble-option"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>If set to <code>true</code>, the dragover event will bubble to parent sortables. Works on both fallback and native dragover event. By default, it is false, but Sortable will only stop bubbling the event once the element has been inserted into a parent Sortable, or <em>can</em> be inserted into a parent Sortable, but isn't at that specific time (due to animation, etc).</p> <p>Since 1.8.0, you will probably want to leave this option as false. Before 1.8.0, it may need to be <code>true</code> for nested sortables to work.</p> <hr> <div class="markdown-heading"><h4 class="heading-element"> <code>removeCloneOnHide</code> option</h4><a id="user-content-removecloneonhide-option" class="anchor" aria-label="Permalink: removeCloneOnHide option" href="#removecloneonhide-option"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>If set to <code>false</code>, the clone is hidden by having it's CSS <code>display</code> property set to <code>none</code>. By default, this option is <code>true</code>, meaning Sortable will remove the cloned element from the DOM when it is supposed to be hidden.</p> <hr> <div class="markdown-heading"><h4 class="heading-element"> <code>emptyInsertThreshold</code> option</h4><a id="user-content-emptyinsertthreshold-option" class="anchor" aria-label="Permalink: emptyInsertThreshold option" href="#emptyinsertthreshold-option"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>The distance (in pixels) the mouse must be from an empty sortable while dragging for the drag element to be inserted into that sortable. Defaults to <code>5</code>. Set to <code>0</code> to disable this feature.</p> <p>Demo: <a href="https://jsbin.com/becavoj/edit?js,output" rel="nofollow">https://jsbin.com/becavoj/edit?js,output</a></p> <p>An alternative to this option would be to set a padding on your list when it is empty.</p> <p>For example:</p> <div class="highlight highlight-source-css"><pre><span class="pl-ent">ul</span><span class="pl-kos">:</span><span class="pl-c1">empty</span> { <span class="pl-c1">padding-bottom</span><span class="pl-kos">:</span> <span class="pl-c1">20<span class="pl-smi">px</span></span>; }</pre></div> <p>Warning: For <code>:empty</code> to work, it must have no node inside (even text one).</p> <p>Demo: <a href="https://jsbin.com/yunakeg/edit?html,css,js,output" rel="nofollow">https://jsbin.com/yunakeg/edit?html,css,js,output</a></p> <hr> <div class="markdown-heading"><h3 class="heading-element">Event object (<a href="https://jsbin.com/fogujiv/edit?js,output" rel="nofollow">demo</a>)</h3><a id="user-content-event-object-demo" class="anchor" aria-label="Permalink: Event object (demo)" href="#event-object-demo"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <ul> <li>to:<code>HTMLElement</code> — list, in which moved element</li> <li>from:<code>HTMLElement</code> — previous list</li> <li>item:<code>HTMLElement</code> — dragged element</li> <li>clone:<code>HTMLElement</code> </li> <li>oldIndex:<code>Number|undefined</code> — old index within parent</li> <li>newIndex:<code>Number|undefined</code> — new index within parent</li> <li>oldDraggableIndex: <code>Number|undefined</code> — old index within parent, only counting draggable elements</li> <li>newDraggableIndex: <code>Number|undefined</code> — new index within parent, only counting draggable elements</li> <li>pullMode:<code>String|Boolean|undefined</code> — Pull mode if dragging into another sortable (<code>"clone"</code>, <code>true</code>, or <code>false</code>), otherwise undefined</li> </ul> <div class="markdown-heading"><h4 class="heading-element"> <code>move</code> event object</h4><a id="user-content-move-event-object" class="anchor" aria-label="Permalink: move event object" href="#move-event-object"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <ul> <li>to:<code>HTMLElement</code> </li> <li>from:<code>HTMLElement</code> </li> <li>dragged:<code>HTMLElement</code> </li> <li>draggedRect:<code>DOMRect</code> </li> <li>related:<code>HTMLElement</code> — element on which have guided</li> <li>relatedRect:<code>DOMRect</code> </li> <li>willInsertAfter:<code>Boolean</code> — <code>true</code> if will element be inserted after target (or <code>false</code> if before)</li> </ul> <hr> <div class="markdown-heading"><h3 class="heading-element">Methods</h3><a id="user-content-methods" class="anchor" aria-label="Permalink: Methods" href="#methods"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <div class="markdown-heading"><h5 class="heading-element">option(name:<code>String</code>[, value:<code>*</code>]):<code>*</code> </h5><a id="user-content-optionnamestring-value" class="anchor" aria-label="Permalink: option(name:String[, value:*]):*" href="#optionnamestring-value"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Get or set the option.</p> <div class="markdown-heading"><h5 class="heading-element">closest(el:<code>HTMLElement</code>[, selector:<code>String</code>]):<code>HTMLElement|null</code> </h5><a id="user-content-closestelhtmlelement-selectorstringhtmlelementnull" class="anchor" aria-label="Permalink: closest(el:HTMLElement[, selector:String]):HTMLElement|null" href="#closestelhtmlelement-selectorstringhtmlelementnull"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.</p> <div class="markdown-heading"><h5 class="heading-element">toArray():<code>String[]</code> </h5><a id="user-content-toarraystring" class="anchor" aria-label="Permalink: toArray():String[]" href="#toarraystring"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Serializes the sortable's item <code>data-id</code>'s (<code>dataIdAttr</code> option) into an array of string.</p> <div class="markdown-heading"><h5 class="heading-element">sort(order:<code>String[]</code>, useAnimation:<code>Boolean</code>)</h5><a id="user-content-sortorderstring-useanimationboolean" class="anchor" aria-label="Permalink: sort(order:String[], useAnimation:Boolean)" href="#sortorderstring-useanimationboolean"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Sorts the elements according to the array.</p> <div class="highlight highlight-source-js"><pre><span class="pl-k">var</span> <span class="pl-s1">order</span> <span class="pl-c1">=</span> <span class="pl-s1">sortable</span><span class="pl-kos">.</span><span class="pl-en">toArray</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">sortable</span><span class="pl-kos">.</span><span class="pl-en">sort</span><span class="pl-kos">(</span><span class="pl-s1">order</span><span class="pl-kos">.</span><span class="pl-en">reverse</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">,</span> <span class="pl-c1">true</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-c">// apply</span></pre></div> <div class="markdown-heading"><h5 class="heading-element">save()</h5><a id="user-content-save" class="anchor" aria-label="Permalink: save()" href="#save"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Save the current sorting (see <a href="#store">store</a>)</p> <div class="markdown-heading"><h5 class="heading-element">destroy()</h5><a id="user-content-destroy" class="anchor" aria-label="Permalink: destroy()" href="#destroy"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Removes the sortable functionality completely.</p> <hr> <p><a name="user-content-store"></a></p> <div class="markdown-heading"><h3 class="heading-element">Store</h3><a id="user-content-store" class="anchor" aria-label="Permalink: Store" href="#store"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Saving and restoring of the sort.</p> <div class="highlight highlight-text-html-basic"><pre><span class="pl-kos">&lt;</span><span class="pl-ent">ul</span><span class="pl-kos">&gt;</span> <span class="pl-kos">&lt;</span><span class="pl-ent">li</span> <span class="pl-c1">data-id</span>="<span class="pl-s">1</span>"<span class="pl-kos">&gt;</span>order<span class="pl-kos">&lt;/</span><span class="pl-ent">li</span><span class="pl-kos">&gt;</span> <span class="pl-kos">&lt;</span><span class="pl-ent">li</span> <span class="pl-c1">data-id</span>="<span class="pl-s">2</span>"<span class="pl-kos">&gt;</span>save<span class="pl-kos">&lt;/</span><span class="pl-ent">li</span><span class="pl-kos">&gt;</span> <span class="pl-kos">&lt;</span><span class="pl-ent">li</span> <span class="pl-c1">data-id</span>="<span class="pl-s">3</span>"<span class="pl-kos">&gt;</span>restore<span class="pl-kos">&lt;/</span><span class="pl-ent">li</span><span class="pl-kos">&gt;</span> <span class="pl-kos">&lt;/</span><span class="pl-ent">ul</span><span class="pl-kos">&gt;</span></pre></div> <div class="highlight highlight-source-js"><pre><span class="pl-v">Sortable</span><span class="pl-kos">.</span><span class="pl-en">create</span><span class="pl-kos">(</span><span class="pl-s1">el</span><span class="pl-kos">,</span> <span class="pl-kos">{</span> <span class="pl-c1">group</span>: <span class="pl-s">"localStorage-example"</span><span class="pl-kos">,</span> <span class="pl-c1">store</span>: <span class="pl-kos">{</span> <span class="pl-c">/**</span> <span class="pl-c"> * Get the order of elements. Called once during initialization.</span> <span class="pl-c"> * @param {Sortable} sortable</span> <span class="pl-c"> * @returns {Array}</span> <span class="pl-c"> */</span> <span class="pl-en">get</span>: <span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-s1">sortable</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-k">var</span> <span class="pl-s1">order</span> <span class="pl-c1">=</span> <span class="pl-s1">localStorage</span><span class="pl-kos">.</span><span class="pl-en">getItem</span><span class="pl-kos">(</span><span class="pl-s1">sortable</span><span class="pl-kos">.</span><span class="pl-c1">options</span><span class="pl-kos">.</span><span class="pl-c1">group</span><span class="pl-kos">.</span><span class="pl-c1">name</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-k">return</span> <span class="pl-s1">order</span> ? <span class="pl-s1">order</span><span class="pl-kos">.</span><span class="pl-en">split</span><span class="pl-kos">(</span><span class="pl-s">'|'</span><span class="pl-kos">)</span> : <span class="pl-kos">[</span><span class="pl-kos">]</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-c">/**</span> <span class="pl-c"> * Save the order of elements. Called onEnd (when the item is dropped).</span> <span class="pl-c"> * @param {Sortable} sortable</span> <span class="pl-c"> */</span> <span class="pl-en">set</span>: <span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-s1">sortable</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-k">var</span> <span class="pl-s1">order</span> <span class="pl-c1">=</span> <span class="pl-s1">sortable</span><span class="pl-kos">.</span><span class="pl-en">toArray</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">localStorage</span><span class="pl-kos">.</span><span class="pl-en">setItem</span><span class="pl-kos">(</span><span class="pl-s1">sortable</span><span class="pl-kos">.</span><span class="pl-c1">options</span><span class="pl-kos">.</span><span class="pl-c1">group</span><span class="pl-kos">.</span><span class="pl-c1">name</span><span class="pl-kos">,</span> <span class="pl-s1">order</span><span class="pl-kos">.</span><span class="pl-en">join</span><span class="pl-kos">(</span><span class="pl-s">'|'</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span> <span class="pl-kos">}</span> <span class="pl-kos">}</span><span class="pl-kos">)</span></pre></div> <hr> <p><a name="user-content-bs"></a></p> <div class="markdown-heading"><h3 class="heading-element">Bootstrap</h3><a id="user-content-bootstrap" class="anchor" aria-label="Permalink: Bootstrap" href="#bootstrap"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Demo: <a href="https://jsbin.com/visimub/edit?html,js,output" rel="nofollow">https://jsbin.com/visimub/edit?html,js,output</a></p> <div class="highlight highlight-text-html-basic"><pre><span class="pl-c">&lt;!-- Latest compiled and minified CSS --&gt;</span> <span class="pl-kos">&lt;</span><span class="pl-ent">link</span> <span class="pl-c1">rel</span>="<span class="pl-s">stylesheet</span>" <span class="pl-c1">href</span>="<span class="pl-s">https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css</span>"/&gt; <span class="pl-c">&lt;!-- Latest Sortable --&gt;</span> <span class="pl-kos">&lt;</span><span class="pl-ent">script</span> <span class="pl-c1">src</span>="<span class="pl-s">http://SortableJS.github.io/Sortable/Sortable.js</span>"<span class="pl-kos">&gt;</span><span class="pl-kos">&lt;/</span><span class="pl-ent">script</span><span class="pl-kos">&gt;</span> <span class="pl-c">&lt;!-- Simple List --&gt;</span> <span class="pl-kos">&lt;</span><span class="pl-ent">ul</span> <span class="pl-c1">id</span>="<span class="pl-s">simpleList</span>" <span class="pl-c1">class</span>="<span class="pl-s">list-group</span>"<span class="pl-kos">&gt;</span> <span class="pl-kos">&lt;</span><span class="pl-ent">li</span> <span class="pl-c1">class</span>="<span class="pl-s">list-group-item</span>"<span class="pl-kos">&gt;</span>This is <span class="pl-kos">&lt;</span><span class="pl-ent">a</span> <span class="pl-c1">href</span>="<span class="pl-s">http://SortableJS.github.io/Sortable/</span>"<span class="pl-kos">&gt;</span>Sortable<span class="pl-kos">&lt;/</span><span class="pl-ent">a</span><span class="pl-kos">&gt;</span><span class="pl-kos">&lt;/</span><span class="pl-ent">li</span><span class="pl-kos">&gt;</span> <span class="pl-kos">&lt;</span><span class="pl-ent">li</span> <span class="pl-c1">class</span>="<span class="pl-s">list-group-item</span>"<span class="pl-kos">&gt;</span>It works with Bootstrap...<span class="pl-kos">&lt;/</span><span class="pl-ent">li</span><span class="pl-kos">&gt;</span> <span class="pl-kos">&lt;</span><span class="pl-ent">li</span> <span class="pl-c1">class</span>="<span class="pl-s">list-group-item</span>"<span class="pl-kos">&gt;</span>...out of the box.<span class="pl-kos">&lt;/</span><span class="pl-ent">li</span><span class="pl-kos">&gt;</span> <span class="pl-kos">&lt;</span><span class="pl-ent">li</span> <span class="pl-c1">class</span>="<span class="pl-s">list-group-item</span>"<span class="pl-kos">&gt;</span>It has support for touch devices.<span class="pl-kos">&lt;/</span><span class="pl-ent">li</span><span class="pl-kos">&gt;</span> <span class="pl-kos">&lt;</span><span class="pl-ent">li</span> <span class="pl-c1">class</span>="<span class="pl-s">list-group-item</span>"<span class="pl-kos">&gt;</span>Just drag some elements around.<span class="pl-kos">&lt;/</span><span class="pl-ent">li</span><span class="pl-kos">&gt;</span> <span class="pl-kos">&lt;/</span><span class="pl-ent">ul</span><span class="pl-kos">&gt;</span> <span class="pl-kos">&lt;</span><span class="pl-ent">script</span><span class="pl-kos">&gt;</span> <span class="pl-c">// Simple list</span> <span class="pl-v">Sortable</span><span class="pl-kos">.</span><span class="pl-en">create</span><span class="pl-kos">(</span><span class="pl-s1">simpleList</span><span class="pl-kos">,</span> <span class="pl-kos">{</span> <span class="pl-c">/* options */</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">&lt;/</span><span class="pl-ent">script</span><span class="pl-kos">&gt;</span></pre></div> <hr> <div class="markdown-heading"><h3 class="heading-element">Static methods &amp; properties</h3><a id="user-content-static-methods--properties" class="anchor" aria-label="Permalink: Static methods &amp; properties" href="#static-methods--properties"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <div class="markdown-heading"><h5 class="heading-element">Sortable.create(el:<code>HTMLElement</code>[, options:<code>Object</code>]):<code>Sortable</code> </h5><a id="user-content-sortablecreateelhtmlelement-optionsobjectsortable" class="anchor" aria-label="Permalink: Sortable.create(el:HTMLElement[, options:Object]):Sortable" href="#sortablecreateelhtmlelement-optionsobjectsortable"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Create new instance.</p> <hr> <div class="markdown-heading"><h5 class="heading-element">Sortable.active:<code>Sortable</code> </h5><a id="user-content-sortableactivesortable" class="anchor" aria-label="Permalink: Sortable.active:Sortable" href="#sortableactivesortable"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>The active Sortable instance.</p> <hr> <div class="markdown-heading"><h5 class="heading-element">Sortable.dragged:<code>HTMLElement</code> </h5><a id="user-content-sortabledraggedhtmlelement" class="anchor" aria-label="Permalink: Sortable.dragged:HTMLElement" href="#sortabledraggedhtmlelement"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>The element being dragged.</p> <hr> <div class="markdown-heading"><h5 class="heading-element">Sortable.ghost:<code>HTMLElement</code> </h5><a id="user-content-sortableghosthtmlelement" class="anchor" aria-label="Permalink: Sortable.ghost:HTMLElement" href="#sortableghosthtmlelement"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>The ghost element.</p> <hr> <div class="markdown-heading"><h5 class="heading-element">Sortable.clone:<code>HTMLElement</code> </h5><a id="user-content-sortableclonehtmlelement" class="anchor" aria-label="Permalink: Sortable.clone:HTMLElement" href="#sortableclonehtmlelement"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>The clone element.</p> <hr> <div class="markdown-heading"><h5 class="heading-element">Sortable.get(element:<code>HTMLElement</code>):<code>Sortable</code> </h5><a id="user-content-sortablegetelementhtmlelementsortable" class="anchor" aria-label="Permalink: Sortable.get(element:HTMLElement):Sortable" href="#sortablegetelementhtmlelementsortable"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Get the Sortable instance on an element.</p> <hr> <div class="markdown-heading"><h5 class="heading-element">Sortable.mount(plugin:<code>...SortablePlugin|SortablePlugin[]</code>)</h5><a id="user-content-sortablemountpluginsortablepluginsortableplugin" class="anchor" aria-label="Permalink: Sortable.mount(plugin:...SortablePlugin|SortablePlugin[])" href="#sortablemountpluginsortablepluginsortableplugin"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Mounts a plugin to Sortable.</p> <hr> <div class="markdown-heading"><h5 class="heading-element">Sortable.utils</h5><a id="user-content-sortableutils" class="anchor" aria-label="Permalink: Sortable.utils" href="#sortableutils"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <ul> <li>on(el<code>:HTMLElement</code>, event<code>:String</code>, fn<code>:Function</code>) — attach an event handler function</li> <li>off(el<code>:HTMLElement</code>, event<code>:String</code>, fn<code>:Function</code>) — remove an event handler</li> <li>css(el<code>:HTMLElement</code>)<code>:Object</code> — get the values of all the CSS properties</li> <li>css(el<code>:HTMLElement</code>, prop<code>:String</code>)<code>:Mixed</code> — get the value of style properties</li> <li>css(el<code>:HTMLElement</code>, prop<code>:String</code>, value<code>:String</code>) — set one CSS properties</li> <li>css(el<code>:HTMLElement</code>, props<code>:Object</code>) — set more CSS properties</li> <li>find(ctx<code>:HTMLElement</code>, tagName<code>:String</code>[, iterator<code>:Function</code>])<code>:Array</code> — get elements by tag name</li> <li>bind(ctx<code>:Mixed</code>, fn<code>:Function</code>)<code>:Function</code> — Takes a function and returns a new one that will always have a particular context</li> <li>is(el<code>:HTMLElement</code>, selector<code>:String</code>)<code>:Boolean</code> — check the current matched set of elements against a selector</li> <li>closest(el<code>:HTMLElement</code>, selector<code>:String</code>[, ctx<code>:HTMLElement</code>])<code>:HTMLElement|Null</code> — for each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree</li> <li>clone(el<code>:HTMLElement</code>)<code>:HTMLElement</code> — create a deep copy of the set of matched elements</li> <li>toggleClass(el<code>:HTMLElement</code>, name<code>:String</code>, state<code>:Boolean</code>) — add or remove one classes from each element</li> <li>detectDirection(el<code>:HTMLElement</code>)<code>:String</code> — automatically detect the <a href="https://github.com/SortableJS/Sortable/wiki/Swap-Thresholds-and-Direction#direction">direction</a> of the element as either <code>'vertical'</code> or <code>'horizontal'</code> </li> <li>index(el<code>:HTMLElement</code>, selector<code>:String</code>)<code>:Number</code> — index of the element within its parent for a selected set of elements</li> <li>getChild(el<code>:HTMLElement</code>, childNum<code>:Number</code>, options<code>:Object</code>, includeDragEl<code>:Boolean</code>):<code>HTMLElement</code> — get the draggable element at a given index of draggable elements within a Sortable instance</li> <li>expando<code>:String</code> — expando property name for internal use, sortableListElement[expando] returns the Sortable instance of that elemenet</li> </ul> <hr> <div class="markdown-heading"><h3 class="heading-element">Plugins</h3><a id="user-content-plugins" class="anchor" aria-label="Permalink: Plugins" href="#plugins"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <div class="markdown-heading"><h4 class="heading-element">Extra Plugins (included in complete versions)</h4><a id="user-content-extra-plugins-included-in-complete-versions" class="anchor" aria-label="Permalink: Extra Plugins (included in complete versions)" href="#extra-plugins-included-in-complete-versions"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <ul> <li><a href="https://github.com/SortableJS/Sortable/tree/master/plugins/MultiDrag">MultiDrag</a></li> <li><a href="https://github.com/SortableJS/Sortable/tree/master/plugins/Swap">Swap</a></li> </ul> <div class="markdown-heading"><h4 class="heading-element">Default Plugins (included in default versions)</h4><a id="user-content-default-plugins-included-in-default-versions" class="anchor" aria-label="Permalink: Default Plugins (included in default versions)" href="#default-plugins-included-in-default-versions"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <ul> <li><a href="https://github.com/SortableJS/Sortable/tree/master/plugins/AutoScroll">AutoScroll</a></li> <li><a href="https://github.com/SortableJS/Sortable/tree/master/plugins/OnSpill">OnSpill</a></li> </ul> <hr> <p><a name="user-content-cdn"></a></p> <div class="markdown-heading"><h3 class="heading-element">CDN</h3><a id="user-content-cdn" class="anchor" aria-label="Permalink: CDN" href="#cdn"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <div class="highlight highlight-text-html-basic"><pre><span class="pl-c">&lt;!-- jsDelivr :: Sortable :: Latest (https://www.jsdelivr.com/package/npm/sortablejs) --&gt;</span> <span class="pl-kos">&lt;</span><span class="pl-ent">script</span> <span class="pl-c1">src</span>="<span class="pl-s">https://cdn.jsdelivr.net/npm/sortablejs@latest/Sortable.min.js</span>"<span class="pl-kos">&gt;</span><span class="pl-kos">&lt;/</span><span class="pl-ent">script</span><span class="pl-kos">&gt;</span></pre></div> <hr> <div class="markdown-heading"><h3 class="heading-element">Contributing (Issue/PR)</h3><a id="user-content-contributing-issuepr" class="anchor" aria-label="Permalink: Contributing (Issue/PR)" href="#contributing-issuepr"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Please, <a href="https://github.com/SortableJS/Sortable/blob/HEAD/CONTRIBUTING.md">read this</a>.</p> <hr> <div class="markdown-heading"><h2 class="heading-element">Contributors</h2><a id="user-content-contributors" class="anchor" aria-label="Permalink: Contributors" href="#contributors"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <div class="markdown-heading"><h3 class="heading-element">Code Contributors</h3><a id="user-content-code-contributors" class="anchor" aria-label="Permalink: Code Contributors" href="#code-contributors"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>This project exists thanks to all the people who contribute. [<a href="https://github.com/SortableJS/Sortable/blob/HEAD/CONTRIBUTING.md">Contribute</a>]. <a href="https://github.com/SortableJS/Sortable/graphs/contributors"><img src="https://camo.githubusercontent.com/358ebeddc74205fe7929c983832cddf743ffc44a31f31357f40eda7148c4fdaa/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f536f727461626c652f636f6e7472696275746f72732e7376673f77696474683d38393026627574746f6e3d66616c7365" data-canonical-src="https://opencollective.com/Sortable/contributors.svg?width=890&amp;button=false" style="max-width: 100%;"></a></p> <div class="markdown-heading"><h3 class="heading-element">Financial Contributors</h3><a id="user-content-financial-contributors" class="anchor" aria-label="Permalink: Financial Contributors" href="#financial-contributors"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Become a financial contributor and help us sustain our community. [<a href="https://opencollective.com/Sortable/contribute" rel="nofollow">Contribute</a>]</p> <div class="markdown-heading"><h4 class="heading-element">Individuals</h4><a id="user-content-individuals" class="anchor" aria-label="Permalink: Individuals" href="#individuals"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p><a href="https://opencollective.com/Sortable" rel="nofollow"><img src="https://camo.githubusercontent.com/49a92bfeff2a7922ebf10377ce30621fc88579b88cc65626c95872fd66720f42/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f536f727461626c652f696e646976696475616c732e7376673f77696474683d383930" data-canonical-src="https://opencollective.com/Sortable/individuals.svg?width=890" style="max-width: 100%;"></a></p> <div class="markdown-heading"><h4 class="heading-element">Organizations</h4><a id="user-content-organizations" class="anchor" aria-label="Permalink: Organizations" href="#organizations"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Support this project with your organization. Your logo will show up here with a link to your website. [<a href="https://opencollective.com/Sortable/contribute" rel="nofollow">Contribute</a>]</p> <p><a href="https://opencollective.com/Sortable/organization/0/website" rel="nofollow"><img src="https://camo.githubusercontent.com/31caec8094b4784c8608e4cbd2f26edcfff19d0a3e417d8f4c481198d7ee8e11/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f536f727461626c652f6f7267616e697a6174696f6e2f302f6176617461722e737667" data-canonical-src="https://opencollective.com/Sortable/organization/0/avatar.svg" style="max-width: 100%;"></a> <a href="https://opencollective.com/Sortable/organization/1/website" rel="nofollow"><img src="https://camo.githubusercontent.com/6e2b47ef44b41e509a56b3f5dee569cd0944103066e7aea565029983cb74e678/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f536f727461626c652f6f7267616e697a6174696f6e2f312f6176617461722e737667" data-canonical-src="https://opencollective.com/Sortable/organization/1/avatar.svg" style="max-width: 100%;"></a> <a href="https://opencollective.com/Sortable/organization/2/website" rel="nofollow"><img src="https://camo.githubusercontent.com/be7b60c546dd911e0cd401b7a032af538dc8671402cf1b875b8b4900a1dcb33d/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f536f727461626c652f6f7267616e697a6174696f6e2f322f6176617461722e737667" data-canonical-src="https://opencollective.com/Sortable/organization/2/avatar.svg" style="max-width: 100%;"></a> <a href="https://opencollective.com/Sortable/organization/3/website" rel="nofollow"><img src="https://camo.githubusercontent.com/ead536d8f6b3f91ebe15a02e33ec736d0882bec46a9d787335dd5ee097fffa34/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f536f727461626c652f6f7267616e697a6174696f6e2f332f6176617461722e737667" data-canonical-src="https://opencollective.com/Sortable/organization/3/avatar.svg" style="max-width: 100%;"></a> <a href="https://opencollective.com/Sortable/organization/4/website" rel="nofollow"><img src="https://camo.githubusercontent.com/6dc9314b317a9218cc4c75b1d33b127aa13bfabc955a9d0b85866968f397d0e3/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f536f727461626c652f6f7267616e697a6174696f6e2f342f6176617461722e737667" data-canonical-src="https://opencollective.com/Sortable/organization/4/avatar.svg" style="max-width: 100%;"></a> <a href="https://opencollective.com/Sortable/organization/5/website" rel="nofollow"><img src="https://camo.githubusercontent.com/0ebb4867415ec81aa90f1445ec29d70c1284994264bfc50d993f4cd7bcebfc23/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f536f727461626c652f6f7267616e697a6174696f6e2f352f6176617461722e737667" data-canonical-src="https://opencollective.com/Sortable/organization/5/avatar.svg" style="max-width: 100%;"></a> <a href="https://opencollective.com/Sortable/organization/6/website" rel="nofollow"><img src="https://camo.githubusercontent.com/525a6a895d59743edaaf0e7b0824e7477ec492ade0f0f3de48875be574d17302/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f536f727461626c652f6f7267616e697a6174696f6e2f362f6176617461722e737667" data-canonical-src="https://opencollective.com/Sortable/organization/6/avatar.svg" style="max-width: 100%;"></a> <a href="https://opencollective.com/Sortable/organization/7/website" rel="nofollow"><img src="https://camo.githubusercontent.com/51e12da76f7eab03284b3c78930d1dc3ffbd75dfbccb26e7a72c158ef63e5dd4/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f536f727461626c652f6f7267616e697a6174696f6e2f372f6176617461722e737667" data-canonical-src="https://opencollective.com/Sortable/organization/7/avatar.svg" style="max-width: 100%;"></a> <a href="https://opencollective.com/Sortable/organization/8/website" rel="nofollow"><img src="https://camo.githubusercontent.com/bef40b880c3d96c1f62902ba295632bf79861541a8571f15a1f4b4d2e8d76083/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f536f727461626c652f6f7267616e697a6174696f6e2f382f6176617461722e737667" data-canonical-src="https://opencollective.com/Sortable/organization/8/avatar.svg" style="max-width: 100%;"></a> <a href="https://opencollective.com/Sortable/organization/9/website" rel="nofollow"><img src="https://camo.githubusercontent.com/4202ba21f0ebff7a10593631457f9b77fd1404a059cc845b431dfa92530aaf10/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f536f727461626c652f6f7267616e697a6174696f6e2f392f6176617461722e737667" data-canonical-src="https://opencollective.com/Sortable/organization/9/avatar.svg" style="max-width: 100%;"></a></p> <div class="markdown-heading"><h2 class="heading-element">MIT LICENSE</h2><a id="user-content-mit-license" class="anchor" aria-label="Permalink: MIT LICENSE" href="#mit-license"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p> <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p> <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p> </div></article></div><div class="pv4"><h2 class="c7520c26">Readme</h2><h3 id="user-content-keywords" class="a0dff0b1 mt2 pt2 mb3 pb3 f4 fw6 b--black-10">Keywords</h3><ul class="list pl0"><li class="dib mr2"><a class="_75a5f581 f4 fw6 fl db pv1 ma1 black-70 link hover-black animate" href="/search?q=keywords:sortable">sortable</a></li><li class="dib mr2"><a class="_75a5f581 f4 fw6 fl db pv1 ma1 black-70 link hover-black animate" href="/search?q=keywords:reorder">reorder</a></li><li class="dib mr2"><a class="_75a5f581 f4 fw6 fl db pv1 ma1 black-70 link hover-black animate" href="/search?q=keywords:drag">drag</a></li><li class="dib mr2"><a class="_75a5f581 f4 fw6 fl db pv1 ma1 black-70 link hover-black animate" href="/search?q=keywords:meteor">meteor</a></li><li class="dib mr2"><a class="_75a5f581 f4 fw6 fl db pv1 ma1 black-70 link hover-black animate" href="/search?q=keywords:angular">angular</a></li><li class="dib mr2"><a class="_75a5f581 f4 fw6 fl db pv1 ma1 black-70 link hover-black animate" href="/search?q=keywords:ng-sortable">ng-sortable</a></li><li class="dib mr2"><a class="_75a5f581 f4 fw6 fl db pv1 ma1 black-70 link hover-black animate" href="/search?q=keywords:react">react</a></li><li class="dib mr2"><a class="_75a5f581 f4 fw6 fl db pv1 ma1 black-70 link hover-black animate" href="/search?q=keywords:vue">vue</a></li><li class="dib mr2"><a class="_75a5f581 f4 fw6 fl db pv1 ma1 black-70 link hover-black animate" href="/search?q=keywords:mixin">mixin</a></li></ul></div></section><section class="e22ba268 ph2 ph0-ns ml0-ns mr3-ns black-80" id="tabpanel-explore" aria-labelledby="package-tab-explore" role="tabpanel" data-attribute="hidden"></section><section class="e22ba268 ph2 ph0-ns ml0-ns mr3-ns black-80" id="tabpanel-admin" aria-labelledby="package-tab-admin" role="tabpanel" data-attribute="hidden"></section><section class="e22ba268 ph2 ph0-ns ml0-ns mr3-ns black-80" id="tabpanel-dependencies" aria-labelledby="package-tab-dependencies" role="tabpanel" data-attribute="hidden"></section><section class="e22ba268 ph2 ph0-ns ml0-ns mr3-ns black-80" id="tabpanel-dependents" aria-labelledby="package-tab-dependents" role="tabpanel" data-attribute="hidden"></section><div class="e22ba268 ph2 ph0-ns ml0-ns mr3-ns black-80" id="tabpanel-versions" aria-labelledby="package-tab-versions" role="tabpanel" data-attribute="hidden"></div></span><span aria-live="polite"></span></div><div class="fdbf4038 w-third-l mt3 w-100 ph3 ph4-m pv3 pv0-l"><h2 class="c7520c26">Package Sidebar</h2><h3 class="c84e15be f5 mt2 pt2 mb0">Install</h3><div class="d767adf4 lh-copy truncate ph0 mb3 black-80 b5be2af6 f6 flex flex-row"><svg viewBox="0 0 12.32 9.33" aria-hidden="true"><g><line class="st1" x1="7.6" y1="8.9" x2="7.6" y2="6.9"></line><rect width="1.9" height="1.9"></rect><rect x="1.9" y="1.9" width="1.9" height="1.9"></rect><rect x="3.7" y="3.7" width="1.9" height="1.9"></rect><rect x="1.9" y="5.6" width="1.9" height="1.9"></rect><rect y="7.5" width="1.9" height="1.9"></rect></g></svg><p class="flex-auto truncate db ma0"><code>npm i <!-- -->sortablejs</code><button class="fbd04dd1" type="button" aria-label="Copy install command line"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="copy" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z" fill="#808080"></path></svg></button></p></div><div class="_702d723c dib w-50 fl bb b--black-10 pr2 w-100"><h3 id="repository" class="c84e15be f5 mt2 pt2 mb0">Repository</h3><p class="_40aff104 fw6 mb3 mt2 truncate black-80 f5"><a aria-labelledby="repository repository-link" class="b2812e30 f2874b88 fw6 mb3 mt2 truncate black-80 f4 no-underline pr1" href="https://github.com/SortableJS/Sortable" target="_blank" rel="noopener noreferrer nofollow"><span class="_513426a8 dib v-mid"><svg width="16" height="16" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><title>Git</title><g fill="#0A0B09" fill-rule="nonzero"><path d="M15.6981994,7.28744895 L8.71251571,0.3018063 C8.3102891,-0.1006021 7.65784619,-0.1006021 7.25527133,0.3018063 L5.80464367,1.75263572 L7.64478689,3.59281398 C8.07243561,3.44828825 8.56276901,3.5452772 8.90352982,3.88604451 C9.24638012,4.22907547 9.34249661,4.72359725 9.19431703,5.15282127 L10.9679448,6.92630874 C11.3971607,6.77830046 11.8918472,6.8738964 12.2346975,7.21727561 C12.7135387,7.69595181 12.7135387,8.47203759 12.2346975,8.95106204 C11.755508,9.43026062 10.9796112,9.43026062 10.5002476,8.95106204 C10.140159,8.59061834 10.0510075,8.06127108 10.2336636,7.61759448 L8.57948492,5.9635584 L8.57948492,10.3160467 C8.69614805,10.3738569 8.80636859,10.4509954 8.90352982,10.5479843 C9.38237103,11.0268347 9.38237103,11.8027463 8.90352982,12.2822931 C8.42468862,12.7609693 7.64826937,12.7609693 7.16977641,12.2822931 C6.69093521,11.8027463 6.69093521,11.0268347 7.16977641,10.5479843 C7.28818078,10.4297518 7.42521643,10.3402504 7.57148065,10.2803505 L7.57148065,5.88746473 C7.42521643,5.82773904 7.28852903,5.73893407 7.16977641,5.62000506 C6.80707597,5.25747183 6.71983981,4.72499027 6.90597844,4.27957241 L5.09195384,2.465165 L0.301800552,7.25506126 C-0.100600184,7.65781791 -0.100600184,8.31027324 0.301800552,8.71268164 L7.28783254,15.6983243 C7.69005915,16.1005586 8.34232793,16.1005586 8.74507691,15.6983243 L15.6981994,8.74506934 C16.1006002,8.34266094 16.1006002,7.68968322 15.6981994,7.28744895" id="Path"></path></g></svg></span><span id="repository-link">github.com/SortableJS/Sortable</span></a></p></div><div class="_702d723c dib w-50 fl bb b--black-10 pr2 w-100"><h3 id="homePage" class="c84e15be f5 mt2 pt2 mb0">Homepage</h3><p class="_40aff104 fw6 mb3 mt2 truncate black-80 f5"><a aria-labelledby="homePage homePage-link" class="b2812e30 f2874b88 fw6 mb3 mt2 truncate black-80 f4 no-underline pr1" rel="noopener noreferrer nofollow" href="https://github.com/SortableJS/Sortable#readme"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="link" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"></path></svg><span id="homePage-link">github.com/SortableJS/Sortable#readme</span></a></p></div><div><div class="_702d723c dib w-50 fl bb b--black-10 pr2 w-100" role="button" tabindex="0" aria-label="Showing weekly downloads"><h3 class="c84e15be f5 mt2 pt2 mb0 _5cfc0900"><svg viewBox="0 0 7.22 11.76" aria-hidden="true"><title>Downloads</title><g><polygon points="4.59 4.94 4.59 0 2.62 0 2.62 4.94 0 4.94 3.28 9.53 7.22 4.94 4.59 4.94" aria-label="Downloads icon"></polygon><rect x="0.11" y="10.76" width="7" height="1"></rect></g></svg>Weekly Downloads</h3><div class="_000ae427 flex flex-row-reverse items-end"><svg class="_418c4939 flex-none" width="200" height="40" stroke-width="3" stroke="#8956FF" fill="rgba(137, 86, 255, .2)" aria-hidden="true"></svg><p class="_9ba9a726 f4 tl flex-auto fw6 black-80 ma0 pr2 pb1">1,829,121</p></div></div></div><div class="_702d723c dib w-50 fl bb b--black-10 pr2"><h3 class="c84e15be f5 mt2 pt2 mb0">Version</h3><div class="abe380b3 flex flex-row items-center"><p class="f2874b88 fw6 mb3 mt2 truncate black-80 f4">1.15.6</p></div></div><div class="_702d723c dib w-50 fl bb b--black-10 pr2"><h3 class="c84e15be f5 mt2 pt2 mb0">License</h3><p class="f2874b88 fw6 mb3 mt2 truncate black-80 f4">MIT</p></div><div class="_702d723c dib w-50 fl bb b--black-10 pr2"><h3 class="c84e15be f5 mt2 pt2 mb0">Unpacked Size</h3><p class="f2874b88 fw6 mb3 mt2 truncate black-80 f4">641 kB</p></div><div class="_702d723c dib w-50 fl bb b--black-10 pr2"><h3 class="c84e15be f5 mt2 pt2 mb0">Total Files</h3><p class="f2874b88 fw6 mb3 mt2 truncate black-80 f4">14</p></div><div class="_702d723c dib w-50 fl bb b--black-10 pr2 w-100"><h3 class="c84e15be f5 mt2 pt2 mb0">Last publish</h3><p class="f2874b88 fw6 mb3 mt2 truncate black-80 f4"><time dateTime="2024-11-28T18:21:49.918Z" title="11/28/2024, 6:21:49 PM">3 months ago</time></p></div><div class="_702d723c dib w-50 fl bb b--black-10 pr2 bb-0 w-100"><h3 id="collaborators" class="c84e15be f5 mt2 pt2 mb0">Collaborators</h3><ul aria-labelledby="collaborators" class="list pl0 cf"><li class="_426b8533 fl dib mr2 mb2"><div><a href="/~rubaxa"><img src="/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9kMWYxYjA1YzAyMzUzZTMwZTAyMzEyYWVlMGFiZDU1YT9zaXplPTEwMCZkZWZhdWx0PXJldHJvIn0.CQCTTN8x0QjMhUg92c6XFTS5JZvNykxLH_MX21XE4xk" style="width:42px;height:42px;min-width:42px;border-radius:4%" alt="rubaxa" title="rubaxa"/></a></div></li><li class="_426b8533 fl dib mr2 mb2"><div><a href="/~owenm"><img src="/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9lYWU2OTA4YjhjM2ZkZDVlNDM5NGNlOTIwNDgwNDUwOT9zaXplPTEwMCZkZWZhdWx0PXJldHJvIn0.s4oaNuH2-y9_BWR8ng-86SSUszhDOsrClRihKwx8oMA" style="width:42px;height:42px;min-width:42px;border-radius:4%" alt="owenm" title="owenm"/></a></div></li></ul></div><div class="w-100"><a class="c37751f6 _24a1e9c7 dab9924c br2 pv2 ph3 fw5 f5 tc button button-reset pointer ma2 truncate ml0 no-underline mt2 dib w-100" rel="noopener noreferrer nofollow" href="https://runkit.com/npm/sortablejs"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="terminal" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z"></path></svg><strong>Try</strong> on RunKit</a></div><div class="_33c89934 w-100"><a class="_4a3f8f21 _24a1e9c7 dab9924c br2 pv2 ph3 fw5 f5 tc button button-reset pointer ma2 truncate ml0 no-underline mt2 dib w-100" href="/support?inquire=security&amp;security-inquire=malware&amp;package=sortablejs&amp;version=1.15.6"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="flag" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z"></path></svg><strong>Report</strong> malware</a></div></div></div> </main><footer class="cd2827bb bt b--black-10 mt4"><h2 class="e13b5dae">Footer</h2><div id="footer" class="center mw9 pa3 flex flex-column flex-wrap-m flex-row-ns"><div class="flex-auto pa4-ns pa3 w-100 w-10-l"><div class="_802b5507 pt3"><a target="_blank" rel="noopener noreferrer nofollow" href="https://github.com/npm" aria-label="Visit npm GitHub page"><svg viewBox="0 0 27.23 27.23" aria-hidden="true"><rect fill="#333333" width="27.23" height="27.23" rx="2"></rect><polygon fill="#fff" points="5.8 21.75 13.66 21.75 13.67 9.98 17.59 9.98 17.58 21.76 21.51 21.76 21.52 6.06 5.82 6.04 5.8 21.75"></polygon></svg></a></div><div class="_802b5507 pt3"><a target="_blank" rel="noopener noreferrer nofollow" href="https://github.com" aria-label="GitHub"><svg aria-hidden="true" focusable="false" class="" viewBox="0 0 24 24" width="50" height="50" fill="black" style="display:inline-block;user-select:none;vertical-align:top;overflow:visible"><path d="M12.5.75C6.146.75 1 5.896 1 12.25c0 5.089 3.292 9.387 7.863 10.91.575.101.79-.244.79-.546 0-.273-.014-1.178-.014-2.142-2.889.532-3.636-.704-3.866-1.35-.13-.331-.69-1.352-1.18-1.625-.402-.216-.977-.748-.014-.762.906-.014 1.553.834 1.769 1.179 1.035 1.74 2.688 1.25 3.349.948.1-.747.402-1.25.733-1.538-2.559-.287-5.232-1.279-5.232-5.678 0-1.25.445-2.285 1.178-3.09-.115-.288-.517-1.467.115-3.048 0 0 .963-.302 3.163 1.179.92-.259 1.897-.388 2.875-.388.977 0 1.955.13 2.875.388 2.2-1.495 3.162-1.179 3.162-1.179.633 1.581.23 2.76.115 3.048.733.805 1.179 1.825 1.179 3.09 0 4.413-2.688 5.39-5.247 5.678.417.36.776 1.05.776 2.128 0 1.538-.014 2.774-.014 3.162 0 .302.216.662.79.547C20.709 21.637 24 17.324 24 12.25 24 5.896 18.854.75 12.5.75Z"></path></svg></a></div></div><div class="flex-auto pa4-ns pa3 w-30-ns w-50-m"><h3 id="support" class="_1b8c0a9f">Support</h3><ul class="list pl0" aria-labelledby="support"><li class="pv1"><a class="df995acb no-underline pr1" href="https://docs.npmjs.com">Help</a></li><li class="pv1"><a class="df995acb no-underline pr1" href="https://github.com/advisories">Advisories</a></li><li class="pv1"><a class="df995acb no-underline pr1" href="http://status.npmjs.org/">Status</a></li><li class="pv1"><a class="df995acb no-underline pr1" href="/support">Contact npm</a></li></ul></div><div class="flex-auto pa4-ns pa3 w-30-ns w-50-m"><h3 id="company" class="_1b8c0a9f">Company</h3><ul class="list pl0" aria-labelledby="company"><li class="pv1"><a class="df995acb no-underline pr1" href="/about">About</a></li><li class="pv1"><a class="df995acb no-underline pr1" href="https://github.blog/tag/npm/">Blog</a></li><li class="pv1"><a class="df995acb no-underline pr1" href="/press">Press</a></li></ul></div><div class="flex-auto pa4-ns pa3 w-30-ns w-50-m"><h3 id="terms" class="_1b8c0a9f">Terms &amp; Policies</h3><ul class="list pl0" aria-labelledby="terms"><li class="pv1"><a class="df995acb no-underline pr1" href="/policies/">Policies</a></li><li class="pv1"><a class="df995acb no-underline pr1" href="/policies/terms">Terms of Use</a></li><li class="pv1"><a class="df995acb no-underline pr1" href="/policies/conduct">Code of Conduct</a></li><li class="pv1"><a class="df995acb no-underline pr1" href="/policies/privacy">Privacy</a></li></ul></div></div></footer></div><div class="_8a62ca63 fixed top-0 left-0 z-999" style="opacity:0;transform:scaleX(1);-webkit-transform:scaleX(1);-moz-transform:scaleX(1)"></div></div></div><script integrity="sha512-qnKFh9K5D6Z3OggPggFe31wBfjxV3aZ5b4LBqS6HNQsVvfdhZeyBhgR7OvbmwZX5x3SPE9wD0f902qtMIWRwVA==">window.__context__ = {"context":{"notifications":[],"csrftoken":"L8IBYyW9FBSF73JpQ0AAzdk7oRI0FOHnQ4Xj7rizbvS","userEmailVerified":null,"auditLogEnabled":false,"user":null,"documentContext":{"readme.data":"readme"},"undefined":true,"readme":{"ref":"readme","data":null},"versionsDownloads":{"1.10.0-rc3":692,"1.15.0":178622,"1.15.6":348553,"1.14.0":433042,"1.10.0-rc2":108,"1.11.2-alpha.4":4,"1.15.4":7623,"1.8.2":26,"1.8.1":4157,"1.6.1":6945,"1.10.0-rc1":4,"1.10.0":8449,"1.0.0":13,"1.8.3":2033,"1.8.0":182,"0.7.2":441,"1.13.0":13908,"1.7.0":13934,"1.8.0-rc1":76,"1.15.3":141353,"1.10.1":8269,"1.4.0":48,"1.12.0":17726,"1.3.0":766,"1.11.2-alpha.2":4,"1.5.0-rc1":46,"1.10.2":425280,"1.1.1":72,"1.11.2-alpha.3":1771,"1.6.0":309,"1.15.1":34812,"1.8.4":6473,"1.9.0":9141,"1.2.1":56,"1.4.2":3496,"1.5.0":7,"1.5.1":204,"1.2.0":6,"1.1.0":4,"1.0.1":11,"1.15.2":157851,"1.4.1":9,"0.7.0":4,"1.15.5":2587,"0.7.1":4},"starAction":"/package/sortablejs/star","provenance":{"enabled":false,"feedbackUrl":" https://github.com/npm/feedback"},"isSecurityPlaceholder":false,"private":false,"devDeps":["@babel/core","@babel/plugin-transform-object-assign","@babel/preset-env","rollup","rollup-plugin-babel","rollup-plugin-json","rollup-plugin-node-resolve","testcafe","testcafe-browser-provider-saucelabs","testcafe-reporter-xunit","uglify-js"],"deps":[],"packument":{"description":"JavaScript library for reorderable drag-and-drop lists on modern browsers and touch devices. No jQuery required. Supports Meteor, AngularJS, React, Polymer, Vue, Knockout and any CSS library, e.g. Bootstrap.","homepage":"https://github.com/SortableJS/Sortable#readme","repository":"https://github.com/SortableJS/Sortable","distTags":{"latest":"1.15.6"},"keywords":["sortable","reorder","drag","meteor","angular","ng-sortable","react","vue","mixin"],"maintainers":[{"name":"rubaxa","avatars":{"small":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9kMWYxYjA1YzAyMzUzZTMwZTAyMzEyYWVlMGFiZDU1YT9zaXplPTUwJmRlZmF1bHQ9cmV0cm8ifQ.8zR9VQs8iWJu6K6EpUehxfSJ1zPk6tVoE04SqYSyrxI","medium":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9kMWYxYjA1YzAyMzUzZTMwZTAyMzEyYWVlMGFiZDU1YT9zaXplPTEwMCZkZWZhdWx0PXJldHJvIn0.CQCTTN8x0QjMhUg92c6XFTS5JZvNykxLH_MX21XE4xk","large":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9kMWYxYjA1YzAyMzUzZTMwZTAyMzEyYWVlMGFiZDU1YT9zaXplPTQ5NiZkZWZhdWx0PXJldHJvIn0.d8eH73nMRbbTKCEO5YgqsEeHDP7AybU-JVnx128A9U0"}},{"name":"owenm","avatars":{"small":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9lYWU2OTA4YjhjM2ZkZDVlNDM5NGNlOTIwNDgwNDUwOT9zaXplPTUwJmRlZmF1bHQ9cmV0cm8ifQ.5tp7GOHL1Y-5c6qex2kwaUGKq_omLBsU0PNSyLH_dFs","medium":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9lYWU2OTA4YjhjM2ZkZDVlNDM5NGNlOTIwNDgwNDUwOT9zaXplPTEwMCZkZWZhdWx0PXJldHJvIn0.s4oaNuH2-y9_BWR8ng-86SSUszhDOsrClRihKwx8oMA","large":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9lYWU2OTA4YjhjM2ZkZDVlNDM5NGNlOTIwNDgwNDUwOT9zaXplPTQ5NiZkZWZhdWx0PXJldHJvIn0.Y8uk6q-Lrb7OqLx_CKREkUEXR1W7-ERl6KJdvJUdLuQ"}}],"name":"sortablejs","license":"MIT","version":"1.15.6","versions":[{"version":"1.15.6","date":{"ts":1732818109918,"rel":"3 months ago"},"dist":{"integrity":"sha512-aNfiuwMEpfBM/CN6LY0ibyhxPfPbyFeBTYJKCvzkJ2GkUpazIt3H+QIPAMHwqQ7tMKaHz1Qj+rJJCqljnf4p3A==","shasum":"ff93699493f5b8ab8d828f933227b4988df1d393","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.6.tgz","fileCount":14,"unpackedSize":640877,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMAo73oSfn2TQx9R2H4Ufo18PBWgts8iNYa8KFCSX0NQIgSsj7MK1ErH7SYmZa/ERnknJvrm/T1mfSbVwSgjAEb3Y="}]}},{"version":"1.15.5","date":{"ts":1732749234713,"rel":"3 months ago"},"dist":{"shasum":"225edc6ae153b2e5eca54f150abc2bc5f9305b29","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.5.tgz","fileCount":14,"integrity":"sha512-xDJLosRJzZ+nVnjaUYmO9H/wZth0lWTRq7VzV1eQyDSKsvxmoJ69HTGcwnwGYpJG/AkJ9OWiwWH4BhIycdonWw==","signatures":[{"sig":"MEYCIQDAUH2HOLvjxEEXFGDjOQlyuoUJYHCHLtix10XCdcX2LgIhALctNtHTaLJ+9fkWQm/OJffJXin13B/2BUFbfeoNdqzJ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":640663}},{"version":"1.15.4","date":{"ts":1732444301749,"rel":"3 months ago"},"dist":{"shasum":"f5601f6aa725df1601c09a4a50a8f4ea5d95d96b","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.4.tgz","fileCount":14,"integrity":"sha512-wr7G5Id/WNllca5yF9I2vsz/2wDKJebX5FJBtfUFBGGpaaIVjW4kziAnNMEcigaTZAaPLB92NYBGqWenGDH++g==","signatures":[{"sig":"MEUCIQCfvLonXtIzphQRsD10nsC0xIT9IExtpNp1yo5PiuOBwQIgUPWqgGduZZmo1GpMyD6YW+pe5QOPdQfzx/IFLaDMte8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":640262}},{"version":"1.15.3","date":{"ts":1725231330201,"rel":"5 months ago"},"dist":{"shasum":"033668db5ebfb11167d1249ab88e748f27959e29","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.3.tgz","fileCount":14,"integrity":"sha512-zdK3/kwwAK1cJgy1rwl1YtNTbRmc8qW/+vgXf75A7NHag5of4pyI6uK86ktmQETyWRH7IGaE73uZOOBcGxgqZg==","signatures":[{"sig":"MEUCIA7wRPL0KrGKDwJ9z4o6FJiXkzMhf97C5HukFV27KPTAAiEA5pctNP8VfzQdn0Goxgvmcm0t7sjET52Q1MwByAQww7s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":634329}},{"version":"1.15.2","date":{"ts":1705192069728,"rel":"a year ago"},"dist":{"shasum":"4e9f7bda4718bd1838add9f1866ec77169149809","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.2.tgz","fileCount":8,"integrity":"sha512-FJF5jgdfvoKn1MAKSdGs33bIqLi3LmsgVTliuX6iITj834F+JRQZN90Z93yql8h0K2t0RwDPBmxwlbZfDcxNZA==","signatures":[{"sig":"MEYCIQDBMkOcchki6Hvv2s11xkBbZJ0ArvjV1dDLHhqZIv+28QIhAN/qNf3S8ADy5SKIGb0YRAkfMilTAA7cCiL3iixOncZf","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":555579}},{"version":"1.15.1","date":{"ts":1701382042872,"rel":"a year ago"},"dist":{"shasum":"9a35f52cdff449fb42ea8ecf222f3468d76e0a47","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.1.tgz","fileCount":8,"integrity":"sha512-P5Cjvb0UG1ZVNiDPj/n4V+DinttXG6K8n7vM/HQf0C25K3YKQTQY6fsr/sEGsJGpQ9exmPxluHxKBc0mLKU1lQ==","signatures":[{"sig":"MEUCIQDAXcCot4uxBJ4+Yt4swNAvjSIsubQqVd9Db8B47y126AIgBYCXwGC4T81/8WYHP3J7HjId9CRMmipP0v9+D81h3XE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":554213}},{"version":"1.15.0","date":{"ts":1647793834826,"rel":"3 years ago"},"dist":{"shasum":"53230b8aa3502bb77a29e2005808ffdb4a5f7e2a","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.0.tgz","fileCount":8,"integrity":"sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w==","signatures":[{"sig":"MEUCIQDXNCO0jaQ0RiyvRE9eeJGT7DNzsE12BZ0LX8z0B65CFgIgKNBi2Yyw+9sfzE9MIvJzbiPiK+/cgEsBWIcR/CO1rNY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":550699,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiN1aqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrJ0Q//dNSpZekJ8xytWIjUQ7fEAi0Vh33uEi0TelJ458L2SLCcwASt\r\nXjOuPobn+QAhYlHBIZPBQ9/ZEQSunWqwRWsRxDQPSYSGh7gkzI6JeFQScath\r\nLmpJcUVr5v6Lrg/RrZ84IRRav1EqTGqwmNaM03ZLHL5/V4FjotzHhlEyWQe8\r\nqmY34uYKyhTQWeKXxoxwjdE8sg9qQ9+Ofa5sitqWEgOmDr46NXCJvro43dLE\r\nNlBkoA7/pJMEI3Z8E9LsFw2Wp+0tyXvgysFKcKzWNAfbhpXA6aNR7SpZMoD1\r\nkmzFu6zmSg5XVUXa4Xv6U9i+s4tfAU8f37Uqw+ZKk3ayxKlHj7z+MEtMx7RG\r\nvauNTHxvRjAZyyXHap2y45nTG+hORgYxYFaRye/En4jWotkPciekgZE5WuF2\r\niRGsHjWDsCZwQNrvee/rjkuxEWp1XwivQcwWGauNI01om+pdAgfkymfSsMW9\r\nHevk7dYOq1K9PSuV/wHZtuAqZQj7/LyirMEAOuylovdsYbKvkZUbWZOwzDXW\r\nsSywX3fRFfdUxJCRF2aDHWCk6D93AQs5lPlL0bLNaD/UalN4vylK0lyw4rXw\r\nchNR0wEAyCMvDS2DRCsuEgGk+qTobWcgNrzOHTv1A2+7eqlTuQBgmCU9kMjf\r\nxOwrr7+yFOyi0FlozAiaHpJ3gIbu9nE2MLI=\r\n=FR/R\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"1.14.0","date":{"ts":1625423708598,"rel":"4 years ago"},"dist":{"shasum":"6d2e17ccbdb25f464734df621d4f35d4ab35b3d8","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.14.0.tgz","fileCount":8,"integrity":"sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==","signatures":[{"sig":"MEUCIAubah1utK9+eI+y3MfnSdlTtjflpZALxy/IjYkJbc+vAiEAkltwuPYKUvhJCo7XDscNwEr9At3aZz2VbCiUYWe8w6c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":548797,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg4f9dCRA9TVsSAnZWagAAYEMP/iqSNOpKdKl9q4kVUD8x\nCGcdln9F/o2oTR8BBM+TfBTz3rgIkTqijKxneA4b55Gv0lalDjot4cIASMic\nlIjssN+x/wwmY59ZwRYrSmH0MfUOYuE8NOSEe9533YodxiTXhlEAmb5GI7xQ\n4QbpKVdSFRsoM5AztuHnKdpwAnrKJGL96w+KUTkgnroxASm4ah1GZYlbP8gf\n11OLv7k4QcVKANm67g1+Z/IXtsIA/UiAk6XL3i3sTp8eV21C4SrVYGOssXd0\n+vE69zRHvY5oBNX+B0iHmBDzxzp0Yn7T5jOgUMHsn6Jq06gaZsyNFtMhdTea\njOjoUsZaiL+M3er9HxoFDmHCh4i/9G/SEZRpyqM+Y9y1iT+HN47VFMDzYsHr\nv2WrCzRvayxymdAfPfEKytz73pTyW6dit1ScoD+YX/3OfVhb7Q+lrZK+5jvU\nMhmgYgFiFHUop0Fd8wOTl7trGRiKCnzW3TxurPcs13rmdghyqFqswdzvyv8I\nbhLmW37FRs+kJsELsjhLzRVwh03G/PVt55m63w2EaT/S56pnwuf0OAgtlgfL\n7q8wW1bxTOrIP146sJ/IFC6MGhYJM6EJhJzcmFEnImYS0cGZjcJc0mKopXxZ\nblTxXSILM3uKVORM0IwNf1vk0hkmEjM8olqDpD3D7aS59knQfl2YeMIFVqEV\na8XI\r\n=g8k4\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"1.13.0","date":{"ts":1610072296409,"rel":"4 years ago"},"dist":{"shasum":"3ab2473f8c69ca63569e80b1cd1b5669b51269e9","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.13.0.tgz","fileCount":8,"integrity":"sha512-RBJirPY0spWCrU5yCmWM1eFs/XgX2J5c6b275/YyxFRgnzPhKl/TDeU2hNR8Dt7ITq66NRPM4UlOt+e5O4CFHg==","signatures":[{"sig":"MEUCIB+S5cQ5H7mJ2wiadhZNoUZKAxe/etLIVVO+uJTmAKU2AiEA2feqkPNq/3A7aGEgeDuVq5h/+rWVRp6PIBAA+7qGRLg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":537633,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf98DoCRA9TVsSAnZWagAAfXwP/1grW1/ptwkyUV7n+WCE\nY243P3nEKOupBxJ5M+MSC1LIq+u4pcZvm8gn4jMAU9X0gNmzx3JBhjHWsqRD\njb6+YU4hxtx+4CNJ1aUbZqobN9Hr6Wx0AX+YtWY7m+ngSjLG20Gg89oEOZpO\n7zr4+RWFJ5rdYhOdPNvJTpgRdE4Dt3no81puwjJF1hl5LvcG3+F2NSDjsTSj\nsVRWnGP7hc9VPvVnNC84x2mYXFjS2ybMN0Sfk+9w2Zg9dQhZxqJ+3cUit2Ez\nTMsz7MIFINMZs33O+4MQ5piDP4OvOlP+KEm8nAWJpjcHo+36Yg1kxCsIRZfH\nypOLxi5CjT7cKLDuIkbvAdPiug9gkXqU2RMWAgCUdqds7OlDy1PO8/+g9djL\ns3MtdmKFLOLbS96X5KUqP+mHS+RO70/VEyHq/IurY/otrVM+gjik2J7HSm96\nP79jtS0QR6W5etu1qWp/+MKJqRennFPrggAi33vWZtnq2MbRVRi+ZHu3qgib\nSVkiqiaMd67I2PEaav5ip08DJ1Sxtgl6gYCyx6ujMvyQXE4jlsbOWi1yYr34\nG8KP5AGf/BVFs9qvhsXSz3vnEVNMZa4UWD0emTie9CdoZHVozMls0Q3bJvUL\nvdh5qqV1X1CplLK6dvhCKcbBEHpqAfhcWeN3KNbJpz7sV6IEGGPt9saXJCXZ\nKFKv\r\n=zSMw\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"1.12.0","date":{"ts":1600658998064,"rel":"4 years ago"},"deprecated":"This version has deprecated in favor of a rollback to version 1.10.2","dist":{"shasum":"ee6d7ece3598c2af0feb1559d98595e5ea37cbd6","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.12.0.tgz","fileCount":10,"integrity":"sha512-bPn57rCjBRlt2sC24RBsu40wZsmLkSo2XeqG8k6DC1zru5eObQUIPPZAQG7W2SJ8FZQYq+BEJmvuw1Zxb3chqg==","signatures":[{"sig":"MEQCIAColvgctXzO+jKeCX5WL2VGoDatBrf2CMdFcjcw7QBkAiBqpDGmgB3nuJgPBV/J7QeAY+qZi09qjoaGmbeubyR1tg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":888172,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfaB42CRA9TVsSAnZWagAAS3AP/jkfd637ZYxolTLe2f5n\nNJe3I3Epd+qBJDvJGHw6vRSJWIc3lpppyYJTDx9BvBwXy3VcRgNHuFRmqScV\nRwYp7QBa6KxIKrolwuv5IwOnYsr6s3GGCBrK0Vj3CbwnPZ4zAFu3WeL32qnH\n+06YPLgrJ8skLjkMAbh6zBRWbq/YtpnCgTZDj2Xn8CmuiBSC9Ozz+rxYhFPR\nYmglzWnBL/BohEY0U/SbYqv+c4Bf8UkklEzfoIruJQnsQ4pPIUwQ9wIuWgH/\nf/jZv/TFR06LGyQAdRScjYe3QfDcxSP5yK/cvOScbbpQPKvt++r11m4KmgXF\nlAZ/yL21NrDYCaQFSCrNYcgwMEyN46jTIknZvP00L/uxHR//IVQfK9NKkGls\neO2zuyG7LJcnb7BAZQ/ajNdnllsGoHlZvGDTnECE/bQhJBI2KV4JLKb01ec5\ngxJu+0xq0rjUp9q7aoTR7vZzI6nVZ55lvmmDbfIiOvIvMD5mtYsHnJjqIT1i\n2JJ8sl3Tx3+Elo1LfAT3rZtGc3mPJSgj9h7Z3TDoYd7QdLCZCYVoHIXPpKjS\nnPXzH8Wxm6gzGCnVvrs8ExnKesVSioG0Nug0K6QwA5F5qity/iJMOsBiScRX\nCdz325/DDgvB3e7GL9r+rUTCZ3ibxGIn9ZJT3SjMpG2L8l6GeNv+IdEiAqoR\nZZT/\r\n=dDWv\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"1.11.2-alpha.4","date":{"ts":1600439815727,"rel":"4 years ago"},"deprecated":"This version has deprecated in favor of a rollback to version 1.10.2","dist":{"shasum":"5ad3f6bdc963dc69b18fdd22904de23129962acb","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.11.2-alpha.4.tgz","fileCount":12,"integrity":"sha512-96jThPR99NBLk8FDHA++/diZYn15vZ0GLoMBzr4zsUHGGxKNuc3/NhyiSEhr9hXgVvP0i5ZitcT6IzybPtTuzQ==","signatures":[{"sig":"MEYCIQD+j1zDJURSR5gq1x7Lpj202Nk1O7ZCuyJF2ZFayD88BAIhAOYfGMcEHStRgjCyLpvEF7HnzWLQIpGgiktdMbfDgTTh","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1109745,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfZMYICRA9TVsSAnZWagAA58QP/3pcTRupKFiSlOhQPuVA\nBQPcTdeDz4hM+oxnO6SdzjtYMoR2K3UJ6CxaS6n8cpggDMI1kvxi7PTJtM1A\nDG2eR2rLpWUUbFv+qZlyf3GBLUYTAddxR5C8qTb3ict5ZktOafJPaHrU/TdN\ni14KUmR4GL2NWX27EUJJ+zp4hREl7X8WmWDHiJ2pmBhEpsq+MUSpPSoIm7M1\n7n80nOkHP7FDBkXbv/WMp7ho5m0VHwI8gkSlaLpzL1aUjAo0yyAshKAH61qb\n4IcQJ3GdOEgo9TCzJRMg4HDG5aIRMzS5D+Yx7mUyEYTWLOu+ffskAclLYEzD\nkDvMo0iAhB1UI1T2f6nvds81Z7G79c9a/m1GlV88p6jPpBSVAPpuV7o9XWPH\nhokXLK3lWZaQYUc6WpII4TrttUsfnoyF8iN/1mEvemxZ7QV+7RxJrsnUM82j\nldXEjyw5GqkSEvWkmbQrNCIpQVk/xv1kO68TbFOs5p0Ysu7o8cWhqpButIuS\n5wn/Eh8vSLg9bQWJPH6Z85EvOfSPl0P1VVqjFZBNLQZ8pmUPDKghh52juUaS\nQKpI8HGB4+T0QuTqJprVR2Fd2ekzbhNKtv746S1GEH/4DrUwzXNIvnGoSCBV\nUKrCAweYe36Zh+REX9/iLZoTU3AQXeV+zPJ+047Xa7IxM5X2tkJEVLQcEPnu\nFyzb\r\n=6GfV\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"1.11.2-alpha.3","date":{"ts":1600125417381,"rel":"4 years ago"},"deprecated":"This version has deprecated in favor of a rollback to version 1.10.2","dist":{"shasum":"b61c59c8793c8762532f03c5c84d88d71f8e042c","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.11.2-alpha.3.tgz","fileCount":10,"integrity":"sha512-sX/cttekU7IQDvUGNsRIKDB1MXhd0OfR2OOsluusrZHIPwAKS8OSeGlNXONjcd3vsc3o6t8VakT0KpwnKMm6PQ==","signatures":[{"sig":"MEYCIQD5STlzRJCuAOi1cAdVcFlso6XCvBmO1aKtVwvdZ/27cwIhALbNjyQqPCn96iOpdymvXIpOnPEFUt62AQ5QczK7/22H","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":888244,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfX/npCRA9TVsSAnZWagAA0MUP/itZV33lU0irlA1fKQbd\neay3B8iuHA9ki6lChtAZCWOcYxBOQnMwZeFclcx4fekXKirB65bXG9BA8i5s\nWRDtY4JOq+vmwYkMF1EcpX2KDJfkZwH/f+XoCZnIHfhPHbXT5lrekw8fzO5u\nXuIHHXRFifAIWIboyt3LBp+NP6AvxExzhdoHTebMKIVONBVTn2gEIoDSIbX0\nFRz3Tn+7quHr5fYGAC3siSptBkO3BvcAR0qTej/ZSfpJnEjlazz/5IsXOEwC\nj+WOsprEbyYmF3ZttFaMFymoTUioy+1Kig2iOcEk6iYfrl159BdJE8se1Mt/\nl1yITdyNDoXwYe8aa2+vE6+y9ARAdS2QojnV9fYHWj1D3bVHdixioZtnapQv\ndMCfABEXmFy7RoaPR9NiWNKIjQJvO9cqGDQ2gR21vlGwFAUVJWzdYrUsF9aq\np637clZ1ln1/zr6twoLzzY8oNpIcqPEECCs+s9zhWDQfN5brUPe1emehaWds\n4cB/Na9+Zugy4ztNj0q5PxUXtBS9SgF5cJF/cTTLb0jujmVmoW22QCtRqWMt\ndathnYjg9xd3a/DyMiDHnH6LFSvMIKsdREFZGYbygxvzcAWzmhYV8tweo7Un\nRf2llL596znwRrzeIouVjg2QJ0qYp595+jfTUsDGzBU8H2To0cBBVVpBQVwK\n7Wms\r\n=qpjU\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"1.11.2-alpha.2","date":{"ts":1600124845117,"rel":"4 years ago"},"deprecated":"This version has deprecated in favor of a rollback to version 1.10.2","dist":{"shasum":"1eb3888b490cf4e2aa4548dc13c1cf3bea17a83e","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.11.2-alpha.2.tgz","fileCount":4,"integrity":"sha512-0Z0bUNaDSWc02bGbl74ruT0JeVb/Q+8jUovgnOSO4zmQenX84YaIzSDRXBc5EEkDwpDblq86A9z8FxptN7A/Zw==","signatures":[{"sig":"MEYCIQDbdOcK9dmPxdFAUiYqOwba0w0Sshb39NVRZlULXwc3zAIhAL1Kkn1mFeQtB+n/dQEYtaHbEfZfrl3oJYsuXMf+V6nR","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":224188,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfX/etCRA9TVsSAnZWagAAupQQAIQz6D8rOHp+QGIJ0SeK\n9DCCLOp+G6okgiyUicS5zFL+teuLu5wP8nmpjvrTI274twCEtrAOSc3rMDVQ\nuYtgJ5DUrppVO0l6ZbhMw7SpoaEJyPfs3c5aNd1FbvZO3HQ2Wfa/ti+0yzWe\nTWWIAylPD42uTcYfXoq1yui9A94bpj9P0XQDh2teeF3DP+aHEF67ZHOWEe/w\nLf7F1mXpsluWD6gS5oJRbo7Unhja6Kc1jlUeNbEETz79OhroNa4+DXhQMVKA\nrrWAgdyLYFGpc21GeAi3BzNFkcCwvQscbsjBtsnLZzcTaB8ov0pTajVTRUpr\n67EZbgCqNKZLQIb7oyi/C7zWsv0ueyv6LUWfxGy8CxlpovZRmJj3zXyd1T1u\nK7j5vyZkul4WCFaKra//g9yWjhRrU7rhMV5BHwUdDOeEKmislPT1TH6sLuCD\n7aLk1Pifu7JPkip9pX5szTwptNVOMHTir/H7dvDsGyFLvA2BR6UPnajCivrY\n6MO9dZxjBQiF33A92j+lHrwHl+UzRD1QzjYUaFKIPlwvi5T2TTV4MuerUg2x\n9yyZC+RYxCR86oYtCGjXJ14ltP29ZBZiqZ25p92uHkIvIFLCoiUeCzBuzUd1\n1SP+Q5gATZzBT/JH+S6JNnpSjNsvTK8J7/z6aJy6N9cOCk6LN/G/zP3yuQd+\njSyt\r\n=Glty\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"1.10.2","date":{"ts":1577303021553,"rel":"5 years ago"},"dist":{"shasum":"6e40364d913f98b85a14f6678f92b5c1221f5290","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.10.2.tgz","fileCount":8,"integrity":"sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A==","signatures":[{"sig":"MEQCIE99MCxMj29FRhGCWktKOeo837pVB91f/j5ZeMrLjI6vAiBWQufiA4Ag+BfkTRW1uzehW5pHfI1Tz34FKHYro8deMQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":536002,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeA7vtCRA9TVsSAnZWagAAB+AP/jX1l0Mi8QdsSho1jIWZ\nJH+v3OsPK88D82zCEdBKy+NSnSVUDRxEFjsTK/N3VhzhAqG5OfbqU6WkIBCi\ncTfcIJVLfrry1enJAur6ls9W/crhMb/FSBjR5WTOxgs7LZKuYjAS+2/ClN21\nGLnGt30gzGFxY6QElrqqNmcFB368WbYaMdfzxmcakZDBOKmKNlyfBG5IqZVe\nrr5Oyda/FJCXpUZxq0hE34cCYn4B4hl73M8BYLQMaODAMmO54itWdb1Y8X8y\nx2uPRAJJnMr0g803j6e5ek6mnxzBBYG4E4kNW++qtkHPsGBeLy17ruqPbhQd\nVy838yp68avA9ruKySlI/bIafX9Vu65T1uzbR8p8neIQTLcrtYmWFfbk5Tin\n6FF0tAilh02DuM+jOyHuaK1V/QyCnppFO3FbP7qssRTVHYN1F1rk9xACGn2K\nFLX39bdScEpfbYIhZTaEzU5uJoIYtlgpp0jdDomdFsb1AKH2EnCUHWq8m02A\nr2ql/reR0lCXFSKKFih8JrsnXc7lJPHz1miuBhhzW22z05ex/09QNuK3W/h0\nyM7sMiunFMeQjvsrKf859Ms4XiIKUWWQGJt0A71RGi/nqQQJIF1/+1agKXPh\nJyYi1so0abQgZf9MwfhSCMzvrzdCcbL4KQr66aY338PkY6nYOWSS4M0Bky6d\nKxLz\r\n=OJoD\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"1.10.1","date":{"ts":1569966522462,"rel":"5 years ago"},"dist":{"shasum":"3d52b00f871be00f00f84d99a60d120bf3dfe52c","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.10.1.tgz","fileCount":8,"integrity":"sha512-N6r7GrVmO8RW1rn0cTdvK3JR0BcqecAJ0PmYMCL3ZuqTH3pY+9QyqkmJSkkLyyDvd+AJnwaxTP22Ybr/83V9hQ==","signatures":[{"sig":"MEQCIEc4Kr3IHykU1cn+pWNIdsvO6Pk0Iit1Z2Lh5EtSTAwWAiAtGLgKcddggbwUJkqVx5N3xJHVaZT6OnGr8XNU/OQ1kg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":531651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdk8m7CRA9TVsSAnZWagAAJBkP/j2vnxYLSlVVCglUomP9\nFXCS9FLastoQ4oKtLHm/4uXz2kDbCmMTYLAaed1IF0HJTCCH4QW81jIwp73f\nJ0ji4Uvna+TkLqHc/MT0Ms2w5738+tPJGspDRj/TZn5tMXbYcN7JS34FJYA8\nUMzLrUbafEUjEz669X1ZoranWW8nYNLLHmWt18/5muZy2cF8jaoxO7Ff9Rzw\nsZp+ZC0IH5emN8vF1L+3xFjE6/TDuDnkJEOKLxLpxnexNVvU/RlPj2gnKWln\nUsRv7zq7X97xdV7qqpAu3060QUNcLuctx+QKko17ksaR8NVfG5l8awZsejBo\nL7eNeioa7yY5/MFryqqW3CKGU/Wku98mzwRDpGnJFRplsUawjncLhkVUNt4m\nUNvD4g16aX5cyt3QrfpgSaQu+b8Te93QMF81EmIHD8/KxUEIi0M3ILwPhHhy\ndg9ErpW++X2wBEHTbGv84fnXYIIYWVwsKEkyaNRHSBSjgUH5F2xAT++Tlrrp\nq+jhz+lbb5xm3o/cjJNX4gvb9Xiokaa+C3dgIeuYMUJ0BarlXCurvirI4Q7B\nbOEq5OI0IRyRA/AvcCcvNSXSQHMd7ecyM75WsUP0vTjnUwHgnvepFt9sksHs\nAhaFjdv0ZWeGHRYOMQsyE34NZ6xculsZMsJza8kn46oFHSYtyy7K8/jJjhkP\nECcK\r\n=IGvU\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"1.10.0","date":{"ts":1568573702543,"rel":"5 years ago"},"dist":{"shasum":"0ebc054acff2486569194a2f975b2b145dd5e7d6","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.10.0.tgz","fileCount":8,"integrity":"sha512-+e0YakK1BxgEZpf9l9UiFaiQ8ZOBn1p/4qkkXr8QDVmYyCrUDTyDRRGm0AgW4E4cD0wtgxJ6yzIRkSPUwqhuhg==","signatures":[{"sig":"MEUCIQDuTEXmVtaeFjeDlxjG3UCx0TVvRyRU4FosGvY1haPRvgIgYGN809/rh1RVrnJkSOzNt8YOi8ww6Cx7NPYHjFbaYy0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":531172,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdfokHCRA9TVsSAnZWagAAT3QP+wcjmDyJ+QylMwTBV12H\neimVHKLEGG1ucYQ3Ezzlvdgloie88gH3nEhhzThDqH7A48Yla+gtig46q6yv\np5NTpSRIRZ9T9UTlJjwMA2xq54tkkHSMGY365dSk1+PhJZf8Bmq1m1c7rRWm\nSfLv7duopr3nIfwBncxqQ5W+//VXxrMJlzyUCxDHhFk2ZBRlTbNVKe+gZJ6j\nQsxqLkglEFvnIw00+Tob1eKQnvUCQu1TWM3wGeQCce2p3y+55yfSAyvtRwu7\n4XtBWeOTQi5CkCcJS/Rcq5KXWvSuOH4DbgagSnp699T1KjVWLLlYDeKOQ66S\nYQGDkkyEdKmOnlDBGQt9gevb11AXpvDFOzdZW/cycwaCW1n5Tx6PdybxTdXq\n7l/3Sf/a2oo1cZc6n4F21mrSQ+nIOhRJbs6jQM1+9VVm0GRz/S1/nRat62Oq\nNdchtAgwwlwQEbNIWXczH7tzcuMTbA4teicwz6tpiklhx7csJ/HuCbAzTE8S\nUfbUCye3daPY3DuxwR+dDo+1RPYed1dRrNfJTo1tVCgoYN7V3BBF1yuJLZfo\nMm1J/JjlswfCIBPW6+UBHig++BH+5wr9qnFWaOLYou9gLtvg0zX7/pEMipF9\nRQoM57s1L+TBItQ8eYO0v6kbuwzKsIo34IVQqA6Ejoec6Wnmh+Rm7hqSOxfK\ndJ6y\r\n=+jSn\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"1.10.0-rc3","date":{"ts":1561596883240,"rel":"6 years ago"},"dist":{"shasum":"2fe63463a38b5cd12ec914fc3e03583048496f42","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.10.0-rc3.tgz","fileCount":7,"integrity":"sha512-uw8vZqwI3nkIeAqdrP6N/GDxFW3dY7yz3/rK0GLLoe8aJ2RZALmo6mAwOi+uA7RYuqfz2lm7AACr4ms6gXcb6w==","signatures":[{"sig":"MEYCIQDePgWNo8vK5mCq6YdH/isRWzNS7MGWVG7mc0yVkhp7ewIhAOD1jgsufH0VFa+BlOEzbtiQ0TF0QZdZJUhO8Tjq8aZs","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":524404,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdFBPUCRA9TVsSAnZWagAA5jYQAJSCfS05aU7I9Vk/saw+\nY+bDlWGK4oLppkx3Ro/NPeT3nHSGzVjfHKFKKAZWl0N5NjI9hOOYLZuN+yGz\npeimWH4yKbjaSI2oLwde8oQ1onXmNb3BAaJnOGPq/8ZSoGfa9MaA3PK+UEAH\nRf1B5IgS14tNHzQK0pC8qRO4yiEIu5vhnca1uZxj5ghgyh4M3GzjiMp2XjqE\nDfLYqVXezb4CZs3w7kCN1oUa8g3OtuB9DIa0ooN+L9Zg2PLHXseSdcybKGDm\nE9pvdZTfKCyUp0l5sjP/FLSQMUodDHBVLicr6QGSP/XtM6K4Ph1w2DKBl+AL\nsUzG8jXseq37B7WW93ibokvvCbIDnBVan5etIyZj2gAFZdGrAu6MuB7G7cFp\n158x8Z5Gn2rVxAdj1ok+biMdWc+G/ZbAN2odZbeNsf1s+ZMVbhLw79FFD9VA\nCJKfj8Ze3sqtgApLQhSWzG4wFaSbDACHwRAwbd3inW9SH9IwiiInKgQK8Exs\nydAeTfZPqJUrCwvW2Unh/wcaoR6/9KRICOq0e3COHN2RvxGTKTquCp35sF0y\nqbfthANucnWUWycyeg1DCC4av2aseU97Cn0TH5fni3NQ3K1zq5U1jr/tlb8D\nV6zVlpFiiFp9L5whoXq2OntPquiPbXblTFMPtotLAaNatxXbozCcUAkTO1XI\nGWkI\r\n=Es12\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"1.10.0-rc2","date":{"ts":1559872628071,"rel":"6 years ago"},"dist":{"shasum":"a3d4e55b1ddfbc28ca36bc06ee2765d8518f2f6f","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.10.0-rc2.tgz","fileCount":7,"integrity":"sha512-162MzYM7acfIAwWh3GpoLwEiB3dVChljDRNOcIlzLsIS2MOwgzv0iifiGuSG/M8AzqrkfubrX93uxm/x0SrWxw==","signatures":[{"sig":"MEQCIH5RNTOz9788/6Wsbra3wZ66hu6XfprqA3wFi1tWCV1WAiAqGZXBsN3UhOKsyRYwx1Ogi+yaR9rfdY9MVEPv38obCw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":522783,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc+cR0CRA9TVsSAnZWagAADMQP/2k9EMZ8jJ7VQ0pOLU8q\nyRK2M+lf6Y1zqL63UffNgO62Poc80lTXSPCHwukuGlUMnCOquSYy5qg0vQHw\nJdLkBLSGDFnWve8oLj1NaZbAlnQZutflUdX2ets1RId12NlSwhaIf1F02Hy8\nCpHRkbl67K51dkC+uG61WFkBwZXxIn/ou1i4RYkRt1J1XOXZntcaAKxrddpn\nK8pgM53qPLQSaHOoePrv4Bt7xIOrQgt1bhuI9AVW/tMGl/9mxd/N09ccpLqG\n3facjp6zDgsYhLuW2JVugxzIRwKLwF1T3V4YbIbke9ZuOO+MOQPU5InfK+6l\nfZ9UxsLPTU3b5odpsH2r8lSn7z506V8w2Dlk9oA+XnTSX5pxSEj/mfAnpV6Q\nlVLIfnG0iOFVl2iV8AxPHw5rl7cSjDzcdchEXlIlXSROT5BmGt86/5xpU4a7\nGWQP1zRPswPXtmj2r3QGnKsFwJBcZDnUkVN1NtuzTKUCFqH9joKXaRxxYEiN\nZteCRR5RP5/ZcryAyBlbgo0Bq89FXaRNTWMDXc1wN7nirKGlPR1IaJlTuvNw\nJPusuhvyPRj2tyj5MtDyJeYZKT81UZAe1zK1Ah2qFZlfO9UfkeqX1FrLWccA\nLb95e9TsfyZZr8KxMqbv/WLI1e8vr2fjm9CKHPUXBIlvDhK45E2FFFXx98uO\nVDDd\r\n=fsZW\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"1.10.0-rc1","date":{"ts":1559783256825,"rel":"6 years ago"},"dist":{"shasum":"4c173acfe443d53f8233b224c09e1fd743c2c109","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.10.0-rc1.tgz","fileCount":7,"integrity":"sha512-YciPioKaTdNuXYOqj8YHUOfS5JIKUpyBxf6DYhc+bt9wIQCOlMEOafQ/5P7tD3xYyQ+DuDrCx2+JsNedh/lPSg==","signatures":[{"sig":"MEUCIQC6/pUTuhCruQkdRKIQ9KTf3B3I60ioYkhvG4fxjHRt9QIgFXEt/rgeanLXBDoogTfBKtvhZSQCjVs3uSWd5k0SUHw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":523439,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc+GdZCRA9TVsSAnZWagAAlH8P/jC3m2kjf+61qgYZosfa\nLZ+OKLu5GMN8JqeJfEHgQo+7ZVds3xBLT8LkLfQ9Il/e9BcAumci1TOaDSmL\nUcDt0W6c0kg3JiOrosIDe/PmpCsRGLcNR/CH08NE0Pm5RU9zSkJvCEcqS5gT\ndc9sJaBkaF5feKdzfWEF/n8ziC4NWTZ55VB5m46gv0qr4Ln/v+Sp1aBxquVX\nDJ0Jg1fOWMPakQiCc2QTK9XzEe0xLiWt/nYfsg0vNfe+NRuCxwrVqLLG0iZB\njyK5KnhinCQLpQE/ixBkpOVagiWO/wwatRCwA4w9D7KEmX8ovcdbJaesXW+M\n0FiBZwNo3YXT7tDtI2togWjmoXnXNizHR2kYX/aSgLV2kI/oHVwwg0yNLyG4\nfoaotrVMfdLifpJk4vF+qngOUs9e0FZseOaKNJ2aSMVGcojWvbEfYc0gWcLu\na/Is6l4W3NawPt5MczjSvdlls91KCvqQRKyFPy0sA8soUBjh338N1wp7tAFy\nlC98trO667H+it7GktphesphW9uM+6SfRXU/skSl9UoY3m3lgGKEB1uDZEiA\nu27fWqLjeBu3ssjMhjx1rcxBj8us8kFSOODQb646sevFCcSqibTxwEQHnnfJ\nqeUFumsfSMopRUJiRZBciRgZe6QIIEvBk3Dflvq+QpVBvF2DbJHe6VGJblzF\ntwNS\r\n=V5i2\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"1.9.0","date":{"ts":1555724659559,"rel":"6 years ago"},"dist":{"shasum":"2d1e74ae6bac2cb4ad0622908f340848969eb88d","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.9.0.tgz","fileCount":4,"integrity":"sha512-Ot6bYJ6PoqPmpsqQYXjn1+RKrY2NWQvQt/o4jfd/UYwVWndyO5EPO8YHbnm5HIykf8ENsm4JUrdAvolPT86yYA==","signatures":[{"sig":"MEUCIQDUy8Gnsf7nhRLAbuwpCSOS1bu6660b1E73Sgedw0kcdAIgN5F6r+AYQT++7z/qqTah/7JaOTD7OmikiyhRlYWME1I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":118238,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcunl0CRA9TVsSAnZWagAAmAwQAJpT8Kuh6RZ5j7KNdRFr\nz1Ltcy+6LQKTQHCg+5TlL6C9rSVmti7m9Lr1DCbNv23DCIYKnXPFBqhYzxDp\nIt9rLwwm1JWf5iz3cPjGofpPaVyJVRXAz/xu5l9Cjy45caUGCc3JX2vYdO4L\ns3kNA4ZpLXwfhb4+MlGMKXsBgGyB4fGWy6Ev6QvATuZ8ya/Cx9va64BofCxa\nyilrHhqOBvNtICG+dSmtWTjdZgtCyJ5N26hQ8zL+W783mt1wuSaGfTgC3TAr\nBtL5uikZn17NSAx4j84BAsaG32VjmnAb/Ne5khEIg7DkTB2eh9DSWyCiawId\nhZYSlHvoo8BQdNnwoL8wWg09Lp+lvGO4ZUvlzqthMAFLxF9ORLSvWtPjISug\nLGgt2OIy+8nSmFWucwTxX3i2RhoLuKEy43a+W0EN5ShQOBRVh8S7/Aagi9gv\nFsWFtgs5RzO0cdVhwmG0T8rEx6G8ds5aj+A7+ouB1BSkKGfC0vtoZ6SN6KY1\nFD/2fVyE+5ups3KWG8FSnn1OU8bBl52SJUaxZGSz/DWpu3Ei1kJQsR67qA9t\n7fFv2hIlI15g05zi6RNy2qNUjM6g09m2i+ICAyVEgCahBI/3EqpFTkpcdWep\nXmay/cnxIwGMHiA1KrjEkCIlHONKyd95lad94lKV9jaiGZpRMVGgcrkhhhet\n4ZXM\r\n=J6Pe\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"1.8.4","date":{"ts":1552334018589,"rel":"6 years ago"},"dist":{"shasum":"1bbfeafa96d399b83f28e25d8e49d4fbfd867f30","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.8.4.tgz","fileCount":4,"integrity":"sha512-Brqnzelu1AhFuc0Fn3N/qFex1tlIiuQIUsfu2J8luJ4cRgXYkWrByxa+y5mWEBlj8A0YoABukflIJwvHyrwJ6Q==","signatures":[{"sig":"MEUCIB5YcQwAdvDai2q/D3pPVQ434JjmJ/hOS6adH/rl7LSBAiEApC0mDiPdTxVLA9dKyRk2pE4bfTkaPV9fMA6DSSt5vqA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":117310,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJchrzDCRA9TVsSAnZWagAAoQcP/1mryYTA/bjuuHxFwkgH\no/qo/YzmU2JxocSUd4nBlUKoS7Ze4Wa8CPQNfAXDUvDawuSIkwAS1W7NgpUs\nyacan+boOrcMHMp9mDe6UZddNH+sQoJeNM0HPYJdkvoBIMuS1/qZjSAzuWx1\nStqpfI8fDZnjtGGPcV77DjIHa6ktOrnwxAqPGScr3lbDeLFP2wgcblb7RmQu\nGA4vkTOSWI2ULzHqsOLYN1beKva5p4sTnTOovwnIUNp3UeyotXTyxfBKiijI\n88VuvvddDJvyS4zj3TJbIjhRo1kK+eUYizNd7Uxb8RAFdAToL76pnmti1tMs\ny/XjOgnnh61useID7fpTodT4ONVWem2bYikPDwqVNWRB/mvX/kEg2jc2rafu\ncrw7jhpSb1WSUiuHh9a3NwzEws61GH6zQTi3x3Aeyz9luFROtywNyuI24zoz\nyLihJu4lYEL10lo0A4ligGKoMq+Hi4iKo8tJwM0YEcFt18sGNb3V5W68ntw4\n309sCT0drbG2/P7caNgc3npnA/D26sMhKiMbtn0ov5arypndgpU8w8NUsx+M\nW+j9jjYeIirh99i1v99HZjR2+G3BavRkSIXvejUtLyUVKH9UiR0EN5J7U1sb\nonkQnIrrB/PkfgL1aDsu6TJ0ruDk13rxAR6zT9CWtQUSC9BdDgg8wgeMK7Jg\nCnVN\r\n=b64e\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"1.8.3","date":{"ts":1549925248797,"rel":"6 years ago"},"dist":{"shasum":"5ae908ef96300966e95440a143340f5dd565a0df","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.8.3.tgz","fileCount":4,"integrity":"sha512-AftvD4hdKcR5QlGi7L/JST506zGNGrysE8/QohDpwKXJarHWqCt+TUlrtoMk/wkECB607Q019/OZlJViyWiD6A==","signatures":[{"sig":"MEQCIGLiii1AMA/Ao/MO3bKjZaP+8tk+nVumX76Qzu8n7cncAiBYIOQ02M0JpkHEp5WhUUuHqV2ARt+lYEQ5kWoL3sDWxg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":111609,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcYfuBCRA9TVsSAnZWagAAMAEP/0ZE0c+9zlBpgWszzldC\nJhfSqhXlIhNkRF9BRBu70x5A/YrwRbL7BsqbofNOBTI8JV4uaVvp/CFy8UXH\n4mk6W6npz2rMIeBhO7ZxEavYLARemXh+PxUafK77HxM5F99B7qSUidbbfU4a\nb1cxB0dpDZZTWFPGAXdqy7ErlThVupxlMFJAWgb3KRpVgQiHvNWAg+U9f6Xa\nn4brD5mV7G1G0O6xpHsxVT4N8W5Ot2aMWSq9QQXDr4r5wAqBxytkBRrlc5CE\n2v+bGlSLG5VRZTUOJ/iGnWu1lwZhGu3cYeb081s157tNeNY4of6/QE5fFaxc\ns+evjUB8Y8Ek6S66z2mA4fTC8tl2jKuZH29+Bxs8nQPRyXZzzVXVhm+E8H23\npkKsZP45TE/TtRjBQAdmdLSbKCyyLXfj9nzfO6jYc+hvJlJ9tR1gHn3eYdRH\n5GdxRb4cBz1fTl1ye+tVg74ZbVhAprpZB7JX2Fr8bGGM6dXXCx9QF7HXnXaL\nKvWiFc7QwKoa0UQATIvLEoW10g+oGWZOlSDb/33c5GjtPg6/ARlmUMFiI7nw\nk+e58Tu1FLITbMuiwZCncFSGjK41PuMDJcwFxF5DByIahTzOY7R7QNfN6N31\nlTdAIhy08dSgPOeejFUFnhDDHGDzBsIke0V9BhUw3gKaDGyuxJeJB2nIJ7jg\n6f+N\r\n=eUQ2\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"1.8.2","date":{"ts":1549832249598,"rel":"6 years ago"},"dist":{"shasum":"5ffcfdaf7307b21c0770586186d1938c6c1a028a","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.8.2.tgz","fileCount":4,"integrity":"sha512-Opa3q1nVMBM/XVrh9pCDh/BJFYCNuoFLLzT4FOVzgXocGrb4QpC/u0E4WVpUoIfhUfMSvP6c5SA5nK22vPqbFA==","signatures":[{"sig":"MEUCIQC9Wn8mxOkM/+iUBXpExpTjMz0kmE4/twdCVbE8vsNnqgIgRPnccMA1DIUBLvVxPq2eNZzuw7N2sdITveo5T5FLkkY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":111609,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcYJA6CRA9TVsSAnZWagAAw5oP/3krEdOqwAiJ70YPhCwG\nMexm1tsaLVV74neYGkKok1A9Ko9nTnwvOOpODXYH/jsjDNMC9HPMWfNxn5Jc\ntCWSnyzIVhGDiYtJYdFn+Eoculr4LXfeVzUmC/5GD9W5bjCUUgq61r2n6AgP\n/mv7tQoguqH8APbgtGfjAwEqLveRaWBqhmvmiGPH/ybTp++GaQuwGASbV0c+\nu0Z78zPeSUANDLhKJRjrDoTP3DFD2qurXNFGaESx0spv1VpCouiPEljRSP4h\nv7T9OqKWhebeBvYSVvYRgscn/KbKsFLZ/uEJGGCmCmInoO0PUN9RWiqrMIHP\nZhYxBBd9Yp3KInbxBIISERc6jcaM0nNZ63MbBdLqtW7VqIq19Hn6vA3B/VqB\n0I1esLu9oCQCIRu0EwfGQmO/x5a6Nb+mGiO/LXiKfVXGDFTWXDWLgfR19fuO\nI8ws8SmdyBMyYYQ58rJjjJT3JLpuQFxZ+afhw0nEUfNB6pvfXXS3t1x5n8p3\n1/mpJGldyib4FxBJwT4vBxmVbwOn1/qaCRDQI7H4jFSs9tdPrAkZ9qenj4ks\n8jpFAzIglpFXAQ+836XKbYw1qL0cEed5DZLfyq1avpYoUl1scmF+694Dv0I6\n9erAlOyssJzD+26losmCRHERUBeP4wkneM5N9RZGiRRdF43X4NRLyKRWPcWO\nMzy+\r\n=yy+9\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"1.8.1","date":{"ts":1547598427562,"rel":"6 years ago"},"dist":{"shasum":"d19b66cf10aab9521a565b79766f2f3291c18278","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.8.1.tgz","fileCount":4,"integrity":"sha512-r0bKxZYGUFgv/6DQSWW8TVJBBtupUn6TPnDABd4rlqNq+u94ct5+barZmYauPAQNCKwy56C1kg9Y9msAN7UPag==","signatures":[{"sig":"MEUCID7xM156DRaYI4Az+q8vrt3QL52s8hOQW9yOvKBH5SVHAiEA7bA1T6Kq2hTQ/WQlZ0yUKd5FZYDzGa9QQJUfWIeoyaE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110972,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcPnpcCRA9TVsSAnZWagAAY/sP/0TDdapU/EfXtaped6tE\nREocerCQd1nRpSqS+UDOAah94mRYUMFsjq6FhR+MjJHgzXlJ8+IgkHhf2/MB\nAbW55t8Kgc37qspleHA/0LWNahlRxBT+qDhPqrDdpflgx+38HvQV141Merh0\ncwXdRNANwxSk5+DgZS7KBZzVwW1tLNEA3exWIG2+0CojX7B0X7xQK6qveXKA\nT/2uvalwAS3CDrAy+4Lw6oYLdOoPUVHwUf/aHiDsvZHWDc4Y84B3VAk/BSsO\nVQrYiHPjpPwdAxc8jzgj4s42GIYr7xnyiYVCyzluGQElsOIx63FgkzDQj6Pj\nV5hI0egTHd8dkx9ZvitgX2NICzapStbKgOY4nO4v6KqTXh9t/3fGdZniiOk5\nLRx11O4ww8H1xAr93DuXTUyteEQ1ndoOpf0rpxLOQkSDYe0QhLfmontveBd3\nsp8Z42TvaBNPYlT4mt+qWa7EtYegSZTSiJK49CcxemwPmoDZ2r7m/JdBajYs\nq2EpIRuYUYemVIdmJcCfcBlK/ew4n4yrnwt/MSZbR2RT6SR3VDAWQ7H62izw\nj4uLSxxZbwe9bIqZUepaRiQDnO8fmzim/vOdJoKE6LeDdWwL8NEnSUR6bPFF\nYGSgwNmfBFb4siWOu65ZCT3c4iNXuSbMHwaRRIOlpSHRbhTu/1FSxfZdXLyX\nJkCm\r\n=Nulw\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"1.8.0","date":{"ts":1547517392485,"rel":"6 years ago"},"dist":{"shasum":"df6edea68ab4e8ff851753f3fdf24f09feb52ca2","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.8.0.tgz","fileCount":4,"integrity":"sha512-m381wr79JDqyv3BTXopBd5UKkPGNZUGAgmhLsRV3m3F3nc4wJXaprHiZaLWhMiw0wu4kV9JjIsXQOovCFStVlg==","signatures":[{"sig":"MEUCIQDVVzdLi/e/1i3qBX/HolaOVMj5YiUe3XmEEl82N3AYgwIgQBU/1FwJrOfEe0RiVTNh9tpk/D1wWYsRdIV0OQRAOtg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113652,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcPT3RCRA9TVsSAnZWagAA3g0QAJtI5fZPSWaeWQKrQmm8\nV6jzIg3I5+Ycusuis0cJCNgjuyn4G8SOzLkp+f2RCKo0BRGiQbiK2YP+KhKQ\nILHZ9nBodfKnnqKCoMqY2n4vI0l2ifXxPu8jG9Jbj4p+5IIWcDlFpndzQ/UX\n1TTP/NcBa92/go2nLWFKGdssDaKzgidALHptpqUE5NgDpkjduznoTXF5Wdbf\nNgNjGxm8zNeUiPbI+iKhakN5hsY8klWp820GnhUgV9rIF2tKvUwWktpnbQS3\nx0VIjP0M2P2Q8p3UIypPj8kR/iUOnWJZNG08JcPGEwGI99q1AaTfTNtgJZEG\nxji/6J1PxWbiw1ypABIE8aSjirl8bSdpJpBTzbujdn6BEBgAQc3NdBFnv7oH\nDqS6Q7dKsVJ4+IhdqpOf5dw0mIOm00jlDQaYkJH+H36vSRtLSVQjjy0FZ2PG\nmZoHTRn6WNMWBrQmRep3ho3JZgwjji3dKhuLs5gTHN/5FfWToHfIs7UIN0pg\nhO5MgmFlOBvcHQ+ztEO5wVCmi/EXyqX3U8aiwMSjtUpWrzr2sPjKjVX1ab22\nNPJb/wJLmZmXH6+w1CK+eIc2jOFD2XW4gEIBcWVATGSDSal7OQiQfC57hzU2\nT43efTjY62unDM665XD+tPAAxQCp489gJGC+XIdcLxShzonzRIW/chH0G8DX\ngmlw\r\n=v1Mb\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"1.8.0-rc1","date":{"ts":1544913587044,"rel":"6 years ago"},"dist":{"shasum":"fe4731b2cb3ccb4730a26a8cdde2f74a634bb259","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.8.0-rc1.tgz","fileCount":4,"integrity":"sha512-umyNbQVDwRgc0SZvUB+FRUIUqACnu5vCCmK0zv/xWA3eDSOh+IZsg3GHdWvEOcUBwnykqyk760+YPgVa8HfxFg==","signatures":[{"sig":"MEUCIAuewgda9Gr/YCEpPJ0d9GNp9KV0Eot9aVa2CtpjXg5ZAiEA71znrEshNp8EGg1pZKzQSYpqSQaUKQbLG1Qpr501qGk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":95524,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcFYKzCRA9TVsSAnZWagAA80sQAJAhn9+9alleTXylmaLB\n6RNBFOlw8PPk4D8jSpRRymahyjx0+RUkZk97ZbaJMwt0H21BEPxxsbZErI35\nxy57pwUlUYrdICFEjcZYwhsGIhLhxq+1fZMMQG7zX0kj8XqpaWqVHXwk41Ev\nJ0kjGaRb0UXv0hppjLJ3puV47hI/O4pFDmVeKUxhpaEaEBYk1g+GR2UPiXnJ\neaQLRcK6ZPcJTtTi+4S8Zhe9hL3ovQY5yzCrMtW+77fUrdH4yH6fJYPowd3T\nXT21CYrsQjeRBsdwyngQGF+3nCYjw0LxuVxSk8E4IwevrpPBq0jxfP2s0FKh\nzIUExlXppXW1KwWTCy5XnjagLGSanm1jp10Zagk+PNvU6pv1ohSduQ7sQMRN\nxDyLNwzic4JBRmn9VClyqvh0tJBQ06RKadkCj4KQwjApvFN0gZyRDjHeHqVb\n3m6AYo1VWeHBLrNZ3ZRuC+fwabkHwL7sYHny3hzSKp/CH6XTGCcZraDY1G6H\njmIFa6rensL1ee4T1jIB0Uh6SPjaS30vK/E6fTGQTIiJ0yK3aIUd3o7enLHw\nQXt8SetQYa0csPGGxR0LXxFO9BlMOM+PzwbxKfMN7Xd3iF7Bjay8PRhGv7mH\nhhlD+I7Wa904hj/W8jyMxWxcMBQ5GOqpphjQauohMQYdr+8MKa3B1JwJbPhX\nGDha\r\n=nJNL\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"1.7.0","date":{"ts":1509969486020,"rel":"7 years ago"},"dist":{"shasum":"80a2b2370abd568e1cec8c271131ef30a904fa28","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.7.0.tgz","integrity":"sha512-4z/P2iyY/BElEvKALqpng7wlgdP9pww+r7i7/uUXwX2pDHGLcKMsXsl2NDgZnFinrV4kOLHKLfx89LeCqSxHkQ==","signatures":[{"sig":"MEYCIQCzTnyTXUQ0JhgdPjQkQKgp7J/DKZJ41WJrkY8b90qyUwIhAJiAfKhYATuyYQgAFR04Dg/VpTUJXjmiNOlG9heXDUIb","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]}},{"version":"1.6.1","date":{"ts":1503905741038,"rel":"7 years ago"},"dist":{"shasum":"d120d103fbb9f60c7db27814a1384072e6c6e083","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.6.1.tgz","integrity":"sha512-uBW46rDJZ8213V5dyzMlaEwsjm0EknCug1JG/Nefp+ktUha/3WZaACEXLEaOVqJBiiU6Q4Y1l1R9IQiSEDQNCw==","signatures":[{"sig":"MEQCIGK+3Wjymzx/OE4SSH8+AJECzdYH63wZO8kdY+CwZlnzAiAFF7SLFTBFgAHpTq7qqKTBZDkcKTz9PPgz3SRgpbtG3w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]}},{"version":"1.6.0","date":{"ts":1496395172397,"rel":"8 years ago"},"dist":{"shasum":"097cc19267218af2ca1cd455ed858f380136ab68","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.6.0.tgz","integrity":"sha512-g26kClbzGYGC1dXlkCgxNefcyD1Qkej3/ZUx7iQo/Vbdh/vfirDMVM2qUfWf+8MoqYsiU4LcoSQqB77Q9IN72w==","signatures":[{"sig":"MEYCIQCVOXui0qsITRTMZBq1JXgjAeYjA1sso7/11Z6ieO7tXwIhAK1JDWV0DYTJUfmjsmhFmuCYq5QRpJK8EMek7AJFcsMm","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]}},{"version":"1.5.1","date":{"ts":1487918612225,"rel":"8 years ago"},"dist":{"shasum":"efae13b84c677f3b3d3f4f8e46c7e05fc6acb525","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.5.1.tgz","integrity":"sha512-dmEjElWUUuI05Mgr+yEFhndBcM9wRNc0aL1dC69aGEk45Pzy6LtF3+J6z/kn78l9bpkaztzWnGEihya3Qm/8zQ==","signatures":[{"sig":"MEUCIBSIIbKnV2DPHc0u8rIVZpde6agNpQpEwMz9lZRiYTK1AiEAu5PPbd1yxWlxsP8MpzLiuC0q6a/7gtjrfzCYGZV2waI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]}},{"version":"1.5.0","date":{"ts":1487527890481,"rel":"8 years ago"},"dist":{"shasum":"7f17e1ffed61a77803ead20922d45fa50cc2a442","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.5.0.tgz","integrity":"sha512-Y88RMm4ZrkaIgonxjwYsDsiwcFBsBDnkTu2oWOQ7YArqvCktoM42x7bEi482HgQ95MDCIaKQDGpPrh5zw7mGUw==","signatures":[{"sig":"MEQCICVtevUd52zrBzwxplwRT6MZk+lTVD//4AbfcOxu+jpMAiBKSBbqlrOUIf0oU3Mt75lQkc1+PaEAxTED/IDPgq/MPg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]}},{"version":"1.5.0-rc1","date":{"ts":1479151598117,"rel":"8 years ago"},"dist":{"shasum":"c3407e9a6fc4a54b4d0804926a2e2993544d91b3","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.5.0-rc1.tgz","integrity":"sha512-b56F9akCezdHFnIPK1L2Kd4uxQTqjsBWUCYzlci/m757C6TjucAZqcVlxCFqlKXz8bXxQe+kqTh5yKd9pPuu1Q==","signatures":[{"sig":"MEUCIQDfGaElXYFDhQWdUp4mtv+Z3RHbs0vqj8W3uECPofTR9AIgPUAuXMufiCOqQSP769R6ayHHbXEMjwjxBriqNC/3jaM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]}},{"version":"1.4.2","date":{"ts":1445417628330,"rel":"9 years ago"},"dist":{"shasum":"10df66054e1d1dcb538d7eaedaeaf692232c8d0d","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.4.2.tgz","integrity":"sha512-t6bhlC48KKAvWDCxvQQkQe4u5iE5zFZecxEd5vA6vTaNseXjMmYKPB6Tu+0prfwPH8Hnq9xvsw5ovdR5X4BO1w==","signatures":[{"sig":"MEUCIBWpmPpPO6/Kd9vgx7fSFiIDg9ozHxtMuTvZ2AW2wn/1AiEA2PR5GQh+DcUiFLwK/TAZLLTuYgA8qAgruFKSk9Nxpfc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]}},{"version":"1.4.1","date":{"ts":1444847932553,"rel":"9 years ago"},"dist":{"shasum":"68ea791c37cff52b7a232e5181edf93744c3eac4","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.4.1.tgz","integrity":"sha512-kBp4MD83/IRYwX+OZbobvjL8MPca+mQ4e5e/VAGI2ftLxhptKZHZk9Tch0SOHl68lQC6gKHW7Srga5xtDLNKGg==","signatures":[{"sig":"MEQCICd0+p69W00n96+tl3flWOpusWQQ3TdRA2ZWCEWTfR9sAiAOoLcHczO2KR3ncB2z6UJZmlnqaKyR7PyAV49omfn7Ow==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]}},{"version":"1.4.0","date":{"ts":1444722451789,"rel":"9 years ago"},"dist":{"shasum":"9e1bc8410a852a0560606cb88fdbf85a6565befa","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.4.0.tgz","integrity":"sha512-vUjbBBsoDUTQg4gLkPk7mh4qwGofUy5w/7qFNKv7G7X3vvZaQNepClomdjG77tYtrxajtgjNSIItqk9LRDNflA==","signatures":[{"sig":"MEUCIDvHc9x5Y7muJH/PJGpjyCZsKxqKn96zlWboWvpinDdVAiEA8JQX99CooXa35qvDBQGODAIlQrv5sx7HzOx1fCTvxf4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]}},{"version":"1.3.0","date":{"ts":1442950176871,"rel":"9 years ago"},"dist":{"shasum":"7dbfd7d88e879e03d380f577e70c7586b9b20920","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.3.0.tgz","integrity":"sha512-1zl2y2m/yr4TW19IsLQIjJlSyFQ3OB/cx2KtM2NhtAYy276W84AOGitxn6IWLo1FxwEmOJeOrAN87QtOm+0h9g==","signatures":[{"sig":"MEUCIBKAmTC4Ht8DlWo1LK6z28X+7UpOwzX6mmKp4KyZCi11AiEAq/FsMHmv8FCOAT1ndzUvFJKogXBu0U5b9yirJsvCrAI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]}},{"version":"1.2.1","date":{"ts":1441090445093,"rel":"9 years ago"},"dist":{"shasum":"946001e11d646d49f5a66c613019075ccd678d9d","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.2.1.tgz","integrity":"sha512-yHg/h+Ve5NQQu4lOe6taKLXY92euM66EwKSiawRLT5wQrOrGt1wQsuj7Ho9h/DyHERrRPLOyz0pjIbcr7lUNJA==","signatures":[{"sig":"MEQCIFwVWn8Eal4lJ8hpz6f1sBJWKnCJBVt6ODAj+ccAyzS6AiBxEsuuzDrkWDIZRnZpU2U/barpNj4j9vzILYKUYWG6/w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]}},{"version":"1.2.0","date":{"ts":1432983230088,"rel":"10 years ago"},"dist":{"shasum":"0089c77744769e39d57479f23bde7b9c184078a9","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.2.0.tgz","integrity":"sha512-umRhLmTYUgFOGPTF+Lq8k6GRPO5MHzsfP6GQf3p4pwLXGs+kWoTtrggzOwQCu4q00h42xalcFSS8tVGkrOAbpA==","signatures":[{"sig":"MEUCIQD0C8/UxY4hu+pCnaeaJxLulMZWhSbK3AdtCtXEARmYTwIge5565bNNd/rj08CX6xkbSrQCgssKbbdeGDZg8ABLBBQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]}},{"version":"1.1.1","date":{"ts":1424411768295,"rel":"10 years ago"},"dist":{"shasum":"eb43fb573ffb1a2f350fa7e68f13dc9f99226323","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.1.1.tgz","integrity":"sha512-zl2WYMFLBrJXeWPfvuKMincI3e0I5tLSMFzIOfSbV9r+qR3DEl8i2wKrEiIFXqrm5NH0izjVOA9o/OdOV/j6gg==","signatures":[{"sig":"MEQCIBSxmB1c+vse95LxpxU8jvdmcp3pwxzGklLNM1TCAUv6AiBviBmfLTEyi9JVkJcuPAPWPBZOZKuzSc0aqBhm7km6vA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]}},{"version":"1.1.0","date":{"ts":1423855202933,"rel":"10 years ago"},"dist":{"shasum":"4a89e66301e571866d288f8c1a0884779235ed28","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.1.0.tgz","integrity":"sha512-wrxAlprK3v/4FyPg1fv8czqci+H3vUTvOIJiqurk2SqioicXwVc/rDzizEAF3tKT20ktqeODH7ySgdQr246MqQ==","signatures":[{"sig":"MEUCIEomVX9cyuA+/+3nIEg1zTffnxAh72ehjK6vpQ1KgP9MAiEA+QC4S1Nov9z+P26KM4Z63rLzNLVOOfNK5oHaJSb6FMQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]}},{"version":"1.0.1","date":{"ts":1422299513160,"rel":"10 years ago"},"dist":{"shasum":"6c71ecc558f08740fc6afc8042c1c0dfd45c1eb7","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.0.1.tgz","integrity":"sha512-lm8lQb1D5gAyejpRCCFKIm34o5TgJCbVsOccBJJiKcupKUFR2IRNCxDo9dCpzxZXcakXInOwq8yp3n4k762e7Q==","signatures":[{"sig":"MEUCID+39JId0v+1OwiWER0EuZ1FdwH4qVev4mPUqKRSkpa7AiEAnQgnfy1fesk1I9sataCBhRKYLGI8toAJWOeu9+RHysI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]}},{"version":"1.0.0","date":{"ts":1419228402727,"rel":"10 years ago"},"dist":{"shasum":"73c330cff67a413e6161b21d5799b2414b859d59","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-1.0.0.tgz","integrity":"sha512-8a+tbrs8HhY2lhNoM/XCwbWl6jBj4+ajoy6UUFzliMsVWJVkbLS199FvBJyMIupU2BY2CRXj7stopB7A+31FVw==","signatures":[{"sig":"MEQCIE+FxcDYb8hkuHcdBLyT6sFumP2/N9j0XoT9eJIYq+42AiBLjwFliAgqoa6Liq5ocdFtesMkSVXp5ZFMBddonF36jg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]}},{"version":"0.7.2","date":{"ts":1418021585484,"rel":"10 years ago"},"dist":{"shasum":"1a316be5f4fc953d956d847914bde8c6d694ff26","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-0.7.2.tgz","integrity":"sha512-HJkSSnBQ88MVsIFRQs2qtigxUUb3MtxWCvRybRrgTCjgk/uR8QEEJmPCQG4hRXk2uyH4tz8H40t3fKzXXorJUQ==","signatures":[{"sig":"MEQCIE9jWjITes/Ly+1dQOEWmDGbygVHSbSWwd/pbaJckCErAiAQUxEBzclNAEeqRqcjKLgoENpNMjVAuRE3L3cZuJqlvg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]}},{"version":"0.7.1","date":{"ts":1417780776201,"rel":"10 years ago"},"dist":{"shasum":"0e0c7fdbf14be50713817017f3a1723551c36880","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-0.7.1.tgz","integrity":"sha512-FISUsr44hCq9wNcOX2TRSCXj4mxkWQqQTIvfu51/E4oBXblDr0Qb6u3CgQL3JOoRyBwGXLSG8vNLZseEL2j6zA==","signatures":[{"sig":"MEUCIAxO17kdEleXEQD5GN9BiFxgKrcLY3oQbkL8q4HTgVGcAiEA2Tz2kc9eiOLg+RnAd0+WNOjiFTYkYNcJqVfr39NDGS0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]}},{"version":"0.7.0","date":{"ts":1417637282739,"rel":"10 years ago"},"dist":{"shasum":"b058056924240c9ebef7b089c3130fb17c8f0576","tarball":"https://registry.npmjs.org/sortablejs/-/sortablejs-0.7.0.tgz","integrity":"sha512-z9g034lZtq+zmYRyitOjJNkQdMAHhavngn5s2DCJr8u3WYXvVAFIeatpAHPjkuEpRffwz+wWYFoBlgJfx2qgqw==","signatures":[{"sig":"MEUCIAdA55ahs6eTPVjdaYADPCLC2VgJp6rzntRDD3Hhc686AiEA8wP5a2dFn5dRUpbg7t50c8Ous6jSa9+K7frhGtgp7KE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]}}],"deprecations":["1.11.2-alpha.2","1.11.2-alpha.3","1.11.2-alpha.4","1.12.0"]},"packageVersion":{"description":"JavaScript library for reorderable drag-and-drop lists on modern browsers and touch devices. No jQuery required. Supports Meteor, AngularJS, React, Polymer, Vue, Knockout and any CSS library, e.g. Bootstrap.","homepage":"https://github.com/SortableJS/Sortable#readme","repository":"https://github.com/SortableJS/Sortable","keywords":["sortable","reorder","drag","meteor","angular","ng-sortable","react","vue","mixin"],"devDependencies":{"@babel/core":"^7.4.4","@babel/plugin-transform-object-assign":"^7.2.0","@babel/preset-env":"^7.4.4","rollup":"^1.11.3","rollup-plugin-babel":"^4.3.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.0.0","testcafe":"^1.3.1","testcafe-browser-provider-saucelabs":"^1.7.0","testcafe-reporter-xunit":"^2.1.0","uglify-js":"^3.5.12"},"maintainers":[{"name":"rubaxa","avatars":{"small":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9kMWYxYjA1YzAyMzUzZTMwZTAyMzEyYWVlMGFiZDU1YT9zaXplPTUwJmRlZmF1bHQ9cmV0cm8ifQ.8zR9VQs8iWJu6K6EpUehxfSJ1zPk6tVoE04SqYSyrxI","medium":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9kMWYxYjA1YzAyMzUzZTMwZTAyMzEyYWVlMGFiZDU1YT9zaXplPTEwMCZkZWZhdWx0PXJldHJvIn0.CQCTTN8x0QjMhUg92c6XFTS5JZvNykxLH_MX21XE4xk","large":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9kMWYxYjA1YzAyMzUzZTMwZTAyMzEyYWVlMGFiZDU1YT9zaXplPTQ5NiZkZWZhdWx0PXJldHJvIn0.d8eH73nMRbbTKCEO5YgqsEeHDP7AybU-JVnx128A9U0"}},{"name":"owenm","avatars":{"small":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9lYWU2OTA4YjhjM2ZkZDVlNDM5NGNlOTIwNDgwNDUwOT9zaXplPTUwJmRlZmF1bHQ9cmV0cm8ifQ.5tp7GOHL1Y-5c6qex2kwaUGKq_omLBsU0PNSyLH_dFs","medium":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9lYWU2OTA4YjhjM2ZkZDVlNDM5NGNlOTIwNDgwNDUwOT9zaXplPTEwMCZkZWZhdWx0PXJldHJvIn0.s4oaNuH2-y9_BWR8ng-86SSUszhDOsrClRihKwx8oMA","large":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9lYWU2OTA4YjhjM2ZkZDVlNDM5NGNlOTIwNDgwNDUwOT9zaXplPTQ5NiZkZWZhdWx0PXJldHJvIn0.Y8uk6q-Lrb7OqLx_CKREkUEXR1W7-ERl6KJdvJUdLuQ"}}],"name":"sortablejs","license":"MIT","version":"1.15.6","versions":[],"deprecations":[]},"packageUrl":"/package/sortablejs","packageLinkingCallToActionHref":null,"package":"sortablejs","linkingAllowedForPackage":false,"isStarred":false,"ghapi":"https://api.github.com/repos/SortableJS/Sortable","downloads":[{"downloads":1379655,"label":"2024-02-18 to 2024-02-24"},{"downloads":1469883,"label":"2024-02-25 to 2024-03-02"},{"downloads":1475404,"label":"2024-03-03 to 2024-03-09"},{"downloads":1441182,"label":"2024-03-10 to 2024-03-16"},{"downloads":1467143,"label":"2024-03-17 to 2024-03-23"},{"downloads":1300043,"label":"2024-03-24 to 2024-03-30"},{"downloads":1311657,"label":"2024-03-31 to 2024-04-06"},{"downloads":1424289,"label":"2024-04-07 to 2024-04-13"},{"downloads":1483379,"label":"2024-04-14 to 2024-04-20"},{"downloads":1462991,"label":"2024-04-21 to 2024-04-27"},{"downloads":1241995,"label":"2024-04-28 to 2024-05-04"},{"downloads":1317494,"label":"2024-05-05 to 2024-05-11"},{"downloads":1457937,"label":"2024-05-12 to 2024-05-18"},{"downloads":1456492,"label":"2024-05-19 to 2024-05-25"},{"downloads":1459965,"label":"2024-05-26 to 2024-06-01"},{"downloads":1529618,"label":"2024-06-02 to 2024-06-08"},{"downloads":1497505,"label":"2024-06-09 to 2024-06-15"},{"downloads":1486667,"label":"2024-06-16 to 2024-06-22"},{"downloads":1506873,"label":"2024-06-23 to 2024-06-29"},{"downloads":1446914,"label":"2024-06-30 to 2024-07-06"},{"downloads":1524976,"label":"2024-07-07 to 2024-07-13"},{"downloads":1514283,"label":"2024-07-14 to 2024-07-20"},{"downloads":1531377,"label":"2024-07-21 to 2024-07-27"},{"downloads":1532152,"label":"2024-07-28 to 2024-08-03"},{"downloads":1489384,"label":"2024-08-04 to 2024-08-10"},{"downloads":1391043,"label":"2024-08-11 to 2024-08-17"},{"downloads":1509690,"label":"2024-08-18 to 2024-08-24"},{"downloads":1532852,"label":"2024-08-25 to 2024-08-31"},{"downloads":1598616,"label":"2024-09-01 to 2024-09-07"},{"downloads":1611043,"label":"2024-09-08 to 2024-09-14"},{"downloads":1560983,"label":"2024-09-15 to 2024-09-21"},{"downloads":1616175,"label":"2024-09-22 to 2024-09-28"},{"downloads":1526780,"label":"2024-09-29 to 2024-10-05"},{"downloads":1598926,"label":"2024-10-06 to 2024-10-12"},{"downloads":1552895,"label":"2024-10-13 to 2024-10-19"},{"downloads":1625143,"label":"2024-10-20 to 2024-10-26"},{"downloads":1615540,"label":"2024-10-27 to 2024-11-02"},{"downloads":1594062,"label":"2024-11-03 to 2024-11-09"},{"downloads":1590917,"label":"2024-11-10 to 2024-11-16"},{"downloads":1693148,"label":"2024-11-17 to 2024-11-23"},{"downloads":1612365,"label":"2024-11-24 to 2024-11-30"},{"downloads":1687252,"label":"2024-12-01 to 2024-12-07"},{"downloads":1685035,"label":"2024-12-08 to 2024-12-14"},{"downloads":1664719,"label":"2024-12-15 to 2024-12-21"},{"downloads":849507,"label":"2024-12-22 to 2024-12-28"},{"downloads":867143,"label":"2024-12-29 to 2025-01-04"},{"downloads":1576793,"label":"2025-01-05 to 2025-01-11"},{"downloads":1695037,"label":"2025-01-12 to 2025-01-18"},{"downloads":1699989,"label":"2025-01-19 to 2025-01-25"},{"downloads":1654634,"label":"2025-01-26 to 2025-02-01"},{"downloads":1769824,"label":"2025-02-02 to 2025-02-08"},{"downloads":1829121,"label":"2025-02-09 to 2025-02-15"}],"dependents":{"dependentsCount":3011,"dependentsTruncated":["element-nice-ui","gc-starter-ui-svgicon-test","legions-pro-design","volusion-apps","ice-iview-admin","iview-extra","ems-admin","ushahidi-qovnika-v1","@billpeng/surveyjs-editor","joywok-web","zkt-wexin-menu","toolkit-ui","ems-receivable","vue-flexjs","beescm-fe","snowui","lc-client-framework-subsystem-npm","avz-temp-components","test-npm-publishaaaaa","gtpadmin","ems-components","ems-accounting","react-lsz-dragresponse","remix-ui","intranetone-gallery","@opuscapita/react-pivottable","cbx-quasar-ui","@kano/polymer-sortablejs","snippet_libraryp","snippppppet_library","yzbo-admin","currasco-eti","@triply/yasgui","vuejs-sortablejs","jk-bin","@canner/antd-array-tabs","create-reaction-app","lkcat-pro","ushahidi-platform-pattern-library","rg-uploader","front-tool-fe","@microdrop/step-ui-plugin","snippett_library","@ripplemaker/ripples-ui","@microdrop/schema-ui-plugin","ssssnippet_library","frappe-datatable","fineui-react","surveyjs-mod-widgets","react-sortablejs-list"]},"capsule":{"name":"sortablejs","description":"JavaScript library for reorderable drag-and-drop lists on modern browsers and touch devices. No jQuery required. Supports Meteor, AngularJS, React, Polymer, Vue, Knockout and any CSS library, e.g. Bootstrap.","maintainers":["rubaxa","owenm"],"dist-tags":{"latest":"1.15.6"},"lastPublish":{"maintainer":"owenm","time":"2024-11-28T18:21:49.918Z"},"types":{"typescript":{"package":"@types/sortablejs"}}},"canEditPackage":false},"chunks":{"commons":["commons.74d74467fb70cd5401ce.js","commons.74d74467fb70cd5401ce.js.map"],"styles":["styles.3c3ef91f073352bb91e7.css","minicssextractbug.d66d46708dd01c18fc7a.js","styles.3c3ef91f073352bb91e7.css.map","minicssextractbug.d66d46708dd01c18fc7a.js.map"],"acceptance/acceptance":["acceptance/acceptance.045e956326c9b5fcdb4a.js","acceptance/acceptance.045e956326c9b5fcdb4a.js.map"],"audit-logs/actions/common/auditLogContainer":["audit-logs/actions/common/auditLogContainer.53b5fa5258981ececeb9.js","audit-logs/actions/common/auditLogContainer.53b5fa5258981ececeb9.js.map"],"audit-logs/actions/common/dot":["audit-logs/actions/common/dot.a6c2035bc6bc32e6872b.js","audit-logs/actions/common/dot.a6c2035bc6bc32e6872b.js.map"],"audit-logs/actions/common/filterActions":["audit-logs/actions/common/filterActions.10690b8013721a202a2b.js","audit-logs/actions/common/filterActions.10690b8013721a202a2b.js.map"],"audit-logs/actions/common/spaceGap":["audit-logs/actions/common/spaceGap.aa2921bf2a5d6e05483a.js","audit-logs/actions/common/spaceGap.aa2921bf2a5d6e05483a.js.map"],"audit-logs/actions/orgAddUser":["audit-logs/actions/orgAddUser.b2434e45d5c1e0ec7424.js","audit-logs/actions/orgAddUser.b2434e45d5c1e0ec7424.js.map"],"audit-logs/actions/orgCreateTeam":["audit-logs/actions/orgCreateTeam.b913a08cf76b6f09986b.js","audit-logs/actions/orgCreateTeam.b913a08cf76b6f09986b.js.map"],"audit-logs/actions/orgDeleteTeam":["audit-logs/actions/orgDeleteTeam.23429bb96b3e79a6514d.js","audit-logs/actions/orgDeleteTeam.23429bb96b3e79a6514d.js.map"],"audit-logs/actions/orgRemoveUser":["audit-logs/actions/orgRemoveUser.ec85fe9dc75bea0df456.js","audit-logs/actions/orgRemoveUser.ec85fe9dc75bea0df456.js.map"],"audit-logs/actions/packageAddDistTag":["audit-logs/actions/packageAddDistTag.9c25dd522732ab83aac7.js","audit-logs/actions/packageAddDistTag.9c25dd522732ab83aac7.js.map"],"audit-logs/actions/packageDeprecate":["audit-logs/actions/packageDeprecate.63b497c1bdf823317dc8.js","audit-logs/actions/packageDeprecate.63b497c1bdf823317dc8.js.map"],"audit-logs/actions/packagePublish":["audit-logs/actions/packagePublish.78a715e772c06bbe4483.js","audit-logs/actions/packagePublish.78a715e772c06bbe4483.js.map"],"audit-logs/actions/packageRemoveDistTag":["audit-logs/actions/packageRemoveDistTag.903ceb4660dafeedd561.js","audit-logs/actions/packageRemoveDistTag.903ceb4660dafeedd561.js.map"],"audit-logs/actions/packageUnpublish":["audit-logs/actions/packageUnpublish.16d1df03fec4d63f590d.js","audit-logs/actions/packageUnpublish.16d1df03fec4d63f590d.js.map"],"audit-logs/actions/packageUpdateAccess":["audit-logs/actions/packageUpdateAccess.2bf9fad30bf1a61ede48.js","audit-logs/actions/packageUpdateAccess.2bf9fad30bf1a61ede48.js.map"],"audit-logs/actions/teamAddPackage":["audit-logs/actions/teamAddPackage.f8af99be6b16239ca78c.js","audit-logs/actions/teamAddPackage.f8af99be6b16239ca78c.js.map"],"audit-logs/actions/teamAddUser":["audit-logs/actions/teamAddUser.6341ac7ea782689ae91b.js","audit-logs/actions/teamAddUser.6341ac7ea782689ae91b.js.map"],"audit-logs/actions/teamRemovePackage":["audit-logs/actions/teamRemovePackage.936c4445a81fa6e8c1a0.js","audit-logs/actions/teamRemovePackage.936c4445a81fa6e8c1a0.js.map"],"audit-logs/actions/teamRemoveUser":["audit-logs/actions/teamRemoveUser.32174059ba1b1f80123f.js","audit-logs/actions/teamRemoveUser.32174059ba1b1f80123f.js.map"],"audit-logs/actions/teamUpdatePackageAccess":["audit-logs/actions/teamUpdatePackageAccess.64e6080dc87200c5b9b6.js","audit-logs/actions/teamUpdatePackageAccess.64e6080dc87200c5b9b6.js.map"],"audit-logs/audit-logs":["audit-logs/audit-logs.b869d771888ed5bb334b.js","audit-logs/audit-logs.b869d771888ed5bb334b.js.map"],"audit-logs/audit-search-input":["audit-logs/audit-search-input.254caec75db4b6125c38.js","audit-logs/audit-search-input.254caec75db4b6125c38.js.map"],"audit-logs/list":["audit-logs/list.71b679c4d8febf35b4e0.js","audit-logs/list.71b679c4d8febf35b4e0.js.map"],"audit-logs/no-logs":["audit-logs/no-logs.96e021b3c6bdf5516dcd.js","audit-logs/no-logs.96e021b3c6bdf5516dcd.js.map"],"audit-logs/no-logs-with-query":["audit-logs/no-logs-with-query.ca0b97629391629da963.js","audit-logs/no-logs-with-query.ca0b97629391629da963.js.map"],"auth/account-recovery-message":["auth/account-recovery-message.8811bdba4ec229b56326.js","auth/account-recovery-message.8811bdba4ec229b56326.js.map"],"auth/authentication-successful":["auth/authentication-successful.98d68883337c2dd0086e.js","auth/authentication-successful.98d68883337c2dd0086e.js.map"],"auth/email-otp":["auth/email-otp.bcd3856a7608ac2cfb67.js","auth/email-otp.bcd3856a7608ac2cfb67.js.map"],"auth/escalate":["auth/escalate.a0f46ae76cd468cc80e5.js","auth/escalate.a0f46ae76cd468cc80e5.js.map"],"auth/forgot":["auth/forgot.7e3f94b8f0af05795de7.js","auth/forgot.7e3f94b8f0af05795de7.js.map"],"auth/forgot-sent":["auth/forgot-sent.e4254265070d7123f9cc.js","auth/forgot-sent.e4254265070d7123f9cc.js.map"],"auth/forgot-sent-anonymized":["auth/forgot-sent-anonymized.adfe0bfc6f3a519c7871.js","auth/forgot-sent-anonymized.adfe0bfc6f3a519c7871.js.map"],"auth/invite-signup":["auth/invite-signup.ea258a4772fc6050aa10.js","auth/invite-signup.ea258a4772fc6050aa10.js.map"],"auth/liminal-login-footer":["auth/liminal-login-footer.9595439ced5e1639b8c3.js","auth/liminal-login-footer.9595439ced5e1639b8c3.js.map"],"auth/login":["auth/login.e94daf914368cde34070.js","auth/login.e94daf914368cde34070.js.map"],"auth/otp":["auth/otp.195162b3e2738e0ced7d.js","auth/otp.195162b3e2738e0ced7d.js.map"],"auth/password":["auth/password.0f412c56b69e53962180.js","auth/password.0f412c56b69e53962180.js.map"],"auth/recovery-code":["auth/recovery-code.3c24019b482abe7a5cbe.js","auth/recovery-code.3c24019b482abe7a5cbe.js.map"],"auth/recovery-email-otp":["auth/recovery-email-otp.1b042de41e7febae5057.js","auth/recovery-email-otp.1b042de41e7febae5057.js.map"],"auth/reset-password":["auth/reset-password.627905bfe3effb15bfb6.js","auth/reset-password.627905bfe3effb15bfb6.js.map"],"auth/signup":["auth/signup.67707cfbfb236edd281f.js","auth/signup.67707cfbfb236edd281f.js.map"],"auth/test/email-otp-test":["auth/test/email-otp-test.b187b7028c2f2eb6bd3a.js","auth/test/email-otp-test.b187b7028c2f2eb6bd3a.js.map"],"auth/test/escalate-test":["auth/test/escalate-test.9052ef986f0492464fdf.js","auth/test/escalate-test.9052ef986f0492464fdf.js.map"],"auth/test/otp-test":["auth/test/otp-test.382a646ba488c3cc229d.js","auth/test/otp-test.382a646ba488c3cc229d.js.map"],"auth/test/webauthn-login-test":["auth/test/webauthn-login-test.42b3321f1bafaa90ba6e.js","auth/test/webauthn-login-test.42b3321f1bafaa90ba6e.js.map"],"auth/webauthn-cli-login":["auth/webauthn-cli-login.5186665eb5d895762e85.js","auth/webauthn-cli-login.5186665eb5d895762e85.js.map"],"auth/webauthn-login":["auth/webauthn-login.471b3fb2ec0ee3b8910a.js","auth/webauthn-login.471b3fb2ec0ee3b8910a.js.map"],"billing/delete-org":["billing/delete-org.7248a7eed8447fe756cd.js","billing/delete-org.7248a7eed8447fe756cd.js.map"],"billing/detail":["billing/detail.55fe245e653c7bec2de5.js","billing/detail.55fe245e653c7bec2de5.js.map"],"billing/downgrade":["billing/downgrade.bfaf0fa6800e40d27915.js","billing/downgrade.bfaf0fa6800e40d27915.js.map"],"billing/upgrade":["billing/upgrade.7659d6531aad9068bff5.js","billing/upgrade.7659d6531aad9068bff5.js.map"],"contact/contact":["contact/contact.5141261e25bf2bfb94cc.js","contact/contact.5141261e25bf2bfb94cc.js.map"],"contact/recovery-support-v1":["contact/recovery-support-v1.432ac51f462221ba0be5.js","contact/recovery-support-v1.432ac51f462221ba0be5.js.map"],"contact/recovery-support-v2":["contact/recovery-support-v2.af168cb8deec07e975aa.js","contact/recovery-support-v2.af168cb8deec07e975aa.js.map"],"contact/sidebar":["contact/sidebar.14678ce744fa53a13bf0.js","contact/sidebar.14678ce744fa53a13bf0.js.map"],"debug/badstatus":["debug/badstatus.9e00f5e39914a30688c1.js","debug/badstatus.9e00f5e39914a30688c1.js.map"],"debug/detail":["debug/detail.afa571871a0efade08c2.js","debug/detail.afa571871a0efade08c2.js.map"],"debug/failcomponent":["debug/failcomponent.9ca799f538695b9d2e7a.js","debug/failcomponent.9ca799f538695b9d2e7a.js.map"],"dev/choose-template":["dev/choose-template.3229d919350008cac494.js","dev/choose-template.3229d919350008cac494.js.map"],"dsr/dsr-export":["dsr/dsr-export.174fc3c23c5c22638b47.js","dsr/dsr-export.174fc3c23c5c22638b47.js.map"],"egg/egg":["egg/egg.fb3515c1690e2cae5e8c.js","egg/egg.fb3515c1690e2cae5e8c.js.map"],"errors/bad-request":["errors/bad-request.9d43d66d4455bc87402c.js","errors/bad-request.9d43d66d4455bc87402c.js.map"],"errors/not-found":["errors/not-found.5b182f372a4109926bc8.js","errors/not-found.5b182f372a4109926bc8.js.map"],"errors/server":["errors/server.c3bee34a52de9d9eed1e.js","errors/server.c3bee34a52de9d9eed1e.js.map"],"errors/tea-pot":["errors/tea-pot.5cb72cd7dc554e64c1ab.js","errors/tea-pot.5cb72cd7dc554e64c1ab.js.map"],"errors/template":["errors/template.2e5d4f42b3c92bb2e39d.js","errors/template.2e5d4f42b3c92bb2e39d.js.map"],"flatpage/flatpage":["flatpage/flatpage.dbdf3aee3d0e9a4f24af.js","flatpage/flatpage.dbdf3aee3d0e9a4f24af.js.map"],"homepage/homepage":["homepage/homepage.d74ff1fa25ae7ffabd5a.js","homepage/homepage.d74ff1fa25ae7ffabd5a.js.map"],"homepage/homepage-logged-in":["homepage/homepage-logged-in.31d02f515a043b587940.js","homepage/homepage-logged-in.31d02f515a043b587940.js.map"],"orgs/create":["orgs/create.61367587031ff11524f3.js","orgs/create.61367587031ff11524f3.js.map"],"orgs/detail":["orgs/detail.0a3f5560d6f773c02ffb.js","orgs/detail.0a3f5560d6f773c02ffb.js.map"],"orgs/invite":["orgs/invite.36c6a834e6180038d239.js","orgs/invite.36c6a834e6180038d239.js.map"],"orgs/tfa-enforced":["orgs/tfa-enforced.7a1419669b17da615303.js","orgs/tfa-enforced.7a1419669b17da615303.js.map"],"orgs/upgrade":["orgs/upgrade.4fc93431021efb0301a8.js","orgs/upgrade.4fc93431021efb0301a8.js.map"],"package-list/package-list":["package-list/package-list.bc2b45ea652b14b0880a.js","package-list/package-list.bc2b45ea652b14b0880a.js.map"],"package/delete-package":["package/delete-package.1c943f4151f651a9d914.js","package/delete-package.1c943f4151f651a9d914.js.map"],"package/deprecate-package":["package/deprecate-package.7928c188cb2fd3833e7d.js","package/deprecate-package.7928c188cb2fd3833e7d.js.map"],"package/error-message-package":["package/error-message-package.c6888e3076240fafd221.js","package/error-message-package.c6888e3076240fafd221.js.map"],"package/package":["package/package.a2fa5feaa17da98559b8.js","package/package.a2fa5feaa17da98559b8.js.map"],"profile/profile":["profile/profile.f618802fee68fe52340f.js","profile/profile.f618802fee68fe52340f.js.map"],"recovery-codes/show":["recovery-codes/show.28c515a5443197f4812f.js","recovery-codes/show.28c515a5443197f4812f.js.map"],"search/search":["search/search.5a46360e3cd400c3248e.js","search/search.5a46360e3cd400c3248e.js.map"],"searchv2/search":["searchv2/search.e726f14a4423148814b2.js","searchv2/search.e726f14a4423148814b2.js.map"],"settings/change-password":["settings/change-password.e8caf7da7d5962a8da2f.js","settings/change-password.e8caf7da7d5962a8da2f.js.map"],"settings/delete-account":["settings/delete-account.3877618039c3be496091.js","settings/delete-account.3877618039c3be496091.js.map"],"settings/email":["settings/email.42743732ca56b6645326.js","settings/email.42743732ca56b6645326.js.map"],"settings/memberships":["settings/memberships.906ca82f28f826f46583.js","settings/memberships.906ca82f28f826f46583.js.map"],"settings/packages":["settings/packages.94be6f92f1f7f1cb8b76.js","settings/packages.94be6f92f1f7f1cb8b76.js.map"],"settings/profile":["settings/profile.d66f2314225501804707.js","settings/profile.d66f2314225501804707.js.map"],"teams/create":["teams/create.1fc5cf21646edb28d431.js","teams/create.1fc5cf21646edb28d431.js.map"],"teams/detail":["teams/detail.d488d469f98573142ff0.js","teams/detail.d488d469f98573142ff0.js.map"],"teams/list":["teams/list.6d4535d1cc967be63282.js","teams/list.6d4535d1cc967be63282.js.map"],"teams/packages":["teams/packages.c3c4001eb96702ac23d5.js","teams/packages.c3c4001eb96702ac23d5.js.map"],"teams/users":["teams/users.5f73fb06b09387231e95.js","teams/users.5f73fb06b09387231e95.js.map"],"tfa/additional-options":["tfa/additional-options.ef20d5b36fed1370f6dd.js","tfa/additional-options.ef20d5b36fed1370f6dd.js.map"],"tfa/enable":["tfa/enable.cb9ce3bdc28892507287.js","tfa/enable.cb9ce3bdc28892507287.js.map"],"tfa/list":["tfa/list.664d841f9a11c35bd330.js","tfa/list.664d841f9a11c35bd330.js.map"],"tfa/recovery-codes":["tfa/recovery-codes.5f726e90ac80f93d31c2.js","tfa/recovery-codes.5f726e90ac80f93d31c2.js.map"],"tfa/security-key-list":["tfa/security-key-list.71e755c7c36c784ba7e0.js","tfa/security-key-list.71e755c7c36c784ba7e0.js.map"],"tfa/showTFAQRCode":["tfa/showTFAQRCode.f2133ad4c232bd348c94.js","tfa/showTFAQRCode.f2133ad4c232bd348c94.js.map"],"tfa/showTFASuccess":["tfa/showTFASuccess.9ce7c8cbd7a0092ae913.js","tfa/showTFASuccess.9ce7c8cbd7a0092ae913.js.map"],"tfa/tfa-disable":["tfa/tfa-disable.3daa1160dce9349b47bd.js","tfa/tfa-disable.3daa1160dce9349b47bd.js.map"],"tfa/tfa-mode-selection":["tfa/tfa-mode-selection.51fa1545b9d82780c8fc.js","tfa/tfa-mode-selection.51fa1545b9d82780c8fc.js.map"],"tfa/tfa-password-entry":["tfa/tfa-password-entry.7631d86a14180a95c752.js","tfa/tfa-password-entry.7631d86a14180a95c752.js.map"],"tfa/totp":["tfa/totp.78eecd87c32c267b6e07.js","tfa/totp.78eecd87c32c267b6e07.js.map"],"tokens/create":["tokens/create.85f17c3c385308d52d64.js","tokens/create.85f17c3c385308d52d64.js.map"],"tokens/create-gat":["tokens/create-gat.2fed6ff29343d587a8a2.js","tokens/create-gat.2fed6ff29343d587a8a2.js.map"],"tokens/gat-details":["tokens/gat-details.44705fd6532f338329b0.js","tokens/gat-details.44705fd6532f338329b0.js.map"],"tokens/gat/allowed-ip-ranges-input":["tokens/gat/allowed-ip-ranges-input.5a4a53349bb50f9fad1f.js","tokens/gat/allowed-ip-ranges-input.5a4a53349bb50f9fad1f.js.map"],"tokens/gat/constants":["tokens/gat/constants.8a392a2d499d6b3ed1cd.js","tokens/gat/constants.8a392a2d499d6b3ed1cd.js.map"],"tokens/gat/divider":["tokens/gat/divider.7d7f1e1a8b95fd6b2aac.js","tokens/gat/divider.7d7f1e1a8b95fd6b2aac.js.map"],"tokens/gat/expiration-days-input":["tokens/gat/expiration-days-input.ad8b819768f63e218ff2.js","tokens/gat/expiration-days-input.ad8b819768f63e218ff2.js.map"],"tokens/gat/gat-expiration":["tokens/gat/gat-expiration.bf68e22935cc13e6cb07.js","tokens/gat/gat-expiration.bf68e22935cc13e6cb07.js.map"],"tokens/gat/gat-input":["tokens/gat/gat-input.482746d961379d11096f.js","tokens/gat/gat-input.482746d961379d11096f.js.map"],"tokens/gat/organizations-input":["tokens/gat/organizations-input.a3537d8aafbe36514c0c.js","tokens/gat/organizations-input.a3537d8aafbe36514c0c.js.map"],"tokens/gat/organizations-section":["tokens/gat/organizations-section.d6af923365c4e5918223.js","tokens/gat/organizations-section.d6af923365c4e5918223.js.map"],"tokens/gat/packages-and-scopes-input":["tokens/gat/packages-and-scopes-input.df891be53d1da5b97525.js","tokens/gat/packages-and-scopes-input.df891be53d1da5b97525.js.map"],"tokens/gat/packages-and-scopes-section":["tokens/gat/packages-and-scopes-section.e168d6076aae7639544d.js","tokens/gat/packages-and-scopes-section.e168d6076aae7639544d.js.map"],"tokens/gat/permissions-input":["tokens/gat/permissions-input.d4b040a6b1c3c0c7cf20.js","tokens/gat/permissions-input.d4b040a6b1c3c0c7cf20.js.map"],"tokens/gat/section":["tokens/gat/section.0c33f5608f031d26a611.js","tokens/gat/section.0c33f5608f031d26a611.js.map"],"tokens/gat/section-heading":["tokens/gat/section-heading.49f886f66d96ce131cd7.js","tokens/gat/section-heading.49f886f66d96ce131cd7.js.map"],"tokens/gat/selected-items":["tokens/gat/selected-items.95758f28465f9b200e6b.js","tokens/gat/selected-items.95758f28465f9b200e6b.js.map"],"tokens/gat/utils":["tokens/gat/utils.21bd1577ac4a108df9ea.js","tokens/gat/utils.21bd1577ac4a108df9ea.js.map"],"tokens/generate-token":["tokens/generate-token.8850c8d5dbfde716e107.js","tokens/generate-token.8850c8d5dbfde716e107.js.map"],"tokens/list":["tokens/list.d68e41c2141902326b66.js","tokens/list.d68e41c2141902326b66.js.map"],"vouchers/view":["vouchers/view.937b796376045749f937.js","vouchers/view.937b796376045749f937.js.map"]},"hash":"74d74467fb70cd5401ce","name":"package/package","containerId":"app","headerName":"x-spiferack","publicPath":"https://static-production.npmjs.com/"}</script><script crossorigin="anonymous" src="https://static-production.npmjs.com/commons.74d74467fb70cd5401ce.js"></script> <script crossorigin="anonymous" src="https://static-production.npmjs.com/minicssextractbug.d66d46708dd01c18fc7a.js"></script> <script crossorigin="anonymous" src="https://static-production.npmjs.com/package/package.a2fa5feaa17da98559b8.js"></script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10