scribo 1.0.38 → 1.0.40

Sign up to get free protection for your applications and to get access to all the features.
Files changed (628) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/gem-push.yml +11 -0
  3. data/.gitignore +12 -0
  4. data/.reek.yml +8 -0
  5. data/.rubocop.yml +44 -0
  6. data/.rubocop_todo.yml +129 -0
  7. data/CODE_OF_CONDUCT.md +74 -0
  8. data/Gemfile +31 -0
  9. data/Gemfile.lock +397 -0
  10. data/README.md +5 -9
  11. data/TODO.md +32 -0
  12. data/app/assets/config/scribo_manifest.js +4 -2
  13. data/app/assets/images/scribo/.keep +0 -0
  14. data/app/assets/images/scribo/Unknown-1.svg +2 -0
  15. data/app/assets/images/scribo/file.svg +4 -0
  16. data/app/assets/images/scribo/file_icons.svg +1 -0
  17. data/app/assets/images/scribo/folder-open.svg +1 -0
  18. data/app/assets/images/scribo/folder.svg +1 -0
  19. data/app/assets/images/scribo/icons/3d.svg +1 -0
  20. data/app/assets/images/scribo/icons/actionscript.svg +3 -0
  21. data/app/assets/images/scribo/icons/android.svg +1 -0
  22. data/app/assets/images/scribo/icons/angular-component.svg +3 -0
  23. data/app/assets/images/scribo/icons/angular-directive.svg +3 -0
  24. data/app/assets/images/scribo/icons/angular-guard.svg +3 -0
  25. data/app/assets/images/scribo/icons/angular-pipe.svg +3 -0
  26. data/app/assets/images/scribo/icons/angular-resolver.svg +3 -0
  27. data/app/assets/images/scribo/icons/angular-service.svg +3 -0
  28. data/app/assets/images/scribo/icons/angular.svg +3 -0
  29. data/app/assets/images/scribo/icons/apiblueprint.svg +5 -0
  30. data/app/assets/images/scribo/icons/applescript.svg +3 -0
  31. data/app/assets/images/scribo/icons/appveyor.svg +5 -0
  32. data/app/assets/images/scribo/icons/arduino.svg +1 -0
  33. data/app/assets/images/scribo/icons/asciidoc.svg +1 -0
  34. data/app/assets/images/scribo/icons/assembly.svg +4 -0
  35. data/app/assets/images/scribo/icons/audio.svg +4 -0
  36. data/app/assets/images/scribo/icons/aurelia.svg +107 -0
  37. data/app/assets/images/scribo/icons/authors.svg +1 -0
  38. data/app/assets/images/scribo/icons/autohotkey.svg +3 -0
  39. data/app/assets/images/scribo/icons/autoit.svg +21 -0
  40. data/app/assets/images/scribo/icons/azure-pipelines.svg +1 -0
  41. data/app/assets/images/scribo/icons/azure.svg +1 -0
  42. data/app/assets/images/scribo/icons/babel.svg +1 -0
  43. data/app/assets/images/scribo/icons/ballerina.svg +1 -0
  44. data/app/assets/images/scribo/icons/bazel.svg +1 -0
  45. data/app/assets/images/scribo/icons/bitbucket.svg +1 -0
  46. data/app/assets/images/scribo/icons/bithound.svg +1 -0
  47. data/app/assets/images/scribo/icons/blink.svg +4 -0
  48. data/app/assets/images/scribo/icons/blink_light.svg +4 -0
  49. data/app/assets/images/scribo/icons/bower.svg +1 -0
  50. data/app/assets/images/scribo/icons/browserlist.svg +6 -0
  51. data/app/assets/images/scribo/icons/browserlist_light.svg +7 -0
  52. data/app/assets/images/scribo/icons/bucklescript.svg +3 -0
  53. data/app/assets/images/scribo/icons/buildkite.svg +1 -0
  54. data/app/assets/images/scribo/icons/c.svg +1 -0
  55. data/app/assets/images/scribo/icons/cabal.svg +8 -0
  56. data/app/assets/images/scribo/icons/cake.svg +1 -0
  57. data/app/assets/images/scribo/icons/certificate.svg +3 -0
  58. data/app/assets/images/scribo/icons/changelog.svg +1 -0
  59. data/app/assets/images/scribo/icons/circleci.svg +14 -0
  60. data/app/assets/images/scribo/icons/circleci_light.svg +14 -0
  61. data/app/assets/images/scribo/icons/clojure.svg +1 -0
  62. data/app/assets/images/scribo/icons/cloudfoundry.svg +24 -0
  63. data/app/assets/images/scribo/icons/cmake.svg +7 -0
  64. data/app/assets/images/scribo/icons/code-climate.svg +4 -0
  65. data/app/assets/images/scribo/icons/code-climate_light.svg +4 -0
  66. data/app/assets/images/scribo/icons/coffee.svg +3 -0
  67. data/app/assets/images/scribo/icons/coldfusion.svg +7 -0
  68. data/app/assets/images/scribo/icons/conduct.svg +4 -0
  69. data/app/assets/images/scribo/icons/console.svg +3 -0
  70. data/app/assets/images/scribo/icons/contributing.svg +4 -0
  71. data/app/assets/images/scribo/icons/cpp.svg +1 -0
  72. data/app/assets/images/scribo/icons/credits.svg +3 -0
  73. data/app/assets/images/scribo/icons/crystal.svg +4 -0
  74. data/app/assets/images/scribo/icons/crystal_light.svg +4 -0
  75. data/app/assets/images/scribo/icons/csharp.svg +3 -0
  76. data/app/assets/images/scribo/icons/css-map.svg +1 -0
  77. data/app/assets/images/scribo/icons/css.svg +3 -0
  78. data/app/assets/images/scribo/icons/cucumber.svg +4 -0
  79. data/app/assets/images/scribo/icons/cuda.svg +4 -0
  80. data/app/assets/images/scribo/icons/d.svg +1 -0
  81. data/app/assets/images/scribo/icons/dart.svg +9 -0
  82. data/app/assets/images/scribo/icons/database.svg +1 -0
  83. data/app/assets/images/scribo/icons/diff.svg +1 -0
  84. data/app/assets/images/scribo/icons/django.svg +1 -0
  85. data/app/assets/images/scribo/icons/docker.svg +4 -0
  86. data/app/assets/images/scribo/icons/document.svg +3 -0
  87. data/app/assets/images/scribo/icons/dotjs.svg +8 -0
  88. data/app/assets/images/scribo/icons/drone.svg +6 -0
  89. data/app/assets/images/scribo/icons/drone_light.svg +6 -0
  90. data/app/assets/images/scribo/icons/edge.svg +1 -0
  91. data/app/assets/images/scribo/icons/editorconfig.svg +9 -0
  92. data/app/assets/images/scribo/icons/ejs.svg +7 -0
  93. data/app/assets/images/scribo/icons/elixir.svg +1 -0
  94. data/app/assets/images/scribo/icons/elm.svg +1 -0
  95. data/app/assets/images/scribo/icons/email.svg +3 -0
  96. data/app/assets/images/scribo/icons/erlang.svg +5 -0
  97. data/app/assets/images/scribo/icons/eslint.svg +3 -0
  98. data/app/assets/images/scribo/icons/exe.svg +3 -0
  99. data/app/assets/images/scribo/icons/fastlane.svg +1 -0
  100. data/app/assets/images/scribo/icons/favicon.svg +3 -0
  101. data/app/assets/images/scribo/icons/file.svg +3 -0
  102. data/app/assets/images/scribo/icons/firebase.svg +9 -0
  103. data/app/assets/images/scribo/icons/flash.svg +12 -0
  104. data/app/assets/images/scribo/icons/flow.svg +7 -0
  105. data/app/assets/images/scribo/icons/folder-android-open.svg +1 -0
  106. data/app/assets/images/scribo/icons/folder-android.svg +1 -0
  107. data/app/assets/images/scribo/icons/folder-animation-open.svg +1 -0
  108. data/app/assets/images/scribo/icons/folder-animation.svg +1 -0
  109. data/app/assets/images/scribo/icons/folder-ansible-open.svg +1 -0
  110. data/app/assets/images/scribo/icons/folder-ansible.svg +1 -0
  111. data/app/assets/images/scribo/icons/folder-api-open.svg +4 -0
  112. data/app/assets/images/scribo/icons/folder-api.svg +4 -0
  113. data/app/assets/images/scribo/icons/folder-app-open.svg +1 -0
  114. data/app/assets/images/scribo/icons/folder-app.svg +1 -0
  115. data/app/assets/images/scribo/icons/folder-archive-open.svg +1 -0
  116. data/app/assets/images/scribo/icons/folder-archive.svg +1 -0
  117. data/app/assets/images/scribo/icons/folder-audio-open.svg +2 -0
  118. data/app/assets/images/scribo/icons/folder-audio.svg +2 -0
  119. data/app/assets/images/scribo/icons/folder-aurelia-open.svg +2 -0
  120. data/app/assets/images/scribo/icons/folder-aurelia.svg +2 -0
  121. data/app/assets/images/scribo/icons/folder-aws-open.svg +2 -0
  122. data/app/assets/images/scribo/icons/folder-aws.svg +2 -0
  123. data/app/assets/images/scribo/icons/folder-batch-open.svg +1 -0
  124. data/app/assets/images/scribo/icons/folder-batch.svg +1 -0
  125. data/app/assets/images/scribo/icons/folder-benchmark-open.svg +1 -0
  126. data/app/assets/images/scribo/icons/folder-benchmark.svg +1 -0
  127. data/app/assets/images/scribo/icons/folder-bower-open.svg +2 -0
  128. data/app/assets/images/scribo/icons/folder-bower.svg +2 -0
  129. data/app/assets/images/scribo/icons/folder-ci-open.svg +1 -0
  130. data/app/assets/images/scribo/icons/folder-ci.svg +1 -0
  131. data/app/assets/images/scribo/icons/folder-circleci-open.svg +2 -0
  132. data/app/assets/images/scribo/icons/folder-circleci.svg +1 -0
  133. data/app/assets/images/scribo/icons/folder-class-open.svg +1 -0
  134. data/app/assets/images/scribo/icons/folder-class.svg +1 -0
  135. data/app/assets/images/scribo/icons/folder-client-open.svg +1 -0
  136. data/app/assets/images/scribo/icons/folder-client.svg +1 -0
  137. data/app/assets/images/scribo/icons/folder-cluster-open.svg +8 -0
  138. data/app/assets/images/scribo/icons/folder-cluster.svg +8 -0
  139. data/app/assets/images/scribo/icons/folder-command-open.svg +4 -0
  140. data/app/assets/images/scribo/icons/folder-command.svg +4 -0
  141. data/app/assets/images/scribo/icons/folder-components-open.svg +2 -0
  142. data/app/assets/images/scribo/icons/folder-components.svg +2 -0
  143. data/app/assets/images/scribo/icons/folder-config-open.svg +2 -0
  144. data/app/assets/images/scribo/icons/folder-config.svg +2 -0
  145. data/app/assets/images/scribo/icons/folder-constant-open.svg +1 -0
  146. data/app/assets/images/scribo/icons/folder-constant.svg +1 -0
  147. data/app/assets/images/scribo/icons/folder-container-open.svg +1 -0
  148. data/app/assets/images/scribo/icons/folder-container.svg +1 -0
  149. data/app/assets/images/scribo/icons/folder-content-open.svg +1 -0
  150. data/app/assets/images/scribo/icons/folder-content.svg +1 -0
  151. data/app/assets/images/scribo/icons/folder-controller-open.svg +1 -0
  152. data/app/assets/images/scribo/icons/folder-controller.svg +1 -0
  153. data/app/assets/images/scribo/icons/folder-core-open.svg +1 -0
  154. data/app/assets/images/scribo/icons/folder-core.svg +1 -0
  155. data/app/assets/images/scribo/icons/folder-coverage-open.svg +1 -0
  156. data/app/assets/images/scribo/icons/folder-coverage.svg +1 -0
  157. data/app/assets/images/scribo/icons/folder-css-open.svg +2 -0
  158. data/app/assets/images/scribo/icons/folder-css.svg +2 -0
  159. data/app/assets/images/scribo/icons/folder-custom-open.svg +1 -0
  160. data/app/assets/images/scribo/icons/folder-custom.svg +1 -0
  161. data/app/assets/images/scribo/icons/folder-database-open.svg +2 -0
  162. data/app/assets/images/scribo/icons/folder-database.svg +2 -0
  163. data/app/assets/images/scribo/icons/folder-debug-open.svg +1 -0
  164. data/app/assets/images/scribo/icons/folder-debug.svg +1 -0
  165. data/app/assets/images/scribo/icons/folder-delta-open.svg +4 -0
  166. data/app/assets/images/scribo/icons/folder-delta.svg +4 -0
  167. data/app/assets/images/scribo/icons/folder-dist-open.svg +2 -0
  168. data/app/assets/images/scribo/icons/folder-dist.svg +2 -0
  169. data/app/assets/images/scribo/icons/folder-docker-open.svg +2 -0
  170. data/app/assets/images/scribo/icons/folder-docker.svg +5 -0
  171. data/app/assets/images/scribo/icons/folder-docs-open.svg +2 -0
  172. data/app/assets/images/scribo/icons/folder-docs.svg +2 -0
  173. data/app/assets/images/scribo/icons/folder-download-open.svg +1 -0
  174. data/app/assets/images/scribo/icons/folder-download.svg +1 -0
  175. data/app/assets/images/scribo/icons/folder-dump-open.svg +1 -0
  176. data/app/assets/images/scribo/icons/folder-dump.svg +1 -0
  177. data/app/assets/images/scribo/icons/folder-environment-open.svg +1 -0
  178. data/app/assets/images/scribo/icons/folder-environment.svg +1 -0
  179. data/app/assets/images/scribo/icons/folder-error-open.svg +7 -0
  180. data/app/assets/images/scribo/icons/folder-error.svg +8 -0
  181. data/app/assets/images/scribo/icons/folder-event-open.svg +1 -0
  182. data/app/assets/images/scribo/icons/folder-event.svg +1 -0
  183. data/app/assets/images/scribo/icons/folder-examples-open.svg +1 -0
  184. data/app/assets/images/scribo/icons/folder-examples.svg +1 -0
  185. data/app/assets/images/scribo/icons/folder-expo-open.svg +1 -0
  186. data/app/assets/images/scribo/icons/folder-expo.svg +4 -0
  187. data/app/assets/images/scribo/icons/folder-export-open.svg +1 -0
  188. data/app/assets/images/scribo/icons/folder-export.svg +5 -0
  189. data/app/assets/images/scribo/icons/folder-fastlane-open.svg +1 -0
  190. data/app/assets/images/scribo/icons/folder-fastlane.svg +1 -0
  191. data/app/assets/images/scribo/icons/folder-flow-open.svg +1 -0
  192. data/app/assets/images/scribo/icons/folder-flow.svg +1 -0
  193. data/app/assets/images/scribo/icons/folder-font-open.svg +1 -0
  194. data/app/assets/images/scribo/icons/folder-font.svg +1 -0
  195. data/app/assets/images/scribo/icons/folder-functions-open.svg +1 -0
  196. data/app/assets/images/scribo/icons/folder-functions.svg +1 -0
  197. data/app/assets/images/scribo/icons/folder-generator-open.svg +1 -0
  198. data/app/assets/images/scribo/icons/folder-generator.svg +1 -0
  199. data/app/assets/images/scribo/icons/folder-git-open.svg +1 -0
  200. data/app/assets/images/scribo/icons/folder-git.svg +1 -0
  201. data/app/assets/images/scribo/icons/folder-github-open.svg +2 -0
  202. data/app/assets/images/scribo/icons/folder-github.svg +2 -0
  203. data/app/assets/images/scribo/icons/folder-gitlab-open.svg +2 -0
  204. data/app/assets/images/scribo/icons/folder-gitlab.svg +2 -0
  205. data/app/assets/images/scribo/icons/folder-global-open.svg +2 -0
  206. data/app/assets/images/scribo/icons/folder-global.svg +2 -0
  207. data/app/assets/images/scribo/icons/folder-gradle-open.svg +2 -0
  208. data/app/assets/images/scribo/icons/folder-gradle.svg +2 -0
  209. data/app/assets/images/scribo/icons/folder-graphql-open.svg +1 -0
  210. data/app/assets/images/scribo/icons/folder-graphql.svg +1 -0
  211. data/app/assets/images/scribo/icons/folder-guard-open.svg +1 -0
  212. data/app/assets/images/scribo/icons/folder-guard.svg +1 -0
  213. data/app/assets/images/scribo/icons/folder-helper-open.svg +1 -0
  214. data/app/assets/images/scribo/icons/folder-helper.svg +1 -0
  215. data/app/assets/images/scribo/icons/folder-hook-open.svg +1 -0
  216. data/app/assets/images/scribo/icons/folder-hook.svg +1 -0
  217. data/app/assets/images/scribo/icons/folder-i18n-open.svg +2 -0
  218. data/app/assets/images/scribo/icons/folder-i18n.svg +2 -0
  219. data/app/assets/images/scribo/icons/folder-images-open.svg +2 -0
  220. data/app/assets/images/scribo/icons/folder-images.svg +2 -0
  221. data/app/assets/images/scribo/icons/folder-import-open.svg +1 -0
  222. data/app/assets/images/scribo/icons/folder-import.svg +1 -0
  223. data/app/assets/images/scribo/icons/folder-include-open.svg +2 -0
  224. data/app/assets/images/scribo/icons/folder-include.svg +2 -0
  225. data/app/assets/images/scribo/icons/folder-ios-open.svg +1 -0
  226. data/app/assets/images/scribo/icons/folder-ios.svg +1 -0
  227. data/app/assets/images/scribo/icons/folder-javascript-open.svg +2 -0
  228. data/app/assets/images/scribo/icons/folder-javascript.svg +2 -0
  229. data/app/assets/images/scribo/icons/folder-jinja-open.svg +2 -0
  230. data/app/assets/images/scribo/icons/folder-jinja-open_light.svg +2 -0
  231. data/app/assets/images/scribo/icons/folder-jinja.svg +2 -0
  232. data/app/assets/images/scribo/icons/folder-jinja_light.svg +2 -0
  233. data/app/assets/images/scribo/icons/folder-job-open.svg +1 -0
  234. data/app/assets/images/scribo/icons/folder-job.svg +1 -0
  235. data/app/assets/images/scribo/icons/folder-keys-open.svg +1 -0
  236. data/app/assets/images/scribo/icons/folder-keys.svg +1 -0
  237. data/app/assets/images/scribo/icons/folder-kubernetes-open.svg +1 -0
  238. data/app/assets/images/scribo/icons/folder-kubernetes.svg +5 -0
  239. data/app/assets/images/scribo/icons/folder-layout-open.svg +1 -0
  240. data/app/assets/images/scribo/icons/folder-layout.svg +1 -0
  241. data/app/assets/images/scribo/icons/folder-less-open.svg +1 -0
  242. data/app/assets/images/scribo/icons/folder-less.svg +1 -0
  243. data/app/assets/images/scribo/icons/folder-lib-open.svg +2 -0
  244. data/app/assets/images/scribo/icons/folder-lib.svg +2 -0
  245. data/app/assets/images/scribo/icons/folder-log-open.svg +2 -0
  246. data/app/assets/images/scribo/icons/folder-log.svg +2 -0
  247. data/app/assets/images/scribo/icons/folder-mail-open.svg +1 -0
  248. data/app/assets/images/scribo/icons/folder-mail.svg +1 -0
  249. data/app/assets/images/scribo/icons/folder-mappings-open.svg +1 -0
  250. data/app/assets/images/scribo/icons/folder-mappings.svg +1 -0
  251. data/app/assets/images/scribo/icons/folder-markdown-open.svg +2 -0
  252. data/app/assets/images/scribo/icons/folder-markdown.svg +2 -0
  253. data/app/assets/images/scribo/icons/folder-messages-open.svg +1 -0
  254. data/app/assets/images/scribo/icons/folder-messages.svg +1 -0
  255. data/app/assets/images/scribo/icons/folder-meta-open.svg +1 -0
  256. data/app/assets/images/scribo/icons/folder-meta.svg +1 -0
  257. data/app/assets/images/scribo/icons/folder-middleware-open.svg +1 -0
  258. data/app/assets/images/scribo/icons/folder-middleware.svg +1 -0
  259. data/app/assets/images/scribo/icons/folder-mock-open.svg +1 -0
  260. data/app/assets/images/scribo/icons/folder-mock.svg +1 -0
  261. data/app/assets/images/scribo/icons/folder-ngrx-actions-open.svg +2 -0
  262. data/app/assets/images/scribo/icons/folder-ngrx-actions.svg +2 -0
  263. data/app/assets/images/scribo/icons/folder-ngrx-effects-open.svg +2 -0
  264. data/app/assets/images/scribo/icons/folder-ngrx-effects.svg +2 -0
  265. data/app/assets/images/scribo/icons/folder-ngrx-entities-open.svg +2 -0
  266. data/app/assets/images/scribo/icons/folder-ngrx-entities.svg +2 -0
  267. data/app/assets/images/scribo/icons/folder-ngrx-reducer-open.svg +2 -0
  268. data/app/assets/images/scribo/icons/folder-ngrx-reducer.svg +2 -0
  269. data/app/assets/images/scribo/icons/folder-ngrx-state-open.svg +1 -0
  270. data/app/assets/images/scribo/icons/folder-ngrx-state.svg +1 -0
  271. data/app/assets/images/scribo/icons/folder-ngrx-store-open.svg +1 -0
  272. data/app/assets/images/scribo/icons/folder-ngrx-store.svg +1 -0
  273. data/app/assets/images/scribo/icons/folder-node-open.svg +1 -0
  274. data/app/assets/images/scribo/icons/folder-node.svg +1 -0
  275. data/app/assets/images/scribo/icons/folder-nuxt-open.svg +1 -0
  276. data/app/assets/images/scribo/icons/folder-nuxt.svg +1 -0
  277. data/app/assets/images/scribo/icons/folder-open.svg +11 -0
  278. data/app/assets/images/scribo/icons/folder-other-open.svg +1 -0
  279. data/app/assets/images/scribo/icons/folder-other.svg +1 -0
  280. data/app/assets/images/scribo/icons/folder-packages-open.svg +1 -0
  281. data/app/assets/images/scribo/icons/folder-packages.svg +1 -0
  282. data/app/assets/images/scribo/icons/folder-php-open.svg +2 -0
  283. data/app/assets/images/scribo/icons/folder-php.svg +2 -0
  284. data/app/assets/images/scribo/icons/folder-phpmailer-open.svg +2 -0
  285. data/app/assets/images/scribo/icons/folder-phpmailer.svg +2 -0
  286. data/app/assets/images/scribo/icons/folder-pipe-open.svg +1 -0
  287. data/app/assets/images/scribo/icons/folder-pipe.svg +1 -0
  288. data/app/assets/images/scribo/icons/folder-plugin-open.svg +1 -0
  289. data/app/assets/images/scribo/icons/folder-plugin.svg +1 -0
  290. data/app/assets/images/scribo/icons/folder-prisma-open.svg +1 -0
  291. data/app/assets/images/scribo/icons/folder-prisma.svg +1 -0
  292. data/app/assets/images/scribo/icons/folder-private-open.svg +1 -0
  293. data/app/assets/images/scribo/icons/folder-private.svg +1 -0
  294. data/app/assets/images/scribo/icons/folder-public-open.svg +2 -0
  295. data/app/assets/images/scribo/icons/folder-public.svg +2 -0
  296. data/app/assets/images/scribo/icons/folder-python-open.svg +1 -0
  297. data/app/assets/images/scribo/icons/folder-python.svg +1 -0
  298. data/app/assets/images/scribo/icons/folder-react-components-open.svg +2 -0
  299. data/app/assets/images/scribo/icons/folder-react-components.svg +2 -0
  300. data/app/assets/images/scribo/icons/folder-redux-actions-open.svg +1 -0
  301. data/app/assets/images/scribo/icons/folder-redux-actions.svg +1 -0
  302. data/app/assets/images/scribo/icons/folder-redux-reducer-open.svg +2 -0
  303. data/app/assets/images/scribo/icons/folder-redux-reducer.svg +2 -0
  304. data/app/assets/images/scribo/icons/folder-redux-store-open.svg +2 -0
  305. data/app/assets/images/scribo/icons/folder-redux-store.svg +2 -0
  306. data/app/assets/images/scribo/icons/folder-resource-open.svg +2 -0
  307. data/app/assets/images/scribo/icons/folder-resource.svg +2 -0
  308. data/app/assets/images/scribo/icons/folder-review-open.svg +1 -0
  309. data/app/assets/images/scribo/icons/folder-review.svg +1 -0
  310. data/app/assets/images/scribo/icons/folder-routes-open.svg +1 -0
  311. data/app/assets/images/scribo/icons/folder-routes.svg +1 -0
  312. data/app/assets/images/scribo/icons/folder-rules-open.svg +1 -0
  313. data/app/assets/images/scribo/icons/folder-rules.svg +1 -0
  314. data/app/assets/images/scribo/icons/folder-sass-open.svg +1 -0
  315. data/app/assets/images/scribo/icons/folder-sass.svg +1 -0
  316. data/app/assets/images/scribo/icons/folder-scripts-open.svg +2 -0
  317. data/app/assets/images/scribo/icons/folder-scripts.svg +2 -0
  318. data/app/assets/images/scribo/icons/folder-secure-open.svg +1 -0
  319. data/app/assets/images/scribo/icons/folder-secure.svg +1 -0
  320. data/app/assets/images/scribo/icons/folder-server-open.svg +1 -0
  321. data/app/assets/images/scribo/icons/folder-server.svg +1 -0
  322. data/app/assets/images/scribo/icons/folder-serverless-open.svg +1 -0
  323. data/app/assets/images/scribo/icons/folder-serverless.svg +1 -0
  324. data/app/assets/images/scribo/icons/folder-shared-open.svg +1 -0
  325. data/app/assets/images/scribo/icons/folder-shared.svg +1 -0
  326. data/app/assets/images/scribo/icons/folder-src-open.svg +2 -0
  327. data/app/assets/images/scribo/icons/folder-src.svg +2 -0
  328. data/app/assets/images/scribo/icons/folder-stack-open.svg +1 -0
  329. data/app/assets/images/scribo/icons/folder-stack.svg +1 -0
  330. data/app/assets/images/scribo/icons/folder-stylus-open.svg +1 -0
  331. data/app/assets/images/scribo/icons/folder-stylus.svg +1 -0
  332. data/app/assets/images/scribo/icons/folder-sublime-open.svg +2 -0
  333. data/app/assets/images/scribo/icons/folder-sublime.svg +2 -0
  334. data/app/assets/images/scribo/icons/folder-svg-open.svg +1 -0
  335. data/app/assets/images/scribo/icons/folder-svg.svg +1 -0
  336. data/app/assets/images/scribo/icons/folder-syntax-open.svg +1 -0
  337. data/app/assets/images/scribo/icons/folder-syntax.svg +1 -0
  338. data/app/assets/images/scribo/icons/folder-tasks-open.svg +1 -0
  339. data/app/assets/images/scribo/icons/folder-tasks.svg +1 -0
  340. data/app/assets/images/scribo/icons/folder-temp-open.svg +2 -0
  341. data/app/assets/images/scribo/icons/folder-temp.svg +2 -0
  342. data/app/assets/images/scribo/icons/folder-template-open.svg +1 -0
  343. data/app/assets/images/scribo/icons/folder-template.svg +1 -0
  344. data/app/assets/images/scribo/icons/folder-test-open.svg +1 -0
  345. data/app/assets/images/scribo/icons/folder-test.svg +1 -0
  346. data/app/assets/images/scribo/icons/folder-theme-open.svg +2 -0
  347. data/app/assets/images/scribo/icons/folder-theme.svg +2 -0
  348. data/app/assets/images/scribo/icons/folder-tools-open.svg +1 -0
  349. data/app/assets/images/scribo/icons/folder-tools.svg +1 -0
  350. data/app/assets/images/scribo/icons/folder-typescript-open.svg +1 -0
  351. data/app/assets/images/scribo/icons/folder-typescript.svg +1 -0
  352. data/app/assets/images/scribo/icons/folder-upload-open.svg +1 -0
  353. data/app/assets/images/scribo/icons/folder-upload.svg +1 -0
  354. data/app/assets/images/scribo/icons/folder-utils-open.svg +1 -0
  355. data/app/assets/images/scribo/icons/folder-utils.svg +1 -0
  356. data/app/assets/images/scribo/icons/folder-video-open.svg +2 -0
  357. data/app/assets/images/scribo/icons/folder-video.svg +2 -0
  358. data/app/assets/images/scribo/icons/folder-views-open.svg +1 -0
  359. data/app/assets/images/scribo/icons/folder-views.svg +1 -0
  360. data/app/assets/images/scribo/icons/folder-vm-open.svg +1 -0
  361. data/app/assets/images/scribo/icons/folder-vm.svg +1 -0
  362. data/app/assets/images/scribo/icons/folder-vscode-open.svg +2 -0
  363. data/app/assets/images/scribo/icons/folder-vscode.svg +2 -0
  364. data/app/assets/images/scribo/icons/folder-vue-directives-open.svg +1 -0
  365. data/app/assets/images/scribo/icons/folder-vue-directives.svg +1 -0
  366. data/app/assets/images/scribo/icons/folder-vue-open.svg +1 -0
  367. data/app/assets/images/scribo/icons/folder-vue.svg +1 -0
  368. data/app/assets/images/scribo/icons/folder-vuex-store-open.svg +1 -0
  369. data/app/assets/images/scribo/icons/folder-vuex-store.svg +1 -0
  370. data/app/assets/images/scribo/icons/folder-wakatime-open.svg +2 -0
  371. data/app/assets/images/scribo/icons/folder-wakatime.svg +2 -0
  372. data/app/assets/images/scribo/icons/folder-webpack-open.svg +2 -0
  373. data/app/assets/images/scribo/icons/folder-webpack.svg +2 -0
  374. data/app/assets/images/scribo/icons/folder-wordpress-open.svg +2 -0
  375. data/app/assets/images/scribo/icons/folder-wordpress.svg +1 -0
  376. data/app/assets/images/scribo/icons/folder.svg +11 -0
  377. data/app/assets/images/scribo/icons/font.svg +3 -0
  378. data/app/assets/images/scribo/icons/foxpro.svg +1 -0
  379. data/app/assets/images/scribo/icons/fsharp.svg +7 -0
  380. data/app/assets/images/scribo/icons/fusebox.svg +20 -0
  381. data/app/assets/images/scribo/icons/gatsby.svg +5 -0
  382. data/app/assets/images/scribo/icons/gemfile.svg +1 -0
  383. data/app/assets/images/scribo/icons/git.svg +4 -0
  384. data/app/assets/images/scribo/icons/gitlab.svg +43 -0
  385. data/app/assets/images/scribo/icons/gitpod.svg +1 -0
  386. data/app/assets/images/scribo/icons/go-mod.svg +8 -0
  387. data/app/assets/images/scribo/icons/go.svg +8 -0
  388. data/app/assets/images/scribo/icons/go_gopher.svg +25 -0
  389. data/app/assets/images/scribo/icons/godot-assets.svg +1 -0
  390. data/app/assets/images/scribo/icons/godot.svg +1 -0
  391. data/app/assets/images/scribo/icons/gradle.svg +3 -0
  392. data/app/assets/images/scribo/icons/graphcool.svg +6 -0
  393. data/app/assets/images/scribo/icons/graphql.svg +11 -0
  394. data/app/assets/images/scribo/icons/groovy.svg +3 -0
  395. data/app/assets/images/scribo/icons/grunt.svg +1 -0
  396. data/app/assets/images/scribo/icons/gulp.svg +3 -0
  397. data/app/assets/images/scribo/icons/h.svg +6 -0
  398. data/app/assets/images/scribo/icons/hack.svg +2 -0
  399. data/app/assets/images/scribo/icons/haml.svg +5 -0
  400. data/app/assets/images/scribo/icons/handlebars.svg +3 -0
  401. data/app/assets/images/scribo/icons/haskell.svg +8 -0
  402. data/app/assets/images/scribo/icons/haxe.svg +17 -0
  403. data/app/assets/images/scribo/icons/hcl.svg +1 -0
  404. data/app/assets/images/scribo/icons/hcl_light.svg +1 -0
  405. data/app/assets/images/scribo/icons/helm.svg +1 -0
  406. data/app/assets/images/scribo/icons/heroku.svg +1 -0
  407. data/app/assets/images/scribo/icons/hpp.svg +7 -0
  408. data/app/assets/images/scribo/icons/html.svg +3 -0
  409. data/app/assets/images/scribo/icons/http.svg +3 -0
  410. data/app/assets/images/scribo/icons/i18n.svg +1 -0
  411. data/app/assets/images/scribo/icons/image.svg +3 -0
  412. data/app/assets/images/scribo/icons/ionic.svg +1 -0
  413. data/app/assets/images/scribo/icons/istanbul.svg +1 -0
  414. data/app/assets/images/scribo/icons/java.svg +3 -0
  415. data/app/assets/images/scribo/icons/javascript-map.svg +6 -0
  416. data/app/assets/images/scribo/icons/javascript.svg +3 -0
  417. data/app/assets/images/scribo/icons/jenkins.svg +1 -0
  418. data/app/assets/images/scribo/icons/jest.svg +1 -0
  419. data/app/assets/images/scribo/icons/jinja.svg +17 -0
  420. data/app/assets/images/scribo/icons/jinja_light.svg +17 -0
  421. data/app/assets/images/scribo/icons/json.svg +1 -0
  422. data/app/assets/images/scribo/icons/julia.svg +9 -0
  423. data/app/assets/images/scribo/icons/jupyter.svg +1 -0
  424. data/app/assets/images/scribo/icons/karma.svg +8 -0
  425. data/app/assets/images/scribo/icons/key.svg +3 -0
  426. data/app/assets/images/scribo/icons/kivy.svg +9 -0
  427. data/app/assets/images/scribo/icons/kl.svg +8 -0
  428. data/app/assets/images/scribo/icons/kotlin.svg +14 -0
  429. data/app/assets/images/scribo/icons/laravel.svg +5 -0
  430. data/app/assets/images/scribo/icons/less.svg +1 -0
  431. data/app/assets/images/scribo/icons/lib.svg +3 -0
  432. data/app/assets/images/scribo/icons/livescript.svg +18 -0
  433. data/app/assets/images/scribo/icons/lock.svg +3 -0
  434. data/app/assets/images/scribo/icons/log.svg +4 -0
  435. data/app/assets/images/scribo/icons/lua.svg +7 -0
  436. data/app/assets/images/scribo/icons/makefile.svg +1 -0
  437. data/app/assets/images/scribo/icons/markdown.svg +3 -0
  438. data/app/assets/images/scribo/icons/markojs.svg +12 -0
  439. data/app/assets/images/scribo/icons/mathematica.svg +3 -0
  440. data/app/assets/images/scribo/icons/matlab.svg +8 -0
  441. data/app/assets/images/scribo/icons/mdx.svg +1 -0
  442. data/app/assets/images/scribo/icons/merlin.svg +5 -0
  443. data/app/assets/images/scribo/icons/mint.svg +1 -0
  444. data/app/assets/images/scribo/icons/mjml.svg +4 -0
  445. data/app/assets/images/scribo/icons/mocha.svg +2 -0
  446. data/app/assets/images/scribo/icons/moonscript.svg +1 -0
  447. data/app/assets/images/scribo/icons/mxml.svg +3 -0
  448. data/app/assets/images/scribo/icons/nest-controller.svg +8 -0
  449. data/app/assets/images/scribo/icons/nest-decorator.svg +8 -0
  450. data/app/assets/images/scribo/icons/nest-filter.svg +8 -0
  451. data/app/assets/images/scribo/icons/nest-gateway.svg +8 -0
  452. data/app/assets/images/scribo/icons/nest-guard.svg +8 -0
  453. data/app/assets/images/scribo/icons/nest-middleware.svg +8 -0
  454. data/app/assets/images/scribo/icons/nest-module.svg +8 -0
  455. data/app/assets/images/scribo/icons/nest-pipe.svg +8 -0
  456. data/app/assets/images/scribo/icons/nest-service.svg +8 -0
  457. data/app/assets/images/scribo/icons/nest.svg +8 -0
  458. data/app/assets/images/scribo/icons/netlify.svg +1 -0
  459. data/app/assets/images/scribo/icons/ngrx-actions.svg +4 -0
  460. data/app/assets/images/scribo/icons/ngrx-effects.svg +4 -0
  461. data/app/assets/images/scribo/icons/ngrx-entity.svg +4 -0
  462. data/app/assets/images/scribo/icons/ngrx-reducer.svg +4 -0
  463. data/app/assets/images/scribo/icons/ngrx-state.svg +4 -0
  464. data/app/assets/images/scribo/icons/nim.svg +1 -0
  465. data/app/assets/images/scribo/icons/nix.svg +6 -0
  466. data/app/assets/images/scribo/icons/nodejs.svg +3 -0
  467. data/app/assets/images/scribo/icons/nodejs_alt.svg +1 -0
  468. data/app/assets/images/scribo/icons/nodemon.svg +7 -0
  469. data/app/assets/images/scribo/icons/now.svg +1 -0
  470. data/app/assets/images/scribo/icons/now_light.svg +1 -0
  471. data/app/assets/images/scribo/icons/npm.svg +8 -0
  472. data/app/assets/images/scribo/icons/nunjucks.svg +3 -0
  473. data/app/assets/images/scribo/icons/nuxt.svg +1 -0
  474. data/app/assets/images/scribo/icons/ocaml.svg +1 -0
  475. data/app/assets/images/scribo/icons/pdf.svg +1 -0
  476. data/app/assets/images/scribo/icons/percy.svg +1 -0
  477. data/app/assets/images/scribo/icons/perl.svg +3 -0
  478. data/app/assets/images/scribo/icons/php.svg +1 -0
  479. data/app/assets/images/scribo/icons/php_elephant.svg +4 -0
  480. data/app/assets/images/scribo/icons/postcss.svg +9 -0
  481. data/app/assets/images/scribo/icons/powerpoint.svg +3 -0
  482. data/app/assets/images/scribo/icons/powershell.svg +1 -0
  483. data/app/assets/images/scribo/icons/prettier.svg +35 -0
  484. data/app/assets/images/scribo/icons/prisma.svg +1 -0
  485. data/app/assets/images/scribo/icons/processing.svg +5 -0
  486. data/app/assets/images/scribo/icons/processing_light.svg +5 -0
  487. data/app/assets/images/scribo/icons/protractor.svg +1 -0
  488. data/app/assets/images/scribo/icons/pug.svg +22 -0
  489. data/app/assets/images/scribo/icons/puppet.svg +13 -0
  490. data/app/assets/images/scribo/icons/purescript.svg +1 -0
  491. data/app/assets/images/scribo/icons/python-misc.svg +1 -0
  492. data/app/assets/images/scribo/icons/python.svg +8 -0
  493. data/app/assets/images/scribo/icons/r.svg +4 -0
  494. data/app/assets/images/scribo/icons/racket.svg +1 -0
  495. data/app/assets/images/scribo/icons/raml.svg +1 -0
  496. data/app/assets/images/scribo/icons/razor.svg +1 -0
  497. data/app/assets/images/scribo/icons/react.svg +3 -0
  498. data/app/assets/images/scribo/icons/react_ts.svg +1 -0
  499. data/app/assets/images/scribo/icons/readme.svg +3 -0
  500. data/app/assets/images/scribo/icons/reason.svg +3 -0
  501. data/app/assets/images/scribo/icons/red.svg +8 -0
  502. data/app/assets/images/scribo/icons/redux-action.svg +1 -0
  503. data/app/assets/images/scribo/icons/redux-reducer.svg +1 -0
  504. data/app/assets/images/scribo/icons/redux-store.svg +1 -0
  505. data/app/assets/images/scribo/icons/restql.svg +60 -0
  506. data/app/assets/images/scribo/icons/riot.svg +1 -0
  507. data/app/assets/images/scribo/icons/robot.svg +1 -0
  508. data/app/assets/images/scribo/icons/rollup.svg +50 -0
  509. data/app/assets/images/scribo/icons/routing.svg +3 -0
  510. data/app/assets/images/scribo/icons/ruby.svg +3 -0
  511. data/app/assets/images/scribo/icons/rust.svg +3 -0
  512. data/app/assets/images/scribo/icons/san.svg +1 -0
  513. data/app/assets/images/scribo/icons/sass.svg +1 -0
  514. data/app/assets/images/scribo/icons/sbt.svg +6 -0
  515. data/app/assets/images/scribo/icons/scala.svg +1 -0
  516. data/app/assets/images/scribo/icons/scheme.svg +1 -0
  517. data/app/assets/images/scribo/icons/semantic-release.svg +1 -0
  518. data/app/assets/images/scribo/icons/semantic-release_light.svg +1 -0
  519. data/app/assets/images/scribo/icons/sequelize.svg +31 -0
  520. data/app/assets/images/scribo/icons/settings.svg +3 -0
  521. data/app/assets/images/scribo/icons/shaderlab.svg +3 -0
  522. data/app/assets/images/scribo/icons/silverstripe.svg +1 -0
  523. data/app/assets/images/scribo/icons/slim.svg +4 -0
  524. data/app/assets/images/scribo/icons/smarty.svg +3 -0
  525. data/app/assets/images/scribo/icons/snyk.svg +23 -0
  526. data/app/assets/images/scribo/icons/solidity.svg +7 -0
  527. data/app/assets/images/scribo/icons/stencil.svg +1 -0
  528. data/app/assets/images/scribo/icons/stencil_light.svg +1 -0
  529. data/app/assets/images/scribo/icons/storybook.svg +1 -0
  530. data/app/assets/images/scribo/icons/stylelint.svg +12 -0
  531. data/app/assets/images/scribo/icons/stylelint_light.svg +12 -0
  532. data/app/assets/images/scribo/icons/stylus.svg +1 -0
  533. data/app/assets/images/scribo/icons/sublime.svg +1 -0
  534. data/app/assets/images/scribo/icons/svelte.svg +1 -0
  535. data/app/assets/images/scribo/icons/svg.svg +1 -0
  536. data/app/assets/images/scribo/icons/swc.svg +12 -0
  537. data/app/assets/images/scribo/icons/swift.svg +1 -0
  538. data/app/assets/images/scribo/icons/table.svg +3 -0
  539. data/app/assets/images/scribo/icons/tailwindcss.svg +1 -0
  540. data/app/assets/images/scribo/icons/terraform.svg +12 -0
  541. data/app/assets/images/scribo/icons/test-js.svg +1 -0
  542. data/app/assets/images/scribo/icons/test-jsx.svg +4 -0
  543. data/app/assets/images/scribo/icons/test-ts.svg +1 -0
  544. data/app/assets/images/scribo/icons/tex.svg +1 -0
  545. data/app/assets/images/scribo/icons/todo.svg +1 -0
  546. data/app/assets/images/scribo/icons/travis.svg +13 -0
  547. data/app/assets/images/scribo/icons/tune.svg +7 -0
  548. data/app/assets/images/scribo/icons/twig.svg +3 -0
  549. data/app/assets/images/scribo/icons/typescript-def.svg +6 -0
  550. data/app/assets/images/scribo/icons/typescript.svg +3 -0
  551. data/app/assets/images/scribo/icons/url.svg +3 -0
  552. data/app/assets/images/scribo/icons/vagrant.svg +1 -0
  553. data/app/assets/images/scribo/icons/velocity.svg +1 -0
  554. data/app/assets/images/scribo/icons/verilog.svg +3 -0
  555. data/app/assets/images/scribo/icons/vfl.svg +16 -0
  556. data/app/assets/images/scribo/icons/video.svg +4 -0
  557. data/app/assets/images/scribo/icons/vim.svg +1 -0
  558. data/app/assets/images/scribo/icons/virtual.svg +1 -0
  559. data/app/assets/images/scribo/icons/visualstudio.svg +4 -0
  560. data/app/assets/images/scribo/icons/vscode.svg +9 -0
  561. data/app/assets/images/scribo/icons/vue-config.svg +1 -0
  562. data/app/assets/images/scribo/icons/vue.svg +1 -0
  563. data/app/assets/images/scribo/icons/vuex-store.svg +1 -0
  564. data/app/assets/images/scribo/icons/wakatime.svg +21 -0
  565. data/app/assets/images/scribo/icons/wakatime_light.svg +21 -0
  566. data/app/assets/images/scribo/icons/wallaby.svg +1 -0
  567. data/app/assets/images/scribo/icons/watchman.svg +4 -0
  568. data/app/assets/images/scribo/icons/webassembly.svg +1 -0
  569. data/app/assets/images/scribo/icons/webhint.svg +5 -0
  570. data/app/assets/images/scribo/icons/webpack.svg +6 -0
  571. data/app/assets/images/scribo/icons/wepy.svg +1 -0
  572. data/app/assets/images/scribo/icons/wolframlanguage.svg +13 -0
  573. data/app/assets/images/scribo/icons/word.svg +3 -0
  574. data/app/assets/images/scribo/icons/xaml.svg +3 -0
  575. data/app/assets/images/scribo/icons/xml.svg +4 -0
  576. data/app/assets/images/scribo/icons/yaml.svg +1 -0
  577. data/app/assets/images/scribo/icons/yang.svg +1 -0
  578. data/app/assets/images/scribo/icons/yarn.svg +3 -0
  579. data/app/assets/images/scribo/icons/zip.svg +3 -0
  580. data/app/assets/stylesheets/scribo/application.css +108 -0
  581. data/app/assets/stylesheets/scribo/components/file-icons.css +158 -0
  582. data/app/assets/stylesheets/scribo/components/open-editors.css +83 -0
  583. data/app/assets/stylesheets/scribo/components/tree-view.css +312 -0
  584. data/app/javascript/scribo/application.js +2 -0
  585. data/app/javascript/scribo/controllers/application.js +12 -0
  586. data/app/javascript/scribo/controllers/image_editor_controller.js +72 -0
  587. data/app/javascript/scribo/controllers/index.js +4 -0
  588. data/app/javascript/scribo/controllers/open_editors_controller.js +291 -0
  589. data/app/javascript/scribo/controllers/text_editor_controller.js +39 -0
  590. data/app/javascript/scribo/controllers/tree_view_controller.js +378 -0
  591. data/app/javascript/scribo/controllers/upload_controller.js +81 -0
  592. data/app/views/scribo/admin/sites/contents/_form.html.slim +11 -12
  593. data/app/views/scribo/shared/_ide.html.slim +1 -1
  594. data/app/views/scribo/shared/_tree-view.html.slim +3 -3
  595. data/bin/importmap +4 -0
  596. data/bin/rails +14 -0
  597. data/bin/rake +29 -0
  598. data/bin/rubocop +29 -0
  599. data/cli/.gitignore +2 -0
  600. data/cli/scribo.cr +103 -0
  601. data/cli/shard.lock +6 -0
  602. data/cli/shard.yml +18 -0
  603. data/config/importmap.rb +8 -0
  604. data/docs/content.md +33 -0
  605. data/docs/editor.png +0 -0
  606. data/docs/features.md +71 -0
  607. data/docs/ide.md +17 -0
  608. data/docs/import_export.md +7 -0
  609. data/docs/liquid.md +59 -0
  610. data/favicon.ico +0 -0
  611. data/frontend/images/.DS_Store +0 -0
  612. data/icon.png +0 -0
  613. data/lib/generators/scribo/install_generator.rb +22 -0
  614. data/lib/generators/scribo/tailwind_config_generator.rb +24 -0
  615. data/lib/generators/scribo/templates/config/initializers/scribo.rb +16 -0
  616. data/lib/scribo/engine.rb +19 -8
  617. data/lib/scribo/version.rb +1 -1
  618. data/lib/tasks/scribo_tasks.rake +13 -0
  619. data/logo.svg +1 -0
  620. data/scribo.gemspec +54 -0
  621. data/vendor/javascript/@hotwired--stimulus.js +2 -0
  622. data/vendor/javascript/painterro.js +2 -0
  623. data/vendor/javascript/sortablejs.js +134 -0
  624. data/yarn.lock +6775 -0
  625. metadata +683 -15
  626. data/app/assets/javascripts/scribo/scribo.js +0 -1
  627. data/app/assets/stylesheets/scribo/scribo.css +0 -1
  628. data/lib/scribo/liquid/tags/editable_url_tag.rb +0 -19
@@ -0,0 +1,134 @@
1
+ /**!
2
+ * Sortable 1.15.2
3
+ * @author RubaXa <trash@rubaxa.org>
4
+ * @author owenm <owen23355@gmail.com>
5
+ * @license MIT
6
+ */
7
+ function ownKeys(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})));n.push.apply(n,o)}return n}function _objectSpread2(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?ownKeys(Object(n),true).forEach((function(t){_defineProperty(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _typeof(e){_typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol==="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};return _typeof(e)}function _defineProperty(e,t,n){t in e?Object.defineProperty(e,t,{value:n,enumerable:true,configurable:true,writable:true}):e[t]=n;return e}function _extends(){_extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e};return _extends.apply(this,arguments)}function _objectWithoutPropertiesLoose(e,t){if(e==null)return{};var n={};var o=Object.keys(e);var r,i;for(i=0;i<o.length;i++){r=o[i];t.indexOf(r)>=0||(n[r]=e[r])}return n}function _objectWithoutProperties(e,t){if(e==null)return{};var n=_objectWithoutPropertiesLoose(e,t);var o,r;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++){o=i[r];t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}}return n}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_unsupportedIterableToArray(e)||_nonIterableSpread()}function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}function _iterableToArray(e){if(typeof Symbol!=="undefined"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function _unsupportedIterableToArray(e,t){if(e){if(typeof e==="string")return _arrayLikeToArray(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);n==="Object"&&e.constructor&&(n=e.constructor.name);return n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}}function _arrayLikeToArray(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var e="1.15.2";function userAgent(e){if(typeof window!=="undefined"&&window.navigator)return!!navigator.userAgent.match(e)}var t=userAgent(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i);var n=userAgent(/Edge/i);var o=userAgent(/firefox/i);var r=userAgent(/safari/i)&&!userAgent(/chrome/i)&&!userAgent(/android/i);var i=userAgent(/iP(ad|od|hone)/i);var a=userAgent(/chrome/i)&&userAgent(/android/i);var l={capture:false,passive:false};function on(e,n,o){e.addEventListener(n,o,!t&&l)}function off(e,n,o){e.removeEventListener(n,o,!t&&l)}function matches(e,t){if(t){t[0]===">"&&(t=t.substring(1));if(e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch(e){return false}return false}}function getParentOrHost(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function closest(e,t,n,o){if(e){n=n||document;do{if(t!=null&&(t[0]===">"?e.parentNode===n&&matches(e,t):matches(e,t))||o&&e===n)return e;if(e===n)break}while(e=getParentOrHost(e))}return null}var s=/\s+/g;function toggleClass(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var o=(" "+e.className+" ").replace(s," ").replace(" "+t+" "," ");e.className=(o+(n?" "+t:"")).replace(s," ")}}function css(e,t,n){var o=e&&e.style;if(o){if(n===void 0){document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(n=e.currentStyle);return t===void 0?n:n[t]}t in o||t.indexOf("webkit")!==-1||(t="-webkit-"+t);o[t]=n+(typeof n==="string"?"":"px")}}function matrix(e,t){var n="";if(typeof e==="string")n=e;else do{var o=css(e,"transform");o&&o!=="none"&&(n=o+" "+n)}while(!t&&(e=e.parentNode));var r=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return r&&new r(n)}function find(e,t,n){if(e){var o=e.getElementsByTagName(t),r=0,i=o.length;if(n)for(;r<i;r++)n(o[r],r);return o}return[]}function getWindowScrollingElement(){var e=document.scrollingElement;return e||document.documentElement}
8
+ /**
9
+ * Returns the "bounding client rect" of given element
10
+ * @param {HTMLElement} el The element whose boundingClientRect is wanted
11
+ * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container
12
+ * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr
13
+ * @param {[Boolean]} undoScale Whether the container's scale() should be undone
14
+ * @param {[HTMLElement]} container The parent the element will be placed in
15
+ * @return {Object} The boundingClientRect of el, with specified adjustments
16
+ */function getRect(e,n,o,r,i){if(e.getBoundingClientRect||e===window){var a,l,s,c,u,d,f;if(e!==window&&e.parentNode&&e!==getWindowScrollingElement()){a=e.getBoundingClientRect();l=a.top;s=a.left;c=a.bottom;u=a.right;d=a.height;f=a.width}else{l=0;s=0;c=window.innerHeight;u=window.innerWidth;d=window.innerHeight;f=window.innerWidth}if((n||o)&&e!==window){i=i||e.parentNode;if(!t)do{if(i&&i.getBoundingClientRect&&(css(i,"transform")!=="none"||o&&css(i,"position")!=="static")){var h=i.getBoundingClientRect();l-=h.top+parseInt(css(i,"border-top-width"));s-=h.left+parseInt(css(i,"border-left-width"));c=l+a.height;u=s+a.width;break}}while(i=i.parentNode)}if(r&&e!==window){var g=matrix(i||e),p=g&&g.a,v=g&&g.d;if(g){l/=v;s/=p;f/=p;d/=v;c=l+d;u=s+f}}return{top:l,left:s,bottom:c,right:u,width:f,height:d}}}
17
+ /**
18
+ * Checks if a side of an element is scrolled past a side of its parents
19
+ * @param {HTMLElement} el The element who's side being scrolled out of view is in question
20
+ * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')
21
+ * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')
22
+ * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element
23
+ */function isScrolledPast(e,t,n){var o=getParentAutoScrollElement(e,true),r=getRect(e)[t];while(o){var i=getRect(o)[n],a=void 0;a=n==="top"||n==="left"?r>=i:r<=i;if(!a)return o;if(o===getWindowScrollingElement())break;o=getParentAutoScrollElement(o,false)}return false}
24
+ /**
25
+ * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)
26
+ * and non-draggable elements
27
+ * @param {HTMLElement} el The parent element
28
+ * @param {Number} childNum The index of the child
29
+ * @param {Object} options Parent Sortable's options
30
+ * @return {HTMLElement} The child at index childNum, or null if not found
31
+ */function getChild(e,t,n,o){var r=0,i=0,a=e.children;while(i<a.length){if(a[i].style.display!=="none"&&a[i]!==Sortable.ghost&&(o||a[i]!==Sortable.dragged)&&closest(a[i],n.draggable,e,false)){if(r===t)return a[i];r++}i++}return null}
32
+ /**
33
+ * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)
34
+ * @param {HTMLElement} el Parent element
35
+ * @param {selector} selector Any other elements that should be ignored
36
+ * @return {HTMLElement} The last child, ignoring ghostEl
37
+ */function lastChild(e,t){var n=e.lastElementChild;while(n&&(n===Sortable.ghost||css(n,"display")==="none"||t&&!matches(n,t)))n=n.previousElementSibling;return n||null}
38
+ /**
39
+ * Returns the index of an element within its parent for a selected set of
40
+ * elements
41
+ * @param {HTMLElement} el
42
+ * @param {selector} selector
43
+ * @return {number}
44
+ */function index(e,t){var n=0;if(!e||!e.parentNode)return-1;while(e=e.previousElementSibling)e.nodeName.toUpperCase()==="TEMPLATE"||e===Sortable.clone||t&&!matches(e,t)||n++;return n}
45
+ /**
46
+ * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.
47
+ * The value is returned in real pixels.
48
+ * @param {HTMLElement} el
49
+ * @return {Array} Offsets in the format of [left, top]
50
+ */function getRelativeScrollOffset(e){var t=0,n=0,o=getWindowScrollingElement();if(e)do{var r=matrix(e),i=r.a,a=r.d;t+=e.scrollLeft*i;n+=e.scrollTop*a}while(e!==o&&(e=e.parentNode));return[t,n]}
51
+ /**
52
+ * Returns the index of the object within the given array
53
+ * @param {Array} arr Array that may or may not hold the object
54
+ * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find
55
+ * @return {Number} The index of the object in the array, or -1
56
+ */function indexOfObject(e,t){for(var n in e)if(e.hasOwnProperty(n))for(var o in t)if(t.hasOwnProperty(o)&&t[o]===e[n][o])return Number(n);return-1}function getParentAutoScrollElement(e,t){if(!e||!e.getBoundingClientRect)return getWindowScrollingElement();var n=e;var o=false;do{if(n.clientWidth<n.scrollWidth||n.clientHeight<n.scrollHeight){var r=css(n);if(n.clientWidth<n.scrollWidth&&(r.overflowX=="auto"||r.overflowX=="scroll")||n.clientHeight<n.scrollHeight&&(r.overflowY=="auto"||r.overflowY=="scroll")){if(!n.getBoundingClientRect||n===document.body)return getWindowScrollingElement();if(o||t)return n;o=true}}}while(n=n.parentNode);return getWindowScrollingElement()}function extend(e,t){if(e&&t)for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}function isRectEqual(e,t){return Math.round(e.top)===Math.round(t.top)&&Math.round(e.left)===Math.round(t.left)&&Math.round(e.height)===Math.round(t.height)&&Math.round(e.width)===Math.round(t.width)}var c;function throttle(e,t){return function(){if(!c){var n=arguments,o=this;n.length===1?e.call(o,n[0]):e.apply(o,n);c=setTimeout((function(){c=void 0}),t)}}}function cancelThrottle(){clearTimeout(c);c=void 0}function scrollBy(e,t,n){e.scrollLeft+=t;e.scrollTop+=n}function clone(e){var t=window.Polymer;var n=window.jQuery||window.Zepto;return t&&t.dom?t.dom(e).cloneNode(true):n?n(e).clone(true)[0]:e.cloneNode(true)}function setRect(e,t){css(e,"position","absolute");css(e,"top",t.top);css(e,"left",t.left);css(e,"width",t.width);css(e,"height",t.height)}function unsetRect(e){css(e,"position","");css(e,"top","");css(e,"left","");css(e,"width","");css(e,"height","")}function getChildContainingRectFromElement(e,t,n){var o={};Array.from(e.children).forEach((function(r){var i,a,l,s;if(closest(r,t.draggable,e,false)&&!r.animated&&r!==n){var c=getRect(r);o.left=Math.min((i=o.left)!==null&&i!==void 0?i:Infinity,c.left);o.top=Math.min((a=o.top)!==null&&a!==void 0?a:Infinity,c.top);o.right=Math.max((l=o.right)!==null&&l!==void 0?l:-Infinity,c.right);o.bottom=Math.max((s=o.bottom)!==null&&s!==void 0?s:-Infinity,c.bottom)}}));o.width=o.right-o.left;o.height=o.bottom-o.top;o.x=o.left;o.y=o.top;return o}var u="Sortable"+(new Date).getTime();function AnimationStateManager(){var e,t=[];return{captureAnimationState:function captureAnimationState(){t=[];if(this.options.animation){var e=[].slice.call(this.el.children);e.forEach((function(e){if(css(e,"display")!=="none"&&e!==Sortable.ghost){t.push({target:e,rect:getRect(e)});var n=_objectSpread2({},t[t.length-1].rect);if(e.thisAnimationDuration){var o=matrix(e,true);if(o){n.top-=o.f;n.left-=o.e}}e.fromRect=n}}))}},addAnimationState:function addAnimationState(e){t.push(e)},removeAnimationState:function removeAnimationState(e){t.splice(indexOfObject(t,{target:e}),1)},animateAll:function animateAll(n){var o=this;if(this.options.animation){var r=false,i=0;t.forEach((function(e){var t=0,n=e.target,a=n.fromRect,l=getRect(n),s=n.prevFromRect,c=n.prevToRect,u=e.rect,d=matrix(n,true);if(d){l.top-=d.f;l.left-=d.e}n.toRect=l;n.thisAnimationDuration&&isRectEqual(s,l)&&!isRectEqual(a,l)&&(u.top-l.top)/(u.left-l.left)===(a.top-l.top)/(a.left-l.left)&&(t=calculateRealTime(u,s,c,o.options));if(!isRectEqual(l,a)){n.prevFromRect=a;n.prevToRect=l;t||(t=o.options.animation);o.animate(n,u,l,t)}if(t){r=true;i=Math.max(i,t);clearTimeout(n.animationResetTimer);n.animationResetTimer=setTimeout((function(){n.animationTime=0;n.prevFromRect=null;n.fromRect=null;n.prevToRect=null;n.thisAnimationDuration=null}),t);n.thisAnimationDuration=t}}));clearTimeout(e);r?e=setTimeout((function(){typeof n==="function"&&n()}),i):typeof n==="function"&&n();t=[]}else{clearTimeout(e);typeof n==="function"&&n()}},animate:function animate(e,t,n,o){if(o){css(e,"transition","");css(e,"transform","");var r=matrix(this.el),i=r&&r.a,a=r&&r.d,l=(t.left-n.left)/(i||1),s=(t.top-n.top)/(a||1);e.animatingX=!!l;e.animatingY=!!s;css(e,"transform","translate3d("+l+"px,"+s+"px,0)");this.forRepaintDummy=repaint(e);css(e,"transition","transform "+o+"ms"+(this.options.easing?" "+this.options.easing:""));css(e,"transform","translate3d(0,0,0)");typeof e.animated==="number"&&clearTimeout(e.animated);e.animated=setTimeout((function(){css(e,"transition","");css(e,"transform","");e.animated=false;e.animatingX=false;e.animatingY=false}),o)}}}}function repaint(e){return e.offsetWidth}function calculateRealTime(e,t,n,o){return Math.sqrt(Math.pow(t.top-e.top,2)+Math.pow(t.left-e.left,2))/Math.sqrt(Math.pow(t.top-n.top,2)+Math.pow(t.left-n.left,2))*o.animation}var d=[];var f={initializeByDefault:true};var h={mount:function mount(e){for(var t in f)f.hasOwnProperty(t)&&!(t in e)&&(e[t]=f[t]);d.forEach((function(t){if(t.pluginName===e.pluginName)throw"Sortable: Cannot mount plugin ".concat(e.pluginName," more than once")}));d.push(e)},pluginEvent:function pluginEvent(e,t,n){var o=this;this.eventCanceled=false;n.cancel=function(){o.eventCanceled=true};var r=e+"Global";d.forEach((function(o){if(t[o.pluginName]){t[o.pluginName][r]&&t[o.pluginName][r](_objectSpread2({sortable:t},n));t.options[o.pluginName]&&t[o.pluginName][e]&&t[o.pluginName][e](_objectSpread2({sortable:t},n))}}))},initializePlugins:function initializePlugins(e,t,n,o){d.forEach((function(o){var r=o.pluginName;if(e.options[r]||o.initializeByDefault){var i=new o(e,t,e.options);i.sortable=e;i.options=e.options;e[r]=i;_extends(n,i.defaults)}}));for(var r in e.options)if(e.options.hasOwnProperty(r)){var i=this.modifyOption(e,r,e.options[r]);typeof i!=="undefined"&&(e.options[r]=i)}},getEventProperties:function getEventProperties(e,t){var n={};d.forEach((function(o){typeof o.eventProperties==="function"&&_extends(n,o.eventProperties.call(t[o.pluginName],e))}));return n},modifyOption:function modifyOption(e,t,n){var o;d.forEach((function(r){e[r.pluginName]&&r.optionListeners&&typeof r.optionListeners[t]==="function"&&(o=r.optionListeners[t].call(e[r.pluginName],n))}));return o}};function dispatchEvent(e){var o=e.sortable,r=e.rootEl,i=e.name,a=e.targetEl,l=e.cloneEl,s=e.toEl,c=e.fromEl,d=e.oldIndex,f=e.newIndex,g=e.oldDraggableIndex,p=e.newDraggableIndex,v=e.originalEvent,m=e.putSortable,b=e.extraEventProperties;o=o||r&&r[u];if(o){var S,_=o.options,y="on"+i.charAt(0).toUpperCase()+i.substr(1);if(!window.CustomEvent||t||n){S=document.createEvent("Event");S.initEvent(i,true,true)}else S=new CustomEvent(i,{bubbles:true,cancelable:true});S.to=s||r;S.from=c||r;S.item=a||r;S.clone=l;S.oldIndex=d;S.newIndex=f;S.oldDraggableIndex=g;S.newDraggableIndex=p;S.originalEvent=v;S.pullMode=m?m.lastPutMode:void 0;var E=_objectSpread2(_objectSpread2({},b),h.getEventProperties(i,o));for(var w in E)S[w]=E[w];r&&r.dispatchEvent(S);_[y]&&_[y].call(o,S)}}var g=["evt"];var p=function pluginEvent(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o=n.evt,r=_objectWithoutProperties(n,g);h.pluginEvent.bind(Sortable)(e,t,_objectSpread2({dragEl:v,parentEl:m,ghostEl:b,rootEl:S,nextEl:_,lastDownEl:y,cloneEl:E,cloneHidden:w,dragStarted:j,putSortable:O,activeSortable:Sortable.active,originalEvent:o,oldIndex:D,oldDraggableIndex:x,newIndex:C,newDraggableIndex:A,hideGhostForTarget:re,unhideGhostForTarget:ie,cloneNowHidden:function cloneNowHidden(){w=true},cloneNowShown:function cloneNowShown(){w=false},dispatchSortableEvent:function dispatchSortableEvent(e){_dispatchEvent({sortable:t,name:e,originalEvent:o})}},r))};function _dispatchEvent(e){dispatchEvent(_objectSpread2({putSortable:O,cloneEl:E,targetEl:v,rootEl:S,oldIndex:D,oldDraggableIndex:x,newIndex:C,newDraggableIndex:A},e))}var v,m,b,S,_,y,E,w,D,C,x,A,T,O,M,I,P,R,N,k,j,F,X,Y,B,W=false,H=false,L=[],K=false,G=false,z=[],U=false,q=[];var V=typeof document!=="undefined",$=i,Z=n||t?"cssFloat":"float",Q=V&&!a&&!i&&"draggable"in document.createElement("div"),J=function(){if(V){if(t)return false;var e=document.createElement("x");e.style.cssText="pointer-events:auto";return e.style.pointerEvents==="auto"}}(),ee=function _detectDirection(e,t){var n=css(e),o=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),r=getChild(e,0,t),i=getChild(e,1,t),a=r&&css(r),l=i&&css(i),s=a&&parseInt(a.marginLeft)+parseInt(a.marginRight)+getRect(r).width,c=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+getRect(i).width;if(n.display==="flex")return n.flexDirection==="column"||n.flexDirection==="column-reverse"?"vertical":"horizontal";if(n.display==="grid")return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(r&&a.float&&a.float!=="none"){var u=a.float==="left"?"left":"right";return!i||l.clear!=="both"&&l.clear!==u?"horizontal":"vertical"}return r&&(a.display==="block"||a.display==="flex"||a.display==="table"||a.display==="grid"||s>=o&&n[Z]==="none"||i&&n[Z]==="none"&&s+c>o)?"vertical":"horizontal"},te=function _dragElInRowColumn(e,t,n){var o=n?e.left:e.top,r=n?e.right:e.bottom,i=n?e.width:e.height,a=n?t.left:t.top,l=n?t.right:t.bottom,s=n?t.width:t.height;return o===a||r===l||o+i/2===a+s/2},
57
+ /**
58
+ * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.
59
+ * @param {Number} x X position
60
+ * @param {Number} y Y position
61
+ * @return {HTMLElement} Element of the first found nearest Sortable
62
+ */
63
+ ne=function _detectNearestEmptySortable(e,t){var n;L.some((function(o){var r=o[u].options.emptyInsertThreshold;if(r&&!lastChild(o)){var i=getRect(o),a=e>=i.left-r&&e<=i.right+r,l=t>=i.top-r&&t<=i.bottom+r;return a&&l?n=o:void 0}}));return n},oe=function _prepareGroup(e){function toFn(e,t){return function(n,o,r,i){var a=n.options.group.name&&o.options.group.name&&n.options.group.name===o.options.group.name;if(e==null&&(t||a))return true;if(e==null||e===false)return false;if(t&&e==="clone")return e;if(typeof e==="function")return toFn(e(n,o,r,i),t)(n,o,r,i);var l=(t?n:o).options.group.name;return e===true||typeof e==="string"&&e===l||e.join&&e.indexOf(l)>-1}}var t={};var n=e.group;n&&_typeof(n)=="object"||(n={name:n});t.name=n.name;t.checkPull=toFn(n.pull,true);t.checkPut=toFn(n.put);t.revertClone=n.revertClone;e.group=t},re=function _hideGhostForTarget(){!J&&b&&css(b,"display","none")},ie=function _unhideGhostForTarget(){!J&&b&&css(b,"display","")};V&&!a&&document.addEventListener("click",(function(e){if(H){e.preventDefault();e.stopPropagation&&e.stopPropagation();e.stopImmediatePropagation&&e.stopImmediatePropagation();H=false;return false}}),true);var ae=function nearestEmptyInsertDetectEvent(e){if(v){e=e.touches?e.touches[0]:e;var t=ne(e.clientX,e.clientY);if(t){var n={};for(var o in e)e.hasOwnProperty(o)&&(n[o]=e[o]);n.target=n.rootEl=t;n.preventDefault=void 0;n.stopPropagation=void 0;t[u]._onDragOver(n)}}};var le=function _checkOutsideTargetEl(e){v&&v.parentNode[u]._isOutsideThisEl(e.target)};
64
+ /**
65
+ * @class Sortable
66
+ * @param {HTMLElement} el
67
+ * @param {Object} [options]
68
+ */function Sortable(e,t){if(!(e&&e.nodeType&&e.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e;this.options=t=_extends({},t);e[u]=this;var n={group:null,sort:true,disabled:false,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:false,invertedSwapThreshold:null,removeCloneOnHide:true,direction:function direction(){return ee(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:true,animation:0,easing:null,setData:function setData(e,t){e.setData("Text",t.textContent)},dropBubble:false,dragoverBubble:false,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:false,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:false,fallbackClass:"sortable-fallback",fallbackOnBody:false,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:Sortable.supportPointer!==false&&"PointerEvent"in window&&!r,emptyInsertThreshold:5};h.initializePlugins(this,e,n);for(var o in n)!(o in t)&&(t[o]=n[o]);oe(t);for(var i in this)i.charAt(0)==="_"&&typeof this[i]==="function"&&(this[i]=this[i].bind(this));this.nativeDraggable=!t.forceFallback&&Q;this.nativeDraggable&&(this.options.touchStartThreshold=1);if(t.supportPointer)on(e,"pointerdown",this._onTapStart);else{on(e,"mousedown",this._onTapStart);on(e,"touchstart",this._onTapStart)}if(this.nativeDraggable){on(e,"dragover",this);on(e,"dragenter",this)}L.push(this.el);t.store&&t.store.get&&this.sort(t.store.get(this)||[]);_extends(this,AnimationStateManager())}Sortable.prototype={constructor:Sortable,_isOutsideThisEl:function _isOutsideThisEl(e){this.el.contains(e)||e===this.el||(F=null)},_getDirection:function _getDirection(e,t){return typeof this.options.direction==="function"?this.options.direction.call(this,e,t,v):this.options.direction},_onTapStart:function _onTapStart(e){if(e.cancelable){var t=this,n=this.el,o=this.options,i=o.preventOnFilter,a=e.type,l=e.touches&&e.touches[0]||e.pointerType&&e.pointerType==="touch"&&e,s=(l||e).target,c=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||s,u=o.filter;_saveInputCheckedState(n);if(!v&&!(/mousedown|pointerdown/.test(a)&&e.button!==0||o.disabled)&&!c.isContentEditable&&(this.nativeDraggable||!r||!s||s.tagName.toUpperCase()!=="SELECT")){s=closest(s,o.draggable,n,false);if((!s||!s.animated)&&y!==s){D=index(s);x=index(s,o.draggable);if(typeof u==="function"){if(u.call(this,e,s,this)){_dispatchEvent({sortable:t,rootEl:c,name:"filter",targetEl:s,toEl:n,fromEl:n});p("filter",t,{evt:e});i&&e.cancelable&&e.preventDefault();return}}else if(u){u=u.split(",").some((function(o){o=closest(c,o.trim(),n,false);if(o){_dispatchEvent({sortable:t,rootEl:o,name:"filter",targetEl:s,fromEl:n,toEl:n});p("filter",t,{evt:e});return true}}));if(u){i&&e.cancelable&&e.preventDefault();return}}o.handle&&!closest(c,o.handle,n,false)||this._prepareDragStart(e,l,s)}}}},_prepareDragStart:function _prepareDragStart(e,r,i){var a,l=this,s=l.el,c=l.options,u=s.ownerDocument;if(i&&!v&&i.parentNode===s){var d=getRect(i);S=s;v=i;m=v.parentNode;_=v.nextSibling;y=i;T=c.group;Sortable.dragged=v;M={target:v,clientX:(r||e).clientX,clientY:(r||e).clientY};N=M.clientX-d.left;k=M.clientY-d.top;this._lastX=(r||e).clientX;this._lastY=(r||e).clientY;v.style["will-change"]="all";a=function dragStartFn(){p("delayEnded",l,{evt:e});if(Sortable.eventCanceled)l._onDrop();else{l._disableDelayedDragEvents();!o&&l.nativeDraggable&&(v.draggable=true);l._triggerDragStart(e,r);_dispatchEvent({sortable:l,name:"choose",originalEvent:e});toggleClass(v,c.chosenClass,true)}};c.ignore.split(",").forEach((function(e){find(v,e.trim(),_disableDraggable)}));on(u,"dragover",ae);on(u,"mousemove",ae);on(u,"touchmove",ae);on(u,"mouseup",l._onDrop);on(u,"touchend",l._onDrop);on(u,"touchcancel",l._onDrop);if(o&&this.nativeDraggable){this.options.touchStartThreshold=4;v.draggable=true}p("delayStart",this,{evt:e});if(!c.delay||c.delayOnTouchOnly&&!r||this.nativeDraggable&&(n||t))a();else{if(Sortable.eventCanceled){this._onDrop();return}on(u,"mouseup",l._disableDelayedDrag);on(u,"touchend",l._disableDelayedDrag);on(u,"touchcancel",l._disableDelayedDrag);on(u,"mousemove",l._delayedDragTouchMoveHandler);on(u,"touchmove",l._delayedDragTouchMoveHandler);c.supportPointer&&on(u,"pointermove",l._delayedDragTouchMoveHandler);l._dragStartTimer=setTimeout(a,c.delay)}}},_delayedDragTouchMoveHandler:function _delayedDragTouchMoveHandler(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function _disableDelayedDrag(){v&&_disableDraggable(v);clearTimeout(this._dragStartTimer);this._disableDelayedDragEvents()},_disableDelayedDragEvents:function _disableDelayedDragEvents(){var e=this.el.ownerDocument;off(e,"mouseup",this._disableDelayedDrag);off(e,"touchend",this._disableDelayedDrag);off(e,"touchcancel",this._disableDelayedDrag);off(e,"mousemove",this._delayedDragTouchMoveHandler);off(e,"touchmove",this._delayedDragTouchMoveHandler);off(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function _triggerDragStart(e,t){t=t||e.pointerType=="touch"&&e;if(!this.nativeDraggable||t)this.options.supportPointer?on(document,"pointermove",this._onTouchMove):on(document,t?"touchmove":"mousemove",this._onTouchMove);else{on(v,"dragend",this);on(S,"dragstart",this._onDragStart)}try{document.selection?_nextTick((function(){document.selection.empty()})):window.getSelection().removeAllRanges()}catch(e){}},_dragStarted:function _dragStarted(e,t){W=false;if(S&&v){p("dragStarted",this,{evt:t});this.nativeDraggable&&on(document,"dragover",le);var n=this.options;!e&&toggleClass(v,n.dragClass,false);toggleClass(v,n.ghostClass,true);Sortable.active=this;e&&this._appendGhost();_dispatchEvent({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function _emulateDragOver(){if(I){this._lastX=I.clientX;this._lastY=I.clientY;re();var e=document.elementFromPoint(I.clientX,I.clientY);var t=e;while(e&&e.shadowRoot){e=e.shadowRoot.elementFromPoint(I.clientX,I.clientY);if(e===t)break;t=e}v.parentNode[u]._isOutsideThisEl(e);if(t)do{if(t[u]){var n=void 0;n=t[u]._onDragOver({clientX:I.clientX,clientY:I.clientY,target:e,rootEl:t});if(n&&!this.options.dragoverBubble)break}e=t}while(t=t.parentNode);ie()}},_onTouchMove:function _onTouchMove(e){if(M){var t=this.options,n=t.fallbackTolerance,o=t.fallbackOffset,r=e.touches?e.touches[0]:e,i=b&&matrix(b,true),a=b&&i&&i.a,l=b&&i&&i.d,s=$&&B&&getRelativeScrollOffset(B),c=(r.clientX-M.clientX+o.x)/(a||1)+(s?s[0]-z[0]:0)/(a||1),u=(r.clientY-M.clientY+o.y)/(l||1)+(s?s[1]-z[1]:0)/(l||1);if(!Sortable.active&&!W){if(n&&Math.max(Math.abs(r.clientX-this._lastX),Math.abs(r.clientY-this._lastY))<n)return;this._onDragStart(e,true)}if(b){if(i){i.e+=c-(P||0);i.f+=u-(R||0)}else i={a:1,b:0,c:0,d:1,e:c,f:u};var d="matrix(".concat(i.a,",").concat(i.b,",").concat(i.c,",").concat(i.d,",").concat(i.e,",").concat(i.f,")");css(b,"webkitTransform",d);css(b,"mozTransform",d);css(b,"msTransform",d);css(b,"transform",d);P=c;R=u;I=r}e.cancelable&&e.preventDefault()}},_appendGhost:function _appendGhost(){if(!b){var e=this.options.fallbackOnBody?document.body:S,t=getRect(v,true,$,true,e),n=this.options;if($){B=e;while(css(B,"position")==="static"&&css(B,"transform")==="none"&&B!==document)B=B.parentNode;if(B!==document.body&&B!==document.documentElement){B===document&&(B=getWindowScrollingElement());t.top+=B.scrollTop;t.left+=B.scrollLeft}else B=getWindowScrollingElement();z=getRelativeScrollOffset(B)}b=v.cloneNode(true);toggleClass(b,n.ghostClass,false);toggleClass(b,n.fallbackClass,true);toggleClass(b,n.dragClass,true);css(b,"transition","");css(b,"transform","");css(b,"box-sizing","border-box");css(b,"margin",0);css(b,"top",t.top);css(b,"left",t.left);css(b,"width",t.width);css(b,"height",t.height);css(b,"opacity","0.8");css(b,"position",$?"absolute":"fixed");css(b,"zIndex","100000");css(b,"pointerEvents","none");Sortable.ghost=b;e.appendChild(b);css(b,"transform-origin",N/parseInt(b.style.width)*100+"% "+k/parseInt(b.style.height)*100+"%")}},_onDragStart:function _onDragStart(e,t){var n=this;var o=e.dataTransfer;var i=n.options;p("dragStart",this,{evt:e});if(Sortable.eventCanceled)this._onDrop();else{p("setupClone",this);if(!Sortable.eventCanceled){E=clone(v);E.removeAttribute("id");E.draggable=false;E.style["will-change"]="";this._hideClone();toggleClass(E,this.options.chosenClass,false);Sortable.clone=E}n.cloneId=_nextTick((function(){p("clone",n);if(!Sortable.eventCanceled){n.options.removeCloneOnHide||S.insertBefore(E,v);n._hideClone();_dispatchEvent({sortable:n,name:"clone"})}}));!t&&toggleClass(v,i.dragClass,true);if(t){H=true;n._loopId=setInterval(n._emulateDragOver,50)}else{off(document,"mouseup",n._onDrop);off(document,"touchend",n._onDrop);off(document,"touchcancel",n._onDrop);if(o){o.effectAllowed="move";i.setData&&i.setData.call(n,o,v)}on(document,"drop",n);css(v,"transform","translateZ(0)")}W=true;n._dragStartId=_nextTick(n._dragStarted.bind(n,t,e));on(document,"selectstart",n);j=true;r&&css(document.body,"user-select","none")}},_onDragOver:function _onDragOver(e){var t,n,o,r,i=this.el,a=e.target,l=this.options,s=l.group,c=Sortable.active,d=T===s,f=l.sort,h=O||c,g=this,y=false;if(!U){e.preventDefault!==void 0&&e.cancelable&&e.preventDefault();a=closest(a,l.draggable,i,true);dragOverEvent("dragOver");if(Sortable.eventCanceled)return y;if(v.contains(e.target)||a.animated&&a.animatingX&&a.animatingY||g._ignoreWhileAnimating===a)return completed(false);H=false;if(c&&!l.disabled&&(d?f||(o=m!==S):O===this||(this.lastPutMode=T.checkPull(this,c,v,e))&&s.checkPut(this,c,v,e))){r=this._getDirection(e,a)==="vertical";t=getRect(v);dragOverEvent("dragOverValid");if(Sortable.eventCanceled)return y;if(o){m=S;capture();this._hideClone();dragOverEvent("revert");Sortable.eventCanceled||(_?S.insertBefore(v,_):S.appendChild(v));return completed(true)}var E=lastChild(i,l.draggable);if(!E||_ghostIsLast(e,r,this)&&!E.animated){if(E===v)return completed(false);E&&i===e.target&&(a=E);a&&(n=getRect(a));if(_onMove(S,i,v,t,a,n,e,!!a)!==false){capture();E&&E.nextSibling?i.insertBefore(v,E.nextSibling):i.appendChild(v);m=i;changed();return completed(true)}}else if(E&&_ghostIsFirst(e,r,this)){var w=getChild(i,0,l,true);if(w===v)return completed(false);a=w;n=getRect(a);if(_onMove(S,i,v,t,a,n,e,false)!==false){capture();i.insertBefore(v,w);m=i;changed();return completed(true)}}else if(a.parentNode===i){n=getRect(a);var D,x=0,M=v.parentNode!==i,I=!te(v.animated&&v.toRect||t,a.animated&&a.toRect||n,r),P=r?"top":"left",R=isScrolledPast(a,"top","top")||isScrolledPast(v,"top","top"),N=R?R.scrollTop:void 0;if(F!==a){D=n[P];K=false;G=!I&&l.invertSwap||M}x=_getSwapDirection(e,a,n,r,I?1:l.swapThreshold,l.invertedSwapThreshold==null?l.swapThreshold:l.invertedSwapThreshold,G,F===a);var k;if(x!==0){var j=index(v);do{j-=x;k=m.children[j]}while(k&&(css(k,"display")==="none"||k===b))}if(x===0||k===a)return completed(false);F=a;X=x;var B=a.nextElementSibling,W=false;W=x===1;var L=_onMove(S,i,v,t,a,n,e,W);if(L!==false){L!==1&&L!==-1||(W=L===1);U=true;setTimeout(_unsilent,30);capture();W&&!B?i.appendChild(v):a.parentNode.insertBefore(v,W?B:a);R&&scrollBy(R,0,N-R.scrollTop);m=v.parentNode;D===void 0||G||(Y=Math.abs(D-getRect(a)[P]));changed();return completed(true)}}if(i.contains(v))return completed(false)}return false}function dragOverEvent(l,s){p(l,g,_objectSpread2({evt:e,isOwner:d,axis:r?"vertical":"horizontal",revert:o,dragRect:t,targetRect:n,canSort:f,fromSortable:h,target:a,completed:completed,onMove:function onMove(n,o){return _onMove(S,i,v,t,n,getRect(n),e,o)},changed:changed},s))}function capture(){dragOverEvent("dragOverAnimationCapture");g.captureAnimationState();g!==h&&h.captureAnimationState()}function completed(t){dragOverEvent("dragOverCompleted",{insertion:t});if(t){d?c._hideClone():c._showClone(g);if(g!==h){toggleClass(v,O?O.options.ghostClass:c.options.ghostClass,false);toggleClass(v,l.ghostClass,true)}O!==g&&g!==Sortable.active?O=g:g===Sortable.active&&O&&(O=null);h===g&&(g._ignoreWhileAnimating=a);g.animateAll((function(){dragOverEvent("dragOverAnimationComplete");g._ignoreWhileAnimating=null}));if(g!==h){h.animateAll();h._ignoreWhileAnimating=null}}(a===v&&!v.animated||a===i&&!a.animated)&&(F=null);if(!l.dragoverBubble&&!e.rootEl&&a!==document){v.parentNode[u]._isOutsideThisEl(e.target);!t&&ae(e)}!l.dragoverBubble&&e.stopPropagation&&e.stopPropagation();return y=true}function changed(){C=index(v);A=index(v,l.draggable);_dispatchEvent({sortable:g,name:"change",toEl:i,newIndex:C,newDraggableIndex:A,originalEvent:e})}},_ignoreWhileAnimating:null,_offMoveEvents:function _offMoveEvents(){off(document,"mousemove",this._onTouchMove);off(document,"touchmove",this._onTouchMove);off(document,"pointermove",this._onTouchMove);off(document,"dragover",ae);off(document,"mousemove",ae);off(document,"touchmove",ae)},_offUpEvents:function _offUpEvents(){var e=this.el.ownerDocument;off(e,"mouseup",this._onDrop);off(e,"touchend",this._onDrop);off(e,"pointerup",this._onDrop);off(e,"touchcancel",this._onDrop);off(document,"selectstart",this)},_onDrop:function _onDrop(e){var t=this.el,n=this.options;C=index(v);A=index(v,n.draggable);p("drop",this,{evt:e});m=v&&v.parentNode;C=index(v);A=index(v,n.draggable);if(Sortable.eventCanceled)this._nulling();else{W=false;G=false;K=false;clearInterval(this._loopId);clearTimeout(this._dragStartTimer);_cancelNextTick(this.cloneId);_cancelNextTick(this._dragStartId);if(this.nativeDraggable){off(document,"drop",this);off(t,"dragstart",this._onDragStart)}this._offMoveEvents();this._offUpEvents();r&&css(document.body,"user-select","");css(v,"transform","");if(e){if(j){e.cancelable&&e.preventDefault();!n.dropBubble&&e.stopPropagation()}b&&b.parentNode&&b.parentNode.removeChild(b);(S===m||O&&O.lastPutMode!=="clone")&&E&&E.parentNode&&E.parentNode.removeChild(E);if(v){this.nativeDraggable&&off(v,"dragend",this);_disableDraggable(v);v.style["will-change"]="";j&&!W&&toggleClass(v,O?O.options.ghostClass:this.options.ghostClass,false);toggleClass(v,this.options.chosenClass,false);_dispatchEvent({sortable:this,name:"unchoose",toEl:m,newIndex:null,newDraggableIndex:null,originalEvent:e});if(S!==m){if(C>=0){_dispatchEvent({rootEl:m,name:"add",toEl:m,fromEl:S,originalEvent:e});_dispatchEvent({sortable:this,name:"remove",toEl:m,originalEvent:e});_dispatchEvent({rootEl:m,name:"sort",toEl:m,fromEl:S,originalEvent:e});_dispatchEvent({sortable:this,name:"sort",toEl:m,originalEvent:e})}O&&O.save()}else if(C!==D&&C>=0){_dispatchEvent({sortable:this,name:"update",toEl:m,originalEvent:e});_dispatchEvent({sortable:this,name:"sort",toEl:m,originalEvent:e})}if(Sortable.active){if(C==null||C===-1){C=D;A=x}_dispatchEvent({sortable:this,name:"end",toEl:m,originalEvent:e});this.save()}}}this._nulling()}},_nulling:function _nulling(){p("nulling",this);S=v=m=b=_=E=y=w=M=I=j=C=A=D=x=F=X=O=T=Sortable.dragged=Sortable.ghost=Sortable.clone=Sortable.active=null;q.forEach((function(e){e.checked=true}));q.length=P=R=0},handleEvent:function handleEvent(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":if(v){this._onDragOver(e);_globalDragOver(e)}break;case"selectstart":e.preventDefault();break}},
69
+ /**
70
+ * Serializes the item into an array of string.
71
+ * @returns {String[]}
72
+ */
73
+ toArray:function toArray(){var e,t=[],n=this.el.children,o=0,r=n.length,i=this.options;for(;o<r;o++){e=n[o];closest(e,i.draggable,this.el,false)&&t.push(e.getAttribute(i.dataIdAttr)||_generateId(e))}return t},
74
+ /**
75
+ * Sorts the elements according to the array.
76
+ * @param {String[]} order order of the items
77
+ */
78
+ sort:function sort(e,t){var n={},o=this.el;this.toArray().forEach((function(e,t){var r=o.children[t];closest(r,this.options.draggable,o,false)&&(n[e]=r)}),this);t&&this.captureAnimationState();e.forEach((function(e){if(n[e]){o.removeChild(n[e]);o.appendChild(n[e])}}));t&&this.animateAll()},save:function save(){var e=this.options.store;e&&e.set&&e.set(this)},
79
+ /**
80
+ * 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.
81
+ * @param {HTMLElement} el
82
+ * @param {String} [selector] default: `options.draggable`
83
+ * @returns {HTMLElement|null}
84
+ */
85
+ closest:function closest$1(e,t){return closest(e,t||this.options.draggable,this.el,false)},
86
+ /**
87
+ * Set/get option
88
+ * @param {string} name
89
+ * @param {*} [value]
90
+ * @returns {*}
91
+ */
92
+ option:function option(e,t){var n=this.options;if(t===void 0)return n[e];var o=h.modifyOption(this,e,t);n[e]=typeof o!=="undefined"?o:t;e==="group"&&oe(n)},destroy:function destroy(){p("destroy",this);var e=this.el;e[u]=null;off(e,"mousedown",this._onTapStart);off(e,"touchstart",this._onTapStart);off(e,"pointerdown",this._onTapStart);if(this.nativeDraggable){off(e,"dragover",this);off(e,"dragenter",this)}Array.prototype.forEach.call(e.querySelectorAll("[draggable]"),(function(e){e.removeAttribute("draggable")}));this._onDrop();this._disableDelayedDragEvents();L.splice(L.indexOf(this.el),1);this.el=e=null},_hideClone:function _hideClone(){if(!w){p("hideClone",this);if(Sortable.eventCanceled)return;css(E,"display","none");this.options.removeCloneOnHide&&E.parentNode&&E.parentNode.removeChild(E);w=true}},_showClone:function _showClone(e){if(e.lastPutMode==="clone"){if(w){p("showClone",this);if(Sortable.eventCanceled)return;v.parentNode!=S||this.options.group.revertClone?_?S.insertBefore(E,_):S.appendChild(E):S.insertBefore(E,v);this.options.group.revertClone&&this.animate(v,E);css(E,"display","");w=false}}else this._hideClone()}};function _globalDragOver(e){e.dataTransfer&&(e.dataTransfer.dropEffect="move");e.cancelable&&e.preventDefault()}function _onMove(e,o,r,i,a,l,s,c){var d,f,h=e[u],g=h.options.onMove;if(!window.CustomEvent||t||n){d=document.createEvent("Event");d.initEvent("move",true,true)}else d=new CustomEvent("move",{bubbles:true,cancelable:true});d.to=o;d.from=e;d.dragged=r;d.draggedRect=i;d.related=a||o;d.relatedRect=l||getRect(o);d.willInsertAfter=c;d.originalEvent=s;e.dispatchEvent(d);g&&(f=g.call(h,d,s));return f}function _disableDraggable(e){e.draggable=false}function _unsilent(){U=false}function _ghostIsFirst(e,t,n){var o=getRect(getChild(n.el,0,n.options,true));var r=getChildContainingRectFromElement(n.el,n.options,b);var i=10;return t?e.clientX<r.left-i||e.clientY<o.top&&e.clientX<o.right:e.clientY<r.top-i||e.clientY<o.bottom&&e.clientX<o.left}function _ghostIsLast(e,t,n){var o=getRect(lastChild(n.el,n.options.draggable));var r=getChildContainingRectFromElement(n.el,n.options,b);var i=10;return t?e.clientX>r.right+i||e.clientY>o.bottom&&e.clientX>o.left:e.clientY>r.bottom+i||e.clientX>o.right&&e.clientY>o.top}function _getSwapDirection(e,t,n,o,r,i,a,l){var s=o?e.clientY:e.clientX,c=o?n.height:n.width,u=o?n.top:n.left,d=o?n.bottom:n.right,f=false;if(!a)if(l&&Y<c*r){!K&&(X===1?s>u+c*i/2:s<d-c*i/2)&&(K=true);if(K)f=true;else if(X===1?s<u+Y:s>d-Y)return-X}else if(s>u+c*(1-r)/2&&s<d-c*(1-r)/2)return _getInsertDirection(t);f=f||a;return f&&(s<u+c*i/2||s>d-c*i/2)?s>u+c/2?1:-1:0}
93
+ /**
94
+ * Gets the direction dragEl must be swapped relative to target in order to make it
95
+ * seem that dragEl has been "inserted" into that element's position
96
+ * @param {HTMLElement} target The target whose position dragEl is being inserted at
97
+ * @return {Number} Direction dragEl must be swapped
98
+ */function _getInsertDirection(e){return index(v)<index(e)?1:-1}
99
+ /**
100
+ * Generate id
101
+ * @param {HTMLElement} el
102
+ * @returns {String}
103
+ * @private
104
+ */function _generateId(e){var t=e.tagName+e.className+e.src+e.href+e.textContent,n=t.length,o=0;while(n--)o+=t.charCodeAt(n);return o.toString(36)}function _saveInputCheckedState(e){q.length=0;var t=e.getElementsByTagName("input");var n=t.length;while(n--){var o=t[n];o.checked&&q.push(o)}}function _nextTick(e){return setTimeout(e,0)}function _cancelNextTick(e){return clearTimeout(e)}V&&on(document,"touchmove",(function(e){(Sortable.active||W)&&e.cancelable&&e.preventDefault()}));Sortable.utils={on:on,off:off,css:css,find:find,is:function is(e,t){return!!closest(e,t,e,false)},extend:extend,throttle:throttle,closest:closest,toggleClass:toggleClass,clone:clone,index:index,nextTick:_nextTick,cancelNextTick:_cancelNextTick,detectDirection:ee,getChild:getChild};
105
+ /**
106
+ * Get the Sortable instance of an element
107
+ * @param {HTMLElement} element The element
108
+ * @return {Sortable|undefined} The instance of Sortable
109
+ */Sortable.get=function(e){return e[u]};
110
+ /**
111
+ * Mount a plugin to Sortable
112
+ * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted
113
+ */Sortable.mount=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];t[0].constructor===Array&&(t=t[0]);t.forEach((function(e){if(!e.prototype||!e.prototype.constructor)throw"Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(e));e.utils&&(Sortable.utils=_objectSpread2(_objectSpread2({},Sortable.utils),e.utils));h.mount(e)}))};
114
+ /**
115
+ * Create sortable instance
116
+ * @param {HTMLElement} el
117
+ * @param {Object} [options]
118
+ */Sortable.create=function(e,t){return new Sortable(e,t)};Sortable.version=e;var se,ce,ue,de,fe,he,ge=[],pe=false;function AutoScrollPlugin(){function AutoScroll(){this.defaults={scroll:true,forceAutoScrollFallback:false,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:true};for(var e in this)e.charAt(0)==="_"&&typeof this[e]==="function"&&(this[e]=this[e].bind(this))}AutoScroll.prototype={dragStarted:function dragStarted(e){var t=e.originalEvent;this.sortable.nativeDraggable?on(document,"dragover",this._handleAutoScroll):this.options.supportPointer?on(document,"pointermove",this._handleFallbackAutoScroll):t.touches?on(document,"touchmove",this._handleFallbackAutoScroll):on(document,"mousemove",this._handleFallbackAutoScroll)},dragOverCompleted:function dragOverCompleted(e){var t=e.originalEvent;this.options.dragOverBubble||t.rootEl||this._handleAutoScroll(t)},drop:function drop(){if(this.sortable.nativeDraggable)off(document,"dragover",this._handleAutoScroll);else{off(document,"pointermove",this._handleFallbackAutoScroll);off(document,"touchmove",this._handleFallbackAutoScroll);off(document,"mousemove",this._handleFallbackAutoScroll)}clearPointerElemChangedInterval();clearAutoScrolls();cancelThrottle()},nulling:function nulling(){fe=ce=se=pe=he=ue=de=null;ge.length=0},_handleFallbackAutoScroll:function _handleFallbackAutoScroll(e){this._handleAutoScroll(e,true)},_handleAutoScroll:function _handleAutoScroll(e,o){var i=this;var a=(e.touches?e.touches[0]:e).clientX,l=(e.touches?e.touches[0]:e).clientY,s=document.elementFromPoint(a,l);fe=e;if(o||this.options.forceAutoScrollFallback||n||t||r){ve(e,this.options,s,o);var c=getParentAutoScrollElement(s,true);if(pe&&(!he||a!==ue||l!==de)){he&&clearPointerElemChangedInterval();he=setInterval((function(){var t=getParentAutoScrollElement(document.elementFromPoint(a,l),true);if(t!==c){c=t;clearAutoScrolls()}ve(e,i.options,t,o)}),10);ue=a;de=l}}else{if(!this.options.bubbleScroll||getParentAutoScrollElement(s,true)===getWindowScrollingElement()){clearAutoScrolls();return}ve(e,this.options,getParentAutoScrollElement(s,false),false)}}};return _extends(AutoScroll,{pluginName:"scroll",initializeByDefault:true})}function clearAutoScrolls(){ge.forEach((function(e){clearInterval(e.pid)}));ge=[]}function clearPointerElemChangedInterval(){clearInterval(he)}var ve=throttle((function(e,t,n,o){if(t.scroll){var r=(e.touches?e.touches[0]:e).clientX,i=(e.touches?e.touches[0]:e).clientY,a=t.scrollSensitivity,l=t.scrollSpeed,s=getWindowScrollingElement();var c,d=false;if(ce!==n){ce=n;clearAutoScrolls();se=t.scroll;c=t.scrollFn;se===true&&(se=getParentAutoScrollElement(n,true))}var f=0;var h=se;do{var g=h,p=getRect(g),v=p.top,m=p.bottom,b=p.left,S=p.right,_=p.width,y=p.height,E=void 0,w=void 0,D=g.scrollWidth,C=g.scrollHeight,x=css(g),A=g.scrollLeft,T=g.scrollTop;if(g===s){E=_<D&&(x.overflowX==="auto"||x.overflowX==="scroll"||x.overflowX==="visible");w=y<C&&(x.overflowY==="auto"||x.overflowY==="scroll"||x.overflowY==="visible")}else{E=_<D&&(x.overflowX==="auto"||x.overflowX==="scroll");w=y<C&&(x.overflowY==="auto"||x.overflowY==="scroll")}var O=E&&(Math.abs(S-r)<=a&&A+_<D)-(Math.abs(b-r)<=a&&!!A);var M=w&&(Math.abs(m-i)<=a&&T+y<C)-(Math.abs(v-i)<=a&&!!T);if(!ge[f])for(var I=0;I<=f;I++)ge[I]||(ge[I]={});if(ge[f].vx!=O||ge[f].vy!=M||ge[f].el!==g){ge[f].el=g;ge[f].vx=O;ge[f].vy=M;clearInterval(ge[f].pid);if(O!=0||M!=0){d=true;ge[f].pid=setInterval(function(){o&&this.layer===0&&Sortable.active._onTouchMove(fe);var t=ge[this.layer].vy?ge[this.layer].vy*l:0;var n=ge[this.layer].vx?ge[this.layer].vx*l:0;typeof c==="function"&&c.call(Sortable.dragged.parentNode[u],n,t,e,fe,ge[this.layer].el)!=="continue"||scrollBy(ge[this.layer].el,n,t)}.bind({layer:f}),24)}}f++}while(t.bubbleScroll&&h!==s&&(h=getParentAutoScrollElement(h,false)));pe=d}}),30);var me=function drop(e){var t=e.originalEvent,n=e.putSortable,o=e.dragEl,r=e.activeSortable,i=e.dispatchSortableEvent,a=e.hideGhostForTarget,l=e.unhideGhostForTarget;if(t){var s=n||r;a();var c=t.changedTouches&&t.changedTouches.length?t.changedTouches[0]:t;var u=document.elementFromPoint(c.clientX,c.clientY);l();if(s&&!s.el.contains(u)){i("spill");this.onSpill({dragEl:o,putSortable:n})}}};function Revert(){}Revert.prototype={startIndex:null,dragStart:function dragStart(e){var t=e.oldDraggableIndex;this.startIndex=t},onSpill:function onSpill(e){var t=e.dragEl,n=e.putSortable;this.sortable.captureAnimationState();n&&n.captureAnimationState();var o=getChild(this.sortable.el,this.startIndex,this.options);o?this.sortable.el.insertBefore(t,o):this.sortable.el.appendChild(t);this.sortable.animateAll();n&&n.animateAll()},drop:me};_extends(Revert,{pluginName:"revertOnSpill"});function Remove(){}Remove.prototype={onSpill:function onSpill(e){var t=e.dragEl,n=e.putSortable;var o=n||this.sortable;o.captureAnimationState();t.parentNode&&t.parentNode.removeChild(t);o.animateAll()},drop:me};_extends(Remove,{pluginName:"removeOnSpill"});var be;function SwapPlugin(){function Swap(){this.defaults={swapClass:"sortable-swap-highlight"}}Swap.prototype={dragStart:function dragStart(e){var t=e.dragEl;be=t},dragOverValid:function dragOverValid(e){var t=e.completed,n=e.target,o=e.onMove,r=e.activeSortable,i=e.changed,a=e.cancel;if(r.options.swap){var l=this.sortable.el,s=this.options;if(n&&n!==l){var c=be;if(o(n)!==false){toggleClass(n,s.swapClass,true);be=n}else be=null;c&&c!==be&&toggleClass(c,s.swapClass,false)}i();t(true);a()}},drop:function drop(e){var t=e.activeSortable,n=e.putSortable,o=e.dragEl;var r=n||this.sortable;var i=this.options;be&&toggleClass(be,i.swapClass,false);if(be&&(i.swap||n&&n.options.swap)&&o!==be){r.captureAnimationState();r!==t&&t.captureAnimationState();swapNodes(o,be);r.animateAll();r!==t&&t.animateAll()}},nulling:function nulling(){be=null}};return _extends(Swap,{pluginName:"swap",eventProperties:function eventProperties(){return{swapItem:be}}})}function swapNodes(e,t){var n,o,r=e.parentNode,i=t.parentNode;if(r&&i&&!r.isEqualNode(t)&&!i.isEqualNode(e)){n=index(e);o=index(t);r.isEqualNode(i)&&n<o&&o++;r.insertBefore(t,r.children[n]);i.insertBefore(e,i.children[o])}}var Se,_e,ye,Ee,we,De=[],Ce=[],xe=false,Ae=false,Te=false;function MultiDragPlugin(){function MultiDrag(e){for(var t in this)t.charAt(0)==="_"&&typeof this[t]==="function"&&(this[t]=this[t].bind(this));if(!e.options.avoidImplicitDeselect)if(e.options.supportPointer)on(document,"pointerup",this._deselectMultiDrag);else{on(document,"mouseup",this._deselectMultiDrag);on(document,"touchend",this._deselectMultiDrag)}on(document,"keydown",this._checkKeyDown);on(document,"keyup",this._checkKeyUp);this.defaults={selectedClass:"sortable-selected",multiDragKey:null,avoidImplicitDeselect:false,setData:function setData(t,n){var o="";De.length&&_e===e?De.forEach((function(e,t){o+=(t?", ":"")+e.textContent})):o=n.textContent;t.setData("Text",o)}}}MultiDrag.prototype={multiDragKeyDown:false,isMultiDrag:false,delayStartGlobal:function delayStartGlobal(e){var t=e.dragEl;ye=t},delayEnded:function delayEnded(){this.isMultiDrag=~De.indexOf(ye)},setupClone:function setupClone(e){var t=e.sortable,n=e.cancel;if(this.isMultiDrag){for(var o=0;o<De.length;o++){Ce.push(clone(De[o]));Ce[o].sortableIndex=De[o].sortableIndex;Ce[o].draggable=false;Ce[o].style["will-change"]="";toggleClass(Ce[o],this.options.selectedClass,false);De[o]===ye&&toggleClass(Ce[o],this.options.chosenClass,false)}t._hideClone();n()}},clone:function clone(e){var t=e.sortable,n=e.rootEl,o=e.dispatchSortableEvent,r=e.cancel;if(this.isMultiDrag&&!this.options.removeCloneOnHide&&De.length&&_e===t){insertMultiDragClones(true,n);o("clone");r()}},showClone:function showClone(e){var t=e.cloneNowShown,n=e.rootEl,o=e.cancel;if(this.isMultiDrag){insertMultiDragClones(false,n);Ce.forEach((function(e){css(e,"display","")}));t();we=false;o()}},hideClone:function hideClone(e){var t=this;e.sortable;var n=e.cloneNowHidden,o=e.cancel;if(this.isMultiDrag){Ce.forEach((function(e){css(e,"display","none");t.options.removeCloneOnHide&&e.parentNode&&e.parentNode.removeChild(e)}));n();we=true;o()}},dragStartGlobal:function dragStartGlobal(e){e.sortable;!this.isMultiDrag&&_e&&_e.multiDrag._deselectMultiDrag();De.forEach((function(e){e.sortableIndex=index(e)}));De=De.sort((function(e,t){return e.sortableIndex-t.sortableIndex}));Te=true},dragStarted:function dragStarted(e){var t=this;var n=e.sortable;if(this.isMultiDrag){if(this.options.sort){n.captureAnimationState();if(this.options.animation){De.forEach((function(e){e!==ye&&css(e,"position","absolute")}));var o=getRect(ye,false,true,true);De.forEach((function(e){e!==ye&&setRect(e,o)}));Ae=true;xe=true}}n.animateAll((function(){Ae=false;xe=false;t.options.animation&&De.forEach((function(e){unsetRect(e)}));t.options.sort&&removeMultiDragElements()}))}},dragOver:function dragOver(e){var t=e.target,n=e.completed,o=e.cancel;if(Ae&&~De.indexOf(t)){n(false);o()}},revert:function revert(e){var t=e.fromSortable,n=e.rootEl,o=e.sortable,r=e.dragRect;if(De.length>1){De.forEach((function(e){o.addAnimationState({target:e,rect:Ae?getRect(e):r});unsetRect(e);e.fromRect=r;t.removeAnimationState(e)}));Ae=false;insertMultiDragElements(!this.options.removeCloneOnHide,n)}},dragOverCompleted:function dragOverCompleted(e){var t=e.sortable,n=e.isOwner,o=e.insertion,r=e.activeSortable,i=e.parentEl,a=e.putSortable;var l=this.options;if(o){n&&r._hideClone();xe=false;if(l.animation&&De.length>1&&(Ae||!n&&!r.options.sort&&!a)){var s=getRect(ye,false,true,true);De.forEach((function(e){if(e!==ye){setRect(e,s);i.appendChild(e)}}));Ae=true}if(!n){Ae||removeMultiDragElements();if(De.length>1){var c=we;r._showClone(t);r.options.animation&&!we&&c&&Ce.forEach((function(e){r.addAnimationState({target:e,rect:Ee});e.fromRect=Ee;e.thisAnimationDuration=null}))}else r._showClone(t)}}},dragOverAnimationCapture:function dragOverAnimationCapture(e){var t=e.dragRect,n=e.isOwner,o=e.activeSortable;De.forEach((function(e){e.thisAnimationDuration=null}));if(o.options.animation&&!n&&o.multiDrag.isMultiDrag){Ee=_extends({},t);var r=matrix(ye,true);Ee.top-=r.f;Ee.left-=r.e}},dragOverAnimationComplete:function dragOverAnimationComplete(){if(Ae){Ae=false;removeMultiDragElements()}},drop:function drop(e){var t=e.originalEvent,n=e.rootEl,o=e.parentEl,r=e.sortable,i=e.dispatchSortableEvent,a=e.oldIndex,l=e.putSortable;var s=l||this.sortable;if(t){var c=this.options,d=o.children;if(!Te){c.multiDragKey&&!this.multiDragKeyDown&&this._deselectMultiDrag();toggleClass(ye,c.selectedClass,!~De.indexOf(ye));if(~De.indexOf(ye)){De.splice(De.indexOf(ye),1);Se=null;dispatchEvent({sortable:r,rootEl:n,name:"deselect",targetEl:ye,originalEvent:t})}else{De.push(ye);dispatchEvent({sortable:r,rootEl:n,name:"select",targetEl:ye,originalEvent:t});if(t.shiftKey&&Se&&r.el.contains(Se)){var f=index(Se),h=index(ye);if(~f&&~h&&f!==h){var g,p;if(h>f){p=f;g=h}else{p=h;g=f+1}for(;p<g;p++)if(!~De.indexOf(d[p])){toggleClass(d[p],c.selectedClass,true);De.push(d[p]);dispatchEvent({sortable:r,rootEl:n,name:"select",targetEl:d[p],originalEvent:t})}}}else Se=ye;_e=s}}if(Te&&this.isMultiDrag){Ae=false;if((o[u].options.sort||o!==n)&&De.length>1){var v=getRect(ye),m=index(ye,":not(."+this.options.selectedClass+")");!xe&&c.animation&&(ye.thisAnimationDuration=null);s.captureAnimationState();if(!xe){if(c.animation){ye.fromRect=v;De.forEach((function(e){e.thisAnimationDuration=null;if(e!==ye){var t=Ae?getRect(e):v;e.fromRect=t;s.addAnimationState({target:e,rect:t})}}))}removeMultiDragElements();De.forEach((function(e){d[m]?o.insertBefore(e,d[m]):o.appendChild(e);m++}));if(a===index(ye)){var b=false;De.forEach((function(e){e.sortableIndex===index(e)||(b=true)}));if(b){i("update");i("sort")}}}De.forEach((function(e){unsetRect(e)}));s.animateAll()}_e=s}(n===o||l&&l.lastPutMode!=="clone")&&Ce.forEach((function(e){e.parentNode&&e.parentNode.removeChild(e)}))}},nullingGlobal:function nullingGlobal(){this.isMultiDrag=Te=false;Ce.length=0},destroyGlobal:function destroyGlobal(){this._deselectMultiDrag();off(document,"pointerup",this._deselectMultiDrag);off(document,"mouseup",this._deselectMultiDrag);off(document,"touchend",this._deselectMultiDrag);off(document,"keydown",this._checkKeyDown);off(document,"keyup",this._checkKeyUp)},_deselectMultiDrag:function _deselectMultiDrag(e){if((typeof Te==="undefined"||!Te)&&_e===this.sortable&&(!e||!closest(e.target,this.options.draggable,this.sortable.el,false))&&(!e||e.button===0))while(De.length){var t=De[0];toggleClass(t,this.options.selectedClass,false);De.shift();dispatchEvent({sortable:this.sortable,rootEl:this.sortable.el,name:"deselect",targetEl:t,originalEvent:e})}},_checkKeyDown:function _checkKeyDown(e){e.key===this.options.multiDragKey&&(this.multiDragKeyDown=true)},_checkKeyUp:function _checkKeyUp(e){e.key===this.options.multiDragKey&&(this.multiDragKeyDown=false)}};return _extends(MultiDrag,{pluginName:"multiDrag",utils:{
119
+ /**
120
+ * Selects the provided multi-drag item
121
+ * @param {HTMLElement} el The element to be selected
122
+ */
123
+ select:function select(e){var t=e.parentNode[u];if(t&&t.options.multiDrag&&!~De.indexOf(e)){if(_e&&_e!==t){_e.multiDrag._deselectMultiDrag();_e=t}toggleClass(e,t.options.selectedClass,true);De.push(e)}},
124
+ /**
125
+ * Deselects the provided multi-drag item
126
+ * @param {HTMLElement} el The element to be deselected
127
+ */
128
+ deselect:function deselect(e){var t=e.parentNode[u],n=De.indexOf(e);if(t&&t.options.multiDrag&&~n){toggleClass(e,t.options.selectedClass,false);De.splice(n,1)}}},eventProperties:function eventProperties(){var e=this;var t=[],n=[];De.forEach((function(o){t.push({multiDragElement:o,index:o.sortableIndex});var r;r=Ae&&o!==ye?-1:Ae?index(o,":not(."+e.options.selectedClass+")"):index(o);n.push({multiDragElement:o,index:r})}));return{items:_toConsumableArray(De),clones:[].concat(Ce),oldIndicies:t,newIndicies:n}},optionListeners:{multiDragKey:function multiDragKey(e){e=e.toLowerCase();e==="ctrl"?e="Control":e.length>1&&(e=e.charAt(0).toUpperCase()+e.substr(1));return e}}})}function insertMultiDragElements(e,t){De.forEach((function(n,o){var r=t.children[n.sortableIndex+(e?Number(o):0)];r?t.insertBefore(n,r):t.appendChild(n)}))}
129
+ /**
130
+ * Insert multi-drag clones
131
+ * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted
132
+ * @param {HTMLElement} rootEl
133
+ */function insertMultiDragClones(e,t){Ce.forEach((function(n,o){var r=t.children[n.sortableIndex+(e?Number(o):0)];r?t.insertBefore(n,r):t.appendChild(n)}))}function removeMultiDragElements(){De.forEach((function(e){e!==ye&&e.parentNode&&e.parentNode.removeChild(e)}))}Sortable.mount(new AutoScrollPlugin);Sortable.mount(Remove,Revert);export{MultiDragPlugin as MultiDrag,Sortable,SwapPlugin as Swap,Sortable as default};
134
+